@warpgogol/forge 0.22.0 → 0.23.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 (89) hide show
  1. package/AGENTS.md +33 -3
  2. package/dist/bin/cli.js +1 -0
  3. package/dist/bin/cli.js.map +1 -1
  4. package/dist/os/core/core.module.d.ts.map +1 -1
  5. package/dist/os/core/core.module.js +66 -0
  6. package/dist/os/core/core.module.js.map +1 -1
  7. package/dist/os/core/handlers/release-publish.js +4 -4
  8. package/dist/os/core/handlers/release-publish.js.map +1 -1
  9. package/dist/os/exploration/exploration.module.d.ts +3 -0
  10. package/dist/os/exploration/exploration.module.d.ts.map +1 -0
  11. package/dist/os/exploration/exploration.module.js +82 -0
  12. package/dist/os/exploration/exploration.module.js.map +1 -0
  13. package/dist/os/exploration/frontmatter-io.d.ts +13 -0
  14. package/dist/os/exploration/frontmatter-io.d.ts.map +1 -0
  15. package/dist/os/exploration/frontmatter-io.js +63 -0
  16. package/dist/os/exploration/frontmatter-io.js.map +1 -0
  17. package/dist/os/exploration/handlers/archive.d.ts +4 -0
  18. package/dist/os/exploration/handlers/archive.d.ts.map +1 -0
  19. package/dist/os/exploration/handlers/archive.js +135 -0
  20. package/dist/os/exploration/handlers/archive.js.map +1 -0
  21. package/dist/os/exploration/handlers/list.d.ts +4 -0
  22. package/dist/os/exploration/handlers/list.d.ts.map +1 -0
  23. package/dist/os/exploration/handlers/list.js +56 -0
  24. package/dist/os/exploration/handlers/list.js.map +1 -0
  25. package/dist/os/exploration/handlers/show.d.ts +4 -0
  26. package/dist/os/exploration/handlers/show.d.ts.map +1 -0
  27. package/dist/os/exploration/handlers/show.js +91 -0
  28. package/dist/os/exploration/handlers/show.js.map +1 -0
  29. package/dist/os/exploration/index.d.ts +7 -0
  30. package/dist/os/exploration/index.d.ts.map +1 -0
  31. package/dist/os/exploration/index.js +17 -0
  32. package/dist/os/exploration/index.js.map +1 -0
  33. package/dist/os/exploration/types.d.ts +38 -0
  34. package/dist/os/exploration/types.d.ts.map +1 -0
  35. package/dist/os/exploration/types.js +23 -0
  36. package/dist/os/exploration/types.js.map +1 -0
  37. package/dist/os/rfc/handlers/validate-rules.d.ts +5 -4
  38. package/dist/os/rfc/handlers/validate-rules.d.ts.map +1 -1
  39. package/dist/os/rfc/handlers/validate-rules.js +41 -6
  40. package/dist/os/rfc/handlers/validate-rules.js.map +1 -1
  41. package/dist/os/rfc/handlers/validate.d.ts.map +1 -1
  42. package/dist/os/rfc/handlers/validate.js +5 -2
  43. package/dist/os/rfc/handlers/validate.js.map +1 -1
  44. package/dist/os/rfc/index.d.ts +2 -2
  45. package/dist/os/rfc/index.d.ts.map +1 -1
  46. package/dist/os/rfc/index.js +1 -1
  47. package/dist/os/rfc/index.js.map +1 -1
  48. package/dist/os/rfc/types.d.ts +13 -0
  49. package/dist/os/rfc/types.d.ts.map +1 -1
  50. package/dist/os/rfc/types.js +1 -0
  51. package/dist/os/rfc/types.js.map +1 -1
  52. package/dist/os/spec/live-spec-list.d.ts +4 -0
  53. package/dist/os/spec/live-spec-list.d.ts.map +1 -0
  54. package/dist/os/spec/live-spec-list.js +64 -0
  55. package/dist/os/spec/live-spec-list.js.map +1 -0
  56. package/dist/os/spec/live-spec-merge.d.ts +4 -0
  57. package/dist/os/spec/live-spec-merge.d.ts.map +1 -0
  58. package/dist/os/spec/live-spec-merge.js +345 -0
  59. package/dist/os/spec/live-spec-merge.js.map +1 -0
  60. package/dist/os/spec/live-spec-show.d.ts +4 -0
  61. package/dist/os/spec/live-spec-show.d.ts.map +1 -0
  62. package/dist/os/spec/live-spec-show.js +99 -0
  63. package/dist/os/spec/live-spec-show.js.map +1 -0
  64. package/dist/os/spec/live-spec-types.d.ts +71 -0
  65. package/dist/os/spec/live-spec-types.d.ts.map +1 -0
  66. package/dist/os/spec/live-spec-types.js +14 -0
  67. package/dist/os/spec/live-spec-types.js.map +1 -0
  68. package/dist/os/spec/live-spec-validate.d.ts +4 -0
  69. package/dist/os/spec/live-spec-validate.d.ts.map +1 -0
  70. package/dist/os/spec/live-spec-validate.js +140 -0
  71. package/dist/os/spec/live-spec-validate.js.map +1 -0
  72. package/dist/os/spec/spec.module.d.ts.map +1 -1
  73. package/dist/os/spec/spec.module.js +54 -2
  74. package/dist/os/spec/spec.module.js.map +1 -1
  75. package/dist/src/index.d.ts +1 -0
  76. package/dist/src/index.d.ts.map +1 -1
  77. package/dist/src/index.js +1 -0
  78. package/dist/src/index.js.map +1 -1
  79. package/os/rfc/rfc-0000-template.md +5 -0
  80. package/package.json +9 -1
  81. package/skills/fo/fo-design-summit/SKILL.md +240 -0
  82. package/skills/fo/fo-explore/SKILL.md +145 -0
  83. package/skills/fo/fo-idea/SKILL.md +10 -0
  84. package/skills/fo/fo-idea-audit/SKILL.md +1 -0
  85. package/skills/fo/fo-idea-create-rfc/SKILL.md +3 -0
  86. package/skills/fo/fo-idea-enhance/SKILL.md +3 -2
  87. package/skills/fo/fo-idea-implement/SKILL.md +9 -4
  88. package/skills/fo/fo-idea-plan/SKILL.md +10 -0
  89. package/skills/fo/fo-session-retro/SKILL.md +10 -5
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../os/rfc/handlers/validate.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAA0B,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAM/E,wBAAsB,cAAc,CAClC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC,CA0HlD"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../os/rfc/handlers/validate.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAA0B,mBAAmB,EAAU,MAAM,aAAa,CAAC;AAMvF,wBAAsB,cAAc,CAClC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC,CA6HlD"}
@@ -30,7 +30,7 @@ export async function runRfcValidate(input, context) {
30
30
  }
31
31
  logger.info("No RFC files found to validate.");
32
32
  return {
33
- data: { command: "rfc.validate", status: "pass", count: 0, violations: [] },
33
+ data: { command: "rfc.validate", status: "pass", count: 0, violations: [], markers: [] },
34
34
  summary: "No RFC files found to validate",
35
35
  };
36
36
  }
@@ -48,6 +48,7 @@ export async function runRfcValidate(input, context) {
48
48
  const validApIds = await loadInvariantIds(workspaceRoot, AP_DOCS, "AP");
49
49
  const knownKeys = new Set(RFC_KNOWN_KEYS);
50
50
  const violations = [];
51
+ const allMarkers = [];
51
52
  function addViolation(rfcId, file, rule, message, severity = "error") {
52
53
  violations.push({ rfcId, file, rule, message, severity });
53
54
  }
@@ -57,7 +58,8 @@ export async function runRfcValidate(input, context) {
57
58
  const result = allParsedByFile.get(fileName);
58
59
  if (!result)
59
60
  continue;
60
- await validateSingleRfc(fileName, result.parsed, allParsed, seenIds, validDnaIds, validApIds, knownKeys, workspaceRoot, addViolation, seenFilenameNumbers);
61
+ const markers = await validateSingleRfc(fileName, result.parsed, allParsed, seenIds, validDnaIds, validApIds, knownKeys, workspaceRoot, addViolation, seenFilenameNumbers);
62
+ allMarkers.push(...markers);
61
63
  }
62
64
  const lifecycle = await collectRfcCommandLifecycleViolations(workspaceRoot, filesToValidate, allParsedByFile, context.commandRegistry);
63
65
  for (const violation of lifecycle.violations) {
@@ -91,6 +93,7 @@ export async function runRfcValidate(input, context) {
91
93
  status: resultStatus,
92
94
  count: filesToValidate.length,
93
95
  violations,
96
+ markers: allMarkers,
94
97
  },
95
98
  exitCode: hasErrors ? 1 : 0,
96
99
  summary: hasErrors
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../os/rfc/handlers/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../os/rfc/handlers/validate.ts"],"names":[],"mappings":"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"}
@@ -9,10 +9,10 @@ export type { DnaTraceEntry, DnaTraceResult } from "./dna-trace.ts";
9
9
  export { collectDecisionLog, scoreDecisions, runRfcDecisionLogGenerate } from "./decision-log.ts";
10
10
  export { runRfcSupersedePropose } from "./handlers/supersede-propose.ts";
11
11
  export { runRfcArchive } from "./handlers/archive.ts";
12
- export { evaluateAcceptanceCriteria, extractAcceptanceCriteriaSection, type AcceptanceCriteriaEvaluation, } from "./handlers/validate-rules.ts";
12
+ export { evaluateAcceptanceCriteria, extractAcceptanceCriteriaSection, collectMarkers, type AcceptanceCriteriaEvaluation, } from "./handlers/validate-rules.ts";
13
13
  export type { RfcArchiveResult, ArchiveMove as RfcArchiveMove, ArchiveSkip as RfcArchiveSkip, } from "./handlers/archive.ts";
14
14
  export type { DecisionLogEntry, DecisionLogEntryKind, DecisionLogResult, ConsultedDecision, RfcSupersedeProposeResult, } from "./types.ts";
15
15
  export type { RfcImplementStampData, RfcImplementStampRule, RfcImplementStampViolation, RfcImplementStampResult, } from "./types.ts";
16
- export type { RfcStatus, RfcKind, RfcScope, RfcCommands, RfcFrontmatter, RfcListEntry, RfcListResult, RfcCreateResult, RfcValidationViolation, RfcValidationResult, RfcCommandLifecycleViolation, RfcCommandLifecycleValidationResult, RfcCheckViolation, RfcCheckResult, AcceptanceProbe, ProbeResult, RfcAcceptanceRunResult, VerificationEvidence, VerificationEvidenceProbeRecord, RfcVerificationEmitResult, } from "./types.ts";
16
+ export type { RfcStatus, RfcKind, RfcScope, RfcCommands, RfcFrontmatter, RfcListEntry, RfcListResult, RfcCreateResult, RfcValidationViolation, RfcValidationResult, Marker, RfcCommandLifecycleViolation, RfcCommandLifecycleValidationResult, RfcCheckViolation, RfcCheckResult, AcceptanceProbe, ProbeResult, RfcAcceptanceRunResult, VerificationEvidence, VerificationEvidenceProbeRecord, RfcVerificationEmitResult, } from "./types.ts";
17
17
  export { RFC_STATUSES, RFC_KINDS, RFC_SCOPES, RFC_DIR, RFC_TEMPLATE_FILE, RFC_TEMPLATE_FALLBACK_FILE, RFC_ID_PATTERN, RFC_FULL_REQUIRED_SECTIONS, RFC_METADATA_CUTOFF, } from "./types.ts";
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../os/rfc/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,SAAS,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,UAAU,EACV,YAAY,EACZ,cAAc,EACd,8BAA8B,EAC9B,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/F,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,EAChC,KAAK,4BAA4B,GAClC,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,gBAAgB,EAChB,WAAW,IAAI,cAAc,EAC7B,WAAW,IAAI,cAAc,GAC9B,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,SAAS,EACT,OAAO,EACP,QAAQ,EACR,WAAW,EACX,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,4BAA4B,EAC5B,mCAAmC,EACnC,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,0BAA0B,EAC1B,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../os/rfc/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,SAAS,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,UAAU,EACV,YAAY,EACZ,cAAc,EACd,8BAA8B,EAC9B,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/F,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,EAChC,cAAc,EACd,KAAK,4BAA4B,GAClC,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,gBAAgB,EAChB,WAAW,IAAI,cAAc,EAC7B,WAAW,IAAI,cAAc,GAC9B,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,SAAS,EACT,OAAO,EACP,QAAQ,EACR,WAAW,EACX,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,MAAM,EACN,4BAA4B,EAC5B,mCAAmC,EACnC,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,0BAA0B,EAC1B,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
@@ -19,6 +19,6 @@ export { runRfcDnaTraceValidate, runRfcDnaTraceGenerate, buildDnaTrace } from ".
19
19
  export { collectDecisionLog, scoreDecisions, runRfcDecisionLogGenerate } from "./decision-log.js";
20
20
  export { runRfcSupersedePropose } from "./handlers/supersede-propose.js";
21
21
  export { runRfcArchive } from "./handlers/archive.js";
22
- export { evaluateAcceptanceCriteria, extractAcceptanceCriteriaSection, } from "./handlers/validate-rules.js";
22
+ export { evaluateAcceptanceCriteria, extractAcceptanceCriteriaSection, collectMarkers, } from "./handlers/validate-rules.js";
23
23
  export { RFC_STATUSES, RFC_KINDS, RFC_SCOPES, RFC_DIR, RFC_TEMPLATE_FILE, RFC_TEMPLATE_FALLBACK_FILE, RFC_ID_PATTERN, RFC_FULL_REQUIRED_SECTIONS, RFC_METADATA_CUTOFF, } from "./types.js";
24
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../os/rfc/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AAEF,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,UAAU,EACV,YAAY,EACZ,cAAc,EACd,8BAA8B,EAC9B,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/F,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,GAEjC,MAAM,8BAA8B,CAAC;AAyCtC,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,0BAA0B,EAC1B,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../os/rfc/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AAEF,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,UAAU,EACV,YAAY,EACZ,cAAc,EACd,8BAA8B,EAC9B,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/F,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,EAChC,cAAc,GAEf,MAAM,8BAA8B,CAAC;AA0CtC,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,0BAA0B,EAC1B,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
@@ -179,6 +179,13 @@ export interface RfcFrontmatter {
179
179
  * by V-30.
180
180
  */
181
181
  breaksC?: boolean;
182
+ /**
183
+ * RFC-0711: Declares that this RFC contributes to a living feature spec
184
+ * under docs/specs/live/<domain>.md. When true, the domain is auto-derived
185
+ * from packagesImpacted[0]. When a string, used as an explicit domain override.
186
+ * Absent or false means no living spec merge occurs.
187
+ */
188
+ liveSpec?: boolean | string;
182
189
  }
183
190
  /**
184
191
  * Closed probe vocabulary (v1). `run` commands are restricted to the
@@ -265,11 +272,17 @@ export interface RfcValidationViolation {
265
272
  message: string;
266
273
  severity: "error" | "warning";
267
274
  }
275
+ export interface Marker {
276
+ line: number;
277
+ text: string;
278
+ severity: "warn" | "error";
279
+ }
268
280
  export interface RfcValidationResult {
269
281
  command: "rfc.validate";
270
282
  status: "pass" | "fail";
271
283
  count: number;
272
284
  violations: RfcValidationViolation[];
285
+ markers?: Marker[];
273
286
  }
274
287
  export interface RfcCommandLifecycleDiagnosticData {
275
288
  rfcId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../os/rfc/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../os/rfc/types.ts"],"names":[],"mappings":"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"}
@@ -80,6 +80,7 @@ export const RFC_KNOWN_KEYS = [
80
80
  "specRef",
81
81
  "versionBump",
82
82
  "breaksC",
83
+ "liveSpec",
83
84
  ];
84
85
  /**
85
86
  * RFC-0330 / RFC-0331 / RFC-0335: shared cutoff date for new metadata rules.
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../os/rfc/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;iEAmBiE;AA4BjE,MAAM,CAAC,MAAM,YAAY,GAAyB;IAChD,OAAO;IACP,WAAW;IACX,UAAU;IACV,aAAa;IACb,UAAU;IACV,YAAY;CACJ,CAAC;AAaX,MAAM,CAAC,MAAM,SAAS,GAAuB;IAC3C,cAAc;IACd,UAAU;IACV,SAAS;IACT,QAAQ;IACR,aAAa;CACL,CAAC;AAUX,MAAM,CAAC,MAAM,UAAU,GAAwB,CAAC,KAAK,EAAE,WAAW,CAAU,CAAC,CAAC,gFAAgF;AAmZ9J,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC;AACnC,MAAM,CAAC,MAAM,iBAAiB,GAAG,gCAAgC,CAAC;AAClE,MAAM,CAAC,MAAM,0BAA0B,GAAG,6BAA6B,CAAC;AACxE,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC;AAE5C,0CAA0C;AAC1C,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,SAAS;IACT,SAAS;IACT,UAAU;IACV,mBAAmB;IACnB,QAAQ;IACR,SAAS;IACT,yBAAyB;IACzB,OAAO;IACP,qBAAqB;IACrB,iCAAiC;CACzB,CAAC;AAEX,mFAAmF;AACnF,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,IAAI;IACJ,OAAO;IACP,QAAQ;IACR,MAAM;IACN,OAAO;IACP,QAAQ;IACR,WAAW;IACX,WAAW;IACX,WAAW;IACX,YAAY;IACZ,eAAe;IACf,UAAU;IACV,YAAY;IACZ,cAAc;IACd,QAAQ;IACR,WAAW;IACX,SAAS;IACT,UAAU;IACV,cAAc;IACd,kBAAkB;IAClB,gBAAgB;IAChB,UAAU;IACV,YAAY;IACZ,WAAW;IACX,SAAS;IACT,aAAa;IACb,SAAS;CACD,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../os/rfc/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;iEAmBiE;AA4BjE,MAAM,CAAC,MAAM,YAAY,GAAyB;IAChD,OAAO;IACP,WAAW;IACX,UAAU;IACV,aAAa;IACb,UAAU;IACV,YAAY;CACJ,CAAC;AAaX,MAAM,CAAC,MAAM,SAAS,GAAuB;IAC3C,cAAc;IACd,UAAU;IACV,SAAS;IACT,QAAQ;IACR,aAAa;CACL,CAAC;AAUX,MAAM,CAAC,MAAM,UAAU,GAAwB,CAAC,KAAK,EAAE,WAAW,CAAU,CAAC,CAAC,gFAAgF;AAka9J,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC;AACnC,MAAM,CAAC,MAAM,iBAAiB,GAAG,gCAAgC,CAAC;AAClE,MAAM,CAAC,MAAM,0BAA0B,GAAG,6BAA6B,CAAC;AACxE,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC;AAE5C,0CAA0C;AAC1C,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,SAAS;IACT,SAAS;IACT,UAAU;IACV,mBAAmB;IACnB,QAAQ;IACR,SAAS;IACT,yBAAyB;IACzB,OAAO;IACP,qBAAqB;IACrB,iCAAiC;CACzB,CAAC;AAEX,mFAAmF;AACnF,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,IAAI;IACJ,OAAO;IACP,QAAQ;IACR,MAAM;IACN,OAAO;IACP,QAAQ;IACR,WAAW;IACX,WAAW;IACX,WAAW;IACX,YAAY;IACZ,eAAe;IACf,UAAU;IACV,YAAY;IACZ,cAAc;IACd,QAAQ;IACR,WAAW;IACX,SAAS;IACT,UAAU;IACV,cAAc;IACd,kBAAkB;IAClB,gBAAgB;IAChB,UAAU;IACV,YAAY;IACZ,WAAW;IACX,SAAS;IACT,aAAa;IACb,SAAS;IACT,UAAU;CACF,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ForgeCommandInput, ForgeCommandResult, ForgeRuntimeContext } from "../../src/types.ts";
2
+ import type { SpecLiveListResult } from "./live-spec-types.ts";
3
+ export declare function runSpecLiveList(_input: ForgeCommandInput, context: ForgeRuntimeContext): Promise<ForgeCommandResult<SpecLiveListResult>>;
4
+ //# sourceMappingURL=live-spec-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-spec-list.d.ts","sourceRoot":"","sources":["../../../os/spec/live-spec-list.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,kBAAkB,EAAqB,MAAM,sBAAsB,CAAC;AAIlF,wBAAsB,eAAe,CACnC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAiDjD"}
@@ -0,0 +1,64 @@
1
+ /*
2
+ <MODULE_CONTRACT>
3
+ <purpose>spec.live.list handler — lists all living specs in docs/specs/live/ (RFC-0711).</purpose>
4
+ <non-goals>
5
+ <item>Do not merge or validate — use spec.live.merge / spec.live.validate.</item>
6
+ </non-goals>
7
+ </MODULE_CONTRACT>
8
+ <CHANGE_SUMMARY>
9
+ <item>RFC-0711: initial spec.live.list handler.</item>
10
+ </CHANGE_SUMMARY>
11
+ */
12
+ import fs from "node:fs/promises";
13
+ import { existsSync } from "node:fs";
14
+ import path from "node:path";
15
+ import YAML from "yaml";
16
+ const LIVE_SPECS_DIR = "docs/specs/live";
17
+ export async function runSpecLiveList(_input, context) {
18
+ const { workspaceRoot, logger, outputFormat } = context;
19
+ const liveSpecsDir = path.join(workspaceRoot, LIVE_SPECS_DIR);
20
+ const entries = [];
21
+ if (existsSync(liveSpecsDir)) {
22
+ const files = await fs.readdir(liveSpecsDir);
23
+ for (const file of files) {
24
+ if (!file.endsWith(".md") || file === "README.md")
25
+ continue;
26
+ const filePath = path.join(liveSpecsDir, file);
27
+ const content = await fs.readFile(filePath, "utf-8");
28
+ const match = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
29
+ if (!match)
30
+ continue;
31
+ const fm = (YAML.parse(match[1]) ?? {});
32
+ entries.push({
33
+ domain: String(fm["domain"] ?? ""),
34
+ title: String(fm["title"] ?? ""),
35
+ lastMergedRfc: String(fm["lastMergedRfc"] ?? ""),
36
+ updatedAt: String(fm["updatedAt"] ?? ""),
37
+ historyCount: Array.isArray(fm["history"]) ? fm["history"].length : 0,
38
+ });
39
+ }
40
+ }
41
+ entries.sort((a, b) => a.domain.localeCompare(b.domain));
42
+ const result = {
43
+ command: "spec.live.list",
44
+ status: "ok",
45
+ livingSpecs: entries,
46
+ };
47
+ if (outputFormat === "pretty") {
48
+ if (entries.length === 0) {
49
+ logger.info("spec.live.list: no living specs found");
50
+ }
51
+ else {
52
+ logger.section(`Living Specs (${entries.length})`);
53
+ for (const entry of entries) {
54
+ logger.info(` ${entry.domain} — ${entry.title} (last: ${entry.lastMergedRfc})`);
55
+ }
56
+ }
57
+ }
58
+ return {
59
+ data: result,
60
+ exitCode: 0,
61
+ summary: `spec.live.list: ${entries.length} living spec(s)`,
62
+ };
63
+ }
64
+ //# sourceMappingURL=live-spec-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-spec-list.js","sourceRoot":"","sources":["../../../os/spec/live-spec-list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ForgeCommandInput, ForgeCommandResult, ForgeRuntimeContext } from "../../src/types.ts";
2
+ import type { SpecLiveMergeResult } from "./live-spec-types.ts";
3
+ export declare function runSpecLiveMerge(input: ForgeCommandInput, context: ForgeRuntimeContext): Promise<ForgeCommandResult<SpecLiveMergeResult>>;
4
+ //# sourceMappingURL=live-spec-merge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-spec-merge.d.ts","sourceRoot":"","sources":["../../../os/spec/live-spec-merge.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,KAAK,EAKV,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAgJ9B,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC,CAwOlD"}
@@ -0,0 +1,345 @@
1
+ /*
2
+ <MODULE_CONTRACT>
3
+ <purpose>spec.live.merge handler — extracts deltas from an RFC's ## Design section,
4
+ classifies them as ADDED/MODIFIED/REMOVED, applies to a living spec, handles conflicts
5
+ with all-or-nothing semantics, and writes atomically (RFC-0711).</purpose>
6
+ <non-goals>
7
+ <item>Do not handle docs.archive integration — that is in core.module.ts.</item>
8
+ <item>Do not validate living specs — that is spec.live.validate.</item>
9
+ </non-goals>
10
+ </MODULE_CONTRACT>
11
+ <CHANGE_SUMMARY>
12
+ <item>RFC-0711: initial spec.live.merge handler with delta extraction, classification, conflict detection, and atomic writes.</item>
13
+ </CHANGE_SUMMARY>
14
+ */
15
+ import fs from "node:fs/promises";
16
+ import { existsSync } from "node:fs";
17
+ import path from "node:path";
18
+ import YAML from "yaml";
19
+ import { writeFileIfChanged, buildGeneratedHeader } from "../../src/utils/index.js";
20
+ import { parseRfcFile, listRfcFiles } from "../rfc/frontmatter-io.js";
21
+ import { RFC_DIR } from "../rfc/types.js";
22
+ const LIVE_SPECS_DIR = "docs/specs/live";
23
+ function extractDesignSection(rfcBody) {
24
+ const designMatch = rfcBody.match(/^##\s+Design\s*$/m);
25
+ if (!designMatch)
26
+ return "";
27
+ const startIndex = designMatch.index + designMatch[0].length;
28
+ const nextH2Match = rfcBody.slice(startIndex).match(/^##\s+/m);
29
+ if (!nextH2Match) {
30
+ return rfcBody.slice(startIndex).trim();
31
+ }
32
+ return rfcBody.slice(startIndex, startIndex + nextH2Match.index).trim();
33
+ }
34
+ function parseHeadings(content) {
35
+ const lines = content.split("\n");
36
+ const headings = [];
37
+ let currentHeading = null;
38
+ let currentBody = [];
39
+ for (const line of lines) {
40
+ const headingMatch = line.match(/^(#{3,})\s+(.+)$/);
41
+ if (headingMatch) {
42
+ if (currentHeading) {
43
+ currentHeading.body = currentBody.join("\n").trim();
44
+ headings.push(currentHeading);
45
+ }
46
+ currentHeading = {
47
+ level: headingMatch[1].length,
48
+ text: headingMatch[2].trim(),
49
+ body: "",
50
+ };
51
+ currentBody = [];
52
+ }
53
+ else if (currentHeading) {
54
+ currentBody.push(line);
55
+ }
56
+ }
57
+ if (currentHeading) {
58
+ currentHeading.body = currentBody.join("\n").trim();
59
+ headings.push(currentHeading);
60
+ }
61
+ return headings;
62
+ }
63
+ function deriveDomain(frontmatter) {
64
+ const liveSpec = frontmatter["liveSpec"];
65
+ if (typeof liveSpec === "string" && liveSpec.length > 0) {
66
+ return liveSpec;
67
+ }
68
+ if (liveSpec === true) {
69
+ const packagesImpacted = frontmatter["packagesImpacted"];
70
+ if (Array.isArray(packagesImpacted) && packagesImpacted.length > 0) {
71
+ const firstPkg = String(packagesImpacted[0]);
72
+ return firstPkg.replace(/^packages\//, "");
73
+ }
74
+ return null;
75
+ }
76
+ return null;
77
+ }
78
+ function parseLivingSpec(content) {
79
+ const match = content.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);
80
+ if (!match)
81
+ return null;
82
+ const fm = (YAML.parse(match[1]) ?? {});
83
+ return {
84
+ domain: String(fm["domain"] ?? ""),
85
+ title: String(fm["title"] ?? ""),
86
+ lastMergedRfc: String(fm["lastMergedRfc"] ?? ""),
87
+ updatedAt: String(fm["updatedAt"] ?? ""),
88
+ createdAt: String(fm["createdAt"] ?? ""),
89
+ history: (Array.isArray(fm["history"]) ? fm["history"] : []),
90
+ body: match[2] ?? "",
91
+ };
92
+ }
93
+ function serializeLivingSpec(spec) {
94
+ const fm = {
95
+ domain: spec.domain,
96
+ title: spec.title,
97
+ lastMergedRfc: spec.lastMergedRfc,
98
+ updatedAt: spec.updatedAt,
99
+ createdAt: spec.createdAt,
100
+ history: spec.history,
101
+ };
102
+ const fmStr = YAML.stringify(fm).trimEnd();
103
+ return `---\n${fmStr}\n---\n\n${spec.body}`;
104
+ }
105
+ function findHeadingInSpec(spec, headingText) {
106
+ const headings = parseHeadings(spec.body);
107
+ return headings.find((h) => h.text === headingText) ?? null;
108
+ }
109
+ function applyDeltasToSpecBody(specBody, deltas, operations) {
110
+ let body = specBody;
111
+ for (const delta of deltas) {
112
+ const op = operations.find((o) => o.heading === delta.text);
113
+ if (!op)
114
+ continue;
115
+ if (op.type === "added") {
116
+ body = `${body}\n\n${"#".repeat(delta.level)} ${delta.text}\n\n${delta.body}`;
117
+ }
118
+ else if (op.type === "modified") {
119
+ const headingRegex = new RegExp(`(${"#".repeat(delta.level)}\\s+${escapeRegex(delta.text)}\\s*\\n)([\\s\\S]*?)(?=#{3,}|$)`);
120
+ body = body.replace(headingRegex, `$1\n${delta.body}\n`);
121
+ }
122
+ else if (op.type === "removed") {
123
+ const headingRegex = new RegExp(`\\n*${"#".repeat(delta.level)}\\s+${escapeRegex(delta.text)}\\s*\\n[\\s\\S]*?(?=#{3,}|$)`);
124
+ body = body.replace(headingRegex, "\n");
125
+ }
126
+ }
127
+ return body.trim();
128
+ }
129
+ function escapeRegex(str) {
130
+ return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
131
+ }
132
+ function findRfcFile(rfcDir, rfcId) {
133
+ return (async () => {
134
+ const files = await listRfcFiles(rfcDir);
135
+ for (const file of files) {
136
+ const basename = path.basename(file);
137
+ if (basename.toLowerCase().startsWith(rfcId.toLowerCase())) {
138
+ return file;
139
+ }
140
+ }
141
+ return null;
142
+ })();
143
+ }
144
+ export async function runSpecLiveMerge(input, context) {
145
+ const { workspaceRoot, logger, outputFormat } = context;
146
+ const rfcId = String(input.flags["id"] ?? "");
147
+ const dryRun = context.dryRun || input.flags["dry-run"] === true;
148
+ if (!rfcId) {
149
+ return {
150
+ data: {
151
+ command: "spec.live.merge",
152
+ domain: "",
153
+ operation: "modified",
154
+ deltas: [],
155
+ conflicts: [],
156
+ dryRun,
157
+ },
158
+ exitCode: 1,
159
+ summary: "spec.live.merge: --id flag is required",
160
+ };
161
+ }
162
+ const rfcDir = path.join(workspaceRoot, RFC_DIR);
163
+ const rfcFile = await findRfcFile(rfcDir, rfcId);
164
+ if (!rfcFile) {
165
+ return {
166
+ data: {
167
+ command: "spec.live.merge",
168
+ domain: "",
169
+ operation: "modified",
170
+ deltas: [],
171
+ conflicts: [],
172
+ dryRun,
173
+ },
174
+ exitCode: 1,
175
+ summary: `spec.live.merge: RFC ${rfcId} not found in ${RFC_DIR}`,
176
+ };
177
+ }
178
+ const rfcContent = await fs.readFile(path.join(rfcDir, rfcFile), "utf-8");
179
+ const parsed = parseRfcFile(rfcContent);
180
+ const fm = parsed.frontmatter;
181
+ const status = String(fm["status"] ?? "").trim();
182
+ if (status !== "implemented") {
183
+ return {
184
+ data: {
185
+ command: "spec.live.merge",
186
+ domain: "",
187
+ operation: "modified",
188
+ deltas: [],
189
+ conflicts: [],
190
+ dryRun,
191
+ },
192
+ exitCode: 1,
193
+ summary: `spec.live.merge: RFC ${rfcId} has status "${status}", must be "implemented"`,
194
+ };
195
+ }
196
+ const domain = deriveDomain(fm);
197
+ if (!domain) {
198
+ return {
199
+ data: {
200
+ command: "spec.live.merge",
201
+ domain: "",
202
+ operation: "modified",
203
+ deltas: [],
204
+ conflicts: [],
205
+ dryRun,
206
+ },
207
+ exitCode: 0,
208
+ summary: `spec.live.merge: RFC ${rfcId} has no liveSpec field — skipping (no-op)`,
209
+ };
210
+ }
211
+ const designSection = extractDesignSection(parsed.body);
212
+ if (!designSection) {
213
+ return {
214
+ data: {
215
+ command: "spec.live.merge",
216
+ domain,
217
+ operation: "modified",
218
+ deltas: [],
219
+ conflicts: [],
220
+ dryRun,
221
+ },
222
+ exitCode: 0,
223
+ summary: `spec.live.merge: RFC ${rfcId} has no ## Design section — skipping (no-op)`,
224
+ };
225
+ }
226
+ const rfcHeadings = parseHeadings(designSection);
227
+ const liveSpecsDir = path.join(workspaceRoot, LIVE_SPECS_DIR);
228
+ const specFilePath = path.join(liveSpecsDir, `${domain}.md`);
229
+ let existingSpec = null;
230
+ if (existsSync(specFilePath)) {
231
+ const specContent = await fs.readFile(specFilePath, "utf-8");
232
+ existingSpec = parseLivingSpec(specContent);
233
+ }
234
+ const operations = [];
235
+ const conflicts = [];
236
+ const today = new Date().toISOString().slice(0, 10);
237
+ if (!existingSpec) {
238
+ for (const heading of rfcHeadings) {
239
+ operations.push({ type: "added", heading: heading.text, rfc: rfcId });
240
+ }
241
+ const header = buildGeneratedHeader({
242
+ filePath: specFilePath,
243
+ ownerCommand: "spec.live.merge",
244
+ commandPrefix: "pnpm exec site-kernel run",
245
+ });
246
+ const newSpec = {
247
+ domain,
248
+ title: `Living Spec: ${domain}`,
249
+ lastMergedRfc: rfcId,
250
+ updatedAt: today,
251
+ createdAt: today,
252
+ history: [{ rfc: rfcId, mergedAt: today, operation: "created" }],
253
+ body: `${header}# Living Spec: ${domain}\n\n## Overview\n\n${designSection}`,
254
+ };
255
+ if (!dryRun) {
256
+ await fs.mkdir(liveSpecsDir, { recursive: true });
257
+ await writeFileIfChanged(specFilePath, serializeLivingSpec(newSpec));
258
+ }
259
+ const result = {
260
+ command: "spec.live.merge",
261
+ domain,
262
+ operation: "created",
263
+ deltas: operations,
264
+ conflicts: [],
265
+ dryRun,
266
+ };
267
+ if (outputFormat === "pretty") {
268
+ logger.success(`spec.live.merge: created living spec for domain "${domain}" from ${rfcId} (${operations.length} deltas)${dryRun ? " [dry-run]" : ""}`);
269
+ }
270
+ return { data: result, exitCode: 0, summary: `spec.live.merge: created ${domain} from ${rfcId}` };
271
+ }
272
+ for (const heading of rfcHeadings) {
273
+ const existing = findHeadingInSpec(existingSpec, heading.text);
274
+ if (existing) {
275
+ let lastRfc;
276
+ for (let i = existingSpec.history.length - 1; i >= 0; i--) {
277
+ const entry = existingSpec.history[i];
278
+ if (entry.operation !== "removed") {
279
+ lastRfc = entry.rfc;
280
+ break;
281
+ }
282
+ }
283
+ if (lastRfc && lastRfc !== rfcId) {
284
+ conflicts.push({
285
+ heading: heading.text,
286
+ existingRfc: lastRfc,
287
+ newRfc: rfcId,
288
+ resolution: "pending",
289
+ });
290
+ }
291
+ operations.push({ type: "modified", heading: heading.text, rfc: rfcId });
292
+ }
293
+ else {
294
+ operations.push({ type: "added", heading: heading.text, rfc: rfcId });
295
+ }
296
+ }
297
+ if (conflicts.length > 0) {
298
+ const result = {
299
+ command: "spec.live.merge",
300
+ domain,
301
+ operation: "modified",
302
+ deltas: operations,
303
+ conflicts,
304
+ dryRun,
305
+ };
306
+ if (outputFormat === "pretty") {
307
+ logger.error(`spec.live.merge: ${conflicts.length} conflict(s) detected — merge aborted (all-or-nothing)`);
308
+ for (const c of conflicts) {
309
+ logger.error(` conflict: heading "${c.heading}" last modified by ${c.existingRfc}, now ${c.newRfc}`);
310
+ }
311
+ }
312
+ return {
313
+ data: result,
314
+ exitCode: 1,
315
+ summary: `spec.live.merge: ${conflicts.length} conflict(s) — merge aborted`,
316
+ };
317
+ }
318
+ const updatedBody = applyDeltasToSpecBody(existingSpec.body, rfcHeadings, operations);
319
+ const updatedSpec = {
320
+ ...existingSpec,
321
+ lastMergedRfc: rfcId,
322
+ updatedAt: today,
323
+ history: [
324
+ ...existingSpec.history,
325
+ { rfc: rfcId, mergedAt: today, operation: "modified" },
326
+ ],
327
+ body: updatedBody,
328
+ };
329
+ if (!dryRun) {
330
+ await writeFileIfChanged(specFilePath, serializeLivingSpec(updatedSpec));
331
+ }
332
+ const result = {
333
+ command: "spec.live.merge",
334
+ domain,
335
+ operation: "modified",
336
+ deltas: operations,
337
+ conflicts: [],
338
+ dryRun,
339
+ };
340
+ if (outputFormat === "pretty") {
341
+ logger.success(`spec.live.merge: modified living spec for domain "${domain}" from ${rfcId} (${operations.length} deltas)${dryRun ? " [dry-run]" : ""}`);
342
+ }
343
+ return { data: result, exitCode: 0, summary: `spec.live.merge: modified ${domain} from ${rfcId}` };
344
+ }
345
+ //# sourceMappingURL=live-spec-merge.js.map