specky-sdd 3.7.3 → 3.9.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.
Files changed (140) hide show
  1. package/.apm/agents/{design-architect.agent.md → specky-design-architect.agent.md} +2 -2
  2. package/.apm/agents/{implementer.agent.md → specky-implementer.agent.md} +9 -9
  3. package/.apm/agents/specky-onboarding.agent.md +2 -2
  4. package/.apm/agents/specky-orchestrator.agent.md +10 -10
  5. package/.apm/agents/{quality-reviewer.agent.md → specky-quality-reviewer.agent.md} +6 -6
  6. package/.apm/agents/{release-engineer.agent.md → specky-release-engineer.agent.md} +11 -11
  7. package/.apm/agents/{requirements-engineer.agent.md → specky-requirements-engineer.agent.md} +8 -8
  8. package/.apm/agents/{research-analyst.agent.md → specky-research-analyst.agent.md} +9 -9
  9. package/.apm/agents/{sdd-clarify.agent.md → specky-sdd-clarify.agent.md} +4 -3
  10. package/.apm/agents/{sdd-init.agent.md → specky-sdd-init.agent.md} +3 -3
  11. package/.apm/agents/{spec-engineer.agent.md → specky-spec-engineer.agent.md} +2 -2
  12. package/.apm/agents/{task-planner.agent.md → specky-task-planner.agent.md} +2 -2
  13. package/.apm/agents/{test-verifier.agent.md → specky-test-verifier.agent.md} +2 -2
  14. package/.apm/hooks/scripts/{artifact-validator.sh → specky-artifact-validator.sh} +11 -11
  15. package/.apm/hooks/scripts/{auto-checkpoint.sh → specky-auto-checkpoint.sh} +1 -1
  16. package/.apm/hooks/scripts/{branch-validator.sh → specky-branch-validator.sh} +3 -3
  17. package/.apm/hooks/scripts/{cognitive-debt-alert.sh → specky-cognitive-debt-alert.sh} +1 -1
  18. package/.apm/hooks/scripts/{drift-monitor.sh → specky-drift-monitor.sh} +1 -1
  19. package/.apm/hooks/scripts/{ears-validator.sh → specky-ears-validator.sh} +1 -1
  20. package/.apm/hooks/scripts/{lgtm-gate.sh → specky-lgtm-gate.sh} +1 -1
  21. package/.apm/hooks/scripts/{metrics-dashboard.sh → specky-metrics-dashboard.sh} +2 -2
  22. package/.apm/hooks/scripts/{phase-gate.sh → specky-phase-gate.sh} +1 -1
  23. package/.apm/hooks/scripts/{pipeline-guard.sh → specky-pipeline-guard.sh} +3 -3
  24. package/.apm/hooks/scripts/{release-gate.sh → specky-release-gate.sh} +1 -1
  25. package/.apm/hooks/scripts/{security-scan.sh → specky-security-scan.sh} +2 -2
  26. package/.apm/hooks/scripts/{session-banner.sh → specky-session-banner.sh} +4 -4
  27. package/.apm/hooks/scripts/{spec-quality.sh → specky-spec-quality.sh} +1 -1
  28. package/.apm/hooks/scripts/{spec-sync.sh → specky-spec-sync.sh} +2 -2
  29. package/.apm/hooks/scripts/{task-tracer.sh → specky-task-tracer.sh} +1 -1
  30. package/.apm/hooks/sdd-hooks.json +51 -51
  31. package/.apm/hooks/specky-run.sh +32 -0
  32. package/.apm/instructions/claude-instructions.instructions.md +74 -0
  33. package/.apm/instructions/copilot-instructions.instructions.md +19 -25
  34. package/.apm/instructions/cursor-instructions.instructions.md +20 -0
  35. package/.apm/prompts/specky-api.prompt.md +2 -2
  36. package/.apm/prompts/specky-brownfield.prompt.md +2 -2
  37. package/.apm/prompts/specky-clarify.prompt.md +1 -1
  38. package/.apm/prompts/specky-debug-hook.prompt.md +1 -1
  39. package/.apm/prompts/specky-deploy.prompt.md +1 -1
  40. package/.apm/prompts/specky-design.prompt.md +1 -1
  41. package/.apm/prompts/specky-from-meeting.prompt.md +1 -1
  42. package/.apm/prompts/specky-greenfield.prompt.md +2 -2
  43. package/.apm/prompts/specky-implement.prompt.md +1 -1
  44. package/.apm/prompts/specky-migration.prompt.md +3 -3
  45. package/.apm/prompts/specky-onboarding.prompt.md +1 -0
  46. package/.apm/prompts/specky-pipeline-status.prompt.md +1 -0
  47. package/.apm/prompts/specky-release.prompt.md +1 -1
  48. package/.apm/prompts/specky-research.prompt.md +1 -1
  49. package/.apm/prompts/specky-specify.prompt.md +1 -1
  50. package/.apm/prompts/specky-tasks.prompt.md +1 -1
  51. package/.apm/prompts/specky-verify.prompt.md +1 -1
  52. package/.apm/skills/specky-design-architect/SKILL.md +21 -0
  53. package/.apm/skills/{implementer → specky-implementer}/SKILL.md +3 -3
  54. package/.apm/skills/specky-onboarding/SKILL.md +37 -31
  55. package/.apm/skills/specky-orchestrator/SKILL.md +28 -28
  56. package/.apm/skills/specky-quality-reviewer/SKILL.md +28 -0
  57. package/.apm/skills/{release-engineer → specky-release-engineer}/SKILL.md +7 -7
  58. package/.apm/skills/{research-analyst → specky-research-analyst}/SKILL.md +2 -2
  59. package/.apm/skills/specky-sdd-clarify/SKILL.md +25 -0
  60. package/.apm/skills/specky-sdd-init/SKILL.md +28 -0
  61. package/.apm/skills/{sdd-markdown-standard → specky-sdd-markdown-standard}/SKILL.md +2 -2
  62. package/.apm/skills/{sdd-pipeline → specky-sdd-pipeline}/SKILL.md +42 -49
  63. package/.apm/skills/specky-spec-engineer/SKILL.md +27 -0
  64. package/.apm/skills/specky-task-planner/SKILL.md +20 -0
  65. package/.apm/skills/{test-verifier → specky-test-verifier}/SKILL.md +2 -2
  66. package/CHANGELOG.md +57 -0
  67. package/README.md +189 -96
  68. package/apm-policy.yml +19 -0
  69. package/apm.lock.yaml +70 -61
  70. package/apm.yml +10 -7
  71. package/config.yml +35 -33
  72. package/dist/claude-hooks.json +51 -51
  73. package/dist/cli/commands/compile.d.ts +7 -0
  74. package/dist/cli/commands/compile.d.ts.map +1 -0
  75. package/dist/cli/commands/compile.js +127 -0
  76. package/dist/cli/commands/compile.js.map +1 -0
  77. package/dist/cli/commands/doctor.d.ts.map +1 -1
  78. package/dist/cli/commands/doctor.js +167 -18
  79. package/dist/cli/commands/doctor.js.map +1 -1
  80. package/dist/cli/commands/hooks.js +2 -2
  81. package/dist/cli/commands/hooks.js.map +1 -1
  82. package/dist/cli/commands/init.d.ts +1 -0
  83. package/dist/cli/commands/init.d.ts.map +1 -1
  84. package/dist/cli/commands/init.js +121 -19
  85. package/dist/cli/commands/init.js.map +1 -1
  86. package/dist/cli/commands/upgrade.d.ts.map +1 -1
  87. package/dist/cli/commands/upgrade.js +5 -2
  88. package/dist/cli/commands/upgrade.js.map +1 -1
  89. package/dist/cli/index.js +21 -2
  90. package/dist/cli/index.js.map +1 -1
  91. package/dist/cli/lib/apm/policy.d.ts.map +1 -1
  92. package/dist/cli/lib/apm/policy.js +47 -33
  93. package/dist/cli/lib/apm/policy.js.map +1 -1
  94. package/dist/cli/lib/asset-copier.d.ts +13 -0
  95. package/dist/cli/lib/asset-copier.d.ts.map +1 -1
  96. package/dist/cli/lib/asset-copier.js +107 -32
  97. package/dist/cli/lib/asset-copier.js.map +1 -1
  98. package/dist/cli/lib/gitignore-writer.d.ts.map +1 -1
  99. package/dist/cli/lib/gitignore-writer.js +11 -0
  100. package/dist/cli/lib/gitignore-writer.js.map +1 -1
  101. package/dist/cli/lib/harness/compilers/agent-skills.d.ts +7 -0
  102. package/dist/cli/lib/harness/compilers/agent-skills.d.ts.map +1 -0
  103. package/dist/cli/lib/harness/compilers/agent-skills.js +23 -0
  104. package/dist/cli/lib/harness/compilers/agent-skills.js.map +1 -0
  105. package/dist/cli/lib/harness/compilers/cursor.d.ts +8 -0
  106. package/dist/cli/lib/harness/compilers/cursor.d.ts.map +1 -0
  107. package/dist/cli/lib/harness/compilers/cursor.js +28 -0
  108. package/dist/cli/lib/harness/compilers/cursor.js.map +1 -0
  109. package/dist/cli/lib/harness/compilers/opencode.d.ts +7 -0
  110. package/dist/cli/lib/harness/compilers/opencode.d.ts.map +1 -0
  111. package/dist/cli/lib/harness/compilers/opencode.js +26 -0
  112. package/dist/cli/lib/harness/compilers/opencode.js.map +1 -0
  113. package/dist/cli/lib/harness/index.d.ts.map +1 -1
  114. package/dist/cli/lib/harness/index.js +6 -0
  115. package/dist/cli/lib/harness/index.js.map +1 -1
  116. package/dist/cli/lib/harness/tool-map.d.ts.map +1 -1
  117. package/dist/cli/lib/harness/tool-map.js +23 -1
  118. package/dist/cli/lib/harness/tool-map.js.map +1 -1
  119. package/dist/cli/lib/harness/types.d.ts +2 -2
  120. package/dist/cli/lib/harness/types.d.ts.map +1 -1
  121. package/dist/cli/lib/mcp-writer.d.ts +1 -0
  122. package/dist/cli/lib/mcp-writer.d.ts.map +1 -1
  123. package/dist/cli/lib/mcp-writer.js +5 -1
  124. package/dist/cli/lib/mcp-writer.js.map +1 -1
  125. package/dist/cli/lib/paths.d.ts +19 -0
  126. package/dist/cli/lib/paths.d.ts.map +1 -1
  127. package/dist/cli/lib/paths.js +21 -0
  128. package/dist/cli/lib/paths.js.map +1 -1
  129. package/dist/copilot-hooks.json +46 -46
  130. package/dist/cursor-hooks.json +288 -0
  131. package/dist/index.js +2 -3
  132. package/dist/index.js.map +1 -1
  133. package/dist/services/state-machine.d.ts +4 -3
  134. package/dist/services/state-machine.d.ts.map +1 -1
  135. package/dist/services/state-machine.js +17 -9
  136. package/dist/services/state-machine.js.map +1 -1
  137. package/package.json +6 -7
  138. package/site/specky-icon.png +0 -0
  139. /package/.apm/skills/{sdd-pipeline → specky-sdd-pipeline}/references/ears-notation.md +0 -0
  140. /package/.apm/skills/{sdd-pipeline → specky-sdd-pipeline}/references/model-routing.md +0 -0
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: specky-spec-engineer
3
+ description: "Use for Phase 2 (Specify): write SPECIFICATION.md with EARS, REQ-IDs, and acceptance criteria. Trigger on sdd_write_spec, sdd_turnkey_spec, sdd_validate_ears, or /specky-specify."
4
+ ---
5
+
6
+ # Phase 2 — Specify
7
+
8
+ ## Prerequisites
9
+ - CONSTITUTION.md and RESEARCH.md exist on `spec/NNN-*`
10
+
11
+ ## Workflow
12
+ 1. Read CONSTITUTION.md and RESEARCH.md
13
+ 2. Call `sdd_write_spec` or `sdd_turnkey_spec`
14
+ 3. Optional: call `sdd_figma_to_spec`
15
+ 4. Call `sdd_validate_ears` and fix every failure
16
+ 5. Present SPECIFICATION.md for LGTM at the Phase 2 gate
17
+
18
+ ## EARS
19
+ Use the canonical 6 patterns in `../specky-sdd-pipeline/references/ears-notation.md`.
20
+
21
+ ## REQ-ID Format
22
+ `REQ-{DOMAIN}-{NNN}` — unique, uppercase domain, zero-padded sequence.
23
+
24
+ ## Hard Rules
25
+ - Every requirement needs an EARS pattern, REQ-ID, and measurable acceptance criteria
26
+ - Always run `sdd_validate_ears` before presenting
27
+ - Branch must be `spec/NNN-*`
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: specky-task-planner
3
+ description: "Use for Phase 5 (Tasks): produce TASKS.md and CHECKLIST.md with dependencies, REQ traceability, and complexity. Trigger on sdd_write_tasks, sdd_checklist, or /specky-tasks."
4
+ ---
5
+
6
+ # Phase 5 — Tasks
7
+
8
+ ## Prerequisites
9
+ - Approved DESIGN.md at the Phase 4 LGTM gate
10
+
11
+ ## Workflow
12
+ 1. Read DESIGN.md and SPECIFICATION.md
13
+ 2. Call `sdd_write_tasks` to create TASK-NNN items with [P], S/M/L/XL, dependencies, and REQ links
14
+ 3. Call `sdd_checklist` for security, testing, and NFR checks
15
+ 4. Present TASKS.md and CHECKLIST.md for LGTM at the Phase 5 gate
16
+
17
+ ## Hard Rules
18
+ - Every task traces to at least one REQ-ID
19
+ - Parallel tasks are marked `[P]`
20
+ - Dependencies are explicit
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: test-verifier
2
+ name: specky-test-verifier
3
3
  description: "This skill should be used when the user asks to 'verify tests', 'check coverage', 'detect phantom completions', 'check spec drift', or needs guidance on Phase 8 verification. Also trigger on 'sdd test', 'test traceability', 'verification report', or 'gate criteria'."
4
4
  ---
5
5
 
@@ -214,4 +214,4 @@ Produce standardized verification artifact:
214
214
 
215
215
  ## Companion Agent
216
216
 
217
- **@test-verifier** — Phase 8 agent that calls these tools in sequence. Load this skill as first step.
217
+ **@specky-test-verifier** — Phase 8 agent that calls these tools in sequence. Load this skill as first step.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,62 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [3.9.0] - 2026-07-09
11
+
12
+ Cursor-native hook automation, six dedicated phase skills, full `specky doctor` install parity across harnesses, and cross-target instruction isolation fixes.
13
+
14
+ ### Added
15
+
16
+ - **Cursor-native hook automation.** `specky install --target=cursor` now installs `.cursor/hooks.json` (Cursor schema v1), the `.cursor/hooks/specky-run.sh` stdin adapter, and `.cursor/hooks/scripts/` (16 scripts). Blocking gates (artifact validation, phase gate, security scan, release gate) deny unsafe actions with `failClosed`; advisory gates warn without blocking.
17
+ - **Six dedicated phase companion skills** (14 total): `specky-sdd-init`, `specky-spec-engineer`, `specky-sdd-clarify`, `specky-design-architect`, `specky-task-planner`, and `specky-quality-reviewer`. Each phase agent loads its dedicated skill first; `specky-sdd-pipeline` remains the shared cross-phase overview.
18
+ - **Dedicated Cursor instruction primitive** compiled to `.cursor/rules/specky-sdd.mdc` with `alwaysApply` and a neutral title.
19
+ - **Dedicated Claude instruction primitive** compiled to `.claude/rules/specky-sdd.md` with neutral naming (no Copilot title or `@workspace` references).
20
+ - **Full `specky doctor` install parity** for Cursor (11 checks), Claude (10), Copilot (9), and OpenCode (7): agent/prompt/skill/hook-script counts, rule format, MCP registration, and a cross-target leakage scan.
21
+ - Regression suites: `cursor-target`, `copilot-target`, `claude-target`, and `opencode-target`.
22
+ - APM policy now allows the Cursor-native hook events (`sessionStart`, `beforeSubmitPrompt`, `beforeMCPExecution`, `afterMCPExecution`, `preToolUse`, `postToolUse`, `stop`).
23
+
24
+ ### Changed
25
+
26
+ - Renamed the hook-manifest generator `scripts/build-claude-hooks.mjs` → `scripts/build-hook-manifests.mjs`; it now emits Claude, Copilot, **and** Cursor manifests from the single `.apm/hooks/sdd-hooks.json` source of truth.
27
+ - `specky compile` is now target-aware: each target renders only its own instruction primitive (with the Copilot primitive as the neutral fallback) instead of concatenating every primitive into each root context file.
28
+ - EARS notation is unified to the canonical six patterns (Ubiquitous, Event-driven, State-driven, Optional, Unwanted, Complex) across the rule, phase agents, and the `specky-sdd-pipeline` skill.
29
+ - All slash-command prompts now carry an `argument-hint`.
30
+
31
+ ### Fixed
32
+
33
+ - Copilot installs no longer copy the Cursor/Claude instruction primitives into `.github/instructions/` (cross-target leak); only the Copilot instruction is installed and stale primitives are removed.
34
+ - Claude installs no longer receive the Copilot-named rule (`copilot-instructions.md`) or `@workspace`/`applyTo` leakage; the stale file is removed on install.
35
+ - Copilot instruction content: merged the orphaned `## Rule #7`/`## Rule #8` headings back into the Key Rules list and replaced the outdated `@workspace /prompt-name` invocation with `/prompt-name`.
36
+ - Corrected duplicated workflow step numbering in phase agents.
37
+
38
+ ## [3.8.0] - 2026-07-07
39
+
40
+ Wave 1 multi-harness APM targets (Cursor, OpenCode, Agent Skills) plus a multi-feature phase-advancement fix.
41
+
42
+ ### Added
43
+
44
+ - Wave 1 APM target support for `cursor`, `opencode`, and `agent-skills`, including target-native compiler registration, install paths, MCP config writers, and regression coverage.
45
+ - `specky install --target=<targets>` as the canonical APM-aligned install selector. The legacy `--ide` flag remains as a deprecated alias for backward compatibility.
46
+ - `specky compile --target=<targets>` for compiling instruction primitives into root context files (`.github/copilot-instructions.md`, `CLAUDE.md`, or `AGENTS.md`).
47
+ - `.markdownlint.json` configuration codifying the repository's Markdown conventions (Keep a Changelog sibling headings, intentional inline HTML in `README.md`) so documentation lint is clean.
48
+ - Regression test verifying that pre-existing Claude hooks in `.claude/settings.json` are removed when Copilot is installed into the same workspace, while non-hook user settings are preserved.
49
+
50
+ ### Changed
51
+
52
+ - **All APM primitives are now namespaced with a `specky-` prefix** (agents, skills, and hook scripts; prompts already carried the prefix) to avoid collisions with other packages installed in the same workspace. Agent mentions change accordingly (for example `@spec-engineer` is now `@specky-spec-engineer`). The Copilot instruction primitive keeps the reserved `.github/copilot-instructions.md` filename.
53
+ - `specky doctor` now validates installed `targets[]` metadata instead of assuming only Copilot/Claude IDE scopes.
54
+ - Copilot-inclusive installs strip Claude hooks from `.claude/settings.json` even when installing both Copilot and Claude assets, preventing Copilot hook cross-read blocks.
55
+ - APM manifest and policy now use canonical target names and include Cursor/OpenCode target isolation checks.
56
+
57
+ ### Fixed
58
+
59
+ - Fixed multi-feature phase advancement so artifact validation uses the requested feature number instead of always validating `state.features[0]`.
60
+ - Confirmed existing diagram persistence and REQ-ID test generation regressions remain covered by passing tests.
61
+
62
+ ## [3.7.3] - 2026-07-07
63
+
64
+ APM governance, primitive lockfiles, and enterprise package validation.
65
+
10
66
  ### Added
11
67
 
12
68
  - APM governance commands: `specky apm validate`, `specky apm lock`, `specky apm verify-lock`, `specky apm policy`, `specky apm audit`, and `specky apm sbom`.
@@ -481,6 +537,7 @@ default array.
481
537
  **Regression test (`tests/integration/status-detection.test.ts`):**
482
538
 
483
539
  4 new tests covering:
540
+
484
541
  1. Greenfield (no `.specs/`) → features:[] + current_phase:init ✅
485
542
  2. Single feature in progress → detected with correct phase/progress ✅
486
543
  3. Multiple features → aggregated independently with per-feature state ✅