@mmnto/cli 1.87.0 → 1.89.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/dist/author-sandbox.d.ts +32 -0
  2. package/dist/author-sandbox.d.ts.map +1 -0
  3. package/dist/author-sandbox.js +95 -0
  4. package/dist/author-sandbox.js.map +1 -0
  5. package/dist/authored-rule-intake-prewindow.test.d.ts +2 -0
  6. package/dist/authored-rule-intake-prewindow.test.d.ts.map +1 -0
  7. package/dist/authored-rule-intake-prewindow.test.js +84 -0
  8. package/dist/authored-rule-intake-prewindow.test.js.map +1 -0
  9. package/dist/authored-rule-intake.d.ts +21 -1
  10. package/dist/authored-rule-intake.d.ts.map +1 -1
  11. package/dist/authored-rule-intake.js +56 -1
  12. package/dist/authored-rule-intake.js.map +1 -1
  13. package/dist/commands/authored-whitelist.d.ts.map +1 -1
  14. package/dist/commands/authored-whitelist.js +19 -8
  15. package/dist/commands/authored-whitelist.js.map +1 -1
  16. package/dist/commands/eject.d.ts.map +1 -1
  17. package/dist/commands/eject.js +10 -6
  18. package/dist/commands/eject.js.map +1 -1
  19. package/dist/commands/eject.test.js +5 -1
  20. package/dist/commands/eject.test.js.map +1 -1
  21. package/dist/commands/init-templates.d.ts +4 -0
  22. package/dist/commands/init-templates.d.ts.map +1 -1
  23. package/dist/commands/init-templates.js +25 -1
  24. package/dist/commands/init-templates.js.map +1 -1
  25. package/dist/commands/init.test.js +8 -3
  26. package/dist/commands/init.test.js.map +1 -1
  27. package/dist/commands/rule-author-command.test.js +29 -2
  28. package/dist/commands/rule-author-command.test.js.map +1 -1
  29. package/dist/commands/rule-author-teardown.test.d.ts +2 -0
  30. package/dist/commands/rule-author-teardown.test.d.ts.map +1 -0
  31. package/dist/commands/rule-author-teardown.test.js +123 -0
  32. package/dist/commands/rule-author-teardown.test.js.map +1 -0
  33. package/dist/commands/rule-author.d.ts +1 -0
  34. package/dist/commands/rule-author.d.ts.map +1 -1
  35. package/dist/commands/rule-author.js +143 -2
  36. package/dist/commands/rule-author.js.map +1 -1
  37. package/dist/commands/spine-authored-cert-corpus.d.ts +15 -0
  38. package/dist/commands/spine-authored-cert-corpus.d.ts.map +1 -1
  39. package/dist/commands/spine-authored-cert-corpus.js +17 -1
  40. package/dist/commands/spine-authored-cert-corpus.js.map +1 -1
  41. package/dist/commands/spine-authored-cert-corpus.test.js +440 -4
  42. package/dist/commands/spine-authored-cert-corpus.test.js.map +1 -1
  43. package/dist/commands/spine-authored-materialize.d.ts +55 -0
  44. package/dist/commands/spine-authored-materialize.d.ts.map +1 -0
  45. package/dist/commands/spine-authored-materialize.js +315 -0
  46. package/dist/commands/spine-authored-materialize.js.map +1 -0
  47. package/dist/commands/spine-cert-materialize.d.ts.map +1 -1
  48. package/dist/commands/spine-cert-materialize.js +17 -0
  49. package/dist/commands/spine-cert-materialize.js.map +1 -1
  50. package/dist/commands/spine-cert-persist.d.ts +17 -1
  51. package/dist/commands/spine-cert-persist.d.ts.map +1 -1
  52. package/dist/commands/spine-cert-persist.js +17 -5
  53. package/dist/commands/spine-cert-persist.js.map +1 -1
  54. package/dist/commands/spine-cert-persist.test.js +60 -0
  55. package/dist/commands/spine-cert-persist.test.js.map +1 -1
  56. package/dist/commands/spine-cert-run-corpus.d.ts +18 -28
  57. package/dist/commands/spine-cert-run-corpus.d.ts.map +1 -1
  58. package/dist/commands/spine-cert-run-corpus.js +162 -21
  59. package/dist/commands/spine-cert-run-corpus.js.map +1 -1
  60. package/dist/commands/spine-derive-labels.d.ts.map +1 -1
  61. package/dist/commands/spine-derive-labels.js +9 -1
  62. package/dist/commands/spine-derive-labels.js.map +1 -1
  63. package/dist/commands/spine-freeze-orchestration.test.d.ts +2 -0
  64. package/dist/commands/spine-freeze-orchestration.test.d.ts.map +1 -0
  65. package/dist/commands/spine-freeze-orchestration.test.js +468 -0
  66. package/dist/commands/spine-freeze-orchestration.test.js.map +1 -0
  67. package/dist/commands/spine-freeze-split.d.ts +10 -0
  68. package/dist/commands/spine-freeze-split.d.ts.map +1 -0
  69. package/dist/commands/spine-freeze-split.js +131 -0
  70. package/dist/commands/spine-freeze-split.js.map +1 -0
  71. package/dist/commands/spine-windtunnel.d.ts +35 -0
  72. package/dist/commands/spine-windtunnel.d.ts.map +1 -1
  73. package/dist/commands/spine-windtunnel.js +47 -7
  74. package/dist/commands/spine-windtunnel.js.map +1 -1
  75. package/dist/index.js +21 -0
  76. package/dist/index.js.map +1 -1
  77. package/dist/spine-fixture-ancestry.d.ts +20 -0
  78. package/dist/spine-fixture-ancestry.d.ts.map +1 -0
  79. package/dist/spine-fixture-ancestry.js +46 -0
  80. package/dist/spine-fixture-ancestry.js.map +1 -0
  81. package/dist/spine-fixture-ancestry.test.d.ts +2 -0
  82. package/dist/spine-fixture-ancestry.test.d.ts.map +1 -0
  83. package/dist/spine-fixture-ancestry.test.js +62 -0
  84. package/dist/spine-fixture-ancestry.test.js.map +1 -0
  85. package/dist/spine-freeze-proof.d.ts +89 -0
  86. package/dist/spine-freeze-proof.d.ts.map +1 -0
  87. package/dist/spine-freeze-proof.js +237 -0
  88. package/dist/spine-freeze-proof.js.map +1 -0
  89. package/package.json +2 -2
@@ -0,0 +1,32 @@
1
+ import { type FrozenSplitArtifact } from '@mmnto/totem';
2
+ type SafeExecFn = typeof import('@mmnto/totem').safeExec;
3
+ /** A prepared sandbox: the derived root + the guarded read surface. */
4
+ export interface AuthorSandbox {
5
+ /** The worktree root — lc at the frozen split's cutBoundarySha. */
6
+ root: string;
7
+ cutBoundarySha: string;
8
+ /** Read a file INSIDE the sandbox; any escape (absolute, `..`, or a symlink whose real path leaves the root) fail-louds (t6). */
9
+ readFile: (relPath: string) => string;
10
+ }
11
+ /**
12
+ * Materialize the sandbox: `git worktree add --detach <root> <cutBoundarySha>`
13
+ * off the lc clone. The root is DERIVED (`<totemDir>/temp/` + the boundary sha —
14
+ * workspace-rooted, gitignored; never `os.tmpdir()` per the house temp-file
15
+ * guideline) — no caller influence. Fail-loud if the clone does not contain the
16
+ * boundary sha (a wrong or shallow clone must never silently sandbox a
17
+ * different tree).
18
+ */
19
+ export declare function prepareAuthorSandbox(args: {
20
+ lcDir: string;
21
+ totemDir: string;
22
+ artifact: FrozenSplitArtifact;
23
+ safeExec: SafeExecFn;
24
+ }): AuthorSandbox;
25
+ /** Tear the sandbox down (worktree remove + prune; rm fallback for a half-removed root). */
26
+ export declare function removeAuthorSandbox(args: {
27
+ lcDir: string;
28
+ root: string;
29
+ safeExec: SafeExecFn;
30
+ }): void;
31
+ export {};
32
+ //# sourceMappingURL=author-sandbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"author-sandbox.d.ts","sourceRoot":"","sources":["../src/author-sandbox.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,KAAK,mBAAmB,EAAc,MAAM,cAAc,CAAC;AAEpE,KAAK,UAAU,GAAG,cAAc,cAAc,EAAE,QAAQ,CAAC;AAEzD,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,iIAAiI;IACjI,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;CACvC;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,EAAE,UAAU,CAAC;CACtB,GAAG,aAAa,CA0DhB;AAED,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,UAAU,CAAC;CACtB,GAAG,IAAI,CA0BP"}
@@ -0,0 +1,95 @@
1
+ // ─── ADR-112 §5.4 R1 — the author sandbox (train-tree-as-of-cut, derived) ─────
2
+ //
3
+ // The authoring/test harness's ONLY sanctioned view of the lc tree: a detached
4
+ // git worktree at the frozen split's `cutBoundarySha` (the last train PR's merge
5
+ // commit). EVERYTHING here derives from the frozen artifact — the command
6
+ // surface accepts NO root or allowlist knobs, because the author cannot own the
7
+ // mechanism that constrains them (the §3 judgedBy≠author independence axiom
8
+ // applied to config; strategy Q1 ruling + codex sandbox note). A read outside
9
+ // the sandbox root fail-louds (t6) — detect, never widen.
10
+ //
11
+ // Honest Tenet-19 scoping (the two-class split the R1 fold names): the sandbox
12
+ // NARROWS what a compliant harness can see; it cannot make pre-freeze
13
+ // working-tree drafts visible to git. That residue stays adherence-class,
14
+ // recorded by the (c) non-inspection attestation.
15
+ import * as fs from 'node:fs';
16
+ import * as path from 'node:path';
17
+ import { TotemError } from '@mmnto/totem';
18
+ /**
19
+ * Materialize the sandbox: `git worktree add --detach <root> <cutBoundarySha>`
20
+ * off the lc clone. The root is DERIVED (`<totemDir>/temp/` + the boundary sha —
21
+ * workspace-rooted, gitignored; never `os.tmpdir()` per the house temp-file
22
+ * guideline) — no caller influence. Fail-loud if the clone does not contain the
23
+ * boundary sha (a wrong or shallow clone must never silently sandbox a
24
+ * different tree).
25
+ */
26
+ export function prepareAuthorSandbox(args) {
27
+ const { lcDir, totemDir, artifact, safeExec } = args;
28
+ const sha = artifact.cutBoundarySha;
29
+ const root = path.join(totemDir, 'temp', `author-sandbox-${sha.slice(0, 12)}`);
30
+ fs.mkdirSync(path.dirname(root), { recursive: true });
31
+ if (fs.existsSync(root)) {
32
+ // A stale sandbox at the derived root is torn down and re-materialized —
33
+ // never reused as-is (its content could have drifted from the boundary sha).
34
+ removeAuthorSandbox({ lcDir, root, safeExec });
35
+ }
36
+ try {
37
+ safeExec('git', ['-C', lcDir, 'worktree', 'add', '--detach', root, sha], {});
38
+ }
39
+ catch (err) {
40
+ throw new TotemError('GATE_INVALID', `author-sandbox: cannot materialize the train-tree worktree at ${sha.slice(0, 12)} from ${lcDir}`, 'The lc clone must contain the frozen split cutBoundarySha (full, non-shallow history).', err);
41
+ }
42
+ const escapeFailure = (relPath) => new TotemError('GATE_INVALID', `author-sandbox[escape]: read of "${relPath}" resolves outside the sandbox root — the authoring harness sees ONLY the train tree as of the cut (ADR-112 §5.4, t6)`, 'Author against the sandboxed train tree; held-out code is embargoed until the cert run.');
43
+ // Containment is enforced on the REAL path, not the lexical one: a train-era
44
+ // committed symlink pointing outside the root would pass a lexical check while
45
+ // `readFileSync` follows it out (greptile/CR #2293 round 1 — the n1 residue,
46
+ // closed at read instead of deferred to R2).
47
+ const realRoot = fs.realpathSync(root);
48
+ const readFile = (relPath) => {
49
+ const abs = path.resolve(root, relPath);
50
+ const rel = path.relative(root, abs);
51
+ if (rel === '' || rel.startsWith('..') || path.isAbsolute(rel)) {
52
+ throw escapeFailure(relPath);
53
+ }
54
+ let real;
55
+ try {
56
+ real = fs.realpathSync(abs);
57
+ }
58
+ catch (err) {
59
+ throw new TotemError('GATE_INVALID', `author-sandbox: cannot resolve "${relPath}" inside the sandbox (missing or unreadable)`, 'Author against files that exist in the train tree as of the cut.', err);
60
+ }
61
+ const realRel = path.relative(realRoot, real);
62
+ if (realRel === '' || realRel.startsWith('..') || path.isAbsolute(realRel)) {
63
+ throw escapeFailure(relPath);
64
+ }
65
+ return fs.readFileSync(real, 'utf-8');
66
+ };
67
+ return { root, cutBoundarySha: sha, readFile };
68
+ }
69
+ /** Tear the sandbox down (worktree remove + prune; rm fallback for a half-removed root). */
70
+ export function removeAuthorSandbox(args) {
71
+ const { lcDir, root, safeExec } = args;
72
+ // Check-first (no fail-open catch): ask git whether the root is a LIVE worktree,
73
+ // then take exactly one removal path — a live worktree is removed via git (a
74
+ // failure there throws loudly), anything else (already-removed, bare leftover
75
+ // dir) is a plain rm + registry prune.
76
+ const worktrees = safeExec('git', ['-C', lcDir, 'worktree', 'list', '--porcelain'], {});
77
+ // Windows: git may print a different drive-letter case than Node resolves
78
+ // (GCA #2293 round 2) — a casing miss would misread a LIVE worktree as stale
79
+ // and rmSync it, stranding git metadata. Case-fold ONLY on win32 (POSIX
80
+ // filesystems are case-sensitive; folding there would conflate real paths).
81
+ const foldCase = (p) => (process.platform === 'win32' ? p.toLowerCase() : p);
82
+ const normalizedRoot = foldCase(path.resolve(root));
83
+ const isLive = worktrees
84
+ .split('\n')
85
+ .some((line) => line.startsWith('worktree ') &&
86
+ foldCase(path.resolve(line.slice('worktree '.length).trim())) === normalizedRoot);
87
+ if (isLive) {
88
+ safeExec('git', ['-C', lcDir, 'worktree', 'remove', '--force', root], {});
89
+ }
90
+ else {
91
+ fs.rmSync(root, { recursive: true, force: true });
92
+ safeExec('git', ['-C', lcDir, 'worktree', 'prune'], {});
93
+ }
94
+ }
95
+ //# sourceMappingURL=author-sandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"author-sandbox.js","sourceRoot":"","sources":["../src/author-sandbox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=authored-rule-intake-prewindow.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authored-rule-intake-prewindow.test.d.ts","sourceRoot":"","sources":["../src/authored-rule-intake-prewindow.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,84 @@
1
+ import * as fs from 'node:fs';
2
+ import * as os from 'node:os';
3
+ import * as path from 'node:path';
4
+ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
5
+ import { stringify as yamlStringify } from 'yaml';
6
+ import { runRuleAuthor } from './authored-rule-intake.js';
7
+ // ─── ADR-112 §5.2 leakage semantics at INTAKE (#2294 couple, operator option (a)):
8
+ // legal iff ∉ heldOut ∧ (∈ train ∨ proven pre-window). The verified set is handed
9
+ // in by the git-holding command boundary; this exercises the git-free gate.
10
+ const SPLIT_REF = `split:${'a'.repeat(64)}`;
11
+ const COMMITMENT = 'c'.repeat(64);
12
+ /** The intake's binding gate reads ONLY splitRef / freezeCommitment / split slices. */
13
+ const artifact = {
14
+ splitRef: SPLIT_REF,
15
+ freezeCommitment: COMMITMENT,
16
+ split: { trainPrs: [447, 601], heldOutPrs: [602, 697] },
17
+ };
18
+ let root;
19
+ beforeEach(() => {
20
+ root = fs.mkdtempSync(path.join(os.tmpdir(), 'totem-intake-prewindow-'));
21
+ fs.mkdirSync(path.join(root, 'spine'), { recursive: true });
22
+ });
23
+ afterEach(() => {
24
+ fs.rmSync(root, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 });
25
+ });
26
+ const fixture = (pr) => ({
27
+ pr,
28
+ preimageSource: {
29
+ kind: 'commit',
30
+ preimageCommitSha: 'b'.repeat(40),
31
+ mergeCommitSha: 'a'.repeat(40),
32
+ },
33
+ filePath: 'src/x.rs',
34
+ matchedSpan: 'L1',
35
+ contentHash: 'h'.repeat(8),
36
+ });
37
+ const writeYaml = (fixturePr) => {
38
+ fs.writeFileSync(path.join(root, 'spine', 'authored-rules.yaml'), yamlStringify({
39
+ splitRef: SPLIT_REF,
40
+ freezeCommitment: COMMITMENT,
41
+ authoredAfterSplit: true,
42
+ heldOutNonInspectionAttestation: true,
43
+ rules: [
44
+ {
45
+ author: 'alice',
46
+ authoredAt: '2026-07-04',
47
+ targetDefect: 'forbidden console.log',
48
+ declaredEngine: 'regex',
49
+ structuralClass: 'forbidden-literal-token',
50
+ dslSource: 'console\\.log',
51
+ positiveFixtures: [fixture(fixturePr)],
52
+ },
53
+ ],
54
+ }), 'utf-8');
55
+ };
56
+ const run = (verified) => runRuleAuthor(root, {
57
+ judgedBy: 'static-whitelist@cert-1',
58
+ freezeBinding: { artifact },
59
+ ...(verified !== undefined ? { verifiedPreWindowFixturePrs: verified } : {}),
60
+ });
61
+ describe('runRuleAuthor §5.2 fixture gate — leakage semantics under a frozen binding', () => {
62
+ it('a train-slice fixture passes with no verified set (strict lane, byte-unchanged)', () => {
63
+ writeYaml(447);
64
+ const result = run();
65
+ expect(result.records).toHaveLength(1);
66
+ });
67
+ it('an out-of-window fixture WITHOUT proof → GATE_INVALID naming the unproven pre-window leg', () => {
68
+ writeYaml(422);
69
+ expect(() => run()).toThrow(/NOT proven strictly pre-window/);
70
+ expect(() => run()).toThrow(/#422/);
71
+ });
72
+ it('an out-of-window fixture WITH the ancestry proof → accepted (#2294 couple, option (a))', () => {
73
+ writeYaml(422);
74
+ const result = run(new Set([422]));
75
+ expect(result.records).toHaveLength(1);
76
+ expect(result.minted).toBe(1);
77
+ expect(result.rejected).toHaveLength(0);
78
+ });
79
+ it('a HELD-OUT fixture rejects even when the verified set names it (FM (c) never overridable)', () => {
80
+ writeYaml(602);
81
+ expect(() => run(new Set([602]))).toThrow(/HELD-OUT/);
82
+ });
83
+ });
84
+ //# sourceMappingURL=authored-rule-intake-prewindow.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authored-rule-intake-prewindow.test.js","sourceRoot":"","sources":["../src/authored-rule-intake-prewindow.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type AuthoredRuleRecord } from '@mmnto/totem';
1
+ import { type AuthoredRuleRecord, type FrozenSplitArtifact } from '@mmnto/totem';
2
2
  /** `.totem`-relative path to the authoring input. */
3
3
  export declare const AUTHORED_RULES_REL: string;
4
4
  /** A rule the whitelist could not decide — recorded, not minted, not ledgered (no record reaches compile). */
@@ -29,5 +29,25 @@ export interface RuleAuthorResult {
29
29
  export declare function runRuleAuthor(totemDir: string, opts: {
30
30
  judgedBy: string;
31
31
  verifyOnly?: boolean;
32
+ /**
33
+ * ADR-112 §5.1/§8 R1 — the VERIFIED frozen split this authoring run binds to.
34
+ * The caller (the command layer) resolves the artifact by the file's
35
+ * content-addressed splitRef AND proves it on the shared ref
36
+ * (spine-freeze-proof.ts) BEFORE handing it here — this git-free library
37
+ * only enforces the binding facts. REQUIRED whenever the file's splitRef is
38
+ * content-addressed (`split:<sha256>`); forbidden otherwise.
39
+ */
40
+ freezeBinding?: {
41
+ artifact: FrozenSplitArtifact;
42
+ };
43
+ /**
44
+ * ADR-112 §5.2 leakage semantics (#2294 couple, operator option (a)): fixture
45
+ * PRs the caller PROVED strictly pre-window by ancestry against the artifact's
46
+ * `cutBoundarySha` (`verifyPreWindowFixturePrs`, spine-fixture-ancestry.ts —
47
+ * the command layer owns the git; this library stays git-free and consumes
48
+ * the verified result, the same seam as `freezeBinding`). Absent/empty ⇒ the
49
+ * strict train-only behavior, byte-unchanged.
50
+ */
51
+ verifiedPreWindowFixturePrs?: ReadonlySet<number>;
32
52
  }): RuleAuthorResult;
33
53
  //# sourceMappingURL=authored-rule-intake.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"authored-rule-intake.d.ts","sourceRoot":"","sources":["../src/authored-rule-intake.ts"],"names":[],"mappings":"AAwBA,OAAO,EAGL,KAAK,kBAAkB,EAWxB,MAAM,cAAc,CAAC;AAItB,qDAAqD;AACrD,eAAO,MAAM,kBAAkB,QAA4C,CAAC;AA2C5E,8GAA8G;AAC9G,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,sFAAsF;IACtF,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAUD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/C,gBAAgB,CAuOlB"}
1
+ {"version":3,"file":"authored-rule-intake.d.ts","sourceRoot":"","sources":["../src/authored-rule-intake.ts"],"names":[],"mappings":"AAwBA,OAAO,EAGL,KAAK,kBAAkB,EAOvB,KAAK,mBAAmB,EAOzB,MAAM,cAAc,CAAC;AAItB,qDAAqD;AACrD,eAAO,MAAM,kBAAkB,QAA4C,CAAC;AA2C5E,8GAA8G;AAC9G,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,sFAAsF;IACtF,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAUD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE;QAAE,QAAQ,EAAE,mBAAmB,CAAA;KAAE,CAAC;IAClD;;;;;;;OAOG;IACH,2BAA2B,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACnD,GACA,gBAAgB,CA2TlB"}
@@ -19,7 +19,7 @@
19
19
  import * as fs from 'node:fs';
20
20
  import * as path from 'node:path';
21
21
  import { parse as parseYaml } from 'yaml';
22
- import { appendAuthoringLedgerEntry, AuthoredRuleRecordSchema, AuthoredRulesFileSchema, authoringContentHash, buildAuthoredIdentityIndex, evaluateStructuralEligibility, identityKey, mintAuthoredRuleId, readAuthoringLedger, TotemError, } from '@mmnto/totem';
22
+ import { appendAuthoringLedgerEntry, AuthoredRuleRecordSchema, AuthoredRulesFileSchema, authoringContentHash, buildAuthoredIdentityIndex, evaluateStructuralEligibility, identityKey, mintAuthoredRuleId, readAuthoringLedger, sanitizeForTerminal, SPLIT_REF_RE, TotemError, } from '@mmnto/totem';
23
23
  import { authoredWhitelist } from './commands/authored-whitelist.js';
24
24
  /** `.totem`-relative path to the authoring input. */
25
25
  export const AUTHORED_RULES_REL = path.join('spine', 'authored-rules.yaml');
@@ -94,6 +94,53 @@ export function runRuleAuthor(totemDir, opts) {
94
94
  throw new TotemError('CONFIG_INVALID', `authored-rules.yaml is invalid: ${parsed.error.message}`, 'The file may set only author-owned fields; producer fields (structuralEligibility, ruleId, decidable, disposition, …) are established by the producer, not the author (ADR-112 §3 / FM(d)).', parsed.error);
95
95
  }
96
96
  const fileDoc = parsed.data;
97
+ // ── R1 freeze binding (ADR-112 §5.1/§8): a content-addressed splitRef engages the
98
+ // mechanical chain; a legacy free-text splitRef stays the pre-R1 adherence-class
99
+ // shape (recorded, verified at materialize). The partition is total: content-
100
+ // addressed WITHOUT a verified artifact fails, and a commitment on a free-text
101
+ // ref fails (it would be an unanchored claim). ──
102
+ const refIsContentAddressed = SPLIT_REF_RE.test(fileDoc.splitRef);
103
+ const binding = opts.freezeBinding;
104
+ if (refIsContentAddressed && binding === undefined) {
105
+ throw new TotemError('GATE_INVALID', `authored-rules.yaml declares the content-addressed splitRef ${fileDoc.splitRef} but no verified frozen split was bound — the caller must resolve + prove the artifact on the shared ref first (freeze-proof)`, 'Run `totem rule author` (the command performs the shared-history proof), or pass a verified freezeBinding when calling runRuleAuthor programmatically.');
106
+ }
107
+ if (!refIsContentAddressed && fileDoc.freezeCommitment !== undefined) {
108
+ throw new TotemError('GATE_INVALID', 'authored-rules.yaml carries a freezeCommitment on a legacy free-text splitRef — a commitment binds only a content-addressed frozen artifact (ADR-112 §5.1 R1)', 'Use the frozen artifact splitRef (`split:<sha256>`) from `totem spine freeze-split`, or drop the freezeCommitment.');
109
+ }
110
+ if (binding !== undefined) {
111
+ const artifact = binding.artifact;
112
+ if (fileDoc.splitRef !== artifact.splitRef) {
113
+ throw new TotemError('GATE_INVALID', `authored-rules.yaml splitRef ${fileDoc.splitRef} does not match the bound frozen artifact's splitRef ${artifact.splitRef}`, 'Author against the artifact the freeze PR landed; the ref is its content address.');
114
+ }
115
+ if (fileDoc.freezeCommitment === undefined) {
116
+ throw new TotemError('GATE_INVALID', `authored-rules.yaml omits freezeCommitment — a content-addressed authoring session must declare the frozen artifact's commitment (${artifact.freezeCommitment})`, 'Copy freezeCommitment from the frozen split artifact into the authored-rules.yaml header.');
117
+ }
118
+ if (fileDoc.freezeCommitment !== artifact.freezeCommitment) {
119
+ throw new TotemError('GATE_INVALID', `authored-rules.yaml freezeCommitment ${fileDoc.freezeCommitment} does not match the frozen artifact's ${artifact.freezeCommitment} — the split was re-frozen after this header was written (t1)`, 'Re-author under the current freeze: update the header from the live artifact and re-verify every rule.');
120
+ }
121
+ // §5(2) flips mechanical at intake — LEAKAGE SEMANTICS (#2294 couple, operator
122
+ // option (a) on strategy#810): a fixture PR is legal iff ∉ heldOut AND
123
+ // (∈ train OR proven strictly pre-window by the caller's ancestry proof).
124
+ // Held-out is checked FIRST and never overridable by the verified set (FM (c)
125
+ // is the load-bearing condition). Previously first checked at materialize —
126
+ // compose, never replace; the materialize gate stays.
127
+ const train = new Set(artifact.split.trainPrs);
128
+ const heldOut = new Set(artifact.split.heldOutPrs);
129
+ const verifiedPreWindow = opts.verifiedPreWindowFixturePrs ?? new Set();
130
+ for (const r of fileDoc.rules) {
131
+ // `author`/`targetDefect` are author-controlled YAML text landing in CLI-facing
132
+ // error output — escape before interpolation (terminal injection, CR #2297).
133
+ const who = `${sanitizeForTerminal(r.author)} · ${sanitizeForTerminal(r.targetDefect)}`;
134
+ for (const f of r.positiveFixtures) {
135
+ if (heldOut.has(f.pr)) {
136
+ throw new TotemError('GATE_INVALID', `authored rule (${who}) declares positive fixture PR #${f.pr} which is in the HELD-OUT slice — a held-out positive fixture is the ADR-112 §5(2)/FM(c) leakage violation`, 'Anchor the fixture to a train-slice or strictly pre-window PR; held-out code is never an authoring exemplar.');
137
+ }
138
+ if (!train.has(f.pr) && !verifiedPreWindow.has(f.pr)) {
139
+ throw new TotemError('GATE_INVALID', `authored rule (${who}) declares positive fixture PR #${f.pr} which is outside the window and NOT proven strictly pre-window — fixtures must be ∉ heldOut ∧ (∈ train ∨ pre-window by ancestry) (ADR-112 §5.2 leakage semantics)`, `Train slice of ${artifact.splitRef}: [${artifact.split.trainPrs.join(', ')}]. A pre-window anchor needs the lc clone at the command boundary (--lc-dir) so its ancestry to the cut boundary can be proven.`);
140
+ }
141
+ }
142
+ }
143
+ }
97
144
  // Reject a duplicate identity WITHIN the file (codex — ambiguous which rule owns the id) +
98
145
  // enforce §3 independence: the eligibility check's `judgedBy` must never be a rule's own author
99
146
  // (codex diff-review — `--judged-by` is user-settable, so guard it at the boundary).
@@ -148,6 +195,10 @@ export function runRuleAuthor(totemDir, opts) {
148
195
  // (e.g. a different `judgedBy`, or a whitelist update altering the basis) must append a fresh
149
196
  // row, not read `unchanged` and keep the stale `structuralEligibility` on the effective entry.
150
197
  structuralEligibility,
198
+ // R1 (codex fold-2): the freeze commitment lives INSIDE the material, so a re-freeze
199
+ // flips every downstream entry to would-revise — the (b)-leg orphaning property.
200
+ // Absent (legacy free-text splitRef) ⇒ dropped by canonicalStringify, hash unchanged.
201
+ ...(binding !== undefined ? { freezeCommitment: binding.artifact.freezeCommitment } : {}),
151
202
  });
152
203
  const key = identityKey(r.author, r.targetDefect);
153
204
  const existing = byIdentity.get(key);
@@ -203,6 +254,10 @@ export function runRuleAuthor(totemDir, opts) {
203
254
  positiveFixturePrs: r.positiveFixtures.map((f) => f.pr),
204
255
  // No negativeFixturePrs: §6 near-misses are silence-only with no `pr` (strategy#770 +
205
256
  // Q-C ruling); only positiveFixtures are train-side-attested (§5(2)).
257
+ // R1: the entry CARRIES the commitment it was hashed under, so the chain is
258
+ // readable from the ledger alone (and a frozen-artifact materialize can
259
+ // fail-loud on an absent/mismatched entry commitment).
260
+ ...(binding !== undefined ? { freezeCommitment: binding.artifact.freezeCommitment } : {}),
206
261
  contentHash,
207
262
  };
208
263
  pending.push({ record, entry, write: action !== 'unchanged', action });
@@ -1 +1 @@
1
- {"version":3,"file":"authored-rule-intake.js","sourceRoot":"","sources":["../src/authored-rule-intake.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authored-rule-intake.js","sourceRoot":"","sources":["../src/authored-rule-intake.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"authored-whitelist.d.ts","sourceRoot":"","sources":["../../src/commands/authored-whitelist.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAkCnD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,SAAS,cAAc,EAAE,CAE7D"}
1
+ {"version":3,"file":"authored-whitelist.d.ts","sourceRoot":"","sources":["../../src/commands/authored-whitelist.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AA6CnD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,SAAS,cAAc,EAAE,CAE7D"}
@@ -5,12 +5,12 @@
5
5
  // panel (gemini), this is a DATA-TABLE + a generic predicate, NOT a hardcoded
6
6
  // switch: the MECHANISM (the closed predicate `evaluateStructuralEligibility`)
7
7
  // lives in core; the cert-#1 CLASS SET is strategy-owned (the answer-key half on
8
- // the strategy⇄cert critical path) and is delivered as data after their scoping
9
- // pass. Until then this ships INERT with two shape-validating exemplars only
10
- // they prove the predicate works (engine-representable, Tenet-15-clean), they are
11
- // NOT the blessed cert-#1 set. The whole table is handed to the core predicate so
12
- // "exactly one (engine, structuralClass) match across the registry" holds (a
13
- // class present under two engines is AMBIGUOUS ⇒ non-decidable, never structural).
8
+ // the strategy⇄cert critical path) and DELIVERED as data (their 2026-07-04 0013Z
9
+ // lockstep dispatch, coupled to lc's drafted rules #2297). The two original
10
+ // shape-validating exemplars are retained as predicate proofs. The whole table is
11
+ // handed to the core predicate so "exactly one (engine, structuralClass) match
12
+ // across the registry" holds (a class present under two engines is AMBIGUOUS ⇒
13
+ // non-decidable, never structural).
14
14
  //
15
15
  // ENGINE-TYPING IS LOAD-BEARING (strategy ruling 2026-06-28): a forbidden-token
16
16
  // class whose token can also appear in PROSE / doc-comments (e.g. `determinism`,
@@ -21,13 +21,24 @@
21
21
  // class) REJECTS a `regex` declaration of it — the FP-prevention is mechanical, not
22
22
  // a reviewer's vigilance. Classes whose tokens never appear in prose may be regex.
23
23
  /**
24
- * The decidable-class data-table. Mechanism-validating exemplars ONLY replace
25
- * with strategy's cert-#1 set (as data) when it lands; the predicate is unchanged.
24
+ * The decidable-class data-table: the strategy-delivered cert-#1 set (the 0013Z
25
+ * lockstep dispatch exact-match strings coupled to lc's drafted
26
+ * `structuralClass@engine`) plus the two original mechanism-validating exemplars
27
+ * (retained as predicate proofs; they are decidable classes in their own right).
28
+ * The engine typing follows the 2026-06-28 ruling above: `is_finite` and
29
+ * `procgen-entropy-clock-source` tokens can appear in prose/doc-comments ⇒
30
+ * ast-grep only; `debug-assert-len-mismatch` matches a code-only construct ⇒
31
+ * regex is safe.
26
32
  */
27
33
  // Each ROW is frozen too, not just the array (CR diff-review): `authoredWhitelist()` hands
28
34
  // these references out, so a shallow `Object.freeze([...])` would still let another module
29
35
  // rewrite `engine`/`structuralClass` after `assertNoDuplicateEntries()` has passed.
30
36
  const AUTHORED_WHITELIST = Object.freeze([
37
+ // ── The cert-#1 set (strategy-owned data; ADR-112 §3 / #2291) ──
38
+ Object.freeze({ engine: 'regex', structuralClass: 'debug-assert-len-mismatch' }),
39
+ Object.freeze({ engine: 'ast-grep', structuralClass: 'procgen-entropy-clock-source' }),
40
+ Object.freeze({ engine: 'ast-grep', structuralClass: 'is_finite' }),
41
+ // ── Mechanism-validating exemplars (the original predicate proofs) ──
31
42
  Object.freeze({ engine: 'regex', structuralClass: 'forbidden-literal-token' }),
32
43
  Object.freeze({ engine: 'ast-grep', structuralClass: 'node-shape-presence' }),
33
44
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"authored-whitelist.js","sourceRoot":"","sources":["../../src/commands/authored-whitelist.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,8EAA8E;AAC9E,+EAA+E;AAC/E,iFAAiF;AACjF,gFAAgF;AAChF,+EAA+E;AAC/E,kFAAkF;AAClF,kFAAkF;AAClF,6EAA6E;AAC7E,mFAAmF;AACnF,EAAE;AACF,gFAAgF;AAChF,iFAAiF;AACjF,kFAAkF;AAClF,iFAAiF;AACjF,8EAA8E;AAC9E,mFAAmF;AACnF,oFAAoF;AACpF,mFAAmF;AAInF;;;GAGG;AACH,2FAA2F;AAC3F,2FAA2F;AAC3F,oFAAoF;AACpF,MAAM,kBAAkB,GAA8B,MAAM,CAAC,MAAM,CAAC;IAClE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,CAAC;IAC9E,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,qBAAqB,EAAE,CAAC;CAC9E,CAAC,CAAC;AAEH;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,OAAkC;IAClE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;QAC1D,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,gFAAgF,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,eAAe,8DAA8D,CAC7K,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;AACH,CAAC;AACD,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"authored-whitelist.js","sourceRoot":"","sources":["../../src/commands/authored-whitelist.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,8EAA8E;AAC9E,+EAA+E;AAC/E,iFAAiF;AACjF,iFAAiF;AACjF,8EAA8E;AAC9E,kFAAkF;AAClF,+EAA+E;AAC/E,+EAA+E;AAC/E,oCAAoC;AACpC,EAAE;AACF,gFAAgF;AAChF,iFAAiF;AACjF,kFAAkF;AAClF,iFAAiF;AACjF,8EAA8E;AAC9E,mFAAmF;AACnF,oFAAoF;AACpF,mFAAmF;AAInF;;;;;;;;;GASG;AACH,2FAA2F;AAC3F,2FAA2F;AAC3F,oFAAoF;AACpF,MAAM,kBAAkB,GAA8B,MAAM,CAAC,MAAM,CAAC;IAClE,kEAAkE;IAClE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,CAAC;IAChF,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,8BAA8B,EAAE,CAAC;IACtF,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;IACnE,uEAAuE;IACvE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,CAAC;IAC9E,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,qBAAqB,EAAE,CAAC;CAC9E,CAAC,CAAC;AAEH;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,OAAkC;IAClE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;QAC1D,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,gFAAgF,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,eAAe,8DAA8D,CAC7K,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;AACH,CAAC;AACD,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"eject.d.ts","sourceRoot":"","sources":["../../src/commands/eject.ts"],"names":[],"mappings":"AAqCA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AA4ED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAE3E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAE9E;AA4UD,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAsEvE"}
1
+ {"version":3,"file":"eject.d.ts","sourceRoot":"","sources":["../../src/commands/eject.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AA4ED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAE3E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAE9E;AAqVD,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAsEvE"}
@@ -1,6 +1,5 @@
1
1
  import * as fs from 'node:fs';
2
2
  import * as path from 'node:path';
3
- import { SKILL_MARKER_END, SKILL_MARKER_START } from './init-templates.js';
4
3
  // ─── Constants ──────────────────────────────────────────
5
4
  const TAG = 'Eject';
6
5
  const TOTEM_HOOK_MARKER = '[totem] post-merge hook';
@@ -8,8 +7,6 @@ const TOTEM_HOOK_END = '[totem] end post-merge';
8
7
  const TOTEM_CHECKOUT_MARKER = '[totem] post-checkout hook';
9
8
  const TOTEM_CHECKOUT_END = '[totem] end post-checkout';
10
9
  const TOTEM_FILE_MARKER = '// [totem] auto-generated';
11
- /** Skill names distributed by Phase C slice 3 (mmnto-ai/totem#1890). */
12
- const DISTRIBUTED_CLAUDE_SKILL_NAMES = ['signoff', 'review-reply'];
13
10
  /** Files that may have AI reflex blocks appended by `totem init`. */
14
11
  const REFLEX_FILES = ['CLAUDE.md', '.cursorrules'];
15
12
  /** Files scaffolded by `totem init` that are fully owned by Totem. */
@@ -298,9 +295,16 @@ function scrubCommittedClaudeSettings(cwd, summary) {
298
295
  * empty `.claude/skills/<name>/` and `.claude/skills/` get unlinked so the
299
296
  * filesystem state is clean.
300
297
  */
301
- function scrubClaudeSkills(cwd, summary) {
298
+ async function scrubClaudeSkills(cwd, summary) {
299
+ // Lazy-load init-templates (CLI command files defer heavy imports to keep
300
+ // startup fast, mmnto-ai/totem#2299 review). Derive the scrub list from the
301
+ // canonical DISTRIBUTED_CLAUDE_SKILLS so eject stays in lockstep with
302
+ // `totem init` — a new distributed skill can never orphan on eject because a
303
+ // hand-mirrored list drifted.
304
+ const { DISTRIBUTED_CLAUDE_SKILLS, SKILL_MARKER_START, SKILL_MARKER_END } = await import('./init-templates.js');
305
+ const distributedSkillNames = DISTRIBUTED_CLAUDE_SKILLS.map((s) => s.name);
302
306
  const skillsRoot = path.join(cwd, '.claude', 'skills');
303
- for (const name of DISTRIBUTED_CLAUDE_SKILL_NAMES) {
307
+ for (const name of distributedSkillNames) {
304
308
  const rel = `.claude/skills/${name}/SKILL.md`;
305
309
  const filePath = path.join(skillsRoot, name, 'SKILL.md');
306
310
  if (!fs.existsSync(filePath)) {
@@ -435,7 +439,7 @@ export async function ejectCommand(options) {
435
439
  // 4. Scrub Claude settings.json (committed PreWriteShield + SessionStart entries)
436
440
  scrubCommittedClaudeSettings(cwd, summary);
437
441
  // 5. Scrub distributed Claude session-utility skills (Phase C slice 3)
438
- scrubClaudeSkills(cwd, summary);
442
+ await scrubClaudeSkills(cwd, summary);
439
443
  // 6. Scrub AI reflex blocks from markdown files
440
444
  scrubReflexFiles(cwd, summary);
441
445
  // 7. Delete artifacts
@@ -1 +1 @@
1
- {"version":3,"file":"eject.js","sourceRoot":"","sources":["../../src/commands/eject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eject.js","sourceRoot":"","sources":["../../src/commands/eject.ts"],"names":[],"mappings":"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"}