@specship/specship-win32-arm64 0.25.0 → 0.28.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 (274) hide show
  1. package/bin/specship.cmd +31 -1
  2. package/lib/dist/activation/cheatsheet.d.ts +17 -1
  3. package/lib/dist/activation/cheatsheet.d.ts.map +1 -1
  4. package/lib/dist/activation/cheatsheet.js +47 -3
  5. package/lib/dist/activation/cheatsheet.js.map +1 -1
  6. package/lib/dist/activation/hook-output.d.ts +80 -0
  7. package/lib/dist/activation/hook-output.d.ts.map +1 -0
  8. package/lib/dist/activation/hook-output.js +103 -0
  9. package/lib/dist/activation/hook-output.js.map +1 -0
  10. package/lib/dist/activation/search-intercept.d.ts +60 -29
  11. package/lib/dist/activation/search-intercept.d.ts.map +1 -1
  12. package/lib/dist/activation/search-intercept.js +159 -55
  13. package/lib/dist/activation/search-intercept.js.map +1 -1
  14. package/lib/dist/activation/steering.d.ts +8 -10
  15. package/lib/dist/activation/steering.d.ts.map +1 -1
  16. package/lib/dist/activation/steering.js +21 -6
  17. package/lib/dist/activation/steering.js.map +1 -1
  18. package/lib/dist/behaviour/behaviour-surface.d.ts +47 -0
  19. package/lib/dist/behaviour/behaviour-surface.d.ts.map +1 -1
  20. package/lib/dist/behaviour/behaviour-surface.js +108 -2
  21. package/lib/dist/behaviour/behaviour-surface.js.map +1 -1
  22. package/lib/dist/bin/node-version-check.d.ts +22 -7
  23. package/lib/dist/bin/node-version-check.d.ts.map +1 -1
  24. package/lib/dist/bin/node-version-check.js +39 -9
  25. package/lib/dist/bin/node-version-check.js.map +1 -1
  26. package/lib/dist/bin/specship.js +762 -81
  27. package/lib/dist/bin/specship.js.map +1 -1
  28. package/lib/dist/commands/specship/learn.md +22 -0
  29. package/lib/dist/commands/specship/spec.md +12 -0
  30. package/lib/dist/db/sqlite-adapter.d.ts +7 -5
  31. package/lib/dist/db/sqlite-adapter.d.ts.map +1 -1
  32. package/lib/dist/db/sqlite-adapter.js +11 -9
  33. package/lib/dist/db/sqlite-adapter.js.map +1 -1
  34. package/lib/dist/enforce/changed-files.d.ts +11 -0
  35. package/lib/dist/enforce/changed-files.d.ts.map +1 -1
  36. package/lib/dist/enforce/changed-files.js +42 -0
  37. package/lib/dist/enforce/changed-files.js.map +1 -1
  38. package/lib/dist/enforce/enforce.d.ts +25 -1
  39. package/lib/dist/enforce/enforce.d.ts.map +1 -1
  40. package/lib/dist/enforce/enforce.js +58 -3
  41. package/lib/dist/enforce/enforce.js.map +1 -1
  42. package/lib/dist/enforce/mutation.d.ts +46 -0
  43. package/lib/dist/enforce/mutation.d.ts.map +1 -0
  44. package/lib/dist/enforce/mutation.js +104 -0
  45. package/lib/dist/enforce/mutation.js.map +1 -0
  46. package/lib/dist/enforce/suppressions.d.ts +33 -0
  47. package/lib/dist/enforce/suppressions.d.ts.map +1 -0
  48. package/lib/dist/enforce/suppressions.js +159 -0
  49. package/lib/dist/enforce/suppressions.js.map +1 -0
  50. package/lib/dist/extraction/specs/markdown-spec-extractor.d.ts.map +1 -1
  51. package/lib/dist/extraction/specs/markdown-spec-extractor.js +16 -2
  52. package/lib/dist/extraction/specs/markdown-spec-extractor.js.map +1 -1
  53. package/lib/dist/graph/spec-coverage.d.ts +57 -1
  54. package/lib/dist/graph/spec-coverage.d.ts.map +1 -1
  55. package/lib/dist/graph/spec-coverage.js +129 -5
  56. package/lib/dist/graph/spec-coverage.js.map +1 -1
  57. package/lib/dist/health/smoke-check.js +2 -2
  58. package/lib/dist/health/smoke-check.js.map +1 -1
  59. package/lib/dist/index.d.ts +8 -3
  60. package/lib/dist/index.d.ts.map +1 -1
  61. package/lib/dist/index.js +65 -9
  62. package/lib/dist/index.js.map +1 -1
  63. package/lib/dist/installer/gemini-commands.d.ts +107 -0
  64. package/lib/dist/installer/gemini-commands.d.ts.map +1 -0
  65. package/lib/dist/installer/gemini-commands.js +264 -0
  66. package/lib/dist/installer/gemini-commands.js.map +1 -0
  67. package/lib/dist/installer/index.d.ts +23 -1
  68. package/lib/dist/installer/index.d.ts.map +1 -1
  69. package/lib/dist/installer/index.js +22 -3
  70. package/lib/dist/installer/index.js.map +1 -1
  71. package/lib/dist/installer/install-defaults.d.ts +19 -0
  72. package/lib/dist/installer/install-defaults.d.ts.map +1 -1
  73. package/lib/dist/installer/install-defaults.js +28 -0
  74. package/lib/dist/installer/install-defaults.js.map +1 -1
  75. package/lib/dist/installer/instructions-template.d.ts +22 -0
  76. package/lib/dist/installer/instructions-template.d.ts.map +1 -1
  77. package/lib/dist/installer/instructions-template.js +37 -1
  78. package/lib/dist/installer/instructions-template.js.map +1 -1
  79. package/lib/dist/installer/targets/claude.d.ts +4 -0
  80. package/lib/dist/installer/targets/claude.d.ts.map +1 -1
  81. package/lib/dist/installer/targets/claude.js +8 -25
  82. package/lib/dist/installer/targets/claude.js.map +1 -1
  83. package/lib/dist/installer/targets/gemini.d.ts +85 -12
  84. package/lib/dist/installer/targets/gemini.d.ts.map +1 -1
  85. package/lib/dist/installer/targets/gemini.js +527 -30
  86. package/lib/dist/installer/targets/gemini.js.map +1 -1
  87. package/lib/dist/installer/targets/shared.d.ts +13 -0
  88. package/lib/dist/installer/targets/shared.d.ts.map +1 -1
  89. package/lib/dist/installer/targets/shared.js +18 -0
  90. package/lib/dist/installer/targets/shared.js.map +1 -1
  91. package/lib/dist/installer/targets/types.d.ts +12 -0
  92. package/lib/dist/installer/targets/types.d.ts.map +1 -1
  93. package/lib/dist/jira/auto-publish.d.ts +71 -4
  94. package/lib/dist/jira/auto-publish.d.ts.map +1 -1
  95. package/lib/dist/jira/auto-publish.js +186 -17
  96. package/lib/dist/jira/auto-publish.js.map +1 -1
  97. package/lib/dist/jira/reconcile.d.ts +24 -1
  98. package/lib/dist/jira/reconcile.d.ts.map +1 -1
  99. package/lib/dist/jira/reconcile.js +46 -2
  100. package/lib/dist/jira/reconcile.js.map +1 -1
  101. package/lib/dist/jira/repo-config.d.ts +9 -0
  102. package/lib/dist/jira/repo-config.d.ts.map +1 -1
  103. package/lib/dist/jira/repo-config.js +11 -0
  104. package/lib/dist/jira/repo-config.js.map +1 -1
  105. package/lib/dist/jira/types.d.ts +7 -0
  106. package/lib/dist/jira/types.d.ts.map +1 -1
  107. package/lib/dist/jira/types.js.map +1 -1
  108. package/lib/dist/knowledge/enforce.d.ts +75 -0
  109. package/lib/dist/knowledge/enforce.d.ts.map +1 -0
  110. package/lib/dist/knowledge/enforce.js +250 -0
  111. package/lib/dist/knowledge/enforce.js.map +1 -0
  112. package/lib/dist/knowledge/facts.d.ts +33 -0
  113. package/lib/dist/knowledge/facts.d.ts.map +1 -0
  114. package/lib/dist/knowledge/facts.js +117 -0
  115. package/lib/dist/knowledge/facts.js.map +1 -0
  116. package/lib/dist/knowledge/proposals.d.ts +88 -0
  117. package/lib/dist/knowledge/proposals.d.ts.map +1 -0
  118. package/lib/dist/knowledge/proposals.js +360 -0
  119. package/lib/dist/knowledge/proposals.js.map +1 -0
  120. package/lib/dist/knowledge/stale.d.ts +64 -0
  121. package/lib/dist/knowledge/stale.d.ts.map +1 -0
  122. package/lib/dist/knowledge/stale.js +174 -0
  123. package/lib/dist/knowledge/stale.js.map +1 -0
  124. package/lib/dist/mcp/gemini-session.d.ts +50 -0
  125. package/lib/dist/mcp/gemini-session.d.ts.map +1 -0
  126. package/lib/dist/mcp/gemini-session.js +159 -0
  127. package/lib/dist/mcp/gemini-session.js.map +1 -0
  128. package/lib/dist/mcp/jira-tools.d.ts.map +1 -1
  129. package/lib/dist/mcp/jira-tools.js +25 -0
  130. package/lib/dist/mcp/jira-tools.js.map +1 -1
  131. package/lib/dist/mcp/model-context.d.ts +22 -9
  132. package/lib/dist/mcp/model-context.d.ts.map +1 -1
  133. package/lib/dist/mcp/model-context.js +35 -13
  134. package/lib/dist/mcp/model-context.js.map +1 -1
  135. package/lib/dist/mcp/proxy.js +1 -1
  136. package/lib/dist/mcp/proxy.js.map +1 -1
  137. package/lib/dist/mcp/server-instructions.d.ts +16 -15
  138. package/lib/dist/mcp/server-instructions.d.ts.map +1 -1
  139. package/lib/dist/mcp/server-instructions.js +67 -1
  140. package/lib/dist/mcp/server-instructions.js.map +1 -1
  141. package/lib/dist/mcp/session.js +1 -1
  142. package/lib/dist/mcp/session.js.map +1 -1
  143. package/lib/dist/mcp/spec-tools.d.ts +9 -1
  144. package/lib/dist/mcp/spec-tools.d.ts.map +1 -1
  145. package/lib/dist/mcp/spec-tools.js +69 -21
  146. package/lib/dist/mcp/spec-tools.js.map +1 -1
  147. package/lib/dist/mcp/tools.d.ts +37 -1
  148. package/lib/dist/mcp/tools.d.ts.map +1 -1
  149. package/lib/dist/mcp/tools.js +120 -9
  150. package/lib/dist/mcp/tools.js.map +1 -1
  151. package/lib/dist/pulse/pulse.d.ts +93 -0
  152. package/lib/dist/pulse/pulse.d.ts.map +1 -0
  153. package/lib/dist/pulse/pulse.js +401 -0
  154. package/lib/dist/pulse/pulse.js.map +1 -0
  155. package/lib/dist/reflect/apply.d.ts.map +1 -1
  156. package/lib/dist/reflect/apply.js +38 -3
  157. package/lib/dist/reflect/apply.js.map +1 -1
  158. package/lib/dist/reflect/auto-sweep.d.ts +26 -0
  159. package/lib/dist/reflect/auto-sweep.d.ts.map +1 -0
  160. package/lib/dist/reflect/auto-sweep.js +90 -0
  161. package/lib/dist/reflect/auto-sweep.js.map +1 -0
  162. package/lib/dist/reflect/cli.d.ts +62 -0
  163. package/lib/dist/reflect/cli.d.ts.map +1 -0
  164. package/lib/dist/reflect/cli.js +163 -0
  165. package/lib/dist/reflect/cli.js.map +1 -0
  166. package/lib/dist/reflect/miner.d.ts.map +1 -1
  167. package/lib/dist/reflect/miner.js +119 -0
  168. package/lib/dist/reflect/miner.js.map +1 -1
  169. package/lib/dist/reflect/sweep.d.ts +1 -0
  170. package/lib/dist/reflect/sweep.d.ts.map +1 -1
  171. package/lib/dist/reflect/sweep.js +62 -13
  172. package/lib/dist/reflect/sweep.js.map +1 -1
  173. package/lib/dist/reflect/targets.d.ts +2 -0
  174. package/lib/dist/reflect/targets.d.ts.map +1 -1
  175. package/lib/dist/reflect/targets.js +33 -0
  176. package/lib/dist/reflect/targets.js.map +1 -1
  177. package/lib/dist/reflect/types.d.ts +19 -2
  178. package/lib/dist/reflect/types.d.ts.map +1 -1
  179. package/lib/dist/resolution/test-title-links.d.ts.map +1 -1
  180. package/lib/dist/resolution/test-title-links.js +3 -14
  181. package/lib/dist/resolution/test-title-links.js.map +1 -1
  182. package/lib/dist/server/routes/claude.js +15 -7
  183. package/lib/dist/server/routes/knowledge.js +118 -0
  184. package/lib/dist/server/server.js +2 -0
  185. package/lib/dist/spec-lint/lint.d.ts +1 -1
  186. package/lib/dist/spec-lint/lint.d.ts.map +1 -1
  187. package/lib/dist/spec-lint/lint.js +63 -2
  188. package/lib/dist/spec-lint/lint.js.map +1 -1
  189. package/lib/dist/spec-quality/criterion-ids.d.ts +13 -0
  190. package/lib/dist/spec-quality/criterion-ids.d.ts.map +1 -0
  191. package/lib/dist/spec-quality/criterion-ids.js +38 -0
  192. package/lib/dist/spec-quality/criterion-ids.js.map +1 -0
  193. package/lib/dist/spec-quality/evidence-kind.d.ts +54 -0
  194. package/lib/dist/spec-quality/evidence-kind.d.ts.map +1 -0
  195. package/lib/dist/spec-quality/evidence-kind.js +183 -0
  196. package/lib/dist/spec-quality/evidence-kind.js.map +1 -0
  197. package/lib/dist/spec-quality/link-persist.d.ts +65 -0
  198. package/lib/dist/spec-quality/link-persist.d.ts.map +1 -0
  199. package/lib/dist/spec-quality/link-persist.js +249 -0
  200. package/lib/dist/spec-quality/link-persist.js.map +1 -0
  201. package/lib/dist/spec-quality/plan-scope.d.ts +38 -0
  202. package/lib/dist/spec-quality/plan-scope.d.ts.map +1 -0
  203. package/lib/dist/spec-quality/plan-scope.js +129 -0
  204. package/lib/dist/spec-quality/plan-scope.js.map +1 -0
  205. package/lib/dist/spec-quality/postcheck.d.ts +85 -0
  206. package/lib/dist/spec-quality/postcheck.d.ts.map +1 -0
  207. package/lib/dist/spec-quality/postcheck.js +390 -0
  208. package/lib/dist/spec-quality/postcheck.js.map +1 -0
  209. package/lib/dist/spec-quality/readiness.d.ts +72 -0
  210. package/lib/dist/spec-quality/readiness.d.ts.map +1 -0
  211. package/lib/dist/spec-quality/readiness.js +226 -0
  212. package/lib/dist/spec-quality/readiness.js.map +1 -0
  213. package/lib/dist/workflows/agents/claude.d.ts +16 -0
  214. package/lib/dist/workflows/agents/claude.d.ts.map +1 -0
  215. package/lib/dist/workflows/agents/claude.js +82 -0
  216. package/lib/dist/workflows/agents/claude.js.map +1 -0
  217. package/lib/dist/workflows/agents/gemini.d.ts +21 -0
  218. package/lib/dist/workflows/agents/gemini.d.ts.map +1 -0
  219. package/lib/dist/workflows/agents/gemini.js +124 -0
  220. package/lib/dist/workflows/agents/gemini.js.map +1 -0
  221. package/lib/dist/workflows/agents/index.d.ts +28 -0
  222. package/lib/dist/workflows/agents/index.d.ts.map +1 -0
  223. package/lib/dist/workflows/agents/index.js +104 -0
  224. package/lib/dist/workflows/agents/index.js.map +1 -0
  225. package/lib/dist/workflows/agents/types.d.ts +55 -0
  226. package/lib/dist/workflows/agents/types.d.ts.map +1 -0
  227. package/lib/dist/workflows/agents/types.js +46 -0
  228. package/lib/dist/workflows/agents/types.js.map +1 -0
  229. package/lib/dist/workflows/batch.d.ts +63 -0
  230. package/lib/dist/workflows/batch.d.ts.map +1 -0
  231. package/lib/dist/workflows/batch.js +151 -0
  232. package/lib/dist/workflows/batch.js.map +1 -0
  233. package/lib/dist/workflows/defaults/claude-design-implement.yaml +3 -4
  234. package/lib/dist/workflows/defaults/spec-author.yaml +11 -9
  235. package/lib/dist/workflows/defaults/spec-implement-mixed.yaml +21 -436
  236. package/lib/dist/workflows/defaults/spec-implement.yaml +465 -46
  237. package/lib/dist/workflows/discovery.d.ts +13 -0
  238. package/lib/dist/workflows/discovery.d.ts.map +1 -1
  239. package/lib/dist/workflows/discovery.js +79 -17
  240. package/lib/dist/workflows/discovery.js.map +1 -1
  241. package/lib/dist/workflows/executor.d.ts +18 -0
  242. package/lib/dist/workflows/executor.d.ts.map +1 -1
  243. package/lib/dist/workflows/executor.js +130 -33
  244. package/lib/dist/workflows/executor.js.map +1 -1
  245. package/lib/dist/workflows/gc.d.ts +50 -0
  246. package/lib/dist/workflows/gc.d.ts.map +1 -0
  247. package/lib/dist/workflows/gc.js +120 -0
  248. package/lib/dist/workflows/gc.js.map +1 -0
  249. package/lib/dist/workflows/merge-queue.d.ts +64 -0
  250. package/lib/dist/workflows/merge-queue.d.ts.map +1 -0
  251. package/lib/dist/workflows/merge-queue.js +162 -0
  252. package/lib/dist/workflows/merge-queue.js.map +1 -0
  253. package/lib/dist/workflows/runners/approval.d.ts +1 -1
  254. package/lib/dist/workflows/runners/approval.d.ts.map +1 -1
  255. package/lib/dist/workflows/runners/approval.js +11 -2
  256. package/lib/dist/workflows/runners/approval.js.map +1 -1
  257. package/lib/dist/workflows/runners/bash.d.ts +15 -0
  258. package/lib/dist/workflows/runners/bash.d.ts.map +1 -1
  259. package/lib/dist/workflows/runners/bash.js +50 -1
  260. package/lib/dist/workflows/runners/bash.js.map +1 -1
  261. package/lib/dist/workflows/runners/prompt.d.ts +16 -41
  262. package/lib/dist/workflows/runners/prompt.d.ts.map +1 -1
  263. package/lib/dist/workflows/runners/prompt.js +55 -120
  264. package/lib/dist/workflows/runners/prompt.js.map +1 -1
  265. package/lib/dist/workflows/runners/types.d.ts +12 -0
  266. package/lib/dist/workflows/runners/types.d.ts.map +1 -1
  267. package/lib/dist/workflows/schemas/workflow.d.ts +17 -0
  268. package/lib/dist/workflows/schemas/workflow.d.ts.map +1 -1
  269. package/lib/dist/workflows/schemas/workflow.js +27 -0
  270. package/lib/dist/workflows/schemas/workflow.js.map +1 -1
  271. package/lib/node_modules/.package-lock.json +1 -1
  272. package/lib/package.json +2 -2
  273. package/package.json +5 -3
  274. package/node.exe +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/reflect/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/reflect/apply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Guarded automatic reflection sweep (REQ-ALEARN-004).
3
+ *
4
+ * The sweep piggybacks on `specship sync` so learning fires on its own —
5
+ * autoharness's defining trait — but stays invisible: a persisted cooldown
6
+ * (default 6 h) bounds it, `reflect.autoSweep: false` in specship.config.json
7
+ * opts out, and the caller swallows every error (A3: a sweep failure never
8
+ * blocks or fails a sync).
9
+ */
10
+ export interface ReflectConfigFile {
11
+ /** false → the automatic sweep never runs (on-demand paths unaffected). */
12
+ autoSweep?: boolean;
13
+ /** Cooldown between automatic sweeps, in hours. Default 6. */
14
+ sweepCooldownHours?: number;
15
+ }
16
+ export declare const DEFAULT_SWEEP_COOLDOWN_HOURS = 6;
17
+ /**
18
+ * Load the `reflect` key from `specship.config.json` — missing/unparseable →
19
+ * `{}` (auto-sweep on, default cooldown), mirroring `loadEnforceConfig`.
20
+ */
21
+ export declare function loadReflectConfig(projectRoot: string): ReflectConfigFile;
22
+ /** Whether an automatic sweep is due now (REQ-ALEARN-004.A1). */
23
+ export declare function shouldAutoSweep(projectRoot: string, nowMs: number, cfg: ReflectConfigFile): boolean;
24
+ /** Persist the sweep timestamp so the cooldown survives processes. */
25
+ export declare function recordAutoSweep(projectRoot: string, nowMs: number): void;
26
+ //# sourceMappingURL=auto-sweep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-sweep.d.ts","sourceRoot":"","sources":["../../src/reflect/auto-sweep.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,MAAM,WAAW,iBAAiB;IAChC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8DAA8D;IAC9D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAK9C;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,CASxE;AAED,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAUnG;AAED,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAIxE"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ /**
3
+ * Guarded automatic reflection sweep (REQ-ALEARN-004).
4
+ *
5
+ * The sweep piggybacks on `specship sync` so learning fires on its own —
6
+ * autoharness's defining trait — but stays invisible: a persisted cooldown
7
+ * (default 6 h) bounds it, `reflect.autoSweep: false` in specship.config.json
8
+ * opts out, and the caller swallows every error (A3: a sweep failure never
9
+ * blocks or fails a sync).
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.DEFAULT_SWEEP_COOLDOWN_HOURS = void 0;
46
+ exports.loadReflectConfig = loadReflectConfig;
47
+ exports.shouldAutoSweep = shouldAutoSweep;
48
+ exports.recordAutoSweep = recordAutoSweep;
49
+ const fs = __importStar(require("fs"));
50
+ const path = __importStar(require("path"));
51
+ exports.DEFAULT_SWEEP_COOLDOWN_HOURS = 6;
52
+ const STATE_FILE = (projectRoot) => path.join(projectRoot, '.specship', 'reflect-sweep.json');
53
+ /**
54
+ * Load the `reflect` key from `specship.config.json` — missing/unparseable →
55
+ * `{}` (auto-sweep on, default cooldown), mirroring `loadEnforceConfig`.
56
+ */
57
+ function loadReflectConfig(projectRoot) {
58
+ try {
59
+ const raw = fs.readFileSync(path.join(projectRoot, 'specship.config.json'), 'utf-8');
60
+ const cfg = JSON.parse(raw);
61
+ if (cfg?.reflect && typeof cfg.reflect === 'object')
62
+ return cfg.reflect;
63
+ }
64
+ catch {
65
+ // no config / unparseable → defaults
66
+ }
67
+ return {};
68
+ }
69
+ /** Whether an automatic sweep is due now (REQ-ALEARN-004.A1). */
70
+ function shouldAutoSweep(projectRoot, nowMs, cfg) {
71
+ if (cfg.autoSweep === false)
72
+ return false;
73
+ const cooldownMs = (cfg.sweepCooldownHours ?? exports.DEFAULT_SWEEP_COOLDOWN_HOURS) * 60 * 60_000;
74
+ try {
75
+ const state = JSON.parse(fs.readFileSync(STATE_FILE(projectRoot), 'utf-8'));
76
+ if (typeof state.lastSweepAt === 'number')
77
+ return nowMs - state.lastSweepAt >= cooldownMs;
78
+ }
79
+ catch {
80
+ // no state yet → due
81
+ }
82
+ return true;
83
+ }
84
+ /** Persist the sweep timestamp so the cooldown survives processes. */
85
+ function recordAutoSweep(projectRoot, nowMs) {
86
+ const file = STATE_FILE(projectRoot);
87
+ fs.mkdirSync(path.dirname(file), { recursive: true });
88
+ fs.writeFileSync(file, JSON.stringify({ lastSweepAt: nowMs }) + '\n');
89
+ }
90
+ //# sourceMappingURL=auto-sweep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-sweep.js","sourceRoot":"","sources":["../../src/reflect/auto-sweep.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBH,8CASC;AAGD,0CAUC;AAGD,0CAIC;AAhDD,uCAAyB;AACzB,2CAA6B;AAShB,QAAA,4BAA4B,GAAG,CAAC,CAAC;AAE9C,MAAM,UAAU,GAAG,CAAC,WAAmB,EAAU,EAAE,CACjD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC;AAE5D;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,WAAmB;IACnD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC,EAAE,OAAO,CAAC,CAAC;QACrF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoC,CAAC;QAC/D,IAAI,GAAG,EAAE,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,qCAAqC;IACvC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,iEAAiE;AACjE,SAAgB,eAAe,CAAC,WAAmB,EAAE,KAAa,EAAE,GAAsB;IACxF,IAAI,GAAG,CAAC,SAAS,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,kBAAkB,IAAI,oCAA4B,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;IAC1F,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAA6B,CAAC;QACxG,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;YAAE,OAAO,KAAK,GAAG,KAAK,CAAC,WAAW,IAAI,UAAU,CAAC;IAC5F,CAAC;IAAC,MAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,sEAAsE;AACtE,SAAgB,eAAe,CAAC,WAAmB,EAAE,KAAa;IAChE,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACrC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACxE,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * CLI review verbs for learned proposals (REQ-AUDFIX-002).
3
+ *
4
+ * specship reflect apply <hash> [--yes] — preview the change; write only with --yes
5
+ * specship reflect undo <hash> — reverse an applied proposal
6
+ * specship reflect dismiss <hash> — hide a proposal from future sweeps
7
+ *
8
+ * Mirrors the dashboard API's apply/undo/dismiss wiring (server/src/routes/reflect.ts)
9
+ * on the SpecShip instance's `reflect*` methods. `<hash>` may be any unique
10
+ * prefix of a proposal's content hash (≥ MIN_HASH_PREFIX chars); no match or
11
+ * an ambiguous match exits non-zero and writes nothing.
12
+ *
13
+ * Kept free of commander/chalk so it is unit-testable: output goes through an
14
+ * injected sink and the function returns the process exit code.
15
+ */
16
+ import type { ApplyOutcome, PreviewResult, Proposal, ProposalState, UndoOutcome } from './types';
17
+ /** The proposal review verbs `specship reflect` accepts as its first argument. */
18
+ export declare const REFLECT_VERBS: readonly ["apply", "undo", "dismiss"];
19
+ export type ReflectVerb = (typeof REFLECT_VERBS)[number];
20
+ /** Shortest hash prefix accepted (the listing shows 12 chars). */
21
+ export declare const MIN_HASH_PREFIX = 4;
22
+ /** Hash prefix length shown in listings. */
23
+ export declare const DISPLAY_HASH_LEN = 12;
24
+ export declare function isReflectVerb(s: string | undefined): s is ReflectVerb;
25
+ /** The subset of the SpecShip instance the verbs drive. */
26
+ export interface ReflectVerbTarget {
27
+ reflectList(state?: ProposalState): Proposal[];
28
+ reflectPreview(hash: string): PreviewResult | null;
29
+ reflectApply(hash: string): ApplyOutcome | null;
30
+ reflectUndo(hash: string): UndoOutcome | null;
31
+ reflectDismiss(hash: string): boolean;
32
+ reflectGet(hash: string): Proposal | null;
33
+ }
34
+ export interface ReflectVerbSink {
35
+ log(msg: string): void;
36
+ error(msg: string): void;
37
+ }
38
+ export type PrefixResolution = {
39
+ ok: true;
40
+ proposal: Proposal;
41
+ } | {
42
+ ok: false;
43
+ message: string;
44
+ };
45
+ /** Resolve a (possibly abbreviated) content hash to exactly one proposal. */
46
+ export declare function resolveProposalPrefix(proposals: Proposal[], rawPrefix: string | undefined): PrefixResolution;
47
+ export interface ReflectVerbOptions {
48
+ /** Confirm the write for `apply` (without it, apply only previews). */
49
+ yes?: boolean;
50
+ json?: boolean;
51
+ }
52
+ /**
53
+ * Run one review verb. Returns the exit code (0 success, 1 failure). Nothing is
54
+ * written unless the hash resolves to exactly one proposal (and, for apply,
55
+ * `--yes` is given and the preview has no conflict).
56
+ */
57
+ export declare function runReflectVerb(cg: ReflectVerbTarget, verb: ReflectVerb, hashPrefix: string | undefined, opts: ReflectVerbOptions, out: ReflectVerbSink): number;
58
+ /** How-to-act footer printed under the proposal listing. */
59
+ export declare const REFLECT_REVIEW_HINT = "Preview one with `specship reflect apply <hash>` (add --yes to write), or hide it with `specship reflect dismiss <hash>`.";
60
+ /** The sync-time "learned" line (REQ-ALEARN-004 / REQ-AUDFIX-002.A4). */
61
+ export declare function learnedNotice(title: string): string;
62
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/reflect/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEjG,kFAAkF;AAClF,eAAO,MAAM,aAAa,uCAAwC,CAAC;AACnE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,kEAAkE;AAClE,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,CAAC,IAAI,WAAW,CAErE;AAED,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,QAAQ,EAAE,CAAC;IAC/C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAAC;IACnD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;IAChD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC;IAC9C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACtC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,GAChC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,6EAA6E;AAC7E,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,CAyB5G;AAED,MAAM,WAAW,kBAAkB;IACjC,uEAAuE;IACvE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAID;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,iBAAiB,EACrB,IAAI,EAAE,WAAW,EACjB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,eAAe,GACnB,MAAM,CAmFR;AAED,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,8HAC6F,CAAC;AAE9H,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD"}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ /**
3
+ * CLI review verbs for learned proposals (REQ-AUDFIX-002).
4
+ *
5
+ * specship reflect apply <hash> [--yes] — preview the change; write only with --yes
6
+ * specship reflect undo <hash> — reverse an applied proposal
7
+ * specship reflect dismiss <hash> — hide a proposal from future sweeps
8
+ *
9
+ * Mirrors the dashboard API's apply/undo/dismiss wiring (server/src/routes/reflect.ts)
10
+ * on the SpecShip instance's `reflect*` methods. `<hash>` may be any unique
11
+ * prefix of a proposal's content hash (≥ MIN_HASH_PREFIX chars); no match or
12
+ * an ambiguous match exits non-zero and writes nothing.
13
+ *
14
+ * Kept free of commander/chalk so it is unit-testable: output goes through an
15
+ * injected sink and the function returns the process exit code.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.REFLECT_REVIEW_HINT = exports.DISPLAY_HASH_LEN = exports.MIN_HASH_PREFIX = exports.REFLECT_VERBS = void 0;
19
+ exports.isReflectVerb = isReflectVerb;
20
+ exports.resolveProposalPrefix = resolveProposalPrefix;
21
+ exports.runReflectVerb = runReflectVerb;
22
+ exports.learnedNotice = learnedNotice;
23
+ /** The proposal review verbs `specship reflect` accepts as its first argument. */
24
+ exports.REFLECT_VERBS = ['apply', 'undo', 'dismiss'];
25
+ /** Shortest hash prefix accepted (the listing shows 12 chars). */
26
+ exports.MIN_HASH_PREFIX = 4;
27
+ /** Hash prefix length shown in listings. */
28
+ exports.DISPLAY_HASH_LEN = 12;
29
+ function isReflectVerb(s) {
30
+ return !!s && exports.REFLECT_VERBS.includes(s);
31
+ }
32
+ /** Resolve a (possibly abbreviated) content hash to exactly one proposal. */
33
+ function resolveProposalPrefix(proposals, rawPrefix) {
34
+ const prefix = (rawPrefix ?? '').trim().toLowerCase();
35
+ if (!prefix) {
36
+ return { ok: false, message: 'missing proposal hash — run `specship reflect` to list proposals and their hashes' };
37
+ }
38
+ if (prefix.length < exports.MIN_HASH_PREFIX) {
39
+ return { ok: false, message: `hash prefix "${prefix}" is too short — give at least ${exports.MIN_HASH_PREFIX} characters` };
40
+ }
41
+ const exact = proposals.find((p) => p.contentHash.toLowerCase() === prefix);
42
+ if (exact)
43
+ return { ok: true, proposal: exact };
44
+ const matches = proposals.filter((p) => p.contentHash.toLowerCase().startsWith(prefix));
45
+ if (matches.length === 0) {
46
+ return { ok: false, message: `no proposal matches hash "${prefix}" — run \`specship reflect\` to list proposals` };
47
+ }
48
+ if (matches.length > 1) {
49
+ const shown = matches
50
+ .slice(0, 5)
51
+ .map((p) => ` ${p.contentHash.slice(0, exports.DISPLAY_HASH_LEN)} ${p.title}`)
52
+ .join('\n');
53
+ return {
54
+ ok: false,
55
+ message: `hash prefix "${prefix}" is ambiguous — it matches ${matches.length} proposals; use more characters:\n${shown}`,
56
+ };
57
+ }
58
+ return { ok: true, proposal: matches[0] };
59
+ }
60
+ const short = (h) => h.slice(0, exports.DISPLAY_HASH_LEN);
61
+ /**
62
+ * Run one review verb. Returns the exit code (0 success, 1 failure). Nothing is
63
+ * written unless the hash resolves to exactly one proposal (and, for apply,
64
+ * `--yes` is given and the preview has no conflict).
65
+ */
66
+ function runReflectVerb(cg, verb, hashPrefix, opts, out) {
67
+ const resolved = resolveProposalPrefix(cg.reflectList(), hashPrefix);
68
+ if (!resolved.ok) {
69
+ if (opts.json)
70
+ out.log(JSON.stringify({ ok: false, error: resolved.message }, null, 2));
71
+ else
72
+ out.error(resolved.message);
73
+ return 1;
74
+ }
75
+ const p = resolved.proposal;
76
+ const hash = p.contentHash;
77
+ if (verb === 'apply') {
78
+ const preview = cg.reflectPreview(hash);
79
+ if (!preview) {
80
+ out.error(`proposal ${short(hash)} not found`);
81
+ return 1;
82
+ }
83
+ if (!opts.yes || preview.conflict) {
84
+ if (opts.json) {
85
+ out.log(JSON.stringify({ ok: !preview.conflict, applied: false, proposal: p, preview }, null, 2));
86
+ }
87
+ else {
88
+ out.log(`Proposal ${short(hash)} (${p.state}): ${p.title}`);
89
+ out.log(`Target: ${preview.targetPath}${preview.exists ? '' : ' (new file)'}`);
90
+ out.log('');
91
+ out.log(preview.diff);
92
+ out.log('');
93
+ }
94
+ if (preview.conflict) {
95
+ if (!opts.json)
96
+ out.error('Cannot apply: a non-SpecShip file already occupies the target path. Nothing was written.');
97
+ return 1;
98
+ }
99
+ if (!opts.json)
100
+ out.log(`Preview only — nothing written. Re-run with --yes to apply: specship reflect apply ${short(hash)} --yes`);
101
+ return 0;
102
+ }
103
+ const outcome = cg.reflectApply(hash);
104
+ if (outcome === null) {
105
+ out.error(`proposal ${short(hash)} not found`);
106
+ return 1;
107
+ }
108
+ if (outcome === 'conflict') {
109
+ out.error('Cannot apply: a non-SpecShip file already occupies the target path. Nothing was written.');
110
+ return 1;
111
+ }
112
+ if (opts.json) {
113
+ out.log(JSON.stringify({ ok: true, outcome, proposal: cg.reflectGet(hash) }, null, 2));
114
+ }
115
+ else {
116
+ out.log(outcome === 'applied'
117
+ ? `Applied ${short(hash)} → ${preview.targetPath}`
118
+ : `Already in place (${short(hash)} → ${preview.targetPath}); marked applied.`);
119
+ out.log(`Undo with: specship reflect undo ${short(hash)}`);
120
+ }
121
+ return 0;
122
+ }
123
+ if (verb === 'undo') {
124
+ if (p.state !== 'applied') {
125
+ out.error(`proposal ${short(hash)} is ${p.state}, not applied — nothing to undo`);
126
+ return 1;
127
+ }
128
+ const outcome = cg.reflectUndo(hash);
129
+ if (outcome === null) {
130
+ out.error(`proposal ${short(hash)} not found`);
131
+ return 1;
132
+ }
133
+ if (opts.json)
134
+ out.log(JSON.stringify({ ok: true, outcome, proposal: cg.reflectGet(hash) }, null, 2));
135
+ else
136
+ out.log(outcome === 'undone' ? `Undid ${short(hash)} (${p.targetPath})` : `Nothing to remove for ${short(hash)}; marked undone.`);
137
+ return 0;
138
+ }
139
+ // dismiss
140
+ if (p.state === 'dismissed') {
141
+ if (opts.json)
142
+ out.log(JSON.stringify({ ok: true, proposal: p }, null, 2));
143
+ else
144
+ out.log(`Proposal ${short(hash)} is already dismissed.`);
145
+ return 0;
146
+ }
147
+ if (!cg.reflectDismiss(hash)) {
148
+ out.error(`proposal ${short(hash)} not found`);
149
+ return 1;
150
+ }
151
+ if (opts.json)
152
+ out.log(JSON.stringify({ ok: true, proposal: cg.reflectGet(hash) }, null, 2));
153
+ else
154
+ out.log(`Dismissed ${short(hash)} — it won't resurface on future sweeps.`);
155
+ return 0;
156
+ }
157
+ /** How-to-act footer printed under the proposal listing. */
158
+ exports.REFLECT_REVIEW_HINT = 'Preview one with `specship reflect apply <hash>` (add --yes to write), or hide it with `specship reflect dismiss <hash>`.';
159
+ /** The sync-time "learned" line (REQ-ALEARN-004 / REQ-AUDFIX-002.A4). */
160
+ function learnedNotice(title) {
161
+ return `🧠 learned: ${title} — review with \`specship reflect\`.`;
162
+ }
163
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/reflect/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"miner.d.ts","sourceRoot":"","sources":["../../src/reflect/miner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAyBnD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAItE;AAsBD,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,GAAG,QAAQ,EAAE,CAuBjF"}
1
+ {"version":3,"file":"miner.d.ts","sourceRoot":"","sources":["../../src/reflect/miner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAyBnD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAItE;AAsBD,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,GAAG,QAAQ,EAAE,CA0BjF"}
@@ -93,6 +93,9 @@ function mineProposals(db, ctx) {
93
93
  // WORKED, not only what wasted. Same human-gated proposal pipeline.
94
94
  out.push(...ruleCompletedRunRecipe(db, ctx));
95
95
  out.push(...ruleErrorWorkaround(db, ctx, forms));
96
+ // Auto-learn lanes (ALEARN-DOC).
97
+ out.push(...ruleStyleCorrection(db, ctx, forms));
98
+ out.push(...ruleDomainFactDraft(db, ctx, forms));
96
99
  return out;
97
100
  }
98
101
  /**
@@ -613,4 +616,120 @@ function truncate(s, n) {
613
616
  const t = s.replace(/\s+/g, ' ').trim();
614
617
  return t.length > n ? t.slice(0, n) + '…' : t;
615
618
  }
619
+ // --- Auto-learn lanes (ALEARN-DOC) ---
620
+ /**
621
+ * Style vocabulary (REQ-ALEARN-001.A1): a correction only enters the style
622
+ * lane when it names a code-style concern — naming, imports, formatting,
623
+ * logging, comments, typing. Everything else stays with the generic
624
+ * recurring-correction rule.
625
+ */
626
+ const STYLE_CUE = /\b(nam(e|ed|ing)|rename|camel\s*case|camelcase|snake_case|kebab|pascal\s*case|imports?|exports?|format(ting)?|prettier|eslint|ruff|lint|comments?|docstring|jsdoc|console\.log|logger|logging|print statement|indent(ation)?|semicolons?|quotes?|typing|type annotation|style|conventions?|idiom)\b/i;
627
+ /**
628
+ * ALEARN-1 → style_rule (.specship/conventions.md): the same style-flavored
629
+ * correction given in 2+ DISTINCT sessions is a durable project convention
630
+ * (REQ-ALEARN-001). Session distinctness is the recurrence bar — one session
631
+ * repeating itself is emphasis, two sessions is a convention nobody recorded.
632
+ */
633
+ function ruleStyleCorrection(db, ctx, forms) {
634
+ const rows = db
635
+ .prepare(`SELECT id, session_id, text FROM claude_prompts
636
+ WHERE text IS NOT NULL AND length(text) BETWEEN 12 AND 200
637
+ AND text NOT LIKE '<%' AND text NOT LIKE '%<command-name>%'
638
+ AND is_sidechain = 0
639
+ AND ${IN_PROJECT}
640
+ ORDER BY session_id, ts ASC
641
+ LIMIT 4000`)
642
+ .all(...forms);
643
+ const groups = new Map();
644
+ for (const r of rows) {
645
+ const trimmed = r.text.trim();
646
+ if (!CORRECTION_CUE.test(trimmed) || !STYLE_CUE.test(trimmed))
647
+ continue;
648
+ const key = trimmed.replace(/\s+/g, ' ').toLowerCase();
649
+ const g = groups.get(key) ?? { sessions: new Set(), prompts: [], sample: trimmed };
650
+ g.sessions.add(r.session_id);
651
+ if (g.prompts.length < 8)
652
+ g.prompts.push(r.id);
653
+ groups.set(key, g);
654
+ }
655
+ const recurring = [...groups.values()]
656
+ .filter((g) => g.sessions.size >= 2)
657
+ .sort((a, b) => b.sessions.size - a.sessions.size)
658
+ .slice(0, PER_RULE_LIMIT);
659
+ return recurring.map((g) => (0, targets_1.buildProposal)(ctx, {
660
+ type: 'style_rule',
661
+ severity: 'warn',
662
+ nameSeed: `style-${g.sample}`,
663
+ title: `Convention: ${truncate(g.sample, 64)}`,
664
+ body: `This style correction was given in ${g.sessions.size} separate sessions. Recorded as a project convention, every future session starts already following it.`,
665
+ content: g.sample,
666
+ evidence: {
667
+ sessions: [...g.sessions],
668
+ prompts: g.prompts,
669
+ detail: `Style correction repeated across ${g.sessions.size} sessions`,
670
+ },
671
+ }));
672
+ }
673
+ /**
674
+ * ALEARN-2 → domain_fact (specs/domain/<slug>.md): an entity the domain gap
675
+ * seed marks undocumented, whose name ALSO recurs in this project's prompts
676
+ * across 2+ sessions, is business/product knowledge worth drafting
677
+ * (REQ-ALEARN-003). The proposal's content is a complete draft fact file; the
678
+ * human's preview→apply is the DOM-SPECSHIP-003 confirmation — nothing here
679
+ * writes under specs/domain/.
680
+ */
681
+ function ruleDomainFactDraft(db, ctx, forms) {
682
+ const entities = (ctx.domainGapEntities ?? []).filter((e) => e.name.length >= 4);
683
+ if (entities.length === 0)
684
+ return [];
685
+ const out = [];
686
+ for (const entity of entities.slice(0, 50)) {
687
+ const rows = db
688
+ .prepare(`SELECT id, session_id FROM claude_prompts
689
+ WHERE text LIKE ? AND is_sidechain = 0 AND ${IN_PROJECT}
690
+ LIMIT 50`)
691
+ .all(`%${entity.name}%`, ...forms);
692
+ const sessions = new Set(rows.map((r) => r.session_id));
693
+ if (sessions.size < 2)
694
+ continue;
695
+ const slug = entity.name
696
+ .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
697
+ .toLowerCase()
698
+ .replace(/[^a-z0-9]+/g, '-')
699
+ .replace(/(^-|-$)/g, '');
700
+ const domId = `DOM-${slug.toUpperCase().replace(/-/g, '')}-001`.slice(0, 40);
701
+ const content = [
702
+ '---',
703
+ `id: ${domId}`,
704
+ `title: ${entity.name}`,
705
+ 'type: term',
706
+ `specship_proposal: ${slug}`,
707
+ '---',
708
+ '',
709
+ `# ${entity.name}`,
710
+ '',
711
+ `_DRAFT mined from ${sessions.size} sessions — replace this paragraph with what`,
712
+ `\`${entity.name}\` (${entity.kind}) means in the business/product, then link it to its`,
713
+ 'requirement spec(s) via `depends_on:` (domain facts attach at the spec tier,',
714
+ 'DOM-SPECSHIP-002)._',
715
+ '',
716
+ ].join('\n');
717
+ out.push((0, targets_1.buildProposal)(ctx, {
718
+ type: 'domain_fact',
719
+ severity: 'info',
720
+ nameSeed: slug,
721
+ title: `Draft domain fact: ${entity.name}`,
722
+ body: `\`${entity.name}\` is undocumented in the domain layer but discussed in ${sessions.size} sessions. Review and edit the draft, then apply to land it under specs/domain/.`,
723
+ content,
724
+ evidence: {
725
+ sessions: [...sessions],
726
+ prompts: rows.slice(0, 8).map((r) => r.id),
727
+ detail: `Undocumented ${entity.kind} mentioned across ${sessions.size} sessions`,
728
+ },
729
+ }));
730
+ if (out.length >= PER_RULE_LIMIT)
731
+ break;
732
+ }
733
+ return out;
734
+ }
616
735
  //# sourceMappingURL=miner.js.map