@warpgogol/forge 5.3.4 → 6.0.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/CHANGELOG.md +8 -0
  2. package/bin/cli.ts +7 -2
  3. package/dist/bin/cli.js +7 -2
  4. package/dist/bin/cli.js.map +1 -1
  5. package/dist/os/adr/adr.module.d.ts.map +1 -1
  6. package/dist/os/adr/adr.module.js +2 -0
  7. package/dist/os/adr/adr.module.js.map +1 -1
  8. package/dist/os/audit/audit.module.d.ts.map +1 -1
  9. package/dist/os/audit/audit.module.js +2 -0
  10. package/dist/os/audit/audit.module.js.map +1 -1
  11. package/dist/os/compass/compass.module.d.ts.map +1 -1
  12. package/dist/os/compass/compass.module.js +47 -15
  13. package/dist/os/compass/compass.module.js.map +1 -1
  14. package/dist/os/compass/handlers/compass-audit-handler.d.ts +2 -0
  15. package/dist/os/compass/handlers/compass-audit-handler.d.ts.map +1 -1
  16. package/dist/os/compass/handlers/compass-audit-handler.js +39 -9
  17. package/dist/os/compass/handlers/compass-audit-handler.js.map +1 -1
  18. package/dist/os/compass/handlers/compass-docs-validate.d.ts +13 -0
  19. package/dist/os/compass/handlers/compass-docs-validate.d.ts.map +1 -0
  20. package/dist/os/compass/handlers/compass-docs-validate.js +326 -0
  21. package/dist/os/compass/handlers/compass-docs-validate.js.map +1 -0
  22. package/dist/os/compass/handlers/summary-record.d.ts +11 -2
  23. package/dist/os/compass/handlers/summary-record.d.ts.map +1 -1
  24. package/dist/os/compass/handlers/summary-record.js +93 -5
  25. package/dist/os/compass/handlers/summary-record.js.map +1 -1
  26. package/dist/os/core/core.module.d.ts.map +1 -1
  27. package/dist/os/core/core.module.js +124 -73
  28. package/dist/os/core/core.module.js.map +1 -1
  29. package/dist/os/exploration/exploration.module.d.ts.map +1 -1
  30. package/dist/os/exploration/exploration.module.js +3 -0
  31. package/dist/os/exploration/exploration.module.js.map +1 -1
  32. package/dist/os/naming/naming.module.d.ts.map +1 -1
  33. package/dist/os/naming/naming.module.js +9 -2
  34. package/dist/os/naming/naming.module.js.map +1 -1
  35. package/dist/os/notes/notes.module.d.ts.map +1 -1
  36. package/dist/os/notes/notes.module.js +17 -6
  37. package/dist/os/notes/notes.module.js.map +1 -1
  38. package/dist/os/plan/plan.module.d.ts.map +1 -1
  39. package/dist/os/plan/plan.module.js +2 -0
  40. package/dist/os/plan/plan.module.js.map +1 -1
  41. package/dist/os/plugin/plugin.module.d.ts.map +1 -1
  42. package/dist/os/plugin/plugin.module.js +9 -2
  43. package/dist/os/plugin/plugin.module.js.map +1 -1
  44. package/dist/os/program/program.module.d.ts.map +1 -1
  45. package/dist/os/program/program.module.js +19 -4
  46. package/dist/os/program/program.module.js.map +1 -1
  47. package/dist/os/queue/handlers/queue-validate.d.ts.map +1 -1
  48. package/dist/os/queue/handlers/queue-validate.js +154 -7
  49. package/dist/os/queue/handlers/queue-validate.js.map +1 -1
  50. package/dist/os/queue/manifest.d.ts +17 -1
  51. package/dist/os/queue/manifest.d.ts.map +1 -1
  52. package/dist/os/queue/manifest.js +127 -6
  53. package/dist/os/queue/manifest.js.map +1 -1
  54. package/dist/os/queue/queue.module.d.ts.map +1 -1
  55. package/dist/os/queue/queue.module.js +32 -4
  56. package/dist/os/queue/queue.module.js.map +1 -1
  57. package/dist/os/queue/types.d.ts +100 -1
  58. package/dist/os/queue/types.d.ts.map +1 -1
  59. package/dist/os/queue/types.js +44 -0
  60. package/dist/os/queue/types.js.map +1 -1
  61. package/dist/os/rfc/handlers/implement-stamp.d.ts.map +1 -1
  62. package/dist/os/rfc/handlers/implement-stamp.js +28 -5
  63. package/dist/os/rfc/handlers/implement-stamp.js.map +1 -1
  64. package/dist/os/rfc/rfc.module.d.ts.map +1 -1
  65. package/dist/os/rfc/rfc.module.js +27 -3
  66. package/dist/os/rfc/rfc.module.js.map +1 -1
  67. package/dist/os/rfc/types.d.ts +11 -0
  68. package/dist/os/rfc/types.d.ts.map +1 -1
  69. package/dist/os/rfc/types.js +1 -0
  70. package/dist/os/rfc/types.js.map +1 -1
  71. package/dist/os/rfc/verification-evidence.d.ts +21 -0
  72. package/dist/os/rfc/verification-evidence.d.ts.map +1 -1
  73. package/dist/os/rfc/verification-evidence.js +140 -23
  74. package/dist/os/rfc/verification-evidence.js.map +1 -1
  75. package/dist/os/rfc/verification-refresh.d.ts.map +1 -1
  76. package/dist/os/rfc/verification-refresh.js +72 -37
  77. package/dist/os/rfc/verification-refresh.js.map +1 -1
  78. package/dist/os/session/handlers/save.d.ts.map +1 -1
  79. package/dist/os/session/handlers/save.js +46 -5
  80. package/dist/os/session/handlers/save.js.map +1 -1
  81. package/dist/os/session/session.module.d.ts.map +1 -1
  82. package/dist/os/session/session.module.js +5 -0
  83. package/dist/os/session/session.module.js.map +1 -1
  84. package/dist/os/spec/live-spec-merge.d.ts.map +1 -1
  85. package/dist/os/spec/live-spec-merge.js +55 -134
  86. package/dist/os/spec/live-spec-merge.js.map +1 -1
  87. package/dist/os/spec/live-spec-rebuild.d.ts +32 -0
  88. package/dist/os/spec/live-spec-rebuild.d.ts.map +1 -0
  89. package/dist/os/spec/live-spec-rebuild.js +272 -0
  90. package/dist/os/spec/live-spec-rebuild.js.map +1 -0
  91. package/dist/os/spec/live-spec-shared.d.ts +62 -0
  92. package/dist/os/spec/live-spec-shared.d.ts.map +1 -0
  93. package/dist/os/spec/live-spec-shared.js +315 -0
  94. package/dist/os/spec/live-spec-shared.js.map +1 -0
  95. package/dist/os/spec/live-spec-types.d.ts +17 -1
  96. package/dist/os/spec/live-spec-types.d.ts.map +1 -1
  97. package/dist/os/spec/live-spec-types.js +3 -0
  98. package/dist/os/spec/live-spec-types.js.map +1 -1
  99. package/dist/os/spec/live-spec-validate.d.ts.map +1 -1
  100. package/dist/os/spec/live-spec-validate.js +105 -2
  101. package/dist/os/spec/live-spec-validate.js.map +1 -1
  102. package/dist/os/spec/spec-materialize.d.ts +2 -0
  103. package/dist/os/spec/spec-materialize.d.ts.map +1 -1
  104. package/dist/os/spec/spec-materialize.js +45 -5
  105. package/dist/os/spec/spec-materialize.js.map +1 -1
  106. package/dist/os/spec/spec-schema.d.ts +19 -0
  107. package/dist/os/spec/spec-schema.d.ts.map +1 -1
  108. package/dist/os/spec/spec-schema.js +30 -0
  109. package/dist/os/spec/spec-schema.js.map +1 -1
  110. package/dist/os/spec/spec-status.d.ts +4 -0
  111. package/dist/os/spec/spec-status.d.ts.map +1 -1
  112. package/dist/os/spec/spec-status.js +19 -1
  113. package/dist/os/spec/spec-status.js.map +1 -1
  114. package/dist/os/spec/spec-validate.d.ts.map +1 -1
  115. package/dist/os/spec/spec-validate.js +55 -8
  116. package/dist/os/spec/spec-validate.js.map +1 -1
  117. package/dist/os/spec/spec.module.d.ts.map +1 -1
  118. package/dist/os/spec/spec.module.js +84 -8
  119. package/dist/os/spec/spec.module.js.map +1 -1
  120. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts.map +1 -1
  121. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js +10 -4
  122. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js.map +1 -1
  123. package/dist/os/werkstatt/werkstatt.module.d.ts.map +1 -1
  124. package/dist/os/werkstatt/werkstatt.module.js +13 -4
  125. package/dist/os/werkstatt/werkstatt.module.js.map +1 -1
  126. package/dist/os/workflow/workflow.module.d.ts.map +1 -1
  127. package/dist/os/workflow/workflow.module.js +13 -5
  128. package/dist/os/workflow/workflow.module.js.map +1 -1
  129. package/dist/src/cli-flags.d.ts.map +1 -1
  130. package/dist/src/cli-flags.js +25 -5
  131. package/dist/src/cli-flags.js.map +1 -1
  132. package/dist/src/config/forge-config.d.ts +3 -0
  133. package/dist/src/config/forge-config.d.ts.map +1 -1
  134. package/dist/src/config/forge-config.js +2 -0
  135. package/dist/src/config/forge-config.js.map +1 -1
  136. package/dist/src/onboarding/init.d.ts.map +1 -1
  137. package/dist/src/onboarding/init.js +8 -3
  138. package/dist/src/onboarding/init.js.map +1 -1
  139. package/dist/src/pipeline-status.d.ts +14 -1
  140. package/dist/src/pipeline-status.d.ts.map +1 -1
  141. package/dist/src/pipeline-status.js +28 -8
  142. package/dist/src/pipeline-status.js.map +1 -1
  143. package/dist/src/types.d.ts +7 -1
  144. package/dist/src/types.d.ts.map +1 -1
  145. package/dist/src/types.js +6 -0
  146. package/dist/src/types.js.map +1 -1
  147. package/dist/src/utils/generated-marker.d.ts +8 -0
  148. package/dist/src/utils/generated-marker.d.ts.map +1 -1
  149. package/dist/src/utils/generated-marker.js +25 -0
  150. package/dist/src/utils/generated-marker.js.map +1 -1
  151. package/os/adr/adr.module.ts +2 -0
  152. package/os/audit/audit.module.ts +2 -0
  153. package/os/compass/compass.module.ts +49 -15
  154. package/os/compass/handlers/compass-audit-handler.ts +50 -9
  155. package/os/compass/handlers/compass-docs-validate.ts +359 -0
  156. package/os/compass/handlers/summary-record.ts +104 -5
  157. package/os/compass/handlers/tests/compass-audit-record.test.ts +2 -1
  158. package/os/compass/handlers/tests/compass-audit-validate.test.ts +92 -3
  159. package/os/compass/handlers/tests/compass-docs-validate.test.ts +203 -0
  160. package/os/compass/handlers/tests/compass-ledger-scope.test.ts +2 -1
  161. package/os/compass/handlers/tests/summary-record.test.ts +127 -0
  162. package/os/core/core.module.ts +147 -75
  163. package/os/core/docs-archive.test.ts +136 -0
  164. package/os/exploration/exploration.module.ts +3 -0
  165. package/os/naming/naming.module.ts +9 -2
  166. package/os/notes/notes.module.ts +17 -6
  167. package/os/plan/plan-0000-template.md +150 -0
  168. package/os/plan/plan.module.ts +2 -0
  169. package/os/plugin/plugin.module.ts +9 -2
  170. package/os/program/program.module.ts +19 -4
  171. package/os/queue/decision-ledger.test.ts +163 -0
  172. package/os/queue/handlers/queue-validate.ts +190 -8
  173. package/os/queue/manifest.ts +201 -7
  174. package/os/queue/queue-validate.test.ts +303 -0
  175. package/os/queue/queue.module.ts +32 -4
  176. package/os/queue/types.ts +56 -1
  177. package/os/rfc/handlers/implement-stamp.ts +35 -5
  178. package/os/rfc/rfc.module.ts +29 -3
  179. package/os/rfc/types.ts +17 -1
  180. package/os/rfc/verification-emit.test.ts +305 -0
  181. package/os/rfc/verification-evidence.ts +155 -24
  182. package/os/rfc/verification-refresh.test.ts +222 -1
  183. package/os/rfc/verification-refresh.ts +80 -38
  184. package/os/session/handlers/save.ts +41 -5
  185. package/os/session/session.module.ts +5 -0
  186. package/os/spec/live-spec-idempotency.pbt.test.ts +222 -0
  187. package/os/spec/live-spec-list-show-validate.test.ts +10 -6
  188. package/os/spec/live-spec-merge.test.ts +187 -7
  189. package/os/spec/live-spec-merge.ts +71 -155
  190. package/os/spec/live-spec-rebuild.test.ts +317 -0
  191. package/os/spec/live-spec-rebuild.ts +356 -0
  192. package/os/spec/live-spec-shared.ts +378 -0
  193. package/os/spec/live-spec-types.ts +21 -1
  194. package/os/spec/live-spec-validate.test.ts +317 -0
  195. package/os/spec/live-spec-validate.ts +106 -2
  196. package/os/spec/spec-materialize.test.ts +192 -0
  197. package/os/spec/spec-materialize.ts +48 -4
  198. package/os/spec/spec-schema.ts +49 -0
  199. package/os/spec/spec-status.ts +24 -0
  200. package/os/spec/spec-validate.test.ts +66 -0
  201. package/os/spec/spec-validate.ts +62 -8
  202. package/os/spec/spec.module.ts +85 -8
  203. package/os/werkstatt/handlers/werkstatt-operation-validate.ts +10 -4
  204. package/os/werkstatt/werkstatt.module.ts +13 -4
  205. package/os/workflow/workflow.module.ts +13 -5
  206. package/package.json +1 -1
  207. package/skills/_shared/fo-pipeline-conventions.md +126 -1
  208. package/skills/fo/fo-doc-audit/SKILL.md +4 -4
  209. package/skills/fo/fo-explore/SKILL.md +2 -1
  210. package/skills/fo/fo-fix/SKILL.md +11 -3
  211. package/skills/fo/fo-handoff/SKILL.md +4 -6
  212. package/skills/fo/fo-idea-create-rfc/SKILL.md +2 -1
  213. package/skills/fo/fo-idea-enhance/SKILL.md +23 -4
  214. package/skills/fo/fo-idea-i-just-want-to-see-the-result/SKILL.md +86 -22
  215. package/skills/fo/fo-idea-implement/SKILL.md +53 -10
  216. package/skills/fo/fo-idea-plan/SKILL.md +28 -6
  217. package/skills/fo/fo-review/SKILL.md +69 -8
  218. package/skills/fo/fo-session-retro/SKILL.md +3 -2
  219. package/skills/fo/fo-step-commit/SKILL.md +2 -0
  220. package/skills/shared/grilling/SKILL.md +12 -0
  221. package/skills/shared/writing-great-skills/GLOSSARY.md +2 -0
  222. package/skills/shared/writing-great-skills/SKILL.md +2 -1
  223. package/src/cli-flags.ts +23 -5
  224. package/src/config/forge-config.ts +4 -0
  225. package/src/onboarding/init.ts +8 -3
  226. package/src/pipeline-status.ts +32 -8
  227. package/src/tests/cli-flags.test.ts +20 -0
  228. package/src/tests/cli-output.test.ts +13 -7
  229. package/src/tests/fixtures/agents-generate-business-before.txt +7 -7
  230. package/src/tests/implement-stamp.test.ts +38 -0
  231. package/src/tests/session-handlers.test.ts +33 -0
  232. package/src/types.ts +13 -1
  233. package/src/utils/generated-marker.ts +28 -0
  234. package/skills/fo/fo-idea-implement/ADR-FLOW.md +0 -179
  235. package/skills/fo/fo-review/AXES.md +0 -70
@@ -0,0 +1,13 @@
1
+ import type { Diagnostic } from "../../../src/types.ts";
2
+ import type { ForgeCommandInput, ForgeCommandResult, ForgeRuntimeContext } from "../../../src/types.ts";
3
+ export declare function runCompassDocsValidate(input: ForgeCommandInput, context: ForgeRuntimeContext): Promise<ForgeCommandResult<{
4
+ command: "compass.docs.validate";
5
+ status: "pass" | "fail";
6
+ scanned: {
7
+ xmlFiles: number;
8
+ pathsChecked: number;
9
+ idsChecked: number;
10
+ };
11
+ diagnostics: Diagnostic[];
12
+ }>>;
13
+ //# sourceMappingURL=compass-docs-validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compass-docs-validate.d.ts","sourceRoot":"","sources":["../../../../os/compass/handlers/compass-docs-validate.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AA6M/B,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CACR,kBAAkB,CAAC;IACjB,OAAO,EAAE,uBAAuB,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CAAC,CACH,CAsHA"}
@@ -0,0 +1,326 @@
1
+ /*
2
+ <MODULE_CONTRACT>
3
+ <purpose>RFC-1242: validate that the live root docs/*.xml corpus describes the repository as it exists — every path token, workspace id, and knowledge-graph link target must resolve to a real file, directory, or declared node.</purpose>
4
+ <non-goals>
5
+ <item>Do not scan archived trees, vendored specs, sessions/metrics, or authored RFC/ADR/plan bodies — frozen history and forward-looking prose legitimately name paths that do not exist.</item>
6
+ <item>Do not validate markdown link targets — only the XML semantic layer is gated (markdown sweep is manual).</item>
7
+ <item>Do not mutate anything — this handler is read-only; pruning lives on compass.audit.validate --prune.</item>
8
+ </non-goals>
9
+ <KEY_DECISIONS>
10
+ <item>Tag-stack tokenizer instead of an XML dependency — the corpus is small authored XML; a balance check catches the literal-tag breakage class (COMPASS-DOC-00) without pulling fast-xml-parser.</item>
11
+ <item>DOC-03 link targets resolve to declared node ids OR file/dir conventions — dangling-by-convention stays a warning, never an error.</item>
12
+ </KEY_DECISIONS>
13
+ <CHANGE_SUMMARY>
14
+ <item>RFC-1242: review fixes — self-close detection strips quoted attr values first (a="foo/" no longer fakes a self-close), non-backticked path tokens get the same ellipsis strip, docs.* link slugs keep their basename prefix (docs.plans.plan-rfc-* resolves).</item>
15
+ <item>RFC-1242: created — scan docs/*.xml for unresolvable paths, workspace ids, and link targets (COMPASS-DOC-00..03).</item>
16
+ </CHANGE_SUMMARY>
17
+ */
18
+ import { resolve } from "node:path";
19
+ import { resolveIo } from "../../../src/utils/io.js";
20
+ const DOCS_GLOB = "*.xml";
21
+ // Well-formedness: minimal tag-stack check. Skips comments, CDATA, PIs and
22
+ // declarations; a literal `<name` inside prose opens a tag that never balances
23
+ // → COMPASS-DOC-00. The corpus is authored XML without < in attribute values.
24
+ function checkWellFormed(file, source) {
25
+ const stack = [];
26
+ let i = 0;
27
+ let line = 1;
28
+ const advanceLine = (chunk) => {
29
+ for (const c of chunk)
30
+ if (c === "\n")
31
+ line++;
32
+ };
33
+ while (i < source.length) {
34
+ const open = source.indexOf("<", i);
35
+ if (open === -1)
36
+ break;
37
+ advanceLine(source.slice(i, open));
38
+ const rest = source.slice(open);
39
+ // comments / CDATA / PI / declarations
40
+ if (rest.startsWith("<!--")) {
41
+ const end = source.indexOf("-->", open + 4);
42
+ if (end === -1)
43
+ return { line, message: "unterminated comment" };
44
+ advanceLine(source.slice(open, end + 3));
45
+ i = end + 3;
46
+ continue;
47
+ }
48
+ if (rest.startsWith("<![CDATA[")) {
49
+ const end = source.indexOf("]]>", open + 9);
50
+ if (end === -1)
51
+ return { line, message: "unterminated CDATA" };
52
+ advanceLine(source.slice(open, end + 3));
53
+ i = end + 3;
54
+ continue;
55
+ }
56
+ if (rest.startsWith("<?")) {
57
+ const end = source.indexOf("?>", open + 2);
58
+ if (end === -1)
59
+ return { line, message: "unterminated processing instruction" };
60
+ advanceLine(source.slice(open, end + 2));
61
+ i = end + 2;
62
+ continue;
63
+ }
64
+ if (rest.startsWith("<!")) {
65
+ const end = source.indexOf(">", open + 2);
66
+ if (end === -1)
67
+ return { line, message: "unterminated declaration" };
68
+ advanceLine(source.slice(open, end + 1));
69
+ i = end + 1;
70
+ continue;
71
+ }
72
+ const tagMatch = /^<(\/?)([A-Za-z_][\w:.-]*)((?:"[^"]*"|'[^']*'|[^>"'])*)?(\/?)>/.exec(rest);
73
+ if (!tagMatch) {
74
+ // `<` not starting a tag — literal text, tolerated.
75
+ advanceLine(source.slice(open, open + 1));
76
+ i = open + 1;
77
+ continue;
78
+ }
79
+ const [, closing, name, attrs = "", selfClose] = tagMatch;
80
+ advanceLine(tagMatch[0]);
81
+ i = open + tagMatch[0].length;
82
+ if (closing === "/") {
83
+ const top = stack.pop();
84
+ if (!top || top.name !== name) {
85
+ return {
86
+ line,
87
+ message: `mismatched closing tag </${name}>${top ? ` — expected </${top.name}> opened at line ${top.line}` : " — no open tag"}`,
88
+ };
89
+ }
90
+ continue;
91
+ }
92
+ const attrsUnquoted = attrs.replace(/"[^"]*"|'[^']*'/g, "");
93
+ if (selfClose !== "/" && !attrsUnquoted.trimEnd().endsWith("/")) {
94
+ stack.push({ name, line });
95
+ }
96
+ }
97
+ if (stack.length > 0) {
98
+ const top = stack[stack.length - 1];
99
+ return { line: top.line, message: `unclosed tag <${top.name}>` };
100
+ }
101
+ return null;
102
+ }
103
+ function extractRefs(source) {
104
+ const refs = { paths: [], workspaceIds: [], linkTargets: [] };
105
+ const lineOf = (index) => source.slice(0, index).split("\n").length;
106
+ for (const m of source.matchAll(/<path>([\s\S]*?)<\/path>/g)) {
107
+ refs.paths.push({ value: m[1] ?? "", line: lineOf(m.index) });
108
+ }
109
+ for (const m of source.matchAll(/<workspace\s[^>]*?id="([^"]+)"/g)) {
110
+ refs.workspaceIds.push({ id: m[1], line: lineOf(m.index) });
111
+ }
112
+ for (const m of source.matchAll(/<node\s[^>]*>/g)) {
113
+ // DOC-02 only applies to ids that claim a workspace: <workspace> entries
114
+ // and workspace-typed nodes. Layer/symbolic ids (apps.rules,
115
+ // packages.rules, changelog.*) name semantic handles, not directories.
116
+ const id = /\bid="([^"]+)"/.exec(m[0])?.[1];
117
+ const type = /\btype="([^"]+)"/.exec(m[0])?.[1];
118
+ if (id && type === "workspace") {
119
+ refs.workspaceIds.push({ id, line: lineOf(m.index) });
120
+ }
121
+ }
122
+ for (const m of source.matchAll(/<link\s[^>]*?target="([^"]+)"/g)) {
123
+ refs.linkTargets.push({ target: m[1], line: lineOf(m.index) });
124
+ }
125
+ return refs;
126
+ }
127
+ // Normalize a <path> payload into checkable path tokens. Each backticked
128
+ // fragment is one candidate — splitting on commas inside would shred brace
129
+ // expansions (`{a,b}`) and ellipsis ranges (`docs/x/…` … `leaf`). A bare tail
130
+ // fragment after an `…` outside the backticks resolves under the previous
131
+ // fragment's directory (range shorthand for two versions of the same dir).
132
+ function pathTokens(raw) {
133
+ const tokens = [];
134
+ const fragments = [...raw.matchAll(/`([^`]*)`/g)].map((m) => m[1].trim());
135
+ if (fragments.length === 0) {
136
+ return raw
137
+ .split(/[\s,]+/)
138
+ .map((t) => t
139
+ .trim()
140
+ .replace(/(?:…|\.\.\.).*$/, "")
141
+ .replace(/\/+$/, ""))
142
+ .filter((t) => t.length > 0 && !t.startsWith("<") && t !== "…" && t !== "+");
143
+ }
144
+ const joinsWithEllipsis = raw.replace(/`[^`]*`/g, "").includes("…");
145
+ let parentDir = null;
146
+ for (const frag of fragments) {
147
+ const cleaned = frag.replace(/(?:…|\.\.\.).*$/, "").replace(/\/+$/, "");
148
+ if (!cleaned || cleaned === "+")
149
+ continue;
150
+ if (joinsWithEllipsis && !cleaned.includes("/") && parentDir) {
151
+ tokens.push(`${parentDir}/${cleaned}`);
152
+ continue;
153
+ }
154
+ tokens.push(cleaned);
155
+ parentDir = cleaned.split("/").slice(0, -1).join("/") || parentDir;
156
+ }
157
+ return tokens;
158
+ }
159
+ /** Directory prefix that must exist for a path token (glob tails trimmed). */
160
+ function pathCheckTarget(token) {
161
+ const globIdx = token.search(/[*{[]/);
162
+ if (globIdx === -1)
163
+ return token;
164
+ const prefix = token.slice(0, globIdx);
165
+ return prefix.replace(/\/[^/]*$/, "") || ".";
166
+ }
167
+ /** Resolve a workspace-style id to the package/service directory it names. */
168
+ function workspaceIdTarget(id) {
169
+ const pkg = /^pkg-([a-z0-9-]+)$/.exec(id);
170
+ if (pkg)
171
+ return `packages/${pkg[1]}`;
172
+ const svc = /^svc-([a-z0-9-]+)$/.exec(id);
173
+ if (svc)
174
+ return `services/${svc[1]}`;
175
+ const app = /^app-([a-z0-9-]+)$/.exec(id);
176
+ if (app)
177
+ return `apps/${app[1]}`;
178
+ const dotted = /^(packages|apps|services)\.([a-z0-9-]+)/.exec(id);
179
+ if (dotted)
180
+ return `${dotted[1]}/${dotted[2]}`;
181
+ return null;
182
+ }
183
+ /**
184
+ * DOC-03 resolution for dotted link targets: declared node id (checked by the
185
+ * caller) or a file/dir convention — docs.<dir>.<slug> → docs/<dir>/<slug>*,
186
+ * packages./apps./services. → workspace dir, spec.<x> → docs/specs/<x>*,
187
+ * dna-N → docs/architecture-dna.md, dotted command names → command manifest.
188
+ */
189
+ async function linkTargetResolves(target, declaredIds, io, docsDir, commandNames) {
190
+ if (declaredIds.has(target))
191
+ return "node";
192
+ if (commandNames.has(target))
193
+ return "file";
194
+ if (/^dna-\d+$/.test(target)) {
195
+ return (await io.exists(resolve(docsDir, "architecture-dna.md"))) ? "file" : "none";
196
+ }
197
+ const docsId = /^docs\.([a-z-]+)\.(.+)$/.exec(target);
198
+ if (docsId) {
199
+ const [, dir, slug] = docsId;
200
+ const hits = await io.glob(`${dir}/**/*${slug}*.md`, { cwd: docsDir }).catch(() => []);
201
+ if (hits.length > 0)
202
+ return "file";
203
+ // generic fallback: any file whose basename contains the slug under docs/
204
+ const broad = await io.glob(`**/*${slug}*`, { cwd: docsDir }).catch(() => []);
205
+ if (broad.length > 0)
206
+ return "file";
207
+ return "none";
208
+ }
209
+ const ws = workspaceIdTarget(target);
210
+ if (ws)
211
+ return (await io.exists(ws)) ? "file" : "none";
212
+ const spec = /^spec\.([a-z0-9-]+)$/.exec(target);
213
+ if (spec) {
214
+ const hits = await io.glob(`specs/${spec[1]}*/**`, { cwd: docsDir }).catch(() => []);
215
+ const dirs = await io.glob(`specs/${spec[1]}*`, { cwd: docsDir }).catch(() => []);
216
+ return hits.length + dirs.length > 0 ? "file" : "none";
217
+ }
218
+ return "none";
219
+ }
220
+ export async function runCompassDocsValidate(input, context) {
221
+ const io = resolveIo(context.io);
222
+ const docsDir = resolve(context.workspaceRoot, "docs");
223
+ const diagnostics = [];
224
+ let pathsChecked = 0;
225
+ let idsChecked = 0;
226
+ // Command-name convention for DOC-03: dotted targets like ratgeber.hub.validate
227
+ // resolve when the command registry lists them.
228
+ const commandNames = new Set();
229
+ const manifestPath = resolve(docsDir, "command-manifest.generated.yaml");
230
+ if (await io.exists(manifestPath)) {
231
+ const manifest = await io.readFile(manifestPath);
232
+ for (const m of manifest.matchAll(/^\s*- name: ([\w.-]+)\s*$/gm)) {
233
+ commandNames.add(m[1]);
234
+ }
235
+ }
236
+ const xmlFiles = (await io.glob(DOCS_GLOB, { cwd: docsDir })).sort();
237
+ const declaredNodeIds = new Set();
238
+ // Pass 1: collect declared node ids so link targets can resolve across files.
239
+ const sources = new Map();
240
+ for (const rel of xmlFiles) {
241
+ const abs = resolve(docsDir, rel);
242
+ const source = await io.readFile(abs);
243
+ sources.set(rel, source);
244
+ for (const m of source.matchAll(/<node\s[^>]*?id="([^"]+)"/g)) {
245
+ declaredNodeIds.add(m[1]);
246
+ }
247
+ }
248
+ for (const rel of xmlFiles) {
249
+ const file = `docs/${rel}`;
250
+ const source = sources.get(rel);
251
+ const malformed = checkWellFormed(file, source);
252
+ if (malformed) {
253
+ diagnostics.push({
254
+ ruleId: "COMPASS-DOC-00",
255
+ severity: "error",
256
+ file,
257
+ line: malformed.line,
258
+ message: `file is not well-formed XML: ${malformed.message}`,
259
+ });
260
+ continue; // refs from a broken file are noise
261
+ }
262
+ const refs = extractRefs(source);
263
+ for (const { value, line } of refs.paths) {
264
+ for (const token of pathTokens(value)) {
265
+ pathsChecked++;
266
+ const target = pathCheckTarget(token);
267
+ if (!(await io.exists(resolve(context.workspaceRoot, target)))) {
268
+ diagnostics.push({
269
+ ruleId: "COMPASS-DOC-01",
270
+ severity: "error",
271
+ file,
272
+ line,
273
+ message: `<path> references '${token}' — does not exist under the workspace root`,
274
+ fixHint: "Repoint to the live path or remove the stale reference",
275
+ });
276
+ }
277
+ }
278
+ }
279
+ for (const { id, line } of refs.workspaceIds) {
280
+ const target = workspaceIdTarget(id);
281
+ if (!target)
282
+ continue;
283
+ idsChecked++;
284
+ if (!(await io.exists(resolve(context.workspaceRoot, target)))) {
285
+ diagnostics.push({
286
+ ruleId: "COMPASS-DOC-02",
287
+ severity: "error",
288
+ file,
289
+ line,
290
+ message: `id '${id}' names workspace path '${target}' — does not exist`,
291
+ fixHint: "Repoint to the live package or remove the stale entry",
292
+ });
293
+ }
294
+ }
295
+ for (const { target, line } of refs.linkTargets) {
296
+ idsChecked++;
297
+ const resolved = await linkTargetResolves(target, declaredNodeIds, io, docsDir, commandNames);
298
+ if (resolved === "none") {
299
+ diagnostics.push({
300
+ ruleId: "COMPASS-DOC-03",
301
+ severity: "warning",
302
+ file,
303
+ line,
304
+ message: `link target '${target}' resolves to no declared node and no file`,
305
+ });
306
+ }
307
+ }
308
+ }
309
+ const errors = diagnostics.filter((d) => d.severity === "error");
310
+ for (const d of diagnostics) {
311
+ context.logger[d.severity === "error" ? "error" : "warn"](`[compass.docs.validate] ${d.ruleId}: ${d.file}${d.line ? `:${d.line}` : ""}: ${d.message}`);
312
+ }
313
+ return {
314
+ data: {
315
+ command: "compass.docs.validate",
316
+ status: errors.length === 0 ? "pass" : "fail",
317
+ scanned: { xmlFiles: xmlFiles.length, pathsChecked, idsChecked },
318
+ diagnostics,
319
+ },
320
+ exitCode: errors.length > 0 ? 1 : 0,
321
+ summary: errors.length === 0
322
+ ? `[compass.docs.validate] OK (${xmlFiles.length} files, ${pathsChecked} paths, ${idsChecked} ids)`
323
+ : `[compass.docs.validate] ${errors.length} error(s)`,
324
+ };
325
+ }
326
+ //# sourceMappingURL=compass-docs-validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compass-docs-validate.js","sourceRoot":"","sources":["../../../../os/compass/handlers/compass-docs-validate.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ export interface SummaryRecordInput {
7
7
  text?: string;
8
8
  workpiece?: string;
9
9
  }
10
- export type SummaryRecordSkipReason = "no-block" | "duplicate" | "unparseable";
10
+ export type SummaryRecordSkipReason = "no-block" | "duplicate" | "unparseable" | "id-in-diff";
11
11
  export interface SummaryRecordResult {
12
12
  command: "compass.summary.record";
13
13
  status: "pass";
@@ -34,6 +34,13 @@ export declare function mergeHistoryIds(existing: string[], incoming: string[],
34
34
  export declare function getLineCommentPrefix(filePath: string): string | null;
35
35
  export declare function buildChangeSummaryBlock(items: string[], historyIds: string[], filePath: string): string;
36
36
  export declare function stripConventionalPrefix(subject: string): string;
37
+ /**
38
+ * Remove a trailing git-trailer block: the contiguous tail of strict
39
+ * trailer lines and admitted markdown-link lines. A blank line ends the
40
+ * tail paragraph. Returns the message without the block; when the tail
41
+ * holds no strict trailer line the message is returned unchanged.
42
+ */
43
+ export declare function stripGitTrailers(message: string): string;
37
44
  export declare function sanitizeItemText(text: string): string;
38
45
  export declare function isValidGovernanceId(id: string, policy: CompassPolicy): boolean;
39
46
  interface RecordOutcome {
@@ -44,8 +51,10 @@ interface RecordOutcome {
44
51
  /**
45
52
  * Append `ID: text` to one file's CHANGE_SUMMARY and collapse the window.
46
53
  * Returns the outcome; writes the file only when mutated and not dry-run.
54
+ * `headSource` is the file's content at HEAD (when resolvable) — it enables
55
+ * the id-in-diff dedup; pass undefined outside git workspaces.
47
56
  */
48
- export declare function recordSummaryItem(absPath: string, relPath: string, id: string, text: string, dryRun: boolean, policy: CompassPolicy): Promise<RecordOutcome>;
57
+ export declare function recordSummaryItem(absPath: string, relPath: string, id: string, text: string, dryRun: boolean, policy: CompassPolicy, headSource?: string): Promise<RecordOutcome>;
49
58
  export declare function runCompassSummaryRecord(input: ForgeCommandInput, context: ForgeRuntimeContext): Promise<ForgeCommandResult<SummaryRecordResult>>;
50
59
  export {};
51
60
  //# sourceMappingURL=summary-record.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"summary-record.d.ts","sourceRoot":"","sources":["../../../../os/compass/handlers/summary-record.ts"],"names":[],"mappings":"AAuCA,OAAO,EAAgD,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAOhG,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAO/B,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAOvC,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,CAAC;AAE/E,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,wBAAwB,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,uBAAuB,CAAA;KAAE,CAAC,CAAC;IAClE,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAerE;AAWD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAAE,EAClB,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,EAAE,aAAa,GACpB,MAAM,EAAE,CAcV;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIpE;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,CAcR;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D;AAQD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAE9E;AAED,UAAU,aAAa;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,uBAAuB,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,aAAa,CAAC,CA8CxB;AASD,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC,CAqElD"}
1
+ {"version":3,"file":"summary-record.d.ts","sourceRoot":"","sources":["../../../../os/compass/handlers/summary-record.ts"],"names":[],"mappings":"AAyCA,OAAO,EAAgD,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAOhG,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAO/B,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAOvC,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,YAAY,CAAC;AAE9F,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,wBAAwB,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,uBAAuB,CAAA;KAAE,CAAC,CAAC;IAClE,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAerE;AAWD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAAE,EAClB,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,EAAE,aAAa,GACpB,MAAM,EAAE,CAcV;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIpE;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,CAcR;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D;AAWD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAkBxD;AAQD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASrD;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAE9E;AAED,UAAU,aAAa;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,uBAAuB,CAAC;CACtC;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC,CA8DxB;AA8BD,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC,CAoFlD"}
@@ -28,10 +28,12 @@ Sweep batch 4: 73 Compass headers on headerless engine files (certification, com
28
28
 
29
29
  compass-migrate-handler hint used a consumer-specific run command — switched to generic 'pnpm exec forge run' convention. Reworded recorded CHANGE_SUMMARY items in 3 handlers to drop the consumer-specific literal. compass-policy AC-4 test green (65/65).</item>
30
30
  <item>RFC-1220: step 2 — fail-closed guards in history paths</item>
31
+ <item>RFC-1233: stripGitTrailers at the record point + sanitizeItemText star-slash guard — commit-message trailers (Token: value / Token #value, plus markdown-link attribution lines like "Generated with [X](url)") no longer pollute injected items.</item>
32
+ <item>Session-retro 2026-10-08: id-in-diff dedup — auto-inject skips when the worktree diff already carries a same-ID item (HEAD-vs-worktree via git show HEAD:path), closing the descriptive+generic duplicate class seen on RFC-1237.</item>
31
33
  <history>RFC-1095</history>
32
34
  </CHANGE_SUMMARY>
33
35
  */
34
- import { existsSync } from "../../../src/utils/sync-fs.js";
36
+ import { execFile, existsSync } from "../../../src/utils/sync-fs.js";
35
37
  import { ambientIo, resolveIo } from "../../../src/utils/io.js";
36
38
  import { resolve, relative } from "node:path";
37
39
  import { detectRiskClass, getWorkspaceRelativeSegments } from "./compass-inventory.js";
@@ -117,12 +119,54 @@ export function buildChangeSummaryBlock(items, historyIds, filePath) {
117
119
  export function stripConventionalPrefix(subject) {
118
120
  return subject.replace(CONVENTIONAL_PREFIX_RE, "").trim();
119
121
  }
122
+ // RFC-1233: git-trailer tail block — strict `Token: value` / `Token #value`
123
+ // lines (interpret-trailers shape, empty value allowed), plus lines ending
124
+ // in a markdown link (the observed "Generated with [X](url)" attribution
125
+ // boilerplate has no separator). A link-shaped line is admitted only when
126
+ // the block also contains at least one strict trailer line — a lone link
127
+ // tail is prose.
128
+ const TRAILER_LINE_RE = /^[A-Za-z0-9-]+(:| #)\s*.*$/;
129
+ const MARKDOWN_LINK_TAIL_RE = /^.*\[[^\]]*\]\([^)]+\)\s*$/;
130
+ /**
131
+ * Remove a trailing git-trailer block: the contiguous tail of strict
132
+ * trailer lines and admitted markdown-link lines. A blank line ends the
133
+ * tail paragraph. Returns the message without the block; when the tail
134
+ * holds no strict trailer line the message is returned unchanged.
135
+ */
136
+ export function stripGitTrailers(message) {
137
+ const lines = message.trimEnd().split("\n");
138
+ let start = lines.length;
139
+ let sawStrict = false;
140
+ while (start > 0) {
141
+ const line = lines[start - 1].trim();
142
+ if (line === "")
143
+ break;
144
+ if (TRAILER_LINE_RE.test(line)) {
145
+ sawStrict = true;
146
+ start--;
147
+ }
148
+ else if (MARKDOWN_LINK_TAIL_RE.test(line)) {
149
+ start--;
150
+ }
151
+ else {
152
+ break;
153
+ }
154
+ }
155
+ if (!sawStrict || start === lines.length)
156
+ return message;
157
+ return lines.slice(0, start).join("\n").trimEnd();
158
+ }
120
159
  // Literal Compass block tags inside an item corrupt block parsing — a commit
121
160
  // message saying "collapsed into history" would be matched by HISTORY_RE and
122
161
  // produce phantom non-ID tokens (CS-07). Strip the angle brackets on record.
123
162
  const COMPASS_TAG_LITERAL_RE = /<\/?(?:CHANGE_SUMMARY|MODULE_CONTRACT|KEY_DECISIONS|history|item|purpose|non-goals)>/g;
124
163
  export function sanitizeItemText(text) {
125
- return text.replace(COMPASS_TAG_LITERAL_RE, (tag) => tag.replace(/[<>]/g, ""));
164
+ return (text
165
+ .replace(COMPASS_TAG_LITERAL_RE, (tag) => tag.replace(/[<>]/g, ""))
166
+ // RFC-1233: a literal star-slash sequence would terminate the
167
+ // surrounding block comment when the item lands in /* ... */ headers.
168
+ // ∕ (U+2215) is visually near-identical, idempotent, and never re-forms.
169
+ .replace(/\*\//g, "*\u2215"));
126
170
  }
127
171
  export function isValidGovernanceId(id, policy) {
128
172
  return policy.idPatternFull.test(id);
@@ -130,8 +174,10 @@ export function isValidGovernanceId(id, policy) {
130
174
  /**
131
175
  * Append `ID: text` to one file's CHANGE_SUMMARY and collapse the window.
132
176
  * Returns the outcome; writes the file only when mutated and not dry-run.
177
+ * `headSource` is the file's content at HEAD (when resolvable) — it enables
178
+ * the id-in-diff dedup; pass undefined outside git workspaces.
133
179
  */
134
- export async function recordSummaryItem(absPath, relPath, id, text, dryRun, policy) {
180
+ export async function recordSummaryItem(absPath, relPath, id, text, dryRun, policy, headSource) {
135
181
  const source = await io.readFile(absPath);
136
182
  const blockMatch = source.match(CHANGE_SUMMARY_BLOCK_RE);
137
183
  // Header-region guard: a CHANGE_SUMMARY is a header only when it sits at the
@@ -158,6 +204,21 @@ export async function recordSummaryItem(absPath, relPath, id, text, dryRun, poli
158
204
  if (items.some((item) => normalizeItemText(item) === normalizedNew)) {
159
205
  return { recorded: false, collapsed: false, skipReason: "duplicate" };
160
206
  }
207
+ // A same-ID item already in the worktree but absent from HEAD means the
208
+ // pending change already carries a hand-authored record for this governance
209
+ // ID — the auto-injected subject-derived item would duplicate it at lower
210
+ // specificity (observed 2026-10-08: 27 files carried descriptive + generic
211
+ // RFC-1237 items). HEAD-resident same-ID items do NOT suppress: consecutive
212
+ // commits under one RFC legitimately stack step items.
213
+ if (headSource !== undefined) {
214
+ const headBlock = headSource.match(CHANGE_SUMMARY_BLOCK_RE);
215
+ const headItems = headBlock ? parseChangeSummary(headBlock[0]).items : [];
216
+ const idInWorktree = items.some((item) => leadingGovernanceId(item, policy) === id);
217
+ const idInHead = headItems.some((item) => leadingGovernanceId(item, policy) === id);
218
+ if (idInWorktree && !idInHead) {
219
+ return { recorded: false, collapsed: false, skipReason: "id-in-diff" };
220
+ }
221
+ }
161
222
  const nextItems = [...items, newItem];
162
223
  const collapsedIds = [];
163
224
  while (nextItems.length > CHANGE_SUMMARY_WINDOW) {
@@ -175,6 +236,27 @@ export async function recordSummaryItem(absPath, relPath, id, text, dryRun, poli
175
236
  }
176
237
  return { recorded: true, collapsed };
177
238
  }
239
+ function execGit(cwd, args) {
240
+ return new Promise((resolve) => {
241
+ execFile("git", args, { cwd, timeout: 5000 }, (err, stdout) => {
242
+ resolve(err ? null : stdout);
243
+ });
244
+ });
245
+ }
246
+ /**
247
+ * Read `path`'s content at HEAD — the baseline for the id-in-diff dedup.
248
+ * Returns undefined when the file is untracked or the workspace is not a git
249
+ * repo (the dedup then falls back to exact-text matching only).
250
+ */
251
+ async function readHeadSource(gitTop, absPath) {
252
+ if (!gitTop)
253
+ return undefined;
254
+ const rel = relative(gitTop, absPath).replace(/\\/g, "/");
255
+ if (rel === "" || rel.startsWith(".."))
256
+ return undefined;
257
+ const source = await execGit(gitTop, ["show", `HEAD:${rel}`]);
258
+ return source ?? undefined;
259
+ }
178
260
  function riskReminderNeeded(relPath, source, policy) {
179
261
  const segments = relPath.split("/").filter(Boolean);
180
262
  const workspaceRel = getWorkspaceRelativeSegments(segments, policy).join("/");
@@ -198,7 +280,10 @@ export async function runCompassSummaryRecord(input, context) {
198
280
  ? rawFiles.split(/\s+/).filter(Boolean)
199
281
  : [];
200
282
  const rawText = input.flags["text"];
201
- const text = typeof rawText === "string" && rawText.trim().length > 0 ? rawText.trim() : id;
283
+ // RFC-1233: strip the git-trailer block at the single injection point —
284
+ // ecosystem.commit and mission.git.commit both pipe the raw message here.
285
+ const stripped = typeof rawText === "string" ? stripGitTrailers(rawText).trim() : "";
286
+ const text = stripped.length > 0 ? stripped : id;
202
287
  const result = {
203
288
  command: "compass.summary.record",
204
289
  status: "pass",
@@ -207,6 +292,8 @@ export async function runCompassSummaryRecord(input, context) {
207
292
  skipped: [],
208
293
  keyDecisionsReminders: [],
209
294
  };
295
+ const gitTopRaw = await execGit(baseRoot, ["rev-parse", "--show-toplevel"]);
296
+ const gitTop = gitTopRaw?.trim() || null;
210
297
  for (const file of files) {
211
298
  const absPath = resolve(baseRoot, file);
212
299
  const relPath = relative(baseRoot, absPath).replace(/\\/g, "/");
@@ -216,7 +303,8 @@ export async function runCompassSummaryRecord(input, context) {
216
303
  continue;
217
304
  }
218
305
  try {
219
- const outcome = await recordSummaryItem(absPath, relPath, id, text, context.dryRun, policy);
306
+ const headSource = await readHeadSource(gitTop, absPath);
307
+ const outcome = await recordSummaryItem(absPath, relPath, id, text, context.dryRun, policy, headSource);
220
308
  if (outcome.skipReason) {
221
309
  result.skipped.push({ file, reason: outcome.skipReason });
222
310
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"summary-record.js","sourceRoot":"","sources":["../../../../os/compass/handlers/summary-record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"summary-record.js","sourceRoot":"","sources":["../../../../os/compass/handlers/summary-record.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"core.module.d.ts","sourceRoot":"","sources":["../../../os/core/core.module.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAiB7D,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,WAAW,CAAC,CA8+BlE"}
1
+ {"version":3,"file":"core.module.d.ts","sourceRoot":"","sources":["../../../os/core/core.module.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAiB7D,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,WAAW,CAAC,CAqjClE"}