review-spec
Validate implementation against spec-kit artifacts (spec.md, plan.md, constitution.md). Use when asked to check spec conformance, validate implementation matches specs, or audit code against specifications.
What this skill does
# Spec Review Validate that the implementation conforms to its spec-kit artifacts. > [!IMPORTANT] > Consult `REFERENCE.md` in this skill directory for the expected output format and level of detail. ## User Input ```text $ARGUMENTS ``` You **MUST** consider the user input before proceeding (if not empty). ## Argument Parsing Parse `$ARGUMENTS` for: - **Path**: Optional path to focus the review (default: entire repo) - **Spec folder name**: If provided (e.g., `001-user-auth`), use that spec instead of deriving from branch - **`--create-beads`**: Create beads for findings (default: report only) ## Outline ### 1. Validate Prerequisites Run prerequisite checks: ```bash ./.specify/scripts/bash/check-prerequisites.sh --json ``` Parse the JSON response to get `FEATURE_DIR`. Then verify beads is initialized: ```bash bd info ``` > [!CAUTION] > ERROR if beads is not initialized. Instruct user to run `bd onboard` first. > ERROR if spec.md is missing. Instruct user to run `/speckit.spec` first. If a spec folder name was provided in arguments, override `FEATURE_DIR` to `specs/<folder-name>`. ### 2. Load Context Documents Read from `FEATURE_DIR`: - **Required**: `spec.md` - **Optional**: `plan.md`, `.specify/memory/constitution.md` Note which optional documents are present — validation criteria are gated on document availability. ### 3. Read Implementation Code If a path argument was provided, scope to that path. Otherwise, read the project's source code (excluding vendor, node_modules, build output, and other generated directories). Build a working understanding of the implementation: files, modules, public APIs, imports, configuration, and test files. ### 4. Validation Run each applicable validation section below. Skip sections whose required documents are not present. **Status Definitions** (use consistently throughout): - ✅ PASS: Fully implemented as specified - ⚠️ PARTIAL: Implemented but with minor deviations from spec - ❌ GAP: Missing or significantly divergent **Evidence Format**: `file:line` only (or `—` if no specific location). Detailed explanations go in Findings section. **Table Output**: Only show non-passing items (⚠️ PARTIAL and ❌ GAP). End each table with "N passed, not shown." #### 4.1 Specification Conformance (requires spec.md) Evaluate ALL functional requirements and acceptance criteria from spec.md. **Functional Requirements**: Scan spec.md for all FR-xxx identifiers or numbered requirements. For each: - Compare the implementation against the requirement - Evaluate: behavior coverage, edge case handling, constraint enforcement, API surface match - Record status and evidence for non-passing items **Acceptance Criteria**: Scan spec.md for all user stories (USx-x format) and their scenarios. For each scenario: - Verify the described behavior is implemented - Record status and evidence for non-passing items #### 4.2 Architecture Consistency (requires plan.md) Extract ALL architectural declarations from plan.md. This includes: - Module/package structure - Naming conventions - Technology choices (frameworks, libraries, databases) - Configuration patterns - External integrations Evaluate each declaration: - Does the code use the declared frameworks/libraries? (check imports, config files, dependency manifests) - Is code organized per the declared directory structure? - Do external service integrations match the plan? - Does the data layer match (database driver, ORM, migration tool)? #### 4.3 Constitution Alignment (requires constitution.md) For EACH numbered principle in constitution.md, create a table row and evaluate whether the code adheres to it. Common principle categories: - API design standards - Security requirements - Infrastructure-as-code requirements - Testing standards - Code organization conventions Only flag cases where code clearly contradicts a stated principle. Do not flag ambiguous or inapplicable cases. ### 5. Deduplication Before creating beads, check for existing ones: - Run `bd list --status=open` to see all open issues - Run `bd list --status=closed` to see previously resolved issues - Compare findings against existing bead titles and descriptions - Skip creating beads for issues that already have matching open beads - **Check closed beads before suppressing.** Use `bd show <id>` on relevant closed beads and verify the fix actually resolved the issue in the current code. Only suppress if the fix is complete — if the problem still exists (in the same or different locations), create a new bead for the remaining instances. The goal is to prevent flip-flopping on intentional resolutions, not to give closed beads permanent immunity. ### 6. Report Format (Mandatory) You MUST produce a report following the exact structure shown in `REFERENCE.md`. This format is required for every review—do not deviate. Key rules: - Only show non-passing items (⚠️ PARTIAL, ❌ GAP) in validation tables—end each with "N passed, not shown." - Evidence column is just `file:line` (or `—`)—detailed explanations go in Findings - Use H3 headers for Findings section (see REFERENCE.md for format) - No Summary table—Findings section already lists issues - Skip sections (4.2, 4.3) if their required documents are not present - Include Findings section only if there are non-passing items - End with "To create beads..." footer unless `--create-beads` was used ### 7. Bead Creation (`--create-beads` mode) When `--create-beads` is specified, create beads for each finding. Each bead description MUST include all five fields: ``` **Source**: <spec.md|plan.md|constitution.md §section-heading> **Violated**: <exact quote or requirement identifier from the source document> **Code**: <file:line (or — if not yet implemented)> Fix: <Concrete prescription tied to the spec. Reference the specific section, requirement ID, or user story. Example: "Implement the rate-limit check from spec.md §FR-004: reject requests exceeding 100/min with HTTP 429 before the handler runs." Not: "Implement the missing requirement."> Done when: <Verifiable criterion. Must name observable code behaviour or a specific test. Example: "A request at 101/min receives HTTP 429; a test covers this scenario." NOT: "The spec requirement is satisfied."> ``` ```bash bd create --type=bug --priority=<1-3> \ --title="Spec: <issue>" \ --description="**Source**: <spec.md|plan.md|constitution.md §section> **Violated**: <quote or requirement ID> **Code**: <file:line> Fix: <concrete prescription> Done when: <verifiable criterion>" ``` **Priority mapping**: - Missing core behavior from spec: P1 - Architecture divergence from plan: P2 - Constitution violations: P2 After creating beads, append to the report: ``` ## Beads Created - <bead-id>: "<title>" - ... ``` Omit the "To create beads..." footer when beads have been created. ## Error Handling - If `bd` commands fail, report the error and continue with remaining findings - If spec.md cannot be read, abort (it is the only hard requirement) - Missing optional documents skip their corresponding validation sections silently ## Design Principles - **Spec-aware**: This command reads and understands spec-kit artifacts, unlike the generic review commands - **Code-level validation**: Evaluates actual code against specs, not just file existence or build output - **Gated sections**: Each validation section is gated on its required document being present - **Non-destructive**: Creates bug beads for findings, never modifies source code or spec artifacts - **Focused scope**: Validates spec conformance only — use the critique plugin's `review-code`, `review-tests`, `review-docs` skills for generic quality - **Stable numbering**: When recommending removal of a numbered item (FR-xxx, USx-x, principles), never delete it. Mark it as "Removed" in place to preserve stable identifiers and avoid breaking cross-references
Related in Security
mac-ops
IncludedComprehensive macOS workstation operations — diagnose kernel panics, identify failing drives, audit launchd startup items, decode wake reasons, triage TCC permission denials, manage APFS snapshots, recover from no-boot. Use for: Mac is slow, slow bootup, won't boot, kernel panic, kernel_task hot, mds_stores CPU, photoanalysisd, cloudd, login loop, gray screen, sleep wake failure, drive failing, IO errors, APFS snapshots eating space, Time Machine local snapshots, Spotlight indexing, launchd, LaunchAgent, LaunchDaemon, login items, TCC permissions, Full Disk Access, Screen Recording denied, Gatekeeper, quarantine, com.apple.quarantine, app is damaged, helper tool, /Library/PrivilegedHelperTools, pmset, wake reasons, dark wake, sysdiagnose, panic.ips, DiagnosticReports, configuration profile, MDM profile, remote diagnostics over SSH.
a11y-audit
IncludedRun accessibility audits on web projects combining automated scanning (axe-core, Lighthouse) with WCAG 2.1 AA compliance mapping, manual check guidance, and structured reporting. Output is configurable: markdown report only, markdown plus machine-readable JSON, or markdown plus issue tracker integration. Use this skill whenever the user mentions "accessibility audit", "a11y audit", "WCAG audit", "accessibility check", "compliance scan", or asks to check a web project for accessibility issues. Also trigger when the user wants to verify WCAG conformance or map findings to a specific standard (CAN-ASC-6.2, EN 301 549, ADA/AODA).
erpclaw
IncludedAI-native ERP system with self-extending OS. Full accounting, invoicing, inventory, purchasing, tax, billing, HR, payroll, advanced accounting (ASC 606/842, intercompany, consolidation), and financial reporting. 413 actions across 14 domains, 43 expansion modules. Constitutional guardrails, adversarial audit, schema migration. Double-entry GL, immutable audit trail, US GAAP.
assess
IncludedAssesses and rates quality 0-10 across multiple dimensions (correctness, maintainability, security, performance, testability, simplicity) with pros/cons analysis. Compares against project conventions and prior decisions from memory. Produces structured evaluation reports with actionable improvement suggestions. Use when evaluating code, designs, architectures, or comparing alternative approaches.
spring-boot-security-jwt
IncludedProvides JWT authentication and authorization patterns for Spring Boot 3.5.x covering token generation with JJWT, Bearer/cookie authentication, database/OAuth2 integration, and RBAC/permission-based access control using Spring Security 6.x. Use when implementing authentication or authorization in Spring Boot applications.
code-hardcode-audit
IncludedDetect hardcoded values, magic numbers, and leaked secrets. TRIGGERS - hardcode audit, magic numbers, PLR2004, secret scanning.