← ClaudeAtlas

redundancy-check-before-shiplisted

Use before committing an addition to any prose-rule file — CLAUDE.md, AGENTS.md, a docs/ page, a README, or a PR template. Fires when a diff ADDS conventions, rules or procedures in prose. Auto-trigger after writing such an addition and before `git commit`, and when the user says a file is "too big", "has duplicates", or asks whether a change "is really necessary". Skip for code, tests, config values, pure deletions, rewording that adds no rule, and new files with no sibling docs. For the CLAUDE.md-vs-sibling file-structure rewrite specifically, defer to `claude-md-pointer-check`; this skill covers rule-level dedup across any prose-rule file.
damson/hard-won-skills · ★ 1 · Code & Development · score 67
Install: claude install-skill damson/hard-won-skills
# Redundancy check before ship Prose rules duplicate silently: the author recalls writing the sentence, not that the repo already states it elsewhere. This skill greps each added rule against the docs a reader already has loaded and reports what is genuinely net-new. ## Procedure 1. **Extract the rules the diff adds.** One *claim* per line, not one bullet per line. Split on every imperative verb and on `and` / `but` / `;` — a bullet reading "start from the template, never free-hand, and tick nothing you did not verify" is three rules, and each needs its own lookup. 2. **Grep for each rule's subject** across the files a reader might already have loaded: sibling pages in the same directory, the repo's `CLAUDE.md` / `AGENTS.md`, the PR template, `CONTRIBUTING.md`. Search the *subject*, not your phrasing — you will have reworded it. Derive the subject mechanically: take the 1–2 rarest content nouns in the rule (command names, file names, flag names, feature nouns) and OR them. "Start from the PR template, never free-hand" → `template|free.?hand`, not `always start from`. ```bash grep -rniE '<subject>' --include='*.md' . | grep -v node_modules ``` 3. **For each already-stated rule, pick exactly one home.** Either keep the existing statement and drop the addition, or replace the existing one with a pointer to the new home. Prefer the location closest to the moment of use. The one exception is the entry-point/reference split — a ru