From a1381d58a865c259ba830f615fc4f590c00a9038 Mon Sep 17 00:00:00 2001 From: Erik Darling <2136037+erikdarlingdata@users.noreply.github.com> Date: Wed, 23 Sep 2026 23:45:57 -0400 Subject: [PATCH] lane-orders: grep saved test logs, never invent an unfilled placeholder (#3898) Two wave E findings. One lane Read a 47k-character saved test log whole. One lane's brief left unfilled, and the lane committed its changelog entry to a made-up path inside the repo. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01QQh8LczP1HGLXQYAx4oTZC --- .claude/skills/lane-orders/SKILL.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.claude/skills/lane-orders/SKILL.md b/.claude/skills/lane-orders/SKILL.md index 8f779b6168..43aaa36a39 100644 --- a/.claude/skills/lane-orders/SKILL.md +++ b/.claude/skills/lane-orders/SKILL.md @@ -17,6 +17,10 @@ conflict. - ``; - ``, ``. +If your brief leaves one unfilled, don't invent a value. Skip the step that needs it and say so in the PR body. +In wave E (2026-09-24), a lane whose brief left `` unfilled wrote its changelog entry to a +made-up path inside the repo. + Isolated worktrees live under `.claude/worktrees/` inside the repo, so a repo-scanning test must not exclude that path. @@ -88,7 +92,8 @@ census, one of them introduced by that night's own wave). - **Never edit, build in, or check out branches in the shared main checkout.** Your first action is creating your own worktree. -- Never paste full test output. Grep for `[FAIL]|Total:`. +- Never paste full test output. Grep for `[FAIL]|Total:`. A test log saved to a file is still test output: grep + it, never Read it. - Read files by offset/limit. Never read a whole large file. - grep prints whole lines. Pipe it through `cut -c1-200` in files with long lines: each MCP `Description(...)` is one line of 1-3k characters.