Intent in-standards
Coding standards: re-read rules, usage rules, enforce Highlander and PFIC
install
source · Clone the upstream repo
git clone https://github.com/matthewsinclair/intent
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/matthewsinclair/intent "$T" && mkdir -p ~/.claude/skills && cp -r "$T/intent/plugins/claude/skills/in-standards" ~/.claude/skills/matthewsinclair-intent-in-standards && rm -rf "$T"
manifest:
intent/plugins/claude/skills/in-standards/SKILL.mdsource content
Coding Standards
Load coding discipline into context. Invoke at the start of coding or after any context reset.
Procedure
1. Re-read project rules
(project rules)CLAUDE.md
(module registry)intent/llm/MODULES.md
(code placement)intent/llm/DECISION_TREE.md
2. Re-read relevant usage rules
Check for and read any usage rules files:
deps/ash/usage-rules.mddeps/ash_postgres/usage-rules.mddeps/phoenix_live_view/usage-rules.md- Any other
ordeps/*/usage-rules.md
relevant to the current taskdeps/*/AGENTS.md
3. Enforce the Highlander Rule
- No duplicated code paths, ever
- Before creating a module, check MODULES.md
- Before adding a function, check if one already exists
- If tempted to copy-paste, refactor to share
4. Enforce Thin Coordinators
- CLI commands: parse args, call service, format output
- Controllers: parse params, call service, render
- LiveViews: handle events by delegating to services
- Oban workers: call service in perform/1
- GenServers: manage state, delegate logic to services
5. Enforce PFIC
Pure-Functional Idiomatic Code:
- Pattern matching over conditionals
- Tagged tuples (
/{:ok, _}
) for fallible operations{:error, _} - Pipe chains for data transformations
on all callbacks@impl true- Descriptive function names (verbs for actions, nouns for getters)
6. Formatting standards
- All markdown tables must be column-aligned
- No non-printing characters (proper emojis and ASCII only)
- No em dashes in skill files
Red Flags
| Rationalization | Reality |
|---|---|
| "This helper is only used once, it's OK" | Check MODULES.md. Someone else may have built it. |
| "The coordinator needs this logic inline" | If it's more than parse/call/format, extract it. |
| "Pattern matching is overkill here" | It's never overkill. It's the Elixir way. |