rules
The Rules of Natural Language Programming
These rules govern how to write NL artifacts that Claude Code and other LLMs consume. They are enforced by
/nlpm:score(penalty-based) and referenced by/nlpm:fix(auto-repair). When writing any NL artifact, follow these rules.
Universal (all artifacts)
R01. No vague quantifiers without criteria. "appropriate", "relevant", "as needed", "sufficient", "adequate", "reasonable", "properly", "correctly", "some", "several", "various" are meaningless without specifics. Replace with measurable criteria. Penalty: -2 each, cap -20.
Bad: "Use appropriate error handling."
Good: "Return Result<T, AppError> from all API handlers. Map errors to HTTP status codes via the From<AppError> for StatusCode impl."
Mention versus use: a vague term presented as a literal token that the clause explicitly instructs a reader or tool to detect, flag, or replace is data, not an instruction, and is not counted (see the exclusion note in nlpm:scoring). Backticks alone do not qualify.
Real-world example: AgriciDaniel-claude-ads, ChromeDevTools-chrome-devtools-mcp, Graphify-Labs-graphify, Xquik-dev-x-twitter-scraper, blader-humanizer, coreyhaines31-marketingskills, earthtojake-text-to-cad, google-labs-code-stitch-skills, greensock-gsap-skills, kazukinagata-shinkoku, krodak-clickup-cli, larksuite-cli, nexu-io-open-design, prompt-security-clawsec, realrossmanngroup-no_ai_slop_writing_rules, slavingia-skills, tintinweb-pi-subagents