Conversation
a6182bc to
a7f6cac
Compare
|
Rebased onto main; the conflicts were in cubic's two findings, both folded into
|
|
Rebase latest |
a7f6cac to
55e90f0
Compare
|
Rebased onto b05f639. One conflict, in The rules this branch routes to are still in the skills it names after the 71 commits:
|
| Run the baseline `elfuse-verify` selects for the area touched before a | ||
| multi-step cleanup. Keep inherited failures separate from the change. Stop | ||
| when the baseline is red in the area being changed. |
There was a problem hiding this comment.
elfuse-verify doesn't pick a baseline itself. Under "Choosing what to run" it sends the reader to the table in docs/testing.md, section "Validation Strategy By Change Type", so this adds a second hop to reach the same table. This file's own authoritative-sources list also still names docs/testing.md for the validation lanes, so the two now disagree about who owns the table.
| Run the baseline `elfuse-verify` selects for the area touched before a | |
| multi-step cleanup. Keep inherited failures separate from the change. Stop | |
| when the baseline is red in the area being changed. | |
| Run the baseline that `docs/testing.md`, section "Validation Strategy By Change | |
| Type", selects for the area touched (`elfuse-verify` explains the lanes) before | |
| a multi-step cleanup. Keep inherited failures separate from the change. Stop | |
| when the baseline is red in the area being changed. |
There was a problem hiding this comment.
Checked: elfuse-verify's "Choosing what to run" does send the reader to docs/testing.md, so the routing added a hop and left this file's authoritative sources list disagreeing with its body. Applied, and the commit is now "Name the file that holds the validation table" with the reason in its body.
Three facts were written out in two skills each, in the shape the register warns about: a rule copied to a second place is a rule that can drift. Each now sits with the skill that owns the mechanism, and the second site names that skill. The GDB stub's refusal of x86_64 belongs beside the flag it refuses, in elfuse-debug. What check-atomics.py cannot see belongs with the atomics rules in elfuse-conventions. That a proof binds the arithmetic and not its callers belongs with the proofs in elfuse-verify, which also carries what narrows it. The security skill keeps the judgment each one supports, since a review priority is not the fact it rests on.
Four skills told a contributor to record a new lock, and only one of them carried what the record actually holds. elfuse-syscall states where it lives and the three constraints that do not follow from the ordering itself, so it keeps the rule. The other three name it instead of restating it. The security skill also said it twice on its own, once in the shared-pages rule and once in the gate list beneath, where check-lock-order.py is what fails the omission.
The change-area-to-command table in docs/testing.md was named and glossed in three skills. Two of them restated what the table does, so drop the gloss and keep only what elfuse-verify adds on top of it: what a failure in each lane means. Pointing the two at elfuse-verify instead would cost a hop, since that skill sends the reader back to docs/testing.md for the table, and would leave the refactor skill's authoritative sources list naming a file its body no longer did. Both keep what they add: a cleanup earns the feature's command set rather than a smaller one, and a syscall change hands a failure to elfuse-debug.
Three rules about reporting a run were written in both elfuse-verify and elfuse-refactor: recompute a number rather than quoting it from a document, take the baseline before a session rather than after, and name a lane that could not run instead of rounding it up. elfuse-verify has the section that decides what done means, so it keeps all three. The refactor skill keeps what only it can say: the one-liners that measure this tree, and which of its reds a cleanup inherits rather than causes. It also stated the lint red twice on its own, once where the gates are measured and once in the same paragraph as the baseline.
Both skills answered it. elfuse-conventions owns where a file, a type, and a shared declaration may go, and it is the skill a contributor reaches for that question; the syscall procedure asks it there rather than repeating the answer mid-step. What stays in the procedure is the part specific to it: which domain file a sys_ implementation belongs in, and the three examples that make the naming legible.
55e90f0 to
b73b646
Compare
|
I defer to @henrybear327 for confirmation. |
Eight rules were written out in two skills each, which is the shape
references/prose-register.mdwarns about: a rule copied to a second place isa rule that can drift. Each now sits with the skill that owns the mechanism, or
with the tracked file that holds it, and the second site names that owner
rather than restating it.
What moved
elfuse-debugelfuse-guest-abicheck-atomics.pycannot seeelfuse-conventionselfuse-securityelfuse-verifyelfuse-securityelfuse-syscallelfuse-conventions,elfuse-refactor,elfuse-securitydocs/testing.mdelfuse-syscall,elfuse-refactorelfuse-verifyelfuse-refactorelfuse-conventionselfuse-syscallTwo skills also stated a rule twice inside themselves:
elfuse-securityon thelock record, once in the shared-pages rule and once in the gate list beneath
it, and
elfuse-refactoronmake lintnever having been clean.What this does not do
It does not make the skills shorter. 2234 lines to 2229, because a pointer
costs about what the restatement cost. The saving is one home per rule rather
than bytes.
The volume is in
elfuse-conventionsat 402 lines,elfuse-securityat 310and
elfuse-guest-abiat 291, and there it is subject matter rather thanrepetition. Cutting it means merging skills or dropping sections, which changes
which skill fires on which task, so it is a different change from this one.
One candidate is left in place deliberately. "This skill is a working summary.
These are tracked and survive a fresh clone, so prefer them when the two
disagree:" appears verbatim in five skills, and looks like the clearest
boilerplate in the set. Skills load independently, so a reader who loaded only
elfuse-debugwould lose what its authoritative sources list is for.Verification
make check-skill-refsresolves every path, target, section andcross-reference across the 12 files, and
scripts/check-commit-log.shacceptsall five commits. Documentation only: no build or test target reads these
files.
Summary by cubic
Consolidates duplicated rules so each has a single owning skill. Rules that were restated in more than one skill now live only with the skill that owns their mechanism; other sites name that skill instead of repeating the rule, so copies can no longer drift.
elfuse-syscallowns the lock ordering record;elfuse-verifyowns the validation table, proof limits, and reporting rules;elfuse-conventionsowns file placement and thecheck-atomics.pyblind spot;elfuse-debugowns the GDB stub refusal.make check-skill-refsresolves every path, target, section, and cross-reference across the 12 skill files.Written for commit b73b646. Summary will update on new commits.