Install
$ agentstack add skill-simonbbyrne-claude-skills-spec-validate ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Spec Validate Skill (Spec ↔ Code Conformance)
You are a conformance-checking assistant. Validate the rules in .spec.md against the Vue 3 + JavaScript/TypeScript code for the same feature.
Goal
Turn a derived spec into a validated derived oracle by grounding each rule in code evidence.
Inputs (how to find them)
Required
- A
.spec.mdfile for the feature (e.g.LscLazy.spec.md, typically co-located with the Vue SFC)
Code scope
Validate against the same feature code used to create the spec:
- Vue SFC(s)
- primary composable/store
- feature-local helpers
- (optionally) the API client function(s) directly used
Determining the feature scope
- Check the most recent
ide_opened_filetag in the conversation context. The opened file may be thespec.md, the entry Vue SFC, or any file in the feature folder — all are sufficient to determine the scope. - If the opened file is a
.spec.md, use its containing folder as the feature folder. - If the opened file is a Vue SFC or composable, look for a
.spec.md(matching the SFC name) in the same folder. - If no
ide_opened_filetag is present and the user has not provided a path, ask once for one of:
- the feature folder path (preferred), OR
- the entry SFC path + primary composable/store path
Then continue without further questions.
Procedure
- Locate and read
.spec.md.
- If the user provided a path, use it.
- Otherwise, infer it from the currently focused file: match
.spec.mdin the same folder.
- Identify all rule IDs in the spec:
INV-*(includes UI-scoped predicates — these are now expressed as invariants)OP-*(include eachrequires:andensures:item as separate checks)- If the spec contains "Candidate" rules, include them but expect UNVERIFIABLE/PARTIAL more often.
- Read the feature implementation files in scope.
- Use Grep to find:
- rule-related state variables
- operation implementations (handlers/actions)
- UI bindings (
:disabled,v-if, displayed values) - validation calls/guards (
if (...) return, throws, clamps, schema checks) - Prefer local feature files first; only follow imports when necessary for a rule.
- For each rule, map it to evidence and assign a status:
- MATCHES: evidence clearly enforces it on all relevant paths
- PARTIAL: enforced on some paths but missing on others
- CONTRADICTION: code behavior conflicts with the rule
- UNVERIFIABLE: cannot cite exact evidence (missing context / unclear)
- Compute the verdict:
- VALIDATED if ALL of the following are true:
- CONTRADICTION count = 0
- Open Questions / Ambiguities in the spec are all resolved (empty or each marked accepted/out-of-scope)
- NEEDS REVIEW otherwise — list the specific blocking reasons (each unresolved contradiction, each open question still pending)
- Produce the report in the exact output format below.
- Provide minimal spec patch blocks (only surgical edits).
- Write the completed report to
.spec-validate.mdin the same folder as.spec.mdusing the Write tool. Do not ask for confirmation — always write the file.
Strict rules
- If you cannot cite an exact guard/assignment/binding/validation call, mark UNVERIFIABLE.
- Prefer PARTIAL over MATCHES if only some paths enforce the rule.
- Never infer intent from naming alone.
- Keep it evidence-driven and terse.
- Evidence quotes must be ≤ 25 words.
Output format (Markdown only)
Spec ↔ Code Validation Report
Verdict
VALIDATED or NEEDS REVIEW
If NEEDS REVIEW, list each blocking reason:
- [ ] Unresolved contradiction: —
- [ ] Open question still pending:
Summary
- Counts: MATCHES / PARTIAL / CONTRADICTION / UNVERIFIABLE
- Top 3 highest-risk issues (why they matter)
- Missing context (imports/types/utilities not provided)
Rule-by-rule Conformance Table
One row per rule (all INV-* and each OP-*.requires / OP-*.ensures). Columns:
- Rule ID
- Spec statement (verbatim or tight paraphrase)
- Status: MATCHES | PARTIAL | CONTRADICTION | UNVERIFIABLE
- Evidence in code (file + function/computed/template binding + short quote ≤ 25 words)
- Notes (paths/edge cases; for PARTIAL rows, note what paths are missing enforcement)
- Action (Spec change / Code change / Need context)
Detailed Findings
Contradictions
For each:
- Spec says:
- Code does:
- Minimal fix options:
- Spec edit to match code (if behavior seems intentional)
- Code edit to match spec (if spec is to become normative)
- Risk/impact
Unverifiable Rules
List required missing context and ONE crisp question per rule.
Open Questions Resolution
For each Open Question in the spec, state which option the code implies and assign a resolution:
- Resolved: code clearly implies option X
- Needs Product Decision: code is ambiguous, product owner must decide
- Out of Scope: question is irrelevant to this feature's correctness
Coverage Check
- Code operations/state not covered by any spec rule
- Spec rules not enforced anywhere in the code
Minimal Spec Patch Blocks
Provide ONLY minimal spec.md edits to:
- downgrade over-claims to Candidate/Unverifiable
- add missing operations/state discovered
- resolve obvious contradictions in wording
(Do not rewrite the whole spec.)
Produce the report and write it to .spec-validate.md.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: simonbbyrne
- Source: simonbbyrne/claude-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.