60f39cdcbb
~/.claude/CLAUDE.md was in no git repo despite heavy editing, and ~/.codex/AGENTS.md was a hand-synced duplicate of it. Both now live in entry/ and import the shared fragments; RTK.md moves to claude-md/ so Codex stops carrying its own copy. Claude's imports are ~/-anchored so they resolve through the symlink. Also drops kt from the comment rule scope.
33 lines
1.1 KiB
Markdown
33 lines
1.1 KiB
Markdown
---
|
|
paths:
|
|
- "**/*.{ts,tsx,js,jsx,mjs,cjs,py,rs,go,sol,sh,bash,zsh,rb,lua,zig,nix,ex,yaml,yml,toml}"
|
|
---
|
|
|
|
## Code comments
|
|
|
|
Budget: 1-3 lines. Write one only when an agent with the repo and thirty
|
|
seconds of grep would still get it wrong. That means one of:
|
|
|
|
- something that breaks silently — no test catches it, or a caller can
|
|
break it from outside
|
|
- a fact not in the repo (deployed bytecode, chain quirk, library bug)
|
|
- a unit or epoch the type cannot carry (wei, ms, 18-dp)
|
|
|
|
Good:
|
|
|
|
> `// MUST read lastGoodPrice before fetchPrice — same eth_call state.`
|
|
|
|
Everything else: delete. Design rationale and rejected alternatives go in
|
|
`docs/`; leave a path. History is in git. No emphasis; ALL-CAPS only for
|
|
MUST / NEVER.
|
|
|
|
Deleting a comment is cheap and reversible. When unsure, delete.
|
|
|
|
### Doc comments are not this
|
|
|
|
Rustdoc `///`, JSDoc `/** */`, Solidity NatSpec `@notice`/`@dev`, Python
|
|
docstrings: different genre, budget does not apply. They document a surface
|
|
for callers who cannot see the body, and tooling reads them — NatSpec ends
|
|
up in contract metadata. Follow the language's convention, and never strip
|
|
them to satisfy the budget above.
|