Repository navigation
Conversation
…transcript usage, autocompact advisory - skills/iterative-build-loop.md: every model write via exec.sh; on a guard refusal commit (--commit-first), wait (lock) or stop — never FORCE_EXEC on own initiative; MCP writes accepted as unrecorded and recorded by an "MCP:" commit; phase-close count (model commits = exec rows + MCP: commits); save-then-check; no batched-gate mode, do not imitate one (#69, #171, #173). - skills/upstream-feedback.md: Studio Pro MCP server asks as a third destination, with the evidence rows from the field comparison (#173). - skills/learned-page-patterns.md: UI fix rounds — SCSS first, apply directly, re-look only changed pages; N1–N4 pre-apply checks (#170). - skills/measured-claims.md §7: read each message's LAST usage record; re-measured on Claude Code 2.1.296 transcripts (sub-agents up to 7x low on the first record; main loop exact) (#171). - bin/init-project.sh: auto-compact advisory, writes nothing, never fails (#167); fixture tests/wave2/test-init-autocompact.sh (9 checks, 4 fail on master). Field run: scaffolded four scratch projects with no setting, env 1M, settings 250000 and settings 1000000. - Routing triggers for three on-demand rows extended so the refusal, UI round and token-count cases reach the stubs; baseline unchanged at 79,997 words. - contrib/inbox: mcp-build-observations deleted (fully promoted); ui-loop-efficiency, parallel-build-hygiene, subagent-context-cost trimmed to what stays open. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
…, dropped MCP asks, stricter autocompact advisory
- iterative-build-loop: phase-close check is coverage (applied exec row, --commit-first commit,
or MCP: commit), N of N, not an equality; pre-exec step 2 commits as "MCP: <what changed>";
the exec lock refuses (no queue); refusal table gains PRE-EXISTING and "any other refusal:
read the printed remedy"; the rows each refusal writes are named.
- learned-page-patterns + inbox: the lock refuses, it does not serialise/queue.
- upstream-feedback: the two dropped MCP-build items recorded with why.
- routing: the exec trigger leads with "An exec.sh guard refused a write (not a permission
prompt)"; stubs re-rendered; baseline unchanged at 79,997 words.
- init-project advisory: reads env AND every autoCompactWindow in project and user settings,
warns if any is above 250k; string values ("1M") parsed; unreadable values printed as
"unparseable: <v>" instead of "none set"; values over 12 digits never reach arithmetic.
Fixture grows to 15 checks (all pass).
- measured-claims §7: notes token-burn.sh keeps the first record today.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
…ase-close text Confirmation review of #323: "the change is not in the model" was false for LINT ROSE/BLIND and PARTIAL (the write is kept) and could lead an agent to re-apply a non-idempotent script; PARTIAL rows now count as coverage and are finished, not re-run; the print-only list is exact. Wording as the reviewer specified. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
3 of 4 tasks
MendixMau
added a commit
that referenced
this pull request
Oct 14, 2026
) Every constituent PR was reviewed by a fresh agent that did not write it (CLAUDE.md "Merging a PR"); only MERGE verdicts joined. CI green on each constituent head and on this head (40814fc); full suites run on the branch. Review lines (per merged PR): - #315 context trim — MERGE; 360/385 removed lines found verbatim in their new homes, rest read by hand; baseline 79,997 -> 76,259. - #316 independent-review + word-budget rules — MERGE-AFTER-FIX (3 rounds), fixes applied as specified. - #318 page-fidelity displayed text — MERGE after fix round + confirmation. - #317 interaction-model skill (#291 part 1) — MERGE after fix round + confirmation; no client names leaked. - #321 PROOF-OF-LOOK per section; final-look not due before derived Stage 6 — MERGE after fix round + confirmation. - #307 graph-sweep guard; per-BRD conformance ledgers — MERGE after two fix rounds + confirmation. - #325 extraction-quality section; token-burn fixes — MERGE after fix round + confirmation. - #310 e2e OQL by alias, negative-span liveness, APP-DOWN, #302 credential regression fix — MERGE after fix round + 3 confirmations. - #323 inbox promotions — MERGE after fix round + confirmation. - #308 lint gate BLIND on reverted stock rules — MERGE (FIRST-SEEN reverted) after two fix rounds + confirmation. - #328 pipefail + grep -q flake — MERGE; 0/30 flakes vs 15/100 on master. Follow-up: run-all resolves bin/lib/ subjects (reviewed, MERGE). - #319 test-stack-up command-line ownership proof — MERGE after fix round + 2 confirmations. - #327 change-intake core + on-demand detail; CRLF-safe change log — MERGE after fix round + confirmation. - #320 follow-ups to #290/#292; Dispatching split out — MERGE after fix round + confirmation. - #326 status delivery rounds (existing-app mode) — MERGE after fix round + confirmation. - #312 lint batch 4: SEC014, toolkit CONV009 — MERGE after review + 2 fix rounds + confirmation; field run on mxcli 0.26. - #324 exec.sh change classes, shared stale-lock takeover, SEC014 note echo — MERGE (joint review); follow-up owed for a takeover race after a mid-takeover crash. - #322 MxTest after-startup guard, mxcli-run pid check — MERGE (joint review). - #314 doctor property-set exit code; sync announces its bound — MERGE (joint review). - #330 review follow-ups (exit 4/5 docs, pipefail, NUL strip) — MERGE-AFTER-FIX, fixes applied; takeover re-check dropped. Field runs are still owed for most instruments in this batch (stated in each PR). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
Owner
Author
|
Landed on master as part of the integration squash #329 (commit 31e90ae), after independent review — its Generated by Claude Code |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Triage of the 2026-09-29 field-comparison inbox notes into on-demand skills. Baseline is unchanged at 79,997 words (
render-routing.sh --check, before and after). Nothing new went into a baseline file.ui-loop.mdandlearned-css-that-never-applied.mdare both baseline, so the #170 text went to the on-demandlearned-page-patterns.md.#69: "always exec.sh" (Refs #69)
Problem: agents hitting an exec.sh guard had no stated move, and the predictable one is
FORCE_EXEC=1. The MCP path's recording status was undecided.Fix: a new section in
skills/iterative-build-loop.md(on-demand):--commit-first), wait (exec lock), or stop and report (Studio Pro holds the model; gate cannot run → doctor;ALLOW_UNVERIFIEDonly on the person's say).FORCE_EXECon the agent's own initiative, with the failure example (silent loss of MCP work on auto-restore).MCP:commit.MCP:commits.The mdl stub gets this only through routing: the trigger is now "…, or an exec.sh guard just refused a write". Stubs were re-rendered.
Verified against
project-bin/exec.sh: the uncommitted and--commit-firstrefusals log a 🚫 row; the Studio Pro and lock refusals only print. The text says this.Left open (why Refs): decision 4, which projects get
--upgrade-bin exec.sh. That is a sync/rollout call, not skill text. Decision 3 is already answered by #304's mxbuild auto-download plus refuse.#170: UI fix rounds, N1–N4 (Refs #170)
Fix:
skills/learned-page-patterns.md→ "UI fix rounds" covers:.d-nonelosing to adisplayclass), N3 (DG2autoFitat 32 px) and N4 (pointer to the existing focus-ring section);The "halves calls" figure is labelled a hypothesis.
Left open: N1–N3 as a mechanical check in
project-bin/check-page-shell.sh. That needs captured golden page MDL/SCSS, and none was available.#171: batched gate and usage measurement (Refs #171)
Fix:
SKIP_*,FORCE_EXECor raw exec.skills/measured-claims.md§7: read each message's last usage record. Re-measured on real Claude Code 2.1.296 transcripts:Proposed, not done (owned elsewhere):
exec.sh;bin/token-burn.shkeeps the FIRST record permessage.id(it skips ids already seen), so it undercounts sub-agent output. Fix: keep the last record's usage per id.#173: save-then-check and MCP asks (Closes #173)
Fix:
skills/upstream-feedback.mdgets a third destination, the Studio Pro MCP server's owners: draft locally, never file in either repo. It carries the asks with their evidence rows and a "done when" bound.ui-loop.md).#166: context diet, measured (Refs #166)
Measured with chars/4 on this branch, lead role, baseline skills only. CLAUDE.md and CLAUDE.local.md are not included.
The runbook alone is 15,216 words (~24.7k tokens). The ≤25k target is not met for stages 1–4 even with the slice. No change in this PR; a spine split is still needed.
#167: autocompact advisory (Refs #167)
Fix:
bin/init-project.shprints:CLAUDE_CODE_AUTO_COMPACT_WINDOW, or anautoCompactWindownumber in the project or usersettings.json, is above 250k;/autocompact 250krecommendation.It writes nothing and never fails the scaffold. An unparseable value is ignored. The setting names were checked against the installed Claude Code 2.1.296 binary, and the per-model settings shape matches a real
~/.claude/settings.json.Left open: lean per-role payloads, a bundle cap, and per-role context in the time log.
Inbox
2026-09-29-mcp-build-observations.md: deleted, fully promoted.ui-loop-efficiency,parallel-build-hygiene,subagent-context-cost: trimmed to what stays open.context-diet-early-stages: untouched, since nothing from it was promoted.Checks run
tests/wave2/test-init-autocompact.sh bin/init-project.sh: 15/15 pass; 4 fail on master's init-project.sh.test-bug09-13.sh(iterative-build-loop): 22/0test-docs-numbering.sh: 16/0test-routing-tier.sh: 12/0test-baseline-pack.sh: 16/0test-render-routing.sh: 5/0. The first run reported 1 FAIL that did not reproduce on rerun, on this branch or on master.check-scripts,check-portability,check-no-private-citations,render-routing --check, the leak guard (no denylist) andcheck-pr-discipline origin/master: all clean.Field run
The init advisory was run against four scratch scaffolds (no setting, env 1M, settings 250000, settings 1000000), and each printed the expected line. A field run on a real project's scaffold is still owed. The skill text has no instrument to field-run.
Review
Independent review: MERGE-AFTER-SMALL-FIX; fix round landed; confirmation round: MERGE-AFTER-SMALL-FIX (kept-write wording, PARTIAL coverage, print-only list, this body) — fixes applied verbatim as specified.
🤖 Generated with Claude Code
https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
Generated by Claude Code
Generated by Claude Code