@encore-os/eos-spec 0.16.0 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/close-out.js +48 -2
- package/dist/commands/close-out.js.map +1 -1
- package/dist/commands/doctor.js +14 -5
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/index-spec.js +22 -4
- package/dist/commands/index-spec.js.map +1 -1
- package/dist/commands/next.d.ts +6 -0
- package/dist/commands/next.js +11 -1
- package/dist/commands/next.js.map +1 -1
- package/dist/commands/reconcile.js +6 -2
- package/dist/commands/reconcile.js.map +1 -1
- package/dist/commands/scorecard.js +51 -0
- package/dist/commands/scorecard.js.map +1 -1
- package/dist/commands/signoff.js +12 -1
- package/dist/commands/signoff.js.map +1 -1
- package/dist/commands/verify-acs.d.ts +7 -0
- package/dist/commands/verify-acs.js +61 -8
- package/dist/commands/verify-acs.js.map +1 -1
- package/dist/lib/closeout-core.d.ts +15 -0
- package/dist/lib/closeout-core.js +42 -5
- package/dist/lib/closeout-core.js.map +1 -1
- package/dist/lib/config.d.ts +24 -2
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/doctor-core.d.ts +17 -2
- package/dist/lib/doctor-core.js +50 -12
- package/dist/lib/doctor-core.js.map +1 -1
- package/dist/lib/frontmatter.js +26 -3
- package/dist/lib/frontmatter.js.map +1 -1
- package/dist/lib/reconcile-core.d.ts +1 -1
- package/dist/lib/reconcile-core.js +10 -2
- package/dist/lib/reconcile-core.js.map +1 -1
- package/dist/lib/rtm-scorecard-run.d.ts +38 -0
- package/dist/lib/rtm-scorecard-run.js +70 -0
- package/dist/lib/rtm-scorecard-run.js.map +1 -0
- package/dist/lib/rtm-scorecard.d.ts +151 -0
- package/dist/lib/rtm-scorecard.js +197 -0
- package/dist/lib/rtm-scorecard.js.map +1 -0
- package/dist/lib/spec-pure.d.ts +38 -0
- package/dist/lib/spec-pure.js +162 -17
- package/dist/lib/spec-pure.js.map +1 -1
- package/dist/lib/specs.d.ts +20 -0
- package/dist/lib/specs.js +37 -1
- package/dist/lib/specs.js.map +1 -1
- package/dist/lib/version.d.ts +1 -1
- package/dist/lib/version.js +1 -1
- package/dist/pure.d.ts +1 -0
- package/dist/pure.js +3 -0
- package/dist/pure.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { execFileSync } from 'node:child_process';
|
|
2
2
|
import { readFileSync, readdirSync, writeFileSync } from 'node:fs';
|
|
3
3
|
import { tmpdir } from 'node:os';
|
|
4
|
-
import { join, relative } from 'node:path';
|
|
4
|
+
import { isAbsolute, join, relative } from 'node:path';
|
|
5
5
|
import { resolveDiscoveryPaths, resolveVerifyLanes } from '../lib/config.js';
|
|
6
6
|
import { readFrontmatter, setRequirementStatus } from '../lib/frontmatter.js';
|
|
7
7
|
import { emit, getGlobalOptions } from '../lib/output.js';
|
|
@@ -76,6 +76,44 @@ function parseVitestJsonReport(repoRoot, outFile) {
|
|
|
76
76
|
}
|
|
77
77
|
return stats;
|
|
78
78
|
}
|
|
79
|
+
/** Parse a Playwright `--reporter=json` output file into rel-path (from `repoRoot`) →
|
|
80
|
+
* {passed,failed,skipped}. Playwright's JSON nests `suites → specs → tests → results`,
|
|
81
|
+
* with the source file on each suite (relative to the lane `cwd`/testDir, or absolute);
|
|
82
|
+
* re-relativize every key against `repoRoot` so it matches the `@verifies` backlink
|
|
83
|
+
* paths. A `timedOut`/`interrupted` result counts as a failure (P2 e2e lane). */
|
|
84
|
+
export function parsePlaywrightJsonReport(repoRoot, laneCwd, outFile) {
|
|
85
|
+
const stats = new Map();
|
|
86
|
+
let report;
|
|
87
|
+
try {
|
|
88
|
+
report = JSON.parse(readFileSync(outFile, 'utf8'));
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return stats;
|
|
92
|
+
}
|
|
93
|
+
const walk = (suites) => {
|
|
94
|
+
for (const s of suites ?? []) {
|
|
95
|
+
if (s.file) {
|
|
96
|
+
const abs = isAbsolute(s.file) ? s.file : join(laneCwd, s.file);
|
|
97
|
+
const key = relative(repoRoot, abs);
|
|
98
|
+
const fs = stats.get(key) ?? { passed: 0, failed: 0, skipped: 0 };
|
|
99
|
+
for (const spec of s.specs ?? [])
|
|
100
|
+
for (const t of spec.tests ?? [])
|
|
101
|
+
for (const r of t.results ?? []) {
|
|
102
|
+
if (r.status === 'passed')
|
|
103
|
+
fs.passed++;
|
|
104
|
+
else if (r.status === 'failed' || r.status === 'timedOut' || r.status === 'interrupted')
|
|
105
|
+
fs.failed++;
|
|
106
|
+
else
|
|
107
|
+
fs.skipped++;
|
|
108
|
+
}
|
|
109
|
+
stats.set(key, fs);
|
|
110
|
+
}
|
|
111
|
+
walk(s.suites);
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
walk(report.suites);
|
|
115
|
+
return stats;
|
|
116
|
+
}
|
|
79
117
|
/** Run root-Vitest files, returning rel-path → {passed,failed,skipped}. */
|
|
80
118
|
function runRootVitest(repoRoot, relFiles) {
|
|
81
119
|
if (relFiles.length === 0)
|
|
@@ -92,17 +130,32 @@ function runRootVitest(repoRoot, relFiles) {
|
|
|
92
130
|
}
|
|
93
131
|
return parseVitestJsonReport(repoRoot, outFile);
|
|
94
132
|
}
|
|
95
|
-
/** Run one config-driven lane's backing files
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
* Vitest
|
|
100
|
-
|
|
133
|
+
/** Run one config-driven lane's backing files in `lane.cwd`, returning the same
|
|
134
|
+
* rel-path (from `repoRoot`) → FileStat shape as `runRootVitest`. `relFiles` are
|
|
135
|
+
* repo-relative and re-relativized into the lane's `cwd` for the invocation (the
|
|
136
|
+
* runner resolves file args against its own `cwd`). Dispatches on `lane.reporter`:
|
|
137
|
+
* Vitest (default) requests JSON via `--outputFile=`; Playwright via the
|
|
138
|
+
* `PLAYWRIGHT_JSON_OUTPUT_NAME` env, each with its matching parser (P2 e2e lane). */
|
|
139
|
+
function runLane(repoRoot, lane, relFiles) {
|
|
101
140
|
if (relFiles.length === 0)
|
|
102
141
|
return new Map();
|
|
103
142
|
const laneCwd = join(repoRoot, lane.cwd);
|
|
104
143
|
const laneFiles = relFiles.map((f) => relative(laneCwd, join(repoRoot, f)));
|
|
105
144
|
const outFile = join(tmpdir(), `eos-verify-acs-lane-${process.pid}-${lane.prefix.replace(/[^a-zA-Z0-9]/g, '_')}.json`);
|
|
145
|
+
if ((lane.reporter ?? 'vitest') === 'playwright') {
|
|
146
|
+
const [cmd, ...cmdArgs] = (lane.command ?? 'bunx playwright test').split(/\s+/);
|
|
147
|
+
try {
|
|
148
|
+
execFileSync(cmd, [...cmdArgs, ...laneFiles, '--reporter=json'], {
|
|
149
|
+
cwd: laneCwd,
|
|
150
|
+
stdio: ['ignore', 'ignore', 'inherit'],
|
|
151
|
+
env: { ...process.env, PLAYWRIGHT_JSON_OUTPUT_NAME: outFile },
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
/* nonzero exit = a failing test; the JSON report still carries the per-file outcome */
|
|
156
|
+
}
|
|
157
|
+
return parsePlaywrightJsonReport(repoRoot, laneCwd, outFile);
|
|
158
|
+
}
|
|
106
159
|
const [cmd, ...cmdArgs] = (lane.command ?? 'bunx vitest run').split(/\s+/);
|
|
107
160
|
try {
|
|
108
161
|
execFileSync(cmd, [...cmdArgs, ...laneFiles, '--reporter=json', `--outputFile=${outFile}`], {
|
|
@@ -198,7 +251,7 @@ export function registerVerifyAcs(program) {
|
|
|
198
251
|
const { lanes: allLanes } = partitionBackingFilesWithLanes(allFiles, laneDefs);
|
|
199
252
|
const stats = runRootVitest(repoRoot, allLanes.get('root') ?? []);
|
|
200
253
|
for (const lane of laneDefs) {
|
|
201
|
-
mergeLaneStats(stats,
|
|
254
|
+
mergeLaneStats(stats, runLane(repoRoot, lane, allLanes.get(lane.prefix) ?? []));
|
|
202
255
|
}
|
|
203
256
|
const results = items.map((it) => {
|
|
204
257
|
const files = [...(backlinkFiles.get(it.id) ?? [])];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-acs.js","sourceRoot":"","sources":["../../src/commands/verify-acs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verify-acs.js","sourceRoot":"","sources":["../../src/commands/verify-acs.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,13 @@ export type CloseoutRow = {
|
|
|
35
35
|
* 'complete' decision (e.g. builder's 'implemented'), the decision verbatim for a
|
|
36
36
|
* nudge, or null when nothing was written. */
|
|
37
37
|
writtenStatus: string | null;
|
|
38
|
+
/** The terminal `pipeline_status` value this run WOULD mint (#75) — set whenever the
|
|
39
|
+
* decision is 'complete' and `--pipeline` opted in, INDEPENDENT of write, so a --dry-run
|
|
40
|
+
* previews it. Null when not opted in / not a complete decision. */
|
|
41
|
+
wouldMintPipelineStatus: string | null;
|
|
42
|
+
/** The terminal `pipeline_status` value ACTUALLY written this run (null in a dry-run, or
|
|
43
|
+
* when not opted in). Equals {@link wouldMintPipelineStatus} on a real, applied run. */
|
|
44
|
+
writtenPipelineStatus: string | null;
|
|
38
45
|
/** True only when this run actually wrote a new `status:` to the spec file. */
|
|
39
46
|
written: boolean;
|
|
40
47
|
/** The reconcile divergence row (pipeline_status recompute) computed as step 1. */
|
|
@@ -46,6 +53,14 @@ export type CloseoutSpecOptions = CloseoutOptions & {
|
|
|
46
53
|
/** The status to write for a verified-complete spec. Absent ⇒ 'complete' (the engine's
|
|
47
54
|
* canonical terminal); a consumer passes its own terminal (e.g. 'implemented'), P3a. */
|
|
48
55
|
terminalStatus?: string;
|
|
56
|
+
/** #75: the repo's opt-in terminal `pipeline_status` value (`close_out.pipeline_terminal`).
|
|
57
|
+
* Passed WHENEVER configured so step-1 reconcile's pin-guard preserves an already-minted
|
|
58
|
+
* terminal on a re-close. Absent ⇒ no pipeline_status terminal semantics. */
|
|
59
|
+
pipelineTerminal?: string;
|
|
60
|
+
/** #75: mint `pipeline_status = pipelineTerminal` on a verified-complete decision (set by
|
|
61
|
+
* `close-out --pipeline`). Requires `pipelineTerminal`. Off ⇒ close-out writes only `status:`
|
|
62
|
+
* (unchanged default behavior). */
|
|
63
|
+
mintPipelineTerminal?: boolean;
|
|
49
64
|
};
|
|
50
65
|
/**
|
|
51
66
|
* Close out a single spec: reconcile, decide, and (when `write`) materialize the
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { isCompleteStatus, isTerminalStatus } from './blockers.js';
|
|
2
3
|
import { decideCloseout } from './closeout-predicate.js';
|
|
3
|
-
import { readFrontmatter, setStatus } from './frontmatter.js';
|
|
4
|
+
import { readFrontmatter, setPipelineStatus, setStatus } from './frontmatter.js';
|
|
4
5
|
import { reconcileSpec } from './reconcile-core.js';
|
|
5
6
|
/**
|
|
6
7
|
* Close out a single spec: reconcile, decide, and (when `write`) materialize the
|
|
@@ -11,24 +12,58 @@ export function closeOutSpec(repoRoot, spec, opts) {
|
|
|
11
12
|
const { write, ...decisionOpts } = opts;
|
|
12
13
|
// Step 1 — reconcile. In a real run this writes the artifact-computed
|
|
13
14
|
// `pipeline_status` back; in a dry-run nothing is written, but we still capture the
|
|
14
|
-
// computed stage and feed it to the gate below so dry-run == apply.
|
|
15
|
-
|
|
15
|
+
// computed stage and feed it to the gate below so dry-run == apply. The pin-guard
|
|
16
|
+
// (opts.pipelineTerminal) preserves an already-minted ship terminal on a re-close (#75).
|
|
17
|
+
const reconcile = reconcileSpec(repoRoot, spec, write, undefined, opts.pipelineTerminal);
|
|
16
18
|
// Step 2 — decide. Read the (possibly just-reconciled) frontmatter and overlay the
|
|
17
19
|
// artifact-computed stage so the gate keys on reality, not a stale/lagging value.
|
|
18
20
|
const text = readFileSync(spec.path, 'utf8');
|
|
19
21
|
const fm = readFrontmatter(text);
|
|
20
22
|
const effectiveFm = { ...fm, pipeline_status: reconcile.computed ?? fm.pipeline_status };
|
|
21
|
-
|
|
23
|
+
// The pure predicate's never-downgrade guard only knows complete/implemented/✅ +
|
|
24
|
+
// archived/superseded/… — a CUSTOM configured terminal (e.g. 'shipped') slips past it,
|
|
25
|
+
// so a re-close would re-evaluate the ACs and misreport a 'complete' decision for a
|
|
26
|
+
// no-op. Recognize the configured terminal here (the core owns the terminal mapping),
|
|
27
|
+
// leaving the pure predicate terminal-agnostic.
|
|
28
|
+
const terminalStatus = opts.terminalStatus ?? 'complete';
|
|
29
|
+
const st = typeof effectiveFm.status === 'string' ? effectiveFm.status.trim() : '';
|
|
30
|
+
const atCustomTerminal = st !== '' &&
|
|
31
|
+
st.toLowerCase() === terminalStatus.toLowerCase() &&
|
|
32
|
+
!isCompleteStatus(st) &&
|
|
33
|
+
!isTerminalStatus(st, effectiveFm.superseded_by);
|
|
34
|
+
const decision = atCustomTerminal
|
|
35
|
+
? { nextStatus: null, reason: `already at terminal status (status: ${effectiveFm.status}); never downgrade` }
|
|
36
|
+
: decideCloseout(effectiveFm, decisionOpts);
|
|
37
|
+
// #75: the terminal-pipeline-status mint INTENT — computed independent of `write` so a
|
|
38
|
+
// `--dry-run` previews it exactly as it previews the `status` decision (dry-run == apply).
|
|
39
|
+
// It fires on a verified-complete decision when `--pipeline` opted in and the repo declared
|
|
40
|
+
// `close_out.pipeline_terminal`. A downstream that keys off pipeline_status (e.g. the encoreos
|
|
41
|
+
// epic-close rollup, which reads `pipeline_status ~ /^complete/i`) then sees the ship signal
|
|
42
|
+
// without a hand-edit.
|
|
43
|
+
const wouldMintPipelineStatus = decision.nextStatus === 'complete' && opts.mintPipelineTerminal && opts.pipelineTerminal
|
|
44
|
+
? opts.pipelineTerminal
|
|
45
|
+
: null;
|
|
22
46
|
// Step 3 — promote. The engine OWNS the verified status write; it happens only when
|
|
23
47
|
// the gate returned a status AND --write (non-dry-run) was requested.
|
|
24
48
|
let written = false;
|
|
25
49
|
let writtenStatus = null;
|
|
50
|
+
let writtenPipelineStatus = null;
|
|
26
51
|
if (write && decision.nextStatus) {
|
|
27
52
|
// A 'complete' decision writes the CONFIGURED terminal status (default 'complete';
|
|
28
53
|
// e.g. builder's 'implemented') — the engine owns the terminal write so a consumer
|
|
29
54
|
// needs no post-hoc CI rewrite (P3a). A nudge writes the decision's status verbatim.
|
|
30
55
|
const target = decision.nextStatus === 'complete' ? (opts.terminalStatus ?? 'complete') : decision.nextStatus;
|
|
31
|
-
|
|
56
|
+
let next = setStatus(text, target);
|
|
57
|
+
// Mint the terminal pipeline_status onto the already-reconciled `text` (step 1 healed
|
|
58
|
+
// it down to the computed stage), so the terminal lands ABOVE that stage; reconcile's
|
|
59
|
+
// pin-guard keeps it on every later pass.
|
|
60
|
+
if (wouldMintPipelineStatus) {
|
|
61
|
+
const pipelined = setPipelineStatus(next, wouldMintPipelineStatus);
|
|
62
|
+
if (pipelined !== next) {
|
|
63
|
+
next = pipelined;
|
|
64
|
+
writtenPipelineStatus = wouldMintPipelineStatus;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
32
67
|
if (next !== text) {
|
|
33
68
|
writeFileSync(spec.path, next, 'utf8');
|
|
34
69
|
written = true;
|
|
@@ -41,6 +76,8 @@ export function closeOutSpec(repoRoot, spec, opts) {
|
|
|
41
76
|
decision,
|
|
42
77
|
status: decision.nextStatus,
|
|
43
78
|
writtenStatus,
|
|
79
|
+
wouldMintPipelineStatus,
|
|
80
|
+
writtenPipelineStatus,
|
|
44
81
|
written,
|
|
45
82
|
reconcile,
|
|
46
83
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closeout-core.js","sourceRoot":"","sources":["../../src/lib/closeout-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAA+C,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACtG,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"closeout-core.js","sourceRoot":"","sources":["../../src/lib/closeout-core.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -18,12 +18,15 @@ export type ArchivePolicy = {
|
|
|
18
18
|
removes_from: string[];
|
|
19
19
|
};
|
|
20
20
|
/** One `verify-acs` lane: backing files whose repo-relative path starts with `prefix`
|
|
21
|
-
* run
|
|
22
|
-
*
|
|
21
|
+
* run in `cwd` instead of landing in `deferred`. `command` defaults to `bunx vitest
|
|
22
|
+
* run`. `reporter` selects the JSON-report parser + how the output file is requested
|
|
23
|
+
* (Vitest `--outputFile=` vs Playwright `PLAYWRIGHT_JSON_OUTPUT_NAME` env); absent ⇒
|
|
24
|
+
* `'vitest'`, so existing lanes are unchanged (P2). */
|
|
23
25
|
export type LaneDef = {
|
|
24
26
|
prefix: string;
|
|
25
27
|
cwd: string;
|
|
26
28
|
command?: string;
|
|
29
|
+
reporter?: 'vitest' | 'playwright';
|
|
27
30
|
};
|
|
28
31
|
export type SpecConfig = {
|
|
29
32
|
version: number;
|
|
@@ -83,8 +86,19 @@ export type SpecConfig = {
|
|
|
83
86
|
* `'complete'` (the engine's canonical terminal). A consumer whose lifecycle has a
|
|
84
87
|
* distinct terminal (e.g. builder's `implemented`) sets it here so the engine writes
|
|
85
88
|
* it directly — no post-hoc CI rewrite (P3a). Additive, back-compatible. */
|
|
89
|
+
/** #75 close-out config.
|
|
90
|
+
* - `terminal_status`: the org-lifecycle `status:` value close-out writes when a spec
|
|
91
|
+
* is verified-complete (absent ⇒ `'complete'`; e.g. builder's `implemented`), P3a.
|
|
92
|
+
* - `pipeline_terminal`: OPT-IN terminal `pipeline_status` value a repo carries ABOVE
|
|
93
|
+
* the computed statusOrder on shipped specs, so a downstream that keys off
|
|
94
|
+
* `pipeline_status` (e.g. the encoreos epic-close rollup) sees a ship signal the
|
|
95
|
+
* artifact-derived `computeStage` can't mint (it caps at `tasks_generated`). When set,
|
|
96
|
+
* `close-out --pipeline` mints it on a verified-complete decision, `reconcile` PRESERVES
|
|
97
|
+
* it (never heals it down), and `doctor` accepts it as a valid stage. Absent ⇒ no such
|
|
98
|
+
* behavior anywhere (fully backward-compatible; `pipeline_status` stays ≤ `tasks_generated`). */
|
|
86
99
|
close_out?: {
|
|
87
100
|
terminal_status?: string;
|
|
101
|
+
pipeline_terminal?: string;
|
|
88
102
|
};
|
|
89
103
|
/** D2: opt-in verification-coverage gate on `eos-spec complete`. Absent (the
|
|
90
104
|
* whole block, or the `verification_coverage_min` key) ⇒ no gate — fully
|
|
@@ -104,6 +118,14 @@ export type SpecConfig = {
|
|
|
104
118
|
* line, shipped marker, template map). Additive + fully defaulted — absent ⇒
|
|
105
119
|
* `DEFAULT_HANDOFF` (a repo without it behaves exactly as before). See handoff.ts. */
|
|
106
120
|
handoff?: HandoffConfig;
|
|
121
|
+
/** OPT-IN FR/SC Requirements-Traceability-Matrix scorecard (#79). Absent (or
|
|
122
|
+
* `enabled` falsy) ⇒ `scorecard --rtm` emits nothing and `resolveRtm` reports
|
|
123
|
+
* disabled — a repo that does not model body FR/SC/NFR requirements is unaffected.
|
|
124
|
+
* `ratchets` overrides the advisory coverage floors (see rtm-scorecard.ts). */
|
|
125
|
+
rtm?: {
|
|
126
|
+
enabled?: boolean;
|
|
127
|
+
ratchets?: Record<string, number>;
|
|
128
|
+
};
|
|
107
129
|
};
|
|
108
130
|
export declare function loadConfig(repoRoot: string, configOverride?: string): SpecConfig;
|
|
109
131
|
export declare function resetConfigCache(): void;
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAsB,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAsB,aAAa,EAAE,MAAM,cAAc,CAAC;AA+HjE,IAAI,MAAM,GAAsB,IAAI,CAAC;AACrC,IAAI,UAAU,GAAkB,IAAI,CAAC;AAErC,MAAM,UAAU,UAAU,CAAC,QAAgB,EAAE,cAAuB;IAClE,MAAM,UAAU,GAAG,cAAc,IAAI,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAE5E,IAAI,MAAM,IAAI,UAAU,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC;IAEvD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAe,CAAC;IAC5C,MAAM,GAAG,MAAM,CAAC;IAChB,UAAU,GAAG,UAAU,CAAC;IACxB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,IAAI,CAAC;IACd,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAkB;IAChD,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAkB,EAAE,IAAY;IACpE,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED;;2EAE2E;AAC3E,MAAM,UAAU,mBAAmB,CAAC,MAAkB,EAAE,GAAW;IACjE,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gFAAgF;AAChF,4EAA4E;AAC5E,0EAA0E;AAC1E,wEAAwE;AACxE,6EAA6E;AAC7E,6EAA6E;AAC7E,iDAAiD;AAEjD,mEAAmE;AACnE,MAAM,UAAU,aAAa,CAAC,MAAkB;IAC9C,OAAO,MAAM,CAAC,KAAK,EAAE,UAAU,IAAI,sBAAsB,CAAC;AAC5D,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,iBAAiB,CAAC,MAAkB;IAClD,OAAO,MAAM,CAAC,KAAK,EAAE,eAAe,IAAI,2BAA2B,CAAC;AACtE,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,iBAAiB,CAAC,MAAkB;IAClD,OAAO,MAAM,CAAC,KAAK,EAAE,mBAAmB,IAAI,2BAA2B,CAAC;AAC1E,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,qBAAqB,CAAC,MAAkB;IACtD,OAAO,MAAM,CAAC,KAAK,EAAE,uBAAuB,IAAI,+BAA+B,CAAC;AAClF,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,WAAW,CAAC,MAAkB;IAC5C,OAAO,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;AACnC,CAAC;AAED;;;kFAGkF;AAClF,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,cAAuB;IAC1E,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;6CAI6C;AAC7C,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,cAAuB;IACtE,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AASD;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,cAAuB;IAC7E,IAAI,MAAM,GAAsB,IAAI,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IACD,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB;QACtE,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,2BAA2B;QACnF,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,2BAA2B;QACnF,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,+BAA+B;KAChG,CAAC;AACJ,CAAC"}
|
|
@@ -27,11 +27,12 @@ export type StatusVocab = {
|
|
|
27
27
|
/** Valid `status` values — the repo's `statuses` enum ids. */
|
|
28
28
|
statuses: readonly string[];
|
|
29
29
|
};
|
|
30
|
-
/** One diagnosed status-model problem on a spec
|
|
30
|
+
/** One diagnosed status-model problem on a spec (or, for `terminal_status`, on the
|
|
31
|
+
* repo's config — `id: '(config)'`, `core: 'close_out'`). */
|
|
31
32
|
export type DoctorFinding = {
|
|
32
33
|
id: string;
|
|
33
34
|
core: string;
|
|
34
|
-
field: 'pipeline_status' | 'status';
|
|
35
|
+
field: 'pipeline_status' | 'status' | 'terminal_status';
|
|
35
36
|
value: string;
|
|
36
37
|
/** `swapped` = the OTHER field's vocabulary landed here (the category error);
|
|
37
38
|
* `unknown` = a value in neither vocabulary (a typo/invalid value). */
|
|
@@ -46,3 +47,17 @@ export type DoctorFinding = {
|
|
|
46
47
|
* @returns zero or more findings (empty = the spec's status fields are well-formed).
|
|
47
48
|
*/
|
|
48
49
|
export declare function diagnoseSpecStatusFields(spec: SpecStatusFields, vocab: StatusVocab): DoctorFinding[];
|
|
50
|
+
/**
|
|
51
|
+
* Diagnose a cross-feature invariant #70 shipped but never validated: the repo's
|
|
52
|
+
* `close_out.terminal_status` (the status value close-out writes) must itself be a
|
|
53
|
+
* member of `statuses:`. If it isn't, close-out writes that value and `doctor` then
|
|
54
|
+
* flags it on every closed-out spec — a silent, self-inflicted contradiction between
|
|
55
|
+
* two features that shipped in the same PR. Skips the check (no finding) when the repo declares no
|
|
56
|
+
* `statuses:` enum at all — that degrade is `diagnoseSpecStatusFields`'s job, not this
|
|
57
|
+
* one's, since there's nothing to validate membership against.
|
|
58
|
+
*
|
|
59
|
+
* @param terminalStatus `config.close_out?.terminal_status`, if the repo sets one.
|
|
60
|
+
* @param vocab the repo's valid stage + status vocabularies.
|
|
61
|
+
* @returns zero or one finding.
|
|
62
|
+
*/
|
|
63
|
+
export declare function diagnoseCloseoutTerminalStatus(terminalStatus: string | undefined, vocab: StatusVocab): DoctorFinding[];
|
package/dist/lib/doctor-core.js
CHANGED
|
@@ -41,20 +41,58 @@ export function diagnoseSpecStatusFields(spec, vocab) {
|
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
43
|
const st = typeof spec.status === 'string' ? spec.status : null;
|
|
44
|
-
if (st
|
|
44
|
+
if (st) {
|
|
45
|
+
// With no `statuses:` enum declared, we can't judge membership at all — only
|
|
46
|
+
// flag the one thing we CAN still detect without it: a pipeline stage value
|
|
47
|
+
// landing in `status:` (the classic swap). Never call an unrecognized value
|
|
48
|
+
// "unknown" when we have no vocabulary to check it against.
|
|
45
49
|
const swapped = stages.has(st);
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
50
|
+
const flag = statuses.size > 0 ? !statuses.has(st) : swapped;
|
|
51
|
+
if (flag) {
|
|
52
|
+
findings.push({
|
|
53
|
+
id: spec.id,
|
|
54
|
+
core: spec.core,
|
|
55
|
+
field: 'status',
|
|
56
|
+
value: st,
|
|
57
|
+
kind: swapped ? 'swapped' : 'unknown',
|
|
58
|
+
message: swapped
|
|
59
|
+
? `status "${st}" is a pipeline stage, not a lifecycle value. Track the workflow ` +
|
|
60
|
+
`stage in \`pipeline_status:\`; \`status:\` holds the lifecycle (${vocab.statuses.join(', ')}).`
|
|
61
|
+
: `status "${st}" is not in the repo's statuses enum (${vocab.statuses.join(', ')}).`,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
57
64
|
}
|
|
58
65
|
return findings;
|
|
59
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Diagnose a cross-feature invariant #70 shipped but never validated: the repo's
|
|
69
|
+
* `close_out.terminal_status` (the status value close-out writes) must itself be a
|
|
70
|
+
* member of `statuses:`. If it isn't, close-out writes that value and `doctor` then
|
|
71
|
+
* flags it on every closed-out spec — a silent, self-inflicted contradiction between
|
|
72
|
+
* two features that shipped in the same PR. Skips the check (no finding) when the repo declares no
|
|
73
|
+
* `statuses:` enum at all — that degrade is `diagnoseSpecStatusFields`'s job, not this
|
|
74
|
+
* one's, since there's nothing to validate membership against.
|
|
75
|
+
*
|
|
76
|
+
* @param terminalStatus `config.close_out?.terminal_status`, if the repo sets one.
|
|
77
|
+
* @param vocab the repo's valid stage + status vocabularies.
|
|
78
|
+
* @returns zero or one finding.
|
|
79
|
+
*/
|
|
80
|
+
export function diagnoseCloseoutTerminalStatus(terminalStatus, vocab) {
|
|
81
|
+
if (!terminalStatus || vocab.statuses.length === 0)
|
|
82
|
+
return [];
|
|
83
|
+
if (vocab.statuses.includes(terminalStatus))
|
|
84
|
+
return [];
|
|
85
|
+
return [
|
|
86
|
+
{
|
|
87
|
+
id: '(config)',
|
|
88
|
+
core: 'close_out',
|
|
89
|
+
field: 'terminal_status',
|
|
90
|
+
value: terminalStatus,
|
|
91
|
+
kind: 'unknown',
|
|
92
|
+
message: `close_out.terminal_status "${terminalStatus}" is not in the repo's statuses enum ` +
|
|
93
|
+
`(${vocab.statuses.join(', ')}). This will be flagged on every closed-out spec — ` +
|
|
94
|
+
`add "${terminalStatus}" to \`statuses:\` in specs/config.yaml.`,
|
|
95
|
+
},
|
|
96
|
+
];
|
|
97
|
+
}
|
|
60
98
|
//# sourceMappingURL=doctor-core.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-core.js","sourceRoot":"","sources":["../../src/lib/doctor-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"doctor-core.js","sourceRoot":"","sources":["../../src/lib/doctor-core.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/frontmatter.js
CHANGED
|
@@ -276,10 +276,33 @@ export function appendAcceptanceCriteria(text, entries) {
|
|
|
276
276
|
if (hasKey) {
|
|
277
277
|
const parsed = readFrontmatter(text);
|
|
278
278
|
const existing = Array.isArray(parsed.acceptance_criteria) ? parsed.acceptance_criteria : [];
|
|
279
|
-
|
|
279
|
+
// Defense-in-depth (issue #65-2): never append an entry whose id already exists — a
|
|
280
|
+
// caller that seeds an AC the template already carries must not produce a duplicate id.
|
|
281
|
+
const existingIds = new Set(existing.map((e) => e.id).filter((x) => typeof x === 'string'));
|
|
282
|
+
const fresh = entries.filter((e) => !existingIds.has(e.id));
|
|
283
|
+
if (fresh.length === 0)
|
|
284
|
+
return text; // every entry already present → nothing to add
|
|
285
|
+
const merged = yamlStringify({ acceptance_criteria: [...existing, ...fresh] }).trimEnd();
|
|
280
286
|
// Replace the `acceptance_criteria:` block: from that line through the next
|
|
281
|
-
// top-level key OR the end of the frontmatter block.
|
|
282
|
-
|
|
287
|
+
// top-level key OR the end of the frontmatter block. Scan line-by-line rather than
|
|
288
|
+
// a single lazy regex: `[\s\S]*?` followed by a `\s*$` lookahead is satisfied at
|
|
289
|
+
// zero width (the char right after "acceptance_criteria:" is always the "\n" that
|
|
290
|
+
// ends that line, which itself satisfies a multiline `$`), so the old lazy regex
|
|
291
|
+
// matched only the key itself and left the entire original list dangling in the
|
|
292
|
+
// output — a latent bug (pre-dates this dedup change) that duplicated every
|
|
293
|
+
// existing AC on every append. A blank-or-indented line is still part of this
|
|
294
|
+
// key's value; the first unindented, non-blank line starts the next top-level key.
|
|
295
|
+
const blockLines = block.split('\n');
|
|
296
|
+
const keyLineIdx = blockLines.findIndex((line) => /^acceptance_criteria\s*:/.test(line));
|
|
297
|
+
let valueEndIdx = blockLines.length;
|
|
298
|
+
for (let i = keyLineIdx + 1; i < blockLines.length; i++) {
|
|
299
|
+
const line = blockLines[i];
|
|
300
|
+
if (line.trim() !== '' && /^\S/.test(line)) {
|
|
301
|
+
valueEndIdx = i;
|
|
302
|
+
break;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
newBlock = [...blockLines.slice(0, keyLineIdx), merged, ...blockLines.slice(valueEndIdx)].join('\n');
|
|
283
306
|
}
|
|
284
307
|
else {
|
|
285
308
|
newBlock = `${block}\n${yamlStringify({ acceptance_criteria: entries }).trimEnd()}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../../src/lib/frontmatter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../../src/lib/frontmatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,4 +40,4 @@ export type ReconcileRow = {
|
|
|
40
40
|
* BUILDER stage order, not the ENCORE1 default (F-4, #35). Omitted ⇒ the static
|
|
41
41
|
* ENCORE1/legacy singleton, unchanged from prior behavior.
|
|
42
42
|
*/
|
|
43
|
-
export declare function reconcileSpec(repoRoot: string, spec: SpecFile, write: boolean, pipeline?: ReconcilePipeline): ReconcileRow;
|
|
43
|
+
export declare function reconcileSpec(repoRoot: string, spec: SpecFile, write: boolean, pipeline?: ReconcilePipeline, pipelineTerminal?: string): ReconcileRow;
|
|
@@ -23,12 +23,20 @@ export function classify(written, computed, rankFn = rank) {
|
|
|
23
23
|
* BUILDER stage order, not the ENCORE1 default (F-4, #35). Omitted ⇒ the static
|
|
24
24
|
* ENCORE1/legacy singleton, unchanged from prior behavior.
|
|
25
25
|
*/
|
|
26
|
-
export function reconcileSpec(repoRoot, spec, write, pipeline) {
|
|
26
|
+
export function reconcileSpec(repoRoot, spec, write, pipeline, pipelineTerminal) {
|
|
27
27
|
const stageFn = pipeline?.computeStage ?? computeStage;
|
|
28
28
|
const rankFn = pipeline?.rank ?? rank;
|
|
29
29
|
const computed = stageFn(spec);
|
|
30
30
|
const written = spec.signals.pipelineStatus;
|
|
31
|
-
|
|
31
|
+
// #75 pin-guard: a spec carrying the repo's opt-in ship terminal
|
|
32
|
+
// (`close_out.pipeline_terminal`, e.g. `complete`) sits ABOVE the artifact-derived stage
|
|
33
|
+
// ON PURPOSE — shipping is a lifecycle fact `computeStage` can't see (it caps at
|
|
34
|
+
// tasks_generated). Treat that EXACT value as reconciled ('ok') so no reconcile pass
|
|
35
|
+
// (this one, `signoff --reconcile`, close-out's own step 1, or a later `reconcile`) heals
|
|
36
|
+
// it back down. Every OTHER overstated value is still corrected — only the configured
|
|
37
|
+
// terminal is pinned, and only when a repo opts in (pipelineTerminal set).
|
|
38
|
+
const pinnedTerminal = pipelineTerminal !== undefined && written === pipelineTerminal;
|
|
39
|
+
const direction = pinnedTerminal ? 'ok' : classify(written, computed, rankFn);
|
|
32
40
|
if (write && computed) {
|
|
33
41
|
const original = readFileSync(spec.path, 'utf8');
|
|
34
42
|
let text = original;
|