Conversation
…uild Two unattended builds built every page and opened no screenshot of any. The LOOK was routed and had an obligation row, but both are about a report, and a build that writes none owes nothing anyone checks. - project-bin/look-ledger.sh: owed.tsv (pages a script builds) and seen.tsv (images the agent opens), plus the one-pass join. - exec.sh records owed pages after a script lands; never blocks. - install-claude-permissions.sh installs a PostToolUse(Read) hook that records opened images; the installer now handles a list of hooks and reads old sidecars. - shrink-image-read.sh leaves a .src sidecar so a shrunk copy maps back to the original screenshot. - gate-check.sh Stage 5: FAIL naming the pages still owed; PROOF-OF-LOOK citations and look/<Module> waivers count; no ledger stays MANUAL. - Decision 1 amended for the look only; ui-loop.md step 2 says how a look is cleared; promotes the 2026-09-19 inbox note. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
MendixMau
marked this pull request as ready for review
October 2, 2026 02:35
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.
Direct lane
What changed and why (one paragraph):
Two unattended builds shipped every page without anyone opening a screenshot of it. They only ran
page-fidelity.js, which is a text score. This PR makes the LOOK owed and checkable:bin/exec.shnow records every page a script creates or alters as owed a look. It writes to.claude/loop/look/owed.tsvthrough the newproject-bin/look-ledger.sh owe.install-claude-permissions.sh, logs each image the agent opens toseen.tsv.gate-check.sh <project> 5now FAILs and names the pages still owed. A page counts as seen when a screenshot was opened after its latest build and the file name contains the page name.ui-review-*.html, which needs a real shot of at least 10KB that is newer than the build. Or it can be waived with--waive look/<Module>.It blocks only the "Stage 5 done" claim. It never blocks the next script. With no ledger, Stage 5 stays the plain MANUAL it was. The PR also:
shrink-image-read.shleave a.srcsidecar so a shrunk copy maps back to its original;skills/ui-loop.mdstep 2;Supersedes the enforcement half of #189; #192 carries the Stage 4 half.
Field evidence:
.mdlfiles. They cover CREATE, CREATE OR REPLACE, CREATE OR MODIFY and ALTER, in either case and with quoted or bare names. Snippets and comments are skipped.--waive look/<Module>Gate run time: about 2s.
Installer probe on a legacy settings file:
--checkreports the missing Read hook. Install adds it and keeps a foreign PostToolUse hook. Re-run is a no-op. Uninstall removes only ours.No client data anywhere in the diff. The leak guard passes, and a name grep on the added lines is clean.
Size cap: over by a little. 8 files and 373 lines excluding the promoted inbox deletion. With the deletion (−101 lines, required in the same commit) it is 9 files and 474 lines. Fixtures and CHANGELOG are excluded.
Test tier: T0 + probe runs.
bin/check-scripts.shpasses 97/97. The T1 fixtures have not run yet and are pending the maintainer's ok, which is why this is a draft:tests/wave2/test-look-ledger.sh(new)tests/wave2/test-install-claude-permissions.sh(extended)tests/wave2/test-bug03-gates.shInstrument rules:
app/, from an installedbin/copy (_common.shhonoursPROJECT_ROOT);stat, bash 3.2 safe, a single awk pass;exec.shis never blocked).CHANGELOG.mdline under Unreleased, credited to two field builds.n/a: new skill routing row, BUG-DRAFT headings.
Known gaps:
exec.sh(install rule: present → keep). They write no owed rows, so their Stage 5 stays MANUAL untilsync-project.shor a reinstall refreshes it.lookobligation reports "PASS — no module has been opened for work yet" even while pages are being built.🤖 Generated with Claude Code
https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
Generated by Claude Code