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 @@
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../../../src/cli/lib/harness/compilers/opencode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,eAAO,MAAM,gBAAgB,EAAE,eAwB9B,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * harness/compilers/opencode.ts — renders canonical primitives into OpenCode
3
+ * native form: `.opencode/agents/*.md` and `.opencode/commands/*.md`.
4
+ */
5
+ import { transformToolsLine } from "./common.js";
6
+ export const opencodeCompiler = {
7
+ target: "opencode",
8
+ compileAgent(content) {
9
+ return transformToolsLine(content, "opencode", "comma-list");
10
+ },
11
+ compilePrompt(content) {
12
+ return content
13
+ .replace(/^agent:\s*agent\s*\n/m, "")
14
+ .replace(/^mode:\s*agent\s*\n/m, "");
15
+ },
16
+ compileInstruction(content) {
17
+ return content;
18
+ },
19
+ renameAgent(fileName) {
20
+ return fileName.replace(/\.agent\.md$/, ".md");
21
+ },
22
+ renamePrompt(fileName) {
23
+ return fileName.replace(/\.prompt\.md$/, ".md");
24
+ },
25
+ };
26
+ //# sourceMappingURL=opencode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../../../src/cli/lib/harness/compilers/opencode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,CAAC,MAAM,gBAAgB,GAAoB;IAC7C,MAAM,EAAE,UAAU;IAElB,YAAY,CAAC,OAAO;QAChB,OAAO,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IAED,aAAa,CAAC,OAAO;QACjB,OAAO,OAAO;aACT,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;aACpC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,kBAAkB,CAAC,OAAO;QACtB,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,WAAW,CAAC,QAAQ;QAChB,OAAO,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,YAAY,CAAC,QAAQ;QACjB,OAAO,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;CACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/harness/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AASjE,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,eAAe,CAElE;AAED,eAAO,MAAM,iBAAiB,EAA6B,aAAa,EAAE,CAAC;AAE3E,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/harness/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAejE,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,eAAe,CAElE;AAED,eAAO,MAAM,iBAAiB,EAA6B,aAAa,EAAE,CAAC;AAE3E,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
@@ -6,9 +6,15 @@
6
6
  */
7
7
  import { copilotCompiler } from "./compilers/copilot.js";
8
8
  import { claudeCompiler } from "./compilers/claude.js";
9
+ import { cursorCompiler } from "./compilers/cursor.js";
10
+ import { opencodeCompiler } from "./compilers/opencode.js";
11
+ import { agentSkillsCompiler } from "./compilers/agent-skills.js";
9
12
  const COMPILERS = {
10
13
  copilot: copilotCompiler,
11
14
  claude: claudeCompiler,
15
+ cursor: cursorCompiler,
16
+ opencode: opencodeCompiler,
17
+ "agent-skills": agentSkillsCompiler,
12
18
  };
13
19
  export function getCompiler(target) {
14
20
  return COMPILERS[target];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/lib/harness/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,SAAS,GAA2C;IACtD,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,cAAc;CACzB,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,MAAqB;IAC7C,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAoB,CAAC;AAG3E,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/lib/harness/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,SAAS,GAA2C;IACtD,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,cAAc;IACtB,QAAQ,EAAE,gBAAgB;IAC1B,cAAc,EAAE,mBAAmB;CACtC,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,MAAqB;IAC7C,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAoB,CAAC;AAG3E,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-map.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/harness/tool-map.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK7D,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAsC7D;AAsCD,uEAAuE;AACvE,wBAAgB,eAAe,CAC3B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,aAAa,GACtB,MAAM,EAAE,CAQV;AAED,6EAA6E;AAC7E,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAEtE"}
1
+ {"version":3,"file":"tool-map.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/harness/tool-map.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK7D,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAsC7D;AA0DD,uEAAuE;AACvE,wBAAgB,eAAe,CAC3B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,aAAa,GACtB,MAAM,EAAE,CAQV;AAED,6EAA6E;AAC7E,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAEtE"}
@@ -50,30 +50,52 @@ const NATIVE = {
50
50
  "workspace.search": {
51
51
  copilot: ["search"],
52
52
  claude: ["Read", "Glob", "Grep"],
53
+ cursor: ["Read", "Glob", "Grep"],
54
+ opencode: ["read"],
55
+ "agent-skills": ["workspace.search"],
53
56
  },
54
57
  "workspace.edit": {
55
58
  copilot: ["edit"],
56
59
  claude: ["Edit", "Write"],
60
+ cursor: ["Edit", "Write"],
61
+ opencode: ["edit"],
62
+ "agent-skills": ["workspace.edit"],
57
63
  },
58
64
  "workspace.command": {
59
65
  copilot: ["runCommands"],
60
66
  claude: ["Bash"],
67
+ cursor: ["Bash"],
68
+ opencode: ["bash"],
69
+ "agent-skills": ["workspace.command"],
61
70
  },
62
71
  "web.fetch": {
63
72
  copilot: ["fetch"],
64
73
  claude: ["WebFetch", "WebSearch"],
74
+ cursor: ["WebFetch", "WebSearch"],
75
+ opencode: ["fetch"],
76
+ "agent-skills": ["web.fetch"],
65
77
  },
66
78
  "agent.delegate": {
67
79
  copilot: ["agent"],
68
80
  claude: ["Task"],
81
+ cursor: ["Task"],
82
+ opencode: ["agent"],
83
+ "agent-skills": ["agent.delegate"],
69
84
  },
70
85
  "todo.write": {
71
86
  copilot: ["todos"],
72
87
  claude: ["TodoWrite"],
88
+ cursor: ["TodoWrite"],
89
+ opencode: ["todo"],
90
+ "agent-skills": ["todo.write"],
73
91
  },
74
92
  };
75
93
  function speckyMcpToken(tool, target) {
76
- return target === "claude" ? `mcp__specky__${tool}` : `specky/${tool}`;
94
+ if (target === "claude" || target === "cursor")
95
+ return `mcp__specky__${tool}`;
96
+ if (target === "agent-skills")
97
+ return tool;
98
+ return `specky/${tool}`;
77
99
  }
78
100
  /** Render a logical tool id into the native token(s) for a harness. */
79
101
  export function logicalToNative(logical, target) {
@@ -1 +1 @@
1
- {"version":3,"file":"tool-map.js","sourceRoot":"","sources":["../../../../src/cli/lib/harness/tool-map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-map.js","sourceRoot":"","sources":["../../../../src/cli/lib/harness/tool-map.ts"],"names":[],"mappings":"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"}
@@ -10,10 +10,10 @@
10
10
  */
11
11
  /**
12
12
  * Supported harness targets. Extend this union and register a compiler in
13
- * `harness/index.ts` to add a new harness (e.g. "cursor", "codex", "opencode").
13
+ * `harness/index.ts` to add a new harness (e.g. "codex", "gemini", "kiro").
14
14
  * New targets must also add native tool mappings in `harness/tool-map.ts`.
15
15
  */
16
- export type HarnessTarget = "copilot" | "claude";
16
+ export type HarnessTarget = "copilot" | "claude" | "cursor" | "opencode" | "agent-skills";
17
17
  /**
18
18
  * Canonical, harness-agnostic tool vocabulary. Primitive sources are authored
19
19
  * against native Copilot tokens today; `normalizeToLogical` folds any known
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/harness/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACjB,kBAAkB,GAClB,gBAAgB,GAChB,mBAAmB,GACnB,WAAW,GACX,gBAAgB,GAChB,YAAY,GACZ,cAAc,MAAM,EAAE,GACtB,OAAO,MAAM,EAAE,CAAC;AAEtB;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,0EAA0E;IAC1E,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,gDAAgD;IAChD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACvC,oDAAoD;IACpD,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5C,uEAAuE;IACvE,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,uEAAuE;IACvE,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/harness/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;GAIG;AACH,MAAM,MAAM,aAAa,GACnB,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,cAAc,CAAC;AAErB;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACjB,kBAAkB,GAClB,gBAAgB,GAChB,mBAAmB,GACnB,WAAW,GACX,gBAAgB,GAChB,YAAY,GACZ,cAAc,MAAM,EAAE,GACtB,OAAO,MAAM,EAAE,CAAC;AAEtB;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,0EAA0E;IAC1E,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,gDAAgD;IAChD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACvC,oDAAoD;IACpD,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5C,uEAAuE;IACvE,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,uEAAuE;IACvE,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1C"}
@@ -8,6 +8,7 @@ export declare function writeMcpRegistration(path: string, opts: {
8
8
  dryRun: boolean;
9
9
  serverName?: string;
10
10
  useVscodeSchema?: boolean;
11
+ useOpenCodeSchema?: boolean;
11
12
  }): {
12
13
  path: string;
13
14
  written: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-writer.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/mcp-writer.ts"],"names":[],"mappings":"AA8CA;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GACxE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAA;CAAE,CAoBhF"}
1
+ {"version":3,"file":"mcp-writer.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/mcp-writer.ts"],"names":[],"mappings":"AA+CA;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,GACrG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAA;CAAE,CAuBhF"}
@@ -43,7 +43,11 @@ export function writeMcpRegistration(path, opts) {
43
43
  const name = opts.serverName ?? "specky";
44
44
  const existing = readJson(path);
45
45
  const before = JSON.stringify(existing);
46
- if (opts.useVscodeSchema) {
46
+ if (opts.useOpenCodeSchema) {
47
+ existing.mcp = existing.mcp ?? {};
48
+ existing.mcp[name] = DEFAULT_SERVER;
49
+ }
50
+ else if (opts.useVscodeSchema) {
47
51
  existing.servers = existing.servers ?? {};
48
52
  existing.servers[name] = DEFAULT_SERVER;
49
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-writer.js","sourceRoot":"","sources":["../../../src/cli/lib/mcp-writer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAa7C,8EAA8E;AAC9E,+EAA+E;AAC/E,0EAA0E;AAC1E,MAAM,cAAc,GAAmB;IACrC,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,CAAC,IAAI,EAAE,cAAc,OAAO,EAAE,EAAE,OAAO,CAAC;CAC/C,CAAC;AAEF,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YAAE,OAAO,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,CAAC;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,IAAe,EAAE,MAAe;IAC/D,IAAI,MAAM;QAAE,OAAO;IACnB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;AACpE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,IAAyE;IAEzE,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC;IACzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAExC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1C,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;QAChD,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC;IAC7C,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACvD,CAAC;IACD,MAAM,MAAM,GAAyB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"mcp-writer.js","sourceRoot":"","sources":["../../../src/cli/lib/mcp-writer.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,8 @@ export declare function sourcePaths(pkgRoot: string): {
15
15
  templatesDir: string;
16
16
  claudeHooksManifest: string;
17
17
  copilotHooksManifest: string;
18
+ cursorHooksManifest: string;
19
+ speckyRunScript: string;
18
20
  configYml: string;
19
21
  apmYml: string;
20
22
  apmPolicyYml: string;
@@ -38,9 +40,26 @@ export interface Targets {
38
40
  hooksManifest: string;
39
41
  instructions: string;
40
42
  };
43
+ cursor: {
44
+ root: string;
45
+ agents: string;
46
+ commands: string;
47
+ rules: string;
48
+ hooksScripts: string;
49
+ hooksRunner: string;
50
+ hooksManifest: string;
51
+ mcp: string;
52
+ };
53
+ opencode: {
54
+ root: string;
55
+ agents: string;
56
+ commands: string;
57
+ mcp: string;
58
+ };
41
59
  shared: {
42
60
  specky: string;
43
61
  specs: string;
62
+ agentSkills: string;
44
63
  vscodeMcp: string;
45
64
  claudeMcp: string;
46
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/paths.ts"],"names":[],"mappings":"AAcA;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,MAAM,CASpC;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB,CAgBA;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CA6BtD"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/paths.ts"],"names":[],"mappings":"AAcA;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,MAAM,CASpC;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB,CAkBA;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAgDtD"}
@@ -39,6 +39,8 @@ export function sourcePaths(pkgRoot) {
39
39
  templatesDir: resolve(pkgRoot, "templates"),
40
40
  claudeHooksManifest: resolve(pkgRoot, "dist/claude-hooks.json"),
41
41
  copilotHooksManifest: resolve(pkgRoot, "dist/copilot-hooks.json"),
42
+ cursorHooksManifest: resolve(pkgRoot, "dist/cursor-hooks.json"),
43
+ speckyRunScript: resolve(pkgRoot, ".apm/hooks/specky-run.sh"),
42
44
  configYml: resolve(pkgRoot, "config.yml"),
43
45
  apmYml: resolve(pkgRoot, "apm.yml"),
44
46
  apmPolicyYml: resolve(pkgRoot, "apm-policy.yml"),
@@ -47,6 +49,8 @@ export function sourcePaths(pkgRoot) {
47
49
  export function targetPaths(workspace) {
48
50
  const claude = resolve(workspace, ".claude");
49
51
  const github = resolve(workspace, ".github");
52
+ const cursor = resolve(workspace, ".cursor");
53
+ const opencode = resolve(workspace, ".opencode");
50
54
  return {
51
55
  claude: {
52
56
  root: claude,
@@ -66,9 +70,26 @@ export function targetPaths(workspace) {
66
70
  hooksManifest: resolve(github, "hooks/specky/sdd-hooks.json"),
67
71
  instructions: resolve(github, "instructions"),
68
72
  },
73
+ cursor: {
74
+ root: cursor,
75
+ agents: resolve(cursor, "agents"),
76
+ commands: resolve(cursor, "commands"),
77
+ rules: resolve(cursor, "rules"),
78
+ hooksScripts: resolve(cursor, "hooks/scripts"),
79
+ hooksRunner: resolve(cursor, "hooks/specky-run.sh"),
80
+ hooksManifest: resolve(cursor, "hooks.json"),
81
+ mcp: resolve(cursor, "mcp.json"),
82
+ },
83
+ opencode: {
84
+ root: opencode,
85
+ agents: resolve(opencode, "agents"),
86
+ commands: resolve(opencode, "commands"),
87
+ mcp: resolve(workspace, "opencode.json"),
88
+ },
69
89
  shared: {
70
90
  specky: resolve(workspace, ".specky"),
71
91
  specs: resolve(workspace, ".specs"),
92
+ agentSkills: resolve(workspace, ".agents/skills"),
72
93
  vscodeMcp: resolve(workspace, ".vscode/mcp.json"),
73
94
  claudeMcp: resolve(workspace, ".mcp.json"),
74
95
  },
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/cli/lib/paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/cli/lib/paths.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  "hooks": [
6
6
  {
7
7
  "type": "command",
8
- "command": "bash .github/hooks/specky/scripts/branch-validator.sh",
8
+ "command": "bash .github/hooks/specky/scripts/specky-branch-validator.sh",
9
9
  "timeout": 5
10
10
  }
11
11
  ]
@@ -15,12 +15,12 @@
15
15
  "hooks": [
16
16
  {
17
17
  "type": "command",
18
- "command": "bash .github/hooks/specky/scripts/artifact-validator.sh",
18
+ "command": "bash .github/hooks/specky/scripts/specky-artifact-validator.sh",
19
19
  "timeout": 10
20
20
  },
21
21
  {
22
22
  "type": "command",
23
- "command": "bash .github/hooks/specky/scripts/branch-validator.sh",
23
+ "command": "bash .github/hooks/specky/scripts/specky-branch-validator.sh",
24
24
  "timeout": 5
25
25
  }
26
26
  ]
@@ -30,12 +30,12 @@
30
30
  "hooks": [
31
31
  {
32
32
  "type": "command",
33
- "command": "bash .github/hooks/specky/scripts/artifact-validator.sh",
33
+ "command": "bash .github/hooks/specky/scripts/specky-artifact-validator.sh",
34
34
  "timeout": 10
35
35
  },
36
36
  {
37
37
  "type": "command",
38
- "command": "bash .github/hooks/specky/scripts/branch-validator.sh",
38
+ "command": "bash .github/hooks/specky/scripts/specky-branch-validator.sh",
39
39
  "timeout": 5
40
40
  }
41
41
  ]
@@ -45,12 +45,12 @@
45
45
  "hooks": [
46
46
  {
47
47
  "type": "command",
48
- "command": "bash .github/hooks/specky/scripts/artifact-validator.sh",
48
+ "command": "bash .github/hooks/specky/scripts/specky-artifact-validator.sh",
49
49
  "timeout": 10
50
50
  },
51
51
  {
52
52
  "type": "command",
53
- "command": "bash .github/hooks/specky/scripts/branch-validator.sh",
53
+ "command": "bash .github/hooks/specky/scripts/specky-branch-validator.sh",
54
54
  "timeout": 5
55
55
  }
56
56
  ]
@@ -60,12 +60,12 @@
60
60
  "hooks": [
61
61
  {
62
62
  "type": "command",
63
- "command": "bash .github/hooks/specky/scripts/artifact-validator.sh",
63
+ "command": "bash .github/hooks/specky/scripts/specky-artifact-validator.sh",
64
64
  "timeout": 10
65
65
  },
66
66
  {
67
67
  "type": "command",
68
- "command": "bash .github/hooks/specky/scripts/branch-validator.sh",
68
+ "command": "bash .github/hooks/specky/scripts/specky-branch-validator.sh",
69
69
  "timeout": 5
70
70
  }
71
71
  ]
@@ -75,12 +75,12 @@
75
75
  "hooks": [
76
76
  {
77
77
  "type": "command",
78
- "command": "bash .github/hooks/specky/scripts/artifact-validator.sh",
78
+ "command": "bash .github/hooks/specky/scripts/specky-artifact-validator.sh",
79
79
  "timeout": 10
80
80
  },
81
81
  {
82
82
  "type": "command",
83
- "command": "bash .github/hooks/specky/scripts/branch-validator.sh",
83
+ "command": "bash .github/hooks/specky/scripts/specky-branch-validator.sh",
84
84
  "timeout": 5
85
85
  }
86
86
  ]
@@ -90,12 +90,12 @@
90
90
  "hooks": [
91
91
  {
92
92
  "type": "command",
93
- "command": "bash .github/hooks/specky/scripts/artifact-validator.sh",
93
+ "command": "bash .github/hooks/specky/scripts/specky-artifact-validator.sh",
94
94
  "timeout": 10
95
95
  },
96
96
  {
97
97
  "type": "command",
98
- "command": "bash .github/hooks/specky/scripts/branch-validator.sh",
98
+ "command": "bash .github/hooks/specky/scripts/specky-branch-validator.sh",
99
99
  "timeout": 5
100
100
  }
101
101
  ]
@@ -105,12 +105,12 @@
105
105
  "hooks": [
106
106
  {
107
107
  "type": "command",
108
- "command": "bash .github/hooks/specky/scripts/artifact-validator.sh",
108
+ "command": "bash .github/hooks/specky/scripts/specky-artifact-validator.sh",
109
109
  "timeout": 10
110
110
  },
111
111
  {
112
112
  "type": "command",
113
- "command": "bash .github/hooks/specky/scripts/branch-validator.sh",
113
+ "command": "bash .github/hooks/specky/scripts/specky-branch-validator.sh",
114
114
  "timeout": 5
115
115
  }
116
116
  ]
@@ -120,22 +120,22 @@
120
120
  "hooks": [
121
121
  {
122
122
  "type": "command",
123
- "command": "bash .github/hooks/specky/scripts/artifact-validator.sh",
123
+ "command": "bash .github/hooks/specky/scripts/specky-artifact-validator.sh",
124
124
  "timeout": 10
125
125
  },
126
126
  {
127
127
  "type": "command",
128
- "command": "bash .github/hooks/specky/scripts/branch-validator.sh",
128
+ "command": "bash .github/hooks/specky/scripts/specky-branch-validator.sh",
129
129
  "timeout": 5
130
130
  },
131
131
  {
132
132
  "type": "command",
133
- "command": "bash .github/hooks/specky/scripts/security-scan.sh",
133
+ "command": "bash .github/hooks/specky/scripts/specky-security-scan.sh",
134
134
  "timeout": 30
135
135
  },
136
136
  {
137
137
  "type": "command",
138
- "command": "bash .github/hooks/specky/scripts/release-gate.sh",
138
+ "command": "bash .github/hooks/specky/scripts/specky-release-gate.sh",
139
139
  "timeout": 15
140
140
  }
141
141
  ]
@@ -147,12 +147,12 @@
147
147
  "hooks": [
148
148
  {
149
149
  "type": "command",
150
- "command": "bash .github/hooks/specky/scripts/phase-gate.sh",
150
+ "command": "bash .github/hooks/specky/scripts/specky-phase-gate.sh",
151
151
  "timeout": 10
152
152
  },
153
153
  {
154
154
  "type": "command",
155
- "command": "bash .github/hooks/specky/scripts/auto-checkpoint.sh",
155
+ "command": "bash .github/hooks/specky/scripts/specky-auto-checkpoint.sh",
156
156
  "timeout": 5
157
157
  }
158
158
  ]
@@ -162,32 +162,32 @@
162
162
  "hooks": [
163
163
  {
164
164
  "type": "command",
165
- "command": "bash .github/hooks/specky/scripts/phase-gate.sh",
165
+ "command": "bash .github/hooks/specky/scripts/specky-phase-gate.sh",
166
166
  "timeout": 10
167
167
  },
168
168
  {
169
169
  "type": "command",
170
- "command": "bash .github/hooks/specky/scripts/spec-quality.sh",
170
+ "command": "bash .github/hooks/specky/scripts/specky-spec-quality.sh",
171
171
  "timeout": 10
172
172
  },
173
173
  {
174
174
  "type": "command",
175
- "command": "bash .github/hooks/specky/scripts/ears-validator.sh",
175
+ "command": "bash .github/hooks/specky/scripts/specky-ears-validator.sh",
176
176
  "timeout": 10
177
177
  },
178
178
  {
179
179
  "type": "command",
180
- "command": "bash .github/hooks/specky/scripts/lgtm-gate.sh",
180
+ "command": "bash .github/hooks/specky/scripts/specky-lgtm-gate.sh",
181
181
  "timeout": 5
182
182
  },
183
183
  {
184
184
  "type": "command",
185
- "command": "bash .github/hooks/specky/scripts/spec-sync.sh",
185
+ "command": "bash .github/hooks/specky/scripts/specky-spec-sync.sh",
186
186
  "timeout": 10
187
187
  },
188
188
  {
189
189
  "type": "command",
190
- "command": "bash .github/hooks/specky/scripts/auto-checkpoint.sh",
190
+ "command": "bash .github/hooks/specky/scripts/specky-auto-checkpoint.sh",
191
191
  "timeout": 5
192
192
  }
193
193
  ]
@@ -197,22 +197,22 @@
197
197
  "hooks": [
198
198
  {
199
199
  "type": "command",
200
- "command": "bash .github/hooks/specky/scripts/phase-gate.sh",
200
+ "command": "bash .github/hooks/specky/scripts/specky-phase-gate.sh",
201
201
  "timeout": 10
202
202
  },
203
203
  {
204
204
  "type": "command",
205
- "command": "bash .github/hooks/specky/scripts/spec-sync.sh",
205
+ "command": "bash .github/hooks/specky/scripts/specky-spec-sync.sh",
206
206
  "timeout": 10
207
207
  },
208
208
  {
209
209
  "type": "command",
210
- "command": "bash .github/hooks/specky/scripts/lgtm-gate.sh",
210
+ "command": "bash .github/hooks/specky/scripts/specky-lgtm-gate.sh",
211
211
  "timeout": 5
212
212
  },
213
213
  {
214
214
  "type": "command",
215
- "command": "bash .github/hooks/specky/scripts/auto-checkpoint.sh",
215
+ "command": "bash .github/hooks/specky/scripts/specky-auto-checkpoint.sh",
216
216
  "timeout": 5
217
217
  }
218
218
  ]
@@ -222,27 +222,27 @@
222
222
  "hooks": [
223
223
  {
224
224
  "type": "command",
225
- "command": "bash .github/hooks/specky/scripts/phase-gate.sh",
225
+ "command": "bash .github/hooks/specky/scripts/specky-phase-gate.sh",
226
226
  "timeout": 10
227
227
  },
228
228
  {
229
229
  "type": "command",
230
- "command": "bash .github/hooks/specky/scripts/task-tracer.sh",
230
+ "command": "bash .github/hooks/specky/scripts/specky-task-tracer.sh",
231
231
  "timeout": 10
232
232
  },
233
233
  {
234
234
  "type": "command",
235
- "command": "bash .github/hooks/specky/scripts/lgtm-gate.sh",
235
+ "command": "bash .github/hooks/specky/scripts/specky-lgtm-gate.sh",
236
236
  "timeout": 5
237
237
  },
238
238
  {
239
239
  "type": "command",
240
- "command": "bash .github/hooks/specky/scripts/spec-sync.sh",
240
+ "command": "bash .github/hooks/specky/scripts/specky-spec-sync.sh",
241
241
  "timeout": 10
242
242
  },
243
243
  {
244
244
  "type": "command",
245
- "command": "bash .github/hooks/specky/scripts/auto-checkpoint.sh",
245
+ "command": "bash .github/hooks/specky/scripts/specky-auto-checkpoint.sh",
246
246
  "timeout": 5
247
247
  }
248
248
  ]
@@ -252,7 +252,7 @@
252
252
  "hooks": [
253
253
  {
254
254
  "type": "command",
255
- "command": "bash .github/hooks/specky/scripts/auto-checkpoint.sh",
255
+ "command": "bash .github/hooks/specky/scripts/specky-auto-checkpoint.sh",
256
256
  "timeout": 5
257
257
  }
258
258
  ]
@@ -262,12 +262,12 @@
262
262
  "hooks": [
263
263
  {
264
264
  "type": "command",
265
- "command": "bash .github/hooks/specky/scripts/spec-sync.sh",
265
+ "command": "bash .github/hooks/specky/scripts/specky-spec-sync.sh",
266
266
  "timeout": 10
267
267
  },
268
268
  {
269
269
  "type": "command",
270
- "command": "bash .github/hooks/specky/scripts/auto-checkpoint.sh",
270
+ "command": "bash .github/hooks/specky/scripts/specky-auto-checkpoint.sh",
271
271
  "timeout": 5
272
272
  }
273
273
  ]
@@ -277,12 +277,12 @@
277
277
  "hooks": [
278
278
  {
279
279
  "type": "command",
280
- "command": "bash .github/hooks/specky/scripts/phase-gate.sh",
280
+ "command": "bash .github/hooks/specky/scripts/specky-phase-gate.sh",
281
281
  "timeout": 10
282
282
  },
283
283
  {
284
284
  "type": "command",
285
- "command": "bash .github/hooks/specky/scripts/drift-monitor.sh",
285
+ "command": "bash .github/hooks/specky/scripts/specky-drift-monitor.sh",
286
286
  "timeout": 10
287
287
  }
288
288
  ]
@@ -292,22 +292,22 @@
292
292
  "hooks": [
293
293
  {
294
294
  "type": "command",
295
- "command": "bash .github/hooks/specky/scripts/phase-gate.sh",
295
+ "command": "bash .github/hooks/specky/scripts/specky-phase-gate.sh",
296
296
  "timeout": 10
297
297
  },
298
298
  {
299
299
  "type": "command",
300
- "command": "bash .github/hooks/specky/scripts/cognitive-debt-alert.sh",
300
+ "command": "bash .github/hooks/specky/scripts/specky-cognitive-debt-alert.sh",
301
301
  "timeout": 10
302
302
  },
303
303
  {
304
304
  "type": "command",
305
- "command": "bash .github/hooks/specky/scripts/metrics-dashboard.sh",
305
+ "command": "bash .github/hooks/specky/scripts/specky-metrics-dashboard.sh",
306
306
  "timeout": 5
307
307
  },
308
308
  {
309
309
  "type": "command",
310
- "command": "bash .github/hooks/specky/scripts/drift-monitor.sh",
310
+ "command": "bash .github/hooks/specky/scripts/specky-drift-monitor.sh",
311
311
  "timeout": 10
312
312
  }
313
313
  ]
@@ -319,7 +319,7 @@
319
319
  "hooks": [
320
320
  {
321
321
  "type": "command",
322
- "command": "bash .github/hooks/specky/scripts/security-scan.sh",
322
+ "command": "bash .github/hooks/specky/scripts/specky-security-scan.sh",
323
323
  "timeout": 30
324
324
  }
325
325
  ]