@rasensio/aidlc 1.19.0 → 1.20.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/change/cross-check.d.ts +28 -0
- package/dist/change/cross-check.d.ts.map +1 -0
- package/dist/change/cross-check.js +53 -0
- package/dist/change/cross-check.js.map +1 -0
- package/dist/change/impact.d.ts +57 -0
- package/dist/change/impact.d.ts.map +1 -0
- package/dist/change/impact.js +288 -0
- package/dist/change/impact.js.map +1 -0
- package/dist/change/index.d.ts +12 -0
- package/dist/change/index.d.ts.map +1 -0
- package/dist/change/index.js +11 -0
- package/dist/change/index.js.map +1 -0
- package/dist/change/parser.d.ts +52 -0
- package/dist/change/parser.d.ts.map +1 -0
- package/dist/change/parser.js +339 -0
- package/dist/change/parser.js.map +1 -0
- package/dist/change/reopen.d.ts +80 -0
- package/dist/change/reopen.d.ts.map +1 -0
- package/dist/change/reopen.js +227 -0
- package/dist/change/reopen.js.map +1 -0
- package/dist/change/types.d.ts +144 -0
- package/dist/change/types.d.ts.map +1 -0
- package/dist/change/types.js +8 -0
- package/dist/change/types.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/amend.d.ts +22 -0
- package/dist/commands/amend.d.ts.map +1 -0
- package/dist/commands/amend.js +355 -0
- package/dist/commands/amend.js.map +1 -0
- package/dist/commands/docs.d.ts.map +1 -1
- package/dist/commands/docs.js +6 -0
- package/dist/commands/docs.js.map +1 -1
- package/dist/core/lifecycle.d.ts +3 -0
- package/dist/core/lifecycle.d.ts.map +1 -1
- package/dist/core/lifecycle.js +13 -2
- package/dist/core/lifecycle.js.map +1 -1
- package/dist/core/types.d.ts +37 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/menu/roster.d.ts.map +1 -1
- package/dist/menu/roster.js +4 -0
- package/dist/menu/roster.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reopen.js","sourceRoot":"","sources":["../../src/change/reopen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Change-management types: amendments parsed from requirements.md, the
|
|
3
|
+
* read-only impact report, and the reopen plan.
|
|
4
|
+
*
|
|
5
|
+
* Design: design.md (change-management) §4
|
|
6
|
+
*/
|
|
7
|
+
import type { TransitionRecord } from '../core/types.js';
|
|
8
|
+
/** One amendment section parsed from requirements.md (AC-51, AC-78). */
|
|
9
|
+
export interface Amendment {
|
|
10
|
+
/** n in `Amendment n`; ≥1, no leading zeros. */
|
|
11
|
+
n: number;
|
|
12
|
+
/** YYYY-MM-DD exactly as written. */
|
|
13
|
+
date: string;
|
|
14
|
+
/** The optional `, <context>` tail from the heading. */
|
|
15
|
+
context?: string;
|
|
16
|
+
/** 1-based heading line. */
|
|
17
|
+
line: number;
|
|
18
|
+
/** Heading depth, 2 or 3 — bounds the section (AC-51). */
|
|
19
|
+
level: number;
|
|
20
|
+
retires: number[];
|
|
21
|
+
issues: number[];
|
|
22
|
+
/**
|
|
23
|
+
* Phase names AS WRITTEN. Never trusted until validated against the
|
|
24
|
+
* template's applicable phase list and screened for traversal characters
|
|
25
|
+
* (AC-82) — this field reaches a filename, so it is the untrusted input.
|
|
26
|
+
*/
|
|
27
|
+
reopens: string[];
|
|
28
|
+
/**
|
|
29
|
+
* Whether a `Retires:` field was present at all, as distinct from present
|
|
30
|
+
* and empty. A truncated field and a genuinely empty one must not render
|
|
31
|
+
* identically (AC-88): the first is a parse failure, the second is a fact.
|
|
32
|
+
*/
|
|
33
|
+
retiresPresent: boolean;
|
|
34
|
+
reason?: string;
|
|
35
|
+
}
|
|
36
|
+
/** Parse result for one requirements.md (AC-5, AC-7, AC-8, AC-53). */
|
|
37
|
+
export interface ParsedAmendments {
|
|
38
|
+
/** Ordered by n; first occurrence wins on duplicates (AC-5). */
|
|
39
|
+
amendments: Amendment[];
|
|
40
|
+
/** Ordered by source line (AC-48). */
|
|
41
|
+
warnings: string[];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* One impacted citation of a retired criterion.
|
|
45
|
+
*
|
|
46
|
+
* Identity is the triple `path:line:acId` (AC-71). `task` beats `artifact`
|
|
47
|
+
* when the same triple is produced by both walks, because a task record
|
|
48
|
+
* carries strictly more information — `tasks.md` is itself a declared design
|
|
49
|
+
* artifact, so every task line is seen twice.
|
|
50
|
+
*/
|
|
51
|
+
export interface ImpactRef {
|
|
52
|
+
/** Posix-separated, project-root-relative. */
|
|
53
|
+
path: string;
|
|
54
|
+
/** 1-based. */
|
|
55
|
+
line: number;
|
|
56
|
+
acId: number;
|
|
57
|
+
source: 'test' | 'task' | 'artifact';
|
|
58
|
+
/** Present iff source === 'task'. */
|
|
59
|
+
taskId?: number;
|
|
60
|
+
taskState?: 'open' | 'done' | 'deferred';
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Four outcomes, not two (AC-88). `no-retirements` means the amendment
|
|
64
|
+
* declared an empty `Retires:`; `retires-absent` means it declared none at
|
|
65
|
+
* all, which after AC-78 should be rare and is worth saying out loud.
|
|
66
|
+
*/
|
|
67
|
+
export type ImpactOutcome = 'impacts' | 'none' | 'no-retirements' | 'retires-absent';
|
|
68
|
+
/** Full impact report — advisory, never consumed by the write path (AC-58). */
|
|
69
|
+
export interface ImpactReport {
|
|
70
|
+
outcome: ImpactOutcome;
|
|
71
|
+
retiredIds: number[];
|
|
72
|
+
/** Deduped on `path:line:acId`, ordered path → line → acId (AC-71, AC-48). */
|
|
73
|
+
refs: ImpactRef[];
|
|
74
|
+
/**
|
|
75
|
+
* The phases whose declared artifacts carry impacts. A SUGGESTION the
|
|
76
|
+
* author may paste into `Reopens:` — `aidlc amend` never reads it (AC-58).
|
|
77
|
+
*/
|
|
78
|
+
suggestedReopens: string[];
|
|
79
|
+
warnings: string[];
|
|
80
|
+
}
|
|
81
|
+
/** Why `planReopen` refused on grounds other than a bad phase name. */
|
|
82
|
+
export type BlockedCode = 'current-phase-outside-template' | 'phase-state-missing';
|
|
83
|
+
/**
|
|
84
|
+
* The five outcomes of planning a reopen. Every refusal is its own variant
|
|
85
|
+
* with its own payload, so no caller has to interpret a message string, and
|
|
86
|
+
* every branch is reachable without a filesystem.
|
|
87
|
+
*/
|
|
88
|
+
export type ReopenPlan =
|
|
89
|
+
/** Nothing was earlier than the current phase. Still records the amendment (AC-87). */
|
|
90
|
+
{
|
|
91
|
+
kind: 'noop';
|
|
92
|
+
reason: string;
|
|
93
|
+
}
|
|
94
|
+
/** A phase name is not a template member, or carries `/`, `\` or `..` (AC-82). */
|
|
95
|
+
| {
|
|
96
|
+
kind: 'invalid-phase';
|
|
97
|
+
names: string[];
|
|
98
|
+
validPhases: string[];
|
|
99
|
+
}
|
|
100
|
+
/** Every named phase is at or after the current one (AC-83). */
|
|
101
|
+
| {
|
|
102
|
+
kind: 'phase-ahead';
|
|
103
|
+
names: string[];
|
|
104
|
+
currentPhase: string;
|
|
105
|
+
}
|
|
106
|
+
/** State the plan cannot proceed from, rather than repair (AC-92). */
|
|
107
|
+
| {
|
|
108
|
+
kind: 'blocked';
|
|
109
|
+
code: BlockedCode;
|
|
110
|
+
message: string;
|
|
111
|
+
} | {
|
|
112
|
+
kind: 'reopen';
|
|
113
|
+
/**
|
|
114
|
+
* The contiguous range actually rewritten: template order, earliest
|
|
115
|
+
* first, `skipped` phases removed (AC-85). This — not the names the
|
|
116
|
+
* author wrote — is what `detail` records (AC-84).
|
|
117
|
+
*/
|
|
118
|
+
phases: string[];
|
|
119
|
+
/** The phase current before the reopen. */
|
|
120
|
+
from: string;
|
|
121
|
+
/** Earliest rewritten phase; strictly earlier than `from` (AC-83). */
|
|
122
|
+
to: string;
|
|
123
|
+
newCurrentPhase: string;
|
|
124
|
+
record: TransitionRecord;
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Closed set of `--json` error codes (AC-77). Closed on purpose: an error
|
|
128
|
+
* shape invented per branch at implementation time is what makes `--json`
|
|
129
|
+
* unparseable by anything downstream.
|
|
130
|
+
*/
|
|
131
|
+
export type AmendErrorCode = 'no-requirements-artifact' | 'no-requirements-file' | 'no-amendment-section' | 'amendment-not-found' | 'unapplied-predecessor' | 'no-reopens-field' | 'invalid-phase-name' | 'phase-ahead-of-current' | 'phase-state-missing' | 'current-phase-outside-template' | 'instance-complete' | 'confirm-required' | 'no-claim';
|
|
132
|
+
/** The one envelope every exit path emits under `--json` (AC-77). */
|
|
133
|
+
export interface AmendEnvelope {
|
|
134
|
+
ok: boolean;
|
|
135
|
+
exit_code: number;
|
|
136
|
+
error?: {
|
|
137
|
+
code: AmendErrorCode;
|
|
138
|
+
message: string;
|
|
139
|
+
};
|
|
140
|
+
amendment?: Amendment;
|
|
141
|
+
impact?: ImpactReport;
|
|
142
|
+
plan?: ReopenPlan;
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/change/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/change/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AAcH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AAcH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0BpC;;;;;;GAMG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAkCtC;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,MAAM,GAAG,SAA2B,GAC1C,OAAO,CAQT"}
|
package/dist/cli.js
CHANGED
|
@@ -27,6 +27,7 @@ import { registerContinue } from './commands/continue.js';
|
|
|
27
27
|
import { registerStatus } from './commands/status.js';
|
|
28
28
|
import { registerGate } from './commands/gate.js';
|
|
29
29
|
import { registerTransition } from './commands/transition.js';
|
|
30
|
+
import { registerAmend } from './commands/amend.js';
|
|
30
31
|
import { registerDiscover } from './commands/discover.js';
|
|
31
32
|
import { registerAddAction } from './commands/add-action.js';
|
|
32
33
|
import { registerDocs } from './commands/docs.js';
|
|
@@ -63,6 +64,7 @@ export function buildProgram() {
|
|
|
63
64
|
registerStatus(program);
|
|
64
65
|
registerGate(program);
|
|
65
66
|
registerTransition(program);
|
|
67
|
+
registerAmend(program);
|
|
66
68
|
registerDiscover(program);
|
|
67
69
|
registerAddAction(program);
|
|
68
70
|
registerDocs(program);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `aidlc amend <instance>` — record a mid-instance requirements change and
|
|
3
|
+
* reopen the phases it invalidated (FR5).
|
|
4
|
+
*
|
|
5
|
+
* Two modes. `--impact` is read-only: it parses the amendment, cross-checks the
|
|
6
|
+
* ids it claims, walks every remaining citation and prints them. The write path
|
|
7
|
+
* additionally validates the amendment's `Reopens:` field and rewrites phase
|
|
8
|
+
* state, and it is the most destructive write in the framework — it clears
|
|
9
|
+
* `completed_at`/`completed_by` on completed phases — so it carries the
|
|
10
|
+
* protections the transition path carries: a live claim, a printed plan before
|
|
11
|
+
* any write, `--confirm` from testing onwards, and an idempotence marker.
|
|
12
|
+
*
|
|
13
|
+
* Every exit path emits the same `--json` envelope with an error code drawn from
|
|
14
|
+
* a closed set (AC-77). An error shape invented per branch is what makes `--json`
|
|
15
|
+
* unparseable by anything downstream.
|
|
16
|
+
*
|
|
17
|
+
* Requirements: change-management/AC-30, AC-31, AC-34, AC-35, AC-36, AC-43,
|
|
18
|
+
* AC-60, AC-64, AC-67, AC-68, AC-74, AC-76, AC-77, AC-86, AC-90, AC-91
|
|
19
|
+
*/
|
|
20
|
+
import { Command } from 'commander';
|
|
21
|
+
export declare function registerAmend(program: Command): void;
|
|
22
|
+
//# sourceMappingURL=amend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amend.d.ts","sourceRoot":"","sources":["../../src/commands/amend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8CpC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAapD"}
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `aidlc amend <instance>` — record a mid-instance requirements change and
|
|
3
|
+
* reopen the phases it invalidated (FR5).
|
|
4
|
+
*
|
|
5
|
+
* Two modes. `--impact` is read-only: it parses the amendment, cross-checks the
|
|
6
|
+
* ids it claims, walks every remaining citation and prints them. The write path
|
|
7
|
+
* additionally validates the amendment's `Reopens:` field and rewrites phase
|
|
8
|
+
* state, and it is the most destructive write in the framework — it clears
|
|
9
|
+
* `completed_at`/`completed_by` on completed phases — so it carries the
|
|
10
|
+
* protections the transition path carries: a live claim, a printed plan before
|
|
11
|
+
* any write, `--confirm` from testing onwards, and an idempotence marker.
|
|
12
|
+
*
|
|
13
|
+
* Every exit path emits the same `--json` envelope with an error code drawn from
|
|
14
|
+
* a closed set (AC-77). An error shape invented per branch is what makes `--json`
|
|
15
|
+
* unparseable by anything downstream.
|
|
16
|
+
*
|
|
17
|
+
* Requirements: change-management/AC-30, AC-31, AC-34, AC-35, AC-36, AC-43,
|
|
18
|
+
* AC-60, AC-64, AC-67, AC-68, AC-74, AC-76, AC-77, AC-86, AC-90, AC-91
|
|
19
|
+
*/
|
|
20
|
+
import { Command } from 'commander';
|
|
21
|
+
import { existsSync, readFileSync, readdirSync } from 'node:fs';
|
|
22
|
+
import { join } from 'node:path';
|
|
23
|
+
import { loadTemplates as loadBuiltInTemplates } from '@rasensio/aidlc-content';
|
|
24
|
+
import { loadTemplates, resolveTemplate, phasesForScope } from '../core/template-resolver.js';
|
|
25
|
+
import { loadSnapshot } from '../state/snapshot-store.js';
|
|
26
|
+
import { resolveProjectRoot } from '../core/project-root.js';
|
|
27
|
+
import { openClaimStore, isStale as isClaimStale } from '../concurrency/claim-store.js';
|
|
28
|
+
import { loadClaimTimeoutMinutes } from '../cost/config.js';
|
|
29
|
+
import { loadRegistry } from '../traceability/gate-criterion.js';
|
|
30
|
+
import { parseRequirements } from '../traceability/parser.js';
|
|
31
|
+
import { getActorIdentity } from './transition.js';
|
|
32
|
+
import { applyReopen, crossCheck, describeOutcome, parseAmendments, planReopen, recordApplied, walkImpact, } from '../change/index.js';
|
|
33
|
+
/** Phases from which an amendment is a bigger event and needs saying out loud. */
|
|
34
|
+
const LATE_PHASES = new Set(['testing', 'deployment']);
|
|
35
|
+
export function registerAmend(program) {
|
|
36
|
+
program
|
|
37
|
+
.command('amend')
|
|
38
|
+
.description('Record a requirements amendment and reopen the phases it invalidated')
|
|
39
|
+
.argument('<instance>', 'Lifecycle instance name')
|
|
40
|
+
.option('--impact', 'Report remaining citations of the retired criteria; write nothing')
|
|
41
|
+
.option('--amendment <n>', 'Operate on this amendment instead of the highest-numbered one')
|
|
42
|
+
.option('--confirm', 'Confirm a reopen from testing or later')
|
|
43
|
+
.option('--override', 'Write without a live claim (records `by` from the environment)')
|
|
44
|
+
.option('--json', 'Output as JSON')
|
|
45
|
+
.action((instance, opts) => {
|
|
46
|
+
runAmend(instance, opts);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
// ---------------------------------------------------------------------------
|
|
50
|
+
// Output helpers — one envelope, one failure path
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
function emit(opts, envelope, humanLines) {
|
|
53
|
+
if (opts.json) {
|
|
54
|
+
process.stdout.write(JSON.stringify(envelope, null, 2) + '\n');
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
const stream = envelope.ok ? process.stdout : process.stderr;
|
|
58
|
+
for (const line of humanLines)
|
|
59
|
+
stream.write(`${line}\n`);
|
|
60
|
+
}
|
|
61
|
+
if (envelope.exit_code !== 0)
|
|
62
|
+
process.exitCode = envelope.exit_code;
|
|
63
|
+
}
|
|
64
|
+
function fail(opts, code, message, extra = {}) {
|
|
65
|
+
emit(opts, { ok: false, exit_code: 1, error: { code, message }, ...extra }, [`✗ ${message}`]);
|
|
66
|
+
}
|
|
67
|
+
// ---------------------------------------------------------------------------
|
|
68
|
+
// Loading
|
|
69
|
+
// ---------------------------------------------------------------------------
|
|
70
|
+
function loadAllTemplates(projectRoot) {
|
|
71
|
+
const templates = new Map();
|
|
72
|
+
for (const tpl of loadBuiltInTemplates()) {
|
|
73
|
+
templates.set(tpl.name, tpl.raw);
|
|
74
|
+
}
|
|
75
|
+
const customDir = join(projectRoot, '.aidlc', 'templates');
|
|
76
|
+
if (existsSync(customDir)) {
|
|
77
|
+
for (const [name, tpl] of loadTemplates(customDir))
|
|
78
|
+
templates.set(name, tpl);
|
|
79
|
+
}
|
|
80
|
+
return templates;
|
|
81
|
+
}
|
|
82
|
+
function loadPhaseStates(stateDir, instance) {
|
|
83
|
+
const phases = new Map();
|
|
84
|
+
let entries;
|
|
85
|
+
try {
|
|
86
|
+
entries = readdirSync(join(stateDir, instance));
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
return phases;
|
|
90
|
+
}
|
|
91
|
+
for (const file of entries.filter((f) => f.startsWith('phase-') && f.endsWith('.yaml'))) {
|
|
92
|
+
try {
|
|
93
|
+
const state = loadSnapshot(stateDir, instance, file);
|
|
94
|
+
if (state?.phase)
|
|
95
|
+
phases.set(String(state.phase), state);
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
// Skip corrupt phase files, as every other reader does.
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return phases;
|
|
102
|
+
}
|
|
103
|
+
// ---------------------------------------------------------------------------
|
|
104
|
+
// Core
|
|
105
|
+
// ---------------------------------------------------------------------------
|
|
106
|
+
function runAmend(instance, opts) {
|
|
107
|
+
const projectRoot = resolveProjectRoot();
|
|
108
|
+
const stateDir = join(projectRoot, '.aidlc', 'state');
|
|
109
|
+
const instanceDir = join(stateDir, instance);
|
|
110
|
+
if (!existsSync(instanceDir)) {
|
|
111
|
+
fail(opts, 'no-requirements-file', `instance '${instance}' not found`);
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
let instanceState;
|
|
115
|
+
try {
|
|
116
|
+
instanceState = loadSnapshot(stateDir, instance, 'instance.yaml');
|
|
117
|
+
}
|
|
118
|
+
catch (err) {
|
|
119
|
+
fail(opts, 'no-requirements-file', `failed to load instance state: ${err.message}`);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const allTemplates = loadAllTemplates(projectRoot);
|
|
123
|
+
const rawTemplate = allTemplates.get(instanceState.template);
|
|
124
|
+
if (!rawTemplate) {
|
|
125
|
+
fail(opts, 'no-requirements-artifact', `template '${instanceState.template}' not found`);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
let resolvedTemplate;
|
|
129
|
+
try {
|
|
130
|
+
resolvedTemplate = resolveTemplate(rawTemplate, allTemplates);
|
|
131
|
+
}
|
|
132
|
+
catch (err) {
|
|
133
|
+
fail(opts, 'no-requirements-artifact', `failed to resolve template: ${err.message}`);
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
// AC-64: keyed on the property that matters — no applicable phase declares
|
|
137
|
+
// requirements.md — not on `scope === 'micro'`. A full-feature instance run at
|
|
138
|
+
// micro scope has no requirements phase either, and a project-local template
|
|
139
|
+
// could declare the artifact under a differently-named phase.
|
|
140
|
+
const applicable = phasesForScope(resolvedTemplate, instanceState.scope);
|
|
141
|
+
const declaresRequirements = applicable.some((phase) => [...(phase.required_artifacts ?? []), ...(phase.optional_artifacts ?? [])].some((a) => a.name === 'requirements.md'));
|
|
142
|
+
if (!declaresRequirements) {
|
|
143
|
+
fail(opts, 'no-requirements-artifact', `no applicable phase of template '${instanceState.template}' at scope ` +
|
|
144
|
+
`'${instanceState.scope}' declares requirements.md — such instances (micro scope ` +
|
|
145
|
+
`among them) have no requirements artifact to amend; abandon and restart instead`);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
const requirementsPath = join(instanceDir, 'requirements.md');
|
|
149
|
+
if (!existsSync(requirementsPath)) {
|
|
150
|
+
fail(opts, 'no-requirements-file', `expected a requirements artifact at .aidlc/state/${instance}/requirements.md`);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
const content = readFileSync(requirementsPath, 'utf8');
|
|
154
|
+
const parsedAmendments = parseAmendments(content);
|
|
155
|
+
const parsedRequirements = parseRequirements(content, instance);
|
|
156
|
+
if (parsedAmendments.amendments.length === 0) {
|
|
157
|
+
const hint = parsedAmendments.warnings.length > 0
|
|
158
|
+
? ` Near-misses were found:\n - ${parsedAmendments.warnings.join('\n - ')}`
|
|
159
|
+
: '';
|
|
160
|
+
fail(opts, 'no-amendment-section', `no amendment section found in .aidlc/state/${instance}/requirements.md — ` +
|
|
161
|
+
`expected a heading of the form "## Amendment <n> — YYYY-MM-DD[, context]" ` +
|
|
162
|
+
`followed by "- **Retires:** AC-<n>, ..." / "- **Issues:** ..." / ` +
|
|
163
|
+
`"- **Reopens:** <phase>" / "- **Reason:** ..." bullets.${hint}`);
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
// AC-36 / AC-91: highest-numbered by default; a named number must exist.
|
|
167
|
+
let amendment;
|
|
168
|
+
if (opts.amendment !== undefined) {
|
|
169
|
+
const wanted = Number(opts.amendment);
|
|
170
|
+
const found = parsedAmendments.amendments.find((a) => a.n === wanted);
|
|
171
|
+
if (!found) {
|
|
172
|
+
fail(opts, 'amendment-not-found', `no Amendment ${opts.amendment} in this file; present: ` +
|
|
173
|
+
parsedAmendments.amendments.map((a) => a.n).join(', '));
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
amendment = found;
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
amendment = parsedAmendments.amendments[parsedAmendments.amendments.length - 1];
|
|
180
|
+
}
|
|
181
|
+
const crossWarnings = crossCheck(amendment, parsedRequirements);
|
|
182
|
+
const parseWarnings = parsedAmendments.warnings;
|
|
183
|
+
// --------------------------------------------------------------------------
|
|
184
|
+
// Read-only path (AC-30)
|
|
185
|
+
// --------------------------------------------------------------------------
|
|
186
|
+
const registry = loadRegistry(projectRoot);
|
|
187
|
+
const impact = walkImpact({
|
|
188
|
+
projectRoot,
|
|
189
|
+
instance,
|
|
190
|
+
amendment,
|
|
191
|
+
registry,
|
|
192
|
+
resolvedTemplate,
|
|
193
|
+
scope: String(instanceState.scope),
|
|
194
|
+
});
|
|
195
|
+
const preamble = [
|
|
196
|
+
`Amendment ${amendment.n} (${amendment.date}) — ${instance}`,
|
|
197
|
+
...(amendment.reason ? [` Reason: ${amendment.reason}`] : []),
|
|
198
|
+
` Retires: ${amendment.retires.length > 0 ? `AC-${amendment.retires.join(', AC-')}` : '(none)'}`,
|
|
199
|
+
` Issues: ${amendment.issues.length > 0 ? `AC-${amendment.issues.join(', AC-')}` : '(none)'}`,
|
|
200
|
+
` Reopens: ${amendment.reopens.length > 0 ? amendment.reopens.join(', ') : '(none)'}`,
|
|
201
|
+
'',
|
|
202
|
+
`Impact: ${describeOutcome(impact)}`,
|
|
203
|
+
...impact.refs.map((ref) => ` ${ref.path}:${ref.line} AC-${ref.acId} [${ref.source}` +
|
|
204
|
+
`${ref.taskId !== undefined ? ` T${ref.taskId} ${ref.taskState}` : ''}]`),
|
|
205
|
+
...(impact.suggestedReopens.length > 0
|
|
206
|
+
? ['', `Suggested Reopens: ${impact.suggestedReopens.join(', ')}`]
|
|
207
|
+
: []),
|
|
208
|
+
...renderWarnings([...parseWarnings, ...crossWarnings, ...impact.warnings]),
|
|
209
|
+
];
|
|
210
|
+
if (opts.impact) {
|
|
211
|
+
emit(opts, { ok: true, exit_code: 0, amendment, impact }, preamble);
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
// --------------------------------------------------------------------------
|
|
215
|
+
// Write path
|
|
216
|
+
// --------------------------------------------------------------------------
|
|
217
|
+
// AC-68: a completed instance's change is new work. Reopening would leave
|
|
218
|
+
// `status: complete` beside an `in-progress` phase, and `recordCompletion`'s
|
|
219
|
+
// `completed_at` guard (`commands/transition.ts:621`) would then suppress the
|
|
220
|
+
// second `on-instance-complete` permanently.
|
|
221
|
+
if (instanceState.status === 'complete') {
|
|
222
|
+
fail(opts, 'instance-complete', `instance '${instance}' is complete (completed_at: ${instanceState.completed_at ?? 'unset'}) — ` +
|
|
223
|
+
`a completed instance's change is new work; start a new instance`, { amendment, impact });
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
// AC-67: already applied → stated no-op, not a second reopen.
|
|
227
|
+
const alreadyApplied = instanceState.applied_amendments ?? [];
|
|
228
|
+
if (alreadyApplied.includes(amendment.n)) {
|
|
229
|
+
emit(opts, { ok: true, exit_code: 0, amendment, impact }, [
|
|
230
|
+
...preamble,
|
|
231
|
+
'',
|
|
232
|
+
`✓ Amendment ${amendment.n} was already applied (applied_amendments: ` +
|
|
233
|
+
`${alreadyApplied.join(', ')}) — nothing to do.`,
|
|
234
|
+
]);
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
// AC-90: amendments apply in order. Applying 2 while 1 is unapplied would skip
|
|
238
|
+
// 1's retirements silently; applying 1 after 2 would reopen phases 2 had
|
|
239
|
+
// re-completed.
|
|
240
|
+
const unappliedLower = parsedAmendments.amendments
|
|
241
|
+
.filter((a) => a.n < amendment.n && !alreadyApplied.includes(a.n))
|
|
242
|
+
.map((a) => a.n);
|
|
243
|
+
if (unappliedLower.length > 0) {
|
|
244
|
+
fail(opts, 'unapplied-predecessor', `Amendment ${unappliedLower[0]} has not been applied — amendments apply in order; ` +
|
|
245
|
+
`run \`aidlc amend ${instance} --amendment ${unappliedLower[0]}\` first`, { amendment, impact });
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
// AC-60: the write path never infers a reopen set.
|
|
249
|
+
if (amendment.reopens.length === 0) {
|
|
250
|
+
const suggestion = impact.suggestedReopens.length > 0
|
|
251
|
+
? `- **Reopens:** ${impact.suggestedReopens.join(', ')}`
|
|
252
|
+
: '- **Reopens:** <phase>';
|
|
253
|
+
fail(opts, 'no-reopens-field', `Amendment ${amendment.n} has no Reopens: field. The impact walk is advisory — ` +
|
|
254
|
+
`add the field yourself, then re-run. Suggested:\n ${suggestion}`, { amendment, impact });
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
// AC-86: require *a* live, non-stale claim, whatever session holds it, and
|
|
258
|
+
// record `by` from it exactly as getActorIdentity does. No identity
|
|
259
|
+
// comparison: `owner` and a claim session are two namespaces, and comparing
|
|
260
|
+
// them is the defect two 2026-09-01 bugfixes were filed for.
|
|
261
|
+
const timeoutMinutes = loadClaimTimeoutMinutes(projectRoot);
|
|
262
|
+
let claimHolder = null;
|
|
263
|
+
try {
|
|
264
|
+
const claim = openClaimStore(projectRoot, timeoutMinutes).read(instance);
|
|
265
|
+
if (claim && !isClaimStale(claim, timeoutMinutes))
|
|
266
|
+
claimHolder = claim.session;
|
|
267
|
+
}
|
|
268
|
+
catch {
|
|
269
|
+
// An unopenable claim store is not evidence of anything.
|
|
270
|
+
}
|
|
271
|
+
if (claimHolder === null && !opts.override) {
|
|
272
|
+
fail(opts, 'no-claim', `no live claim on '${instance}' — run \`aidlc claim ${instance}\` first, ` +
|
|
273
|
+
`or pass --override to write without one`, { amendment, impact });
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
const actor = getActorIdentity(projectRoot, instance);
|
|
277
|
+
const phaseStates = loadPhaseStates(stateDir, instance);
|
|
278
|
+
const now = new Date();
|
|
279
|
+
const plan = planReopen({
|
|
280
|
+
amendment,
|
|
281
|
+
instanceState,
|
|
282
|
+
phaseStates,
|
|
283
|
+
resolvedTemplate,
|
|
284
|
+
actor,
|
|
285
|
+
now,
|
|
286
|
+
});
|
|
287
|
+
if (plan.kind === 'invalid-phase') {
|
|
288
|
+
fail(opts, 'invalid-phase-name', `invalid phase name(s) in Reopens: ${plan.names.join(', ')} — ` +
|
|
289
|
+
`valid phases for this template and scope: ${plan.validPhases.join(', ')}`, { amendment, impact, plan });
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
if (plan.kind === 'phase-ahead') {
|
|
293
|
+
fail(opts, 'phase-ahead-of-current', `Reopens: names only phases at or after the current phase ` +
|
|
294
|
+
`"${plan.currentPhase}": ${plan.names.join(', ')} — a reopen moves backwards`, { amendment, impact, plan });
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
if (plan.kind === 'blocked') {
|
|
298
|
+
fail(opts, plan.code === 'phase-state-missing' ? 'phase-state-missing' : 'current-phase-outside-template', plan.message, { amendment, impact, plan });
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
if (plan.kind === 'noop') {
|
|
302
|
+
// Records the amendment anyway (AC-87): `current_phase` moves on its own, so
|
|
303
|
+
// a no-op that recorded nothing would become a destructive reopen next run.
|
|
304
|
+
recordApplied(projectRoot, instance, instanceState, amendment.n);
|
|
305
|
+
emit(opts, { ok: true, exit_code: 0, amendment, impact, plan }, [
|
|
306
|
+
...preamble,
|
|
307
|
+
'',
|
|
308
|
+
`✓ Nothing to reopen — ${plan.reason}.`,
|
|
309
|
+
` Amendment ${amendment.n} recorded as applied.`,
|
|
310
|
+
]);
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
// AC-76: an amendment landing in testing or deployment is a bigger event.
|
|
314
|
+
// `maintenance` is absent deliberately: entering maintenance is the completion
|
|
315
|
+
// moment for maintenance-terminal templates, which sets `status: complete`, and
|
|
316
|
+
// the AC-68 check above has already refused such an instance.
|
|
317
|
+
if (LATE_PHASES.has(plan.from) && !opts.confirm) {
|
|
318
|
+
fail(opts, 'confirm-required', `this reopen starts from "${plan.from}" and would reset ` +
|
|
319
|
+
`${plan.phases.length} phase(s): ${plan.phases.join(' → ')}. ` +
|
|
320
|
+
`Re-run with --confirm.`, { amendment, impact, plan });
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
// AC-31: print every change before making any of it.
|
|
324
|
+
const planLines = [
|
|
325
|
+
'',
|
|
326
|
+
'This will change:',
|
|
327
|
+
...plan.phases.map((phase) => ` phase-${phase}.yaml status → in-progress, completed_at/completed_by → null, ` +
|
|
328
|
+
`reopened_at set, completed required artifacts → in-progress`),
|
|
329
|
+
` instance.yaml current_phase → ${plan.newCurrentPhase}, ` +
|
|
330
|
+
`applied_amendments += ${amendment.n}`,
|
|
331
|
+
` transitions.log + {"type":"reopen","from":"${plan.from}","to":"${plan.to}"}`,
|
|
332
|
+
];
|
|
333
|
+
applyReopen({
|
|
334
|
+
projectRoot,
|
|
335
|
+
instance,
|
|
336
|
+
plan,
|
|
337
|
+
instanceState,
|
|
338
|
+
phaseStates,
|
|
339
|
+
resolvedTemplate,
|
|
340
|
+
amendment,
|
|
341
|
+
now,
|
|
342
|
+
});
|
|
343
|
+
emit(opts, { ok: true, exit_code: 0, amendment, impact, plan }, [
|
|
344
|
+
...preamble,
|
|
345
|
+
...planLines,
|
|
346
|
+
'',
|
|
347
|
+
`✓ Reopened ${plan.phases.join(', ')} — current phase is now ${plan.newCurrentPhase}.`,
|
|
348
|
+
]);
|
|
349
|
+
}
|
|
350
|
+
function renderWarnings(warnings) {
|
|
351
|
+
if (warnings.length === 0)
|
|
352
|
+
return [];
|
|
353
|
+
return ['', 'Warnings:', ...warnings.map((w) => ` - ${w}`)];
|
|
354
|
+
}
|
|
355
|
+
//# sourceMappingURL=amend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amend.js","sourceRoot":"","sources":["../../src/commands/amend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAuE7E;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACxC,UAAU,EAAE,MAAM,EAAE,EACpB,cAAc,EAAE,kBAAkB,EAAE,GACnC,MAAM,
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAuE7E;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACxC,UAAU,EAAE,MAAM,EAAE,EACpB,cAAc,EAAE,kBAAkB,EAAE,GACnC,MAAM,CAiKR;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAOnD"}
|
package/dist/commands/docs.js
CHANGED
|
@@ -169,6 +169,12 @@ export function generateOnboardingContent(templates, skillNames, guidanceLayers)
|
|
|
169
169
|
lines.push('{"at":"2025-01-15T10:00:00Z","by":"developer","from":"requirements","to":"design","type":"normal"}');
|
|
170
170
|
lines.push('```');
|
|
171
171
|
lines.push('');
|
|
172
|
+
lines.push('`type` is one of `normal`, `skip`, `upgrade` or `reopen`. A `reopen` record');
|
|
173
|
+
lines.push('marks a backwards move: an amendment invalidated completed work, so `to` names');
|
|
174
|
+
lines.push('an earlier phase than `from` and its `detail` records the amendment number, the');
|
|
175
|
+
lines.push('retired and issued criteria, and the phases actually rewritten. Written only by');
|
|
176
|
+
lines.push('`aidlc amend`.');
|
|
177
|
+
lines.push('');
|
|
172
178
|
// Skills
|
|
173
179
|
lines.push('## Available Skills');
|
|
174
180
|
lines.push('');
|