Skip to content

Token-lanes carrier: evidence sentence replaces the verification-skill line (AN-15, after #447) - #456

Merged
seathatflowsinourveins merged 7 commits into
mainfrom
claude/token-lanes-verification-line-20260928
Sep 28, 2026
Merged

seathatflowsinourveins merged 7 commits into
mainfrom
claude/token-lanes-verification-line-20260928

Conversation

@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator

Scope

SOTA sources

Each page below was re-read at its cited line of the Markdown source on 2026-09-28:

  • Prompting Claude Opus 5 L61, L74, L81: verification instructions cause over-verification and should be removed.
  • Prompting Claude Opus 5.5 L9: the Opus 5 patterns are "a reasonable starting point".
  • Prompting best practices L780: Opus 5 is the exception to the self-check advice ("remove these instructions rather than rewriting them").
  • Claude Code best practices L52: show the command and what it returned. The added "or the file:line read" is tagged as a local extension.
  • Sub-agents L600: the full content of each preloaded skill is injected at startup.
  • obra/superpowers@8ca22db skills/verification-before-completion/SKILL.md L10, "Evidence before claims, always". This is the preloaded skill; the installed copy matches the manifest skill_md_sha256.

Evidence-class table

Claim Evidence class Command / receipt
The hook emits the new default block (4,088 bytes), the builder block (2,747), the scout block (1,089) and no block for blind roles, all within the 4,100-byte budget and each allowlist local_integration (subprocess runs of the hook with SubagentStart payloads) tests/test_token_lanes_subagent_start.py; Codex re-ran the hook for every shipped role
The new assertions fail on the old carrier and pass on the new synthetic (the module run against the #447 blocks: 19 subtest failures; now 17 tests OK) the addendum's failing-first control
No child start context on a host shows the new line yet not run: needs the reinstall see Residuals

Local commands run

$ cd adoption/hooks/claude && sha256sum -c SHA256SUMS
all 9 OK
$ TMPDIR=<fresh> python3 -m unittest tests.test_token_lanes_subagent_start tests.test_install_claude_profile tests.test_adoption_docs_consistency tests.test_context_mode_practice_docs tests.test_effort_default_guard tests.test_render_config tests.test_skills_manifest tests.test_token_e2e_preregistration tests.test_adoption_status
Ran 307 tests, OK (skipped=4)
$ python3 scripts/validate.py; python3 scripts/component_matrix.py --check; python3 scripts/new_host_grand_list.py --check; git diff --check origin/main...HEAD
exit 0; exit 0; exit 0; exit 0

Decision record

Review

  1. Claude workflow review.
    • A build, verify, review, repair and final-verify pipeline ran in an owned worktree.
    • Verify passed with 3 minor findings; the review passed with 7 minor findings and 9 verification gaps.
    • The repair fixed all findings and measured six of the gaps.
    • Final verify: pass, with integration residuals.
  2. Rebuild onto main. The branch was rebuilt onto main 718e5620.
  3. Cross-family review. codex exec -s read-only -m gpt-6-astra -c model_reasoning_effort=max on the rebuilt head returned changes-needed with one minor finding: the "no Bash means no command output" rationale ignored ctx_execute, which security-reviewer has. Fixed by qualifying the rationale. Codex's hook runs, allowlist checks and mirror checks all passed.

Residuals

Checklist

  • New/changed GitHub Actions are pinned to a full commit SHA with a version comment (no floating tags). (none changed)
  • New/changed workflows declare top-level permissions: contents: read (or a narrower, explicitly justified addition). (none changed)
  • No secrets are printed, logged or committed; no new required secret was added without a documented owner.
  • No new paid hosting, subscription or billing surface was introduced.
  • Peer-owned untracked files and worktrees were preserved (not deleted, moved or overwritten).

🤖 Generated with Claude Code

@seathatflowsinourveins seathatflowsinourveins added the lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers label Sep 28, 2026
@seathatflowsinourveins
seathatflowsinourveins force-pushed the claude/token-lanes-verification-line-20260928 branch 3 times, most recently from 3e71129 to e56c0c5 Compare September 28, 2026 10:42
Scout and others added 7 commits September 28, 2026 07:14
…struction

Default block line 13 now asks for evidence (the command and what it
returned, or the file:line read) and keeps the search-first sentence:
4,094 -> 4,088 bytes against the unchanged 4,100-byte bound (AN-15).
The builder block drops its verification sentence (2,883 -> 2,747
bytes): isolated-builder.md:7-9 preloads the skill and :12 names it.

Sources: code.claude.com/docs/en/best-practices.md L52 (show evidence);
platform.claude.com prompting-claude-opus-5.md L61, L81 (remove explicit
verification instructions), prompting-claude-opus-5-5.md L9 (carried
forward), claude-prompting-best-practices.md L780 (Opus 5 exception).

Handbook mirror: carrier line, its sources paragraph naming only
search-first, and the builder table row and variant. Tests: the default
key phrase becomes "Show evidence before a success claim", the builder
drops the skill phrase, and no block may name the withdrawn skill.
SHA256SUMS refreshed for both blocks. No installer run.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… conditions

Token-lanes decision, addendum 2026-09-28: why the default carrier line
now asks only for evidence (Opus 5 guide L61, L81; Opus 5.5 guide L9;
prompting best practices L780; Claude Code best practices L52), why the
builder line is removed on its own merits (isolated-builder.md L5, L7-9,
L12; sub-agents reference L600), sizes, the failing-first control, the
non-Opus boundary, alternatives, #381 freeze and overturn.

Skills-trial record, addendum 2026-09-28: condition log C0-C3 (#378,
2026-10-25 review rule for verification-before-completion: a
with/without comparison on frozen builder tasks through an upstream
harness named with its pin (tokens, elapsed time, review-found defects).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ed count

Skills-trial condition log: isolated-builder's verification-before-completion
preload and the body line that names it came from #376 (623d34f,
2026-09-27T03:38:47Z per TZ=UTC git log -S on
adoption/agents/claude/isolated-builder.md), a boundary inside C0, not a
constant across every condition. The one recorded install time is
attributed as measured-gaps.md reports it (the coordinator's local
measurement), without naming a host. Token-lanes addendum: the community
alternative keeps superpowers as the verifiable example and drops a survey
count that is not retained in the repository.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…w the no-verification claim

Repair round for the verification-line change (review findings R-F2, R-F7).

- token-lanes-block.md line 13 moves "(code.claude.com best practices)" to
  follow "the command and what it returned", the item Claude Code best
  practices L52 names (https://code.claude.com/docs/en/best-practices.md,
  re-read 2026-09-28). The file:line alternative is local policy, not in
  L52. Zero-byte reorder: the block stays 4,088 bytes and line 13 295.
- SHA256SUMS lists the new block hash; `sha256sum -c SHA256SUMS` passes.
- Handbook: the mirrored line follows, and the sources paragraph records
  the file:line alternative as local policy. It now says the carrier gives
  no instruction to verify finished work and names no verification skill,
  since the codebase-memory line still checks caller lists (handbook L264).
- Test comment: WITHDRAWN_PHRASES is a literal skill-name check, not a
  check for every verification wording.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…erturn variables

Repair round for the verification-line addendum and the skills-trial
carrier-condition addendum (findings V-F1, R-F1, R-F3, R-F4, R-F5, R-F6,
R-F7, GAP-3, GAP-6, GAP-7).

Skills-trial addendum:
- The review no longer "replaces" the count-based prune rule. It adds a
  with/without comparison that varies the builder's preload for the
  skill's Claude listing; trial.prune_rule (adoption/skills/manifest.json
  L30) and tools/skill-usage/skill_usage.py L516-538 still apply, and
  Codex enablement stays under that rule. A disagreement is written into
  the manifest update the trial window end already requires.
- Other sources and role changes: the landscape-sweep templates name both
  skills from 1b0e459 (templates.json common; build_args.py L59
  TEMPLATE_SKILLS), for the Claude workers and the GPT-6 lane; the C0
  baseline counts (child-lane baseline README L128-130) match that list
  without proving cause; #398 (5483412) and #402 (d022295) change the
  sweep workers' type and model and the builder's model inside C1.
- Boundaries: the installer writes no install record (shutil.copy2 at
  install_claude_profile.py L113, L143 keeps the source mtime), and #381
  step 2 freezes hashes, not install times.

Verification-line addendum:
- The builder runs model: opus, which is Opus 5.5 on this host since
  September 22 (grand-catalog-handbook.md L242-244), so the Opus 5 advice
  reaches it through the 5.5 guide's L9; before #402 it ran sonnet.
- #381 records hashes, not an install time; a Supersedes note corrects
  the qmd addendum's L389 wording the same way.
- Overturn names what each comparison varies: default-block line 13, a
  non-Opus child set, the builder line with the preload held on, or a
  prompting-guide reversal.
- Line 13's quote, the local file:line policy, the re-read of every
  documentation quote at its cited line (2026-09-28 08:55Z), the
  installed SKILL.md hash check and the control's own returned lines.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… ctx_execute

security-reviewer has no Bash but runs commands through Context Mode's
ctx_execute (Codex review), so the rationale is qualified to children with no
command runner.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@seathatflowsinourveins
seathatflowsinourveins force-pushed the claude/token-lanes-verification-line-20260928 branch from e56c0c5 to 8f22885 Compare September 28, 2026 11:15
@seathatflowsinourveins
seathatflowsinourveins merged commit 85a604a into main Sep 28, 2026
26 checks passed
@seathatflowsinourveins
seathatflowsinourveins deleted the claude/token-lanes-verification-line-20260928 branch September 28, 2026 11:35
@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Post-merge acceptance on this host (2026-09-28, Claude Code 2.1.283, local observation):

  • Install. python3 tools/adoption/install_claude_profile.py --only guard, run from a clean detached worktree at 85a604ac.
    • The dry run listed exactly two installs, token-lanes-block.md and token-lanes-block.builder.md. The other seven hook files already matched and were skipped.
    • The real run exited 0. The installed sha256 prefixes equal the repository's: d6c3c19d6e94d3f4 and c665c230cc81b451.
  • Default child (Agent tool, general-purpose). Its injected TOKEN LANES block is present. The block's last line is the new "Show evidence before a success claim: …" line, and the block does not name verification-before-completion.
  • isolated-builder child. Its injected block is present. It has no "Show evidence" line and does not name verification-before-completion, and its last line is the one-lane line ("Use one lane per artifact; …").
  • Cross-family review. Codex returned changes-needed with one minor finding: the rationale ignored ctx_execute. That was fixed before merge (see the PR body).

seathatflowsinourveins added a commit that referenced this pull request Sep 28, 2026
…t rule (M4), #381 Amendment 3 (#464)

* Skills trial: remove verification-before-completion under the conflict rule (M4), #381 Amendment 3

The pinned SKILL.md (obra/superpowers@8ca22dba) says "Previous run" is not sufficient and requires
a fresh full re-run "in this message"; AGENTS.md:16 says to reuse passing evidence whose inputs still
match. The trial's in-force rule (skills-trial :284-286) removes a trial skill whose instructions
conflict with AGENTS.md once read in full. Findings: the trial owner's full read, the practice-sweep
reviewer, and GPT-6 (gpt-6-astra, max) "VERDICT: conflict"; decision record
docs/decisions/2026-09-28-delegated-decisions.md (#462).

- manifest row moved to excluded with a dated reason; budgets recomputed (Claude 7,409 -> 7,184,
  Codex 3,054 -> 2,829); template skillOverrides key removed
- isolated-builder (three copies): preload and body line removed; token-lanes-block.builder.md gains
  the default block's evidence sentence (addendum records why #456's removal no longer applies)
- landscape-sweep templates and TEMPLATE_SKILLS drop the skill; workflow suites pin the new preload set
- #381 token-E2E preregistration Amendment 3 (pre-execution, authorised by the Gate A owner): new
  isolated-builder role-body row and RUNBOOK seal, history rows kept, tests updated

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* Skills manifest: post-patch-validation exclusion reason no longer assumes the removed skill

Independent verification of #464 (low defect): the reason still read as if verification-before-completion
were installed. The exclusion stands on the fp-check duplication and the Socket Warn.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Scout <scout@local>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant