@wildorder/nightshift 0.4.0 → 0.6.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/author.d.ts +3 -0
- package/dist/author.d.ts.map +1 -1
- package/dist/author.js +169 -18
- package/dist/author.js.map +1 -1
- package/dist/ci-init.d.ts +51 -0
- package/dist/ci-init.d.ts.map +1 -0
- package/dist/ci-init.js +274 -0
- package/dist/ci-init.js.map +1 -0
- package/dist/cli.js +99 -11
- package/dist/cli.js.map +1 -1
- package/dist/decide.d.ts.map +1 -1
- package/dist/decide.js +1 -1
- package/dist/decide.js.map +1 -1
- package/dist/exit-codes.d.ts +44 -0
- package/dist/exit-codes.d.ts.map +1 -0
- package/dist/exit-codes.js +49 -0
- package/dist/exit-codes.js.map +1 -0
- package/dist/findings.d.ts +3 -21
- package/dist/findings.d.ts.map +1 -1
- package/dist/findings.js +0 -7
- package/dist/findings.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/program-branch.d.ts +65 -0
- package/dist/program-branch.d.ts.map +1 -0
- package/dist/program-branch.js +123 -0
- package/dist/program-branch.js.map +1 -0
- package/dist/publish.d.ts +105 -0
- package/dist/publish.d.ts.map +1 -0
- package/dist/publish.js +549 -0
- package/dist/publish.js.map +1 -0
- package/dist/report-path.d.ts +7 -0
- package/dist/report-path.d.ts.map +1 -0
- package/dist/report-path.js +10 -0
- package/dist/report-path.js.map +1 -0
- package/dist/review-pass.d.ts +64 -0
- package/dist/review-pass.d.ts.map +1 -0
- package/dist/review-pass.js +370 -0
- package/dist/review-pass.js.map +1 -0
- package/dist/run-program.d.ts +18 -0
- package/dist/run-program.d.ts.map +1 -1
- package/dist/run-program.js +369 -28
- package/dist/run-program.js.map +1 -1
- package/dist/run-publish.d.ts +41 -0
- package/dist/run-publish.d.ts.map +1 -0
- package/dist/run-publish.js +33 -0
- package/dist/run-publish.js.map +1 -0
- package/package.json +4 -3
- package/skills/plan-program/SKILL.md +14 -0
package/dist/run-program.js
CHANGED
|
@@ -2,15 +2,21 @@ import { execFile } from "node:child_process";
|
|
|
2
2
|
import { readFile, writeFile } from "node:fs/promises";
|
|
3
3
|
import { join, resolve } from "node:path";
|
|
4
4
|
import { promisify } from "node:util";
|
|
5
|
-
import { defaultAgentRunner, defaultVerifyRunner, describeAgent, invokeAgent, resolveAgent, resolveDeciderAgent, resolveRecoveryAgent, tail, } from "./agent-runner.js";
|
|
5
|
+
import { defaultAgentRunner, defaultVerifyRunner, describeAgent, invokeAgent, resolveAgent, resolveDeciderAgent, resolveRecoveryAgent, resolveReviewerAgent, tail, } from "./agent-runner.js";
|
|
6
6
|
import { resolveSummary, summaryContract } from "./agent-summary.js";
|
|
7
7
|
import { authorProgram } from "./author.js";
|
|
8
8
|
import { decisionContract, decisionFingerprint, extractDecisions, } from "./decision.js";
|
|
9
9
|
import { appendLedgerEvents, readDecisionLedger, } from "./decision-ledger.js";
|
|
10
10
|
import { reviewDecisions } from "./decider-review.js";
|
|
11
11
|
import { findCycles, stableTopologicalOrder } from "./graph.js";
|
|
12
|
+
import { extractFindings, findingsContract, findingsToLedgerEvents, renderPassReport, reviewerAbsentOutcome, runReviewPass, } from "./review-pass.js";
|
|
12
13
|
import { loadManifest, saveManifest, } from "./manifest.js";
|
|
14
|
+
import { detectDefaultBranch, programBranchName } from "./program-branch.js";
|
|
15
|
+
import { CouldNotStartError } from "./exit-codes.js";
|
|
16
|
+
import { runReportPath } from "./report-path.js";
|
|
13
17
|
const execFileAsync = promisify(execFile);
|
|
18
|
+
/** Matches every wording git uses to report an empty commit attempt. */
|
|
19
|
+
const NOTHING_TO_COMMIT = /nothing to commit|nothing added to commit|no changes added to commit/u;
|
|
14
20
|
export const defaultGitOps = {
|
|
15
21
|
async isRepository(cwd) {
|
|
16
22
|
try {
|
|
@@ -30,6 +36,15 @@ export const defaultGitOps = {
|
|
|
30
36
|
return undefined;
|
|
31
37
|
}
|
|
32
38
|
},
|
|
39
|
+
async currentBranch(cwd) {
|
|
40
|
+
try {
|
|
41
|
+
const { stdout } = await execFileAsync("git", ["symbolic-ref", "--quiet", "--short", "HEAD"], { cwd });
|
|
42
|
+
return stdout.trim();
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
},
|
|
33
48
|
async commitAll(cwd, message) {
|
|
34
49
|
await execFileAsync("git", ["add", "-A"], { cwd });
|
|
35
50
|
try {
|
|
@@ -38,7 +53,25 @@ export const defaultGitOps = {
|
|
|
38
53
|
catch (error) {
|
|
39
54
|
const output = String(error.stdout ?? "");
|
|
40
55
|
// An empty commit is not a failure; anything else is.
|
|
41
|
-
if (
|
|
56
|
+
if (NOTHING_TO_COMMIT.test(output)) {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
return this.currentCommit(cwd);
|
|
62
|
+
},
|
|
63
|
+
async commitPaths(cwd, message, paths) {
|
|
64
|
+
await execFileAsync("git", ["add", "--", ...paths], { cwd });
|
|
65
|
+
try {
|
|
66
|
+
await execFileAsync("git", ["commit", "-m", message], { cwd });
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
const output = String(error.stdout ?? "");
|
|
70
|
+
// An empty commit is not a failure; anything else is. Unlike
|
|
71
|
+
// commitAll's `add -A`, a scoped `add` can leave other files dirty,
|
|
72
|
+
// which makes git report "no changes added to commit" instead of
|
|
73
|
+
// "nothing to commit" — both mean the same thing here.
|
|
74
|
+
if (NOTHING_TO_COMMIT.test(output)) {
|
|
42
75
|
return undefined;
|
|
43
76
|
}
|
|
44
77
|
throw error;
|
|
@@ -195,23 +228,33 @@ export async function runProgram(options) {
|
|
|
195
228
|
const git = options.git ?? defaultGitOps;
|
|
196
229
|
const log = options.log ?? ((line) => console.log(line));
|
|
197
230
|
const now = options.now ?? (() => new Date());
|
|
198
|
-
let manifest
|
|
231
|
+
let manifest;
|
|
232
|
+
try {
|
|
233
|
+
manifest = await loadManifest(root, options.programId);
|
|
234
|
+
}
|
|
235
|
+
catch (error) {
|
|
236
|
+
throw new CouldNotStartError(error.message, { cause: error });
|
|
237
|
+
}
|
|
199
238
|
const resolvedAgent = resolveAgent(config);
|
|
200
239
|
if (!resolvedAgent) {
|
|
201
|
-
throw new
|
|
240
|
+
throw new CouldNotStartError("No implementer configured. Set the `agent` block in nightshift.config.json.");
|
|
202
241
|
}
|
|
203
242
|
const agent = resolvedAgent;
|
|
204
243
|
const recovery = resolveRecoveryAgent(config);
|
|
205
244
|
const decider = resolveDeciderAgent(config);
|
|
245
|
+
const reviewer = resolveReviewerAgent(config);
|
|
206
246
|
log(`implementer: ${describeAgent(agent)}`);
|
|
207
247
|
log(decider
|
|
208
248
|
? `decider: ${describeAgent(decider)}`
|
|
209
249
|
: "decider: none configured — implementer defaults will stand unratified");
|
|
250
|
+
log(reviewer
|
|
251
|
+
? `test critique reviewer: ${describeAgent(reviewer)}`
|
|
252
|
+
: "test critique reviewer: none configured — test critique disabled");
|
|
210
253
|
const cycles = findCycles(manifest.workstreams);
|
|
211
254
|
if (cycles.length > 0) {
|
|
212
255
|
// A cyclic graph cannot be ordered; this is a planning defect, not a
|
|
213
256
|
// decision the runner can take. Terminate with the diagnosis.
|
|
214
|
-
throw new
|
|
257
|
+
throw new CouldNotStartError(`Dependency cycle(s) in the manifest: ${cycles
|
|
215
258
|
.map((cycle) => cycle.join(" -> "))
|
|
216
259
|
.join("; ")}. Re-plan with /plan-program.`);
|
|
217
260
|
}
|
|
@@ -231,10 +274,36 @@ export async function runProgram(options) {
|
|
|
231
274
|
workstream.status === "in_progress" ||
|
|
232
275
|
workstream.status === "parked");
|
|
233
276
|
if (dirty.length > 0 && !resuming) {
|
|
234
|
-
throw new
|
|
277
|
+
throw new CouldNotStartError(`The working tree has uncommitted changes the run would sweep into its commits:\n` +
|
|
235
278
|
dirty.map((path) => ` ${path}`).join("\n") +
|
|
236
279
|
`\nCommit or stash them, then re-run.`);
|
|
237
280
|
}
|
|
281
|
+
// A run always commits to the program's own branch — never the default
|
|
282
|
+
// branch, and never another program's branch, since the runner commits
|
|
283
|
+
// with `git add -A` and a mismatched worktree would sweep this program's
|
|
284
|
+
// work onto the wrong branch. These refuse before authorProgram below
|
|
285
|
+
// spawns the first agent; --force is the explicit escape hatch.
|
|
286
|
+
if (!options.force) {
|
|
287
|
+
const currentBranch = await git.currentBranch(root);
|
|
288
|
+
const branchCommand = `nightshift branch ${options.programId}`;
|
|
289
|
+
const expectedBranch = programBranchName(options.programId);
|
|
290
|
+
if (currentBranch === undefined) {
|
|
291
|
+
throw new CouldNotStartError(`HEAD is detached; a run must be on this program's branch ` +
|
|
292
|
+
`\`${expectedBranch}\`. Create or switch to it with ` +
|
|
293
|
+
`\`${branchCommand}\`, or re-run with --force.`);
|
|
294
|
+
}
|
|
295
|
+
const defaultBranch = await detectDefaultBranch(root);
|
|
296
|
+
if (currentBranch === defaultBranch) {
|
|
297
|
+
throw new CouldNotStartError(`Refusing to run on the default branch \`${defaultBranch}\`; a ` +
|
|
298
|
+
`program run commits to its own branch. Switch with ` +
|
|
299
|
+
`\`${branchCommand}\`, or re-run with --force.`);
|
|
300
|
+
}
|
|
301
|
+
if (currentBranch !== expectedBranch) {
|
|
302
|
+
throw new CouldNotStartError(`This run is for \`${options.programId}\`, whose branch is ` +
|
|
303
|
+
`\`${expectedBranch}\`, but HEAD is \`${currentBranch}\`. Switch ` +
|
|
304
|
+
`with \`${branchCommand}\`, or re-run with --force.`);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
238
307
|
}
|
|
239
308
|
// Authoring runs before building: every workstream whose spec is missing
|
|
240
309
|
// gets one, in dependency order, before anything is implemented. It
|
|
@@ -302,10 +371,10 @@ export async function runProgram(options) {
|
|
|
302
371
|
result.outcome.status === "skipped");
|
|
303
372
|
manifest.program.status = complete ? "complete" : "partial";
|
|
304
373
|
await saveManifest(root, options.programId, manifest);
|
|
305
|
-
const reportPath =
|
|
374
|
+
const reportPath = runReportPath(root, options.programId);
|
|
306
375
|
await writeFile(reportPath, renderRunReport(manifest, results, ledger.decisions, escalations, authorResult, now()), "utf8");
|
|
307
376
|
if (isRepository) {
|
|
308
|
-
await git.
|
|
377
|
+
await git.commitPaths(root, `nightshift(${options.programId}): run report and decision ledger`, ["docs/programs"]);
|
|
309
378
|
}
|
|
310
379
|
log(`run report: ${reportPath}`);
|
|
311
380
|
return {
|
|
@@ -356,24 +425,65 @@ export async function runProgram(options) {
|
|
|
356
425
|
base.decisionErrors.push(...parsed.errors);
|
|
357
426
|
await journalDecisions(workstream, parsed.decisions, baseCommit);
|
|
358
427
|
base.decisionIds = parsed.decisions.map((decision) => decisionFingerprint(workstream.id, decision));
|
|
359
|
-
const failure = await verifyAttempt(invocation.exitCode);
|
|
428
|
+
const failure = await verifyAttempt(config, verifyRunner, root, invocation.exitCode);
|
|
360
429
|
if (failure === undefined) {
|
|
361
|
-
let
|
|
430
|
+
let c0;
|
|
362
431
|
if (isRepository) {
|
|
363
|
-
|
|
432
|
+
// Unlike the authoring, run-report, and replay commits, this one
|
|
433
|
+
// stays a whole-tree sweep: an implementing agent touches whatever
|
|
434
|
+
// files the work required, and that set is exactly what the
|
|
435
|
+
// runner cannot know in advance. c0 is the green anchor the test
|
|
436
|
+
// critique's fix loop resets to on a failing fix (SC-07).
|
|
437
|
+
c0 = await git.commitAll(root, `nightshift(${options.programId}): ${workstream.id} ${workstream.name}`);
|
|
364
438
|
}
|
|
439
|
+
const critique = isRepository && c0 !== undefined
|
|
440
|
+
? await runTestCritique({
|
|
441
|
+
root,
|
|
442
|
+
manifest,
|
|
443
|
+
workstream,
|
|
444
|
+
spec,
|
|
445
|
+
config,
|
|
446
|
+
agentRunner,
|
|
447
|
+
verifyRunner,
|
|
448
|
+
git,
|
|
449
|
+
reviewer,
|
|
450
|
+
agent,
|
|
451
|
+
baseCommit,
|
|
452
|
+
greenCommit: c0,
|
|
453
|
+
now,
|
|
454
|
+
log,
|
|
455
|
+
})
|
|
456
|
+
: undefined;
|
|
457
|
+
// The manifest's single commit field records the workstream's final
|
|
458
|
+
// verified state — after any kept fix, that is the fix commit, not
|
|
459
|
+
// the earlier green one.
|
|
460
|
+
const finalCommit = critique?.finalCommit ?? c0;
|
|
461
|
+
// Findings anchor to c0 (the green, pre-critique commit) — the
|
|
462
|
+
// honest rollback point — while the decider below diffs from
|
|
463
|
+
// baseCommit (pre-workstream), so it sees the whole workstream.
|
|
464
|
+
const findingEvents = findingsToLedgerEvents({
|
|
465
|
+
workstreamId: workstream.id,
|
|
466
|
+
findings: critique?.outcome.open ?? [],
|
|
467
|
+
...(c0 === undefined ? {} : { baseCommit: c0 }),
|
|
468
|
+
now,
|
|
469
|
+
});
|
|
470
|
+
await appendLedgerEvents(root, options.programId, findingEvents);
|
|
471
|
+
const findingDecisions = findingEvents.flatMap((event) => event.kind === "decision-recorded" ? [event.decision] : []);
|
|
365
472
|
// The commit's own sha cannot be part of the tree it commits, so the
|
|
366
473
|
// manifest records it only now — swept forward into whatever commits
|
|
367
474
|
// next. Replay reads the manifest's current state, not the commit
|
|
368
475
|
// that last touched it, so this lag is harmless.
|
|
369
476
|
workstream.status = "complete";
|
|
370
|
-
if (
|
|
371
|
-
workstream.commit =
|
|
477
|
+
if (finalCommit !== undefined)
|
|
478
|
+
workstream.commit = finalCommit;
|
|
372
479
|
await saveManifest(root, options.programId, manifest);
|
|
373
|
-
await reviewWorkstreamDecisions(workstream.id, parsed.decisions, baseCommit);
|
|
480
|
+
await reviewWorkstreamDecisions(workstream.id, [...parsed.decisions, ...findingDecisions], baseCommit);
|
|
481
|
+
if (critique)
|
|
482
|
+
base.testCritique = critique.outcome;
|
|
483
|
+
base.testCritiqueDiffClipped = critique?.diffClipped ?? false;
|
|
374
484
|
base.outcome = {
|
|
375
485
|
status: "complete",
|
|
376
|
-
...(
|
|
486
|
+
...(finalCommit === undefined ? {} : { commit: finalCommit }),
|
|
377
487
|
};
|
|
378
488
|
return base;
|
|
379
489
|
}
|
|
@@ -391,19 +501,6 @@ export async function runProgram(options) {
|
|
|
391
501
|
}
|
|
392
502
|
return base;
|
|
393
503
|
}
|
|
394
|
-
/** Undefined means the attempt verified clean; otherwise the diagnosis. */
|
|
395
|
-
async function verifyAttempt(agentExitCode) {
|
|
396
|
-
if (agentExitCode !== 0) {
|
|
397
|
-
return `agent exited with code ${agentExitCode}`;
|
|
398
|
-
}
|
|
399
|
-
for (const [name, command] of Object.entries(config.verify)) {
|
|
400
|
-
const result = await verifyRunner(command, root);
|
|
401
|
-
if (result.exitCode !== 0) {
|
|
402
|
-
return `verify \`${name}\` (${command}) exited ${result.exitCode}:\n${tail(result.output, 1500)}`;
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
return undefined;
|
|
406
|
-
}
|
|
407
504
|
async function journalDecisions(workstream, decisions, baseCommit) {
|
|
408
505
|
const events = decisions.map((decision) => ({
|
|
409
506
|
kind: "decision-recorded",
|
|
@@ -436,6 +533,237 @@ export async function runProgram(options) {
|
|
|
436
533
|
});
|
|
437
534
|
}
|
|
438
535
|
}
|
|
536
|
+
/** Undefined means the attempt verified clean; otherwise the diagnosis. */
|
|
537
|
+
async function verifyAttempt(config, verifyRunner, root, agentExitCode) {
|
|
538
|
+
if (agentExitCode !== 0) {
|
|
539
|
+
return `agent exited with code ${agentExitCode}`;
|
|
540
|
+
}
|
|
541
|
+
for (const [name, command] of Object.entries(config.verify)) {
|
|
542
|
+
const result = await verifyRunner(command, root);
|
|
543
|
+
if (result.exitCode !== 0) {
|
|
544
|
+
return `verify \`${name}\` (${command}) exited ${result.exitCode}:\n${tail(result.output, 1500)}`;
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
return undefined;
|
|
548
|
+
}
|
|
549
|
+
// A constant, never a config key — the charter keeps tuning knobs off the
|
|
550
|
+
// config surface. Larger than the decider's 20,000-character diff limit
|
|
551
|
+
// because the reviewer's whole job here is to read the tests.
|
|
552
|
+
const TEST_CRITIQUE_DIFF_LIMIT = 60_000;
|
|
553
|
+
/**
|
|
554
|
+
* Clips oversized reviewer input with a visible marker rather than silently
|
|
555
|
+
* truncating — a review of half a diff that does not say so is worse than no
|
|
556
|
+
* review at all.
|
|
557
|
+
*/
|
|
558
|
+
function clipForReview(text, label) {
|
|
559
|
+
if (text.length <= TEST_CRITIQUE_DIFF_LIMIT)
|
|
560
|
+
return { text, clipped: false };
|
|
561
|
+
return {
|
|
562
|
+
text: `${text.slice(0, TEST_CRITIQUE_DIFF_LIMIT)}\n… (${label} clipped at ` +
|
|
563
|
+
`${TEST_CRITIQUE_DIFF_LIMIT} characters — the reviewer saw a partial ${label})`,
|
|
564
|
+
clipped: true,
|
|
565
|
+
};
|
|
566
|
+
}
|
|
567
|
+
/** Presence of at least one fenced findings block, distinguishing "clean" from "no read at all". */
|
|
568
|
+
function hasFindingsBlock(output) {
|
|
569
|
+
return /```findings/u.test(output);
|
|
570
|
+
}
|
|
571
|
+
function successCriteriaLines(manifest) {
|
|
572
|
+
if (manifest.successCriteria.length === 0) {
|
|
573
|
+
return ["None recorded in the manifest."];
|
|
574
|
+
}
|
|
575
|
+
return manifest.successCriteria.map((criterion) => `- **${criterion.id}**: ${criterion.description}`);
|
|
576
|
+
}
|
|
577
|
+
function scopeLines(workstream) {
|
|
578
|
+
const scope = workstream.scope;
|
|
579
|
+
if (!scope)
|
|
580
|
+
return ["No scope recorded in the manifest."];
|
|
581
|
+
const lines = [scope.summary];
|
|
582
|
+
if (scope.includes.length > 0) {
|
|
583
|
+
lines.push("Includes:", ...scope.includes.map((entry) => `- ${entry}`));
|
|
584
|
+
}
|
|
585
|
+
if (scope.excludes.length > 0) {
|
|
586
|
+
lines.push("Excludes:", ...scope.excludes.map((entry) => `- ${entry}`));
|
|
587
|
+
}
|
|
588
|
+
return lines;
|
|
589
|
+
}
|
|
590
|
+
/**
|
|
591
|
+
* The test-critique reviewer's brief: this workstream's scope and the
|
|
592
|
+
* program's success criteria (so the reviewer can tell which are in scope),
|
|
593
|
+
* the spec, the full workstream diff, and the three questions from the spec
|
|
594
|
+
* (SC-06) — would a plausible wrong implementation pass, does every in-scope
|
|
595
|
+
* criterion have a test that could actually fail, and was any test weakened
|
|
596
|
+
* to reach green.
|
|
597
|
+
*/
|
|
598
|
+
function testCritiqueReviewerBrief(manifest, workstream, spec, diff, priorOpen) {
|
|
599
|
+
const priorSection = priorOpen.length > 0
|
|
600
|
+
? [
|
|
601
|
+
"## Findings from the last round",
|
|
602
|
+
"",
|
|
603
|
+
"Last round, another reviewer raised the following; check whether",
|
|
604
|
+
"the current diff addresses them:",
|
|
605
|
+
"",
|
|
606
|
+
...priorOpen.map((finding) => `- **${finding.severity}** (${finding.category}) ${finding.subject}: ${finding.message}`),
|
|
607
|
+
"",
|
|
608
|
+
]
|
|
609
|
+
: [];
|
|
610
|
+
return [
|
|
611
|
+
`# Test critique for ${workstream.id}: ${workstream.name}`,
|
|
612
|
+
"",
|
|
613
|
+
`Program: ${manifest.program.id} — ${manifest.program.name}`,
|
|
614
|
+
"",
|
|
615
|
+
"An implementer built this workstream and its own tests, and the",
|
|
616
|
+
"runner's own verify commands passed. The same agent wrote the code",
|
|
617
|
+
"and the tests, which makes \"the tests pass\" circular — a stub that",
|
|
618
|
+
"returns a fixed value can sail through a suite that never exercises",
|
|
619
|
+
"the real path. You are an independent second read: look at the diff,",
|
|
620
|
+
"the spec, and the program's success criteria, and judge whether the",
|
|
621
|
+
"tests actually prove anything.",
|
|
622
|
+
"",
|
|
623
|
+
"## Success criteria",
|
|
624
|
+
"",
|
|
625
|
+
...successCriteriaLines(manifest),
|
|
626
|
+
"",
|
|
627
|
+
"## This workstream's scope",
|
|
628
|
+
"",
|
|
629
|
+
...scopeLines(workstream),
|
|
630
|
+
"",
|
|
631
|
+
"## Specification",
|
|
632
|
+
"",
|
|
633
|
+
spec.trim(),
|
|
634
|
+
"",
|
|
635
|
+
"## Diff (implementation and tests together)",
|
|
636
|
+
"",
|
|
637
|
+
"```diff",
|
|
638
|
+
diff.trim() === "" ? "(no diff available)" : diff,
|
|
639
|
+
"```",
|
|
640
|
+
"",
|
|
641
|
+
...priorSection,
|
|
642
|
+
"## Questions",
|
|
643
|
+
"",
|
|
644
|
+
"1. Would a **plausible wrong implementation** pass this test suite?",
|
|
645
|
+
" Name the wrong implementation you have in mind and the test that",
|
|
646
|
+
" would let it through.",
|
|
647
|
+
"2. Does **every success criterion in this workstream's scope** have a",
|
|
648
|
+
" test that could **actually fail** — one that is not tautological,",
|
|
649
|
+
" not asserting a constant, not skipped? Call out by id any in-scope",
|
|
650
|
+
" criterion with no such test.",
|
|
651
|
+
"3. Were any tests **weakened, skipped, or deleted** to reach green —",
|
|
652
|
+
" an assertion loosened, a case `.skip`ped, a file removed — visible",
|
|
653
|
+
" in the diff?",
|
|
654
|
+
"",
|
|
655
|
+
"A suite that holds up is a fine answer: if you have no objection, say",
|
|
656
|
+
"so and emit an empty findings array. Severity is a routing hint for",
|
|
657
|
+
"where a finding goes, never a verdict. A genuinely structural",
|
|
658
|
+
"objection is a **blocker**; it routes to a decision the human weighs,",
|
|
659
|
+
"never a gate that stops anything here.",
|
|
660
|
+
"",
|
|
661
|
+
"Always end your reply with a findings block, using an empty array `[]`",
|
|
662
|
+
"when you have no objection, so a clean read and a skipped read stay",
|
|
663
|
+
"distinguishable.",
|
|
664
|
+
"",
|
|
665
|
+
findingsContract(),
|
|
666
|
+
].join("\n");
|
|
667
|
+
}
|
|
668
|
+
function findingEvidenceLine(finding) {
|
|
669
|
+
const evidence = finding.evidence
|
|
670
|
+
.map((entry) => {
|
|
671
|
+
if (entry.kind === "location") {
|
|
672
|
+
return `${entry.file}:${entry.startLine}${entry.excerpt ? ` — ${entry.excerpt}` : ""}`;
|
|
673
|
+
}
|
|
674
|
+
if (entry.kind === "concern") {
|
|
675
|
+
return entry.detail ? `${entry.named} — ${entry.detail}` : entry.named;
|
|
676
|
+
}
|
|
677
|
+
return `${entry.metric}: ${entry.value}`;
|
|
678
|
+
})
|
|
679
|
+
.join("; ");
|
|
680
|
+
return evidence === "" ? "" : ` Evidence: ${evidence}`;
|
|
681
|
+
}
|
|
682
|
+
/**
|
|
683
|
+
* The implementer's fix re-brief: this round's triaged findings in prose,
|
|
684
|
+
* inviting judgment rather than demanding compliance — the manual workflow's
|
|
685
|
+
* own framing (WS-03 design §2). Never asks the implementer to commit or to
|
|
686
|
+
* echo a block back.
|
|
687
|
+
*/
|
|
688
|
+
function testCritiqueFixBrief(workstream, spec, findings) {
|
|
689
|
+
const findingsList = findings.map((finding) => [
|
|
690
|
+
`- **${finding.severity}** (${finding.category}) ${finding.subject}: ${finding.message}`,
|
|
691
|
+
findingEvidenceLine(finding),
|
|
692
|
+
]
|
|
693
|
+
.filter((line) => line !== "")
|
|
694
|
+
.join("\n"));
|
|
695
|
+
return [
|
|
696
|
+
`# Your tests for ${workstream.id}: ${workstream.name} were reviewed`,
|
|
697
|
+
"",
|
|
698
|
+
"An independent reviewer read the diff you produced — implementation",
|
|
699
|
+
"and tests together — and raised the following:",
|
|
700
|
+
"",
|
|
701
|
+
...findingsList,
|
|
702
|
+
"",
|
|
703
|
+
"## Specification",
|
|
704
|
+
"",
|
|
705
|
+
spec.trim(),
|
|
706
|
+
"",
|
|
707
|
+
"Strengthen the tests, and the implementation where the tests exposed",
|
|
708
|
+
"a real gap, for what you agree with. State plainly what you decline",
|
|
709
|
+
"and why — declines are recorded and reported, never argued with. Do",
|
|
710
|
+
"not reach green by weakening the suite further: the finding is that",
|
|
711
|
+
"the tests are too weak, and loosening an assertion, skipping a case,",
|
|
712
|
+
"or deleting a test is the one fix that misses the point.",
|
|
713
|
+
"",
|
|
714
|
+
"Never commit — the runner owns commits, verifies your fix itself, and",
|
|
715
|
+
"either keeps it or discards it depending on whether it actually",
|
|
716
|
+
"verifies. Reply in prose, not a block: what you fixed and what you",
|
|
717
|
+
"declined, and why.",
|
|
718
|
+
"",
|
|
719
|
+
summaryContract(),
|
|
720
|
+
].join("\n");
|
|
721
|
+
}
|
|
722
|
+
/**
|
|
723
|
+
* The test-critique driver: wires WS-01's bounded review loop to the two
|
|
724
|
+
* briefs above, and owns the green-state invariant (SC-07) — a closure
|
|
725
|
+
* variable holding the last verified commit, which every fix round either
|
|
726
|
+
* advances (on a clean re-verify) or falls back to (`resetHard`, on a
|
|
727
|
+
* failure), so a review can never turn green work red.
|
|
728
|
+
*/
|
|
729
|
+
async function runTestCritique(options) {
|
|
730
|
+
const { root, manifest, workstream, spec, config, agentRunner, verifyRunner, git, reviewer, agent, baseCommit, log, } = options;
|
|
731
|
+
let greenCommit = options.greenCommit;
|
|
732
|
+
let diffClipped = false;
|
|
733
|
+
if (!reviewer) {
|
|
734
|
+
return { outcome: reviewerAbsentOutcome(), finalCommit: greenCommit, diffClipped };
|
|
735
|
+
}
|
|
736
|
+
const review = async (_round, priorOpen) => {
|
|
737
|
+
const rawDiff = baseCommit !== undefined ? await git.diffSince(root, baseCommit) : "";
|
|
738
|
+
const diff = clipForReview(rawDiff, "diff");
|
|
739
|
+
const clippedSpec = clipForReview(spec, "spec");
|
|
740
|
+
if (diff.clipped || clippedSpec.clipped)
|
|
741
|
+
diffClipped = true;
|
|
742
|
+
const brief = testCritiqueReviewerBrief(manifest, workstream, clippedSpec.text, diff.text, priorOpen);
|
|
743
|
+
const invocation = await invokeAgent(agentRunner, reviewer, brief, root);
|
|
744
|
+
const parsed = extractFindings(invocation.output);
|
|
745
|
+
const ran = invocation.exitCode === 0 && hasFindingsBlock(invocation.output);
|
|
746
|
+
return { findings: parsed.findings, errors: parsed.errors, ran };
|
|
747
|
+
};
|
|
748
|
+
const respond = async (_round, findings) => {
|
|
749
|
+
const brief = testCritiqueFixBrief(workstream, spec, findings);
|
|
750
|
+
const invocation = await invokeAgent(agentRunner, agent, brief, root);
|
|
751
|
+
const summary = resolveSummary(invocation.output).text;
|
|
752
|
+
const failure = await verifyAttempt(config, verifyRunner, root, invocation.exitCode);
|
|
753
|
+
if (failure === undefined) {
|
|
754
|
+
const next = await git.commitAll(root, `nightshift(${manifest.program.id}): ${workstream.id} test critique fix`);
|
|
755
|
+
if (next !== undefined)
|
|
756
|
+
greenCommit = next;
|
|
757
|
+
log(`${workstream.id}: test critique fix verified and committed`);
|
|
758
|
+
return { note: `${summary} (fix verified and committed)` };
|
|
759
|
+
}
|
|
760
|
+
await git.resetHard(root, greenCommit);
|
|
761
|
+
log(`${workstream.id}: test critique fix failed verification and was discarded — ${failure}`);
|
|
762
|
+
return { note: `${summary} (fix failed verification and was discarded; the green state was preserved)` };
|
|
763
|
+
};
|
|
764
|
+
const outcome = await runReviewPass({ review, respond });
|
|
765
|
+
return { outcome, finalCommit: greenCommit, diffClipped };
|
|
766
|
+
}
|
|
439
767
|
function renderSpecsSection(authorResult) {
|
|
440
768
|
if (authorResult.results.length === 0)
|
|
441
769
|
return [];
|
|
@@ -460,6 +788,11 @@ function renderSpecsSection(authorResult) {
|
|
|
460
788
|
return `- ${entry.id} ${entry.name} — ${reason}`;
|
|
461
789
|
}), "");
|
|
462
790
|
}
|
|
791
|
+
for (const entry of authored) {
|
|
792
|
+
if (!entry.specCritique)
|
|
793
|
+
continue;
|
|
794
|
+
lines.push(`### ${entry.id} ${entry.name}`, "", ...renderPassReport("Spec critique", entry.specCritique), "");
|
|
795
|
+
}
|
|
463
796
|
return lines;
|
|
464
797
|
}
|
|
465
798
|
function renderRunReport(manifest, results, decisions, escalations, authorResult, at) {
|
|
@@ -498,6 +831,14 @@ function renderRunReport(manifest, results, decisions, escalations, authorResult
|
|
|
498
831
|
if (result.summary) {
|
|
499
832
|
lines.push(` - ${result.summary.replace(/\s+/gu, " ").trim()}`);
|
|
500
833
|
}
|
|
834
|
+
if (result.testCritique) {
|
|
835
|
+
for (const line of renderPassReport("Test critique", result.testCritique)) {
|
|
836
|
+
lines.push(line === "" ? "" : ` ${line}`);
|
|
837
|
+
}
|
|
838
|
+
if (result.testCritiqueDiffClipped) {
|
|
839
|
+
lines.push(" The reviewer saw input clipped for length.");
|
|
840
|
+
}
|
|
841
|
+
}
|
|
501
842
|
}
|
|
502
843
|
lines.push("");
|
|
503
844
|
if (decisions.length > 0) {
|
package/dist/run-program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-program.js","sourceRoot":"","sources":["../src/run-program.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-program.js","sourceRoot":"","sources":["../src/run-program.ts"],"names":[],"mappings":"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"}
|