@specship/specship-win32-arm64 0.11.8 → 0.12.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 (235) hide show
  1. package/lib/dist/bin/specship.js +141 -66
  2. package/lib/dist/bin/specship.js.map +1 -1
  3. package/lib/dist/commands/specship/check.md +5 -0
  4. package/lib/dist/commands/specship/spec.md +235 -15
  5. package/lib/dist/db/migrations.d.ts.map +1 -1
  6. package/lib/dist/db/migrations.js +1 -0
  7. package/lib/dist/db/migrations.js.map +1 -1
  8. package/lib/dist/enforce/enforce.d.ts +15 -0
  9. package/lib/dist/enforce/enforce.d.ts.map +1 -1
  10. package/lib/dist/enforce/enforce.js +43 -1
  11. package/lib/dist/enforce/enforce.js.map +1 -1
  12. package/lib/dist/extraction/index.d.ts +6 -0
  13. package/lib/dist/extraction/index.d.ts.map +1 -1
  14. package/lib/dist/extraction/index.js.map +1 -1
  15. package/lib/dist/index.d.ts +9 -1
  16. package/lib/dist/index.d.ts.map +1 -1
  17. package/lib/dist/index.js +53 -9
  18. package/lib/dist/index.js.map +1 -1
  19. package/lib/dist/installer/index.d.ts.map +1 -1
  20. package/lib/dist/installer/index.js +35 -0
  21. package/lib/dist/installer/index.js.map +1 -1
  22. package/lib/dist/installer/instructions-template.d.ts +2 -2
  23. package/lib/dist/installer/instructions-template.js +3 -3
  24. package/lib/dist/installer/targets/claude.d.ts +10 -0
  25. package/lib/dist/installer/targets/claude.d.ts.map +1 -1
  26. package/lib/dist/installer/targets/claude.js +33 -7
  27. package/lib/dist/installer/targets/claude.js.map +1 -1
  28. package/lib/dist/mcp/designer-tools.js +1 -1
  29. package/lib/dist/mcp/server-instructions.d.ts +1 -1
  30. package/lib/dist/mcp/server-instructions.d.ts.map +1 -1
  31. package/lib/dist/mcp/server-instructions.js +1 -1
  32. package/lib/dist/mcp/spec-tools.d.ts +10 -0
  33. package/lib/dist/mcp/spec-tools.d.ts.map +1 -1
  34. package/lib/dist/mcp/spec-tools.js +228 -2
  35. package/lib/dist/mcp/spec-tools.js.map +1 -1
  36. package/lib/dist/mcp/tools.d.ts +12 -0
  37. package/lib/dist/mcp/tools.d.ts.map +1 -1
  38. package/lib/dist/mcp/tools.js +34 -1
  39. package/lib/dist/mcp/tools.js.map +1 -1
  40. package/lib/dist/reflect/index.d.ts +1 -1
  41. package/lib/dist/reflect/index.d.ts.map +1 -1
  42. package/lib/dist/reflect/index.js +2 -1
  43. package/lib/dist/reflect/index.js.map +1 -1
  44. package/lib/dist/reflect/miner.d.ts +8 -0
  45. package/lib/dist/reflect/miner.d.ts.map +1 -1
  46. package/lib/dist/reflect/miner.js +64 -36
  47. package/lib/dist/reflect/miner.js.map +1 -1
  48. package/lib/dist/resolution/brief-link-resolver.d.ts +20 -0
  49. package/lib/dist/resolution/brief-link-resolver.d.ts.map +1 -1
  50. package/lib/dist/resolution/brief-link-resolver.js +65 -1
  51. package/lib/dist/resolution/brief-link-resolver.js.map +1 -1
  52. package/lib/dist/resolution/spec-link-resolver.d.ts +16 -2
  53. package/lib/dist/resolution/spec-link-resolver.d.ts.map +1 -1
  54. package/lib/dist/resolution/spec-link-resolver.js +19 -1
  55. package/lib/dist/resolution/spec-link-resolver.js.map +1 -1
  56. package/lib/dist/server/cli.js +5 -49
  57. package/lib/dist/server/ingest/ingestor.js +17 -17
  58. package/lib/dist/server/ingest/pricing-backfill.js +55 -0
  59. package/lib/dist/server/ingest/pricing.js +3 -0
  60. package/lib/dist/server/ingest/project-paths.js +152 -0
  61. package/lib/dist/server/project-registry.js +15 -2
  62. package/lib/dist/server/routes/claude.js +47 -18
  63. package/lib/dist/server/routes/events.js +20 -1
  64. package/lib/dist/server/routes/projects.js +6 -3
  65. package/lib/dist/server/routes/spec.js +22 -2
  66. package/lib/dist/server/server.js +38 -4
  67. package/lib/dist/server/ssr/md.mjs +83 -0
  68. package/lib/dist/server/ssr/public/app.css +1 -0
  69. package/lib/dist/server/ssr/render.mjs +564 -0
  70. package/lib/dist/server/ssr/routes.js +73 -0
  71. package/lib/dist/server/static-handler.js +30 -0
  72. package/lib/dist/workflows/defaults/claude-design-implement.yaml +3 -3
  73. package/lib/dist/workflows/defaults/spec-implement.yaml +41 -9
  74. package/lib/node_modules/.package-lock.json +1 -1
  75. package/lib/package.json +3 -3
  76. package/package.json +1 -1
  77. package/lib/dist/commands/specship/design-implement.md +0 -84
  78. package/lib/dist/commands/specship/design-loop.md +0 -125
  79. package/lib/dist/commands/ss-behaviour.md +0 -116
  80. package/lib/dist/web/chunk-2AJCHB7P.js +0 -1
  81. package/lib/dist/web/chunk-2CPLUFCH.js +0 -2
  82. package/lib/dist/web/chunk-2I7L37NS.js +0 -1
  83. package/lib/dist/web/chunk-2IVSOVQZ.js +0 -1
  84. package/lib/dist/web/chunk-2NAWAJB5.js +0 -1
  85. package/lib/dist/web/chunk-2OJBIPE4.js +0 -1
  86. package/lib/dist/web/chunk-3E2WB6D5.js +0 -1
  87. package/lib/dist/web/chunk-3EBFYSCH.js +0 -2
  88. package/lib/dist/web/chunk-3QCQ4BXS.js +0 -1
  89. package/lib/dist/web/chunk-42XVAQ6I.js +0 -1
  90. package/lib/dist/web/chunk-4G7XU55L.js +0 -1
  91. package/lib/dist/web/chunk-4IMMPEYM.js +0 -1
  92. package/lib/dist/web/chunk-4TJQJPCZ.js +0 -1
  93. package/lib/dist/web/chunk-4WZIHTPC.js +0 -1
  94. package/lib/dist/web/chunk-4YVSYOSD.js +0 -1
  95. package/lib/dist/web/chunk-5BQIOYKW.js +0 -1
  96. package/lib/dist/web/chunk-5HGWHUJA.js +0 -1
  97. package/lib/dist/web/chunk-5NTGUSXJ.js +0 -1
  98. package/lib/dist/web/chunk-5Y244R4G.js +0 -1
  99. package/lib/dist/web/chunk-6RRDPT5Z.js +0 -1
  100. package/lib/dist/web/chunk-6VKB2ZWM.js +0 -1
  101. package/lib/dist/web/chunk-7656MA24.js +0 -1
  102. package/lib/dist/web/chunk-7DMFVTU4.js +0 -1
  103. package/lib/dist/web/chunk-7KWBINA7.js +0 -1
  104. package/lib/dist/web/chunk-7MUNFW56.js +0 -1
  105. package/lib/dist/web/chunk-7SMPKVEP.js +0 -1
  106. package/lib/dist/web/chunk-AZJVTPLU.js +0 -1
  107. package/lib/dist/web/chunk-AZUUBUEJ.js +0 -1
  108. package/lib/dist/web/chunk-BLBRMCN2.js +0 -1
  109. package/lib/dist/web/chunk-BMIAXD2V.js +0 -2
  110. package/lib/dist/web/chunk-BPCJLNBS.js +0 -47
  111. package/lib/dist/web/chunk-BUXWEHIY.js +0 -1
  112. package/lib/dist/web/chunk-CYXQILZI.js +0 -1
  113. package/lib/dist/web/chunk-DLQPZWSI.css +0 -1
  114. package/lib/dist/web/chunk-DOKZOFKM.js +0 -1
  115. package/lib/dist/web/chunk-DTWIJ3GJ.js +0 -1
  116. package/lib/dist/web/chunk-DYRFLPJA.js +0 -1
  117. package/lib/dist/web/chunk-E27QAKAB.js +0 -1
  118. package/lib/dist/web/chunk-E3J3CXR5.js +0 -1
  119. package/lib/dist/web/chunk-E73OX2P7.js +0 -1
  120. package/lib/dist/web/chunk-EAXRKDLV.js +0 -1
  121. package/lib/dist/web/chunk-EBKKDHYI.js +0 -1
  122. package/lib/dist/web/chunk-EE7V7Q5P.js +0 -1
  123. package/lib/dist/web/chunk-EKY2FUHU.js +0 -1
  124. package/lib/dist/web/chunk-EP6XOPXH.js +0 -1
  125. package/lib/dist/web/chunk-ESGDLJOJ.js +0 -1
  126. package/lib/dist/web/chunk-ETJG7NCY.js +0 -1
  127. package/lib/dist/web/chunk-EUUEFEDI.js +0 -1
  128. package/lib/dist/web/chunk-EXBUKHH2.js +0 -17
  129. package/lib/dist/web/chunk-F5TBUYDH.js +0 -1
  130. package/lib/dist/web/chunk-FC3R7YHR.js +0 -4
  131. package/lib/dist/web/chunk-FGNZDHTL.js +0 -11
  132. package/lib/dist/web/chunk-FIJW2UNJ.js +0 -1
  133. package/lib/dist/web/chunk-FMV5PXRC.js +0 -5
  134. package/lib/dist/web/chunk-G7RXFHYO.js +0 -1
  135. package/lib/dist/web/chunk-G7VZT5KB.js +0 -3
  136. package/lib/dist/web/chunk-GRZYXPSO.js +0 -7
  137. package/lib/dist/web/chunk-GYGPS3AN.js +0 -1
  138. package/lib/dist/web/chunk-H723TYYD.js +0 -2
  139. package/lib/dist/web/chunk-H7AF7YS4.js +0 -1
  140. package/lib/dist/web/chunk-HDZDQILN.js +0 -1
  141. package/lib/dist/web/chunk-HMK6UO6N.js +0 -1
  142. package/lib/dist/web/chunk-HSJNHNOH.js +0 -6
  143. package/lib/dist/web/chunk-IHEE5NYJ.js +0 -1
  144. package/lib/dist/web/chunk-IOB4JJT4.js +0 -1
  145. package/lib/dist/web/chunk-ISNEBICW.js +0 -1
  146. package/lib/dist/web/chunk-J2GZVLHH.js +0 -1
  147. package/lib/dist/web/chunk-JGDK6YKG.js +0 -1
  148. package/lib/dist/web/chunk-JLOJCDIY.js +0 -1
  149. package/lib/dist/web/chunk-JPSYO24K.js +0 -1
  150. package/lib/dist/web/chunk-JTFXTIPE.js +0 -903
  151. package/lib/dist/web/chunk-K7UD24Z4.js +0 -1
  152. package/lib/dist/web/chunk-KYSTCHAH.js +0 -1
  153. package/lib/dist/web/chunk-LB6JPLX2.js +0 -1
  154. package/lib/dist/web/chunk-LNSVDHCI.js +0 -1
  155. package/lib/dist/web/chunk-LVGIY3SO.js +0 -1
  156. package/lib/dist/web/chunk-LXLHIHEN.js +0 -1
  157. package/lib/dist/web/chunk-MNFTHCSJ.js +0 -1
  158. package/lib/dist/web/chunk-N6SS4G6S.js +0 -1
  159. package/lib/dist/web/chunk-NKPK3BR3.js +0 -1
  160. package/lib/dist/web/chunk-NTBJG6SJ.js +0 -1
  161. package/lib/dist/web/chunk-NUDB3Q2Y.js +0 -3
  162. package/lib/dist/web/chunk-OTQR5VFM.js +0 -1
  163. package/lib/dist/web/chunk-OXEF5E3E.js +0 -1
  164. package/lib/dist/web/chunk-P62EJGSF.js +0 -1
  165. package/lib/dist/web/chunk-PCW6R7OP.js +0 -1
  166. package/lib/dist/web/chunk-PGGJPDJG.js +0 -1
  167. package/lib/dist/web/chunk-POCVU4VK.js +0 -2
  168. package/lib/dist/web/chunk-PS6HRYQQ.js +0 -3
  169. package/lib/dist/web/chunk-PUYSJNJR.js +0 -1
  170. package/lib/dist/web/chunk-PZSU53SS.js +0 -1
  171. package/lib/dist/web/chunk-Q2RVFS45.js +0 -1
  172. package/lib/dist/web/chunk-Q7L6LLAK.js +0 -1
  173. package/lib/dist/web/chunk-QCMKJIWY.js +0 -1
  174. package/lib/dist/web/chunk-QH6CF3M3.js +0 -1
  175. package/lib/dist/web/chunk-QIZ65CGB.js +0 -1
  176. package/lib/dist/web/chunk-QPA2REUE.js +0 -1
  177. package/lib/dist/web/chunk-QQ5LD7PI.js +0 -1
  178. package/lib/dist/web/chunk-QR6L3KAC.js +0 -1
  179. package/lib/dist/web/chunk-R2DLK4HO.js +0 -1
  180. package/lib/dist/web/chunk-RD6TVPOT.js +0 -1
  181. package/lib/dist/web/chunk-RKY4EJYJ.js +0 -1
  182. package/lib/dist/web/chunk-RONYWVY7.js +0 -1
  183. package/lib/dist/web/chunk-RXKXYF2C.js +0 -1
  184. package/lib/dist/web/chunk-SQPYSOV6.js +0 -1
  185. package/lib/dist/web/chunk-SWKJRNYY.js +0 -1
  186. package/lib/dist/web/chunk-SYGIPC2P.js +0 -4
  187. package/lib/dist/web/chunk-T7AZ65JP.js +0 -1
  188. package/lib/dist/web/chunk-TCZDVOHD.js +0 -1
  189. package/lib/dist/web/chunk-TPTITA3V.js +0 -1
  190. package/lib/dist/web/chunk-TR335633.js +0 -1
  191. package/lib/dist/web/chunk-TWVVIWKO.js +0 -1
  192. package/lib/dist/web/chunk-U67LRNER.js +0 -1
  193. package/lib/dist/web/chunk-UR5KDXPX.js +0 -1
  194. package/lib/dist/web/chunk-UR6O2GEH.js +0 -1
  195. package/lib/dist/web/chunk-USVLLFVR.js +0 -1
  196. package/lib/dist/web/chunk-UTNMGWTP.js +0 -1
  197. package/lib/dist/web/chunk-V74ZPP4B.js +0 -1
  198. package/lib/dist/web/chunk-VECWMHJP.js +0 -1
  199. package/lib/dist/web/chunk-VUACT35R.js +0 -3
  200. package/lib/dist/web/chunk-VZI7H4SZ.js +0 -1
  201. package/lib/dist/web/chunk-WB6YHOD4.js +0 -1
  202. package/lib/dist/web/chunk-WBJ5VEB5.js +0 -1
  203. package/lib/dist/web/chunk-WBT64AWV.js +0 -1
  204. package/lib/dist/web/chunk-WFXJIXZE.js +0 -4
  205. package/lib/dist/web/chunk-WTGYRH3Z.js +0 -298
  206. package/lib/dist/web/chunk-WXTCVDTP.js +0 -1
  207. package/lib/dist/web/chunk-XAUQEKZX.js +0 -1
  208. package/lib/dist/web/chunk-XCDHWLVH.js +0 -1
  209. package/lib/dist/web/chunk-Y3H6FFUZ.js +0 -1
  210. package/lib/dist/web/chunk-Y4F5ULGJ.js +0 -1
  211. package/lib/dist/web/chunk-YEGKAAEE.js +0 -1
  212. package/lib/dist/web/chunk-YM2KU57F.js +0 -1
  213. package/lib/dist/web/chunk-YNYVOPWF.js +0 -1
  214. package/lib/dist/web/chunk-YRERBP6T.js +0 -1
  215. package/lib/dist/web/chunk-YV5LB22R.js +0 -1
  216. package/lib/dist/web/chunk-YWIRU745.js +0 -1
  217. package/lib/dist/web/chunk-YXYPTZ6E.js +0 -1
  218. package/lib/dist/web/chunk-ZLV4VCDG.js +0 -3
  219. package/lib/dist/web/chunk-ZTVI5KFF.js +0 -1
  220. package/lib/dist/web/favicon-16.png +0 -0
  221. package/lib/dist/web/favicon-180.png +0 -0
  222. package/lib/dist/web/favicon-32.png +0 -0
  223. package/lib/dist/web/favicon-512.png +0 -0
  224. package/lib/dist/web/favicon-small.svg +0 -15
  225. package/lib/dist/web/favicon.ico +0 -0
  226. package/lib/dist/web/favicon.svg +0 -20
  227. package/lib/dist/web/icon-192.png +0 -0
  228. package/lib/dist/web/icon-512.png +0 -0
  229. package/lib/dist/web/index.html +0 -146
  230. package/lib/dist/web/main-ESADRXN2.css +0 -1
  231. package/lib/dist/web/main-FY3HQ4PX.js +0 -1
  232. package/lib/dist/web/manifest.webmanifest +0 -15
  233. package/lib/dist/web/media/codicon-LN6W7LCM.ttf +0 -0
  234. package/lib/dist/web/styles-KSOPUVDA.css +0 -1
  235. package/lib/dist/web/sw.js +0 -69
@@ -13,7 +13,7 @@
13
13
  * ToolHandler in `tools.ts` calls these via thin wrappers.
14
14
  */
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.specToolDefinitions = exports.SPEC_LINK_KINDS = exports.SPEC_LINK_STATES = void 0;
16
+ exports.specToolDefinitions = exports.REQUIREMENT_STATUSES = exports.SPEC_LINK_KINDS = exports.SPEC_LINK_STATES = void 0;
17
17
  exports.handleSpecshipSpec = handleSpecshipSpec;
18
18
  exports.handleSpecshipLinkAssert = handleSpecshipLinkAssert;
19
19
  exports.handleSpecshipLinkVerify = handleSpecshipLinkVerify;
@@ -41,6 +41,21 @@ exports.SPEC_LINK_KINDS = [
41
41
  'documents',
42
42
  'depends_on',
43
43
  ];
44
+ /**
45
+ * Rolled-up lifecycle status of a requirement in the `list` inventory
46
+ * (REQ-FUNNEL-007). Exactly one status per requirement, derived from the
47
+ * requirement's own spec→code links plus those of its acceptance children.
48
+ * Ordered from least to most attention-worthy for stable totals rendering.
49
+ * Degraded links win the derivation so a stale / broken implementation is
50
+ * never reported as done (never overstate).
51
+ */
52
+ exports.REQUIREMENT_STATUSES = [
53
+ 'authored',
54
+ 'in-progress',
55
+ 'implemented',
56
+ 'verified',
57
+ 'needs-attention',
58
+ ];
44
59
  /**
45
60
  * Tool definitions. Append these to the main `tools` array.
46
61
  *
@@ -53,7 +68,7 @@ exports.SPEC_LINK_KINDS = [
53
68
  exports.specToolDefinitions = [
54
69
  {
55
70
  name: 'specship_spec',
56
- description: 'Fetch a spec/requirement by its ID. Call this FIRST whenever the user mentions a spec ID (e.g., REQ-AUTH-005) or a requirement. Returns the spec body, its parent doc and sibling requirements, and the code it currently links to with link state (verified / drifted / orphaned). Use this instead of Read-ing the spec file — it returns more (linked code + state) than the file alone. Called WITHOUT a spec_id, it returns the project\'s spec lifecycle funnel: brainstormed ideas → specs → implemented, with per-document rollups. Pass `query` instead to SEARCH specs by free text — call this FIRST when a user describes a change (a bug, an error, a one-line enhancement) and you need to find which existing spec it belongs to; it returns scored, ranked candidates (id, title, kind, snippet) over the spec full-text index.',
71
+ description: 'Fetch a spec/requirement by its ID. Call this FIRST whenever the user mentions a spec ID (e.g., REQ-AUTH-005) or a requirement. Returns the spec body, its parent doc and sibling requirements, and the code it currently links to with link state (verified / drifted / orphaned). Use this instead of Read-ing the spec file — it returns more (linked code + state) than the file alone. Called WITHOUT a spec_id, it returns the project\'s spec lifecycle funnel: brainstormed ideas → specs → implemented, with per-document rollups. Pass `list: true` for a flat inventory instead: every requirement grouped by document with exactly one rolled-up status each (authored / in-progress / implemented / verified / needs-attention) plus per-status totals. Pass `ideas: true` for the ideas review view: exactly the idea-state briefs (unlinked brainstorm briefs) with each one\'s age since capture and labels, closing with the promotion hand-off (`/specship:spec new <brief-id>`). Pass `query` instead to SEARCH specs by free text — call this FIRST when a user describes a change (a bug, an error, a one-line enhancement) and you need to find which existing spec it belongs to; it returns scored, ranked candidates (id, title, kind, snippet) over the spec full-text index.',
57
72
  inputSchema: {
58
73
  type: 'object',
59
74
  properties: {
@@ -65,6 +80,14 @@ exports.specToolDefinitions = [
65
80
  type: 'string',
66
81
  description: 'Free-text query to SEARCH specs (instead of fetching one by id). Returns scored, ranked candidate specs matched over the spec full-text index — use to find which existing spec a described change belongs to.',
67
82
  },
83
+ list: {
84
+ type: 'boolean',
85
+ description: 'Provide with no spec_id to get the flat spec inventory instead of the funnel: every requirement grouped by document with exactly one rolled-up status each (authored / in-progress / implemented / verified / needs-attention), unlinked briefs as ideas, plus per-status totals. A free-text `query` takes precedence over it.',
86
+ },
87
+ ideas: {
88
+ type: 'boolean',
89
+ description: 'Provide with no spec_id to get the ideas review view: exactly the idea-state briefs (unlinked brainstorm briefs), each with its age since capture and labels, closing with the promotion hand-off (/specship:spec new <brief-id>). A free-text `query`, `list`, and a `spec_id` all take precedence.',
90
+ },
68
91
  behaviour_surface: {
69
92
  type: 'boolean',
70
93
  description: "With a spec_id, return that requirement's BEHAVIOUR SURFACE instead of its detail: the code it links to plus the surrounding routes / components / handlers, grouped into a UI tier (Playwright targets) and a backend/batch tier (API/job targets). Use to author end-to-end tests for a requirement.",
@@ -279,6 +302,195 @@ function buildFunnel(sq) {
279
302
  }
280
303
  return lines.join('\n');
281
304
  }
305
+ /**
306
+ * Human age of an idea since capture (REQ-IDEAS-002.A1), computed at render from
307
+ * the brief's capture timestamp. `unknown` when the brief carries no parseable
308
+ * capture date; a future date (clock skew) clamps to `today` rather than showing
309
+ * a negative age.
310
+ */
311
+ function formatIdeaAge(capturedAt, now) {
312
+ if (capturedAt === null)
313
+ return 'unknown';
314
+ const ms = now - capturedAt;
315
+ if (ms < 86_400_000)
316
+ return 'today';
317
+ const days = Math.floor(ms / 86_400_000);
318
+ if (days < 14)
319
+ return `${days}d`;
320
+ if (days < 60)
321
+ return `${Math.floor(days / 7)}w`;
322
+ return `${Math.floor(days / 30)}mo`;
323
+ }
324
+ /**
325
+ * The `<age> · <labels>` suffix shared by the `ideas` review view and the
326
+ * list-mode inventory's Ideas section (REQ-IDEAS-002.A2) — one renderer so both
327
+ * surfaces always agree on an idea's age and labels.
328
+ */
329
+ function ideaMetaSuffix(brief, now) {
330
+ const { capturedAt, labels } = (0, brief_link_resolver_1.ideaCaptureFields)(brief);
331
+ const age = formatIdeaAge(capturedAt, now);
332
+ return `${age} · ${labels.length ? labels.join(', ') : '—'}`;
333
+ }
334
+ /**
335
+ * Build the ideas review view (REQ-IDEAS-002). Shown when `specship_spec` is
336
+ * called with `ideas: true`: exactly the idea-state briefs (the same idea-state
337
+ * predicate the funnel and inventory use), each row carrying id, title, age
338
+ * since capture, and labels — resolved from this single call, no per-idea
339
+ * follow-up (A1). Newest capture first (unknown-age last). Closes by naming the
340
+ * promotion hand-off (A3). Zero idea-state briefs → a clean empty-lane message
341
+ * pointing at the `idea` capture verb, never an error (A4).
342
+ */
343
+ function buildIdeas(sq) {
344
+ const ideas = sq
345
+ .getAllSpecs()
346
+ .filter((s) => s.kind === 'brief')
347
+ .filter((b) => (0, brief_link_resolver_1.summarizeBriefFunnel)(sq, b).state === 'idea');
348
+ const lines = [];
349
+ lines.push('# Ideas');
350
+ lines.push('');
351
+ if (ideas.length === 0) {
352
+ lines.push('_No ideas parked yet. Capture one in five seconds with `/specship:spec idea <one-liner>` — it never interrupts your flow._');
353
+ return lines.join('\n');
354
+ }
355
+ const now = Date.now();
356
+ const rows = ideas
357
+ .map((b) => ({ brief: b, ...(0, brief_link_resolver_1.ideaCaptureFields)(b) }))
358
+ .sort((a, z) => {
359
+ if (a.capturedAt !== z.capturedAt) {
360
+ if (a.capturedAt === null)
361
+ return 1; // unknown-age sorts last
362
+ if (z.capturedAt === null)
363
+ return -1;
364
+ return z.capturedAt - a.capturedAt; // newest capture first
365
+ }
366
+ return a.brief.id.localeCompare(z.brief.id);
367
+ });
368
+ lines.push(`${rows.length} idea${rows.length === 1 ? '' : 's'} parked, newest first:`);
369
+ lines.push('');
370
+ for (const { brief } of rows) {
371
+ lines.push(`- ${brief.id} — ${brief.title} · ${ideaMetaSuffix(brief, now)}`);
372
+ }
373
+ lines.push('');
374
+ lines.push('Promote any idea into a spec with `/specship:spec new <brief-id>` — it seeds the authoring interview from the brief.');
375
+ return lines.join('\n');
376
+ }
377
+ const DEGRADED_LINK_STATES = ['drifted', 'broken', 'orphaned'];
378
+ /**
379
+ * Derive a requirement's single rolled-up lifecycle status (REQ-FUNNEL-007) from
380
+ * its own spec→code links PLUS the links of its acceptance children — a
381
+ * requirement's acceptance criteria are separate `acceptance`-kind child specs,
382
+ * and a criterion's link state is part of the requirement's real status.
383
+ *
384
+ * Precedence (a single degraded link always wins — never overstate):
385
+ * 1. any link drifted / broken / orphaned → needs-attention
386
+ * 2. zero links → authored
387
+ * 3. all links verified → verified
388
+ * 4. every link implemented or verified (no lower) → implemented
389
+ * 5. otherwise (a drafted / implementing remains) → in-progress
390
+ */
391
+ function deriveRequirementStatus(sq, req) {
392
+ const links = [...sq.getLinksBySpec(req.id)];
393
+ for (const child of sq.getSpecsByParent(req.id)) {
394
+ if (child.kind === 'acceptance')
395
+ links.push(...sq.getLinksBySpec(child.id));
396
+ }
397
+ if (links.some((l) => DEGRADED_LINK_STATES.includes(l.state)))
398
+ return 'needs-attention';
399
+ if (links.length === 0)
400
+ return 'authored';
401
+ if (links.every((l) => l.state === 'verified'))
402
+ return 'verified';
403
+ // No degraded and no in-progress link ⇒ every link is implemented or verified.
404
+ if (links.every((l) => l.state === 'implemented' || l.state === 'verified'))
405
+ return 'implemented';
406
+ // A drafted / implementing link remains ⇒ still in progress (never overstate).
407
+ return 'in-progress';
408
+ }
409
+ /**
410
+ * Build the flat spec inventory markdown (REQ-FUNNEL-007). Shown when
411
+ * `specship_spec` is called with `list: true`: unlinked briefs as `idea`
412
+ * entries, then every document with its requirements each carrying exactly one
413
+ * derived status, requirements with no document parent under an "Ungrouped"
414
+ * section, and a per-status totals line across all requirements. An empty index
415
+ * returns a clean empty listing, never an error.
416
+ */
417
+ function buildInventory(sq) {
418
+ const all = sq.getAllSpecs();
419
+ if (all.length === 0) {
420
+ return '# Spec inventory\n\n_No specs or briefs yet. Author one with /specship:spec new._';
421
+ }
422
+ const documents = all.filter((s) => s.kind === 'document');
423
+ const requirements = all.filter((s) => s.kind === 'requirement');
424
+ const briefs = all.filter((s) => s.kind === 'brief');
425
+ // Ideas — briefs not yet linked to a spec (same idea-state as the funnel).
426
+ const ideas = briefs
427
+ .map((b) => (0, brief_link_resolver_1.summarizeBriefFunnel)(sq, b))
428
+ .filter((e) => e.state === 'idea');
429
+ // One derived status per requirement, memoized so the sections and the
430
+ // totals line can never disagree.
431
+ const statusOf = new Map();
432
+ for (const req of requirements)
433
+ statusOf.set(req.id, deriveRequirementStatus(sq, req));
434
+ const totals = {
435
+ authored: 0,
436
+ 'in-progress': 0,
437
+ implemented: 0,
438
+ verified: 0,
439
+ 'needs-attention': 0,
440
+ };
441
+ for (const st of statusOf.values())
442
+ totals[st]++;
443
+ const lines = [];
444
+ lines.push('# Spec inventory');
445
+ lines.push('');
446
+ lines.push(`**ideas** ${ideas.length} · **documents** ${documents.length} · **requirements** ${requirements.length}`);
447
+ if (ideas.length) {
448
+ // A2: carry the same age + labels the `ideas` review view shows (one
449
+ // renderer, so both surfaces agree). Computed at render off one `now`.
450
+ const now = Date.now();
451
+ lines.push('');
452
+ lines.push('## Ideas (unlinked briefs)');
453
+ for (const e of ideas) {
454
+ const b = sq.getSpecById(e.briefId);
455
+ const suffix = b ? ideaMetaSuffix(b, now) : 'unknown · —';
456
+ lines.push(`- ${e.briefId} — ${b?.title ?? ''} [idea] · ${suffix}`);
457
+ }
458
+ }
459
+ // Documents and their requirements. Track which requirements were rendered
460
+ // under a document so the rest fall into "Ungrouped".
461
+ const grouped = new Set();
462
+ if (documents.length) {
463
+ lines.push('');
464
+ lines.push('## Documents');
465
+ for (const d of documents) {
466
+ lines.push('');
467
+ lines.push(`### ${d.id} — ${d.title}`);
468
+ const reqs = sq.getSpecsByParent(d.id).filter((s) => s.kind === 'requirement');
469
+ if (reqs.length === 0) {
470
+ lines.push('_No requirements yet._');
471
+ continue;
472
+ }
473
+ for (const req of reqs) {
474
+ grouped.add(req.id);
475
+ lines.push(`- ${req.id} — ${req.title} [${statusOf.get(req.id) ?? 'authored'}]`);
476
+ }
477
+ }
478
+ }
479
+ const ungrouped = requirements.filter((r) => !grouped.has(r.id));
480
+ if (ungrouped.length) {
481
+ lines.push('');
482
+ lines.push('## Ungrouped requirements');
483
+ for (const req of ungrouped) {
484
+ lines.push(`- ${req.id} — ${req.title} [${statusOf.get(req.id) ?? 'authored'}]`);
485
+ }
486
+ }
487
+ lines.push('');
488
+ lines.push('## Totals');
489
+ for (const st of exports.REQUIREMENT_STATUSES) {
490
+ lines.push(`- ${st} ${totals[st]}`);
491
+ }
492
+ return lines.join('\n');
493
+ }
282
494
  async function handleSpecshipSpec(cg, args) {
283
495
  const specId = args.spec_id;
284
496
  const sq = cg.getSpecQueries();
@@ -292,6 +504,20 @@ async function handleSpecshipSpec(cg, args) {
292
504
  if (queryArg !== undefined && queryArg !== null && typeof queryArg !== 'string') {
293
505
  return error('query must be a string');
294
506
  }
507
+ // List mode (REQ-FUNNEL-007): `list: true` returns the flat spec inventory —
508
+ // every requirement's single rolled-up status + per-status totals. Sits
509
+ // between query and the no-arg funnel so query, funnel, spec_id detail, and
510
+ // behaviour_surface are all unchanged.
511
+ if (args.list === true) {
512
+ return text(buildInventory(sq));
513
+ }
514
+ // Ideas mode (REQ-IDEAS-002): `ideas: true` returns the ideas review view —
515
+ // exactly the idea-state briefs with age + labels. A peer of `list`, so
516
+ // query, list, funnel, spec_id detail, and behaviour_surface are all
517
+ // unchanged.
518
+ if (args.ideas === true) {
519
+ return text(buildIdeas(sq));
520
+ }
295
521
  // No id → the lifecycle funnel (REQ-FUNNEL-005). The id case below is unchanged.
296
522
  if (specId === undefined || specId === null || specId === '') {
297
523
  return text(buildFunnel(sq));
@@ -1 +1 @@
1
- {"version":3,"file":"spec-tools.js","sourceRoot":"","sources":["../../src/mcp/spec-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spec-tools.js","sourceRoot":"","sources":["../../src/mcp/spec-tools.ts"],"names":[],"mappings":"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"}
@@ -244,6 +244,18 @@ export declare class ToolHandler {
244
244
  * Handle specship_impact
245
245
  */
246
246
  private handleImpact;
247
+ /**
248
+ * Spec-aware impact (REQ-IMPACT-SPEC-001): for each affected symbol in the
249
+ * blast radius that carries a spec link, surface the governing spec's id, the
250
+ * link kind, and the link's current state — the intent that a code-only impact
251
+ * view can't see. When the radius has any governed symbols, close with drift
252
+ * handoff so the change loops back through the intent/gate doors.
253
+ *
254
+ * Shown regardless of install tier — this is what distinguishes SpecShip
255
+ * impact from a plain code-graph impact (A2). Returns '' when no symbol in the
256
+ * radius is spec-linked, so a link-free radius reads identically to before (A4).
257
+ */
258
+ private formatGovernedBy;
247
259
  /**
248
260
  * Describe a synthesized (dynamic-dispatch) edge for human output: how the
249
261
  * callback was wired up — the bridge static parsing can't see. Returns null
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -1116,9 +1116,42 @@ class ToolHandler {
1116
1116
  edges: mergedEdges,
1117
1117
  roots: allMatches.nodes.map(n => n.id),
1118
1118
  };
1119
- const formatted = this.formatImpact(symbol, mergedImpact) + allMatches.note;
1119
+ const governedBy = this.formatGovernedBy(cg, mergedImpact);
1120
+ const formatted = this.formatImpact(symbol, mergedImpact) + allMatches.note + governedBy;
1120
1121
  return this.textResult(this.truncateOutput(formatted));
1121
1122
  }
1123
+ /**
1124
+ * Spec-aware impact (REQ-IMPACT-SPEC-001): for each affected symbol in the
1125
+ * blast radius that carries a spec link, surface the governing spec's id, the
1126
+ * link kind, and the link's current state — the intent that a code-only impact
1127
+ * view can't see. When the radius has any governed symbols, close with drift
1128
+ * handoff so the change loops back through the intent/gate doors.
1129
+ *
1130
+ * Shown regardless of install tier — this is what distinguishes SpecShip
1131
+ * impact from a plain code-graph impact (A2). Returns '' when no symbol in the
1132
+ * radius is spec-linked, so a link-free radius reads identically to before (A4).
1133
+ */
1134
+ formatGovernedBy(cg, impact) {
1135
+ const sq = cg.getSpecQueries();
1136
+ const entries = [];
1137
+ for (const node of impact.nodes.values()) {
1138
+ const links = sq.getLinksByNode(node.id);
1139
+ for (const link of links) {
1140
+ const loc = node.startLine ? `:${node.startLine}` : '';
1141
+ entries.push(`- ${node.name} (${node.filePath}${loc}) — ${link.specId} · ${link.kind} · ${link.state}`);
1142
+ }
1143
+ }
1144
+ if (entries.length === 0)
1145
+ return '';
1146
+ return [
1147
+ '',
1148
+ '## Governed by',
1149
+ '',
1150
+ ...entries,
1151
+ '',
1152
+ '> Governed symbols are in this radius — changing them drifts a linked promise. After the change, re-assert the affected links with specship_link_assert and check for drift via /specship:check.',
1153
+ ].join('\n');
1154
+ }
1122
1155
  /**
1123
1156
  * Describe a synthesized (dynamic-dispatch) edge for human output: how the
1124
1157
  * callback was wired up — the bridge static parsing can't see. Returns null