feat(extensions): add speckit-utils extension with resume, doctor, validate#1895
feat(extensions): add speckit-utils extension with resume, doctor, validate#1895mvanhorn wants to merge 1 commit intogithub:mainfrom
Conversation
…lidate Packages three SDD utility commands as an extension per maintainer feedback on PRs github#1892, github#1893, github#1894. Commands: - speckit.speckit-utils.resume: detect feature state, suggest next command - speckit.speckit-utils.doctor: validate project health (templates, agent config, scripts, constitution, feature artifacts) - speckit.speckit-utils.validate: verify spec-to-task traceability and check that completed tasks produced expected files Hooks into after_specify (doctor) and after_plan (validate) optionally. This contribution was developed with AI assistance (Claude Code). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds a new speckit-utils extension intended to package three SDD utility workflows (resume/doctor/validate) as extension-provided slash commands, along with optional post-command hooks and supporting documentation.
Changes:
- Introduces
extensions/speckit-utils/extension.ymldefining three commands and hook declarations - Adds command instruction markdown files for
resume,doctor, andvalidate - Adds extension docs/artifacts (README, CHANGELOG, LICENSE) and a config template
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| extensions/speckit-utils/extension.yml | Declares extension metadata, provided commands, and hook definitions |
| extensions/speckit-utils/config-template.yml | Provides a sample configuration template for the extension |
| extensions/speckit-utils/commands/resume.md | Agent instructions for resuming SDD workflow based on feature state |
| extensions/speckit-utils/commands/doctor.md | Agent instructions for a project “health check” workflow |
| extensions/speckit-utils/commands/validate.md | Agent instructions for deterministic traceability + artifact validation workflow |
| extensions/speckit-utils/README.md | End-user documentation and installation guidance |
| extensions/speckit-utils/CHANGELOG.md | Version history for the extension |
| extensions/speckit-utils/LICENSE | MIT license for the extension |
Comments suppressed due to low confidence (1)
extensions/speckit-utils/commands/doctor.md:62
- The constitution check looks for
constitution.mdormemory/constitution.md, but Spec Kit stores the constitution at.specify/memory/constitution.mdby default (and templates under.specify/templates/). Update the documented paths so healthy projects aren’t flagged as missing a constitution.
### Step 5: Check constitution
Look for `constitution.md` or `memory/constitution.md` in the project root.
- Exists and has content (>10 words): PASS (show word count)
- Exists but empty: WARN ("constitution is empty")
- Not found: WARN ("no constitution found - consider creating one to guide AI decisions")
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| hooks: | ||
| after_specify: | ||
| command: "speckit.speckit-utils.doctor" | ||
| optional: true | ||
| prompt: "Run project health check?" | ||
| description: "Validate project health after specification generation" | ||
| condition: null | ||
|
|
||
| after_plan: | ||
| command: "speckit.speckit-utils.validate" | ||
| optional: true | ||
| prompt: "Validate spec-to-task traceability?" | ||
| description: "Verify requirements map to planned tasks after planning" | ||
| condition: null |
| file: "commands/validate.md" | ||
| description: "Verify spec-to-task traceability and check that completed tasks produced expected files" | ||
| aliases: ["speckit.validate"] | ||
|
|
| ## Installation | ||
|
|
||
| ```bash | ||
| specify extension add speckit-utils |
| - `after_specify`: prompts to run doctor (project health check) | ||
| - `after_plan`: prompts to run validate (requirement traceability) |
| | Condition | Phase | Next Command | | ||
| |-----------|-------|-------------| | ||
| | No `spec.md` or empty | `specify` | `/speckit.specify` | | ||
| | `spec.md` exists, no `plan.md` | `plan` | `/speckit.plan` | | ||
| | `plan.md` exists, no `tasks.md` | `tasks` | `/speckit.tasks` | | ||
| | `tasks.md` exists, some incomplete | `implement` | `/speckit.implement` | | ||
| | All tasks complete | `complete` | Review and finalize | | ||
|
|
| Read `.specify/init-options.json` to determine the configured AI agent. | ||
|
|
||
| If no `init-options.json` exists: WARN ("no AI agent configured - run `specify init` to set up") | ||
|
|
||
| If an agent is configured (e.g., `"ai_assistant": "claude"`): | ||
| 1. Check that the agent's directory exists (e.g., `.claude/`) | ||
| 2. Check that command files are registered (e.g., `.claude/commands/speckit.*.md`) | ||
| 3. Count registered commands | ||
|
|
| Verify these template files exist in `templates/` and are non-empty: | ||
| - `spec-template.md` | ||
| - `plan-template.md` | ||
| - `tasks-template.md` | ||
| - `constitution-template.md` | ||
| - `checklist-template.md` | ||
|
|
| - Added `speckit.sdd-utils.resume` command for session continuation | ||
| - Added `speckit.sdd-utils.doctor` command for project health validation | ||
| - Added `speckit.sdd-utils.validate` command for spec-to-task verification |
| # SDD Utils Extension Configuration | ||
| # Copy to sdd-utils-config.yml and customize |
mnriem
left a comment
There was a problem hiding this comment.
You will have to host the extension on your own GitHub repository and then we can list it in the community catalog
|
Got it - will move this to a standalone repo and submit for the community catalog. Closing this PR. |
|
Moved to a standalone repo: https://github.com/mvanhorn/speckit-utils Tagged v1.0.0. Ready to submit a catalog PR to add it to |
|
No looks good. Please submit PR to community catalog and README (note they are alphabetized on extension id and first column respectively). |
Summary
Packages three SDD utility commands as an extension, per feedback on PRs #1892, #1893, #1894 where @mnriem requested these be delivered as extensions rather than core commands.
Commands
Hooks
Optional hooks into:
after_specify- prompts to run doctor (project health check)after_plan- prompts to run validate (requirement traceability)Structure
Follows the extension template pattern with
extension.ymlmanifest,commands/*.mdagent instruction files, config template, README, LICENSE, and CHANGELOG.Testing
Manually verified extension structure matches the template and selftest patterns. Markdown lint is excluded for extensions per the lint workflow config.
This contribution was developed with AI assistance (Claude Code).