@wemuda/launchrail 1.13.0 → 1.15.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/README.md +3 -3
- package/assets/agents-docs/domain.md +2 -2
- package/assets/agents-docs/issue-tracker-github.md +1 -1
- package/assets/agents-docs/issue-tracker-linear.md +1 -1
- package/assets/ralph.workflow.js +635 -276
- package/assets/skills/NOTICE.md +4 -0
- package/assets/skills/launchrail/launch/SKILL.md +6 -6
- package/assets/skills/launchrail/launch/workflow.md +4 -3
- package/assets/skills/launchrail/launch-browser-smoke/SKILL.md +36 -40
- package/assets/skills/launchrail/launch-code-review/SKILL.md +1 -1
- package/assets/skills/launchrail/launch-design-handoff/SKILL.md +1 -1
- package/assets/skills/launchrail/launch-design-validation/SKILL.md +2 -2
- package/assets/skills/launchrail/launch-discovery/SKILL.md +2 -2
- package/assets/skills/launchrail/launch-grill/SKILL.md +8 -2
- package/assets/skills/launchrail/launch-grill/domain-modeling.md +3 -1
- package/assets/skills/launchrail/launch-implement/SKILL.md +11 -11
- package/assets/skills/launchrail/launch-loop-readiness/SKILL.md +79 -0
- package/assets/skills/launchrail/launch-project-alignment/SKILL.md +2 -2
- package/assets/skills/launchrail/launch-ralph/SKILL.md +79 -60
- package/assets/skills/launchrail/launch-ralph-implement/SKILL.md +9 -8
- package/assets/skills/launchrail/launch-resolving-merge-conflicts/SKILL.md +1 -1
- package/assets/skills/launchrail/launch-spec/SKILL.md +3 -3
- package/assets/skills/launchrail/launch-tickets/SKILL.md +6 -7
- package/assets/skills/launchrail/launch-wayfinder/SKILL.md +6 -6
- package/dist/commands/add.js +7 -10
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/doctor.js +84 -8
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.js +2 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/verify.d.ts +13 -3
- package/dist/commands/verify.js +24 -8
- package/dist/commands/verify.js.map +1 -1
- package/dist/index.js +3 -15
- package/dist/index.js.map +1 -1
- package/dist/lib/adr.d.ts +27 -0
- package/dist/lib/adr.js +87 -0
- package/dist/lib/adr.js.map +1 -0
- package/dist/lib/browser-testing.d.ts +20 -3
- package/dist/lib/browser-testing.js +79 -79
- package/dist/lib/browser-testing.js.map +1 -1
- package/dist/lib/detect.d.ts +2 -0
- package/dist/lib/detect.js +3 -0
- package/dist/lib/detect.js.map +1 -1
- package/dist/lib/manifest.d.ts +12 -1
- package/dist/lib/manifest.js +24 -5
- package/dist/lib/manifest.js.map +1 -1
- package/dist/lib/migrations.js +76 -1
- package/dist/lib/migrations.js.map +1 -1
- package/dist/lib/project.d.ts +2 -0
- package/dist/lib/project.js +2 -1
- package/dist/lib/project.js.map +1 -1
- package/dist/lib/readiness.d.ts +57 -0
- package/dist/lib/readiness.js +129 -0
- package/dist/lib/readiness.js.map +1 -0
- package/dist/lib/seeds.d.ts +2 -0
- package/dist/lib/seeds.js +20 -11
- package/dist/lib/seeds.js.map +1 -1
- package/package.json +1 -1
- package/dist/commands/smoke.d.ts +0 -21
- package/dist/commands/smoke.js +0 -171
- package/dist/commands/smoke.js.map +0 -1
package/dist/commands/doctor.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
-
import {
|
|
3
|
+
import { ADR_REGISTRY_PATH, duplicateAdrNumbers, scanAdrs, unindexedAdrs } from "../lib/adr.js";
|
|
4
|
+
import { BROWSER_DRIVER_PACKAGE, BROWSER_TESTING_MODULE, SEMANTIC_SCRIPTS } from "../lib/browser-testing.js";
|
|
4
5
|
import { sha256 } from "../lib/checksum.js";
|
|
5
6
|
import { missingImports } from "../lib/claudeImports.js";
|
|
6
7
|
import { CLAUDE_SETTINGS_PATH, declarationState, ralphGuardHookState, RETIRED_PLUGIN_DECLARATIONS, } from "../lib/claudeSettings.js";
|
|
@@ -9,6 +10,7 @@ import { readLockfile } from "../lib/lockfile.js";
|
|
|
9
10
|
import { pendingMigrations } from "../lib/migrations.js";
|
|
10
11
|
import { MANIFEST_FILENAME, parseManifest } from "../lib/manifest.js";
|
|
11
12
|
import { RALPH_GUARD_HOOK_PATH, RALPH_MODULE, RALPH_WORKFLOW_PATH } from "../lib/ralph.js";
|
|
13
|
+
import { agentsCommandsState, ciTriggerReadiness, fastGateReadiness, e2eReadiness, READINESS_SKILL, sessionStartHookState, } from "../lib/readiness.js";
|
|
12
14
|
import { skillNames } from "../lib/skills.js";
|
|
13
15
|
export function runDoctor(cwd) {
|
|
14
16
|
const checks = [];
|
|
@@ -100,6 +102,34 @@ export function runDoctor(cwd) {
|
|
|
100
102
|
add("warn", "CLAUDE.md", `does not import ${missing.join(", ")} — ${consequence}; re-run \`launchrail init\` to wire it in`);
|
|
101
103
|
}
|
|
102
104
|
}
|
|
105
|
+
// The ADR corpus (ADR-0031): filename-level invariants only — record contents
|
|
106
|
+
// use the project's own format and are none of doctor's business. Both checks
|
|
107
|
+
// are project-doc hygiene, so they warn rather than fail.
|
|
108
|
+
const adrs = scanAdrs(cwd);
|
|
109
|
+
if (adrs.length > 0) {
|
|
110
|
+
const dupes = duplicateAdrNumbers(adrs);
|
|
111
|
+
if (dupes.length === 0) {
|
|
112
|
+
add("pass", "adr numbering", `${adrs.length} decision record(s), numbers unique`);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
add("warn", "adr numbering", `number(s) ${dupes.join(", ")} claimed by more than one file — references by number are ambiguous; renumber one of each pair and update its links`);
|
|
116
|
+
}
|
|
117
|
+
if (!existsSync(join(cwd, ADR_REGISTRY_PATH))) {
|
|
118
|
+
add("warn", "adr registry", `${ADR_REGISTRY_PATH} missing — run \`launchrail sync\` to seed the index`);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
const unindexed = unindexedAdrs(readFileSync(join(cwd, ADR_REGISTRY_PATH), "utf8"), adrs);
|
|
122
|
+
if (unindexed.length === 0) {
|
|
123
|
+
add("pass", "adr registry", "every record indexed");
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
add("warn", "adr registry", `${unindexed.length} record(s) missing from the index (${unindexed
|
|
127
|
+
.slice(0, 3)
|
|
128
|
+
.map((e) => e.file)
|
|
129
|
+
.join(", ")}${unindexed.length > 3 ? ", …" : ""}) — add their rows to ${ADR_REGISTRY_PATH}`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
103
133
|
// Skills ship as managed files (ADR-0019/0020), not a plugin. Their exact
|
|
104
134
|
// contents/checksums are covered by the managed-file checks above; here give a
|
|
105
135
|
// single friendly signal that every expected skill directory is on disk.
|
|
@@ -137,24 +167,26 @@ export function runDoctor(cwd) {
|
|
|
137
167
|
else {
|
|
138
168
|
add("fail", "playwright config", "no playwright.config.* found — re-run `launchrail add browser-testing`");
|
|
139
169
|
}
|
|
140
|
-
|
|
141
|
-
|
|
170
|
+
// The browser smoke's driver (ADR-0034) installs through scripts/setup.mjs;
|
|
171
|
+
// a missing one is a warning because the skill carries a script fallback.
|
|
172
|
+
if (detection.hasBrowserDriverDep) {
|
|
173
|
+
add("pass", "browser driver", `${BROWSER_DRIVER_PACKAGE} declared`);
|
|
142
174
|
}
|
|
143
175
|
else {
|
|
144
|
-
add("warn", "
|
|
176
|
+
add("warn", "browser driver", `${BROWSER_DRIVER_PACKAGE} not declared — run \`node scripts/setup.mjs\` so the browser smoke has its driver`);
|
|
145
177
|
}
|
|
146
178
|
const missingScripts = SEMANTIC_SCRIPTS.filter((name) => !existsSync(join(cwd, "scripts", `${name}.mjs`)));
|
|
147
179
|
if (missingScripts.length === 0) {
|
|
148
|
-
add("pass", "semantic scripts", "scripts/{setup,dev,verify,
|
|
180
|
+
add("pass", "semantic scripts", "scripts/{setup,dev,verify,doctor}.mjs");
|
|
149
181
|
}
|
|
150
182
|
else {
|
|
151
183
|
add("warn", "semantic scripts", `missing: ${missingScripts.map((name) => `scripts/${name}.mjs`).join(", ")}`);
|
|
152
184
|
}
|
|
153
|
-
if (manifest.testing.e2eCommand
|
|
154
|
-
add("pass", "testing commands", "e2e
|
|
185
|
+
if (manifest.testing.e2eCommand) {
|
|
186
|
+
add("pass", "testing commands", "e2e command configured");
|
|
155
187
|
}
|
|
156
188
|
else {
|
|
157
|
-
add("warn", "testing commands", `set testing.e2eCommand
|
|
189
|
+
add("warn", "testing commands", `set testing.e2eCommand in ${MANIFEST_FILENAME}`);
|
|
158
190
|
}
|
|
159
191
|
}
|
|
160
192
|
if (manifest?.modules[RALPH_MODULE]) {
|
|
@@ -194,6 +226,50 @@ export function runDoctor(cwd) {
|
|
|
194
226
|
else {
|
|
195
227
|
add("warn", "ralph verification gate", `no testing commands in ${MANIFEST_FILENAME} — \`verify\` fails on an empty contract and Ralph refuses to start`);
|
|
196
228
|
}
|
|
229
|
+
// Loop readiness (ADR-0033): the loop is only as fast as the repository's
|
|
230
|
+
// gates, caches, and CI triggers let it be. Advice, never a gate — every line
|
|
231
|
+
// here warns at most, and the launch-loop-readiness skill measures and fixes it.
|
|
232
|
+
const fast = fastGateReadiness(manifest, detection);
|
|
233
|
+
add(fast.status, "ralph fast gate", fast.message);
|
|
234
|
+
const ci = ciTriggerReadiness(cwd);
|
|
235
|
+
if (ci.workflows.length > 0) {
|
|
236
|
+
if (ci.everyPush.length === 0) {
|
|
237
|
+
add("pass", "ralph ci triggers", "workflows run on pull requests and filtered branches only");
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
add("warn", "ralph ci triggers", `${ci.everyPush.join(", ")} run(s) on every push — the loop's ralph/* and integration-branch pushes would start CI runs nobody waits on; trigger on pull_request and the default branch only`);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
if (manifest.modules[BROWSER_TESTING_MODULE]) {
|
|
244
|
+
if (detection.playwrightConfigFile) {
|
|
245
|
+
const e2e = e2eReadiness(cwd, detection.playwrightConfigFile);
|
|
246
|
+
if (e2e.serial) {
|
|
247
|
+
add("warn", "ralph e2e specs", `${e2e.file} pins ${e2e.evidence} — every full gate runs the e2e specs one at a time; keep the latency-sensitive ones serial and run the rest in parallel (${READINESS_SKILL})`);
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
add("pass", "ralph e2e specs", `${e2e.file} does not pin a single worker`);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
const hook = sessionStartHookState(cwd);
|
|
254
|
+
if (hook === "registered") {
|
|
255
|
+
add("pass", "ralph hosted setup", `SessionStart hook registered in ${CLAUDE_SETTINGS_PATH}`);
|
|
256
|
+
}
|
|
257
|
+
else if (hook === "invalid-json") {
|
|
258
|
+
add("warn", "ralph hosted setup", `${CLAUDE_SETTINGS_PATH} is not valid JSON — cannot confirm a SessionStart hook`);
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
add("warn", "ralph hosted setup", `no SessionStart hook in ${CLAUDE_SETTINGS_PATH} — a hosted session starts without dependencies or the pinned browsers, and the loop's preflight refuses on the mismatch; add one that runs the install command and scripts/setup.mjs (${READINESS_SKILL})`);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
if (detection.hasPackageJson) {
|
|
265
|
+
const commands = agentsCommandsState(cwd);
|
|
266
|
+
if (commands === "todo") {
|
|
267
|
+
add("warn", "ralph commands", `AGENTS.md documents no verbatim commands — builders read install, check, and test commands from there; fill its Commands section (${READINESS_SKILL})`);
|
|
268
|
+
}
|
|
269
|
+
else if (commands === "documented") {
|
|
270
|
+
add("pass", "ralph commands", "AGENTS.md documents the commands");
|
|
271
|
+
}
|
|
272
|
+
}
|
|
197
273
|
}
|
|
198
274
|
return { code: checks.some((c) => c.status === "fail") ? 1 : 0, checks };
|
|
199
275
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.js
CHANGED
|
@@ -22,9 +22,9 @@ function suggestedTestCommand(detection) {
|
|
|
22
22
|
function defaultTesting(detection) {
|
|
23
23
|
return {
|
|
24
24
|
unitCommand: suggestedTestCommand(detection),
|
|
25
|
+
checkCommand: null,
|
|
25
26
|
devCommand: detection.devScript ? `${detection.packageManager ?? "npm"} run dev` : null,
|
|
26
27
|
e2eCommand: null,
|
|
27
|
-
smokeCommand: null,
|
|
28
28
|
appUrl: null,
|
|
29
29
|
};
|
|
30
30
|
}
|
|
@@ -156,7 +156,7 @@ export async function runInit(opts) {
|
|
|
156
156
|
}
|
|
157
157
|
const specs = [
|
|
158
158
|
{ relPath: MANIFEST_FILENAME, content: serializeManifest(manifest), ownership: "seeded" },
|
|
159
|
-
...seedFiles({ projectName: detection.projectName, manifest, launchrailVersion: VERSION }),
|
|
159
|
+
...seedFiles({ projectName: detection.projectName, manifest, launchrailVersion: VERSION, cwd: opts.cwd }),
|
|
160
160
|
// Workflow configuration under docs/agents/ seeds straight from the
|
|
161
161
|
// manifest's answers (ADR-0020) — there is no interactive setup stage.
|
|
162
162
|
...agentsDocsFiles(manifest),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAElB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,GAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAsB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,iBAAiB,GAIlB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAqC,MAAM,kBAAkB,CAAC;AAC1G,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAiBxC,SAAS,oBAAoB,CAAC,SAAwB;IACpD,IAAI,CAAC,SAAS,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,GAAG,SAAS,CAAC,cAAc,IAAI,KAAK,OAAO,CAAC;AACrD,CAAC;AAED,SAAS,cAAc,CAAC,SAAwB;IAC9C,OAAO;QACL,WAAW,EAAE,oBAAoB,CAAC,SAAS,CAAC;QAC5C,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,cAAc,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI;QACvF,UAAU,EAAE,IAAI;QAChB,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,9 +10,19 @@ export interface VerifyOutcome {
|
|
|
10
10
|
code: number;
|
|
11
11
|
results: VerifyResult[];
|
|
12
12
|
}
|
|
13
|
+
export interface VerifyOptions {
|
|
14
|
+
/**
|
|
15
|
+
* The fast tier: only `testing.checkCommand` (or `unitCommand` when no check
|
|
16
|
+
* command is configured) — never the e2e step. The Ralph loop runs this before
|
|
17
|
+
* every land and saves the full contract for its checkpoints and the release.
|
|
18
|
+
*/
|
|
19
|
+
fast?: boolean;
|
|
20
|
+
}
|
|
13
21
|
/**
|
|
14
22
|
* Run the project's deterministic verification contract: every configured
|
|
15
|
-
* check, in order, with a pass/fail summary.
|
|
16
|
-
* (
|
|
23
|
+
* check, in order, with a pass/fail summary. The browser smoke is separate — a
|
|
24
|
+
* one-off, agent-driven check of a change (ADR-0034) — verify is the stable
|
|
25
|
+
* release gate. `--fast` runs the
|
|
26
|
+
* cheap tier only (see VerifyOptions).
|
|
17
27
|
*/
|
|
18
|
-
export declare function runVerify(cwd: string): VerifyOutcome;
|
|
28
|
+
export declare function runVerify(cwd: string, options?: VerifyOptions): VerifyOutcome;
|
package/dist/commands/verify.js
CHANGED
|
@@ -5,10 +5,12 @@ import { BROWSER_TESTING_MODULE } from "../lib/browser-testing.js";
|
|
|
5
5
|
import { MANIFEST_FILENAME, parseManifest } from "../lib/manifest.js";
|
|
6
6
|
/**
|
|
7
7
|
* Run the project's deterministic verification contract: every configured
|
|
8
|
-
* check, in order, with a pass/fail summary.
|
|
9
|
-
* (
|
|
8
|
+
* check, in order, with a pass/fail summary. The browser smoke is separate — a
|
|
9
|
+
* one-off, agent-driven check of a change (ADR-0034) — verify is the stable
|
|
10
|
+
* release gate. `--fast` runs the
|
|
11
|
+
* cheap tier only (see VerifyOptions).
|
|
10
12
|
*/
|
|
11
|
-
export function runVerify(cwd) {
|
|
13
|
+
export function runVerify(cwd, options = {}) {
|
|
12
14
|
const manifestPath = join(cwd, MANIFEST_FILENAME);
|
|
13
15
|
if (!existsSync(manifestPath)) {
|
|
14
16
|
console.error(`launchrail: ${MANIFEST_FILENAME} not found — run \`launchrail init\` first.`);
|
|
@@ -23,16 +25,29 @@ export function runVerify(cwd) {
|
|
|
23
25
|
}
|
|
24
26
|
const { testing, modules } = parsed.manifest;
|
|
25
27
|
const steps = [];
|
|
26
|
-
if (
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
if (options.fast) {
|
|
29
|
+
const command = testing.checkCommand ?? testing.unitCommand;
|
|
30
|
+
if (command)
|
|
31
|
+
steps.push({ name: "check", command });
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
if (testing.unitCommand)
|
|
35
|
+
steps.push({ name: "unit", command: testing.unitCommand });
|
|
36
|
+
if (modules[BROWSER_TESTING_MODULE] && testing.e2eCommand) {
|
|
37
|
+
steps.push({ name: "e2e", command: testing.e2eCommand });
|
|
38
|
+
}
|
|
30
39
|
}
|
|
31
40
|
if (steps.length === 0) {
|
|
32
41
|
console.error("launchrail: no verification commands configured — set testing.unitCommand (and testing.e2eCommand) in " +
|
|
33
42
|
`${MANIFEST_FILENAME}. An empty verification contract cannot pass.`);
|
|
34
43
|
return { code: 1, results: [] };
|
|
35
44
|
}
|
|
45
|
+
if (options.fast) {
|
|
46
|
+
console.log(testing.checkCommand
|
|
47
|
+
? "Fast gate (testing.checkCommand) — the full contract runs with plain `verify`."
|
|
48
|
+
: "Fast gate — no testing.checkCommand configured, running testing.unitCommand; set checkCommand in " +
|
|
49
|
+
`${MANIFEST_FILENAME} to name a quicker lint/typecheck/unit gate.`);
|
|
50
|
+
}
|
|
36
51
|
const results = [];
|
|
37
52
|
for (const step of steps) {
|
|
38
53
|
console.log(`\n→ ${step.name}: ${step.command}`);
|
|
@@ -44,7 +59,8 @@ export function runVerify(cwd) {
|
|
|
44
59
|
console.log(` ${status === 0 ? "✓" : "✗"} ${step.name} (${step.command})`);
|
|
45
60
|
}
|
|
46
61
|
const failed = results.filter((r) => r.status !== 0).length;
|
|
47
|
-
|
|
62
|
+
const tier = options.fast ? "Fast gate" : "Verification";
|
|
63
|
+
console.log(failed === 0 ? `\n${tier} passed.` : `\n${tier} failed: ${failed} of ${results.length} step(s).`);
|
|
48
64
|
return { code: failed === 0 ? 0 : 1, results };
|
|
49
65
|
}
|
|
50
66
|
//# sourceMappingURL=verify.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA0BtE;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,UAAyB,EAAE;IAChE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,eAAe,iBAAiB,6CAA6C,CAAC,CAAC;QAC7F,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAClC,CAAC;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,eAAe,iBAAiB,cAAc,CAAC,CAAC;QAC9D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM;YAAE,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;QACjE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC7C,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC;QAC5D,IAAI,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,IAAI,OAAO,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACpF,IAAI,OAAO,CAAC,sBAAsB,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CACX,wGAAwG;YACtG,GAAG,iBAAiB,+CAA+C,CACtE,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAClC,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CACT,OAAO,CAAC,YAAY;YAClB,CAAC,CAAC,gFAAgF;YAClF,CAAC,CAAC,mGAAmG;gBACjG,GAAG,iBAAiB,8CAA8C,CACzE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,YAAY,MAAM,OAAO,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC;IAC9G,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;AACjD,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,6 @@ import { printDiff, runDiff } from "./commands/diff.js";
|
|
|
4
4
|
import { runDoctor, printDoctor } from "./commands/doctor.js";
|
|
5
5
|
import { runEject } from "./commands/eject.js";
|
|
6
6
|
import { runInit } from "./commands/init.js";
|
|
7
|
-
import { runSmoke } from "./commands/smoke.js";
|
|
8
7
|
import { printStatus, runStatus } from "./commands/status.js";
|
|
9
8
|
import { runSync } from "./commands/sync.js";
|
|
10
9
|
import { runVerify } from "./commands/verify.js";
|
|
@@ -18,7 +17,6 @@ Commands:
|
|
|
18
17
|
doctor Validate the repository and environment
|
|
19
18
|
add Add a module to the project (available: ${AVAILABLE_MODULES.join(", ")})
|
|
20
19
|
verify Run the deterministic verification contract
|
|
21
|
-
smoke Scaffold an evidence bundle for an agentic browser smoke run
|
|
22
20
|
status Inspect versions, enabled modules, drift, and missing requirements
|
|
23
21
|
diff Preview upstream changes
|
|
24
22
|
sync Synchronize managed capabilities and run migrations
|
|
@@ -33,9 +31,8 @@ init / add options:
|
|
|
33
31
|
--dry-run Show what would be written without writing
|
|
34
32
|
-y, --yes Accept defaults; no interactive questions
|
|
35
33
|
|
|
36
|
-
|
|
37
|
-
--
|
|
38
|
-
--dry-run Show what would be scaffolded without writing
|
|
34
|
+
verify options:
|
|
35
|
+
--fast Run only the fast gate (testing.checkCommand, else unitCommand; never e2e)
|
|
39
36
|
|
|
40
37
|
sync options:
|
|
41
38
|
--dry-run Preview migrations and file updates without writing
|
|
@@ -83,7 +80,7 @@ if (command === "add") {
|
|
|
83
80
|
process.exit(outcome.code);
|
|
84
81
|
}
|
|
85
82
|
if (command === "verify") {
|
|
86
|
-
process.exit(runVerify(process.cwd()).code);
|
|
83
|
+
process.exit(runVerify(process.cwd(), { fast: flags.has("--fast") }).code);
|
|
87
84
|
}
|
|
88
85
|
if (command === "status") {
|
|
89
86
|
const report = runStatus(process.cwd());
|
|
@@ -108,15 +105,6 @@ if (command === "eject") {
|
|
|
108
105
|
});
|
|
109
106
|
process.exit(outcome.code);
|
|
110
107
|
}
|
|
111
|
-
if (command === "smoke") {
|
|
112
|
-
const urlIndex = args.indexOf("--url");
|
|
113
|
-
const outcome = await runSmoke({
|
|
114
|
-
cwd: process.cwd(),
|
|
115
|
-
url: urlIndex !== -1 ? (args[urlIndex + 1] ?? null) : null,
|
|
116
|
-
dryRun: flags.has("--dry-run"),
|
|
117
|
-
});
|
|
118
|
-
process.exit(outcome.code);
|
|
119
|
-
}
|
|
120
108
|
if (NOT_IMPLEMENTED.includes(command)) {
|
|
121
109
|
console.error(`launchrail: "${command}" is not implemented yet.`);
|
|
122
110
|
process.exit(1);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,IAAI,GAAG,cAAc,OAAO;;;;;;;sDAOoB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;6EAwBL,CAAC;AAE9E,MAAM,eAAe,GAAG,CAAC,SAAS,CAAC,CAAC;AAEpC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAErC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;IAC5F,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC;QAC5B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;QAC9B,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;KAC3C,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzC,WAAW,CAAC,OAAO,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;IACtB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,mEAAmE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC;QAC3B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM;QACN,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;QAC9B,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;KAC3C,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;IACzB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACxC,WAAW,CAAC,MAAM,CAAC,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACvC,SAAS,CAAC,OAAO,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACrF,CAAC;AAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;IACxB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,MAAM,OAAO,GAAG,QAAQ,CAAC;QACvB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM;QACN,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;QACvB,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;KAC/B,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,OAAO,CAAC,KAAK,CAAC,gBAAgB,OAAO,2BAA2B,CAAC,CAAC;IAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO,CAAC,KAAK,CAAC,gCAAgC,OAAO,KAAK,CAAC,CAAC;AAC5D,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare const ADR_DIR = "docs/adr";
|
|
2
|
+
export declare const ADR_TEMPLATE_FILENAME = "0000-template.md";
|
|
3
|
+
export declare const ADR_REGISTRY_PATH = "docs/adr/README.md";
|
|
4
|
+
export interface AdrEntry {
|
|
5
|
+
/** Four-digit number parsed from the filename — ambiguous when two files share it. */
|
|
6
|
+
number: string;
|
|
7
|
+
/** Filename inside docs/adr/. */
|
|
8
|
+
file: string;
|
|
9
|
+
/** First `# ` heading (any `ADR-NNNN:` prefix stripped); the filename when there is none. */
|
|
10
|
+
title: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* The decision records already in a repository's docs/adr/ (template and
|
|
14
|
+
* registry excluded), sorted by number then filename. Read-only.
|
|
15
|
+
*/
|
|
16
|
+
export declare function scanAdrs(cwd: string): AdrEntry[];
|
|
17
|
+
/** Numbers claimed by more than one record — every reference by number is ambiguous. */
|
|
18
|
+
export declare function duplicateAdrNumbers(entries: AdrEntry[]): string[];
|
|
19
|
+
/** Records whose filename never appears in the registry — rows the index is missing. */
|
|
20
|
+
export declare function unindexedAdrs(registrySource: string, entries: AdrEntry[]): AdrEntry[];
|
|
21
|
+
/**
|
|
22
|
+
* The seeded ADR registry. When init/sync adopts a repository that already has
|
|
23
|
+
* decision records, the index prefills from them (status Unclassified — only
|
|
24
|
+
* the project can know which decisions still stand); a fresh repository gets
|
|
25
|
+
* the empty index. Seeded once, then project-owned: the project maintains it.
|
|
26
|
+
*/
|
|
27
|
+
export declare function adrRegistryContent(entries: AdrEntry[]): string;
|
package/dist/lib/adr.js
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
export const ADR_DIR = "docs/adr";
|
|
4
|
+
export const ADR_TEMPLATE_FILENAME = "0000-template.md";
|
|
5
|
+
export const ADR_REGISTRY_PATH = `${ADR_DIR}/README.md`;
|
|
6
|
+
const ADR_FILENAME = /^(\d{4})-.+\.md$/;
|
|
7
|
+
const TITLE_PREFIX = /^ADR[-\s]?\d+\s*[:—–-]\s*/i;
|
|
8
|
+
function adrTitle(abs, file) {
|
|
9
|
+
try {
|
|
10
|
+
const heading = /^#\s+(.+)$/m.exec(readFileSync(abs, "utf8"))?.[1];
|
|
11
|
+
if (heading)
|
|
12
|
+
return heading.replace(TITLE_PREFIX, "").trim();
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
// Unreadable file — fall through to the filename.
|
|
16
|
+
}
|
|
17
|
+
return file.replace(/\.md$/, "");
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The decision records already in a repository's docs/adr/ (template and
|
|
21
|
+
* registry excluded), sorted by number then filename. Read-only.
|
|
22
|
+
*/
|
|
23
|
+
export function scanAdrs(cwd) {
|
|
24
|
+
const dir = join(cwd, ADR_DIR);
|
|
25
|
+
if (!existsSync(dir))
|
|
26
|
+
return [];
|
|
27
|
+
return readdirSync(dir)
|
|
28
|
+
.filter((file) => file !== ADR_TEMPLATE_FILENAME && ADR_FILENAME.test(file))
|
|
29
|
+
.sort()
|
|
30
|
+
.map((file) => ({
|
|
31
|
+
// The filter above guarantees the four leading digits.
|
|
32
|
+
number: file.slice(0, 4),
|
|
33
|
+
file,
|
|
34
|
+
title: adrTitle(join(dir, file), file),
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
/** Numbers claimed by more than one record — every reference by number is ambiguous. */
|
|
38
|
+
export function duplicateAdrNumbers(entries) {
|
|
39
|
+
const counts = new Map();
|
|
40
|
+
for (const entry of entries)
|
|
41
|
+
counts.set(entry.number, (counts.get(entry.number) ?? 0) + 1);
|
|
42
|
+
return [...counts.entries()].filter(([, n]) => n > 1).map(([number]) => number);
|
|
43
|
+
}
|
|
44
|
+
/** Records whose filename never appears in the registry — rows the index is missing. */
|
|
45
|
+
export function unindexedAdrs(registrySource, entries) {
|
|
46
|
+
return entries.filter((entry) => !registrySource.includes(entry.file));
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The seeded ADR registry. When init/sync adopts a repository that already has
|
|
50
|
+
* decision records, the index prefills from them (status Unclassified — only
|
|
51
|
+
* the project can know which decisions still stand); a fresh repository gets
|
|
52
|
+
* the empty index. Seeded once, then project-owned: the project maintains it.
|
|
53
|
+
*/
|
|
54
|
+
export function adrRegistryContent(entries) {
|
|
55
|
+
const header = "| ADR | Title | Status |\n| --- | --- | --- |";
|
|
56
|
+
const rows = entries.map((e) => `| [${e.number}](${e.file}) | ${e.title} | Unclassified |`).join("\n");
|
|
57
|
+
const index = entries.length === 0 ? header : `${header}\n${rows}`;
|
|
58
|
+
const unclassifiedNote = entries.length === 0
|
|
59
|
+
? ""
|
|
60
|
+
: "\n\nRows marked **Unclassified** existed before this registry was seeded. Classify each as you next touch its area: set the record's status (`Accepted`, `Accepted — amended by ADR-NNNN`, `Superseded by ADR-NNNN`) and mirror it here.";
|
|
61
|
+
const livePicture = entries.length === 0
|
|
62
|
+
? "_No decisions recorded yet. When ADRs land, summarize here how they compose into the current system, and name the few a newcomer should read first._"
|
|
63
|
+
: "_Not yet written. Summarize how the accepted decisions compose into the current system, and name the few ADRs a newcomer should read first._";
|
|
64
|
+
return `# ADR registry
|
|
65
|
+
|
|
66
|
+
The index of every architecture decision record in this repository. Read this first, then open only the ADRs that touch the area you are working in — the index is the cheap surface; the records are depth.
|
|
67
|
+
|
|
68
|
+
An ADR records a decision and the context it was made in. It is **not documentation of the current system**: never treat an ADR as evidence that a component exists or still works as described — the code is the source of truth for what exists today.
|
|
69
|
+
|
|
70
|
+
## Index
|
|
71
|
+
|
|
72
|
+
${index}${unclassifiedNote}
|
|
73
|
+
|
|
74
|
+
## The live picture
|
|
75
|
+
|
|
76
|
+
How the accepted decisions compose into the current system. This section describes the present — rewrite it freely as the system grows; the ADRs behind it are history and stay untouched.
|
|
77
|
+
|
|
78
|
+
${livePicture}
|
|
79
|
+
|
|
80
|
+
## Maintaining this registry
|
|
81
|
+
|
|
82
|
+
- New ADRs copy [0000-template.md](0000-template.md), take the next free number (\`NNNN-short-slug.md\` — check both this index and the files on disk), and add their row here **in the same commit**. The shared row turns two branches minting the same number into a visible merge conflict instead of a silent collision.
|
|
83
|
+
- When a new ADR supersedes or amends an earlier one — including reversing part of the earlier one's context — update the earlier ADR's \`## Status\` line and its row here in the same commit.
|
|
84
|
+
- Never delete or renumber an ADR once it is referenced; superseded ADRs are historical records other documents link to.
|
|
85
|
+
`;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=adr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adr.js","sourceRoot":"","sources":["../../src/lib/adr.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,21 @@ import type { RepoDetection } from "./detect.js";
|
|
|
2
2
|
import type { Manifest } from "./manifest.js";
|
|
3
3
|
import type { FileSpec } from "./writer.js";
|
|
4
4
|
export declare const BROWSER_TESTING_MODULE = "browser-testing";
|
|
5
|
-
export declare const
|
|
6
|
-
|
|
5
|
+
export declare const SEMANTIC_SCRIPTS: readonly ["setup", "dev", "verify", "doctor"];
|
|
6
|
+
/**
|
|
7
|
+
* The browser smoke's driver (ADR-0034): a shell-driven browser built for
|
|
8
|
+
* agents. Bash is the one surface every session has — hosted, unattended,
|
|
9
|
+
* inside a subagent — and `--session` keeps parallel builders apart.
|
|
10
|
+
*/
|
|
11
|
+
export declare const BROWSER_DRIVER_PACKAGE = "agent-browser";
|
|
12
|
+
/** Where `scripts/dev.mjs` records the URL and pid of the app it started. */
|
|
13
|
+
export declare const DEV_STATE_DIR = ".launchrail/state";
|
|
14
|
+
/**
|
|
15
|
+
* Paths the module seeded before ADR-0034 — the journey catalogue, the
|
|
16
|
+
* `smoke` entry point and the Playwright MCP config. The retirement migration
|
|
17
|
+
* removes each copy that is unmodified since Launchrail wrote it.
|
|
18
|
+
*/
|
|
19
|
+
export declare const RETIRED_BROWSER_TESTING_SEEDS: readonly ["docs/testing/smoke-journeys.md", "scripts/smoke.mjs", ".mcp.json"];
|
|
7
20
|
export interface BrowserTestingContext {
|
|
8
21
|
manifest: Manifest;
|
|
9
22
|
detection: RepoDetection;
|
|
@@ -11,6 +24,10 @@ export interface BrowserTestingContext {
|
|
|
11
24
|
/**
|
|
12
25
|
* Everything `launchrail add browser-testing` seeds. All files are seeded-class:
|
|
13
26
|
* created once, then project-owned. An existing Playwright config means the
|
|
14
|
-
* project already has an
|
|
27
|
+
* project already has an e2e layer — keep it, seed neither config nor baseline.
|
|
28
|
+
*
|
|
29
|
+
* Two lanes (ADR-0034): the deterministic e2e baseline runs inside `verify`;
|
|
30
|
+
* the browser smoke is one-off driving by the agent and seeds no file of its
|
|
31
|
+
* own — its driver installs through `scripts/setup.mjs`.
|
|
15
32
|
*/
|
|
16
33
|
export declare function browserTestingFiles(ctx: BrowserTestingContext): FileSpec[];
|