Commit graph

384 commits

Author SHA1 Message Date
f6e18a1d09
feat(skills): interviewing - one source for the brief's question round (order 7e)
/trekbrief Phase 3 carried the interview form inline. It now asks for the
new skill voyage:interviewing by name (allowed-tools gains Skill) and keeps
only its own contract: the size class and budget, the three fixed questions
(framing first, class, storage), where each answer lands in the brief, and
the answers that decide nothing. Step 3a and the form points of Step 3c move
into the skill with their credits (Pocock, Osmani, Spec Kit; licences and
line ranges checked at the pinned commits).

Red baseline first (3 helper interviews against a fixed answer sheet,
Opus 5.5): 10-11 questions in round 1 (3 of 3), 15 of 31 without a
recommendation, a hollow answer written in as a decision (2 of 3), unasked
scope as a requirement (2 of 3). With the skill: 4, 0 of 12, 0 of 3, 0 of 3.
Fact questions and stopping did not fail without it.

Also: pointers to voyage:writing-criteria (S3) where criteria are asked and
written, both review skill names (S3 + S4) in the brief-reviewer prompt; the
intent pins that read moved text now read the skill, same assertions; the
Phase 7 line_ref moves with the shorter Phase 3; 7 eval cases (3/2/2).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 07:44:42 +02:00
af5de3fcb8
fix(ui): English labels where Voyage shows Norwegian to every user
Operator decision 56 (2026-10-17): the product shows English.

- Annotation HTML: the intent buttons, sidebar badges and the copied
  prompt read Fix / Change / Question. The stored keys stay
  fiks / endre / spørsmål, so annotations saved earlier still load.
- /trekreview project-memory approval: "Add the line" / "Not now".
- README, CLAUDE.md, docs/architecture.md, package.json and plugin.json
  describe what the product shows; README's hollow-answer line and the
  "anslag" in the profile section are English; a Norwegian code comment
  in profile-validator.mjs translated.

The Norwegian hollow-answer list in approval-log.mjs and trekbrief.md
stays: it matches what a user types. Both new tests failed on the code
before the change. Suite 2606 (2604/0/2).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 01:00:34 +02:00
b79495847d
test(changelog): find the 6.4.0 section by its title, before and after the release commit
Two docs tests located this delivery's CHANGELOG section by the literal
heading `## Unreleased` (one also required it to be the first section).
The release commit renames it to `## v6.4.0 — <date> — <title>`
(docs/release-runbook.md § 1.4), so all 16 content pins failed on the
release commit while the content was the same.

One shared helper, tests/helpers/changelog-section.mjs, now finds the
section by its title under either heading, wherever it stands (a later
delivery's section above it does not move the pins), with a trailing \r or
spaces tolerated, and only when it stands exactly once. Every content
assertion is unchanged; their messages no longer say "Unreleased". New
tests pin the accepted headings and seven near misses (version, date,
title, the literal dot in 1.9), and the helper on a later section, a \r,
a duplicate and a missing section.

Measured: 46/46 pass against main's CHANGELOG and against the release
commit's CHANGELOG; before the change, 16 failed on the release commit.
Three mutants of the helper (a looser date, no escaping, no trim) are
each failed by one test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 00:13:32 +02:00
f9e602e659
refactor: simplify pass (trekexecute)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 17:03:56 +02:00
184fbe4633
docs(changelog): the narrow remediation of the A/B review, decisions 48 and 50, with door lines
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 16:54:59 +02:00
e8ea98747d
fix(review): plan dedup ranks a merged pair by what rule B counts, so reviewer order never lowers a blocker
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 16:46:10 +02:00
f70aed5d47
fix(review): plan dedup keeps a lowered_from that is not a severity, so rule B counts it as blocker
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 16:36:38 +02:00
30ca7078e9
fix(review): the critic-loop matcher needs overlapping texts, and a new finding never takes an old id
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 16:29:58 +02:00
fc865ca07a
docs(plan): Phase 9, Handover 4 and CLAUDE.md name rule A, with door lines
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 01:34:51 +02:00
fb5afd0a98
fix(plan): plan-critic and scope-guardian state rule B, mark previous findings and tag security findings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 01:06:42 +02:00
fb9a551ed8
feat(plan): the plan gate keeps each reviewed text in the git directory and prints the diff for round 2+ [skip-docs]
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 00:57:03 +02:00
7b46cdd788
feat(plan): the plan gate counts critic rounds 2+ by rule A and records rule B [skip-docs]
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 00:33:31 +02:00
31fa6f8e43
fix(review): plan dedup passes the reviewers' marks and rule-B fields through and keeps distinct file-level findings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 00:14:02 +02:00
3a0c2d0c54
feat(plan): the operative line map and a deterministic line diff for the critic loop [skip-docs]
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 16:49:21 +02:00
c9248bbb52
fix(tests): the post-compact hook test takes its child timeout from the shared timing helper
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 15:43:36 +02:00
3abf3d7238
refactor: simplify pass (trekexecute)
Decision 41's rerun is scoped to below plan_version 1.8 in the executor and Handover 4 (as the helper and the exit-2 row already say), the decision-30 sentence names the one exception, and the Fixed and Known-issues slicers share one subsection helper.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 18:45:25 +02:00
ca9cb53e79
docs(changelog): the third review remediation, decision 41's door line and the findings decision 42 defers
Review findings of S153; operator decisions 37 to 43.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 18:32:04 +02:00
829da487ec
fix(execute): below 1.8 a plan that names no test file gets the files the helper wrote
Operator decision 41 (14.10); review finding 7b3b59ed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 18:17:24 +02:00
e142556543
fix(tests): the control-run test leaves headroom over a slow start
Review finding 703d87e1 (BLOCKER); the timeout and hang live in tests/helpers/timing.mjs as CONTROL_RUN.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 18:07:12 +02:00
4d5c927c5d
refactor(simplify): drop a dead branch and repeated fixtures from the round-2 remediation
/simplify over bcf3adb..HEAD. Pass 3's last else could never run (RULE_KEYS is checked first); entryPaths tracks an open entry the way testFirstFileEntries does; wrapLine drops normalisations its callers already made. Tests: one payload builder, one BLOCKER fixture, one unreleasedBody helper, one 1.9-block loop, one plan-unreadable loop, and make_repo in the e2e script. No behaviour change; suite 2515 (2513/0/2).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 13:43:24 +02:00
2cca61170a
docs(changelog): the second review remediation, decisions 27 to 31, with door lines
Review findings of S147; operator decisions 26 to 31.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 12:55:03 +02:00
f746f27788
docs(plan): Handover 4, the planner and the template follow decisions 29 to 31
Operator decisions 28 to 31 (13.10 and 14.10).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 12:43:01 +02:00
a70f082f6e
fix(execute): the helper and the executor give red proof no list
Operator decisions 30 and 31 (14.10); review findings 11ee78c5 and d01df508.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 12:32:29 +02:00
73e53f3134
fix(verification): red proof prints the list it ran and refuses a plan it cannot read
Operator decision 30 (14.10); review findings 793fc1aa, 09ae46d8, d01df508, 11ee78c5 and 289e59cd.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 11:50:37 +02:00
25856f2e9c
fix(review): the workflow review fails closed when its coordinator returns nothing
Review finding edf2ec56; every reviewer that did not run is named in allow_blocked_by.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 11:20:28 +02:00
9529df7665
fix(review): original_severity names what the kept finding asserted
Review finding 08deae68.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 11:09:01 +02:00
8e6229b01d
fix(plan): below 1.9 a test file after a note, and, plus or + is read
Operator decisions 28 (13.10) and 31 (14.10); review finding bd2520b0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 10:44:47 +02:00
b70f242e53
fix(plan): a 1.9 wrapped line keeps its paths only after a comma or in an empty entry
Operator decision 29 (14.10); review findings d21ff81e and eaeb398e.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 10:29:35 +02:00
1786df999e
refactor(plan): K6 keeps its own normaliser and LIST_ITEM is a literal again
Operator decision 27 (13.10); review finding 7961a700.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 10:19:56 +02:00
bcf3adbba7
refactor(simplify): one plan read in red proof, one list marker, one put-back rule [skip-docs]
/simplify over ed6699d..HEAD (closing review of the remediation):
- red-proof reads and parses the step once (planStep) for the test list and
  tests_only; normTest goes, plan-schema exports normPlanPath, also used by
  plan-scope-sweep.
- plan-schema builds LIST_ITEM and the 1.9 File: line from one LIST_MARKER;
  the below-1.9 File: regex ends in a lookahead instead of slicing back one.
- the workflow script hoists tripletOf and puts back through dedupByTriplet.
- coordinator-contract keeps the rank in its JSDoc only; engine-findings
  drops a redundant String().
- tests: reuse knownIssues, trekplan19Block, step1Fields, one red-proof cli
  helper with childEnv, one payload-pair builder; drop a test the decision-20
  definition test covers.

No behaviour change. Suite 2462 (2460/0/2).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 19:47:08 +02:00
d7db590c26
docs(changelog): the review remediation, decisions 20, 22 and 23, with door lines
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 19:28:58 +02:00
5b94952be9
fix(docs): the trekbrief pass branch names no Brief Quality, and the stats rows span their blocks
Operator decision 21 (12.10).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 19:16:51 +02:00
5fa956b974
docs(plan): Handover 4, the planner and the template follow the 1.9 fixes
Operator decisions 20 and 22.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 19:10:37 +02:00
0142034979
fix(execute): one definition of the step's test files, read as decision 20 sets it
Review finding cf241526.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 19:00:09 +02:00
734b4a23ae
fix(verification): red proof checks the test list against the plan
Review finding cf241526; the list is read as operator decision 20 sets it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 18:43:44 +02:00
045191f51d
refactor(plan): the plan validator parses each step once
Review finding 93382464.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:47:33 +02:00
1621352e67
fix(approval): a trailer with a blank or padded name is refused
Review finding 8420915b.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:40:10 +02:00
05f6b67be9
fix(review): the workflow review ranks by tier and puts back every engine finding
Operator decision 23 (13.10); review findings ab1b5d9f and bc7f4e23 (workflow side).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:32:59 +02:00
f04fecea7f
fix(review): Pass 1 ranks by catalogue tier, and a duplicate never lowers its group
Review finding bc7f4e23 (library side).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:24:33 +02:00
d492abb5e9
fix(review): the engine of a payload is read from an own property
Review finding 3799ea6c; the same lookup in engine-findings.mjs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:17:07 +02:00
48b57284fe
fix(plan): a 1.9 plan refuses placeholders and mixed-case bare names as files
Operator decision 22 (13.10); review finding 33f37f53.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 12:50:20 +02:00
fddd0a078c
fix(plan): a 1.9 entry keeps its wrapped paths, and a numbered File line names its test
Review findings b4fa1927 and 4b6460e5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 12:43:26 +02:00
1320e3a4d5
fix(plan): below 1.9 the step's test files are the paths right after File:
Operator decision 20 (12.10); review finding 6c31212c.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 12:34:13 +02:00
6b8b0e3f2a
fix(plan): a list joiner no longer ends the read of a plain path below 1.9
Review finding 182ceb93.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 12:26:07 +02:00
ed6699da58
refactor(simplify): one source per rule, shared test helpers, a faster isolation test [skip-docs]
/simplify over a97efb6..HEAD (the plan_version 1.9 / trial-4 delivery).

- coordinator-contract: engine names come from engine-findings ENGINES;
  one markedMajorCodeReview predicate under both lowering checks;
  isEngineFinding everywhere; the unreachable branch (c) of
  illegalBriefLowering folded into (e).
- armB workflow: RULE_KEYS = Object.keys(RULE_TIERS); the engine map is a
  literal pinned equal to ENGINES by the workflow test.
- plan-schema: usesFilesGrammar() is the one 1.9 check (validator, sweep,
  testFirstFiles, stepTestsOnlyFromFields); opensEntry built on opensChunk.
- plan-validator: one issue builder for the Files and Test first grammar.
- plan-scope-sweep: the 1.9 and the 6.2.0 reader are one if/else.
- artifact-commit: TRAILER_RE/trailerProblem no longer exported (no
  importer); the order comment says the CLI finds the repo root first.
- tests: the lock drivers in session-id-isolation (d) run side by side per
  mode (~100 s -> ~30 s); a shared artifact-repo helper; severityRank and
  extractFindingsBlock reused; childEnv(env) without a spread; one copy of
  the PLAN_VERSION_CURRENT check.

Plan readers: validator errors/warnings, plannedPaths, fieldPaths,
testFirstFiles and stepTestsOnlyFromFields compared byte for byte against
HEAD over 510 plans / 1692 steps plus 210 synthetic 1.7-1.9 cases: same.
Suite 2384 (2382/0/2).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:06:47 +02:00
acfd2eb9b6
docs(changelog): plan_version 1.9 and the trial-4 findings, with door lines
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:40:33 +02:00
acd0e3dd47
fix(approval): approval commits carry the caller's Co-Authored-By trailer
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:17:22 +02:00
94de23ca3b
fix(trekbrief): the review stamp covers only text the reviewer saw
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:03:26 +02:00
e6755bd886
fix(trekplan): explorers and reviewers read only in the repo and get the brief
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:45:40 +02:00
305ac9284f
fix(review): the payload decides the engine, and a tie keeps the reviewer finding
An engine's brief-conflict mark could lower a reviewer agent's MAJOR: ingest kept an engine field a reviewer wrote on its own finding, and on a severity tie the survivor depended on payload order (engine first gave ALLOW, reviewer first WARN). ingest now takes engine from the payload source; Pass 1 and the workflow dedup keep the reviewer-agent finding on a tie. Prose (coordinator Pass 1, Handover 6) follows. Decision 13, operator 12.10.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 18:50:56 +02:00