Two files, one set of rules
Every scaffolded project contains aCLAUDE.md and an AGENTS.md with identical
content, written together so they cannot drift. AGENTS.md is the vendor-neutral name
other tools look for. Both carry the full rules rather than one linking to the other,
because an assistant that has to follow a link often does not.
A .claude/settings.json sits alongside them, pre-approving the read-only commands an
assistant needs.
These files are a starting point. Add your own domain rules and preferences as the app
grows.
Rules an assistant can verify
Conventions are only useful if they can be checked. These four commands let an assistant confirm its own work instead of guessing.feather check
Are the conventions being followed? Reports a file, a line and a remedy for each
problem.
feather components
What arguments does this macro take? Read from the macros themselves, so it stays
accurate as they change.
feather routes
What is actually registered?
feather test
Does it still work?
Why the conventions are strict
feather check enforces the rules in CLAUDE.md and exits non-zero on
any error, so it works as a pre-commit hook or a CI step.
Exceptions are recorded rather than hidden. A deliberately public route carries a
# feather: public comment in its module. When a rule is wrong about a specific line, an
inline marker silences it for that line and asks for the reason. A rule with no way to
say “not here” is one people turn off entirely.