specky-sdd 3.10.1 → 3.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.apm/agents/specky-design-architect.agent.md +1 -1
- package/.apm/agents/specky-implementer.agent.md +2 -2
- package/.apm/agents/specky-onboarding.agent.md +2 -2
- package/.apm/agents/specky-orchestrator.agent.md +2 -2
- package/.apm/agents/specky-quality-reviewer.agent.md +1 -1
- package/.apm/agents/specky-release-engineer.agent.md +6 -5
- package/.apm/agents/specky-requirements-engineer.agent.md +1 -1
- package/.apm/agents/specky-research-analyst.agent.md +1 -1
- package/.apm/agents/specky-sdd-clarify.agent.md +1 -1
- package/.apm/agents/specky-sdd-init.agent.md +2 -2
- package/.apm/agents/specky-spec-engineer.agent.md +1 -1
- package/.apm/agents/specky-task-planner.agent.md +1 -1
- package/.apm/agents/specky-test-verifier.agent.md +7 -6
- package/CHANGELOG.md +35 -0
- package/README.md +43 -8
- package/SECURITY.md +5 -1
- package/apm-policy.yml +2 -0
- package/apm.lock.yaml +16 -16
- package/apm.yml +3 -3
- package/config.yml +4 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +49 -19
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +96 -5
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/index.js +7 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/lib/apm/policy.d.ts +1 -0
- package/dist/cli/lib/apm/policy.d.ts.map +1 -1
- package/dist/cli/lib/apm/policy.js +15 -0
- package/dist/cli/lib/apm/policy.js.map +1 -1
- package/dist/cli/lib/asset-copier.d.ts +1 -0
- package/dist/cli/lib/asset-copier.d.ts.map +1 -1
- package/dist/cli/lib/asset-copier.js +4 -4
- package/dist/cli/lib/asset-copier.js.map +1 -1
- package/dist/cli/lib/cursor-plugin-writer.d.ts +10 -0
- package/dist/cli/lib/cursor-plugin-writer.d.ts.map +1 -0
- package/dist/cli/lib/cursor-plugin-writer.js +53 -0
- package/dist/cli/lib/cursor-plugin-writer.js.map +1 -0
- package/dist/cli/lib/gitignore-writer.d.ts.map +1 -1
- package/dist/cli/lib/gitignore-writer.js +2 -0
- package/dist/cli/lib/gitignore-writer.js.map +1 -1
- package/dist/cli/lib/harness/compilers/claude.js +3 -3
- package/dist/cli/lib/harness/compilers/claude.js.map +1 -1
- package/dist/cli/lib/harness/compilers/common.d.ts +10 -1
- package/dist/cli/lib/harness/compilers/common.d.ts.map +1 -1
- package/dist/cli/lib/harness/compilers/common.js +71 -8
- package/dist/cli/lib/harness/compilers/common.js.map +1 -1
- package/dist/cli/lib/harness/compilers/copilot.js +3 -3
- package/dist/cli/lib/harness/compilers/copilot.js.map +1 -1
- package/dist/cli/lib/harness/compilers/cursor.js +3 -3
- package/dist/cli/lib/harness/compilers/cursor.js.map +1 -1
- package/dist/cli/lib/harness/compilers/opencode.js +3 -3
- package/dist/cli/lib/harness/compilers/opencode.js.map +1 -1
- package/dist/cli/lib/harness/tool-map.d.ts +8 -1
- package/dist/cli/lib/harness/tool-map.d.ts.map +1 -1
- package/dist/cli/lib/harness/tool-map.js +74 -0
- package/dist/cli/lib/harness/tool-map.js.map +1 -1
- package/dist/cli/lib/harness/types.d.ts +11 -1
- package/dist/cli/lib/harness/types.d.ts.map +1 -1
- package/dist/cli/lib/mcp-writer.d.ts +2 -1
- package/dist/cli/lib/mcp-writer.d.ts.map +1 -1
- package/dist/cli/lib/mcp-writer.js +13 -5
- package/dist/cli/lib/mcp-writer.js.map +1 -1
- package/dist/cli/lib/settings-merger.d.ts +15 -0
- package/dist/cli/lib/settings-merger.d.ts.map +1 -1
- package/dist/cli/lib/settings-merger.js +66 -1
- package/dist/cli/lib/settings-merger.js.map +1 -1
- package/dist/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +12 -4
- package/dist/config.js.map +1 -1
- package/dist/index.js +4 -10
- package/dist/index.js.map +1 -1
- package/dist/utils/server-icon.d.ts +10 -0
- package/dist/utils/server-icon.d.ts.map +1 -0
- package/dist/utils/server-icon.js +31 -0
- package/dist/utils/server-icon.js.map +1 -0
- package/package.json +10 -1
|
@@ -3,7 +3,7 @@ name: specky-design-architect
|
|
|
3
3
|
description: Phase 4 agent that writes DESIGN.md with system architecture, API contracts, data models, and Mermaid diagrams. All design decisions trace to specification requirements.
|
|
4
4
|
|
|
5
5
|
color: blue
|
|
6
|
-
|
|
6
|
+
capabilities: ["workspace.read", "mcp.specky.sdd_write_design", "mcp.specky.sdd_generate_all_diagrams", "mcp.specky.sdd_generate_diagram"]
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
<example>
|
|
@@ -3,7 +3,7 @@ name: specky-implementer
|
|
|
3
3
|
description: Use this agent to generate implementation plans, quality checklists, test stubs, and infrastructure scaffolding from specifications.
|
|
4
4
|
|
|
5
5
|
color: blue
|
|
6
|
-
|
|
6
|
+
capabilities: ["workspace.read", "workspace.command.git", "mcp.specky.sdd_implement", "mcp.specky.sdd_checklist", "mcp.specky.sdd_generate_tests", "mcp.specky.sdd_generate_pbt", "mcp.specky.sdd_generate_iac", "mcp.specky.sdd_generate_dockerfile", "mcp.specky.sdd_generate_devcontainer", "mcp.specky.sdd_setup_local_env", "mcp.specky.sdd_setup_codespaces", "mcp.github.create_or_update_file"]
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
<example>
|
|
@@ -30,7 +30,7 @@ You are a senior implementation engineer. You bridge the gap between specificati
|
|
|
30
30
|
|
|
31
31
|
**Workflow:**
|
|
32
32
|
1. Read the `specky-implementer` SKILL.md for implementation patterns and tool reference
|
|
33
|
-
2.
|
|
33
|
+
2. Use Git to verify you are on the correct `spec/NNN-*` branch (not develop/stage/main)
|
|
34
34
|
3. Verify TASKS.md and DESIGN.md exist for the feature
|
|
35
35
|
4. Call sdd_implement — ordered plan (Foundation → Core → Integration → Polish)
|
|
36
36
|
5. Call sdd_checklist for security + testing + relevant NFR domains
|
|
@@ -3,7 +3,7 @@ name: specky-onboarding
|
|
|
3
3
|
description: Default entry point and interactive wizard for Specky SDD. Detects project context, explains the plugin, guides through project type selection, work mode, and branch setup. Triggered when user says "specky" without specifics.
|
|
4
4
|
|
|
5
5
|
color: green
|
|
6
|
-
|
|
6
|
+
capabilities: ["workspace.read", "workspace.command.git", "mcp.specky.sdd_get_status", "mcp.specky.sdd_scan_codebase", "mcp.specky.sdd_check_ecosystem", "mcp.specky.sdd_context_status", "mcp.specky.sdd_auto_pipeline", "mcp.specky.sdd_batch_import", "mcp.specky.sdd_create_branch", "mcp.specky.sdd_discover", "mcp.specky.sdd_figma_to_spec", "mcp.specky.sdd_import_document", "mcp.specky.sdd_import_transcript"]
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
<example>
|
|
@@ -55,7 +55,7 @@ You are the Specky SDD onboarding wizard. You are the **default entry point** wh
|
|
|
55
55
|
- **Direct MCP tools** → Show tool reference by category, user calls directly
|
|
56
56
|
|
|
57
57
|
**Step 5 — Branch Setup:**
|
|
58
|
-
- Auto-create `spec/NNN-feature` from develop → call sdd_create_branch
|
|
58
|
+
- Auto-create `spec/NNN-feature` from develop → call sdd_create_branch, then execute its returned Git command after user confirmation
|
|
59
59
|
- Manual → show git commands
|
|
60
60
|
- Skip → proceed without branching
|
|
61
61
|
|
|
@@ -3,7 +3,7 @@ name: specky-orchestrator
|
|
|
3
3
|
description: Master agent that coordinates the full SDD 10-phase pipeline end-to-end, routing to phase agents, validating artifacts between phases, and enforcing hooks and LGTM gates.
|
|
4
4
|
|
|
5
5
|
color: purple
|
|
6
|
-
|
|
6
|
+
capabilities: ["workspace.read", "workspace.command.git", "agent.delegate", "mcp.specky.sdd_get_status", "mcp.specky.sdd_checkpoint", "mcp.specky.sdd_advance_phase", "mcp.specky.sdd_validate_ears", "mcp.specky.sdd_model_routing", "mcp.specky.sdd_context_status"]
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
<example>
|
|
@@ -30,7 +30,7 @@ You are the Specky SDD pipeline orchestrator. You coordinate the full 10-phase p
|
|
|
30
30
|
|
|
31
31
|
**Workflow:**
|
|
32
32
|
1. Call sdd_get_status → determine current phase and feature
|
|
33
|
-
2.
|
|
33
|
+
2. Use Git to validate that the branch matches phase expectations:
|
|
34
34
|
- Phases 0-7: must be on `spec/NNN-*` branch
|
|
35
35
|
- Phase 8: must be on `develop` branch
|
|
36
36
|
- Phase 9: must be on `stage` branch
|
|
@@ -3,7 +3,7 @@ name: specky-quality-reviewer
|
|
|
3
3
|
description: Phase 6 agent that runs completeness audit, cross-analysis, and compliance checks. Produces ANALYSIS.md with gate decision (APPROVE/CONDITIONAL/REJECT) and COMPLIANCE.md.
|
|
4
4
|
|
|
5
5
|
color: red
|
|
6
|
-
|
|
6
|
+
capabilities: ["workspace.read", "mcp.specky.sdd_run_analysis", "mcp.specky.sdd_cross_analyze", "mcp.specky.sdd_compliance_check", "mcp.specky.sdd_check_sync", "mcp.specky.sdd_metrics"]
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
<example>
|
|
@@ -3,7 +3,7 @@ name: specky-release-engineer
|
|
|
3
3
|
description: Use this agent to prepare features for release — run blocking gates, generate documentation, create PR, and export work items.
|
|
4
4
|
|
|
5
5
|
color: green
|
|
6
|
-
|
|
6
|
+
capabilities: ["workspace.read", "workspace.command.git", "workspace.command.release-gates", "mcp.specky.sdd_create_pr", "mcp.specky.sdd_generate_all_docs", "mcp.specky.sdd_generate_docs", "mcp.specky.sdd_generate_api_docs", "mcp.specky.sdd_generate_runbook", "mcp.specky.sdd_generate_onboarding", "mcp.specky.sdd_export_work_items", "mcp.github.create_pull_request", "mcp.github.create_issue"]
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
<example>
|
|
@@ -28,7 +28,7 @@ You are a senior release engineer. You prepare features for delivery.
|
|
|
28
28
|
|
|
29
29
|
**Workflow:**
|
|
30
30
|
1. Read the `specky-release-engineer` SKILL.md for gate criteria and PR templates
|
|
31
|
-
2.
|
|
31
|
+
2. Use Git to verify work is on the correct branch for the merge target:
|
|
32
32
|
- `spec/NNN-*` → PR targets `develop`
|
|
33
33
|
- `develop` → PR targets `stage`
|
|
34
34
|
- `stage` → PR targets `main`
|
|
@@ -38,9 +38,10 @@ You are a senior release engineer. You prepare features for delivery.
|
|
|
38
38
|
- specky-release-gate.sh (BLOCKING: exit 2 = cannot release)
|
|
39
39
|
5. If either fails: explain what failed, suggest fix. Do NOT proceed.
|
|
40
40
|
6. Call sdd_generate_all_docs — parallel documentation generation
|
|
41
|
-
7. Call sdd_create_pr — PR payload with spec summary and correct target branch
|
|
42
|
-
8.
|
|
43
|
-
9.
|
|
41
|
+
7. Call sdd_create_pr — generate the PR payload with spec summary and correct target branch
|
|
42
|
+
8. Call GitHub MCP `create_pull_request` with the generated payload. If GitHub MCP is not configured or authenticated, present the payload and stop before claiming a PR was created.
|
|
43
|
+
9. Optionally call sdd_export_work_items, then call GitHub MCP `create_issue` for each exported GitHub work item. Do not route to unconfigured external trackers.
|
|
44
|
+
10. Deliver release summary with branch, target, and merge instructions
|
|
44
45
|
|
|
45
46
|
**Branching rules:**
|
|
46
47
|
- `spec/NNN-feature-name` → `develop` (after Phase 8 verification passes)
|
|
@@ -3,7 +3,7 @@ name: specky-requirements-engineer
|
|
|
3
3
|
description: Use this agent to analyze raw input and produce validated FRD and NFRD documents ready for sdd_init.
|
|
4
4
|
|
|
5
5
|
color: magenta
|
|
6
|
-
|
|
6
|
+
capabilities: ["workspace.read", "workspace.edit", "mcp.specky.sdd_init", "mcp.specky.sdd_discover", "mcp.specky.sdd_import_document", "mcp.specky.sdd_import_transcript", "mcp.specky.sdd_batch_import", "mcp.specky.sdd_validate_ears"]
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
<example>
|
|
@@ -3,7 +3,7 @@ name: specky-research-analyst
|
|
|
3
3
|
description: Use this agent to gather technical context before specification. Scans codebases, imports documents, and produces RESEARCH.md.
|
|
4
4
|
|
|
5
5
|
color: cyan
|
|
6
|
-
|
|
6
|
+
capabilities: ["workspace.read", "web.fetch", "mcp.specky.sdd_scan_codebase", "mcp.specky.sdd_discover", "mcp.specky.sdd_research", "mcp.specky.sdd_import_document", "mcp.specky.sdd_import_transcript", "mcp.specky.sdd_check_ecosystem"]
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
<example>
|
|
@@ -3,7 +3,7 @@ name: specky-sdd-clarify
|
|
|
3
3
|
description: Use this agent to find and resolve ambiguities in requirements, validate EARS patterns, and produce a clarification log.
|
|
4
4
|
|
|
5
5
|
color: yellow
|
|
6
|
-
|
|
6
|
+
capabilities: ["workspace.read", "mcp.specky.sdd_clarify", "mcp.specky.sdd_validate_ears", "mcp.specky.sdd_turnkey_spec"]
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
<example>
|
|
@@ -3,7 +3,7 @@ name: specky-sdd-init
|
|
|
3
3
|
description: Use this agent to initialize the SDD pipeline for a new feature. Creates the .specs/ directory structure and CONSTITUTION.md.
|
|
4
4
|
|
|
5
5
|
color: green
|
|
6
|
-
|
|
6
|
+
capabilities: ["workspace.read", "workspace.command.git", "mcp.specky.sdd_init", "mcp.specky.sdd_scan_codebase", "mcp.specky.sdd_create_branch"]
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
<example>
|
|
@@ -31,7 +31,7 @@ You are the SDD pipeline initializer. Your only job is to scaffold the spec pipe
|
|
|
31
31
|
2. Gather feature name, project type (greenfield/brownfield/migration/API), and constraints
|
|
32
32
|
3. Read existing FRD/NFRD from `docs/requirements/` if they exist
|
|
33
33
|
4. Call `sdd_init` to create `.specs/NNN-feature/` with CONSTITUTION.md and .sdd-state.json
|
|
34
|
-
5. Call `sdd_create_branch
|
|
34
|
+
5. Call `sdd_create_branch`, then execute its returned Git command to create `spec/NNN-feature-name` from `develop` for all pipeline work
|
|
35
35
|
6. For brownfield projects, call `sdd_scan_codebase` to detect the tech stack
|
|
36
36
|
7. Present CONSTITUTION.md to the developer for review
|
|
37
37
|
8. Suggest handoff to `@specky-research-analyst`
|
|
@@ -3,7 +3,7 @@ name: specky-spec-engineer
|
|
|
3
3
|
description: Phase 2 agent that writes SPECIFICATION.md using EARS notation. Every requirement gets a unique REQ-ID, one of the 6 EARS patterns, and measurable acceptance criteria.
|
|
4
4
|
|
|
5
5
|
color: magenta
|
|
6
|
-
|
|
6
|
+
capabilities: ["workspace.read", "mcp.specky.sdd_write_spec", "mcp.specky.sdd_turnkey_spec", "mcp.specky.sdd_validate_ears", "mcp.specky.sdd_figma_to_spec"]
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
<example>
|
|
@@ -3,7 +3,7 @@ name: specky-task-planner
|
|
|
3
3
|
description: Phase 5 agent that writes TASKS.md with dependency-resolved task sequences, REQ-ID traceability, complexity estimates, and parallel markers. Also generates CHECKLIST.md.
|
|
4
4
|
|
|
5
5
|
color: orange
|
|
6
|
-
|
|
6
|
+
capabilities: ["workspace.read", "mcp.specky.sdd_write_tasks", "mcp.specky.sdd_checklist"]
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
<example>
|
|
@@ -3,7 +3,7 @@ name: specky-test-verifier
|
|
|
3
3
|
description: Use this agent to verify test coverage, detect phantom completions, and check spec-code drift.
|
|
4
4
|
|
|
5
5
|
color: yellow
|
|
6
|
-
|
|
6
|
+
capabilities: ["workspace.read", "workspace.command.test", "mcp.specky.sdd_verify_tests", "mcp.specky.sdd_verify_tasks", "mcp.specky.sdd_check_sync", "mcp.specky.sdd_validate_ears", "mcp.specky.sdd_get_status"]
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
<example>
|
|
@@ -28,11 +28,12 @@ You are a test verification specialist. You verify that implementation satisfies
|
|
|
28
28
|
|
|
29
29
|
**Workflow:**
|
|
30
30
|
1. Read the `specky-test-verifier` SKILL.md for verification criteria and gate thresholds
|
|
31
|
-
2.
|
|
32
|
-
3. Call
|
|
33
|
-
4. Call
|
|
34
|
-
5. Call
|
|
35
|
-
6.
|
|
31
|
+
2. Run the detected test command and collect its machine-readable results
|
|
32
|
+
3. Call sdd_verify_tests — parse results, map to REQ-IDs, build coverage report
|
|
33
|
+
4. Call sdd_verify_tasks — detect phantom completions and write VERIFICATION.md
|
|
34
|
+
5. Call sdd_check_sync — detect spec-code drift
|
|
35
|
+
6. Call sdd_validate_ears — re-validate EARS integrity
|
|
36
|
+
7. Present VERIFICATION.md with gate decision
|
|
36
37
|
|
|
37
38
|
**Gate criteria (ALL must pass):**
|
|
38
39
|
- Test pass rate ≥90%
|
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,41 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [3.11.0] - 2026-07-13
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Canonical agent `capabilities:` declarations compiled into target-native tool identifiers for Copilot, Claude Code, Cursor, and OpenCode.
|
|
15
|
+
- `--permission-profile=scoped|prompt` installation modes. The scoped Claude profile derives narrow native, command, and MCP allow rules from installed agent capabilities.
|
|
16
|
+
- Optional GitHub MCP registration with `--integration=github`, including target-aware diagnostics in `specky doctor`.
|
|
17
|
+
- [Target Capabilities](docs/TARGET-CAPABILITIES.md) reference for target rendering, approval boundaries, and GitHub MCP routing.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Initializer, orchestrator, verifier, implementer, and release workflows now declare the Git/test/release capabilities their instructions require.
|
|
22
|
+
- Release workflows distinguish Specky payload generation from authenticated GitHub MCP mutations.
|
|
23
|
+
- APM runtime references are pinned to the package release version rather than `@latest`.
|
|
24
|
+
|
|
25
|
+
## [3.10.2] - 2026-07-13
|
|
26
|
+
|
|
27
|
+
Patch release: Specky logo in VS Code and Cursor MCP / Agent Plugins UI.
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- **`mcpServerIcons`** (`src/utils/server-icon.ts`) — resolves `site/specky-icon.png` to a `file://` URI with `sizes` for stdio MCP clients (VS Code requires local URIs; HTTPS icons are ignored).
|
|
32
|
+
- **Cursor plugin manifest on install** — `specky install --target=cursor` writes `.cursor-plugin/plugin.json` and copies `.cursor/assets/specky-icon.png` so the Specky logo appears in Cursor Agent Plugins.
|
|
33
|
+
- **Repo plugin scaffold** — root `.cursor-plugin/plugin.json` and `mcp.json` for Cursor Marketplace / Git plugin installs.
|
|
34
|
+
- Regression tests for server-icon resolution and cursor-plugin-writer.
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
|
|
38
|
+
- **VS Code / Copilot MCP icon** — server handshake no longer advertises `raw.githubusercontent.com` URLs; uses the packaged PNG via `file://`.
|
|
39
|
+
- **Cursor generic plug icon** — workspace installs get an explicit plugin manifest with logo instead of relying on MCP `serverInfo.icons` alone (still inconsistent in some Cursor MCP views).
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
|
|
43
|
+
- `.gitignore` block ignores vendored `.cursor/assets/`; keeps `.cursor-plugin/plugin.json` team-shareable (same as `.cursor/mcp.json`).
|
|
44
|
+
|
|
10
45
|
## [3.10.1] - 2026-07-13
|
|
11
46
|
|
|
12
47
|
Patch release: dual TASKS.md parser (table + checkbox), honest COMPLIANCE/VERIFICATION persistence, Analyze-phase remediation for blocked gates, and generation quality fixes.
|
package/README.md
CHANGED
|
@@ -50,7 +50,8 @@
|
|
|
50
50
|
| | [Where Specifications Live](#where-specifications-live) | File structure and naming conventions |
|
|
51
51
|
| | [Input Methods](#input-methods-6-ways-to-start) | 6 ways to feed Specky |
|
|
52
52
|
| | [Three Project Types](#three-project-types-one-pipeline) | Greenfield, Brownfield, Modernization |
|
|
53
|
-
| | [
|
|
53
|
+
| | [How to upgrade](#how-to-upgrade) | Bump npm + refresh project assets (no `--target` needed) |
|
|
54
|
+
| | [Staying up to date](#staying-up-to-date) | Update notifications and opt-out |
|
|
54
55
|
| **Pipeline** | [Pipeline and LGTM Gates](#pipeline-and-lgtm-gates) | 10 phases with human review gates |
|
|
55
56
|
| | [All 58 Tools](#all-58-tools) | Complete tool reference by category |
|
|
56
57
|
| | [EARS Notation](#ears-notation) | The 6 requirement patterns |
|
|
@@ -100,7 +101,7 @@ specky install --target=copilot # VS Code + GitHub Copilot (recommended)
|
|
|
100
101
|
specky install --target=claude # Claude Code
|
|
101
102
|
specky install --target=cursor # Cursor
|
|
102
103
|
specky install --target=opencode # OpenCode
|
|
103
|
-
specky install --target=agent-skills #
|
|
104
|
+
specky install --target=agent-skills # Skills-only shared .agents/skills bundle
|
|
104
105
|
```
|
|
105
106
|
|
|
106
107
|
> **Important:** Prefer `--target=...`. The legacy `--ide` flag still works for `copilot`, `claude`, `both`, and `auto`, but it is deprecated in favor of APM-style targets. If Copilot is installed in a workspace, Specky strips Claude hooks from `.claude/settings.json` to prevent Copilot cross-read blocks. See [docs/INSTALL.md](docs/INSTALL.md) for details.
|
|
@@ -113,14 +114,44 @@ npm install --save-dev specky-sdd@latest
|
|
|
113
114
|
npx specky install --target=copilot
|
|
114
115
|
```
|
|
115
116
|
|
|
116
|
-
The CLI installs 13 agents, 22 prompts, 14 skills, 16 hooks,
|
|
117
|
+
The CLI installs 13 agents, 22 prompts, 14 skills, 16 hooks, and target-local MCP registration pinned to the installed version. Canonical agent capabilities compile to the selected harness's native tools; they are not inferred from workflow prose. Use `--permission-profile=scoped` (default) for narrow Claude pre-authorization, or `--permission-profile=prompt` to leave every approval with the host. Specky does **not** pre-authorize arbitrary shell, `rm`, network access, or credentials. Add `--integration=github` only when GitHub MCP routing is required. Run `specky doctor` anytime to validate integrity and configuration.
|
|
117
118
|
|
|
118
|
-
Generated assets are platform-native. `specky install --target=copilot` writes GitHub Copilot agents/prompts with VS Code tool names such as `search`, `agent`, and `specky/sdd_get_status`, plus prompt `agent: agent` frontmatter. `specky install --target=claude` writes Claude Code agents/commands with `Read`, `Glob`, `Grep`, `Task`, and `mcp__specky__sdd_get_status`, with Copilot-only prompt metadata removed.
|
|
119
|
+
Generated assets are platform-native. `specky install --target=copilot` writes GitHub Copilot agents/prompts with VS Code tool names such as `search`, `agent`, and `specky/sdd_get_status`, plus prompt `agent: agent` frontmatter. `specky install --target=claude` writes Claude Code agents/commands with `Read`, `Glob`, `Grep`, `Task`, and `mcp__specky__sdd_get_status`, with Copilot-only prompt metadata removed. Cursor and OpenCode receive their own native vocabulary. `agent-skills` is intentionally skills-only. See [Target Capabilities](docs/TARGET-CAPABILITIES.md) for the full capability matrix, GitHub MCP opt-in, and host approval boundaries.
|
|
119
120
|
|
|
120
121
|
Specky also has an APM governance layer for enterprise package control. `apm.yml` declares the package primitives, targets, and MCP runtime; `apm.lock.yaml` pins primitive hashes; `apm-policy.yml` enforces MCP and tool-name policy. Maintainers and CI can run `specky apm validate`, `specky apm policy`, `specky apm verify-lock`, and `specky apm sbom` before publishing or installing. See [Uso do APM pelo Specky](docs/APM-USAGE.md) for the detailed model, including why APM is not a runtime proxy and why users do not need to install the Microsoft APM CLI.
|
|
121
122
|
|
|
122
123
|
Full walkthroughs per OS, offline install, and CLI reference: [docs/INSTALL.md](docs/INSTALL.md) · [docs/CLI.md](docs/CLI.md).
|
|
123
124
|
|
|
125
|
+
### How to upgrade
|
|
126
|
+
|
|
127
|
+
When a new Specky version is out (banner from `specky doctor` / `specky status`, or [GitHub Releases](https://github.com/paulasilvatech/specky/releases)):
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
# Global CLI (most users)
|
|
131
|
+
npm install -g specky-sdd@latest
|
|
132
|
+
cd your-project
|
|
133
|
+
specky upgrade
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
# Per-project pin (teams)
|
|
138
|
+
npm install --save-dev specky-sdd@latest
|
|
139
|
+
npx specky upgrade
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**You do not need `--target` on upgrade.** `specky upgrade` reads the harness you already installed from `.specky/install.json` and refreshes the same targets — agents, prompts, skills, hooks, and MCP registration (`.mcp.json`, `.vscode/mcp.json`, `.cursor/mcp.json`, or `opencode.json`). It preserves `.specs/` (pipeline artifacts) and `.specky/profile.json` (onboarding answers).
|
|
143
|
+
|
|
144
|
+
Updating only the npm package is not enough: without `specky upgrade`, MCP pins can still point at the old server version.
|
|
145
|
+
|
|
146
|
+
Use `--target` only for a **first install** or when **switching harness** (e.g. Copilot → Cursor):
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
specky install --target=cursor # new target set
|
|
150
|
+
specky install --force --target=copilot # reinstall / repair one target
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
See also [Staying up to date](#staying-up-to-date) for update notifications and opt-out.
|
|
154
|
+
|
|
124
155
|
## Why Specifications Matter in the AI Era
|
|
125
156
|
|
|
126
157
|
```mermaid
|
|
@@ -989,12 +1020,16 @@ Specky tells you about new versions in two ways:
|
|
|
989
1020
|
- **Version drift warning (always on, zero network):** `specky doctor` and `specky status` warn when the assets installed in your project differ from the version of the CLI running them, and suggest `specky upgrade`. The MCP server prints the same warning at startup. This is a local file comparison — no network involved.
|
|
990
1021
|
- **Update banner (once daily):** after `install`, `doctor`, `status`, `upgrade`, or `--version`, the CLI checks the npm registry at most once per day and prints `Update available: vX → vY` when a newer release exists. This is a single GET to `registry.npmjs.org` — no telemetry, nothing sent beyond the request itself. It fails silently offline, is disabled in CI (`CI=true`), and **never runs in `specky serve`** — the MCP server itself never phones home.
|
|
991
1022
|
|
|
992
|
-
Upgrading is
|
|
1023
|
+
Upgrading is two steps — bump the package, then refresh the project:
|
|
993
1024
|
|
|
994
1025
|
```bash
|
|
995
|
-
npm install -g specky-sdd@latest && specky upgrade
|
|
1026
|
+
npm install -g specky-sdd@latest && cd your-project && specky upgrade
|
|
996
1027
|
```
|
|
997
1028
|
|
|
1029
|
+
Per-project installs: `npm install --save-dev specky-sdd@latest && npx specky upgrade`.
|
|
1030
|
+
|
|
1031
|
+
**No `--target` on upgrade** — Specky reuses the targets recorded in `.specky/install.json`. See [How to upgrade](#how-to-upgrade) for the full flow and when `--target` is still required (first install or harness switch).
|
|
1032
|
+
|
|
998
1033
|
`specky upgrade` matters: it refreshes the installed agents, prompts, skills, and hooks **and re-pins `.mcp.json` / `.vscode/mcp.json` to the new version** — updating the npm package alone leaves the MCP registration pointing at the old pinned server.
|
|
999
1034
|
|
|
1000
1035
|
Teams pinning per-project (`npm install --save-dev specky-sdd`) should let [Renovate](https://docs.renovatebot.com/) or [Dependabot](https://docs.github.com/en/code-security/dependabot) propose the `package.json` bump. For release emails, use **Watch → Custom → Releases** on the [GitHub repo](https://github.com/paulasilvatech/specky).
|
|
@@ -1218,9 +1253,9 @@ npm run dev
|
|
|
1218
1253
|
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | node dist/index.js 2>/dev/null
|
|
1219
1254
|
|
|
1220
1255
|
# Run the published image from GHCR (multi-arch: linux/amd64 + linux/arm64)
|
|
1221
|
-
docker pull ghcr.io/paulasilvatech/specky:latest # or pin a release: :3.
|
|
1256
|
+
docker pull ghcr.io/paulasilvatech/specky:latest # or pin a release: :3.11.0
|
|
1222
1257
|
docker run --rm -p 3200:3200 ghcr.io/paulasilvatech/specky:latest
|
|
1223
|
-
curl http://localhost:3200/health # -> {"status":"ok","version":"3.
|
|
1258
|
+
curl http://localhost:3200/health # -> {"status":"ok","version":"3.11.0"}
|
|
1224
1259
|
|
|
1225
1260
|
# Or build and run locally from source
|
|
1226
1261
|
docker build -t specky-sdd:dev .
|
package/SECURITY.md
CHANGED
|
@@ -46,6 +46,10 @@ AI Client → JSON-RPC → Zod .strict() validation → Service layer
|
|
|
46
46
|
|
|
47
47
|
Specky does **not** use `eval()`, `Function()`, `vm.runInNewContext()`, or any dynamic code execution. Template rendering uses string replacement only — no template engines that execute code.
|
|
48
48
|
|
|
49
|
+
### Agent Capability Boundaries
|
|
50
|
+
|
|
51
|
+
The Specky MCP server does not execute arbitrary shell commands or persist GitHub credentials. Generated agents may declare narrowly scoped Git, test, or release-gate capabilities, but the selected host runtime executes and approves those native tools. The optional GitHub MCP integration is registered only with `specky install --integration=github`; GitHub authentication and repository authorization remain with the signed-in host identity. See [Target Capabilities](docs/TARGET-CAPABILITIES.md).
|
|
52
|
+
|
|
49
53
|
### Network Calls
|
|
50
54
|
|
|
51
55
|
The **MCP server makes zero outbound network calls**. All data stays on the user's machine. It communicates only via stdio (JSON-RPC over stdin/stdout) or optional HTTP transport on localhost, and this holds unconditionally — `specky serve` never performs the update check described below.
|
|
@@ -127,7 +131,7 @@ The audit trail's plain hash chain detects corruption but not deliberate rewriti
|
|
|
127
131
|
- Zero `any` types in source code — enforced by CI
|
|
128
132
|
- All schemas use `.strict()` — rejects unknown fields
|
|
129
133
|
- `FileManager` is the sole I/O boundary — no direct `fs` calls in tools or other services
|
|
130
|
-
-
|
|
134
|
+
- The Specky MCP server does not execute shell commands; target runtimes may execute only the explicitly declared, host-approved agent capabilities
|
|
131
135
|
|
|
132
136
|
## Security Best Practices for Users
|
|
133
137
|
|
package/apm-policy.yml
CHANGED
package/apm.lock.yaml
CHANGED
|
@@ -2,21 +2,21 @@
|
|
|
2
2
|
schemaVersion: 1
|
|
3
3
|
package:
|
|
4
4
|
name: specky-sdd
|
|
5
|
-
version: 3.
|
|
5
|
+
version: 3.11.0
|
|
6
6
|
primitives:
|
|
7
|
-
.apm/agents/specky-design-architect.agent.md: sha256:
|
|
8
|
-
.apm/agents/specky-implementer.agent.md: sha256:
|
|
9
|
-
.apm/agents/specky-onboarding.agent.md: sha256:
|
|
10
|
-
.apm/agents/specky-orchestrator.agent.md: sha256:
|
|
11
|
-
.apm/agents/specky-quality-reviewer.agent.md: sha256:
|
|
12
|
-
.apm/agents/specky-release-engineer.agent.md: sha256:
|
|
13
|
-
.apm/agents/specky-requirements-engineer.agent.md: sha256:
|
|
14
|
-
.apm/agents/specky-research-analyst.agent.md: sha256:
|
|
15
|
-
.apm/agents/specky-sdd-clarify.agent.md: sha256:
|
|
16
|
-
.apm/agents/specky-sdd-init.agent.md: sha256:
|
|
17
|
-
.apm/agents/specky-spec-engineer.agent.md: sha256:
|
|
18
|
-
.apm/agents/specky-task-planner.agent.md: sha256:
|
|
19
|
-
.apm/agents/specky-test-verifier.agent.md: sha256:
|
|
7
|
+
.apm/agents/specky-design-architect.agent.md: sha256:206bb609b3f1547ede880a61f9e4b3a3a9c1df22dc33310fd5af1452dbeaff0f
|
|
8
|
+
.apm/agents/specky-implementer.agent.md: sha256:4768d48f96d6826a06a1a7ead47c0f74a3caa3afc7d0f93e03faa3b6c5ad49df
|
|
9
|
+
.apm/agents/specky-onboarding.agent.md: sha256:eb3e04effaedfece9b74233f0f1e59ceceafe78db2ec940c97d785b318b2e8d2
|
|
10
|
+
.apm/agents/specky-orchestrator.agent.md: sha256:fea1cc4d8498fa762eba4409f44f624a7b256de49d0215bce1c5a4013032f4cb
|
|
11
|
+
.apm/agents/specky-quality-reviewer.agent.md: sha256:bb81e074e4fa8887745e3da341cf11eb8c10978cc4989cd3a2c221798fad2ce0
|
|
12
|
+
.apm/agents/specky-release-engineer.agent.md: sha256:679125e0fe1b2da40ca0142848eecdd0e518eb279a927acdbf006bf7de638df5
|
|
13
|
+
.apm/agents/specky-requirements-engineer.agent.md: sha256:9393480399ced54dd8b201e6821103c9ed9e27fdbdf7426745e0da9535f60ddb
|
|
14
|
+
.apm/agents/specky-research-analyst.agent.md: sha256:92cd4041e0b021efa310e2cf12abb3c45e8f08e490e4b9bb275a81f4c4845cd9
|
|
15
|
+
.apm/agents/specky-sdd-clarify.agent.md: sha256:0dac1b774dc616eecddd5937e6ee520de32cdb12482fe3c25181a9e199d82302
|
|
16
|
+
.apm/agents/specky-sdd-init.agent.md: sha256:7dbba26d70b4fa9aada59e9a1efb8fa811cbe94fbf4c7429940ce7941393f3f2
|
|
17
|
+
.apm/agents/specky-spec-engineer.agent.md: sha256:dc639dde08405d06199b0257363d8ae70e5e14f3dcf991b43e5529e56d241ae8
|
|
18
|
+
.apm/agents/specky-task-planner.agent.md: sha256:124ebb0dde85dded8d7dd57ef728fa9838a78884bbd9de0f89f74879ae6d0e85
|
|
19
|
+
.apm/agents/specky-test-verifier.agent.md: sha256:e1386f81ae1fe9694c34d5b518e408804f2709237e137ce28bab48819e82f924
|
|
20
20
|
.apm/hooks/scripts/specky-artifact-validator.sh: sha256:2c255e3221cca919ace520ce319c66cc4904aa9c917ce08a52547fe63f8d9770
|
|
21
21
|
.apm/hooks/scripts/specky-auto-checkpoint.sh: sha256:46d5a336b20c844469574b2281b5cae24ee5116547a262bb160135aaef38d62e
|
|
22
22
|
.apm/hooks/scripts/specky-branch-validator.sh: sha256:73256941bdc4aaac518935214c6f0029f32b1529307088243142fe7423594cf6
|
|
@@ -77,5 +77,5 @@ primitives:
|
|
|
77
77
|
.apm/skills/specky-spec-engineer/SKILL.md: sha256:b5722dacc513a69b54a2d474e1dfa4a25029c5f6f2a930fae3b0ed8f3c9eb49e
|
|
78
78
|
.apm/skills/specky-task-planner/SKILL.md: sha256:bf391eaa0541ae507f99eacd18a8747b597bcde4ff84d9a389fdc4aad5e76ed7
|
|
79
79
|
.apm/skills/specky-test-verifier/SKILL.md: sha256:7e663a68f597f409a7209e07830b90b467052583bde8557eed389848baaa8609
|
|
80
|
-
apm-policy.yml: sha256:
|
|
81
|
-
apm.yml: sha256:
|
|
80
|
+
apm-policy.yml: sha256:560cfde2c8efe36bdc2cbb095f259506d51312249d3b4cee67640e244e972530
|
|
81
|
+
apm.yml: sha256:ac0a62e81a271f1a2de440018d3463991a8c1ee8dd376e4024eea27d1b1c5b3f
|
package/apm.yml
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: specky-sdd
|
|
2
|
-
version: 3.
|
|
2
|
+
version: 3.11.0
|
|
3
3
|
description: "Agentic Spec-Driven Development — 10-phase pipeline with 58 MCP tools, 13 agents, 22 prompts, 14 skills, 16 hooks, EARS notation, model routing, and enterprise security"
|
|
4
4
|
author: Paula Silva
|
|
5
5
|
license: MIT
|
|
@@ -32,7 +32,7 @@ mcp:
|
|
|
32
32
|
registry: false
|
|
33
33
|
transport: stdio
|
|
34
34
|
command: npx
|
|
35
|
-
args: ["-y", "specky-sdd@
|
|
35
|
+
args: ["-y", "specky-sdd@3.11.0", "serve"]
|
|
36
36
|
tools: ["sdd_*"]
|
|
37
37
|
|
|
38
38
|
dependencies:
|
|
@@ -41,7 +41,7 @@ dependencies:
|
|
|
41
41
|
registry: false
|
|
42
42
|
transport: stdio
|
|
43
43
|
command: npx
|
|
44
|
-
args: ["-y", "specky-sdd@
|
|
44
|
+
args: ["-y", "specky-sdd@3.11.0"]
|
|
45
45
|
tools: ["*"]
|
|
46
46
|
|
|
47
47
|
scripts:
|
package/config.yml
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAwBA,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwgBD,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAuEpE"}
|