feat(checks): the design method installs, and the gates say whether it is here - #71
Open
Tradebaas wants to merge 1 commit into
Open
feat(checks): the design method installs, and the gates say whether it is here#71Tradebaas wants to merge 1 commit into
Tradebaas wants to merge 1 commit into
Conversation
…t is here Spec 011 is signed, and this is its tracer: the narrow path from "impeccable is the methodology now" to "every gate still holds", run on this repo rather than on a fixture, because this repo has a frontend of its own. The route is one command, checks/design-method.mjs --install. It reads the Node floor out of impeccable's own engines.node instead of a number typed here, so an upstream bump cannot leave a stale requirement behind, and it refuses before writing anything when the floor is not met. Then it installs the Claude build and repairs decision 0002: upstream deliberately deletes a .claude/skills symlink that points at another provider's skills directory, calling it a legacy install artifact, so the route moves the payload to .agents/skills/impeccable and relinks. A second run is a no-op, and skills-symlink is the net if a future release changes this again. The payload is gitignored like the dependency it is, which means a clone starts without it and nothing in the files can tell that it should be there. So enforcement.mjs gains a fourth signal beside hooks, CI and adapter hooks: installed with its version, or not installed with the command that fixes it. The board says the same thing in both languages. What the gates measure is now a declaration rather than an accident. checks/config.json holds one thirdParty list, each entry a path and its reason, and the gates that judge this project's own writing skip those paths: prose style, the denylist, the agent-file cap, the code-file cap, the deferral contract, zombie code, the skills registry and its count, and the document map. Every other gate still reads every line, the secret scan included. The declaration is bounded by config-invariants exactly like the exclusion lists beside it: it states its reason, it may not reach checks/ or docs/standards/, and fixtures prove both directions, because an exemption nobody can show to be bounded is a hole. Two of this repo's own gates shaped the change. code-file-cap refused to let check.mjs grow past its 500-line cap, so config-invariants moved into checks/check-config.mjs with its own suite, the same split PR #69 made for the same reason; the registry still holds 22 gates, since a gate moved rather than multiplied. And the move exposed that code-file-cap read the exclusion list itself instead of the runner's one reader, so the two could have drifted apart without anyone noticing. The spec's Node floor said 22.18, read from a summary rather than from the source; the package says 22.12. Criterion 3 named a narrower set of exempt gates than the code needs. Both are corrected here, because the code is the fact. Traces-to: SC-8
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.
What changed and why
Spec 011 is signed by the owner (2026-08-05) and set to
building. This is ticket 01, its tracer:the narrow path from "impeccable is the methodology for making design" to "every gate still
holds", run on this repo, which has a frontend of its own, rather than on a fixture.
node checks/design-method.mjs --installis the route. It reads impeccable's Node floor out ofthe package that states it, refuses before writing anything when the floor is not met, installs
the Claude build, and then repairs decision 0002: upstream deliberately deletes a
.claude/skillssymlink pointing at another provider's skills directory, so the route moves the payload to
.agents/skills/impeccableand relinks. Rerunning it is a no-op.The payload is gitignored like a dependency, so a clone starts without it and the files cannot
tell you it is missing.
enforcement.mjstherefore reports a fourth signal beside hooks, CI andadapter hooks, in both states, and the board shows it in both languages.
What the gates measure became a declaration instead of an accident.
checks/config.jsonholds onethirdPartylist, each entry a path and its reason; the gates that judge this project's ownwriting skip those paths, and every other gate, the secret scan included, still reads every line.
config-invariantsbounds the list the same way it bounds the exclusion lists next to it.Two of this repo's own gates shaped the diff:
code-file-caprefused to letcheck.mjspass its500-line cap, so
config-invariantsmoved intochecks/check-config.mjswith its own suite (theregistry still holds 22 gates: one moved, none multiplied), and that move exposed that
code-file-capread the exclusion list itself rather than the runner's one reader.Two documentation corrections ride along, both because the code is the fact: the spec's Node floor
said 22.18 where the package says 22.12, and criterion 3 named a narrower set of exempt gates than
the change actually needs.
Verified by
second run refreshes through the symlink and leaves it standing.
ls -la .claude/confirms thelink;
node checks/design-method.mjsreports impeccable 4.0.4.node checks/check.mjs: OK with the payload installed, and the enforcement line reads"hooks armed, CI armed, adapter hooks armed, design method armed". Before the declaration the
same run produced 818 findings across five gates, which is what the declaration is for.
trace, 5 stack), plus progress, links, cockpit-path, cockpit and drill.
node checks/drill.mjs --require-walkPASSED.and the new row.
git check-ignoreon six paths: the payload is ignored, and.impeccable/config.json,design.jsonandcritique/stay tracked as impeccable's README requires.links today, so leaving them out of the document map is precaution and readability (97 documents
instead of 137), not a repair. Stated as such in the ticket.
criterion 2 exercises it for real during
verifyof the whole spec.