fix: the toolkit graded an empty folder and shipped text its own linter rejects (3.5.2) - #11
Conversation
…er rejects (3.5.2) A DX audit of the toolkit itself. Four findings. - An empty directory used to return "65/100, D, release blockers present" with four CRITICAL findings and never mention that it was empty. It now refuses and exits 2. BEHAVIOR CHANGE: a pipeline aimed at a path with no files used to exit 0. Decision 008. - A directory that is not a git repository now carries a warning above the score, because .gitignore is not applied and build output can be read as source. - Ten shipped files contained em or en dashes, which check_report.py rejects in generated docs. Includes plain-english-glossary.md and all five stack reference files. The 3.5.0 sweep covered skills, commands and templates but never references/. All ten fixed, and validate-toolkit.sh now enforces the rule so it cannot return. - add-clean-code.sh --help printed "Unknown option: --help" and exited 64, while the usage text sat unprinted in a comment at the top of the same file. It now prints, on --help and on a bad flag. 92 tests.
|
Warning Review limit reached
Next review available in: 43 minutes Limit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (20)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
A developer-experience audit of the toolkit itself: install it fresh, run the CLI, break it on purpose, check every doc link. Four findings, all fixed.
1. An empty folder used to get a grade
Nothing said the folder was empty. A mistyped path produced a confident report about nothing. This is the same failure
v3.5.1shipped three fixes for: the tool claiming more than it checked.Now:
This is a behavior change. A pipeline aimed at a path with no files used to exit 0 and now exits 2. That is a fix, not a regression, but it is breaking in a patch release and both the CHANGELOG and
docs/decisions/008say so.2. A non-git directory now says so
The scan still runs, because there are real files and the findings mean something. But
git ls-filesis unavailable, so.gitignoreis not applied andnode_modulesor build output can be read as source. That caveat now sits above the score instead of nowhere. Carried on the fingerprint, so it reaches the JSON too.3. The toolkit shipped ten files its own linter rejects
check_report.py:20refuses—and–in generated documents. The toolkit shipped:—plain-english-glossary.md(the file that defines the house style) and all 5 stack reference files–The 3.5.0 entry said em dashes were "gone from every skill, command and template." True of those three directories.
references/was never swept, and that is where most of the prose lives.All ten fixed by hand, not by bulk replace: a first pass produced four comma splices and one meaning change in
cloudflare-workers.md, all corrected.validate-toolkit.shnow enforces the rule, verified by adding a dash and watching it fail:The rule was previously enforced only on documents the tool generates, never on the documents it ships.
4.
add-clean-code.sh --helpwas a dead endUnknown option: --help, exit 64. The usage text already existed as a comment at lines 5 to 14 of the same file and was never printed.--helpand-hnow print it and exit 0; an unknown flag prints it too.Test plan
./scripts/validate-toolkit.shgreen, and proven to fail on an injected dash--fail-on criticalon this repo, exit 0add-clean-code.sh --helpprints usage, exit 0plugin.jsonandmarketplace.json(x2), CHANGELOG entry writtenWhy this keeps happening, and what ends it
Each of these was a thing a machine could check on every commit, found instead by a person reading. Two of the four are now permanent gates (the dash rule in the validator, the empty-folder refusal in the test suite). That is the pattern worth generalizing in v3.6.0: a finding that becomes a gate never comes back, a finding that becomes a paragraph comes back next quarter.