Every hub tool iterates registry/repos.json, so a repository absent from it is not audited, not reported, and not counted. Nothing anywhere asks the inverse question, whether a repository that exists is in the registry, so an omission at standup is permanent and silent, and the fleet reports read as complete while it stands.
Audited against hub develop 362aec8. Found while cataloging Blog (#547), which had been operational and releasing for two days without any hub tool ever having measured it.
The procedure is not the gap
[STANDUP.md][standup] section 1A already says to write the entry, naming every field. The gap is that nothing verifies it happened. spec/validate.py proves the catalog is internally consistent, which is a statement about the file and not about the fleet, and both spec/audit.py and spec/fidelity_honesty.py take the registry as their input set. A missing entry is therefore invisible to the exact tools built to find drift.
The consequence is worse than a gap, because the reports are confidently wrong rather than silent. reports/divergences.md counted 19 repos owing AGENTS.md > Fleet Bootstrap. The real number was 20.
It is not one repository
Comparing the non-fork public repositories under the owner against the catalog on develop:
$ gh api users/ptr727/repos --paginate --jq '.[] | select(.fork==false) | .name' | LC_ALL=C sort > live.txt
$ ... registry names ... | LC_ALL=C sort > cataloged.txt
$ LC_ALL=C comm -23 live.txt cataloged.txt
Blog
DiskSpeedTest
GEM-Echo-Server
GoogleTo1Password
Blog is resolved by #547. The other three are unexamined here, and each is either a fleet repo owing an entry or a deliberate exclusion owing a way to say so. Private repositories are not covered by this listing, so the true count is at least four.
What would close it
A membership check that reads the owner's repositories and reports any non-fork repository with no registry entry. It is a natural addition to spec/audit.py, which already holds a gh client and already runs owner-initiated before fleet-wide changes.
It needs a way to record a deliberate exclusion, or it becomes a permanent four-line complaint that people learn to scroll past. The registry already carries status with cataloged and backlog, so a third value, or a separate excluded[] list carrying a reason per entry, would let the check distinguish "not yet triaged" from "deliberately outside the fleet". The reason matters more than the mechanism: an unexplained exclusion is the same silent omission in a different file.
Worth noting that the check has to run somewhere it will actually be seen. Neither validate.py in CI nor an owner-initiated audit.py run catches an omission at the moment it is made, which is the standup itself, and that is the moment where the cost of fixing it is a single line.
🤖 Generated with Claude Code
Every hub tool iterates
registry/repos.json, so a repository absent from it is not audited, not reported, and not counted. Nothing anywhere asks the inverse question, whether a repository that exists is in the registry, so an omission at standup is permanent and silent, and the fleet reports read as complete while it stands.Audited against hub
develop362aec8. Found while cataloging Blog (#547), which had been operational and releasing for two days without any hub tool ever having measured it.The procedure is not the gap
[
STANDUP.md][standup] section 1A already says to write the entry, naming every field. The gap is that nothing verifies it happened.spec/validate.pyproves the catalog is internally consistent, which is a statement about the file and not about the fleet, and bothspec/audit.pyandspec/fidelity_honesty.pytake the registry as their input set. A missing entry is therefore invisible to the exact tools built to find drift.The consequence is worse than a gap, because the reports are confidently wrong rather than silent.
reports/divergences.mdcounted 19 repos owingAGENTS.md > Fleet Bootstrap. The real number was 20.It is not one repository
Comparing the non-fork public repositories under the owner against the catalog on
develop:Blog is resolved by #547. The other three are unexamined here, and each is either a fleet repo owing an entry or a deliberate exclusion owing a way to say so. Private repositories are not covered by this listing, so the true count is at least four.
What would close it
A membership check that reads the owner's repositories and reports any non-fork repository with no registry entry. It is a natural addition to
spec/audit.py, which already holds aghclient and already runs owner-initiated before fleet-wide changes.It needs a way to record a deliberate exclusion, or it becomes a permanent four-line complaint that people learn to scroll past. The registry already carries
statuswithcatalogedandbacklog, so a third value, or a separateexcluded[]list carrying a reason per entry, would let the check distinguish "not yet triaged" from "deliberately outside the fleet". The reason matters more than the mechanism: an unexplained exclusion is the same silent omission in a different file.Worth noting that the check has to run somewhere it will actually be seen. Neither
validate.pyin CI nor an owner-initiatedaudit.pyrun catches an omission at the moment it is made, which is the standup itself, and that is the moment where the cost of fixing it is a single line.🤖 Generated with Claude Code