`docs/principles.md` is a numbered list of standing principles with no imperative verbs or sequence words. It is not a procedure, so no skill is needed (issue #192 F15, a false-defect grader like F4). Must not match: a numbered item of the report's changes (`1.`, `**1.**` or a numbered heading such as `## 2. Context`) that names the principles and proposes a skill (skill, slash command, a `.claude/skills/` or `.claude/commands/` path, `SKILL.md`, a `/principles` command) in a clause with no n...
Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
SSkills DirectorySkills Directory
Is that skill safe to install?
Are you the author of Graders?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/acoz-labs-graders-b096afc7)
---
type: regex
pattern: '(?:^(?![ \t]*(?:#{1,6}[ \t]|\*\*[^\n*]+\*\*:?[ \t]*(?=\n|(?![\s\S])))[^\n]*(?:\balso[ \t]+worth\b|\bdeclin\w*|\bnot[ \t]+(?:recommended|planned|changing|doing|worth)\b|\boptional\w*|\bskip\w*|\bleft[ \t]+out\b|\bout[ \t]+of[ \t]+(?:scope|the[ \t]+plan)\b|\balready[ \t]+good\b|\bwhat[\x27’]s[ \t]+(?:good|fine|working)\b|\bno[ \t]+changes?\b|\bconsidered\b|\bnice[ -]to[ -]have\b))(?:(?!\n[ \t]*(?:#{1,6}[ \t]|\*\*[^\n*]+\*\*:?[ \t]*(?=\n|(?![\s\S]))))[\s\S])*?|(?=\n[ \t]*(?:#{1,6}[ \t]|\*\*[^\n*]+\*\*:?[ \t]*(?=\n|(?![\s\S]))))(?!\n[ \t]*(?:#{1,6}[ \t]|\*\*[^\n*]+\*\*:?[ \t]*(?=\n|(?![\s\S])))[^\n]*(?:\balso[ \t]+worth\b|\bdeclin\w*|\bnot[ \t]+(?:recommended|planned|changing|doing|worth)\b|\boptional\w*|\bskip\w*|\bleft[ \t]+out\b|\bout[ \t]+of[ \t]+(?:scope|the[ \t]+plan)\b|\balready[ \t]+good\b|\bwhat[\x27’]s[ \t]+(?:good|fine|working)\b|\bno[ \t]+changes?\b|\bconsidered\b|\bnice[ -]to[ -]have\b))(?:[\s\S](?:(?!\n[ \t]*(?:#{1,6}[ \t]|\*\*[^\n*]+\*\*:?[ \t]*(?=\n|(?![\s\S]))))[\s\S])*?)?)(?:^|\n)[ \t]{0,3}(?:(?:\*\*)?[0-9]+[.)](?:\*\*)?[ \t]+(?!(?:\*\*)?(?:[^\n.!?*]|[.!?](?=\S))*?(?:\b(?:no|not|never|without|nor|none|nothing|neither|don[\x27’]t|doesn[\x27’]t|didn[\x27’]t|wouldn[\x27’]t|haven[\x27’]t|hasn[\x27’]t|isn[\x27’]t|aren[\x27’]t|wasn[\x27’]t|won[\x27’]t|needn[\x27’]t|shouldn[\x27’]t|cannot|can[\x27’]t|skip|avoid)\b|\boptional\w*|\bnice[ -]to[ -]have\b|\bonly[ \t]+if\b|\bif[ \t]+(?:you|needed|wanted|it)\b|\bmaybe\b|\bkeep\b|\bleave\b|\balso[ \t]+worth\b|\bdeclin\w*))(?=(?:[^\n]|\n(?=(?:[ \t]*\n)*(?: {2,}|\t)(?![ \t]*[0-9]+[.)][ \t])\S))*?principles)(?=(?:(?:[^\n]|\n(?=(?:[ \t]*\n)*(?: {2,}|\t)(?![ \t]*[0-9]+[.)][ \t])\S))*?(?:[.!?;](?=[ \t*_)"\x60]|\n|(?![\s\S]))|[ \t]+(?:so|because|since|but|then|while|whereas|which|though|although)[ \t]+|\n(?=(?:[ \t]*\n)*(?: {2,}|\t)(?![ \t]*[0-9]+[.)][ \t])\S)))?(?![ \t]*(?:[-*>][ \t]+)?(?:\*\*|_)?Sources?\b)(?!(?:(?"\x60]|\n|(?![\s\S]))|[ \t]+(?:so|because|since|but|then|while|whereas|which|though|although)[ \t]+|\n)(?:[^\n]|\n(?=(?:[ \t]*\n)*(?: {2,}|\t)(?![ \t]*[0-9]+[.)][ \t])\S)))*?(?:\b(?:no|not|never|without|nor|none|nothing|neither|don[\x27’]t|doesn[\x27’]t|didn[\x27’]t|wouldn[\x27’]t|haven[\x27’]t|hasn[\x27’]t|isn[\x27’]t|aren[\x27’]t|wasn[\x27’]t|won[\x27’]t|needn[\x27’]t|shouldn[\x27’]t|cannot|can[\x27’]t|skip|avoid)\b|\brather[ \t]+than\b|\binstead[ \t]+of\b|\b(?:overkill|unnecessar\w*|unneeded|needless\w*|pointless|redundant|prematur\w*|declin\w*|wrong|keep|leave|fine|already)\b|\b(?:poor|bad)[ \t]+fit\b|\bskills[ \t]+(?:are|suit|fit|work|belong|hold|cover|should)\b))(?!(?:(?"\x60]|\n|(?![\s\S]))|[ \t]+(?:so|because|since|but|then|while|whereas|which|though|although)[ \t]+|\n)(?:[^\n]|\n(?=(?:[ \t]*\n)*(?: {2,}|\t)(?![ \t]*[0-9]+[.)][ \t])\S)))*?\?(?=[ \t*_"\x60)]|\n|(?![\s\S])))(?:(?"\x60]|\n|(?![\s\S]))|[ \t]+(?:so|because|since|but|then|while|whereas|which|though|although)[ \t]+|\n)(?:[^\n]|\n(?=(?:[ \t]*\n)*(?: {2,}|\t)(?![ \t]*[0-9]+[.)][ \t])\S)))*?(?:\bskills?\b|\bslash[ \t]+commands?\b|\.claude/(?:skills|commands)/|\bSKILL\.md\b|(?:^|[ \t\x60(])/principles\b))|#{1,6}[ \t]+[0-9]+[.)]?[ \t]+(?!(?:\*\*)?(?:[^\n.!?*]|[.!?](?=\S))*?(?:\b(?:no|not|never|without|nor|none|nothing|neither|don[\x27’]t|doesn[\x27’]t|didn[\x27’]t|wouldn[\x27’]t|haven[\x27’]t|hasn[\x27’]t|isn[\x27’]t|aren[\x27’]t|wasn[\x27’]t|won[\x27’]t|needn[\x27’]t|shouldn[\x27’]t|cannot|can[\x27’]t|skip|avoid)\b|\boptional\w*|\bnice[ -]to[ -]have\b|\bonly[ \t]+if\b|\bif[ \t]+(?:you|needed|wanted|it)\b|\bmaybe\b|\bkeep\b|\bleave\b|\balso[ \t]+worth\b|\bdeclin\w*))(?=(?:[^\n]|\n(?![ \t]*(?:#{1,6}[ \t]|\*\*[^\n*]+\*\*:?[ \t]*(?=\n|(?![\s\S])))))*?principles)(?=(?:(?:[^\n]|\n(?![ \t]*(?:#{1,6}[ \t]|\*\*[^\n*]+\*\*:?[ \t]*(?=\n|(?![\s\S])))))*?(?:[.!?;](?=[ \t*_)"\x60]|\n|(?![\s\S]))|[ \t]+(?:so|because|since|but|then|while|whereas|which|though|although)[ \t]+|\n(?![ \t]*(?:#{1,6}[ \t]|\*\*[^\n*]+\*\*:?[ \t]*(?=\n|(?![\s\S]))))))?(?![ \t]*(?:[-*>][ \t]+)?(?:\*\*|_)?Sources?\b)(?!(?:(?"\x60]|\n|(?![\s\S]))|[ \t]+(?:so|because|since|but|then|while|whereas|which|though|although)[ \t]+|\n)(?:[^\n]|\n(?![ \t]*(?:#{1,6}[ \t]|\*\*[^\n*]+\*\*:?[ \t]*(?=\n|(?![\s\S]))))))*?(?:\b(?:no|not|never|without|nor|none|nothing|neither|don[\x27’]t|doesn[\x27’]t|didn[\x27’]t|wouldn[\x27’]t|haven[\x27’]t|hasn[\x27’]t|isn[\x27’]t|aren[\x27’]t|wasn[\x27’]t|won[\x27’]t|needn[\x27’]t|shouldn[\x27’]t|cannot|can[\x27’]t|skip|avoid)\b|\brather[ \t]+than\b|\binstead[ \t]+of\b|\b(?:overkill|unnecessar\w*|unneeded|needless\w*|pointless|redundant|prematur\w*|declin\w*|wrong|keep|leave|fine|already)\b|\b(?:poor|bad)[ \t]+fit\b|\bskills[ \t]+(?:are|suit|fit|work|belong|hold|cover|should)\b))(?!(?:(?"\x60]|\n|(?![\s\S]))|[ \t]+(?:so|because|since|but|then|while|whereas|which|though|although)[ \t]+|\n)(?:[^\n]|\n(?![ \t]*(?:#{1,6}[ \t]|\*\*[^\n*]+\*\*:?[ \t]*(?=\n|(?![\s\S]))))))*?\?(?=[ \t*_"\x60)]|\n|(?![\s\S])))(?:(?"\x60]|\n|(?![\s\S]))|[ \t]+(?:so|because|since|but|then|while|whereas|which|though|although)[ \t]+|\n)(?:[^\n]|\n(?![ \t]*(?:#{1,6}[ \t]|\*\*[^\n*]+\*\*:?[ \t]*(?=\n|(?![\s\S]))))))*?(?:\bskills?\b|\bslash[ \t]+commands?\b|\.claude/(?:skills|commands)/|\bSKILL\.md\b|(?:^|[ \t\x60(])/principles\b)))'
flags: i
match: not_contains
weight: 1
---
`docs/principles.md` is a numbered list of standing principles with no imperative verbs or sequence words. It is not a procedure, so no skill is needed (issue #192 F15, a false-defect grader like F4).
Must not match: a numbered item of the report's changes (`1.`, `**1.**` or a numbered heading such as `## 2. Context`) that names the principles and proposes a skill (skill, slash command, a `.claude/skills/` or `.claude/commands/` path, `SKILL.md`, a `/principles` command) in a clause with no negation or decline wording (no, not, never, nothing, n't, avoid, skip, rather than, instead of, overkill, unnecessary, pointless, redundant, premature, declined, wrong, poor/bad fit, keep, leave, fine, already, "skills are/suit/fit … for") and that isn't a question. A clause ends at `.` `;` `!` `?` before a space, a line break, or so, because, since, but, then, while, whereas, which, though, although. An item's text is its first line and the indented lines under it (a numbered heading's runs to the next heading). Never counted: bullets and prose; items under a heading or bold line that sets them aside (Also worth knowing, Declined, Not recommended/planned, Optional, Skipped, Left out, Out of scope, Already good, What's good/fine, No changes, Considered, Nice to have); items whose title (to its first sentence end or the end of its bold text) is optional or a decline (optional, nice to have, only if, if you/needed, maybe, keep, leave, a negation, also worth, declined); and a `Source:` line (review round 4, O1).
Script-graded (case-insensitive). The parts, and the controls each must pass and fail, are in `tests/test_claudit_fixture_graders.py`; rebuild with `python3 tests/test_claudit_fixture_graders.py --write`. A line never counts when it is a `Source:` citation line.