@specship/specship-win32-arm64 0.17.0 → 0.18.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 (48) hide show
  1. package/lib/dist/activation/steering.d.ts +1 -1
  2. package/lib/dist/activation/steering.d.ts.map +1 -1
  3. package/lib/dist/activation/steering.js +11 -7
  4. package/lib/dist/activation/steering.js.map +1 -1
  5. package/lib/dist/bin/specship.js +34 -2
  6. package/lib/dist/bin/specship.js.map +1 -1
  7. package/lib/dist/commands/specship/learn.md +45 -0
  8. package/lib/dist/config/runtime-settings.d.ts +25 -0
  9. package/lib/dist/config/runtime-settings.d.ts.map +1 -0
  10. package/lib/dist/config/runtime-settings.js +99 -0
  11. package/lib/dist/config/runtime-settings.js.map +1 -0
  12. package/lib/dist/index.d.ts +9 -0
  13. package/lib/dist/index.d.ts.map +1 -1
  14. package/lib/dist/index.js +8 -0
  15. package/lib/dist/index.js.map +1 -1
  16. package/lib/dist/installer/index.js +1 -1
  17. package/lib/dist/installer/index.js.map +1 -1
  18. package/lib/dist/installer/targets/claude.d.ts.map +1 -1
  19. package/lib/dist/installer/targets/claude.js +6 -5
  20. package/lib/dist/installer/targets/claude.js.map +1 -1
  21. package/lib/dist/mcp/model-context.d.ts +5 -3
  22. package/lib/dist/mcp/model-context.d.ts.map +1 -1
  23. package/lib/dist/mcp/model-context.js +10 -6
  24. package/lib/dist/mcp/model-context.js.map +1 -1
  25. package/lib/dist/mcp/tools.d.ts +9 -0
  26. package/lib/dist/mcp/tools.d.ts.map +1 -1
  27. package/lib/dist/mcp/tools.js +46 -0
  28. package/lib/dist/mcp/tools.js.map +1 -1
  29. package/lib/dist/reflect/index.d.ts +3 -1
  30. package/lib/dist/reflect/index.d.ts.map +1 -1
  31. package/lib/dist/reflect/index.js +5 -1
  32. package/lib/dist/reflect/index.js.map +1 -1
  33. package/lib/dist/reflect/miner.d.ts.map +1 -1
  34. package/lib/dist/reflect/miner.js +130 -5
  35. package/lib/dist/reflect/miner.js.map +1 -1
  36. package/lib/dist/reflect/session-outcomes.d.ts +50 -0
  37. package/lib/dist/reflect/session-outcomes.d.ts.map +1 -0
  38. package/lib/dist/reflect/session-outcomes.js +110 -0
  39. package/lib/dist/reflect/session-outcomes.js.map +1 -0
  40. package/lib/dist/reflect/sweep.d.ts +11 -0
  41. package/lib/dist/reflect/sweep.d.ts.map +1 -1
  42. package/lib/dist/reflect/sweep.js +29 -0
  43. package/lib/dist/reflect/sweep.js.map +1 -1
  44. package/lib/dist/server/routes/claude.js +27 -0
  45. package/lib/dist/workflows/defaults/spec-implement-mixed.yaml +197 -0
  46. package/lib/node_modules/.package-lock.json +1 -1
  47. package/lib/package.json +1 -1
  48. package/package.json +1 -1
@@ -0,0 +1,197 @@
1
+ name: spec-implement-mixed
2
+ description: Implement a spec with mixed models — sonnet plans, haiku executes, tests + gates verify. Same steps and gates as spec-implement at a fraction of the token cost.
3
+ tags: [spec, default, mixed-model]
4
+ requires: [specship, git]
5
+
6
+ worktree:
7
+ enabled: true
8
+
9
+ inputs:
10
+ - name: SPEC_ID
11
+ description: The spec ID to implement (e.g. REQ-AUTH-005)
12
+ required: true
13
+
14
+ systemPromptAppend: |
15
+ You are implementing a specific requirement. Before editing code, call
16
+ specship_spec($INPUT.SPEC_ID) to see the spec body and any code it
17
+ already links to. After editing, call specship_link_assert with the
18
+ spec_id and the symbol you implemented BEFORE reporting done.
19
+
20
+ nodes:
21
+ - id: fetch_spec
22
+ # MIXMODEL-DOC: mechanical step → haiku
23
+ model: haiku
24
+ kind: prompt
25
+ output_type: spec_summary
26
+ allowed_tools:
27
+ - mcp__specship__specship_spec
28
+ - mcp__specship__specship_explore
29
+ prompt: |
30
+ Spec ID: $INPUT.SPEC_ID
31
+
32
+ Call specship_spec to fetch the spec. Then call specship_explore on
33
+ a small bag of terms drawn from the spec title and acceptance
34
+ criteria to find the relevant code area.
35
+
36
+ Output: a short summary (≤300 words) of (a) what the spec asks for,
37
+ (b) which code areas / symbols are most relevant, and (c) whether
38
+ any code currently claims to implement it (look at linked_code).
39
+
40
+ - id: plan
41
+ # MIXMODEL-DOC: judgment step → sonnet
42
+ model: sonnet
43
+ kind: prompt
44
+ depends_on: [fetch_spec]
45
+ output_type: plan
46
+ allowed_tools:
47
+ - mcp__specship__specship_explore
48
+ - mcp__specship__specship_node
49
+ - mcp__specship__specship_spec
50
+ - Read
51
+ prompt: |
52
+ Based on this spec summary, write a concrete implementation plan:
53
+
54
+ $fetch_spec.output
55
+
56
+ The plan should list:
57
+ - Files to create or modify (with project-relative paths)
58
+ - Specific functions/methods/classes to add or change
59
+ - Tests to add or update
60
+ - Order of changes
61
+
62
+ Keep it tight (≤500 words). Do NOT edit code in this step.
63
+
64
+ - id: approve_plan
65
+ kind: approval
66
+ depends_on: [plan]
67
+ message: |
68
+ Plan ready for $INPUT.SPEC_ID. Review the plan output and approve
69
+ to proceed with implementation, or reject with feedback to revise.
70
+ capture_response: true
71
+ on_reject:
72
+ prompt: |
73
+ The plan was rejected with this feedback. Revise:
74
+
75
+ $approve_plan.output
76
+ max_attempts: 3
77
+
78
+ - id: implement
79
+ # MIXMODEL-DOC: mechanical step → haiku
80
+ model: haiku
81
+ kind: prompt
82
+ depends_on: [approve_plan]
83
+ output_type: diff
84
+ allowed_tools:
85
+ - Read
86
+ - Edit
87
+ - Write
88
+ - Bash
89
+ - mcp__specship__specship_explore
90
+ - mcp__specship__specship_node
91
+ - mcp__specship__specship_spec
92
+ prompt: |
93
+ Implement the approved plan. Follow it closely.
94
+
95
+ Plan:
96
+ $plan.output
97
+
98
+ Approval feedback (if any):
99
+ $approve_plan.output
100
+
101
+ When done, output a short diff summary (which files changed and why).
102
+
103
+ - id: verify
104
+ kind: bash
105
+ depends_on: [implement]
106
+ output_type: test_results
107
+ timeout: 600000
108
+ bash: |
109
+ # Run the project's test suite. The verify node's exit code drives
110
+ # the gating for the link node — non-zero halts the workflow.
111
+ # The VERIFY_RESULT marker is the machine-readable contract the link
112
+ # node routes on (REQ-IMPLINT-001.A1): a skipped run must never be
113
+ # mistaken for a passing one.
114
+ if [ -f package.json ]; then
115
+ # A fresh worktree has no node_modules/ or build output — a verify
116
+ # failure must mean the tests failed, not that the environment was
117
+ # missing (WF-REJECT-DOC, REQ-WFREJ-005).
118
+ if [ ! -d node_modules ]; then npm ci --no-audit --no-fund || npm install --no-audit --no-fund; fi
119
+ npm run build --if-present
120
+ if npm test; then echo "VERIFY_RESULT=ran-and-passed"; else echo "VERIFY_RESULT=ran-and-failed"; exit 1; fi
121
+ elif [ -f Cargo.toml ]; then
122
+ if cargo test; then echo "VERIFY_RESULT=ran-and-passed"; else echo "VERIFY_RESULT=ran-and-failed"; exit 1; fi
123
+ elif [ -f pyproject.toml ] || [ -f requirements.txt ]; then
124
+ if python -m pytest; then echo "VERIFY_RESULT=ran-and-passed"; else echo "VERIFY_RESULT=ran-and-failed"; exit 1; fi
125
+ else
126
+ echo "no recognised test framework; tests did NOT run"
127
+ echo "VERIFY_RESULT=skipped"
128
+ fi
129
+
130
+ - id: link
131
+ # MIXMODEL-DOC: mechanical step → haiku
132
+ model: haiku
133
+ kind: prompt
134
+ depends_on: [verify]
135
+ output_type: link_summary
136
+ allowed_tools:
137
+ - mcp__specship__specship_link_assert
138
+ - mcp__specship__specship_link_verify
139
+ - mcp__specship__specship_spec
140
+ prompt: |
141
+ Assert spec→code links for the changes made in the implement step.
142
+ For each symbol that implements $INPUT.SPEC_ID (or its child
143
+ requirements), call specship_link_assert with the spec_id, the
144
+ file path, and the qualified symbol name.
145
+
146
+ Then route on the VERIFY_RESULT marker in the test results below
147
+ (REQ-IMPLINT-001):
148
+ - VERIFY_RESULT=ran-and-passed → after each assert, call
149
+ specship_link_verify with result="pass".
150
+ - VERIFY_RESULT=skipped → do NOT call specship_link_verify at all;
151
+ the links stay in the `implemented` state. Tests that did not run
152
+ are never reported as passing.
153
+
154
+ Implementation diff summary:
155
+ $implement.output
156
+
157
+ Test results:
158
+ $verify.output
159
+
160
+ Output: a short list of "spec_id → file:symbol [verified|implemented]"
161
+ lines, ending with one line stating whether verification ran or was
162
+ skipped.
163
+
164
+ - id: coverage
165
+ # MIXMODEL-DOC: mechanical step → haiku
166
+ model: haiku
167
+ kind: prompt
168
+ depends_on: [link]
169
+ output_type: coverage_summary
170
+ allowed_tools:
171
+ - mcp__specship__specship_spec
172
+ prompt: |
173
+ Report acceptance-criteria test coverage for $INPUT.SPEC_ID
174
+ (REQ-IMPLINT-002). Call specship_spec with the spec_id, count its
175
+ acceptance criteria (the .A<N> children; if the spec has none,
176
+ treat the requirement itself as one criterion), and count how many
177
+ of them carry a `tests`-kind link.
178
+
179
+ Output exactly one or two lines:
180
+ - "N of M acceptance criteria for $INPUT.SPEC_ID have linked tests."
181
+ - If N < M, add: "Close the gap with /specship:spec behaviour
182
+ $INPUT.SPEC_ID."
183
+
184
+ - id: final_review
185
+ kind: approval
186
+ depends_on: [coverage]
187
+ message: |
188
+ Implementation complete for $INPUT.SPEC_ID.
189
+
190
+ Links asserted:
191
+ $link.output
192
+
193
+ Acceptance-criteria test coverage:
194
+ $coverage.output
195
+
196
+ Approve to finalize the run (worktree is left for you to inspect
197
+ and merge), or reject to abandon.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@specship/specship",
3
- "version": "0.17.0",
3
+ "version": "0.18.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@specship/specship",
3
- "version": "0.17.0",
3
+ "version": "0.18.0",
4
4
  "description": "Supercharge Claude Code with semantic code intelligence. 94% fewer tool calls • 77% faster exploration • 100% local.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@specship/specship-win32-arm64",
3
- "version": "0.17.0",
3
+ "version": "0.18.0",
4
4
  "description": "SpecShip self-contained bundle for win32-arm64",
5
5
  "os": [
6
6
  "win32"