Check language style guides before writing unfamiliar-language code
Check language style guides before writing
The rule
Before writing more than ~20 lines of code in a language you haven't already touched this session, fetch the relevant section of awesome-guidelines.
Precedence
- Repo's own style guide (
.editorconfig,STYLE.md,CONTRIBUTING.md, houseAGENTS.md) wins first — per [[match-surrounding-style]]. - Fleet convention from the oriz
knowledge/decisions/stack/files (e.g.javascript-typescript.md,python.md) wins second. - Community style guide from
awesome-guidelinesfor the language — third. - Language-default (fmt tool's defaults) — fourth.
When to fetch
- Writing >20 LOC in a language new to this session
- Writing library code where public API needs to feel idiomatic to the ecosystem
- Reviewing a PR where the reviewer expectation is community style
- Choosing between two valid patterns (e.g. Python type-hint styles)
When to skip
- Repo already has
STYLE.md/CONTRIBUTING.md/ linter config — those win - <20 LOC one-off fix
- Language you've already written this session (already primed)
- Docstring / comment prose only
- Autoformatter handles it (biome, ruff, prettier, gofmt — see [[auto-lint-on-edit-2026-07-04]])
How
# Once per session per language:
curl -fsSL https://raw.githubusercontent.com/Kristories/awesome-guidelines/main/README.md \
| awk "/^### $LANGUAGE/,/^###/" | head -50
Or via the fetch MCP tool with the raw README URL, then Ctrl-F the language name in the returned markdown.
Anti-patterns
- ❌ Skipping and hoping autoformatter catches everything — autoformatters format, they don't teach naming, project layout, error-handling patterns
- ❌ Fetching the whole 600-line README when you only need one language's section
- ❌ Copy-pasting the guide into knowledge/ — see [[reference/awesome-guidelines]] on why zero-copy
- ❌ Ignoring
awesome-guidelinesand going straight to LLM-memory conventions — LLM memory is stale on 3+ languages you'd care about
Cross-refs
- [[reference/awesome-guidelines]] — the pointer file
- [[match-surrounding-style]] — repo style always wins
- [[auto-lint-on-edit-2026-07-04]] — the formatter chain that handles mechanical formatting