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.
- package/.apm/agents/{design-architect.agent.md → specky-design-architect.agent.md} +2 -2
- package/.apm/agents/{implementer.agent.md → specky-implementer.agent.md} +9 -9
- package/.apm/agents/specky-onboarding.agent.md +2 -2
- package/.apm/agents/specky-orchestrator.agent.md +10 -10
- package/.apm/agents/{quality-reviewer.agent.md → specky-quality-reviewer.agent.md} +6 -6
- package/.apm/agents/{release-engineer.agent.md → specky-release-engineer.agent.md} +11 -11
- package/.apm/agents/{requirements-engineer.agent.md → specky-requirements-engineer.agent.md} +8 -8
- package/.apm/agents/{research-analyst.agent.md → specky-research-analyst.agent.md} +9 -9
- package/.apm/agents/{sdd-clarify.agent.md → specky-sdd-clarify.agent.md} +4 -3
- package/.apm/agents/{sdd-init.agent.md → specky-sdd-init.agent.md} +3 -3
- package/.apm/agents/{spec-engineer.agent.md → specky-spec-engineer.agent.md} +2 -2
- package/.apm/agents/{task-planner.agent.md → specky-task-planner.agent.md} +2 -2
- package/.apm/agents/{test-verifier.agent.md → specky-test-verifier.agent.md} +2 -2
- package/.apm/hooks/scripts/{artifact-validator.sh → specky-artifact-validator.sh} +11 -11
- package/.apm/hooks/scripts/{auto-checkpoint.sh → specky-auto-checkpoint.sh} +1 -1
- package/.apm/hooks/scripts/{branch-validator.sh → specky-branch-validator.sh} +3 -3
- package/.apm/hooks/scripts/{cognitive-debt-alert.sh → specky-cognitive-debt-alert.sh} +1 -1
- package/.apm/hooks/scripts/{drift-monitor.sh → specky-drift-monitor.sh} +1 -1
- package/.apm/hooks/scripts/{ears-validator.sh → specky-ears-validator.sh} +1 -1
- package/.apm/hooks/scripts/{lgtm-gate.sh → specky-lgtm-gate.sh} +1 -1
- package/.apm/hooks/scripts/{metrics-dashboard.sh → specky-metrics-dashboard.sh} +2 -2
- package/.apm/hooks/scripts/{phase-gate.sh → specky-phase-gate.sh} +1 -1
- package/.apm/hooks/scripts/{pipeline-guard.sh → specky-pipeline-guard.sh} +3 -3
- package/.apm/hooks/scripts/{release-gate.sh → specky-release-gate.sh} +1 -1
- package/.apm/hooks/scripts/{security-scan.sh → specky-security-scan.sh} +2 -2
- package/.apm/hooks/scripts/{session-banner.sh → specky-session-banner.sh} +4 -4
- package/.apm/hooks/scripts/{spec-quality.sh → specky-spec-quality.sh} +1 -1
- package/.apm/hooks/scripts/{spec-sync.sh → specky-spec-sync.sh} +2 -2
- package/.apm/hooks/scripts/{task-tracer.sh → specky-task-tracer.sh} +1 -1
- package/.apm/hooks/sdd-hooks.json +51 -51
- package/.apm/hooks/specky-run.sh +32 -0
- package/.apm/instructions/claude-instructions.instructions.md +74 -0
- package/.apm/instructions/copilot-instructions.instructions.md +19 -25
- package/.apm/instructions/cursor-instructions.instructions.md +20 -0
- package/.apm/prompts/specky-api.prompt.md +2 -2
- package/.apm/prompts/specky-brownfield.prompt.md +2 -2
- package/.apm/prompts/specky-clarify.prompt.md +1 -1
- package/.apm/prompts/specky-debug-hook.prompt.md +1 -1
- package/.apm/prompts/specky-deploy.prompt.md +1 -1
- package/.apm/prompts/specky-design.prompt.md +1 -1
- package/.apm/prompts/specky-from-meeting.prompt.md +1 -1
- package/.apm/prompts/specky-greenfield.prompt.md +2 -2
- package/.apm/prompts/specky-implement.prompt.md +1 -1
- package/.apm/prompts/specky-migration.prompt.md +3 -3
- package/.apm/prompts/specky-onboarding.prompt.md +1 -0
- package/.apm/prompts/specky-pipeline-status.prompt.md +1 -0
- package/.apm/prompts/specky-release.prompt.md +1 -1
- package/.apm/prompts/specky-research.prompt.md +1 -1
- package/.apm/prompts/specky-specify.prompt.md +1 -1
- package/.apm/prompts/specky-tasks.prompt.md +1 -1
- package/.apm/prompts/specky-verify.prompt.md +1 -1
- package/.apm/skills/specky-design-architect/SKILL.md +21 -0
- package/.apm/skills/{implementer → specky-implementer}/SKILL.md +3 -3
- package/.apm/skills/specky-onboarding/SKILL.md +37 -31
- package/.apm/skills/specky-orchestrator/SKILL.md +28 -28
- package/.apm/skills/specky-quality-reviewer/SKILL.md +28 -0
- package/.apm/skills/{release-engineer → specky-release-engineer}/SKILL.md +7 -7
- package/.apm/skills/{research-analyst → specky-research-analyst}/SKILL.md +2 -2
- package/.apm/skills/specky-sdd-clarify/SKILL.md +25 -0
- package/.apm/skills/specky-sdd-init/SKILL.md +28 -0
- package/.apm/skills/{sdd-markdown-standard → specky-sdd-markdown-standard}/SKILL.md +2 -2
- package/.apm/skills/{sdd-pipeline → specky-sdd-pipeline}/SKILL.md +42 -49
- package/.apm/skills/specky-spec-engineer/SKILL.md +27 -0
- package/.apm/skills/specky-task-planner/SKILL.md +20 -0
- package/.apm/skills/{test-verifier → specky-test-verifier}/SKILL.md +2 -2
- package/CHANGELOG.md +57 -0
- package/README.md +189 -96
- package/apm-policy.yml +19 -0
- package/apm.lock.yaml +70 -61
- package/apm.yml +10 -7
- package/config.yml +35 -33
- package/dist/claude-hooks.json +51 -51
- package/dist/cli/commands/compile.d.ts +7 -0
- package/dist/cli/commands/compile.d.ts.map +1 -0
- package/dist/cli/commands/compile.js +127 -0
- package/dist/cli/commands/compile.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +167 -18
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/hooks.js +2 -2
- package/dist/cli/commands/hooks.js.map +1 -1
- package/dist/cli/commands/init.d.ts +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +121 -19
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/upgrade.d.ts.map +1 -1
- package/dist/cli/commands/upgrade.js +5 -2
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/index.js +21 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/lib/apm/policy.d.ts.map +1 -1
- package/dist/cli/lib/apm/policy.js +47 -33
- package/dist/cli/lib/apm/policy.js.map +1 -1
- package/dist/cli/lib/asset-copier.d.ts +13 -0
- package/dist/cli/lib/asset-copier.d.ts.map +1 -1
- package/dist/cli/lib/asset-copier.js +107 -32
- package/dist/cli/lib/asset-copier.js.map +1 -1
- package/dist/cli/lib/gitignore-writer.d.ts.map +1 -1
- package/dist/cli/lib/gitignore-writer.js +11 -0
- package/dist/cli/lib/gitignore-writer.js.map +1 -1
- package/dist/cli/lib/harness/compilers/agent-skills.d.ts +7 -0
- package/dist/cli/lib/harness/compilers/agent-skills.d.ts.map +1 -0
- package/dist/cli/lib/harness/compilers/agent-skills.js +23 -0
- package/dist/cli/lib/harness/compilers/agent-skills.js.map +1 -0
- package/dist/cli/lib/harness/compilers/cursor.d.ts +8 -0
- package/dist/cli/lib/harness/compilers/cursor.d.ts.map +1 -0
- package/dist/cli/lib/harness/compilers/cursor.js +28 -0
- package/dist/cli/lib/harness/compilers/cursor.js.map +1 -0
- package/dist/cli/lib/harness/compilers/opencode.d.ts +7 -0
- package/dist/cli/lib/harness/compilers/opencode.d.ts.map +1 -0
- package/dist/cli/lib/harness/compilers/opencode.js +26 -0
- package/dist/cli/lib/harness/compilers/opencode.js.map +1 -0
- package/dist/cli/lib/harness/index.d.ts.map +1 -1
- package/dist/cli/lib/harness/index.js +6 -0
- package/dist/cli/lib/harness/index.js.map +1 -1
- package/dist/cli/lib/harness/tool-map.d.ts.map +1 -1
- package/dist/cli/lib/harness/tool-map.js +23 -1
- package/dist/cli/lib/harness/tool-map.js.map +1 -1
- package/dist/cli/lib/harness/types.d.ts +2 -2
- package/dist/cli/lib/harness/types.d.ts.map +1 -1
- package/dist/cli/lib/mcp-writer.d.ts +1 -0
- package/dist/cli/lib/mcp-writer.d.ts.map +1 -1
- package/dist/cli/lib/mcp-writer.js +5 -1
- package/dist/cli/lib/mcp-writer.js.map +1 -1
- package/dist/cli/lib/paths.d.ts +19 -0
- package/dist/cli/lib/paths.d.ts.map +1 -1
- package/dist/cli/lib/paths.js +21 -0
- package/dist/cli/lib/paths.js.map +1 -1
- package/dist/copilot-hooks.json +46 -46
- package/dist/cursor-hooks.json +288 -0
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/services/state-machine.d.ts +4 -3
- package/dist/services/state-machine.d.ts.map +1 -1
- package/dist/services/state-machine.js +17 -9
- package/dist/services/state-machine.js.map +1 -1
- package/package.json +6 -7
- package/site/specky-icon.png +0 -0
- /package/.apm/skills/{sdd-pipeline → specky-sdd-pipeline}/references/ears-notation.md +0 -0
- /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 ✅
|