@dzhechkov/harness-core 0.4.3 → 0.4.4
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/.dz-manifest.json +3 -3
- package/README.md +12 -2
- package/dist/loop-blobs.generated.d.ts.map +1 -1
- package/dist/loop-blobs.generated.js +1 -0
- package/dist/loop-blobs.generated.js.map +1 -1
- package/dist/loop-lint.d.ts +6 -2
- package/dist/loop-lint.d.ts.map +1 -1
- package/dist/loop-lint.js +54 -0
- package/dist/loop-lint.js.map +1 -1
- package/dist/loop-plan.d.ts +17 -0
- package/dist/loop-plan.d.ts.map +1 -1
- package/dist/loop-plan.js +5 -0
- package/dist/loop-plan.js.map +1 -1
- package/dist/loop-render.d.ts.map +1 -1
- package/dist/loop-render.js +8 -0
- package/dist/loop-render.js.map +1 -1
- package/dist/skills-verify.d.ts +40 -0
- package/dist/skills-verify.d.ts.map +1 -1
- package/dist/skills-verify.js +80 -10
- package/dist/skills-verify.js.map +1 -1
- package/package.json +18 -18
- package/sbom.json +2 -2
- package/src/loop-blobs.generated.ts +1 -0
- package/src/loop-lint.ts +55 -1
- package/src/loop-plan.ts +22 -0
- package/src/loop-render.ts +8 -0
- package/src/skills-verify.ts +108 -10
- package/LICENSE +0 -21
package/dist/skills-verify.js
CHANGED
|
@@ -415,6 +415,14 @@ function parseStream(streamText) {
|
|
|
415
415
|
? rawSkills
|
|
416
416
|
: null
|
|
417
417
|
: null;
|
|
418
|
+
// Same treatment as `skills`, for the same reason: an ABSENT key is unreadable schema, and a
|
|
419
|
+
// partially-unparseable array must not be narrowed to the strings it happens to contain.
|
|
420
|
+
const rawCommands = obj.slash_commands;
|
|
421
|
+
const slashCommands = Array.isArray(rawCommands)
|
|
422
|
+
? rawCommands.every((s) => typeof s === 'string')
|
|
423
|
+
? rawCommands
|
|
424
|
+
: null
|
|
425
|
+
: null;
|
|
418
426
|
const rawPlugins = obj.plugins;
|
|
419
427
|
// An ABSENT or non-array `plugins` key is unreadable schema, not proof that nothing loaded —
|
|
420
428
|
// with containers present that difference decides FAIL vs INCONCLUSIVE (QE6 #7).
|
|
@@ -435,6 +443,7 @@ function parseStream(streamText) {
|
|
|
435
443
|
: [];
|
|
436
444
|
found.push({
|
|
437
445
|
skills,
|
|
446
|
+
slashCommands,
|
|
438
447
|
plugins,
|
|
439
448
|
pluginsReadable,
|
|
440
449
|
// An empty or relative cwd testifies to nothing — `resolve("")` silently becomes the caller's
|
|
@@ -458,11 +467,13 @@ export function verifyRegistration(evidence, options = {}) {
|
|
|
458
467
|
reason,
|
|
459
468
|
expected: [],
|
|
460
469
|
missing: [],
|
|
470
|
+
expectedCommands: [],
|
|
471
|
+
missingCommands: [],
|
|
461
472
|
registeredCount: null,
|
|
462
473
|
clientVersion: null,
|
|
463
474
|
plugins: [],
|
|
464
475
|
advisories: [],
|
|
465
|
-
controls: { cwdMatched: null, skillsListPresent: false },
|
|
476
|
+
controls: { cwdMatched: null, skillsListPresent: false, commandsListPresent: false },
|
|
466
477
|
layout: [],
|
|
467
478
|
});
|
|
468
479
|
if (!evidence || typeof evidence !== 'object')
|
|
@@ -488,16 +499,22 @@ export function verifyRegistration(evidence, options = {}) {
|
|
|
488
499
|
}
|
|
489
500
|
});
|
|
490
501
|
const expected = evidence.expected ?? scan.registrable;
|
|
502
|
+
// Unlike `expected`, this has NO fallback to a discovered set: there is nothing on disk that
|
|
503
|
+
// proves which command names a session should surface, and a guessed expectation is how a gate
|
|
504
|
+
// starts passing for the wrong reason. Not asked ⇒ not checked, and the report says so.
|
|
505
|
+
const expectedCommands = evidence.expectedCommands ?? [];
|
|
491
506
|
const layout = scan.findings;
|
|
492
507
|
const fail = (verdict, reason, extra = {}) => ({
|
|
493
508
|
expected,
|
|
509
|
+
expectedCommands,
|
|
510
|
+
missingCommands: [],
|
|
494
511
|
layout,
|
|
495
512
|
advisories: scan.advisories,
|
|
496
513
|
plugins: [],
|
|
497
514
|
clientVersion: null,
|
|
498
515
|
missing: [],
|
|
499
516
|
registeredCount: null,
|
|
500
|
-
controls: { cwdMatched: null, skillsListPresent: false },
|
|
517
|
+
controls: { cwdMatched: null, skillsListPresent: false, commandsListPresent: false },
|
|
501
518
|
...extra,
|
|
502
519
|
verdict,
|
|
503
520
|
reason,
|
|
@@ -553,20 +570,30 @@ export function verifyRegistration(evidence, options = {}) {
|
|
|
553
570
|
return fail('inconclusive', `session read ${facts.cwd}, not ${projectDir} — its listing does not describe this project`, {
|
|
554
571
|
...withFacts,
|
|
555
572
|
registeredCount: facts.skills?.length ?? null,
|
|
556
|
-
controls: { cwdMatched: false, skillsListPresent: facts.skills !== null },
|
|
573
|
+
controls: { cwdMatched: false, skillsListPresent: facts.skills !== null, commandsListPresent: facts.slashCommands !== null },
|
|
557
574
|
});
|
|
558
575
|
}
|
|
559
576
|
// 5. The listing must be readable in full.
|
|
560
577
|
if (facts.skills === null) {
|
|
561
578
|
return fail('inconclusive', 'the init listing has no readable `skills` array (absent or not all strings) — cannot read it', {
|
|
562
579
|
...withFacts,
|
|
563
|
-
controls: { cwdMatched: true, skillsListPresent: false },
|
|
580
|
+
controls: { cwdMatched: true, skillsListPresent: false, commandsListPresent: facts.slashCommands !== null },
|
|
564
581
|
});
|
|
565
582
|
}
|
|
566
|
-
|
|
583
|
+
// 5b. …and so must the COMMAND listing, whenever commands were expected. An absent
|
|
584
|
+
// `slash_commands` key is schema drift, exactly like an absent `skills` key: treating it as
|
|
585
|
+
// `[]` would report "your five commands did not register" on a Claude Code build that simply
|
|
586
|
+
// stopped emitting the key, and treating it as "fine" would pass a plugin whose commands
|
|
587
|
+
// really are missing. Neither is observable ⇒ inconclusive.
|
|
588
|
+
if (expectedCommands.length > 0 && facts.slashCommands === null) {
|
|
589
|
+
return fail('inconclusive', 'the init listing has no readable `slash_commands` array (absent or not all strings) — command registration cannot be observed', { ...withFacts, controls: { cwdMatched: true, skillsListPresent: true, commandsListPresent: false } });
|
|
590
|
+
}
|
|
591
|
+
const controls = { cwdMatched: true, skillsListPresent: true, commandsListPresent: facts.slashCommands !== null };
|
|
567
592
|
const registered = new Set(facts.skills);
|
|
568
593
|
const missing = expected.filter((name) => !registered.has(name));
|
|
569
|
-
const
|
|
594
|
+
const registeredCommands = new Set(facts.slashCommands ?? []);
|
|
595
|
+
const missingCommands = expectedCommands.filter((name) => !registeredCommands.has(name));
|
|
596
|
+
const common = { ...withFacts, expectedCommands, missingCommands, registeredCount: facts.skills.length, controls };
|
|
570
597
|
// 6. Load-blocking layout problems fail on their own — one healthy skill must not mask them.
|
|
571
598
|
if (layout.length > 0) {
|
|
572
599
|
return {
|
|
@@ -660,7 +687,13 @@ export function verifyRegistration(evidence, options = {}) {
|
|
|
660
687
|
detail: `${v} — its individual skills are NOT verified: a plugin skill's command name depends on frontmatter this gate does not model`,
|
|
661
688
|
}));
|
|
662
689
|
const allAdvisories = [...scan.advisories, ...containerAdvisories];
|
|
663
|
-
if (missing.length > 0) {
|
|
690
|
+
if (missing.length > 0 || missingCommands.length > 0) {
|
|
691
|
+
const parts = [];
|
|
692
|
+
if (missing.length > 0)
|
|
693
|
+
parts.push(`${missing.length} of ${expected.length} expected skill(s) did NOT register`);
|
|
694
|
+
if (missingCommands.length > 0) {
|
|
695
|
+
parts.push(`${missingCommands.length} of ${expectedCommands.length} expected command(s) did NOT register (${missingCommands.join(', ')})`);
|
|
696
|
+
}
|
|
664
697
|
return {
|
|
665
698
|
expected,
|
|
666
699
|
layout,
|
|
@@ -668,7 +701,7 @@ export function verifyRegistration(evidence, options = {}) {
|
|
|
668
701
|
...common,
|
|
669
702
|
missing,
|
|
670
703
|
verdict: 'fail',
|
|
671
|
-
reason:
|
|
704
|
+
reason: parts.join('; '),
|
|
672
705
|
};
|
|
673
706
|
}
|
|
674
707
|
return {
|
|
@@ -678,9 +711,11 @@ export function verifyRegistration(evidence, options = {}) {
|
|
|
678
711
|
...common,
|
|
679
712
|
missing: [],
|
|
680
713
|
verdict: 'pass',
|
|
681
|
-
reason: expected.length === 0
|
|
714
|
+
reason: expected.length === 0 && expectedCommands.length === 0
|
|
682
715
|
? 'nothing was expected to register; the session listing was read successfully'
|
|
683
|
-
: `all ${expected.length} expected skill(s)
|
|
716
|
+
: `all ${expected.length} expected skill(s)` +
|
|
717
|
+
(expectedCommands.length > 0 ? ` and all ${expectedCommands.length} expected command(s)` : '') +
|
|
718
|
+
' are registered',
|
|
684
719
|
};
|
|
685
720
|
}
|
|
686
721
|
/** Exit code contract: pass=0, fail=1, inconclusive=2 (distinct so CI can treat it separately). */
|
|
@@ -713,6 +748,12 @@ export function renderRegistrationReport(result, scan) {
|
|
|
713
748
|
for (const name of result.missing)
|
|
714
749
|
out.push(` - ${name}`);
|
|
715
750
|
}
|
|
751
|
+
if (result.expectedCommands.length) {
|
|
752
|
+
out.push(` commands: ${result.expectedCommands.length} expected` +
|
|
753
|
+
(result.controls.commandsListPresent ? '' : ' · slash_commands listing UNREADABLE'));
|
|
754
|
+
for (const name of result.missingCommands)
|
|
755
|
+
out.push(` - MISSING ${name}`);
|
|
756
|
+
}
|
|
716
757
|
if (result.layout.length) {
|
|
717
758
|
out.push(' layout problems (these can never register):');
|
|
718
759
|
for (const f of result.layout)
|
|
@@ -728,6 +769,35 @@ export function renderRegistrationReport(result, scan) {
|
|
|
728
769
|
}
|
|
729
770
|
return out.join('\n');
|
|
730
771
|
}
|
|
772
|
+
/**
|
|
773
|
+
* The names a plugin's OWN manifest says its commands and skills should register under, so a
|
|
774
|
+
* `--plugin-dir` gate run can default its expectation to the manifest instead of to a hand-typed
|
|
775
|
+
* list that drifts from it.
|
|
776
|
+
*
|
|
777
|
+
* The naming rules are MEASURED, not assumed (Claude Code 2.1.233, fixture probe 2026-08-17):
|
|
778
|
+
* · a command registers as `<plugin>:<file basename without .md>` — its frontmatter `name:` does
|
|
779
|
+
* NOT rename it (a fixture declaring `name: renamed-second` registered as `probeplug:second`);
|
|
780
|
+
* · a skill registers as `<plugin>:<directory basename>` — likewise not its frontmatter name.
|
|
781
|
+
*
|
|
782
|
+
* Returns `null` when the manifest is missing/unreadable/nameless: an unreadable manifest must not
|
|
783
|
+
* silently become an EMPTY expectation, which is the shape that passes without checking anything.
|
|
784
|
+
*/
|
|
785
|
+
export function declaredPluginSurface(pluginDir) {
|
|
786
|
+
let obj;
|
|
787
|
+
try {
|
|
788
|
+
obj = JSON.parse(readFileSync(join(pluginDir, '.claude-plugin', 'plugin.json'), 'utf8'));
|
|
789
|
+
}
|
|
790
|
+
catch {
|
|
791
|
+
return null;
|
|
792
|
+
}
|
|
793
|
+
const name = typeof obj.name === 'string' && obj.name ? obj.name : null;
|
|
794
|
+
if (name === null)
|
|
795
|
+
return null;
|
|
796
|
+
const list = (value) => Array.isArray(value) ? value.filter((x) => typeof x === 'string') : [];
|
|
797
|
+
const skills = list(obj.skills).map((rel) => `${name}:${basename(rel.replace(/\/+$/, ''))}`);
|
|
798
|
+
const commands = list(obj.commands).map((rel) => `${name}:${basename(rel).replace(/\.md$/i, '')}`);
|
|
799
|
+
return { name, skills, commands };
|
|
800
|
+
}
|
|
731
801
|
// ── The publish-time guard fact ─────────────────────────────────────
|
|
732
802
|
/**
|
|
733
803
|
* Scan a PACKAGE directory for skill dirs that could never register.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills-verify.js","sourceRoot":"","sources":["../src/skills-verify.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skills-verify.js","sourceRoot":"","sources":["../src/skills-verify.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dzhechkov/harness-core",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
4
4
|
"description": "Shared harness logic - skill loading, additive apply, and the init/sync/verify/doctor operations.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -25,21 +25,28 @@
|
|
|
25
25
|
".dz-manifest.json",
|
|
26
26
|
"sbom.json"
|
|
27
27
|
],
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "tsc -p tsconfig.json",
|
|
30
|
+
"test": "vitest run",
|
|
31
|
+
"test:watch": "vitest",
|
|
32
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
33
|
+
"lint": "tsc -p tsconfig.json --noEmit"
|
|
34
|
+
},
|
|
28
35
|
"dependencies": {
|
|
36
|
+
"@dzhechkov/adapter-agents-md": "workspace:*",
|
|
29
37
|
"@dzhechkov/adapter-claude": "^0.2.0",
|
|
30
38
|
"@dzhechkov/adapter-codex": "^0.2.0",
|
|
39
|
+
"@dzhechkov/adapter-copilot": "workspace:*",
|
|
40
|
+
"@dzhechkov/adapter-cursor": "workspace:*",
|
|
41
|
+
"@dzhechkov/adapter-gemini": "workspace:*",
|
|
31
42
|
"@dzhechkov/adapter-hermes": "^0.2.0",
|
|
32
43
|
"@dzhechkov/adapter-openclaude": "^0.1.0",
|
|
33
44
|
"@dzhechkov/adapter-opencode": "^0.2.0",
|
|
45
|
+
"@dzhechkov/adapter-windsurf": "workspace:*",
|
|
46
|
+
"@dzhechkov/core": "workspace:*",
|
|
47
|
+
"@dzhechkov/memory": "workspace:*",
|
|
34
48
|
"proper-lockfile": "^4.1.2",
|
|
35
|
-
"yaml": "^2.0.0"
|
|
36
|
-
"@dzhechkov/adapter-cursor": "0.1.1",
|
|
37
|
-
"@dzhechkov/adapter-copilot": "0.1.1",
|
|
38
|
-
"@dzhechkov/adapter-agents-md": "0.1.1",
|
|
39
|
-
"@dzhechkov/adapter-gemini": "0.1.1",
|
|
40
|
-
"@dzhechkov/adapter-windsurf": "0.1.1",
|
|
41
|
-
"@dzhechkov/core": "0.2.14",
|
|
42
|
-
"@dzhechkov/memory": "0.2.9"
|
|
49
|
+
"yaml": "^2.0.0"
|
|
43
50
|
},
|
|
44
51
|
"peerDependenciesMeta": {
|
|
45
52
|
"@ruvector/rvf": {
|
|
@@ -64,12 +71,5 @@
|
|
|
64
71
|
"url": "https://github.com/djd1m/dz-harness-hub.git",
|
|
65
72
|
"directory": "packages/@dzhechkov/harness-core"
|
|
66
73
|
},
|
|
67
|
-
"homepage": "https://github.com/djd1m/dz-harness-hub/tree/main/packages/@dzhechkov/harness-core#readme"
|
|
68
|
-
|
|
69
|
-
"build": "tsc -p tsconfig.json",
|
|
70
|
-
"test": "vitest run",
|
|
71
|
-
"test:watch": "vitest",
|
|
72
|
-
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
73
|
-
"lint": "tsc -p tsconfig.json --noEmit"
|
|
74
|
-
}
|
|
75
|
-
}
|
|
74
|
+
"homepage": "https://github.com/djd1m/dz-harness-hub/tree/main/packages/@dzhechkov/harness-core#readme"
|
|
75
|
+
}
|
package/sbom.json
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"hashes": [
|
|
26
26
|
{
|
|
27
27
|
"alg": "SHA-256",
|
|
28
|
-
"content": "
|
|
28
|
+
"content": "50430bbe1435108f4b4d18c5badd24a3c33fd53c7bfbb8723abeba1ecb34fab4"
|
|
29
29
|
}
|
|
30
30
|
]
|
|
31
31
|
},
|
|
@@ -3405,7 +3405,7 @@
|
|
|
3405
3405
|
"hashes": [
|
|
3406
3406
|
{
|
|
3407
3407
|
"alg": "SHA-256",
|
|
3408
|
-
"content": "
|
|
3408
|
+
"content": "bbde9c1b1f952ec9dd898df128aa96f8932e3fbe6324ae5023002cac8633a8eb"
|
|
3409
3409
|
}
|
|
3410
3410
|
]
|
|
3411
3411
|
},
|
|
@@ -32,6 +32,7 @@ export const LOOP_BLOB_NAMES = ["checkpoints","training-pairs","model-resolver",
|
|
|
32
32
|
* tracked dz-backlog item, deliberately NOT claimed here. */
|
|
33
33
|
export const BLOB_COVERAGE_MANIFEST: { coveredWorkflows: string[] } = {
|
|
34
34
|
"coveredWorkflows": [
|
|
35
|
+
".claude/workflows/cfr-pipeline.js",
|
|
35
36
|
".claude/workflows/feature-adr.js",
|
|
36
37
|
".claude/workflows/health-advisor.js",
|
|
37
38
|
"packages/@dzhechkov/skills-feature-adr/templates/.claude/workflows/feature-adr.js"
|
package/src/loop-lint.ts
CHANGED
|
@@ -41,7 +41,7 @@ export interface LintRun {
|
|
|
41
41
|
verdict: LintVerdict;
|
|
42
42
|
mode: LintMode;
|
|
43
43
|
findings: LintFinding[];
|
|
44
|
-
/** Per-rule verdict map (
|
|
44
|
+
/** Per-rule verdict map (18 rules — every rule reports, none silently skipped). */
|
|
45
45
|
rules: Record<string, LintSeverity>;
|
|
46
46
|
}
|
|
47
47
|
|
|
@@ -62,6 +62,7 @@ export const LINT_RULES = [
|
|
|
62
62
|
'pause-wired',
|
|
63
63
|
'dispatch-by-deliverable',
|
|
64
64
|
'no-agent-outside-runstep',
|
|
65
|
+
'tool-perimeter-declared',
|
|
65
66
|
'size-budget',
|
|
66
67
|
] as const;
|
|
67
68
|
export type LintRuleId = (typeof LINT_RULES)[number];
|
|
@@ -563,6 +564,58 @@ function ruleNoAgentOutsideRunstep(ctx: Ctx): LintFinding[] {
|
|
|
563
564
|
return out;
|
|
564
565
|
}
|
|
565
566
|
|
|
567
|
+
/** The `<server>:<capability>` grammar a declared perimeter entry must match (ADR-002 §1). Two or
|
|
568
|
+
* more colon-separated lowercase segments — a bare `gitlab` names a server with no capability and
|
|
569
|
+
* is exactly the shape that reads as "everything on that server". */
|
|
570
|
+
export const TOOL_PERIMETER_ENTRY_RE = /^[a-z][a-z0-9-]*(:[a-z][a-z0-9-]*)+$/;
|
|
571
|
+
|
|
572
|
+
/**
|
|
573
|
+
* `tool-perimeter-declared` (cfr-pipeline ADR-002) — every DISPATCHING step (`agent`|`gate`)
|
|
574
|
+
* declares its MCP tool perimeter, well-formed and without duplicates, and the rendered contract
|
|
575
|
+
* line agrees with the declared array.
|
|
576
|
+
*
|
|
577
|
+
* GENERIC by construction: it knows nothing about GitLab, Jira, Wiki or JSM — only that a
|
|
578
|
+
* dispatching step must SAY what it may touch. **Absence FLAGS: silence is never permission.**
|
|
579
|
+
* `tools: []` is the correct, meaningful declaration for a step that touches no external tool.
|
|
580
|
+
*
|
|
581
|
+
* SEVERITY IS STAGED (checkpoint amendment 2, overriding ADR-002 §Rationale-5's FAIL-everywhere
|
|
582
|
+
* stance): WARN by default, FAIL only under `--require-plan`. That keeps the published 0.4.x lint
|
|
583
|
+
* contract of harness-core/harness-cli non-breaking while still making the rule a hard gate
|
|
584
|
+
* exactly where cfr-pipeline runs it. Plan-less scripts report `inconclusive` (`no-plan-binding`)
|
|
585
|
+
* like every other plan-anchored rule — never a silent pass.
|
|
586
|
+
*/
|
|
587
|
+
function ruleToolPerimeterDeclared(ctx: Ctx): LintFinding[] {
|
|
588
|
+
if (ctx.projection === null) return noPlan('tool-perimeter-declared');
|
|
589
|
+
const sev: LintSeverity = ctx.mode === 'require-plan' ? 'fail' : 'warn';
|
|
590
|
+
const out: LintFinding[] = [];
|
|
591
|
+
for (const f of ctx.projection.facts) {
|
|
592
|
+
if (f.kind !== 'agent' && f.kind !== 'gate') continue;
|
|
593
|
+
if (f.tools === null) {
|
|
594
|
+
out.push({ rule: 'tool-perimeter-declared', severity: sev, message: `dispatching step ${f.id} declares no \`tools\` perimeter — absence FLAGS: silence is never permission (declare \`tools: []\` if the step touches no external tool)`, anchor: f.id });
|
|
595
|
+
continue;
|
|
596
|
+
}
|
|
597
|
+
const seen = new Set<string>();
|
|
598
|
+
for (const entry of f.tools) {
|
|
599
|
+
if (!TOOL_PERIMETER_ENTRY_RE.test(entry)) {
|
|
600
|
+
out.push({ rule: 'tool-perimeter-declared', severity: sev, message: `step ${f.id}: tool perimeter entry "${entry}" does not match <server>:<capability> (${String(TOOL_PERIMETER_ENTRY_RE)}) — a malformed entry cannot be matched against a real server inventory`, anchor: f.id });
|
|
601
|
+
}
|
|
602
|
+
if (seen.has(entry)) {
|
|
603
|
+
out.push({ rule: 'tool-perimeter-declared', severity: sev, message: `step ${f.id}: tool perimeter entry "${entry}" is declared twice — a duplicate hides a copy/paste of the wrong stage's perimeter`, anchor: f.id });
|
|
604
|
+
}
|
|
605
|
+
seen.add(entry);
|
|
606
|
+
}
|
|
607
|
+
// script cross-check: the rendered contract line must agree with the DECLARED array — a plan
|
|
608
|
+
// edit that never re-rendered would otherwise pass on the plan half alone.
|
|
609
|
+
if (f.tools.length > 0) {
|
|
610
|
+
const expected = 'declared MCP tool allowlist (plan tools): ' + f.tools.join(', ') + ' — use NOTHING outside it.';
|
|
611
|
+
if (!ctx.script.includes(expected)) {
|
|
612
|
+
out.push({ rule: 'tool-perimeter-declared', severity: sev, message: `step ${f.id}: the rendered script carries no contract line matching the declared perimeter [${f.tools.join(', ')}] — the script is stale against the plan, or the perimeter is decorative`, anchor: f.id });
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
return out;
|
|
617
|
+
}
|
|
618
|
+
|
|
566
619
|
function ruleSizeBudget(ctx: Ctx): LintFinding[] {
|
|
567
620
|
const n = ctx.lines.length;
|
|
568
621
|
if (n > SIZE_BUDGET_WARN_LINES) {
|
|
@@ -623,6 +676,7 @@ export function lint(scriptText: string, opts: LintOptions = {}): LintRun {
|
|
|
623
676
|
run('pause-wired', () => rulePauseWired(ctx));
|
|
624
677
|
run('dispatch-by-deliverable', () => ruleDispatchByDeliverable(ctx));
|
|
625
678
|
run('no-agent-outside-runstep', () => ruleNoAgentOutsideRunstep(ctx));
|
|
679
|
+
run('tool-perimeter-declared', () => ruleToolPerimeterDeclared(ctx));
|
|
626
680
|
run('size-budget', () => ruleSizeBudget(ctx));
|
|
627
681
|
|
|
628
682
|
const severities = Object.values(rules);
|
package/src/loop-plan.ts
CHANGED
|
@@ -115,6 +115,20 @@ export interface LoopStep {
|
|
|
115
115
|
* exec fingerprint in two review rounds; see roadmap. */
|
|
116
116
|
checkpoint?: boolean;
|
|
117
117
|
budget?: { maxAgents: number };
|
|
118
|
+
/**
|
|
119
|
+
* DECLARED MCP tool perimeter for this dispatching step (cfr-pipeline ADR-002).
|
|
120
|
+
*
|
|
121
|
+
* A `<server>:<capability>` allowlist (`^[a-z][a-z0-9-]*(:[a-z][a-z0-9-]*)+$`, checked by the
|
|
122
|
+
* `tool-perimeter-declared` lint rule, not by the schema — the schema owns only the TYPE).
|
|
123
|
+
* ENACTED by `stepPromptAssembly`: a non-empty array renders a fixed contract line into the
|
|
124
|
+
* step's prompt, so the perimeter is COMMUNICATED to the agent rather than decorative. An empty
|
|
125
|
+
* array is meaningful and is the correct value for a step that touches no external tool.
|
|
126
|
+
*
|
|
127
|
+
* HONESTY, said once and never softened elsewhere: this is a DECLARATION, not enforcement.
|
|
128
|
+
* `agent()` exposes no tool restriction; real enforcement lives at the MCP server. No document
|
|
129
|
+
* may call this a sandbox.
|
|
130
|
+
*/
|
|
131
|
+
tools?: string[];
|
|
118
132
|
/** Dispatch route. v1 NARROWING (QE round 6): only 'inline' is enacted — 'codex-wrapper' and
|
|
119
133
|
* 'codex-exec' are VALIDATED-AWAY (ENACT-DISPATCH). The fire-and-forget wrapper returns a stub
|
|
120
134
|
* that reads as a clean result, and codex-exec had no live-proven enactment here; see roadmap. */
|
|
@@ -328,6 +342,7 @@ export const FIELD_DOMAINS: Record<string, FieldDomain> = {
|
|
|
328
342
|
'LoopStep.cache': { t: 'record' },
|
|
329
343
|
'LoopStep.checkpoint': { t: 'boolean' },
|
|
330
344
|
'LoopStep.budget': { t: 'record' },
|
|
345
|
+
'LoopStep.tools': { t: 'string[]' },
|
|
331
346
|
'LoopStep.dispatch': { t: 'enum', values: ['inline', 'codex-wrapper', 'codex-exec'] },
|
|
332
347
|
'LoopStep.pauseState': { t: 'string' },
|
|
333
348
|
'artifacts.reads': { t: 'string[]' },
|
|
@@ -535,6 +550,9 @@ export const STEP_FIELD_KINDS: Record<string, readonly StepKind[]> = {
|
|
|
535
550
|
budget: ALL_KINDS, // budget is an ACCOUNTING weight — summed into the rendered budget guard for every kind
|
|
536
551
|
prompt: DISPATCHING_KINDS,
|
|
537
552
|
artifacts: DISPATCHING_KINDS,
|
|
553
|
+
// the perimeter rides the PROMPT, so it enacts exactly where a prompt is dispatched — `tools`
|
|
554
|
+
// on a fanout/join/pause step would be an unperformed promise (KIND-1 rejects it).
|
|
555
|
+
tools: DISPATCHING_KINDS,
|
|
538
556
|
model: DISPATCHING_KINDS,
|
|
539
557
|
deliverable: DISPATCHING_KINDS,
|
|
540
558
|
idempotent: DISPATCHING_KINDS,
|
|
@@ -1275,6 +1293,9 @@ export interface LintProjection {
|
|
|
1275
1293
|
dispatch: DispatchRoute;
|
|
1276
1294
|
cacheable: boolean;
|
|
1277
1295
|
writes: string[];
|
|
1296
|
+
/** DECLARED tool perimeter, or `null` when the step declares none (ADR-002: absence FLAGS —
|
|
1297
|
+
* silence is never permission, so `null` and `[]` must stay distinguishable here). */
|
|
1298
|
+
tools: string[] | null;
|
|
1278
1299
|
}[];
|
|
1279
1300
|
pauses: { state: string; resumeArg: string }[];
|
|
1280
1301
|
checkpointingEnabled: boolean;
|
|
@@ -1345,6 +1366,7 @@ export function toLintProjection(plan: LoopPlan): LintProjection {
|
|
|
1345
1366
|
dispatch: s.dispatch ?? 'inline',
|
|
1346
1367
|
cacheable: s.cacheable === true,
|
|
1347
1368
|
writes: s.artifacts?.writes ?? [],
|
|
1369
|
+
tools: Array.isArray(s.tools) ? [...s.tools] : null,
|
|
1348
1370
|
};
|
|
1349
1371
|
});
|
|
1350
1372
|
|
package/src/loop-render.ts
CHANGED
|
@@ -199,6 +199,14 @@ function stepPromptAssembly(s: LoopStep, plan: LoopPlan): string[] {
|
|
|
199
199
|
const fileNote = (s.deliverable ?? 'return-value') === 'file' ? '; your deliverable is the written file(s), not your reply' : '';
|
|
200
200
|
lines.push(` ${jsString('declared outputs (plan artifacts.writes): ' + writes.join(', ') + ' — write them' + fileNote + '. The loop verifies they land.')},`);
|
|
201
201
|
}
|
|
202
|
+
// ENACTS LoopStep.tools (cfr-pipeline ADR-002): the declared perimeter is COMMUNICATED to the
|
|
203
|
+
// agent in FIXED wording, so its presence is greppable by a layer-1 test. The second sentence is
|
|
204
|
+
// not decoration — it is the honesty clause the whole feature rests on: a declaration is not
|
|
205
|
+
// enforcement, and every environment this ships into today serves the tools as labeled stubs.
|
|
206
|
+
const tools = s.tools ?? [];
|
|
207
|
+
if (tools.length > 0) {
|
|
208
|
+
lines.push(` ${jsString('declared MCP tool allowlist (plan tools): ' + tools.join(', ') + ' — use NOTHING outside it. In this environment every one of these is a labeled STUB, not a live integration; enforcement lives at the MCP server, not here.')},`);
|
|
209
|
+
}
|
|
202
210
|
if (s.kind === 'gate') {
|
|
203
211
|
lines.push(` ${jsString('GATE PROTOCOL (kind: ' + (gateCfg?.kind ?? 'gate') + '): end your reply with exactly one line "GATE: PASS" or "GATE: FAIL" — the loop PARSES this verdict and never synthesizes one.')},`);
|
|
204
212
|
}
|