feat(trekplan): Regression and On failure step rules, and trial 2's minor fixes

The minor points (B8-B12, C13, C14, C16, C17) of the second voyage-lekerepo
trial (2026-10-08), each verified against the code and started with a test
that failed first.

- K10: optional step field `Regression:` - one command the criteria runner
  allows, unpiped; plan-validator refuses one that can never run
  (PLAN_STEP_REGRESSION_NOT_RUNNABLE). Any plan_version, no bump.
- K11: `On failure:` opens with revert | retry | skip | escalate, or the
  validator warns (PLAN_STEP_ON_FAILURE_UNKNOWN); onFailureAction in
  plan-schema.
- B8 (operator decision 2026-10-08): minors open after the last critic round
  are listed numbered in the Phase 10 summary; the ones the operator picks are
  fixed and get one more round (--extra-round when the 3 are spent).
- B11: plan-review dedup merges two reviewers' findings on the same file:line
  with the same content (trial pair: Jaccard 0.44, overlap 0.83); the Jaccard
  threshold for every other pair is unchanged.
- B12: /trekbrief Step 4c says the reviewer runs in the background and is
  waited for, not "foreground, blocking".
- C13: the Phase 4 size count includes .mjs, .cjs, .mts, .cts.
- C14: --evidence shows the first output line on PASS rows.
- C16: findings-schema checks path:line citations in finding prose (error) and
  in the prose around the block (warning) against the file.
- C17: git-historian gets the brief, never proposes changing a frozen file,
  and names the remote from `git remote -v`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-10-08 21:42:21 +02:00
commit 255b6b4bf8
Signed by: ktg
SSH key fingerprint: SHA256:JakMjO6FTBBzN0Bhfj9saOoEjaFxlSdYuZQQpM/lF9Q
15 changed files with 675 additions and 24 deletions

View file

@ -15,8 +15,15 @@ in flight. This helps the planner avoid conflicts and build on recent work.
## Input
You receive a task description and optionally a list of task-relevant files (from
the task-finder agent). Focus your analysis on code areas related to the task.
You receive a task description, the brief's path, and optionally a list of
task-relevant files (from the task-finder agent). Focus your analysis on code
areas related to the task.
**Read the brief first.** Its Constraints and Non-Goals may freeze files ("the
existing test files stay unchanged"). Those files are fixed for this task: report
their history like any other file, but never propose or recommend changing one
— not in Recommendations, not as a conflict fix. A git-historian once proposed
editing a test file the brief froze (voyage-lekerepo trial 2, 2026-10-08).
## Your analysis process
@ -56,6 +63,11 @@ Look for:
- Work-in-progress that touches the same files
- Feature branches that should be merged first
Run `git remote -v` and name each remote exactly as it shows it: the URL's host
for a network remote, "a local repository at <path>" for a local path or bare
repository. Never name a hosting service the URL does not show (a local bare
repository was once called Forgejo, voyage-lekerepo trial 2). No remote: say so.
### 6. Uncommitted state
Run `git status --short` to check for:
@ -88,6 +100,12 @@ Run `git status --short` to check for:
|--------|-----------|-----------|-------------------|
| `feature/auth-v2` | 1d ago | Yes | Touches same auth module |
### Remote
- `origin` — {host from `git remote -v`, or "a local repository at <path>", or "no remote"}
### Frozen by the brief
- `path/to/file` — {the brief's words}; history reported, no change recommended
### Recommendations
- {Any timing or sequencing advice based on git state}
- {Files to watch for conflicts}
@ -97,7 +115,10 @@ Run `git status --short` to check for:
## Rules
- **Only analyze git history.** Do not read file contents for code analysis — other
agents handle that.
agents handle that. The brief is the one file you read, for what it freezes.
- **Frozen files stay frozen.** Never recommend changing a file the brief keeps
unchanged.
- **Name the remote from `git remote -v`**, never by guess.
- **Focus on the task.** Do not produce a full repository history report. Only
report what is relevant to planning the specific task.
- **Flag risks explicitly.** Hot files, concurrent branches, and recent refactors