claude-code/rule-checklist

rule checklist Shipped

What this lens looks for

Read a Claude Code rule file across four lenses. Content quality: single responsibility — one coherent concern, not a grab-bag of unrelated instructions; every instruction concrete and actionable, never a vague directive like "handle errors appropriately"; no self-contradiction (no "always do X" then later "never do X"); well-structured markdown with headings, lists, and code blocks rather than an unstructured wall. Best practices: does not replicate native Claude capabilities (basic git, standard coding); no kitchen-sink anti-pattern — stays focused on its stated concern rather than governing everything; not a CLAUDE.md dump of project configuration. Rule-specific: a clear title/heading identifying the rule's purpose; imperative tone throughout using RFC 2119 keywords (MUST, MUST NOT, SHOULD, MAY) rather than advisory phrasing; procedural steps numbered or clearly separated in sequence; no vague directives — every instruction concrete; file references explicit with every path listed (no "read the principles" without paths); no contradictory instructions; a single coherent concern (planning, implementing, reviewing); an enforcement mechanism that verifies compliance rather than just stating "do X"; not a CLAUDE.md dump; reasonable length — complete but not so long it gets ignored, under ~300 lines; a "MUST NOT" section stating anti-patterns and common mistakes; deterministic with no ambiguity on critical steps so behavior is consistent across sessions; filename lowercase kebab-case ^[a-z][a-z0-9-]*\.md$ (UPPERCASE stems reserved for identity files like SKILL.md and CLAUDE.md). Optimization — since .claude/rules/ files inject into the system prompt on every turn and cost context on every message, tool call, and response: rule file under 200 lines / ~8KB (move larger content to on-demand skills or external refs); no content duplicated from another rule in the same directory (overlap is processed twice per turn); globs frontmatter present when the rule applies only to specific file patterns, to prevent loading on unrelated work; each MUST NOT item unique and not already expressed imperatively in the body; external refs with a high content-to-frontmatter ratio (suggest inlining when frontmatter exceeds 50% of a referenced file); no more than 5 unconditional external reads mandated before work begins.

What its verifier checks

The rule addresses a single coherent concern; every instruction is concrete and actionable with no vague directives; no self-contradiction anywhere; markdown is well-structured; native Claude capabilities are not re-taught; no kitchen-sink scope; content is not a CLAUDE.md dump; a clear title/heading identifies the purpose; imperative RFC 2119 keywords are used throughout; procedural steps are numbered or clearly separated; every referenced file path is listed explicitly; an enforcement/verification mechanism is present; a "MUST NOT" section is present; the rule is deterministic with no ambiguity on critical steps; length is reasonable (under ~300 lines); filename is lowercase kebab-case with no reserved UPPERCASE stem; the file is under 200 lines / ~8KB; no content is duplicated from another rule in the directory; globs frontmatter is present when the rule is path-scoped; each MUST NOT item is unique and not already stated imperatively; externally referenced files have a high content-to-frontmatter ratio; no more than 5 unconditional external reads are mandated.