@dzhechkov/harness-core 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dz-manifest.json +89 -773
- package/README.md +48 -1
- package/dist/agentdb-index.d.ts +11 -0
- package/dist/agentdb-index.d.ts.map +1 -1
- package/dist/agentdb-index.js +8 -1
- package/dist/agentdb-index.js.map +1 -1
- package/dist/amendment-trace.d.ts +98 -0
- package/dist/amendment-trace.d.ts.map +1 -0
- package/dist/amendment-trace.js +275 -0
- package/dist/amendment-trace.js.map +1 -0
- package/dist/guard.d.ts +29 -0
- package/dist/guard.d.ts.map +1 -1
- package/dist/guard.js +54 -0
- package/dist/guard.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/patterns.d.ts.map +1 -1
- package/dist/patterns.js +4 -1
- package/dist/patterns.js.map +1 -1
- package/dist/publish-signing.d.ts +113 -0
- package/dist/publish-signing.d.ts.map +1 -0
- package/dist/publish-signing.js +124 -0
- package/dist/publish-signing.js.map +1 -0
- package/dist/publish.d.ts +21 -0
- package/dist/publish.d.ts.map +1 -1
- package/dist/publish.js +106 -0
- package/dist/publish.js.map +1 -1
- package/dist/registry.d.ts +19 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +91 -1
- package/dist/registry.js.map +1 -1
- package/dist/run-records.d.ts +66 -0
- package/dist/run-records.d.ts.map +1 -0
- package/dist/run-records.js +169 -0
- package/dist/run-records.js.map +1 -0
- package/dist/sign.d.ts +24 -2
- package/dist/sign.d.ts.map +1 -1
- package/dist/sign.js +34 -1
- package/dist/sign.js.map +1 -1
- package/dist/vector-tier.d.ts +81 -0
- package/dist/vector-tier.d.ts.map +1 -1
- package/dist/vector-tier.js +137 -10
- package/dist/vector-tier.js.map +1 -1
- package/package.json +6 -6
- package/sbom.json +176 -1886
- package/src/agentdb-index.ts +8 -1
- package/src/amendment-trace.ts +348 -0
- package/src/guard.ts +74 -0
- package/src/index.ts +27 -1
- package/src/patterns.ts +4 -1
- package/src/publish-signing.ts +217 -0
- package/src/publish.ts +102 -1
- package/src/registry.ts +84 -1
- package/src/run-records.ts +220 -0
- package/src/sign.ts +33 -1
- package/src/vector-tier.ts +202 -12
package/README.md
CHANGED
|
@@ -204,9 +204,56 @@ equivalence proved by the committed `pkg-audit-1` fixture covers a bounded fanou
|
|
|
204
204
|
join, a dep chain and a gate — and NOT the gate redo route, the typed terminal route, the typed
|
|
205
205
|
pause or the file deliverable.
|
|
206
206
|
|
|
207
|
+
## The publish gate asks whether anyone but the author read the code
|
|
208
|
+
|
|
209
|
+
`DEFAULT_RULES` gained `review-round` (HARD, publish): a package that bumps its version AND changes
|
|
210
|
+
source must bring a GRADED `features/*/08_qe_report.md` in the same change. Pure over injected facts
|
|
211
|
+
like every rule — `{packages: [{name, versionBumped, sourceChanged}], grades: [{report, grade}],
|
|
212
|
+
minGrade?, gathered?}`. A grade must BE a letter, not merely start with one. `gathered: false` means
|
|
213
|
+
the caller TRIED and could not read the change: that produces a NOTE, never a violation, because
|
|
214
|
+
absence of a report is an accusation and absence of facts is ignorance.
|
|
215
|
+
|
|
216
|
+
## The vector tier reports what the RUN did, not what the config allows
|
|
217
|
+
|
|
218
|
+
Four changes, each replacing a statement derived from configuration with one derived from the run:
|
|
219
|
+
|
|
220
|
+
- **`mergeHybridHits` keeps the top lexical hit under emphasis.** With `RRF_K = 60` and
|
|
221
|
+
`semanticWeight = 2`, a lexical hit at rank `r` loses to every semantic hit at rank `s ≤ 61 + 2r`,
|
|
222
|
+
and the semantic list is capped at `limit·2` — so `--semantic` did not emphasise the semantic leg,
|
|
223
|
+
it REPLACED the lexical one, and exact matches on rare identifiers vanished. The lexical top-1 now
|
|
224
|
+
keeps a reserved seat (taken from the weakest non-`both` place, never from a hit both legs found),
|
|
225
|
+
and ties break by evidence rather than by the id alphabet.
|
|
226
|
+
- **`HybridRecall` carries `semanticCandidates` and `semanticRanked`** — what the engine returned and
|
|
227
|
+
what actually entered the merge, so a caller can tell "the tier is empty" from "the tier returned
|
|
228
|
+
only stale ids", which need different fixes.
|
|
229
|
+
- **`VectorTierStatus` counts like with like.** `mirrored` covers exactly the scope
|
|
230
|
+
`lexicalMirrorable` covers; `mirroredOther` names vectors of other dz-owned task types (backlog
|
|
231
|
+
ideas); `orphaned` is a pattern-scope vector with no record — which nothing computed before. The
|
|
232
|
+
single old number counted three task types while being printed beside a one-task-type count.
|
|
233
|
+
- **`unmirrored` is mirror DEBT as a set difference.** `pending: 0` used to stand alone for "no
|
|
234
|
+
debt", though it means "no queue was ever opened". The difference is over ids and accepts EITHER
|
|
235
|
+
key a record can be mirrored under, because the teach and backfill seams write different ones.
|
|
236
|
+
|
|
237
|
+
A count that cannot be computed is reported as `undefined` — never as `0`.
|
|
238
|
+
|
|
207
239
|
## Status
|
|
208
240
|
|
|
209
|
-
`0.
|
|
241
|
+
`0.7.0` — the publish gate gained `review-round`, and the vector tier reports what the run did (both above): `mergeHybridHits` keeps the top
|
|
242
|
+
lexical hit under `--semantic`, `HybridRecall` gains `semanticCandidates` / `semanticRanked`, and
|
|
243
|
+
`VectorTierStatus` gains `mirrorWriterEnabled`, `unmirrored`, `mirroredOther` and `orphaned`.
|
|
244
|
+
**`mirrored` CHANGES MEANING** to the pattern scope only — a consumer comparing it against a
|
|
245
|
+
full-store count must be updated. `0.6.1` — two new pure modules behind two new commands. `amendment-trace.ts` resolves every `AM-N`
|
|
246
|
+
amendment row to a test found INSIDE the file the row names — matched against the file's parsed TEST
|
|
247
|
+
TITLES, because whole-file matching was forgeable by two comment lines whose letters spell the id, and
|
|
248
|
+
because an existing FILE never stands in for an existing TEST. `run-records.ts` decides whether a
|
|
249
|
+
run-cost row or a training pair may be written: it refuses bad JSON, a wrong-kind payload, an EMPTY
|
|
250
|
+
required field (an empty array or object is not "present"), a stage disagreement and an over-cap line;
|
|
251
|
+
it stamps the timestamp BEFORE serialising; and it treats a mark whose target is absent as STALE
|
|
252
|
+
rather than as a duplicate, because a run that died between taking the mark and writing must not lose
|
|
253
|
+
the record forever. **BEHAVIORAL:** the workflow's ledger and training-pair writers no longer hand a
|
|
254
|
+
subagent a pre-baked shell string — a malformed row is refused instead of appended.
|
|
255
|
+
|
|
256
|
+
**0.6.0** — **BEHAVIORAL:** `STAGE_ARTIFACTS.router` is `'00_complexity_assessment.md'`, was `null`, so a
|
|
210
257
|
consumer reading that constant now gets a filename. Step 0 owes a written artifact and its checkpoint
|
|
211
258
|
is witnessed by one; MEASURED 2026-08-21, 66 of 199 features carried that file and the last four in a
|
|
212
259
|
row did not, which is how a run's tier became unreadable while it was alive and how the K2 acid check
|
package/dist/agentdb-index.d.ts
CHANGED
|
@@ -36,6 +36,17 @@ export declare function resolveAgentdbPath(projectRoot: string, dbPath?: string)
|
|
|
36
36
|
export declare function indexPatternsToAgentdb(projectRoot: string, rows: readonly AgentdbRow[], opts?: {
|
|
37
37
|
dbPath?: string;
|
|
38
38
|
}): Promise<AgentdbIndexResult>;
|
|
39
|
+
/**
|
|
40
|
+
* The RECALL/search default task_types. Deliberately EXCLUDES `dz-backlog`: `dz recall` (and
|
|
41
|
+
* feature-adr Step-0) must never surface raw backlog ideas as if they were earned lessons (ADR-005).
|
|
42
|
+
*/
|
|
43
|
+
/**
|
|
44
|
+
* The PATTERN scope — the task types a learned-pattern count covers. Exported so `dz vector status`
|
|
45
|
+
* can report a mirrored count comparable to its lexical one; the lifecycle superset below is for
|
|
46
|
+
* ownership, and reporting IT beside a pattern count once led a reader to conclude half the index
|
|
47
|
+
* was orphaned when none of it was.
|
|
48
|
+
*/
|
|
49
|
+
export declare const DZ_PATTERN_TASK_TYPES: readonly ["dz-teach", "dz-learning"];
|
|
39
50
|
/**
|
|
40
51
|
* The dz-owned task_types for LIFECYCLE scans (id enumeration + reindex ownership) — a SUPERSET of
|
|
41
52
|
* the recall default that ALSO owns `dz-backlog` (smart-backlog, ADR-001/005). Reindex must re-embed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentdb-index.d.ts","sourceRoot":"","sources":["../src/agentdb-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAiBH,iGAAiG;AACjG,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+FAA+F;IAC/F,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,iDAAiD;AACjD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAaD,mGAAmG;AACnG,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAI/E;AAuBD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,SAAS,UAAU,EAAE,EAC3B,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAuE7B;
|
|
1
|
+
{"version":3,"file":"agentdb-index.d.ts","sourceRoot":"","sources":["../src/agentdb-index.ts"],"names":[],"mappings":"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"}
|
package/dist/agentdb-index.js
CHANGED
|
@@ -124,7 +124,14 @@ export async function indexPatternsToAgentdb(projectRoot, rows, opts = {}) {
|
|
|
124
124
|
* The RECALL/search default task_types. Deliberately EXCLUDES `dz-backlog`: `dz recall` (and
|
|
125
125
|
* feature-adr Step-0) must never surface raw backlog ideas as if they were earned lessons (ADR-005).
|
|
126
126
|
*/
|
|
127
|
-
|
|
127
|
+
/**
|
|
128
|
+
* The PATTERN scope — the task types a learned-pattern count covers. Exported so `dz vector status`
|
|
129
|
+
* can report a mirrored count comparable to its lexical one; the lifecycle superset below is for
|
|
130
|
+
* ownership, and reporting IT beside a pattern count once led a reader to conclude half the index
|
|
131
|
+
* was orphaned when none of it was.
|
|
132
|
+
*/
|
|
133
|
+
export const DZ_PATTERN_TASK_TYPES = ['dz-teach', 'dz-learning'];
|
|
134
|
+
const DZ_TASK_TYPES = DZ_PATTERN_TASK_TYPES;
|
|
128
135
|
/**
|
|
129
136
|
* The dz-owned task_types for LIFECYCLE scans (id enumeration + reindex ownership) — a SUPERSET of
|
|
130
137
|
* the recall default that ALSO owns `dz-backlog` (smart-backlog, ADR-001/005). Reindex must re-embed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentdb-index.js","sourceRoot":"","sources":["../src/agentdb-index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agentdb-index.js","sourceRoot":"","sources":["../src/agentdb-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Amendment traceability — the deterministic half of the Step-8 amendment gate (ADR-001).
|
|
3
|
+
*
|
|
4
|
+
* The gate used to be a paragraph of prompt text asking the QE agent to confirm that every `AM-N`
|
|
5
|
+
* row names a real test. That is layer 4 on the cost-of-detection ladder, and the recalled lesson at
|
|
6
|
+
* reward 1.00 says what happens next: a safety property that lives only in a prompt disappears with
|
|
7
|
+
* the next prompt. `features/qe-scoped-review/08_qe_report.md` recorded the outcome — five ids named,
|
|
8
|
+
* none existing, and the plan writing `## Amendments: None`.
|
|
9
|
+
*
|
|
10
|
+
* Everything here is PURE: text in, verdicts out, file access through an injected reader (NFR-1).
|
|
11
|
+
* The CLI owns I/O and the exit code; this module owns the grammar and the rules.
|
|
12
|
+
*
|
|
13
|
+
* NOT PROVEN HERE: that a resolved test is non-vacuous. `dz discrimination-check` owns "would this
|
|
14
|
+
* test still pass with the protection deleted" (non-goal NG-1, acid case A8). A checker that implied
|
|
15
|
+
* it proved vacuity would be the same lie in a new place.
|
|
16
|
+
*/
|
|
17
|
+
/** One `AM-N` row as it appears in a `## Amendments` section. */
|
|
18
|
+
export interface AmendmentRow {
|
|
19
|
+
readonly id: string;
|
|
20
|
+
readonly testIds: readonly string[];
|
|
21
|
+
readonly file: string | null;
|
|
22
|
+
readonly raw: string;
|
|
23
|
+
}
|
|
24
|
+
export type AmendmentVerdict = 'resolved' | 'placeholder' | 'unnamed' | 'no-file-named' | 'file-missing' | 'name-absent-in-file';
|
|
25
|
+
export interface AmendmentResolution {
|
|
26
|
+
readonly id: string;
|
|
27
|
+
readonly testId: string | null;
|
|
28
|
+
readonly file: string | null;
|
|
29
|
+
readonly verdict: AmendmentVerdict;
|
|
30
|
+
readonly detail: string;
|
|
31
|
+
}
|
|
32
|
+
export type AmendmentOutcome = 'pass' | 'fail' | 'skip' | 'not-established';
|
|
33
|
+
export interface AmendmentDecision {
|
|
34
|
+
readonly outcome: AmendmentOutcome;
|
|
35
|
+
/** Derived FROM the outcome — one mapping, never two (AM-3, acid case A3/A7). */
|
|
36
|
+
readonly exit: 0 | 1 | 3;
|
|
37
|
+
readonly reasons: readonly string[];
|
|
38
|
+
readonly counts: Readonly<Record<AmendmentVerdict, number>>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Below this many normalised characters an id is too short to match anything meaningfully: the
|
|
42
|
+
* substring rule ADR-002 accepts would fire on unrelated prose. Guards the degenerate case the ADR
|
|
43
|
+
* names as its known false-positive risk.
|
|
44
|
+
*/
|
|
45
|
+
export declare const MIN_MATCHABLE_ID_LENGTH = 8;
|
|
46
|
+
/** Case- and separator-folded form. Authors write ids in prose (`a_b_c`); test titles are sentences. */
|
|
47
|
+
/**
|
|
48
|
+
* Every `it()` / `test()` / `describe()` title in a test file. Empty when none parse.
|
|
49
|
+
*
|
|
50
|
+
* Comments are stripped FIRST. A commented-out `it('deny admin writes')` is not a test, and counting
|
|
51
|
+
* it would leave open the very forgery the title basis exists to close — the cross-family reviewer's
|
|
52
|
+
* two-comment-line attack in a slightly better costume. Table forms (`test.each([…])('…')`) carry an
|
|
53
|
+
* argument list between the modifier and the title, so the pattern allows one.
|
|
54
|
+
*/
|
|
55
|
+
export declare function extractTestTitles(body: string): string[];
|
|
56
|
+
export declare function normalizeTestId(s: string): string;
|
|
57
|
+
/** The `## Amendments` section body, or null when the document has none (acid case A5). */
|
|
58
|
+
export declare function amendmentSection(md: string): string | null;
|
|
59
|
+
/** `## Amendments` present but recording nothing to check — distinct from the section being absent. */
|
|
60
|
+
export declare function planSaysNoAmendments(planMd: string): boolean;
|
|
61
|
+
export declare function parseAmendments(md: string): AmendmentRow[];
|
|
62
|
+
export declare function resolveAmendments(rows: readonly AmendmentRow[], opts: {
|
|
63
|
+
readFile: (p: string) => string | null;
|
|
64
|
+
}): AmendmentResolution[];
|
|
65
|
+
export declare function decideAmendmentOutcome(input: {
|
|
66
|
+
sectionPresent: boolean;
|
|
67
|
+
rows: readonly AmendmentRow[];
|
|
68
|
+
resolutions: readonly AmendmentResolution[];
|
|
69
|
+
planSaysNone: boolean;
|
|
70
|
+
readError?: string | null;
|
|
71
|
+
/** Ideation amendments the plan fails to carry — absent, or reworded under the same id. */
|
|
72
|
+
missingFromPlan?: readonly {
|
|
73
|
+
id: string;
|
|
74
|
+
kind: 'dropped' | 'subject-changed';
|
|
75
|
+
}[];
|
|
76
|
+
}): AmendmentDecision;
|
|
77
|
+
/** The one line every caller reads last, in the K2 gate's own shape so the two read alike. */
|
|
78
|
+
export declare function amendmentVerdictLine(d: AmendmentDecision): string;
|
|
79
|
+
/** Printed on every run: this checker does NOT prove a resolved test discriminates (NG-1, A8). */
|
|
80
|
+
export declare const AMENDMENT_VACUITY_NOTE = "note: this checks that each amendment RESOLVES to a real test, not that the test is non-vacuous \u2014 `dz discrimination-check` owns vacuity.";
|
|
81
|
+
/**
|
|
82
|
+
* The amendment's own text with the `→ test …` pointer clause and markdown furniture removed — what
|
|
83
|
+
* "carry AM-N into the plan verbatim" is actually about. The POINTER may legitimately change (tests
|
|
84
|
+
* are named later than ideation guesses); the SUBJECT may not.
|
|
85
|
+
*/
|
|
86
|
+
export declare function amendmentSubject(raw: string): string;
|
|
87
|
+
export interface PlanCoverageGap {
|
|
88
|
+
readonly id: string;
|
|
89
|
+
readonly kind: 'dropped' | 'subject-changed';
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Ideation amendments the plan fails to carry: either absent outright, or present under the same id
|
|
93
|
+
* with a DIFFERENT subject. Cross-family review (Codex gpt-5.6-sol, 2026-08-21) found the second
|
|
94
|
+
* case: comparing ids alone let a plan swap "deny unauthenticated deletes" for "render footer" under
|
|
95
|
+
* the same `AM-1` and still pass.
|
|
96
|
+
*/
|
|
97
|
+
export declare function amendmentsMissingFromPlan(ideationRows: readonly AmendmentRow[], planRows: readonly AmendmentRow[]): PlanCoverageGap[];
|
|
98
|
+
//# sourceMappingURL=amendment-trace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amendment-trace.d.ts","sourceRoot":"","sources":["../src/amendment-trace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Amendment traceability — the deterministic half of the Step-8 amendment gate (ADR-001).
|
|
3
|
+
*
|
|
4
|
+
* The gate used to be a paragraph of prompt text asking the QE agent to confirm that every `AM-N`
|
|
5
|
+
* row names a real test. That is layer 4 on the cost-of-detection ladder, and the recalled lesson at
|
|
6
|
+
* reward 1.00 says what happens next: a safety property that lives only in a prompt disappears with
|
|
7
|
+
* the next prompt. `features/qe-scoped-review/08_qe_report.md` recorded the outcome — five ids named,
|
|
8
|
+
* none existing, and the plan writing `## Amendments: None`.
|
|
9
|
+
*
|
|
10
|
+
* Everything here is PURE: text in, verdicts out, file access through an injected reader (NFR-1).
|
|
11
|
+
* The CLI owns I/O and the exit code; this module owns the grammar and the rules.
|
|
12
|
+
*
|
|
13
|
+
* NOT PROVEN HERE: that a resolved test is non-vacuous. `dz discrimination-check` owns "would this
|
|
14
|
+
* test still pass with the protection deleted" (non-goal NG-1, acid case A8). A checker that implied
|
|
15
|
+
* it proved vacuity would be the same lie in a new place.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Template placeholders that reach shipped reports. A stub read as an ordinary unresolvable id lets
|
|
19
|
+
* the author believe they merely mistyped a name, so it earns its own verdict (acid case A1).
|
|
20
|
+
*/
|
|
21
|
+
const PLACEHOLDER_IDS = new Set(['test_name', 'test-name', '<test>', '<test_name>', 'tbd', 'todo', 'name']);
|
|
22
|
+
/**
|
|
23
|
+
* Below this many normalised characters an id is too short to match anything meaningfully: the
|
|
24
|
+
* substring rule ADR-002 accepts would fire on unrelated prose. Guards the degenerate case the ADR
|
|
25
|
+
* names as its known false-positive risk.
|
|
26
|
+
*/
|
|
27
|
+
export const MIN_MATCHABLE_ID_LENGTH = 8;
|
|
28
|
+
/** Case- and separator-folded form. Authors write ids in prose (`a_b_c`); test titles are sentences. */
|
|
29
|
+
/**
|
|
30
|
+
* Every `it()` / `test()` / `describe()` title in a test file. Empty when none parse.
|
|
31
|
+
*
|
|
32
|
+
* Comments are stripped FIRST. A commented-out `it('deny admin writes')` is not a test, and counting
|
|
33
|
+
* it would leave open the very forgery the title basis exists to close — the cross-family reviewer's
|
|
34
|
+
* two-comment-line attack in a slightly better costume. Table forms (`test.each([…])('…')`) carry an
|
|
35
|
+
* argument list between the modifier and the title, so the pattern allows one.
|
|
36
|
+
*/
|
|
37
|
+
export function extractTestTitles(body) {
|
|
38
|
+
const code = body.replace(/\/\*[\s\S]*?\*\//g, ' ').replace(/(^|[^:])\/\/[^\n]*/g, '$1');
|
|
39
|
+
const out = [];
|
|
40
|
+
const re = /\b(?:it|test|describe)(?:\.\w+)*(?:\s*\([^()]{0,200}\))?\s*(?:`[^`]*`)?\s*\(\s*(['"`])([\s\S]{1,300}?)\1/g;
|
|
41
|
+
for (let m = re.exec(code); m !== null; m = re.exec(code))
|
|
42
|
+
if (m[2])
|
|
43
|
+
out.push(m[2]);
|
|
44
|
+
return out;
|
|
45
|
+
}
|
|
46
|
+
export function normalizeTestId(s) {
|
|
47
|
+
return s.toLowerCase().replace(/[^a-z0-9]+/g, '');
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Row starts, in BOTH shapes the corpus actually contains: a bullet (`- **AM-1 (…):**`) and a table
|
|
51
|
+
* cell (`| **AM-40** |`). A format LEGEND — the literal `AM-N` with an `N` that is not a digit, as in
|
|
52
|
+
* `features/ha-consilium/03.5_ideation_report.md` — is deliberately NOT a row: counting a legend as
|
|
53
|
+
* an amendment would open this feature by falsely accusing a feature that did nothing wrong.
|
|
54
|
+
*/
|
|
55
|
+
const ROW_START = /^(?:[-*]\s+\*{0,2}AM-(\d+)|\|\s*\*{0,2}AM-(\d+))/gm;
|
|
56
|
+
/** The `## Amendments` section body, or null when the document has none (acid case A5). */
|
|
57
|
+
export function amendmentSection(md) {
|
|
58
|
+
const m = /^ {0,3}#{2,4}\s+Amendments\b[^\n]*\n/m.exec(md);
|
|
59
|
+
if (!m)
|
|
60
|
+
return null;
|
|
61
|
+
const start = m.index + m[0].length;
|
|
62
|
+
const rest = md.slice(start);
|
|
63
|
+
const next = /^ {0,3}#{2,4}\s+\S/m.exec(rest);
|
|
64
|
+
return next ? rest.slice(0, next.index) : rest;
|
|
65
|
+
}
|
|
66
|
+
/** `## Amendments` present but recording nothing to check — distinct from the section being absent. */
|
|
67
|
+
export function planSaysNoAmendments(planMd) {
|
|
68
|
+
const sec = amendmentSection(planMd);
|
|
69
|
+
if (sec === null)
|
|
70
|
+
return false;
|
|
71
|
+
return /^\s*(none|n\/a|нет)\b/i.test(sec.trim());
|
|
72
|
+
}
|
|
73
|
+
export function parseAmendments(md) {
|
|
74
|
+
const section = amendmentSection(md);
|
|
75
|
+
if (section === null)
|
|
76
|
+
return [];
|
|
77
|
+
const starts = [];
|
|
78
|
+
ROW_START.lastIndex = 0;
|
|
79
|
+
for (let m = ROW_START.exec(section); m !== null; m = ROW_START.exec(section)) {
|
|
80
|
+
starts.push({ index: m.index, num: (m[1] ?? m[2]) });
|
|
81
|
+
}
|
|
82
|
+
const rows = [];
|
|
83
|
+
for (let i = 0; i < starts.length; i++) {
|
|
84
|
+
const s = starts[i];
|
|
85
|
+
const end = i + 1 < starts.length ? starts[i + 1].index : section.length;
|
|
86
|
+
const raw = section.slice(s.index, end);
|
|
87
|
+
rows.push({ id: `AM-${s.num}`, testIds: extractTestIds(raw), file: extractFile(raw), raw });
|
|
88
|
+
}
|
|
89
|
+
return rows;
|
|
90
|
+
}
|
|
91
|
+
/** `→ test \`a\`` and the two-id shape `→ tests \`a\` and \`b\`` — both are in the corpus. */
|
|
92
|
+
function extractTestIds(raw) {
|
|
93
|
+
const out = [];
|
|
94
|
+
const re = /→\s*tests?\s+`([^`]+)`(?:\s*(?:and|и)\s*`([^`]+)`)?/g;
|
|
95
|
+
for (let m = re.exec(raw); m !== null; m = re.exec(raw)) {
|
|
96
|
+
if (m[1])
|
|
97
|
+
out.push(m[1].trim());
|
|
98
|
+
if (m[2])
|
|
99
|
+
out.push(m[2].trim());
|
|
100
|
+
}
|
|
101
|
+
return out;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The `in \`<path>\`` half, which in real reports frequently opens the line AFTER the id. A pattern
|
|
105
|
+
* that cannot cross a newline finds almost nothing here — measured while writing this: three
|
|
106
|
+
* successive shell-written extractors returned 108, 111 and 13 rows over the identical corpus.
|
|
107
|
+
*/
|
|
108
|
+
function extractFile(raw) {
|
|
109
|
+
const m = /→\s*tests?\s+`[^`]+`(?:\s*(?:and|и)\s*`[^`]+`)?[\s\S]{0,40}?\bin\s+`([^`]+)`/.exec(raw);
|
|
110
|
+
return m && m[1] ? m[1].trim() : null;
|
|
111
|
+
}
|
|
112
|
+
export function resolveAmendments(rows, opts) {
|
|
113
|
+
const out = [];
|
|
114
|
+
for (const row of rows) {
|
|
115
|
+
if (row.testIds.length === 0) {
|
|
116
|
+
out.push({
|
|
117
|
+
id: row.id,
|
|
118
|
+
testId: null,
|
|
119
|
+
file: row.file,
|
|
120
|
+
verdict: 'unnamed',
|
|
121
|
+
detail: 'the row carries no `→ test` token — an amendment with no pointer is not a passing amendment',
|
|
122
|
+
});
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
for (const testId of row.testIds) {
|
|
126
|
+
out.push(resolveOne(row, testId, opts.readFile));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return out;
|
|
130
|
+
}
|
|
131
|
+
function resolveOne(row, testId, readFile) {
|
|
132
|
+
const base = { id: row.id, testId, file: row.file };
|
|
133
|
+
if (PLACEHOLDER_IDS.has(testId.trim().toLowerCase())) {
|
|
134
|
+
return { ...base, verdict: 'placeholder', detail: `\`${testId}\` is a template placeholder, not a test name` };
|
|
135
|
+
}
|
|
136
|
+
if (row.file === null) {
|
|
137
|
+
return { ...base, verdict: 'no-file-named', detail: 'the row names a test id but no file to find it in' };
|
|
138
|
+
}
|
|
139
|
+
const body = readFile(row.file);
|
|
140
|
+
if (body === null) {
|
|
141
|
+
return { ...base, verdict: 'file-missing', detail: `\`${row.file}\` does not exist or cannot be read` };
|
|
142
|
+
}
|
|
143
|
+
const needle = normalizeTestId(testId);
|
|
144
|
+
if (needle.length < MIN_MATCHABLE_ID_LENGTH) {
|
|
145
|
+
return {
|
|
146
|
+
...base,
|
|
147
|
+
verdict: 'name-absent-in-file',
|
|
148
|
+
detail: `\`${testId}\` normalises to ${needle.length} characters — below the ${MIN_MATCHABLE_ID_LENGTH}-character floor, so a match would prove nothing`,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
// An existing FILE never stands in for an existing TEST (ADR-002) — and neither does an existing
|
|
152
|
+
// COMMENT. Matching the whole file body is forgeable with two comment lines whose letters happen to
|
|
153
|
+
// spell the id, so the basis is the file's TEST TITLES. Falling back to the body when none parse is
|
|
154
|
+
// stated in the detail rather than done quietly: a silent fallback restores the hole it closes.
|
|
155
|
+
const titles = extractTestTitles(body);
|
|
156
|
+
const basis = titles.length > 0 ? titles.map(normalizeTestId).join('\n') : normalizeTestId(body);
|
|
157
|
+
const basisNote = titles.length > 0 ? `${titles.length} test title(s)` : 'the whole file body — NO test titles parsed, so this match is weaker';
|
|
158
|
+
if (!basis.includes(needle)) {
|
|
159
|
+
return {
|
|
160
|
+
...base,
|
|
161
|
+
verdict: 'name-absent-in-file',
|
|
162
|
+
detail: `\`${row.file}\` exists but no test in it is named \`${testId}\` (searched ${basisNote})`,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
return { ...base, verdict: 'resolved', detail: `found in \`${row.file}\` (searched ${basisNote})` };
|
|
166
|
+
}
|
|
167
|
+
const ZERO_COUNTS = {
|
|
168
|
+
resolved: 0,
|
|
169
|
+
placeholder: 0,
|
|
170
|
+
unnamed: 0,
|
|
171
|
+
'no-file-named': 0,
|
|
172
|
+
'file-missing': 0,
|
|
173
|
+
'name-absent-in-file': 0,
|
|
174
|
+
};
|
|
175
|
+
export function decideAmendmentOutcome(input) {
|
|
176
|
+
const counts = { ...ZERO_COUNTS };
|
|
177
|
+
for (const r of input.resolutions)
|
|
178
|
+
counts[r.verdict]++;
|
|
179
|
+
const reasons = [];
|
|
180
|
+
// Inputs we could not read are never a verdict about the feature (acid case A7).
|
|
181
|
+
if (input.readError) {
|
|
182
|
+
return { outcome: 'not-established', exit: 3, reasons: [`inputs unreadable: ${input.readError}`], counts };
|
|
183
|
+
}
|
|
184
|
+
// Absence is a skip with a stated reason, never a pass and never a silent zero (acid case A5).
|
|
185
|
+
if (!input.sectionPresent) {
|
|
186
|
+
return {
|
|
187
|
+
outcome: 'skip',
|
|
188
|
+
exit: 0,
|
|
189
|
+
reasons: ['no `## Amendments` section — nothing to check (this is an absence, not a pass)'],
|
|
190
|
+
counts,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
// The whole class this feature removes: a check that silently checked nothing (AM-1, acid case A7).
|
|
194
|
+
if (input.rows.length === 0) {
|
|
195
|
+
return {
|
|
196
|
+
outcome: 'not-established',
|
|
197
|
+
exit: 3,
|
|
198
|
+
reasons: [
|
|
199
|
+
'the `## Amendments` section is present but ZERO rows parsed — the grammar matched nothing, which is not the same as nothing being wrong',
|
|
200
|
+
],
|
|
201
|
+
counts,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
// Ideation carries rows while the plan records "None" — this is HIGH-2 itself (acid case A6).
|
|
205
|
+
// Discovered while closing HIGH-2: the pointers belong in the PLAN. Step 6's own instruction is
|
|
206
|
+
// "carry AM-N into 06_implementation_plan.md verbatim", and the ideation report is a historical
|
|
207
|
+
// artifact — editing its rows to match tests that were named later would be rewriting the record
|
|
208
|
+
// rather than closing the trail. So the plan's rows are authoritative when present, and the rule
|
|
209
|
+
// that keeps that honest is coverage: an ideation amendment the plan never mentions is a DROPPED
|
|
210
|
+
// amendment, which is the renegotiating-away failure in a quieter form.
|
|
211
|
+
for (const gap of input.missingFromPlan ?? []) {
|
|
212
|
+
reasons.push(gap.kind === 'dropped'
|
|
213
|
+
? `${gap.id} is an amendment in 03.5_ideation_report.md that 06_implementation_plan.md never carries — an amendment dropped in planning is one nobody can audit`
|
|
214
|
+
: `${gap.id} appears in both documents but the plan describes a DIFFERENT change — "carry verbatim" means the subject survives; only the test pointer may be renamed`);
|
|
215
|
+
}
|
|
216
|
+
if (input.planSaysNone) {
|
|
217
|
+
reasons.push(`the ideation report carries ${input.rows.length} amendment row(s) while 06_implementation_plan.md records \`## Amendments: None\` — the amendments were renegotiated away, and an amendment nobody can resolve is one nobody can audit`);
|
|
218
|
+
}
|
|
219
|
+
for (const r of input.resolutions) {
|
|
220
|
+
if (r.verdict !== 'resolved')
|
|
221
|
+
reasons.push(`${r.id} → ${r.verdict}: ${r.detail}`);
|
|
222
|
+
}
|
|
223
|
+
return { outcome: reasons.length > 0 ? 'fail' : 'pass', exit: reasons.length > 0 ? 1 : 0, reasons, counts };
|
|
224
|
+
}
|
|
225
|
+
/** The one line every caller reads last, in the K2 gate's own shape so the two read alike. */
|
|
226
|
+
export function amendmentVerdictLine(d) {
|
|
227
|
+
const label = d.outcome === 'not-established' ? 'NOT-ESTABLISHED' : d.outcome.toUpperCase();
|
|
228
|
+
const head = `amendment traceability: ${label}`;
|
|
229
|
+
const tail = d.outcome === 'pass'
|
|
230
|
+
? `${d.counts.resolved} row(s) resolved`
|
|
231
|
+
: (d.reasons[0] ?? 'no reason recorded');
|
|
232
|
+
return `${head} — ${tail}`;
|
|
233
|
+
}
|
|
234
|
+
/** Printed on every run: this checker does NOT prove a resolved test discriminates (NG-1, A8). */
|
|
235
|
+
export const AMENDMENT_VACUITY_NOTE = 'note: this checks that each amendment RESOLVES to a real test, not that the test is non-vacuous — `dz discrimination-check` owns vacuity.';
|
|
236
|
+
/**
|
|
237
|
+
* The amendment's own text with the `→ test …` pointer clause and markdown furniture removed — what
|
|
238
|
+
* "carry AM-N into the plan verbatim" is actually about. The POINTER may legitimately change (tests
|
|
239
|
+
* are named later than ideation guesses); the SUBJECT may not.
|
|
240
|
+
*/
|
|
241
|
+
export function amendmentSubject(raw) {
|
|
242
|
+
const withoutPointer = raw.split(/→\s*tests?\s/)[0] ?? '';
|
|
243
|
+
// Strip ONLY the row's furniture: bullet/table marks, the bold id, an optional `(source)` tag and
|
|
244
|
+
// a colon. An earlier version consumed up to 80 characters after the id, which ate the SUBJECT
|
|
245
|
+
// itself whenever a row carried no `(source):` tag — the checker then compared two truncations
|
|
246
|
+
// and called honest rows a mismatch.
|
|
247
|
+
const stripped = withoutPointer.replace(/^[\s|*\-]*\**AM-\d+\**\s*(?:\([^)]{0,80}\))?\s*:?\s*/, '');
|
|
248
|
+
return normalizeTestId(stripped);
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Ideation amendments the plan fails to carry: either absent outright, or present under the same id
|
|
252
|
+
* with a DIFFERENT subject. Cross-family review (Codex gpt-5.6-sol, 2026-08-21) found the second
|
|
253
|
+
* case: comparing ids alone let a plan swap "deny unauthenticated deletes" for "render footer" under
|
|
254
|
+
* the same `AM-1` and still pass.
|
|
255
|
+
*/
|
|
256
|
+
export function amendmentsMissingFromPlan(ideationRows, planRows) {
|
|
257
|
+
const byId = new Map(planRows.map((r) => [r.id, r]));
|
|
258
|
+
const gaps = [];
|
|
259
|
+
for (const row of ideationRows) {
|
|
260
|
+
const planRow = byId.get(row.id);
|
|
261
|
+
if (planRow === undefined) {
|
|
262
|
+
gaps.push({ id: row.id, kind: 'dropped' });
|
|
263
|
+
continue;
|
|
264
|
+
}
|
|
265
|
+
const want = amendmentSubject(row.raw);
|
|
266
|
+
const got = amendmentSubject(planRow.raw);
|
|
267
|
+
// Containment either way: a plan may append a note ("closes HIGH-2"), and ideation may be the
|
|
268
|
+
// longer prose. What it may not do is describe a different change.
|
|
269
|
+
if (want.length >= MIN_MATCHABLE_ID_LENGTH && !got.includes(want) && !want.includes(got)) {
|
|
270
|
+
gaps.push({ id: row.id, kind: 'subject-changed' });
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
return gaps;
|
|
274
|
+
}
|
|
275
|
+
//# sourceMappingURL=amendment-trace.js.map
|