Repository navigation
docs(audits): the register catches up, and one limit is re-acknowledged - #940
Merged
Merged
Conversation
Eight audits ran on 2026-11-14 and none had a row. The register is a discipline, nothing fails when it is skipped, and skipping it is how the same angles get audited twice and the same corners never do. The rows carry what was found and what was NOT looked at, which is the column that chooses the next audit. Two already name their blind spots: no run against a real Incus on any of the three sibling ownership paths, and internal/core/cloudinit not opened all day. They also record a pattern the day measured three times, in three lots by three authors: an attack test that refuses for the right reason by accident, because every row of its table shares a value some OTHER control refuses too. #909 drove one machine name ownedNetwork also refused; #923 built a one-package module, so "in this package" and "anywhere" were the same set; #932 drives networks that safeName and ownedNetwork both refuse, so the shape half is held by nothing. A guard with two questions needs a row that passes one and fails the other, in both directions. Second change: limits:check was exiting 2 on main and nothing caught it, because it is deliberately not in prepush. One section cited #851, closed 2026-11-13 and never re-acknowledged. The section was read: the limit holds, no client mints an identity and the CLI refuses rather than pretending, which is what #851 asked for. Only that one entry is re-dated, by hand. `limits-acks.py refresh` re-dates all 65 and would have claimed a pass nobody made. No contradicteur read this, and that is deliberate: it is a record of measurements taken in this session plus one dated re-read, and the two agent slots were held by code all day. Stating it rather than leaving the blank. Assisted-by: Claude Code (claude-opus-5)
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.
Summary
Eight audits ran on 2026-11-14 and none of them had a row in
docs/audits.md. The register is a discipline, nothing fails when it is skipped, and skipping it is exactly how the same layers get audited twice while the same corners never do.This adds the eight rows, and re-acknowledges one section of
docs/limits.mdthatlimits:checkwas refusing.The rows
Each carries what was found and, in the last column, what was not looked at. That column is the one that chooses the next audit, and two of these rows already name a blind spot worth a future pass: no run against a real Incus on any of the three sibling ownership paths (#920, #932, #933), and
internal/core/cloudinitnever opened all day.The pattern the day measured three times
Worth more than the eight rows, and the reason this is not just bookkeeping. In three lots, by three different authors, a contradicteur found the same defect: an attack test that refuses for the right reason by accident, because every row of its table shares a value that some other control refuses too.
ownedNetworkalso refused, so a guard reading the wrong name stayed invisible and only the accepting half caught it.safeNameandownedNetworkboth refuse, so the shape half of its guard is held by nothing at all.The common cause is not carelessness: it is that the most obvious attack values fail every control at once. A guard that asks two questions needs a row that passes one and fails the other, in both directions. That sentence is in the register now; whether it belongs in
CLAUDE.mdas a rule is a separate decision and not taken here.The limit
mise run limits:checkwas exiting 2 onmain, and nothing caught it, because the task is deliberately not inprepush(its own help explains why: a red that interrupts daily work over documentation freshness teaches--no-verify, which disarms every other hook at once).One section cited #851, closed 2026-11-13 and never re-acknowledged. The section was read: the limit holds. No client mints a request identity, the measurement over the 1088 recorded exchanges still stands, and the CLI refuses rather than pretending to be reproducible, which is what #851 asked for.
So the right treatment is a dated acknowledgement, not a rewrite. Only that one entry is re-dated, by hand.
tools/docs/limits-acks.py refreshre-dates all 65 sections and would have claimed a pass nobody made.Type of change
Runs
mise run docs:check806f5d3mise run limits:checkmainexits 2Mode: nothing here touches code or a machine runtime, so no leg and no
FEINT_VMrun is owed.No contradicteur read this, and that is deliberate
The project's rule is that a lot goes through contradicteurs before its commit. This one did not, and rather than leave the blank to be read as an oversight: it is a record of measurements taken in this session, plus one dated re-read of a limits section, and the two agent slots were held all day by the three code lots that needed them more. The rows cite the issues and the files they came from, so the claims are checkable without an agent.
Checklist
Always
mise run checkpasses (no code changed;docs:checkandlimits:checkare the gates that read these files)internal/corestill knows no providermise run testplanwas run; it namesdocs:checkandlimits:checkfor these paths, and both are greenWhen a model wrote a substantive part of this
Assisted-by:trailer names the tool and the model versionWhen a route is added or changed
N/A.
When behaviour a client can observe changes
N/A.
docs/limits.md's prose is untouched; only its acknowledgement date moves.When
.github/workflows/is touchedN/A.
When a machine runtime is involved
N/A.
Related issues
None. This closes no issue:
docs/audits.mdis a register and the limits acknowledgement is a dated read, neither of which an issue tracks.🤖 Generated with Claude Code