Install the antislop skill, and fix everything its audit found - #40
Merged
Merged
Conversation
Vendors the antislop core plus the two skills this repository has a surface for, and writes the pointer block that loads them each session. - .claude/skills/antislop, antislop-code, antislop-copywriting, installed through the project's own installer so the layout and the pointer block match what `npx antislop-ai` writes and a later run replaces rather than duplicates them. - CLAUDE.md and AGENTS.md carry the pointer between the antislop markers, appended after the existing rules rather than woven into them. The two files are kept byte-identical, as they already were. - The UI, accessibility, and mobile-layout skills are left out: this is a library and a CLI with no interface for those rules to govern. - anti-slop/audit-001-2026-09-04.md records the AFTER-mode findings, the rules that do not apply here and why, and the checks that came back clean. test/support/docs.ts already scopes documentation discovery away from .claude/skills, so the vendored SKILL.md files stay out of the snippet compile and the ADR scan. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FSSsWU1rVMekDbVPWLrSjb
Findings 1 and 2, R-02 (Hard Gate). The em dash is forbidden in any text, and the copywriting skill catches the spaced double hyphen written as the same construction. 199 of the first and 104 of the second are gone from the prose, the documentation, and the code comments, each replaced by what the sentence actually wanted: a period where two sentences were wearing one, a colon where an explanation follows, a comma for a tight aside, parentheses for an aside that already contains commas. Four double hyphens remain, all of them the npm argument separator inside a code span. Two of the rewrites are not comments: - packages/grounding/src/scan.ts emits its banner into generated source, so the character was reaching a consumer's repository. Its approved snapshot moves with it. - The model.service error in src/providers/ax.ts carried one in its example tail. Nothing asserts past the prefix, and no snapshot holds the message. Finding 3, R-31 and antislop-code. Eleven banner comments built from runs of hyphens. In conformance.ts the doc comment under each one already named its subject, so the banner goes; in ax.test.ts and scenario.ts the label carries real structure and only the decoration goes. Finding 4, antislop-copywriting. One list item in docs/dx-review.md opened with a bolded header restating the sentence after it, in a list whose other items are plain prose. Meaning is unchanged throughout; the edits are punctuation and, where a sentence needed re-splitting to lose its dash, clause order. npm run check passes: 835 tests across 53 files, coverage thresholds held, build clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FSSsWU1rVMekDbVPWLrSjb
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Team Run ID: 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 |
Round 2 re-scanned the repository after the fixes and found no new rule violations, only two wrapping warts the rewrites had left: an orphaned three-word line in README.md and a 92-column line in the harness README, both in files that wrap at about 78. Both rewrapped here. Parenthesis balance was compared against the pre-audit tree file by file and is unchanged everywhere, so no rewrite dropped a bracket. Round 3 came back clean on every check, so the loop ends. The audit file now carries the follow-up report and the Delivery Gate: PASS on every applicable item, with the visual rules recorded as not applicable and the reason stated rather than passed by default. npm run check: 835 tests across 53 files, coverage held, build clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FSSsWU1rVMekDbVPWLrSjb
…aning A read of the whole diff before merging caught two defects in the audit's own work, both of the kind it exists to catch. The counts in findings 1 and 2 were grep line counts presented as occurrence counts, and a file carrying an embedded NUL byte (test/support/sources.ts, a fuzz corpus) was skipped as binary. Measured properly against the pre-audit tree: 199 em dashes across 44 files, and 122 spaced double hyphens across 58, of which 4 are the npm argument separator and 118 are punctuation. Reporting a number that was not measured the way it was described is the R-17 and C-5 failure the audit is supposed to flag in other people's prose. The README sentence describing TrainingSettings.onEvent enumerated the whole of TrainingEvent, a closed union of six variants. Replacing its dash with "including" turned an exhaustive list into a partial one. It now reads "That is capture and store failures, and the full evolution lifecycle", which keeps the dash out and the enumeration closed. Two checks backed the rest of the review, and are recorded in the audit: every connective the rewrites introduced was diffed against the line it replaced, and only that one "including" was new; and every changed .ts file was reprinted through the TypeScript printer with comments stripped and compared against the pre-audit tree. 75 files compared, 3 differ, and those 3 are the documented string changes. Nothing else in the diff touches executable code. npm run check: 835 tests across 53 files, coverage held, build clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FSSsWU1rVMekDbVPWLrSjb
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.
Installs antislop as a project skill, runs its AFTER-mode audit over the repository, and fixes every finding.
Install
Vendored through the project's own installer (
cli/lib/install.mjsfrom the antislop repo, v3.2.3) rather than by hand, so the folder layout and the pointer block match whatnpx antislop-aiwrites and a later run replaces the block instead of adding a second one. The threeSKILL.mdfiles are byte-identical to upstream..claude/skills/antislop/,antislop-code/,antislop-copywriting/antislop:start/antislop:endmarkers at the end ofCLAUDE.mdandAGENTS.md, appended after the existing rules rather than woven into them. The two files stay byte-identical, as they already were.The UI, accessibility, and mobile-layout skills are left out. This is a library and a CLI with no interface for those rules to govern, and installing them would load about 600 lines of rules that can never apply.
test/support/docs.tsalready scopes documentation discovery away from.claude/skills/, so the vendoredSKILL.mdfiles stay out of the snippet compile and the ADR scan. Nothing in CI had to change.Audit
anti-slop/audit-001-2026-09-04.mdrecords the findings, the rules that do not apply here and why, the checks that came back clean, the follow-up report, and the Delivery Gate. Four findings, all fixed:src/,packages/*/src/,test/, andexamples/.Each dash was replaced by what the sentence actually wanted, following R-02's own order of preference: a period where two sentences were wearing one, a colon where an explanation follows, a comma for a tight aside, parentheses for an aside that already contains commas.
Two of the rewrites are not comments and are worth a reviewer's eye:
packages/grounding/src/scan.tsemits its banner into generated source, so the character was reaching a consumer's repository. Its approved snapshot moves with it.model.serviceerror insrc/providers/ax.tscarried one in its example tail. Nothing asserts past the prefix, and no snapshot holds the message.The audit also records what was scanned and found clean, so the passes are evidenced rather than assumed: no buzzwords from R-16 or the Empty AI Vocabulary list, no unsourced statistics or fabricated claims, no decorative emoji, no end markers, no vague TODOs (the repository has no
TODOorFIXMEat all), and none of the copywriting rhythm tells.The loop
Four rounds.
README.mdand a 92-column line in the harness README, both in files that wrap at about 78. Both rewrapped.grepline counts presented as occurrence counts, with one file skipped as binary because a fuzz corpus embeds a NUL byte; they are now occurrence counts measured against the pre-audit tree. And one rewrite inREADME.mdhad turned an exhaustive list into a partial one by replacing a dash with "including", whereTrainingEventis a closed union of six variants; it now reads "That is capture and store failures, and the full evolution lifecycle".Verification
npm run checkpasses locally: 835 tests across 53 files, coverage thresholds held, build clean. The Strykermutatelist is untouched by anything but comments.Two checks bound the blast radius of the rewrites, both recorded in the audit:
includingabove was new..tsfile was reprinted through the TypeScript printer with comments stripped and compared against the pre-audit tree. 75 files compared, 3 differ, and those 3 are the documented string changes. Nothing else in this diff touches executable code.🤖 Generated with Claude Code
https://claude.ai/code/session_01FSSsWU1rVMekDbVPWLrSjb