From groundwork
Verifies that implementation aligns with product specs and architecture, surfacing misalignments for resolution. Includes effort/model recommendations and monorepo support.
How this skill is triggered — by the user, by Claude, or both
Slash command
/groundwork:check-specs-alignment [alignment-context][alignment-context]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Verifies that implementation aligns with product specs and architecture, surfacing misalignments for resolution.
Verifies that implementation aligns with product specs and architecture, surfacing misalignments for resolution.
Your current effort level is {{effort_level}}.
Skip this step silently if effort is high, xhigh, or max (the scale is low < medium < high < xhigh < max, so xhigh and max are already above high) AND you are Sonnet or Opus.
If effort is low or medium (i.e. below high), you MUST show the recommendation prompt — regardless of model.
If you are not Sonnet or Opus, you MUST show the recommendation prompt - regardless of effort level.
Otherwise → use AskUserQuestion:
{
"questions": [{
"question": "Do you want to switch? Drift detection and categorization across implementation and specs benefits from consistent reasoning.\n\nTo switch: cancel, run `/effort high` (and `/model sonnet` if on Haiku), then re-invoke this skill.",
"header": "Recommended: Sonnet or Opus at high effort",
"options": [
{ "label": "Continue" },
{ "label": "Cancel — I'll switch first" }
],
"multiSelect": false
}]
}
If the user selects "Cancel — I'll switch first": output the switching commands above and stop. Do not proceed with the skill.
Before loading specs, ensure project context is resolved:
.groundwork.yml exist at the repo root?
{{project_name}} non-empty?
Skill(skill="groundwork:select-project") to select a project, then restart this skill.{{project_name}}, specs at {{specs_dir}}/..groundwork.yml).AskUserQuestion:
"You're working from
<cwd>(inside [cwd-project]), but the selected Groundwork project is [selected-project] ([selected-project-path]/). What would you like to do?"
- "Switch to [cwd-project]"
- "Stay with [selected-project]" If the user switches, invoke
Skill(skill="groundwork:select-project").
{{specs_dir}}/ paths will resolve to the correct location.Read the following specs (each may be a single file or directory):
Product specs - PRD with EARS requirements
{{specs_dir}}/product_specs.md{{specs_dir}}/product_specs/ (aggregate all .md files)Architecture - Architecture decisions
{{specs_dir}}/architecture.md{{specs_dir}}/architecture/ (aggregate all .md files)Tasks - Task list (if exists)
{{specs_dir}}/tasks.md{{specs_dir}}/tasks/ (aggregate all .md files)Detection: Check for file first (takes precedence), then directory. When reading a directory, aggregate all .md files recursively with _index.md first, then numerically-prefixed files, then alphabetically.
Scan codebase for implementation:
If specs are missing:
"Cannot check alignment - missing specs:
- [List missing specs]
Run the appropriate commands to create them:
- PRD:
/groundwork:design-product- Architecture:
/groundwork:design-architecture- Tasks:
/groundwork:create-tasks"
For each EARS requirement in the PRD:
Search codebase for implementation evidence using the requirement's keywords and expected behavior
Categorize the implementation status:
Detect undocumented features - Code functionality that doesn't trace to any PRD requirement
For each architecture decision (DR-NNN):
Verify implementation follows the decision by examining:
Detect deviations:
Present the alignment report in a structured format:
## Alignment Report
### PRD Alignment
| Requirement | Status | Notes |
|-------------|--------|-------|
| PRD-XXX-REQ-001 | Implemented | Found in src/auth/login.ts |
| PRD-XXX-REQ-002 | Partial | Missing error handling for edge case |
| PRD-XXX-REQ-003 | Not Implemented | - |
| PRD-YYY-REQ-001 | Deviated | Uses polling instead of WebSocket |
**Summary:** X/Y requirements implemented, Z partial, W not implemented, V deviated
**Undocumented Features:**
- Feature X in src/foo.ts has no PRD requirement
- [Or "None detected" if clean]
### Architecture Alignment
| Decision | Status | Notes |
|----------|--------|-------|
| DR-001 | Aligned | PostgreSQL used as documented |
| DR-002 | Deviated | Using REST instead of GraphQL |
| DR-003 | Aligned | - |
**Summary:** X/Y decisions aligned, Z deviated
**Undocumented Components:**
- src/cache/ not mentioned in architecture
- [Or "None detected" if clean]
### Task Status Consistency
| Condition | Count | Tasks |
|-----------|-------|-------|
| Marked complete but code missing | N | TASK-003, TASK-007 |
| Code present but task not complete | N | TASK-005 |
Based on findings, provide actionable next steps:
For undocumented features:
"Run
/groundwork:design-productto add requirements for undocumented feature X"
For PRD deviations:
"Either:
- Run
/groundwork:source-product-specs-from-codeto update the PRD to match implementation, OR- Fix the implementation to match PRD requirement PRD-XXX-REQ-NNN"
For architecture deviations:
"Either:
- Run
/groundwork:source-architecture-from-codeto update architecture to match implementation, OR- Refactor code to follow DR-NNN (currently using [actual] instead of [documented])"
For missing implementations:
"Run
/groundwork:work-on-next-taskto implement missing requirements, or/groundwork:work-on Nto work on specific tasks"
Offer resolution options:
"Found [N] misalignments. Would you like me to:
- Update specs to match implementation (
/groundwork:source-product-specs-from-code,/groundwork:source-architecture-from-code)- List implementation changes needed to match specs
- Go through each misalignment individually"
| Status | Meaning | Resolution |
|---|---|---|
| Implemented | Code matches requirement | None needed |
| Partial | Some aspects implemented | Complete implementation or update PRD scope |
| Not Implemented | No code for requirement | Implement via tasks or remove from PRD |
| Deviated | Different from spec | Align code OR update PRD |
| Status | Meaning | Resolution |
|---|---|---|
| Aligned | Implementation follows decision | None needed |
| Deviated | Different approach used | Refactor OR update architecture |
When searching for implementation evidence:
src/ - Main source code
lib/ - Libraries
app/ - Application code (Next.js, Rails, etc.)
api/ - API routes
components/ - UI components
services/ - Service layer
models/ - Data models
database/ - Migrations, schemas
config/ - Configuration
tests/ - Test files (can verify expected behavior)
npx claudepluginhub etr/groundworkVerifies alignment between requirements/specs/PRDs and plans/tasks/implementation steps; detects coverage gaps, scope creep, design mismatches; rewrites tasks in TDD red/green/refactor format.
Verifies implemented code against design.md, implementation.md, and tasks.md docs. Detects missing implementations, spec deviations, extra code, doc inconsistencies, outdated docs. Use after tasks or mid-feature.
Verifies implementation against requirements and acceptance criteria from scattered sources. Identifies alignments, gaps, and unknowns before building or sign-off.