chore(agents): restore evidence sharing after the asset purge
Issue #49 removed game assets from git. It also, silently, removed the only transport agents had for showing each other evidence: each agent works in its OWN clone, so "commit the screenshot, the other one pulls it" was the mechanism, and PROTOCOL.md's file table said so in as many words -- "evidence cited by a finding -> git". That row sat directly above "🔴 Never commit game content", which is how 76 MB accumulated: the two contradicted each other and the table won, because it was the one that told you what to do. WHAT REPLACES IT * one host directory, `Sylpheed/docs/re/captures/`, bind-mounted read-write into BOTH agents at /work/docs/re/captures. All three -- host, decoder, port -- see the same files live, every citation resolves, and nothing can reach git history. Read-write on purpose: showing each other a screenshot is the point. * PROTOCOL.md's table rewritten. Cited evidence -> present but never committed; derived measurements (csv/tsv/txt/log/json) -> still git, they are our numbers not game content; evidence that must cross MACHINES -> attached to the issue or PR, because a bare clone has no captures. Verified, not assumed: container A wrote a .png there, a SEPARATE container B read it back, the host saw it, `git status` reported 0 changes, and `git check-ignore` named the rule. THE CHECKER WAS RED ON EVERY CLEAN CHECKOUT A fresh clone/worktree/CI has no captures, so it called all 134 citations dangling and exited 1. A gate that is red before anyone changes anything is one people learn to ignore -- the exact failure this file already carries a comment about. It now distinguishes "no captures here" (expected, explains itself, exit 0) from "these are missing" (real, exit 1, unchanged when assets ARE present). Both paths tested. ALSO * `sylph-decoder` no longer mounts `xenia-rs` -- retired repo, gone from disk, the mount pointed at nothing. * CONSOLIDATION.md closed: it still described captures as committed and the history fork as undecided. Both are settled. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -235,6 +235,21 @@ def main() -> int:
|
||||
print(" cited by a page or a tool : %d" % (len(files) - len(orphans)))
|
||||
print(" cited by nothing : %d (reported, not failed —" % len(orphans))
|
||||
print(" an orphan may be evidence a page owes)")
|
||||
# 🔴 A BARE CLONE HAS NO CAPTURES AT ALL, and that is not a defect.
|
||||
# Since #49 the assets are never committed, so a fresh clone, a worktree or
|
||||
# a CI checkout legitimately has none — and the naive check calls all 134
|
||||
# citations dangling and exits 1. A gate that is red on every clean checkout
|
||||
# is one people learn to ignore, which is how the last wrong-by-default
|
||||
# check in this file cost a session. Distinguish "none here" from "this one
|
||||
# is missing": with some assets present, a gap is real and still fails.
|
||||
assets_here = sum(1 for f in files if f.lower().endswith(ASSET_SUFFIXES))
|
||||
if assets_here == 0 and dangling:
|
||||
print(" ⓘ no captures on this checkout: %d citations unresolved" % len(dangling))
|
||||
print(" Expected — captures are local-only (#49) and a fresh clone has none.")
|
||||
print(" Copy them in, or read the evidence on the issue it is attached to.")
|
||||
print(" 🔴 game assets TRACKED : %d" % len(stowaways))
|
||||
return 1 if stowaways else 0
|
||||
|
||||
rc = 0
|
||||
if dangling:
|
||||
print(" 🔴 cited but NOT present : %d" % len(dangling))
|
||||
|
||||
Reference in New Issue
Block a user