Give each restated rule one owner - #365
Open
alanhc wants to merge 5 commits into
Open
Conversation
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. elfuse-verify opens on it and says what a failure in each lane means, so the other two ask it rather than restating the pointer. 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. The tracked section stays in the authoritative sources list, which is where a skill names a file it defers to.
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.
alanhc
force-pushed
the
skills-consolidate
branch
from
September 4, 2026 10:02
a6182bc to
a7f6cac
Compare
Collaborator
Author
|
Rebased onto main; the conflicts were in cubic's two findings, both folded into
|
Contributor
|
I defer to @henrybear327 for confirmation. |
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.
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,
and the second site names that skill rather than restating it.
What moved
elfuse-debugelfuse-guest-abicheck-atomics.pycannot seeelfuse-conventionselfuse-securityelfuse-verifyelfuse-securityelfuse-syscallelfuse-conventions,elfuse-refactor,elfuse-securityelfuse-verifyelfuse-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. Eight rules were written out in two skills each, and two skills stated a rule twice within themselves; now each rule sits with the skill that owns its mechanism, and other sites name that skill instead of restating it, so a rule can no longer drift between copies.
elfuse-syscallkeeps the lock ordering record,elfuse-verifykeeps the validation table, proof limits, and reporting rules,elfuse-conventionskeeps file placement and thecheck-atomics.pyblind spot, andelfuse-debugkeeps the GDB stub refusal.make check-skill-refsresolves every path, target, section, and cross-reference across the 12 files.Written for commit a7f6cac. Summary will update on new commits.