@isaacriehm/cairn-core 0.1.10 → 0.3.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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/claude/runner.d.ts +1 -1
- package/dist/claude/runner.js +62 -1
- package/dist/claude/runner.js.map +1 -1
- package/dist/claude/types.d.ts +14 -7
- package/dist/claude/types.js +5 -7
- package/dist/claude/types.js.map +1 -1
- package/dist/context/index.d.ts +4 -4
- package/dist/context/index.js +3 -4
- package/dist/context/index.js.map +1 -1
- package/dist/context/spec-delta.js +3 -4
- package/dist/context/spec-delta.js.map +1 -1
- package/dist/context/task-summary.d.ts +18 -0
- package/dist/context/task-summary.js +89 -0
- package/dist/context/task-summary.js.map +1 -0
- package/dist/decision-capture/id.d.ts +21 -4
- package/dist/decision-capture/id.js +56 -5
- package/dist/decision-capture/id.js.map +1 -1
- package/dist/decision-capture/index.d.ts +7 -22
- package/dist/decision-capture/index.js +7 -17
- package/dist/decision-capture/index.js.map +1 -1
- package/dist/doctor/index.d.ts +2 -2
- package/dist/doctor/index.js +5 -60
- package/dist/doctor/index.js.map +1 -1
- package/dist/events/index.d.ts +1 -1
- package/dist/events/index.js +1 -1
- package/dist/events/writer.d.ts +1 -1
- package/dist/events/writer.js +1 -1
- package/dist/gc/canary.d.ts +13 -23
- package/dist/gc/canary.js +36 -92
- package/dist/gc/canary.js.map +1 -1
- package/dist/gc/citation-integrity.d.ts +6 -6
- package/dist/gc/citation-integrity.js +64 -20
- package/dist/gc/citation-integrity.js.map +1 -1
- package/dist/gc/frontmatter.js +1 -1
- package/dist/gc/generator-drift.js +1 -1
- package/dist/gc/generator-drift.js.map +1 -1
- package/dist/gc/index.d.ts +2 -2
- package/dist/gc/index.js +1 -1
- package/dist/gc/index.js.map +1 -1
- package/dist/gc/quality-update.d.ts +4 -4
- package/dist/gc/quality-update.js +5 -5
- package/dist/gc/quality-update.js.map +1 -1
- package/dist/gc/types.d.ts +1 -30
- package/dist/ground/index.d.ts +2 -2
- package/dist/ground/index.js +1 -1
- package/dist/ground/index.js.map +1 -1
- package/dist/ground/ledgers.d.ts +0 -4
- package/dist/ground/ledgers.js +10 -8
- package/dist/ground/ledgers.js.map +1 -1
- package/dist/ground/manifest.js +0 -4
- package/dist/ground/manifest.js.map +1 -1
- package/dist/ground/paths.js +0 -1
- package/dist/ground/paths.js.map +1 -1
- package/dist/ground/quality-grades.js +3 -1
- package/dist/ground/quality-grades.js.map +1 -1
- package/dist/ground/schemas.d.ts +2 -7
- package/dist/ground/schemas.js +7 -2
- package/dist/ground/schemas.js.map +1 -1
- package/dist/ground/scope-index.d.ts +62 -14
- package/dist/ground/scope-index.js +215 -45
- package/dist/ground/scope-index.js.map +1 -1
- package/dist/hooks/bypass-detection.js +14 -17
- package/dist/hooks/bypass-detection.js.map +1 -1
- package/dist/hooks/defer.d.ts +50 -0
- package/dist/hooks/defer.js +87 -0
- package/dist/hooks/defer.js.map +1 -0
- package/dist/hooks/post-tool-use/citation-scanner.d.ts +7 -5
- package/dist/hooks/post-tool-use/citation-scanner.js +15 -9
- package/dist/hooks/post-tool-use/citation-scanner.js.map +1 -1
- package/dist/hooks/post-tool-use/copy-scanner.js +1 -1
- package/dist/hooks/post-tool-use/copy-scanner.js.map +1 -1
- package/dist/hooks/post-tool-use/ledger-cache.d.ts +10 -2
- package/dist/hooks/post-tool-use/ledger-cache.js +58 -4
- package/dist/hooks/post-tool-use/ledger-cache.js.map +1 -1
- package/dist/hooks/post-tool-use/legend-builder.d.ts +3 -3
- package/dist/hooks/post-tool-use/legend-builder.js +30 -8
- package/dist/hooks/post-tool-use/legend-builder.js.map +1 -1
- package/dist/hooks/post-tool-use/read-enricher.d.ts +1 -1
- package/dist/hooks/post-tool-use/read-enricher.js +68 -21
- package/dist/hooks/post-tool-use/read-enricher.js.map +1 -1
- package/dist/hooks/post-tool-use/write-guardian.js +148 -18
- package/dist/hooks/post-tool-use/write-guardian.js.map +1 -1
- package/dist/hooks/runners/index.d.ts +3 -0
- package/dist/hooks/runners/index.js +2 -0
- package/dist/hooks/runners/index.js.map +1 -1
- package/dist/hooks/runners/payload.d.ts +1 -1
- package/dist/hooks/runners/payload.js +27 -12
- package/dist/hooks/runners/payload.js.map +1 -1
- package/dist/hooks/runners/session-start.js +250 -75
- package/dist/hooks/runners/session-start.js.map +1 -1
- package/dist/hooks/runners/stop.d.ts +9 -12
- package/dist/hooks/runners/stop.js +129 -41
- package/dist/hooks/runners/stop.js.map +1 -1
- package/dist/hooks/runners/user-prompt-submit.d.ts +15 -0
- package/dist/hooks/runners/user-prompt-submit.js +149 -0
- package/dist/hooks/runners/user-prompt-submit.js.map +1 -0
- package/dist/hooks/seed-attested.d.ts +25 -0
- package/dist/hooks/seed-attested.js +84 -0
- package/dist/hooks/seed-attested.js.map +1 -0
- package/dist/hooks/user-prompt-submit.d.ts +7 -0
- package/dist/hooks/user-prompt-submit.js +12 -0
- package/dist/hooks/user-prompt-submit.js.map +1 -0
- package/dist/index.d.ts +3 -6
- package/dist/index.js +14 -12
- package/dist/index.js.map +1 -1
- package/dist/init/baseline-audit.d.ts +5 -1
- package/dist/init/baseline-audit.js +25 -2
- package/dist/init/baseline-audit.js.map +1 -1
- package/dist/init/glob-inference.d.ts +16 -0
- package/dist/init/glob-inference.js +108 -0
- package/dist/init/glob-inference.js.map +1 -0
- package/dist/init/index.d.ts +4 -0
- package/dist/init/index.js +2 -0
- package/dist/init/index.js.map +1 -1
- package/dist/init/ingest-docs.d.ts +1 -1
- package/dist/init/ingest-docs.js +19 -6
- package/dist/init/ingest-docs.js.map +1 -1
- package/dist/init/init.js +17 -94
- package/dist/init/init.js.map +1 -1
- package/dist/init/mapper-merge.d.ts +8 -2
- package/dist/init/mapper-merge.js +50 -32
- package/dist/init/mapper-merge.js.map +1 -1
- package/dist/init/mapper-parallel.d.ts +2 -3
- package/dist/init/mapper-parallel.js +9 -38
- package/dist/init/mapper-parallel.js.map +1 -1
- package/dist/init/mapper-prompts.js +1 -1
- package/dist/init/mapper-prompts.js.map +1 -1
- package/dist/init/mapper.d.ts +7 -128
- package/dist/init/mapper.js +30 -7
- package/dist/init/mapper.js.map +1 -1
- package/dist/init/module-slicer.d.ts +1 -1
- package/dist/init/module-slicer.js +1 -1
- package/dist/init/multi-dev/install.d.ts +9 -10
- package/dist/init/multi-dev/install.js +15 -84
- package/dist/init/multi-dev/install.js.map +1 -1
- package/dist/init/overlay.d.ts +14 -0
- package/dist/init/overlay.js +65 -0
- package/dist/init/overlay.js.map +1 -0
- package/dist/init/phases/1-detect.d.ts +10 -0
- package/dist/init/phases/1-detect.js +36 -0
- package/dist/init/phases/1-detect.js.map +1 -0
- package/dist/init/phases/10-strip.d.ts +11 -0
- package/dist/init/phases/10-strip.js +79 -0
- package/dist/init/phases/10-strip.js.map +1 -0
- package/dist/init/phases/12-multidev.d.ts +6 -0
- package/dist/init/phases/12-multidev.js +34 -0
- package/dist/init/phases/12-multidev.js.map +1 -0
- package/dist/init/phases/2-walker.d.ts +8 -0
- package/dist/init/phases/2-walker.js +34 -0
- package/dist/init/phases/2-walker.js.map +1 -0
- package/dist/init/phases/3-mapper.d.ts +14 -0
- package/dist/init/phases/3-mapper.js +56 -0
- package/dist/init/phases/3-mapper.js.map +1 -0
- package/dist/init/phases/3b-seed.d.ts +18 -0
- package/dist/init/phases/3b-seed.js +140 -0
- package/dist/init/phases/3b-seed.js.map +1 -0
- package/dist/init/phases/4-pilot.d.ts +10 -0
- package/dist/init/phases/4-pilot.js +108 -0
- package/dist/init/phases/4-pilot.js.map +1 -0
- package/dist/init/phases/5-brand.d.ts +10 -0
- package/dist/init/phases/5-brand.js +66 -0
- package/dist/init/phases/5-brand.js.map +1 -0
- package/dist/init/phases/6-docs-ingest.d.ts +11 -0
- package/dist/init/phases/6-docs-ingest.js +39 -0
- package/dist/init/phases/6-docs-ingest.js.map +1 -0
- package/dist/init/phases/7b-source-comments.d.ts +6 -0
- package/dist/init/phases/7b-source-comments.js +34 -0
- package/dist/init/phases/7b-source-comments.js.map +1 -0
- package/dist/init/phases/7c-rules-merge.d.ts +6 -0
- package/dist/init/phases/7c-rules-merge.js +34 -0
- package/dist/init/phases/7c-rules-merge.js.map +1 -0
- package/dist/init/phases/8-baseline.d.ts +10 -0
- package/dist/init/phases/8-baseline.js +52 -0
- package/dist/init/phases/8-baseline.js.map +1 -0
- package/dist/init/phases/index.d.ts +15 -0
- package/dist/init/phases/index.js +16 -0
- package/dist/init/phases/index.js.map +1 -0
- package/dist/init/phases/orchestrator.d.ts +49 -0
- package/dist/init/phases/orchestrator.js +85 -0
- package/dist/init/phases/orchestrator.js.map +1 -0
- package/dist/init/phases/state-io.d.ts +19 -0
- package/dist/init/phases/state-io.js +73 -0
- package/dist/init/phases/state-io.js.map +1 -0
- package/dist/init/phases/types.d.ts +93 -0
- package/dist/init/phases/types.js +30 -0
- package/dist/init/phases/types.js.map +1 -0
- package/dist/init/prompts.d.ts +6 -8
- package/dist/init/prompts.js +3 -6
- package/dist/init/prompts.js.map +1 -1
- package/dist/init/rules-merge/ingest.js +1 -1
- package/dist/init/seed.js +11 -2
- package/dist/init/seed.js.map +1 -1
- package/dist/init/source-comments/classify.d.ts +1 -41
- package/dist/init/source-comments/classify.js +68 -37
- package/dist/init/source-comments/classify.js.map +1 -1
- package/dist/init/source-comments/index.d.ts +2 -2
- package/dist/init/source-comments/index.js +2 -2
- package/dist/init/source-comments/index.js.map +1 -1
- package/dist/init/source-comments/ingest.d.ts +38 -2
- package/dist/init/source-comments/ingest.js +237 -4
- package/dist/init/source-comments/ingest.js.map +1 -1
- package/dist/init/source-comments/strip-replace.d.ts +10 -19
- package/dist/init/source-comments/strip-replace.js +26 -2
- package/dist/init/source-comments/strip-replace.js.map +1 -1
- package/dist/init/source-comments/walker.d.ts +9 -2
- package/dist/init/source-comments/walker.js +38 -19
- package/dist/init/source-comments/walker.js.map +1 -1
- package/dist/init/submodules.d.ts +3 -2
- package/dist/init/types.d.ts +3 -5
- package/dist/init/types.js +3 -5
- package/dist/init/types.js.map +1 -1
- package/dist/init/visual.d.ts +4 -9
- package/dist/init/visual.js +1 -16
- package/dist/init/visual.js.map +1 -1
- package/dist/init/walker.d.ts +0 -6
- package/dist/init/walker.js +2 -3
- package/dist/init/walker.js.map +1 -1
- package/dist/join/index.js +49 -2
- package/dist/join/index.js.map +1 -1
- package/dist/logger.d.ts +1 -2
- package/dist/logger.js +5 -6
- package/dist/logger.js.map +1 -1
- package/dist/mcp/context.d.ts +2 -3
- package/dist/mcp/context.js.map +1 -1
- package/dist/mcp/errors.d.ts +1 -1
- package/dist/mcp/errors.js.map +1 -1
- package/dist/mcp/history/prompt.d.ts +2 -1
- package/dist/mcp/history/walker.js +1 -1
- package/dist/mcp/history/walker.js.map +1 -1
- package/dist/mcp/path-allowlist.d.ts +0 -6
- package/dist/mcp/path-allowlist.js +0 -10
- package/dist/mcp/path-allowlist.js.map +1 -1
- package/dist/mcp/schemas.d.ts +34 -72
- package/dist/mcp/schemas.js +40 -70
- package/dist/mcp/schemas.js.map +1 -1
- package/dist/mcp/serve.d.ts +1 -1
- package/dist/mcp/serve.js +2 -5
- package/dist/mcp/serve.js.map +1 -1
- package/dist/mcp/server.js +10 -4
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/telemetry.d.ts +8 -1
- package/dist/mcp/telemetry.js +16 -0
- package/dist/mcp/telemetry.js.map +1 -1
- package/dist/mcp/tools/decision-get.js +37 -29
- package/dist/mcp/tools/decision-get.js.map +1 -1
- package/dist/mcp/tools/decisions-in-scope.js +22 -3
- package/dist/mcp/tools/decisions-in-scope.js.map +1 -1
- package/dist/mcp/tools/ground-get.js +2 -2
- package/dist/mcp/tools/ground-get.js.map +1 -1
- package/dist/mcp/tools/index.js +6 -2
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/init-phases.d.ts +24 -0
- package/dist/mcp/tools/init-phases.js +140 -0
- package/dist/mcp/tools/init-phases.js.map +1 -0
- package/dist/mcp/tools/invariant-get.js +1 -1
- package/dist/mcp/tools/invariant-get.js.map +1 -1
- package/dist/mcp/tools/invariants-in-scope.js +26 -7
- package/dist/mcp/tools/invariants-in-scope.js.map +1 -1
- package/dist/mcp/tools/query-history.js +3 -3
- package/dist/mcp/tools/query-history.js.map +1 -1
- package/dist/mcp/tools/resolve-attention.d.ts +6 -4
- package/dist/mcp/tools/resolve-attention.js +253 -24
- package/dist/mcp/tools/resolve-attention.js.map +1 -1
- package/dist/mcp/tools/search.js +3 -4
- package/dist/mcp/tools/search.js.map +1 -1
- package/dist/mcp/tools/task-create.d.ts +15 -0
- package/dist/mcp/tools/task-create.js +96 -0
- package/dist/mcp/tools/task-create.js.map +1 -0
- package/dist/mcp/tools/timeline.js +3 -7
- package/dist/mcp/tools/timeline.js.map +1 -1
- package/dist/profiles/types.d.ts +2 -2
- package/dist/profiles/types.js +1 -1
- package/dist/sensors/catalog.js +8 -3
- package/dist/sensors/catalog.js.map +1 -1
- package/dist/session/id.d.ts +1 -3
- package/dist/session/id.js +1 -1
- package/dist/session/id.js.map +1 -1
- package/dist/session-start/build.d.ts +7 -11
- package/dist/session-start/build.js +62 -34
- package/dist/session-start/build.js.map +1 -1
- package/dist/session-start/index.d.ts +2 -2
- package/dist/session-start/index.js +2 -2
- package/dist/session-start/index.js.map +1 -1
- package/dist/session-start/templates.d.ts +20 -4
- package/dist/session-start/templates.js +45 -35
- package/dist/session-start/templates.js.map +1 -1
- package/dist/status-line/format.d.ts +20 -9
- package/dist/status-line/format.js +45 -35
- package/dist/status-line/format.js.map +1 -1
- package/dist/status-line/index.d.ts +3 -4
- package/dist/status-line/index.js +1 -1
- package/dist/status-line/index.js.map +1 -1
- package/dist/status-line/reader.d.ts +9 -6
- package/dist/status-line/reader.js +50 -18
- package/dist/status-line/reader.js.map +1 -1
- package/dist/status-line/writer.d.ts +6 -9
- package/dist/status-line/writer.js +10 -12
- package/dist/status-line/writer.js.map +1 -1
- package/dist/trace/index.d.ts +44 -0
- package/dist/trace/index.js +51 -0
- package/dist/trace/index.js.map +1 -0
- package/package.json +2 -3
- package/templates/.archive/README.md +3 -3
- package/templates/.cairn/JOIN.md +3 -9
- package/templates/.cairn/config/sensors.yaml +16 -19
- package/templates/.cairn/config/stub-patterns.yaml +4 -4
- package/templates/.cairn/config/trust-policy.yaml +3 -35
- package/templates/.cairn/config/workflow.md +13 -194
- package/templates/.cairn/git-hooks/commit-msg +15 -4
- package/templates/.cairn/git-hooks/pre-commit +22 -13
- package/templates/.cairn/ground/canonical-map/topics.yaml +3 -26
- package/templates/.cairn/ground/capabilities/snippets.yaml +0 -1
- package/templates/.cairn/ground/manifest.yaml +5 -8
- package/templates/.cairn/ground/product/personas.yaml +0 -1
- package/dist/context/checkpoint.d.ts +0 -10
- package/dist/context/checkpoint.js +0 -29
- package/dist/context/checkpoint.js.map +0 -1
- package/dist/decision-capture/capture.d.ts +0 -57
- package/dist/decision-capture/capture.js +0 -186
- package/dist/decision-capture/capture.js.map +0 -1
- package/dist/decision-capture/extractor.d.ts +0 -20
- package/dist/decision-capture/extractor.js +0 -103
- package/dist/decision-capture/extractor.js.map +0 -1
- package/dist/decision-capture/prompt.d.ts +0 -15
- package/dist/decision-capture/prompt.js +0 -68
- package/dist/decision-capture/prompt.js.map +0 -1
- package/dist/decision-capture/refinement-prompt.d.ts +0 -25
- package/dist/decision-capture/refinement-prompt.js +0 -146
- package/dist/decision-capture/refinement-prompt.js.map +0 -1
- package/dist/decision-capture/refinement-schema.d.ts +0 -52
- package/dist/decision-capture/refinement-schema.js +0 -61
- package/dist/decision-capture/refinement-schema.js.map +0 -1
- package/dist/decision-capture/refinement.d.ts +0 -60
- package/dist/decision-capture/refinement.js +0 -439
- package/dist/decision-capture/refinement.js.map +0 -1
- package/dist/decision-capture/schema.d.ts +0 -70
- package/dist/decision-capture/schema.js +0 -71
- package/dist/decision-capture/schema.js.map +0 -1
- package/dist/decision-capture/types.d.ts +0 -201
- package/dist/decision-capture/types.js +0 -20
- package/dist/decision-capture/types.js.map +0 -1
- package/dist/decision-capture/writer.d.ts +0 -90
- package/dist/decision-capture/writer.js +0 -267
- package/dist/decision-capture/writer.js.map +0 -1
- package/dist/frontend-types.d.ts +0 -243
- package/dist/frontend-types.js +0 -15
- package/dist/frontend-types.js.map +0 -1
- package/dist/hooks/index.d.ts +0 -12
- package/dist/hooks/index.js +0 -13
- package/dist/hooks/index.js.map +0 -1
- package/dist/inbox.d.ts +0 -17
- package/dist/inbox.js +0 -30
- package/dist/inbox.js.map +0 -1
- package/dist/mcp/tools/append-run-note.d.ts +0 -18
- package/dist/mcp/tools/append-run-note.js +0 -47
- package/dist/mcp/tools/append-run-note.js.map +0 -1
- package/dist/mcp/tools/append.d.ts +0 -8
- package/dist/mcp/tools/append.js +0 -37
- package/dist/mcp/tools/append.js.map +0 -1
- package/dist/mcp/tools/ask-operator.d.ts +0 -34
- package/dist/mcp/tools/ask-operator.js +0 -97
- package/dist/mcp/tools/ask-operator.js.map +0 -1
- package/dist/mcp/tools/drop-task.d.ts +0 -12
- package/dist/mcp/tools/drop-task.js +0 -68
- package/dist/mcp/tools/drop-task.js.map +0 -1
- package/dist/mcp/tools/record-run-event.d.ts +0 -10
- package/dist/mcp/tools/record-run-event.js +0 -32
- package/dist/mcp/tools/record-run-event.js.map +0 -1
- package/dist/prompt.d.ts +0 -19
- package/dist/prompt.js +0 -50
- package/dist/prompt.js.map +0 -1
- package/dist/tier0/classify.d.ts +0 -10
- package/dist/tier0/classify.js +0 -110
- package/dist/tier0/classify.js.map +0 -1
- package/dist/tier0/index.d.ts +0 -2
- package/dist/tier0/index.js +0 -2
- package/dist/tier0/index.js.map +0 -1
- package/dist/tier0/types.d.ts +0 -24
- package/dist/tier0/types.js +0 -9
- package/dist/tier0/types.js.map +0 -1
- package/dist/tightener/index.d.ts +0 -4
- package/dist/tightener/index.js +0 -4
- package/dist/tightener/index.js.map +0 -1
- package/dist/tightener/prompt.d.ts +0 -3
- package/dist/tightener/prompt.js +0 -67
- package/dist/tightener/prompt.js.map +0 -1
- package/dist/tightener/schema.d.ts +0 -68
- package/dist/tightener/schema.js +0 -44
- package/dist/tightener/schema.js.map +0 -1
- package/dist/tightener/tighten.d.ts +0 -2
- package/dist/tightener/tighten.js +0 -66
- package/dist/tightener/tighten.js.map +0 -1
- package/dist/tightener/types.d.ts +0 -74
- package/dist/tightener/types.js +0 -6
- package/dist/tightener/types.js.map +0 -1
- package/templates/.claude/settings.json +0 -57
- package/templates/.mcp.json +0 -8
- package/templates/README.md +0 -24
package/dist/doctor/index.d.ts
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
* Returns a structured `DoctorReport` the CLI renders. Exit-code mapping:
|
|
6
6
|
* 0 — all checks pass
|
|
7
7
|
* 1 — at least one error (missing core file, broken layout)
|
|
8
|
-
* 2 — at least one warning (drafty brand, empty scope,
|
|
8
|
+
* 2 — at least one warning (drafty brand, empty scope, GC overdue, …)
|
|
9
9
|
*
|
|
10
|
-
* Spec:
|
|
10
|
+
* Spec: docs/PLUGIN_ARCHITECTURE.md §6 (adoption output).
|
|
11
11
|
*/
|
|
12
12
|
export type DoctorStatus = "ok" | "warn" | "error" | "info";
|
|
13
13
|
export interface DoctorCheck {
|
package/dist/doctor/index.js
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
* Returns a structured `DoctorReport` the CLI renders. Exit-code mapping:
|
|
6
6
|
* 0 — all checks pass
|
|
7
7
|
* 1 — at least one error (missing core file, broken layout)
|
|
8
|
-
* 2 — at least one warning (drafty brand, empty scope,
|
|
8
|
+
* 2 — at least one warning (drafty brand, empty scope, GC overdue, …)
|
|
9
9
|
*
|
|
10
|
-
* Spec:
|
|
10
|
+
* Spec: docs/PLUGIN_ARCHITECTURE.md §6 (adoption output).
|
|
11
11
|
*/
|
|
12
12
|
import { existsSync, readdirSync, readFileSync, statSync, } from "node:fs";
|
|
13
13
|
import { basename, delimiter, join, resolve as resolvePath } from "node:path";
|
|
@@ -19,9 +19,11 @@ export function runDoctor(opts) {
|
|
|
19
19
|
const projectName = normalizeProjectName(basename(repoRoot));
|
|
20
20
|
const checks = [];
|
|
21
21
|
// ── Core checks ────────────────────────────────────────────────────
|
|
22
|
+
// .claude/settings.json hooks are no longer written into adopted
|
|
23
|
+
// projects — the Claude Code plugin owns hooks via its own
|
|
24
|
+
// hooks/hooks.json, so a check here would always fire false negatives.
|
|
22
25
|
checks.push(checkCairnLayout(repoRoot));
|
|
23
26
|
checks.push(checkMcpRegistration(repoRoot));
|
|
24
|
-
checks.push(checkClaudeHooks(repoRoot));
|
|
25
27
|
// ── Ground state checks ────────────────────────────────────────────
|
|
26
28
|
checks.push(checkDecisions(repoRoot));
|
|
27
29
|
checks.push(checkBrandOverview(repoRoot));
|
|
@@ -133,63 +135,6 @@ function checkMcpRegistration(repoRoot) {
|
|
|
133
135
|
detail: "cairn MCP server registered",
|
|
134
136
|
};
|
|
135
137
|
}
|
|
136
|
-
function checkClaudeHooks(repoRoot) {
|
|
137
|
-
const path = join(repoRoot, ".claude", "settings.json");
|
|
138
|
-
if (!existsSync(path)) {
|
|
139
|
-
return {
|
|
140
|
-
group: "core",
|
|
141
|
-
label: ".claude/",
|
|
142
|
-
status: "error",
|
|
143
|
-
detail: "missing settings.json — re-run cairn init",
|
|
144
|
-
fixCommand: "cairn init --force",
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
let parsed;
|
|
148
|
-
try {
|
|
149
|
-
parsed = JSON.parse(readFileSync(path, "utf8"));
|
|
150
|
-
}
|
|
151
|
-
catch {
|
|
152
|
-
return {
|
|
153
|
-
group: "core",
|
|
154
|
-
label: ".claude/",
|
|
155
|
-
status: "error",
|
|
156
|
-
detail: "settings.json unreadable",
|
|
157
|
-
fixCommand: "cairn init --force",
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
const hooks = parsed["hooks"];
|
|
161
|
-
if (typeof hooks !== "object" || hooks === null) {
|
|
162
|
-
return {
|
|
163
|
-
group: "core",
|
|
164
|
-
label: ".claude/",
|
|
165
|
-
status: "warn",
|
|
166
|
-
detail: "no hooks block — re-run cairn init",
|
|
167
|
-
fixCommand: "cairn init --force",
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
const labels = [];
|
|
171
|
-
if (Array.isArray(hooks["SessionStart"])) {
|
|
172
|
-
labels.push("SessionStart");
|
|
173
|
-
}
|
|
174
|
-
if (Array.isArray(hooks["PostToolUse"])) {
|
|
175
|
-
labels.push("PostToolUse");
|
|
176
|
-
}
|
|
177
|
-
if (labels.length === 0) {
|
|
178
|
-
return {
|
|
179
|
-
group: "core",
|
|
180
|
-
label: ".claude/",
|
|
181
|
-
status: "warn",
|
|
182
|
-
detail: "no SessionStart / PostToolUse entries",
|
|
183
|
-
fixCommand: "cairn init --force",
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
|
-
return {
|
|
187
|
-
group: "core",
|
|
188
|
-
label: ".claude/",
|
|
189
|
-
status: "ok",
|
|
190
|
-
detail: `${labels.join(" + ")} registered`,
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
138
|
// ── Ground state checks ──────────────────────────────────────────────
|
|
194
139
|
function checkDecisions(repoRoot) {
|
|
195
140
|
let accepted = 0;
|
package/dist/doctor/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/doctor/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/doctor/index.ts"],"names":[],"mappings":"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"}
|
package/dist/events/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Locked write tools emit events after their write completes. Plugin
|
|
5
5
|
* Stop hooks in other live sessions poll this directory and surface an
|
|
6
|
-
* inline A/B/C if an event touches a DEC/§
|
|
6
|
+
* inline A/B/C if an event touches a DEC/§INV/path the reader has in
|
|
7
7
|
* scope. 7-day retention via `gcStaleEvents`.
|
|
8
8
|
*
|
|
9
9
|
* Spec: PLUGIN_ARCHITECTURE §7 (three-layer conflict catch, layer 2).
|
package/dist/events/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Locked write tools emit events after their write completes. Plugin
|
|
5
5
|
* Stop hooks in other live sessions poll this directory and surface an
|
|
6
|
-
* inline A/B/C if an event touches a DEC/§
|
|
6
|
+
* inline A/B/C if an event touches a DEC/§INV/path the reader has in
|
|
7
7
|
* scope. 7-day retention via `gcStaleEvents`.
|
|
8
8
|
*
|
|
9
9
|
* Spec: PLUGIN_ARCHITECTURE §7 (three-layer conflict catch, layer 2).
|
package/dist/events/writer.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* every locked write to global state emits a small JSON file under
|
|
6
6
|
* `.cairn/events/`. Plugin Stop hooks in other live sessions poll
|
|
7
7
|
* that directory and surface an inline A/B/C if the event touches a
|
|
8
|
-
* DEC/§
|
|
8
|
+
* DEC/§INV they have in scope.
|
|
9
9
|
*
|
|
10
10
|
* Files: `.cairn/events/<msTs>-<kind>.json` — sortable by name. ts
|
|
11
11
|
* collisions resolved with a short crypto suffix.
|
package/dist/events/writer.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* every locked write to global state emits a small JSON file under
|
|
6
6
|
* `.cairn/events/`. Plugin Stop hooks in other live sessions poll
|
|
7
7
|
* that directory and surface an inline A/B/C if the event touches a
|
|
8
|
-
* DEC/§
|
|
8
|
+
* DEC/§INV they have in scope.
|
|
9
9
|
*
|
|
10
10
|
* Files: `.cairn/events/<msTs>-<kind>.json` — sortable by name. ts
|
|
11
11
|
* collisions resolved with a short crypto suffix.
|
package/dist/gc/canary.d.ts
CHANGED
|
@@ -1,42 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Batch canary — verifies a multi-commit GC batch hasn't broken
|
|
3
|
-
*
|
|
4
|
-
* collectively broken."
|
|
2
|
+
* Batch canary — verifies a multi-commit GC batch hasn't broken ground state
|
|
3
|
+
* in ways that show only when the commits are taken together.
|
|
5
4
|
*
|
|
6
5
|
* Two checks run after the batch lands locally and BEFORE any push:
|
|
7
6
|
*
|
|
8
|
-
* 1.
|
|
9
|
-
* The orchestrator injects this template on every run; if a GC batch
|
|
10
|
-
* removed a placeholder section, broke a `{{var}}` token, or left
|
|
11
|
-
* orphaned `{{#each}}` blocks, the next live run would silently produce
|
|
12
|
-
* a malformed prompt. Render the template against a known-good fixture
|
|
13
|
-
* and assert (a) every `{{...}}` resolves and (b) the expected section
|
|
14
|
-
* headers (`## Task`, `## Acceptance criteria`, `## Decisions in scope`,
|
|
15
|
-
* `## Sensors that will run`) survive.
|
|
16
|
-
*
|
|
17
|
-
* 2. Manifest rebuild + ground-zone consistency.
|
|
7
|
+
* 1. Manifest rebuild + ground-zone consistency.
|
|
18
8
|
* Re-run `buildManifest` against the post-batch tree. If it throws or
|
|
19
9
|
* produces zero entries (the canonical zone went empty), the batch
|
|
20
10
|
* broke ground.
|
|
21
11
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
12
|
+
* 2. workflow.md sanity — file exists, is readable, has parseable YAML
|
|
13
|
+
* frontmatter (the project-extension block that `sensors/runner.ts`
|
|
14
|
+
* reads via Object.keys). Catches a GC batch that mangled the
|
|
15
|
+
* frontmatter or removed the file entirely.
|
|
16
|
+
*
|
|
17
|
+
* Both checks are pure-mechanical — no LLM burn — and run in milliseconds.
|
|
18
|
+
*
|
|
19
|
+
* The earlier prompt-template re-render check was retired with the
|
|
20
|
+
* orchestrator (the workflow.md body no longer carries Liquid-style
|
|
21
|
+
* tokens; cairn-direction writes spec.tightened.md per task instead).
|
|
26
22
|
*/
|
|
27
|
-
import type { CanarySyntheticContext } from "./types.js";
|
|
28
23
|
export interface BatchCanaryResult {
|
|
29
24
|
ok: boolean;
|
|
30
25
|
failures: string[];
|
|
31
26
|
/** Number of files in the rebuilt manifest. */
|
|
32
27
|
manifest_files: number;
|
|
33
|
-
/** Length of the rendered workflow.md template. */
|
|
34
|
-
rendered_length: number;
|
|
35
28
|
}
|
|
36
29
|
export interface BatchCanaryOptions {
|
|
37
30
|
repoRoot: string;
|
|
38
|
-
/** Override the synthetic context. Defaults to a minimal fixture. */
|
|
39
|
-
syntheticContext?: CanarySyntheticContext;
|
|
40
31
|
}
|
|
41
|
-
export declare function buildSyntheticContext(): CanarySyntheticContext;
|
|
42
32
|
export declare function verifyBatchCanary(opts: BatchCanaryOptions): BatchCanaryResult;
|
package/dist/gc/canary.js
CHANGED
|
@@ -1,101 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Batch canary — verifies a multi-commit GC batch hasn't broken
|
|
3
|
-
*
|
|
4
|
-
* collectively broken."
|
|
2
|
+
* Batch canary — verifies a multi-commit GC batch hasn't broken ground state
|
|
3
|
+
* in ways that show only when the commits are taken together.
|
|
5
4
|
*
|
|
6
5
|
* Two checks run after the batch lands locally and BEFORE any push:
|
|
7
6
|
*
|
|
8
|
-
* 1.
|
|
9
|
-
* The orchestrator injects this template on every run; if a GC batch
|
|
10
|
-
* removed a placeholder section, broke a `{{var}}` token, or left
|
|
11
|
-
* orphaned `{{#each}}` blocks, the next live run would silently produce
|
|
12
|
-
* a malformed prompt. Render the template against a known-good fixture
|
|
13
|
-
* and assert (a) every `{{...}}` resolves and (b) the expected section
|
|
14
|
-
* headers (`## Task`, `## Acceptance criteria`, `## Decisions in scope`,
|
|
15
|
-
* `## Sensors that will run`) survive.
|
|
16
|
-
*
|
|
17
|
-
* 2. Manifest rebuild + ground-zone consistency.
|
|
7
|
+
* 1. Manifest rebuild + ground-zone consistency.
|
|
18
8
|
* Re-run `buildManifest` against the post-batch tree. If it throws or
|
|
19
9
|
* produces zero entries (the canonical zone went empty), the batch
|
|
20
10
|
* broke ground.
|
|
21
11
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
12
|
+
* 2. workflow.md sanity — file exists, is readable, has parseable YAML
|
|
13
|
+
* frontmatter (the project-extension block that `sensors/runner.ts`
|
|
14
|
+
* reads via Object.keys). Catches a GC batch that mangled the
|
|
15
|
+
* frontmatter or removed the file entirely.
|
|
16
|
+
*
|
|
17
|
+
* Both checks are pure-mechanical — no LLM burn — and run in milliseconds.
|
|
18
|
+
*
|
|
19
|
+
* The earlier prompt-template re-render check was retired with the
|
|
20
|
+
* orchestrator (the workflow.md body no longer carries Liquid-style
|
|
21
|
+
* tokens; cairn-direction writes spec.tightened.md per task instead).
|
|
26
22
|
*/
|
|
27
23
|
import { existsSync, readFileSync } from "node:fs";
|
|
28
24
|
import { join } from "node:path";
|
|
25
|
+
import { parse as parseYaml } from "yaml";
|
|
29
26
|
import { buildManifest } from "../ground/manifest.js";
|
|
30
|
-
import { loadWorkflowTemplate, renderTemplate } from "../prompt.js";
|
|
31
|
-
const REQUIRED_SECTION_HEADINGS = [
|
|
32
|
-
"## Task",
|
|
33
|
-
"## Acceptance criteria",
|
|
34
|
-
"## Decisions in scope",
|
|
35
|
-
"## Off-limits paths",
|
|
36
|
-
"## Sensors that will run",
|
|
37
|
-
];
|
|
38
|
-
const UNRESOLVED_TOKEN_RE = /\{\{[^}]*\}\}/;
|
|
39
|
-
export function buildSyntheticContext() {
|
|
40
|
-
return {
|
|
41
|
-
agent_role: "implementer",
|
|
42
|
-
project_name: "canary",
|
|
43
|
-
run_id: "canary-run",
|
|
44
|
-
mirror_path: "/tmp/canary-mirror",
|
|
45
|
-
sha_pin: "0000000000000000000000000000000000000000",
|
|
46
|
-
tightened_spec_body: "Canary fixture body — non-empty.",
|
|
47
|
-
acceptance_criteria: ["Renders workflow.md without unresolved tokens."],
|
|
48
|
-
in_scope_decisions: [
|
|
49
|
-
{ id: "D-CANARY-1", title: "Canary decision", scope_summary: "fixture" },
|
|
50
|
-
],
|
|
51
|
-
in_scope_invariants: [{ id: "V-CANARY-1", title: "Canary invariant" }],
|
|
52
|
-
off_limits: [".git/**", ".archive/**"],
|
|
53
|
-
scoped_sensors: [
|
|
54
|
-
{ id: "stub-pattern-catalog", description: "Layer A stub catalog" },
|
|
55
|
-
{ id: "attestation-cross-check", description: "Layer B attestation cross-check" },
|
|
56
|
-
],
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
27
|
export function verifyBatchCanary(opts) {
|
|
60
28
|
const failures = [];
|
|
61
|
-
|
|
62
|
-
// 1. Workflow template re-render.
|
|
63
|
-
let template = "";
|
|
64
|
-
let rendered = "";
|
|
65
|
-
try {
|
|
66
|
-
template = loadWorkflowTemplate(opts.repoRoot);
|
|
67
|
-
}
|
|
68
|
-
catch (err) {
|
|
69
|
-
failures.push(`workflow.md template missing or unreadable: ${err.message}`);
|
|
70
|
-
}
|
|
71
|
-
if (template.length === 0) {
|
|
72
|
-
failures.push("workflow.md template is empty after frontmatter strip");
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
rendered = renderTemplate(template, {
|
|
76
|
-
agent_role: ctx.agent_role,
|
|
77
|
-
project_name: ctx.project_name,
|
|
78
|
-
run_id: ctx.run_id,
|
|
79
|
-
mirror_path: ctx.mirror_path,
|
|
80
|
-
sha_pin: ctx.sha_pin,
|
|
81
|
-
tightened_spec_body: ctx.tightened_spec_body,
|
|
82
|
-
acceptance_criteria: ctx.acceptance_criteria,
|
|
83
|
-
in_scope_decisions: ctx.in_scope_decisions,
|
|
84
|
-
in_scope_invariants: ctx.in_scope_invariants,
|
|
85
|
-
off_limits: ctx.off_limits,
|
|
86
|
-
scoped_sensors: ctx.scoped_sensors,
|
|
87
|
-
});
|
|
88
|
-
if (UNRESOLVED_TOKEN_RE.test(rendered)) {
|
|
89
|
-
const m = rendered.match(UNRESOLVED_TOKEN_RE);
|
|
90
|
-
failures.push(`workflow.md rendered prompt contains unresolved token: ${m?.[0] ?? "<unknown>"}`);
|
|
91
|
-
}
|
|
92
|
-
for (const heading of REQUIRED_SECTION_HEADINGS) {
|
|
93
|
-
if (!rendered.includes(heading)) {
|
|
94
|
-
failures.push(`workflow.md rendered prompt missing section: \`${heading}\``);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
// 2. Manifest rebuild (canonical-zone integrity).
|
|
29
|
+
// 1. Manifest rebuild (canonical-zone integrity).
|
|
99
30
|
let manifestFiles = 0;
|
|
100
31
|
try {
|
|
101
32
|
const manifest = buildManifest({ repoRoot: opts.repoRoot, generator: "gc.canary" });
|
|
@@ -107,28 +38,41 @@ export function verifyBatchCanary(opts) {
|
|
|
107
38
|
catch (err) {
|
|
108
39
|
failures.push(`manifest rebuild threw: ${err.message}`);
|
|
109
40
|
}
|
|
110
|
-
//
|
|
111
|
-
// already throws when missing, but a missing template yields the more
|
|
112
|
-
// detailed failure above; this check ensures the path itself is right).
|
|
41
|
+
// 2. workflow.md sanity — file present, readable, frontmatter parseable.
|
|
113
42
|
const workflowPath = join(opts.repoRoot, ".cairn", "config", "workflow.md");
|
|
114
43
|
if (!existsSync(workflowPath)) {
|
|
115
|
-
failures.push(
|
|
44
|
+
failures.push("workflow.md not found at .cairn/config/workflow.md");
|
|
116
45
|
}
|
|
117
46
|
else {
|
|
118
|
-
|
|
119
|
-
// wrote invalid utf-8 etc).
|
|
47
|
+
let body = "";
|
|
120
48
|
try {
|
|
121
|
-
readFileSync(workflowPath, "utf8");
|
|
49
|
+
body = readFileSync(workflowPath, "utf8");
|
|
122
50
|
}
|
|
123
51
|
catch (err) {
|
|
124
52
|
failures.push(`workflow.md unreadable post-batch: ${err.message}`);
|
|
125
53
|
}
|
|
54
|
+
if (body.length > 0) {
|
|
55
|
+
const fmMatch = body.match(/^---\n([\s\S]*?)\n---/);
|
|
56
|
+
if (fmMatch === null) {
|
|
57
|
+
failures.push("workflow.md missing YAML frontmatter delimiters");
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
try {
|
|
61
|
+
const fm = parseYaml(fmMatch[1] ?? "");
|
|
62
|
+
if (typeof fm !== "object" || fm === null) {
|
|
63
|
+
failures.push("workflow.md frontmatter parses to non-object");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
failures.push(`workflow.md frontmatter parse failed: ${err.message}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
126
71
|
}
|
|
127
72
|
return {
|
|
128
73
|
ok: failures.length === 0,
|
|
129
74
|
failures,
|
|
130
75
|
manifest_files: manifestFiles,
|
|
131
|
-
rendered_length: rendered.length,
|
|
132
76
|
};
|
|
133
77
|
}
|
|
134
78
|
//# sourceMappingURL=canary.js.map
|
package/dist/gc/canary.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canary.js","sourceRoot":"","sources":["../../src/gc/canary.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"canary.js","sourceRoot":"","sources":["../../src/gc/canary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAatD,MAAM,UAAU,iBAAiB,CAAC,IAAwB;IACxD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,kDAAkD;IAClD,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;QACpF,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QACtC,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC,2BAA4B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,yEAAyE;IACzE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC5E,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,CAAC;YACH,IAAI,GAAG,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,sCAAuC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACpD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,QAAQ,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC;oBACH,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBACvC,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;wBAC1C,QAAQ,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;oBAChE,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,QAAQ,CAAC,IAAI,CAAC,yCAA0C,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;QACzB,QAAQ;QACR,cAAc,EAAE,aAAa;KAC9B,CAAC;AACJ,CAAC"}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* GC pass — citation integrity.
|
|
3
3
|
*
|
|
4
4
|
* Walks every source file in the repo and scans for cairn citations
|
|
5
|
-
* (§
|
|
6
|
-
*
|
|
7
|
-
* - §
|
|
8
|
-
*
|
|
9
|
-
* - DEC-<N>
|
|
10
|
-
*
|
|
5
|
+
* (§INV invariants, §DEC decisions, TODO(TSK-...) linked todos). Each
|
|
6
|
+
* citation is resolved against the appropriate source of truth:
|
|
7
|
+
* - §INV-NNNN → invariants.ledger.yaml. Missing → orphaned. superseded_by
|
|
8
|
+
* set → superseded citation.
|
|
9
|
+
* - §DEC-<N> → decisions.ledger.yaml. Missing → orphaned. status:
|
|
10
|
+
* superseded / archived → superseded citation.
|
|
11
11
|
* - TODO(TSK-<id>) → tasks/{active,done}/<id>/. Missing → orphan; "done"
|
|
12
12
|
* isn't a finding (TODO will be removed when the agent
|
|
13
13
|
* gets to it; flagging is noisy).
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* GC pass — citation integrity.
|
|
3
3
|
*
|
|
4
4
|
* Walks every source file in the repo and scans for cairn citations
|
|
5
|
-
* (§
|
|
6
|
-
*
|
|
7
|
-
* - §
|
|
8
|
-
*
|
|
9
|
-
* - DEC-<N>
|
|
10
|
-
*
|
|
5
|
+
* (§INV invariants, §DEC decisions, TODO(TSK-...) linked todos). Each
|
|
6
|
+
* citation is resolved against the appropriate source of truth:
|
|
7
|
+
* - §INV-NNNN → invariants.ledger.yaml. Missing → orphaned. superseded_by
|
|
8
|
+
* set → superseded citation.
|
|
9
|
+
* - §DEC-<N> → decisions.ledger.yaml. Missing → orphaned. status:
|
|
10
|
+
* superseded / archived → superseded citation.
|
|
11
11
|
* - TODO(TSK-<id>) → tasks/{active,done}/<id>/. Missing → orphan; "done"
|
|
12
12
|
* isn't a finding (TODO will be removed when the agent
|
|
13
13
|
* gets to it; flagging is noisy).
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
import { existsSync, readFileSync, statSync } from "node:fs";
|
|
16
16
|
import { join } from "node:path";
|
|
17
17
|
import { parse as parseYaml } from "yaml";
|
|
18
|
-
import { buildInvariantsLedger } from "../ground/index.js";
|
|
19
|
-
import { invariantsLedgerPath } from "../ground/paths.js";
|
|
18
|
+
import { buildDecisionsLedger, buildInvariantsLedger } from "../ground/index.js";
|
|
19
|
+
import { decisionsLedgerPath, invariantsLedgerPath } from "../ground/paths.js";
|
|
20
20
|
import { scanCitations } from "../hooks/post-tool-use/citation-scanner.js";
|
|
21
21
|
import { walkSourceTree } from "./walk-source.js";
|
|
22
22
|
const PASS_ID = "citation-integrity";
|
|
@@ -33,9 +33,38 @@ function loadInvariants(repoRoot) {
|
|
|
33
33
|
}
|
|
34
34
|
const superseded = new Map();
|
|
35
35
|
const path = invariantsLedgerPath(repoRoot);
|
|
36
|
-
if (!existsSync(path))
|
|
36
|
+
if (!existsSync(path))
|
|
37
37
|
return { active, superseded };
|
|
38
|
+
let parsed;
|
|
39
|
+
try {
|
|
40
|
+
parsed = parseYaml(readFileSync(path, "utf8"));
|
|
38
41
|
}
|
|
42
|
+
catch {
|
|
43
|
+
return { active, superseded };
|
|
44
|
+
}
|
|
45
|
+
if (!Array.isArray(parsed))
|
|
46
|
+
return { active, superseded };
|
|
47
|
+
for (const entry of parsed) {
|
|
48
|
+
if (typeof entry !== "object" || entry === null)
|
|
49
|
+
continue;
|
|
50
|
+
const e = entry;
|
|
51
|
+
const id = typeof e["id"] === "string" ? e["id"] : null;
|
|
52
|
+
const supBy = typeof e["superseded_by"] === "string" ? e["superseded_by"] : null;
|
|
53
|
+
if (id !== null && supBy !== null && supBy.length > 0) {
|
|
54
|
+
superseded.set(id, supBy);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return { active, superseded };
|
|
58
|
+
}
|
|
59
|
+
function loadDecisions(repoRoot) {
|
|
60
|
+
const active = new Set();
|
|
61
|
+
for (const e of buildDecisionsLedger({ repoRoot })) {
|
|
62
|
+
active.add(e.id);
|
|
63
|
+
}
|
|
64
|
+
const superseded = new Map();
|
|
65
|
+
const path = decisionsLedgerPath(repoRoot);
|
|
66
|
+
if (!existsSync(path))
|
|
67
|
+
return { active, superseded };
|
|
39
68
|
let parsed;
|
|
40
69
|
try {
|
|
41
70
|
parsed = parseYaml(readFileSync(path, "utf8"));
|
|
@@ -67,6 +96,7 @@ export function runCitationIntegrity(opts) {
|
|
|
67
96
|
const findings = [];
|
|
68
97
|
const maxBytes = opts.maxFileBytes ?? 256 * 1024;
|
|
69
98
|
const invariants = loadInvariants(opts.repoRoot);
|
|
99
|
+
const decisions = loadDecisions(opts.repoRoot);
|
|
70
100
|
const files = walkSourceTree(opts.repoRoot);
|
|
71
101
|
for (const rel of files) {
|
|
72
102
|
if (!TEXT_EXTS.has(fileExt(rel)))
|
|
@@ -91,7 +121,7 @@ export function runCitationIntegrity(opts) {
|
|
|
91
121
|
if (content.length === 0)
|
|
92
122
|
continue;
|
|
93
123
|
const matches = scanCitations(content);
|
|
94
|
-
// §
|
|
124
|
+
// §INV invariants
|
|
95
125
|
for (const m of matches.invariants) {
|
|
96
126
|
if (invariants.superseded.has(m.id)) {
|
|
97
127
|
const supBy = invariants.superseded.get(m.id) ?? "(unknown)";
|
|
@@ -116,16 +146,30 @@ export function runCitationIntegrity(opts) {
|
|
|
116
146
|
});
|
|
117
147
|
}
|
|
118
148
|
}
|
|
119
|
-
// DEC-
|
|
120
|
-
for (const m of matches.
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
149
|
+
// §DEC-NNNN bare-symbol citations — resolve against decisions ledger
|
|
150
|
+
for (const m of matches.decisions) {
|
|
151
|
+
if (decisions.superseded.has(m.id)) {
|
|
152
|
+
const supBy = decisions.superseded.get(m.id) ?? "(unknown)";
|
|
153
|
+
findings.push({
|
|
154
|
+
pass: PASS_ID,
|
|
155
|
+
kind: "superseded_citation",
|
|
156
|
+
path: rel,
|
|
157
|
+
detail: `${rel}:${m.line} cites §${m.id}, which is superseded by §${supBy}`,
|
|
158
|
+
severity: "warn",
|
|
159
|
+
line: m.line,
|
|
160
|
+
});
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
if (!decisions.active.has(m.id)) {
|
|
164
|
+
findings.push({
|
|
165
|
+
pass: PASS_ID,
|
|
166
|
+
kind: "orphaned_citation",
|
|
167
|
+
path: rel,
|
|
168
|
+
detail: `${rel}:${m.line} cites §${m.id}, which is not in the decisions ledger`,
|
|
169
|
+
severity: "warn",
|
|
170
|
+
line: m.line,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
129
173
|
}
|
|
130
174
|
// TODO(TSK-...) — check active/done dirs
|
|
131
175
|
for (const m of matches.todos) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"citation-integrity.js","sourceRoot":"","sources":["../../src/gc/citation-integrity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"citation-integrity.js","sourceRoot":"","sources":["../../src/gc/citation-integrity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAE3E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,OAAO,GAAG,oBAA6B,CAAC;AAE9C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;IACxB,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAC5C,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IACtE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM;IACvC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO;CACpD,CAAC,CAAC;AAiBH,SAAS,cAAc,CAAC,QAAgB;IACtC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,CAAC,IAAI,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACpD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,MAAM,IAAI,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACrD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAC1D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QAC1D,MAAM,CAAC,GAAG,KAAgC,CAAC;QAC3C,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,IAAI,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,eAAe,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,eAAe,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7F,IAAI,EAAE,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,CAAC,IAAI,oBAAoB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,MAAM,IAAI,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACrD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAC1D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QAC1D,MAAM,CAAC,GAAG,KAAgC,CAAC;QAC3C,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,IAAI,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,eAAe,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,eAAe,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7F,IAAI,EAAE,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAA8B;IACjE,MAAM,QAAQ,GAAgB,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,IAAI,GAAG,GAAG,IAAI,CAAC;IAEjD,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE/C,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAAE,SAAS;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACrC,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,IAAI,GAAG,QAAQ;YAAE,SAAS;QAE9B,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAEnC,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAEvC,kBAAkB;QAClB,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC;gBAC7D,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,qBAAqB;oBAC3B,IAAI,EAAE,GAAG;oBACT,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,6BAA6B,KAAK,EAAE;oBAC3E,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;iBACb,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,mBAAmB;oBACzB,IAAI,EAAE,GAAG;oBACT,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,yCAAyC;oBAChF,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;iBACb,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAClC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC;gBAC5D,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,qBAAqB;oBAC3B,IAAI,EAAE,GAAG;oBACT,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,6BAA6B,KAAK,EAAE;oBAC3E,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;iBACb,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBAChC,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,mBAAmB;oBACzB,IAAI,EAAE,GAAG;oBACT,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,wCAAwC;oBAC/E,QAAQ,EAAE,MAAM;oBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;iBACb,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,oBAAoB;YACzC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACvE,IAAI,UAAU,CAAC,SAAS,CAAC;gBAAE,SAAS,CAAG,qBAAqB;YAC5D,IAAI,UAAU,CAAC,OAAO,CAAC;gBAAE,SAAS,CAAK,qDAAqD;YAC5F,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,IAAI,eAAe,MAAM,wCAAwC;gBACrF,QAAQ,EAAE,MAAM;gBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;aACb,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC"}
|
package/dist/gc/frontmatter.js
CHANGED
|
@@ -99,7 +99,7 @@ function composeCommitMessage(count, now) {
|
|
|
99
99
|
const ymd = now.toISOString().slice(0, 10);
|
|
100
100
|
const subject = `chore(gc): refresh frontmatter verified-at on ${count} doc${count === 1 ? "" : "s"} (${ymd})`;
|
|
101
101
|
const body = "GC frontmatter-freshness pass — content unchanged; bumping verified-at to today.\n" +
|
|
102
|
-
"Auto-applied as safe-class
|
|
102
|
+
"Auto-applied as safe-class (GC auto-merge policy).\n";
|
|
103
103
|
return `${subject}\n\n${body}`;
|
|
104
104
|
}
|
|
105
105
|
//# sourceMappingURL=frontmatter.js.map
|