@mmnto/cli 1.42.0 → 1.43.1
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/commands/docs.test.js +22 -18
- package/dist/commands/docs.test.js.map +1 -1
- package/dist/commands/doctor-claim-discipline.d.ts +56 -0
- package/dist/commands/doctor-claim-discipline.d.ts.map +1 -0
- package/dist/commands/doctor-claim-discipline.js +341 -0
- package/dist/commands/doctor-claim-discipline.js.map +1 -0
- package/dist/commands/doctor-claim-discipline.test.d.ts +2 -0
- package/dist/commands/doctor-claim-discipline.test.d.ts.map +1 -0
- package/dist/commands/doctor-claim-discipline.test.js +210 -0
- package/dist/commands/doctor-claim-discipline.test.js.map +1 -0
- package/dist/commands/init-templates.d.ts +1 -1
- package/dist/commands/init-templates.d.ts.map +1 -1
- package/dist/commands/init-templates.js +35 -19
- package/dist/commands/init-templates.js.map +1 -1
- package/dist/commands/install-hooks.d.ts.map +1 -1
- package/dist/commands/install-hooks.js +11 -0
- package/dist/commands/install-hooks.js.map +1 -1
- package/dist/commands/install-hooks.test.js +25 -0
- package/dist/commands/install-hooks.test.js.map +1 -1
- package/dist/commands/spec.test.js +3 -3
- package/dist/commands/spec.test.js.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/utils.test.js +1 -1
- package/dist/utils.test.js.map +1 -1
- package/package.json +2 -2
|
@@ -93,10 +93,10 @@ describe('docsCommand', () => {
|
|
|
93
93
|
it('filters docs with --only', async () => {
|
|
94
94
|
mockConfig([
|
|
95
95
|
{ path: 'README.md', description: 'readme', trigger: 'post-release' },
|
|
96
|
-
{ path: 'docs/roadmap.md', description: 'roadmap', trigger: 'post-release' },
|
|
96
|
+
{ path: 'docs/wiki/roadmap.md', description: 'roadmap', trigger: 'post-release' },
|
|
97
97
|
]);
|
|
98
98
|
writeDoc(tmpDir, 'README.md', '# Old README\n');
|
|
99
|
-
writeDoc(tmpDir, 'docs/roadmap.md', '# Old Roadmap\n');
|
|
99
|
+
writeDoc(tmpDir, 'docs/wiki/roadmap.md', '# Old Roadmap\n');
|
|
100
100
|
await docsCommand([], { only: 'readme', yes: true });
|
|
101
101
|
// Only one orchestrator call (for README.md)
|
|
102
102
|
expect(runOrchestrator).toHaveBeenCalledTimes(1);
|
|
@@ -133,10 +133,10 @@ describe('docsCommand', () => {
|
|
|
133
133
|
it('processes multiple docs sequentially', async () => {
|
|
134
134
|
mockConfig([
|
|
135
135
|
{ path: 'README.md', description: 'readme', trigger: 'post-release' },
|
|
136
|
-
{ path: 'docs/roadmap.md', description: 'roadmap', trigger: 'post-release' },
|
|
136
|
+
{ path: 'docs/wiki/roadmap.md', description: 'roadmap', trigger: 'post-release' },
|
|
137
137
|
]);
|
|
138
138
|
writeDoc(tmpDir, 'README.md', '# Old README\n');
|
|
139
|
-
writeDoc(tmpDir, 'docs/roadmap.md', '# Old Roadmap\n');
|
|
139
|
+
writeDoc(tmpDir, 'docs/wiki/roadmap.md', '# Old Roadmap\n');
|
|
140
140
|
await docsCommand([], { yes: true });
|
|
141
141
|
expect(runOrchestrator).toHaveBeenCalledTimes(2);
|
|
142
142
|
});
|
|
@@ -176,29 +176,33 @@ describe('docsCommand', () => {
|
|
|
176
176
|
it('targets a single doc by path', async () => {
|
|
177
177
|
mockConfig([
|
|
178
178
|
{ path: 'README.md', description: 'readme', trigger: 'post-release' },
|
|
179
|
-
{ path: 'docs/roadmap.md', description: 'roadmap', trigger: 'post-release' },
|
|
179
|
+
{ path: 'docs/wiki/roadmap.md', description: 'roadmap', trigger: 'post-release' },
|
|
180
180
|
]);
|
|
181
181
|
writeDoc(tmpDir, 'README.md', '# Old README\n');
|
|
182
|
-
writeDoc(tmpDir, 'docs/roadmap.md', '# Old Roadmap\n');
|
|
182
|
+
writeDoc(tmpDir, 'docs/wiki/roadmap.md', '# Old Roadmap\n');
|
|
183
183
|
await docsCommand(['README.md'], { yes: true });
|
|
184
184
|
expect(runOrchestrator).toHaveBeenCalledTimes(1);
|
|
185
185
|
});
|
|
186
186
|
it('targets multiple docs by path', async () => {
|
|
187
187
|
mockConfig([
|
|
188
188
|
{ path: 'README.md', description: 'readme', trigger: 'post-release' },
|
|
189
|
-
{ path: 'docs/roadmap.md', description: 'roadmap', trigger: 'post-release' },
|
|
190
|
-
{
|
|
189
|
+
{ path: 'docs/wiki/roadmap.md', description: 'roadmap', trigger: 'post-release' },
|
|
190
|
+
{
|
|
191
|
+
path: 'docs/reference/architecture.md',
|
|
192
|
+
description: 'arch',
|
|
193
|
+
trigger: 'post-release',
|
|
194
|
+
},
|
|
191
195
|
]);
|
|
192
196
|
writeDoc(tmpDir, 'README.md', '# Old README\n');
|
|
193
|
-
writeDoc(tmpDir, 'docs/roadmap.md', '# Old Roadmap\n');
|
|
194
|
-
writeDoc(tmpDir, 'docs/architecture.md', '# Old Arch\n');
|
|
195
|
-
await docsCommand(['README.md', 'docs/roadmap.md'], { yes: true });
|
|
197
|
+
writeDoc(tmpDir, 'docs/wiki/roadmap.md', '# Old Roadmap\n');
|
|
198
|
+
writeDoc(tmpDir, 'docs/reference/architecture.md', '# Old Arch\n');
|
|
199
|
+
await docsCommand(['README.md', 'docs/wiki/roadmap.md'], { yes: true });
|
|
196
200
|
expect(runOrchestrator).toHaveBeenCalledTimes(2);
|
|
197
201
|
});
|
|
198
202
|
it('normalizes ./prefix in positional paths', async () => {
|
|
199
203
|
mockConfig([
|
|
200
204
|
{ path: 'README.md', description: 'readme', trigger: 'post-release' },
|
|
201
|
-
{ path: 'docs/roadmap.md', description: 'roadmap', trigger: 'post-release' },
|
|
205
|
+
{ path: 'docs/wiki/roadmap.md', description: 'roadmap', trigger: 'post-release' },
|
|
202
206
|
]);
|
|
203
207
|
writeDoc(tmpDir, 'README.md', '# Old README\n');
|
|
204
208
|
await docsCommand(['./README.md'], { yes: true });
|
|
@@ -223,7 +227,7 @@ describe('docsCommand', () => {
|
|
|
223
227
|
it('throws when both positional paths and --only are provided', async () => {
|
|
224
228
|
mockConfig([
|
|
225
229
|
{ path: 'README.md', description: 'readme', trigger: 'post-release' },
|
|
226
|
-
{ path: 'docs/roadmap.md', description: 'roadmap', trigger: 'post-release' },
|
|
230
|
+
{ path: 'docs/wiki/roadmap.md', description: 'roadmap', trigger: 'post-release' },
|
|
227
231
|
]);
|
|
228
232
|
await expect(docsCommand(['README.md'], { only: 'roadmap' })).rejects.toThrow('Cannot combine positional doc paths with --only flag');
|
|
229
233
|
});
|
|
@@ -237,12 +241,12 @@ describe('docsCommand', () => {
|
|
|
237
241
|
it('scopes dirty check to targeted docs only', async () => {
|
|
238
242
|
mockConfig([
|
|
239
243
|
{ path: 'README.md', description: 'readme', trigger: 'post-release' },
|
|
240
|
-
{ path: 'docs/roadmap.md', description: 'roadmap', trigger: 'post-release' },
|
|
244
|
+
{ path: 'docs/wiki/roadmap.md', description: 'roadmap', trigger: 'post-release' },
|
|
241
245
|
]);
|
|
242
246
|
// Only roadmap is dirty, but we're targeting README
|
|
243
|
-
vi.mocked(isFileDirty).mockImplementation((_cwd, filePath) => filePath === 'docs/roadmap.md');
|
|
247
|
+
vi.mocked(isFileDirty).mockImplementation((_cwd, filePath) => filePath === 'docs/wiki/roadmap.md');
|
|
244
248
|
writeDoc(tmpDir, 'README.md', '# Old README\n');
|
|
245
|
-
writeDoc(tmpDir, 'docs/roadmap.md', '# Old Roadmap\n');
|
|
249
|
+
writeDoc(tmpDir, 'docs/wiki/roadmap.md', '# Old Roadmap\n');
|
|
246
250
|
// Should succeed — README is not dirty
|
|
247
251
|
await docsCommand(['README.md'], { yes: true });
|
|
248
252
|
expect(runOrchestrator).toHaveBeenCalledTimes(1);
|
|
@@ -425,14 +429,14 @@ describe('resolveIsUserFacing', () => {
|
|
|
425
429
|
});
|
|
426
430
|
it('returns false for non-readme files when userFacing is undefined', () => {
|
|
427
431
|
expect(resolveIsUserFacing({
|
|
428
|
-
path: 'docs/roadmap.md',
|
|
432
|
+
path: 'docs/wiki/roadmap.md',
|
|
429
433
|
description: 'roadmap',
|
|
430
434
|
trigger: 'post-release',
|
|
431
435
|
})).toBe(false);
|
|
432
436
|
});
|
|
433
437
|
it('returns true for non-readme files when userFacing is true', () => {
|
|
434
438
|
expect(resolveIsUserFacing({
|
|
435
|
-
path: 'docs/architecture.md',
|
|
439
|
+
path: 'docs/reference/architecture.md',
|
|
436
440
|
description: 'arch',
|
|
437
441
|
trigger: 'post-release',
|
|
438
442
|
userFacing: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.test.js","sourceRoot":"","sources":["../../src/commands/docs.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"docs.test.js","sourceRoot":"","sources":["../../src/commands/docs.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export interface ClaimDisciplineFinding {
|
|
2
|
+
ruleId: string;
|
|
3
|
+
ruleHeading: string;
|
|
4
|
+
file: string;
|
|
5
|
+
line: number;
|
|
6
|
+
match: string;
|
|
7
|
+
severity: 'error' | 'warning';
|
|
8
|
+
}
|
|
9
|
+
export interface ClaimDisciplineResult {
|
|
10
|
+
/** False only when an `error`-severity finding fires AND no bypass is recorded. */
|
|
11
|
+
valid: boolean;
|
|
12
|
+
findings: ClaimDisciplineFinding[];
|
|
13
|
+
warnings: string[];
|
|
14
|
+
/** True when TOTEM_GATE_BYPASS_JUSTIFICATION is set with non-empty value. */
|
|
15
|
+
bypassed: boolean;
|
|
16
|
+
/** Verbatim justification text when bypassed; undefined otherwise. */
|
|
17
|
+
bypassJustification?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface ClaimDisciplineOptions {
|
|
20
|
+
/** Override env reading for tests (production uses process.env). */
|
|
21
|
+
envForTest?: NodeJS.ProcessEnv;
|
|
22
|
+
/** Override file discovery for tests (production walks WWND surfaces on disk). */
|
|
23
|
+
filesForTest?: string[];
|
|
24
|
+
/** Override repo root for tests (production calls resolveGitRoot). */
|
|
25
|
+
repoRootForTest?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Programmatic surface — returns the result without exiting or throwing.
|
|
29
|
+
* The CLI action layer wraps this and throws a `TotemError` when
|
|
30
|
+
* `result.valid === false` so the top-level `handleError` produces the exit
|
|
31
|
+
* code (avoids direct `process.exit()` calls per AGENTS.md doctrine).
|
|
32
|
+
*/
|
|
33
|
+
export declare function doctorClaimDisciplineCommand(options?: ClaimDisciplineOptions): Promise<ClaimDisciplineResult>;
|
|
34
|
+
export interface ClaimDisciplineCliOptions extends ClaimDisciplineOptions {
|
|
35
|
+
/**
|
|
36
|
+
* Strict mode: promote `warning`-severity findings to gate failures (same
|
|
37
|
+
* semantic as `totem doctor --strict`). Absent the flag, only
|
|
38
|
+
* `error`-severity findings fail the gate. The pre-push hook invokes
|
|
39
|
+
* `--claim-discipline --strict` per Proposal 279 § Implementation Notes Q3.
|
|
40
|
+
*
|
|
41
|
+
* `strict` is CLI-presentation-only — the programmatic `doctorClaimDisciplineCommand`
|
|
42
|
+
* always returns the same findings; this flag controls whether the CLI throws on
|
|
43
|
+
* warning-severity findings. Inherited test-injection fields (`envForTest`,
|
|
44
|
+
* `filesForTest`, `repoRootForTest`) pass through to the programmatic command for
|
|
45
|
+
* integration testing.
|
|
46
|
+
*/
|
|
47
|
+
strict?: boolean;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* CLI entry — wraps `doctorClaimDisciplineCommand` and throws on hard
|
|
51
|
+
* failure so the top-level `handleError` produces the non-zero exit code
|
|
52
|
+
* without a direct `process.exit` call. Warning-severity findings are
|
|
53
|
+
* reported to the user; they fail the gate only under `--strict`.
|
|
54
|
+
*/
|
|
55
|
+
export declare function doctorClaimDisciplineCliCommand(options?: ClaimDisciplineCliOptions): Promise<void>;
|
|
56
|
+
//# sourceMappingURL=doctor-claim-discipline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-claim-discipline.d.ts","sourceRoot":"","sources":["../../src/commands/doctor-claim-discipline.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,mFAAmF;IACnF,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,6EAA6E;IAC7E,QAAQ,EAAE,OAAO,CAAC;IAClB,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC/B,kFAAkF;IAClF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAwMD;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CA2HhC;AAID,MAAM,WAAW,yBAA0B,SAAQ,sBAAsB;IACvE;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,+BAA+B,CACnD,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,IAAI,CAAC,CAwEf"}
|
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
// ─── Constants ──────────────────────────────────────────
|
|
3
|
+
const TAG = 'ClaimDiscipline';
|
|
4
|
+
const BYPASS_ENV_VAR = 'TOTEM_GATE_BYPASS_JUSTIFICATION';
|
|
5
|
+
/**
|
|
6
|
+
* Discovery convention: WWND rules are recognized by their lesson heading
|
|
7
|
+
* starting with this prefix. Authoring discipline keeps the prefix in sync
|
|
8
|
+
* with the proposal scope (`.totem/lessons/wwnd-rule-*.md`).
|
|
9
|
+
*
|
|
10
|
+
* Filename-based discovery (glob `.totem/lessons/wwnd-*.md`) was considered
|
|
11
|
+
* but would require a lesson-on-disk → compiled-rule-hash mapping pass at
|
|
12
|
+
* runtime; heading-prefix lookup is one-pass against the already-loaded rule
|
|
13
|
+
* set.
|
|
14
|
+
*/
|
|
15
|
+
const WWND_HEADING_PREFIX = 'WWND Rule ';
|
|
16
|
+
/**
|
|
17
|
+
* In-scope public claim surfaces per Proposal 279 § Scope. The gate fires
|
|
18
|
+
* only when these files exist in the repo; the rules themselves carry
|
|
19
|
+
* narrower `fileGlobs` for the actual match dispatch.
|
|
20
|
+
*/
|
|
21
|
+
const WWND_LITERAL_SURFACES = ['README.md', 'AGENTS.md', 'design-tenets.md'];
|
|
22
|
+
const WWND_GLOB_SURFACES = ['docs/wiki/**'];
|
|
23
|
+
/**
|
|
24
|
+
* Filter the loaded rule set to WWND rules, validate the regex, and
|
|
25
|
+
* project to a tighter shape used by the scan loop. Silently skip rules
|
|
26
|
+
* with invalid regex (logged via the warnings collector at the caller).
|
|
27
|
+
*/
|
|
28
|
+
function discoverWwndRules(rules, warnings) {
|
|
29
|
+
const out = [];
|
|
30
|
+
for (const rule of rules) {
|
|
31
|
+
// Runtime type guards — `loadCompiledRules` validates schema, but cast-at-boundary
|
|
32
|
+
// means malformed disk data could still slip through. Defense-in-depth guards
|
|
33
|
+
// degrade gracefully instead of throwing during pre-push gating.
|
|
34
|
+
if (typeof rule.lessonHeading !== 'string')
|
|
35
|
+
continue;
|
|
36
|
+
if (typeof rule.lessonHash !== 'string')
|
|
37
|
+
continue;
|
|
38
|
+
if (typeof rule.pattern !== 'string')
|
|
39
|
+
continue;
|
|
40
|
+
if (!rule.lessonHeading.startsWith(WWND_HEADING_PREFIX))
|
|
41
|
+
continue;
|
|
42
|
+
if (rule.engine !== undefined && rule.engine !== 'regex') {
|
|
43
|
+
// Non-regex WWND rules (ast / ast-grep) need engine-specific dispatch
|
|
44
|
+
// not yet implemented in PR α; flag explicitly so PR β knows to wire it.
|
|
45
|
+
warnings.push(`WWND rule '${rule.lessonHeading}' uses engine '${String(rule.engine)}' which is not yet supported by the claim-discipline scanner. Rule skipped.`);
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (rule.status !== undefined && rule.status !== 'active')
|
|
49
|
+
continue;
|
|
50
|
+
let regex;
|
|
51
|
+
try {
|
|
52
|
+
regex = new RegExp(rule.pattern, 'g');
|
|
53
|
+
// totem-context: invalid-regex is recorded as a warning + skipped, not silently swallowed; this is the sensor pattern (record + continue with the rest of the rule set)
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
57
|
+
warnings.push(`WWND rule '${rule.lessonHeading}' has invalid regex '${rule.pattern}': ${msg}. Rule skipped.`);
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
// Filter fileGlobs to known-string entries; absent or non-array → undefined.
|
|
61
|
+
const safeFileGlobs = Array.isArray(rule.fileGlobs)
|
|
62
|
+
? rule.fileGlobs.filter((g) => typeof g === 'string' && g.length > 0)
|
|
63
|
+
: undefined;
|
|
64
|
+
out.push({
|
|
65
|
+
lessonHash: rule.lessonHash,
|
|
66
|
+
lessonHeading: rule.lessonHeading,
|
|
67
|
+
pattern: regex,
|
|
68
|
+
severity: rule.severity ?? 'warning',
|
|
69
|
+
fileGlobs: safeFileGlobs,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return out;
|
|
73
|
+
}
|
|
74
|
+
// ─── Scan loop ──────────────────────────────────────────
|
|
75
|
+
function scanFile(filePath, relPath, rules, matchesGlob, readFile, sanitizeForTerminal) {
|
|
76
|
+
const findings = [];
|
|
77
|
+
let content;
|
|
78
|
+
try {
|
|
79
|
+
content = readFile(filePath);
|
|
80
|
+
// totem-context: unreadable files (permission, transient FS error) are not a finding class — skip silently and continue scanning the rest of the surface set
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
void err;
|
|
84
|
+
return findings;
|
|
85
|
+
}
|
|
86
|
+
const lines = content.split('\n');
|
|
87
|
+
for (const rule of rules) {
|
|
88
|
+
// Honor per-rule fileGlobs when present; absent globs mean "applies to
|
|
89
|
+
// any in-scope surface" (the scanner's outer surface-filter is the gate).
|
|
90
|
+
if (rule.fileGlobs && rule.fileGlobs.length > 0) {
|
|
91
|
+
const include = rule.fileGlobs.some((g) => matchesGlob(relPath, g));
|
|
92
|
+
if (!include)
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
for (let i = 0; i < lines.length; i++) {
|
|
96
|
+
const line = lines[i] ?? '';
|
|
97
|
+
// matchAll iterates without the manual lastIndex bookkeeping that
|
|
98
|
+
// RegExp.exec requires; clean per-line scan with no zero-width-loop
|
|
99
|
+
// hazard.
|
|
100
|
+
for (const m of line.matchAll(rule.pattern)) {
|
|
101
|
+
findings.push({
|
|
102
|
+
ruleId: rule.lessonHash,
|
|
103
|
+
ruleHeading: rule.lessonHeading,
|
|
104
|
+
file: relPath,
|
|
105
|
+
line: i + 1,
|
|
106
|
+
// Sanitize-at-source: README/AGENTS prose is untrusted (could carry terminal
|
|
107
|
+
// control sequences). Sanitize once here so downstream consumers (ledger writer,
|
|
108
|
+
// CLI logger) all get safe text. Same hardening pattern verify-badges uses.
|
|
109
|
+
match: sanitizeForTerminal(m[0]),
|
|
110
|
+
severity: rule.severity,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return findings;
|
|
116
|
+
}
|
|
117
|
+
// ─── Filesystem walk (zero-dep alternative to glob package) ─
|
|
118
|
+
function walkMarkdown(absDir, relPrefix, out, fs, path) {
|
|
119
|
+
const entries = fs.readdirSync(absDir, { withFileTypes: true });
|
|
120
|
+
for (const entry of entries) {
|
|
121
|
+
const absChild = path.join(absDir, entry.name);
|
|
122
|
+
const relChild = path.posix.join(relPrefix, entry.name);
|
|
123
|
+
if (entry.isDirectory()) {
|
|
124
|
+
walkMarkdown(absChild, relChild, out, fs, path);
|
|
125
|
+
}
|
|
126
|
+
else if (entry.isFile() && entry.name.endsWith('.md')) {
|
|
127
|
+
out.push(relChild);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// ─── Telemetry ──────────────────────────────────────────
|
|
132
|
+
async function emitTelemetry(repoRoot, findings, bypassed, bypassJustification) {
|
|
133
|
+
if (findings.length === 0)
|
|
134
|
+
return;
|
|
135
|
+
try {
|
|
136
|
+
const { appendLedgerEvent } = await import('@mmnto/totem');
|
|
137
|
+
const path = await import('node:path');
|
|
138
|
+
const totemDir = path.join(repoRoot, '.totem');
|
|
139
|
+
// Read the CLI's own version once per invocation — same pattern as
|
|
140
|
+
// `packages/cli/src/index.ts` and `run-compiled-rules.ts`.
|
|
141
|
+
let cliVersion;
|
|
142
|
+
try {
|
|
143
|
+
const req = createRequire(import.meta.url);
|
|
144
|
+
const pkg = req('../../package.json');
|
|
145
|
+
cliVersion = pkg.version;
|
|
146
|
+
// totem-context: cli_version is a best-effort enrichment of the ledger event; failure to resolve package.json must not block the gate
|
|
147
|
+
}
|
|
148
|
+
catch (err) {
|
|
149
|
+
void err;
|
|
150
|
+
}
|
|
151
|
+
// `justification` is intentionally an empty string for the non-bypass
|
|
152
|
+
// path. The LedgerEventSchema declares `justification: z.string().default('')`
|
|
153
|
+
// (no `.min(1)`), so empty strings are valid input. Audit consumers that
|
|
154
|
+
// need to find bypassed events filter on `.justification != ""` rather
|
|
155
|
+
// than treating absence as the signal — keeps the on-disk shape consistent
|
|
156
|
+
// across event types where empty justification is the norm
|
|
157
|
+
// (`suppress`, `override`, `exemption` all write `''` on the no-context path).
|
|
158
|
+
const justification = bypassed && bypassJustification !== undefined ? bypassJustification : '';
|
|
159
|
+
for (const f of findings) {
|
|
160
|
+
appendLedgerEvent(totemDir, {
|
|
161
|
+
timestamp: new Date().toISOString(),
|
|
162
|
+
type: 'claim_discipline_finding',
|
|
163
|
+
ruleId: f.ruleId,
|
|
164
|
+
file: f.file,
|
|
165
|
+
line: f.line,
|
|
166
|
+
activity_name: f.file,
|
|
167
|
+
justification,
|
|
168
|
+
source: 'lint',
|
|
169
|
+
...(cliVersion !== undefined ? { cli_version: cliVersion } : {}),
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
// totem-context: fire-and-forget telemetry; ledger-write failure must not block the gate per the A.3.a writer-contract pattern
|
|
173
|
+
}
|
|
174
|
+
catch (err) {
|
|
175
|
+
void err;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// ─── Main command ───────────────────────────────────────
|
|
179
|
+
/**
|
|
180
|
+
* Programmatic surface — returns the result without exiting or throwing.
|
|
181
|
+
* The CLI action layer wraps this and throws a `TotemError` when
|
|
182
|
+
* `result.valid === false` so the top-level `handleError` produces the exit
|
|
183
|
+
* code (avoids direct `process.exit()` calls per AGENTS.md doctrine).
|
|
184
|
+
*/
|
|
185
|
+
export async function doctorClaimDisciplineCommand(options = {}) {
|
|
186
|
+
const { loadCompiledRules, matchesGlob, resolveGitRoot, sanitizeForTerminal } = await import('@mmnto/totem');
|
|
187
|
+
const path = await import('node:path');
|
|
188
|
+
const fs = await import('node:fs');
|
|
189
|
+
const env = options.envForTest ?? process.env;
|
|
190
|
+
const repoRoot = options.repoRootForTest ?? resolveGitRoot(process.cwd());
|
|
191
|
+
const findings = [];
|
|
192
|
+
const warnings = [];
|
|
193
|
+
if (!repoRoot) {
|
|
194
|
+
return {
|
|
195
|
+
valid: true,
|
|
196
|
+
findings,
|
|
197
|
+
warnings: ['Not inside a git repo — skipping claim-discipline check.'],
|
|
198
|
+
bypassed: false,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
// ─── Discover in-scope files ─────────────────────────
|
|
202
|
+
let files;
|
|
203
|
+
if (options.filesForTest) {
|
|
204
|
+
files = options.filesForTest;
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
files = [];
|
|
208
|
+
for (const literal of WWND_LITERAL_SURFACES) {
|
|
209
|
+
const abs = path.join(repoRoot, literal);
|
|
210
|
+
if (fs.existsSync(abs))
|
|
211
|
+
files.push(literal);
|
|
212
|
+
}
|
|
213
|
+
// Glob expansion for `docs/wiki/**` is deferred to PR β when the surface
|
|
214
|
+
// becomes load-bearing. For now: recursive walk over docs/wiki/ if it
|
|
215
|
+
// exists, collecting *.md files. Keeps PR α's dep footprint at zero
|
|
216
|
+
// glob libs.
|
|
217
|
+
for (const globRoot of WWND_GLOB_SURFACES) {
|
|
218
|
+
// Strip trailing /** to get the directory prefix
|
|
219
|
+
const dirPart = globRoot.replace(/\/\*\*$/, '');
|
|
220
|
+
const absDir = path.join(repoRoot, dirPart);
|
|
221
|
+
if (!fs.existsSync(absDir))
|
|
222
|
+
continue;
|
|
223
|
+
try {
|
|
224
|
+
const collected = [];
|
|
225
|
+
walkMarkdown(absDir, dirPart, collected, fs, path);
|
|
226
|
+
files.push(...collected);
|
|
227
|
+
// totem-context: walk failure is recorded as a warning, not silently swallowed — sensor pattern (record + continue scanning the literal surfaces)
|
|
228
|
+
}
|
|
229
|
+
catch (err) {
|
|
230
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
231
|
+
warnings.push(`Failed to walk '${globRoot}': ${msg}`);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
if (files.length === 0) {
|
|
236
|
+
// No in-scope surfaces present → nothing to check. Not a failure.
|
|
237
|
+
return { valid: true, findings, warnings, bypassed: false };
|
|
238
|
+
}
|
|
239
|
+
// ─── Load + filter WWND rules ─────────────────────────
|
|
240
|
+
const rulesPath = path.join(repoRoot, '.totem', 'compiled-rules.json');
|
|
241
|
+
if (!fs.existsSync(rulesPath)) {
|
|
242
|
+
warnings.push('.totem/compiled-rules.json not found — skipping claim-discipline check.');
|
|
243
|
+
return { valid: true, findings, warnings, bypassed: false };
|
|
244
|
+
}
|
|
245
|
+
// Graceful recovery on corrupt/malformed compiled-rules.json — pre-push gating must
|
|
246
|
+
// not crash on file corruption or partial writes. Empty rule set + warning is the
|
|
247
|
+
// sensor-pattern equivalent of the "no WWND rules found" path below.
|
|
248
|
+
let rules;
|
|
249
|
+
try {
|
|
250
|
+
rules = loadCompiledRules(rulesPath);
|
|
251
|
+
// totem-context: load failure is recorded as a warning + recovered-to-empty, not silently swallowed; matches the file-corruption-recovery pattern used elsewhere for config artifacts
|
|
252
|
+
}
|
|
253
|
+
catch (err) {
|
|
254
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
255
|
+
warnings.push(`Failed to load .totem/compiled-rules.json (${msg}) — claim-discipline check skipped. Run 'totem lesson compile' to regenerate.`);
|
|
256
|
+
return { valid: true, findings, warnings, bypassed: false };
|
|
257
|
+
}
|
|
258
|
+
const wwndRules = discoverWwndRules(rules, warnings);
|
|
259
|
+
if (wwndRules.length === 0) {
|
|
260
|
+
warnings.push('No WWND rules found in compiled-rules.json — claim-discipline check is inert until at least one wwnd-* lesson is compiled.');
|
|
261
|
+
return { valid: true, findings, warnings, bypassed: false };
|
|
262
|
+
}
|
|
263
|
+
// ─── Scan ─────────────────────────────────────────────
|
|
264
|
+
for (const relPath of files) {
|
|
265
|
+
const abs = path.join(repoRoot, relPath);
|
|
266
|
+
findings.push(
|
|
267
|
+
// totem-context: gate operates on working-tree content (what the operator is about to push), not staged index — `git show :path` would skip unstaged edits that the gate should still surface
|
|
268
|
+
...scanFile(abs, relPath, wwndRules, matchesGlob, (p) => fs.readFileSync(p, 'utf-8'), sanitizeForTerminal));
|
|
269
|
+
}
|
|
270
|
+
// ─── Bypass handling ──────────────────────────────────
|
|
271
|
+
// Sanitize the raw env-var value before downstream use — operators can set arbitrary
|
|
272
|
+
// bytes; the same terminal-control-sequence hardening applies as for `match`.
|
|
273
|
+
const rawJustification = env[BYPASS_ENV_VAR]?.trim();
|
|
274
|
+
const bypassJustification = rawJustification !== undefined ? sanitizeForTerminal(rawJustification) : undefined;
|
|
275
|
+
const bypassed = bypassJustification !== undefined && bypassJustification.length > 0;
|
|
276
|
+
// ─── Emit telemetry ───────────────────────────────────
|
|
277
|
+
await emitTelemetry(repoRoot, findings, bypassed, bypassJustification);
|
|
278
|
+
// ─── Determine validity ───────────────────────────────
|
|
279
|
+
const errorFindings = findings.filter((f) => f.severity === 'error');
|
|
280
|
+
const valid = bypassed || errorFindings.length === 0;
|
|
281
|
+
return {
|
|
282
|
+
valid,
|
|
283
|
+
findings,
|
|
284
|
+
warnings,
|
|
285
|
+
bypassed,
|
|
286
|
+
...(bypassJustification !== undefined ? { bypassJustification } : {}),
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* CLI entry — wraps `doctorClaimDisciplineCommand` and throws on hard
|
|
291
|
+
* failure so the top-level `handleError` produces the non-zero exit code
|
|
292
|
+
* without a direct `process.exit` call. Warning-severity findings are
|
|
293
|
+
* reported to the user; they fail the gate only under `--strict`.
|
|
294
|
+
*/
|
|
295
|
+
export async function doctorClaimDisciplineCliCommand(options = {}) {
|
|
296
|
+
const { TotemError } = await import('@mmnto/totem');
|
|
297
|
+
const { bold, errorColor, log, success: successColor, warn: warnColor, } = await import('../ui.js');
|
|
298
|
+
// Strip `strict` (CLI-only) before passing the rest through to the programmatic
|
|
299
|
+
// command, which doesn't accept it. The remaining fields (envForTest / filesForTest /
|
|
300
|
+
// repoRootForTest) are inherited from ClaimDisciplineOptions and form the integration
|
|
301
|
+
// test surface that GCA's R1 finding asked us to wire.
|
|
302
|
+
const { strict, ...programmaticOptions } = options;
|
|
303
|
+
const result = await doctorClaimDisciplineCommand(programmaticOptions);
|
|
304
|
+
for (const w of result.warnings) {
|
|
305
|
+
log.warn(TAG, w);
|
|
306
|
+
}
|
|
307
|
+
if (result.findings.length === 0) {
|
|
308
|
+
log.success(TAG, `${successColor(bold('PASS'))} — no claim-discipline findings.`);
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
// Report findings to the user. Warnings go through the warn channel;
|
|
312
|
+
// errors through the error channel; both surface the file:line:match.
|
|
313
|
+
for (const f of result.findings) {
|
|
314
|
+
const tag = f.severity === 'error' ? errorColor(bold('ERROR')) : warnColor(bold('WARN'));
|
|
315
|
+
const msg = `${tag} ${f.file}:${f.line} — [${f.ruleHeading}] matched "${f.match}"`;
|
|
316
|
+
if (f.severity === 'error')
|
|
317
|
+
log.error(TAG, msg);
|
|
318
|
+
else
|
|
319
|
+
log.warn(TAG, msg);
|
|
320
|
+
}
|
|
321
|
+
if (result.bypassed) {
|
|
322
|
+
log.warn(TAG, `${warnColor(bold('BYPASSED'))} — TOTEM_GATE_BYPASS_JUSTIFICATION set; ${result.findings.length} finding(s) recorded but gate passed.`);
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
325
|
+
const errorCount = result.findings.filter((f) => f.severity === 'error').length;
|
|
326
|
+
const warningCount = result.findings.filter((f) => f.severity === 'warning').length;
|
|
327
|
+
if (!result.valid) {
|
|
328
|
+
throw new TotemError('CLAIM_DISCIPLINE_FAILED', `${errorCount} error-severity claim-discipline finding(s).`, 'Fix each error finding above by adjusting the prose (name the structural backing, soften to present-tense intent, or add the required field). To bypass once with audit trail: set TOTEM_GATE_BYPASS_JUSTIFICATION="<reason>" before pushing.');
|
|
329
|
+
}
|
|
330
|
+
// Strict mode promotes warnings to gate failures (Proposal 279 § Implementation Notes Q3
|
|
331
|
+
// — the pre-push hook invokes `--claim-discipline --strict` and expects warnings to fail
|
|
332
|
+
// the push when present).
|
|
333
|
+
if (strict && warningCount > 0) {
|
|
334
|
+
throw new TotemError('CLAIM_DISCIPLINE_FAILED', `${warningCount} warning-severity claim-discipline finding(s) under --strict.`, 'Fix each warning finding above (name the structural backing inline, or soften to present-tense intent). To bypass once with audit trail: set TOTEM_GATE_BYPASS_JUSTIFICATION="<reason>" before pushing.');
|
|
335
|
+
}
|
|
336
|
+
// Warning-only findings outside strict mode — print summary but don't throw.
|
|
337
|
+
if (warningCount > 0) {
|
|
338
|
+
log.warn(TAG, `${warnColor(bold('WARN'))} — ${warningCount} warning-severity finding(s) recorded; pass --strict (or set TOTEM_GATE_BYPASS_JUSTIFICATION) to gate on warnings.`);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
//# sourceMappingURL=doctor-claim-discipline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-claim-discipline.js","sourceRoot":"","sources":["../../src/commands/doctor-claim-discipline.ts"],"names":[],"mappings":"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"}
|