fix: the fix round before 6.3.0 (order 10)

1. A step of only tests can never be proven red. One reading,
   stepTestsOnly (lib/parsers/plan-schema.mjs, test paths from the new
   lib/util/test-path.mjs): the plan validator warns PLAN_STEP_TESTS_ONLY,
   red-proof --plan/--step adds tests_only to a not-red-at-base, and
   /trekexecute and the step helper send such a step straight up to the
   plan instead of into fix rounds that cannot succeed. /trekplan, the plan
   template and plan-critic (dimension 8, still 12) say the test belongs in
   the step that builds the behaviour.
2. Timing tests under load: the hook helper's kill limit is 30 s and per
   call overridable; SC #14 passes on the fastest of up to three runs
   against the same 800 ms limit (tests/helpers/timing.mjs).
3. The example plan's On failure lines open with a K11 word.
4. /trekreview saves the reviewer's whole answer for the findings check and
   names FINDING_PROSE_LINE_OUT_OF_RANGE (error: re-ask; warning: report).
5. The criteria runner's commands run without NODE_TEST_CONTEXT
   (commandEnv, moved to lib/util/command-env.mjs).
6. The resolver returns effort only when the brief's phase signal sets one;
   the four commands said it always did.

Also: the K2 hook tests used fixed session ids in a per-user temp dir, so
two suites running at once took each other's approval records; the ids are
now unique per run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-10-09 22:16:12 +02:00
commit 33b58f460a
Signed by: ktg
SSH key fingerprint: SHA256:JakMjO6FTBBzN0Bhfj9saOoEjaFxlSdYuZQQpM/lF9Q
25 changed files with 680 additions and 74 deletions

View file

@ -136,6 +136,14 @@ questions, which defeats the purpose.
- Are the verification commands correct and runnable?
- `plan_version: 1.8`: does every step's `Test first:` name a test that would
FAIL before the step and pass after it (not a test that already passes)?
- Does any step consist of only tests — every file in its `Files:` a test —
for behaviour an earlier step delivered? Its tests pass at its start point,
so it can never be proven red and `/trekexecute` stops on it
(`not-red-at-base`; the validator's warning `PLAN_STEP_TESTS_ONLY`). That is
a **major** finding: the test for a behaviour belongs in the step that
builds it — move it there. A test meant to pass from the start (a golden or
characterization test) is the `Regression:` of the step that changes the
code, not a step of its own.
- Is there a "run the thing" step (`End-to-end:`), and does its command run
the product the way a user does — not a unit test renamed? A plan whose only
end-to-end check is a unit test is a **blocker**: its result could only be