Integrate extension system from upstream#16
Merged
Conversation
Cherry-pick of github/spec-kit@f14a47e with conflict resolution. Adds modular extension architecture: manifest validation, CLI commands (add/remove/list/search/update/enable/disable), catalog system, hook executor, multi-agent command registration, and config layers. Conflicts resolved: - .gitignore: kept local entries + upstream extension entries - CHANGELOG.md: kept both local 0.0.23 and upstream 0.1.0 entries - pyproject.toml: kept local force-include + upstream test config
Cherry-pick of upstream 12405c0. Kept local PRD/AR/SEC discovery logic in tasks.md while accepting upstream's interface contracts terminology change.
* Add V-Model Extension Pack to catalog Second community extension: V-Model paired dev-spec and test-spec generation with regulatory-grade traceability. - 3 commands: requirements, acceptance, trace - Deterministic coverage validation (regex-based, not AI) - Targets: IEC 62304, ISO 26262, DO-178C, FDA 21 CFR Part 820 - Repository: https://github.com/leocamello/spec-kit-v-model - Release: v0.1.0 * Fix catalog entry: provides as number, add timestamps and statistics Address review feedback: - provides.commands: array → number (3), add hooks (1) - Add created_at and updated_at timestamps - Add statistics block (downloads: 0, stars: 0) * Address review: use catalog.community.json and add extensions README Per maintainer feedback: - Revert catalog.json to its original empty state (empty by design) - Rename catalog.example.json → catalog.community.json - Replace example entries with real V-Model Extension Pack entry - Add extensions/README.md with community extensions table
…1656) - Version: 0.1.0 → 0.2.0 - Download URL updated to v0.2.0 tag - Commands: 3 → 5 (added system-design, system-test)
* feat: add issue templates for agent requests, bug reports, feature requests, extension submissions, and configuration * Update .github/ISSUE_TEMPLATE/config.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update .github/ISSUE_TEMPLATE/agent_request.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update .github/ISSUE_TEMPLATE/config.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update .github/ISSUE_TEMPLATE/bug_report.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update .github/ISSUE_TEMPLATE/feature_request.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…ent directory structures (github#1660) - Added commands_subdir field to AGENT_CONFIG for all agents - Updated install_ai_skills() to use commands_subdir instead of hardcoded 'commands' - Fixed --ai-skills flag for copilot, opencode, windsurf, codex, kilocode, q, and agy - Bumped version to 0.1.5 - Updated AGENTS.md documentation with new field Affected agents now correctly locate their command templates: - copilot: .github/agents/ - opencode: .opencode/command/ (singular) - windsurf: .windsurf/workflows/ - codex: .codex/prompts/ - kilocode: .kilocode/workflows/ - q: .amazonq/prompts/ - agy: .agent/workflows/ All 51 tests pass.
- Version: 0.2.0 → 0.3.0 - Commands: 5 → 7 (architecture-design, integration-test) - Download URL updated to v0.3.0 tag
* docs: Fix doc missing step * docs: Update steps for generating technical plan and defining tasks
- Version: 0.2.0 → 0.4.0 - Commands: 5 → 9 (new: architecture-design, integration-test, module-design, unit-test) - Download URL: updated to v0.4.0 tag
* chore: bump version to v0.0.6 [skip ci] * Fix parameter ordering issues in CLI (github#1641) - Add validation to detect when option flags are consumed as values - Provide clear error messages with helpful hints and examples - Add 5 comprehensive tests to prevent regressions - Update CODEOWNERS to @mnriem - Bump version to 0.1.6 with changelog entry Fixes: github#1641 * Fix ruff linting errors: remove f-string prefix from strings without placeholders --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
**Repository**: https://github.com/dsrednicki/spec-kit-cleanup **Version**: 1.0.0 **License**: MIT **Author**: @dsrednicki Adds catalog entry for the Cleanup Extension - a post-implementation quality gate that fixes small issues (scout rule), creates tasks for medium issues, and generates analysis for large issues.
There was a problem hiding this comment.
Pull request overview
Integrates the upstream Spec Kit extension system into this repo, adding a full plugin architecture (manifests, install/remove, catalog/search, hooks, multi-agent command registration) plus supporting docs, templates, and tests.
Changes:
- Adds extension CLI subcommands and AI-skills generation logic to the main
specify_clientrypoint. - Introduces extension catalogs + an extension authoring template and comprehensive extension documentation.
- Adds pytest-based test suites and pytest/coverage configuration.
Reviewed changes
Copilot reviewed 37 out of 38 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
src/specify_cli/__init__.py |
Adds agent commands_subdir, AI skills installation, init validation improvements, and specify extension ... subcommands. |
src/specify_cli/extensions.py |
(Referenced by tests/tools) Core extension system implementation (catalog, config layering, install/remove, etc.). |
pyproject.toml |
Bumps version and adds pyyaml/packaging plus pytest/coverage config. |
CHANGELOG.md |
Documents extension system releases and CLI fixes. |
AGENTS.md |
Documents commands_subdir for agents. |
tests/test_extensions.py |
New unit tests for extension manifest/registry/manager/catalog. |
tests/test_ai_skills.py |
New unit tests for AI skills installation and CLI flag validation. |
tests/__init__.py |
Adds tests package marker docstring. |
templates/plan-template.md |
Updates “Project Type” prompt text. |
templates/commands/specify.md |
Generalizes integration-pattern guidance beyond REST-only. |
templates/commands/plan.md |
Updates plan template to “interface contracts” guidance. |
templates/commands/tasks.md |
Updates terminology from endpoints/contracts to interface contracts. |
docs/quickstart.md |
Adds phased implementation tips and inserts explicit /speckit.tasks step. |
.gitignore |
Ignores extension cache/backup/local-config artifacts. |
.github/workflows/lint.yml |
Excludes extensions/**/*.md from markdownlint run. |
.github/CODEOWNERS |
Updates global code owner. |
.github/ISSUE_TEMPLATE/config.yml |
Adds contact links for discussions/docs/dev guide/etc. |
.github/ISSUE_TEMPLATE/bug_report.yml |
Adds bug report issue template. |
.github/ISSUE_TEMPLATE/feature_request.yml |
Adds feature request issue template. |
.github/ISSUE_TEMPLATE/agent_request.yml |
Adds agent support request template. |
.github/ISSUE_TEMPLATE/extension_submission.yml |
Adds extension submission template. |
spec-kit.code-workspace |
Adds VS Code workspace file. |
extensions/catalog.json |
Adds (empty) org catalog placeholder. |
extensions/catalog.community.json |
Adds community catalog entries (cleanup, v-model). |
extensions/README.md |
Adds extensions directory readme. |
extensions/EXTENSION-USER-GUIDE.md |
Adds end-user docs for extensions. |
extensions/EXTENSION-API-REFERENCE.md |
Adds API + schema reference docs. |
extensions/EXTENSION-DEVELOPMENT-GUIDE.md |
Adds extension authoring guide. |
extensions/EXTENSION-PUBLISHING-GUIDE.md |
Adds catalog submission/publishing guide. |
extensions/template/README.md |
Adds extension template readme. |
extensions/template/extension.yml |
Adds extension manifest template. |
extensions/template/config-template.yml |
Adds extension config template. |
extensions/template/commands/example.md |
Adds example extension command template. |
extensions/template/CHANGELOG.md |
Adds template changelog. |
extensions/template/LICENSE |
Adds template license. |
extensions/template/EXAMPLE-README.md |
Adds example readme for extension authors. |
extensions/template/.gitignore |
Adds gitignore for extension template repo. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
install_ai_skills() uses yaml.safe_load/yaml.safe_dump but the module was never imported, causing NameError at runtime.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
upstream/mainspecify extension add/remove/list/search/update/enable/disable), catalog system, hook executor, multi-agent command registration, and layered configCommits integrated (11 total)
f14a47e12405c0aeed11f07077d068d1d3a6f523edcee4f26c1034f16cc61023040d33f444ccbConflict resolutions
New dependencies
pyyaml>=6.0packaging>=23.0Test plan
pytest tests/to verify extension and AI skills test suitespython3 -m src.specify_cli --helpto verify CLI loads with extension subcommandspecify extension listin a spec-kit project🤖 Generated with Claude Code