architecture-conventions
ARCHITECTURE.md: the system as it stands, in the present tense.
Skill by leroyguillaume
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/leroyguillaume-architecture-conventions
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: frontend, devops, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/architecture-conventions
What's inside
- Skill name
architecture-conventions- Description
- ARCHITECTURE.md: the system as it stands, in the present tense. TRIGGER when: creating or editing `ARCHITECTURE.md`; a *why* paragraph lands in the README; adding a component, datastore, external dependency or invariant; user asks how the system fits together or where a trade-off goes. SKIP when: install/run instructions (`readme-conventions`), or dev setup, pre-commit or CI (`contributing-conventions`).
- License
- MIT
- Instructions
- 163 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# ARCHITECTURE conventions
`ARCHITECTURE.md` answers **"why is it built like this, and how do the pieces
fit together?"** — for someone who is about to change the code and needs the
mental model first.
It is the *why* half of the split with the README (see `readme-conventions`);
the README keeps the commands. **Always in English.**
## The one rule that shapes everything: present tense only
**`ARCHITECTURE.md` describes the system as it is today. Nothing else.**
A reader must be able to trust every sentence as a statement about the current
code, without checking a date or wondering whether a paragraph is stale
folklore. The moment history creeps in, the file becomes an archaeology
exercise: the reader has to reconstruct which layer is still true.
So, never write:
- **past changes** — "the cache was moved to Redis", "the operator used to
reconcile on a timer", "since v2.3 the API is versioned"
- **migration or bootstrap history** — how the cluster was first created, the
order the tables were backfilled in, what the old schema looked like
- **a changelog or release notes** in any form, dated sections, "recent
changes", "what's new"
- **a dated / superseded decision log** (ADR-style `Status: superseded by
ADR-0007`). ADRs are how this repository records decisions, and they live
one per file under `docs/adr/` with their own lifecycle — never inside this
file. See `adr-conventions`
- **references to the change that introduced something** — PR numbers, commit
hashes, ticket IDs as narrative
**Git already stores all of that**, with more precision and no maintenance
cost. Prose duplicating the log is prose that rots.
What git does *not* store is why a decision was taken over the alternatives on
the table that day — and that is what `docs/adr/` is for. The two files are
complementary: history is banned here precisely because the ADRs hold it. A
decision that **changes the architecture** lands in both, in one change — a new
ADR, and this file rewritten to describe the new state. Linking an ADR from
here is fine; narrating the change is not. See `adr-conventions`.
Most decisions never reach that bar, and get no ADR at all — the ADR gate is
deliberately narrow (`adr-conventions`). **Their reasoning still belongs here**,
as standing rationale in the present tense: a chosen default, a file format, an
ergonomics call, a deliberate deviation from a convention. Say what the design
*is* and what the alternative could not do, and the fact that no ADR exists
costs nothing. Dropping the reasoning because it had nowhere else to go is how
a decision gets silently reversed a year later.
### The subtle distinction: standing rationale is not history
A rejected alternative is fair game **when the reasoning still holds today**,
because that is what stops the next person re-litigating it. Phrase it as a
present-tense property of the design, not as an event:
- ✅ "State lives in SQLite rather than PostgreSQL: the workload is
single-writer and the deployment must run without an external database."
- ❌ "We migrated from PostgreSQL to SQLite in early 2025 because ops was
tired of managing it."
Same fact, same usefulness — the first one is still true in three years, the
second one is a story about people who have left.
### When the architecture changes
**Rewrite the affected section so it describes the new state.** Do not append
a note, do not leave the old paragraph with a strikethrough, do not add a
"previously" clause. The diff of `ARCHITECTURE.md` *is* the history — that's
precisely why the file's contents don't need to be.
## What goes in
Adapt the order to the project; skip a section that has nothing real to say
rather than filling it with boilerplate.
```markdown
# Architecture
## Overview
## Components
## Data flow
## State and persistence
## Design decisions
## Invariants and constraints
## Limitations
```
- **Overview** — what the system is, in one paragraph, plus a diagram. Enough
for a reader to place every later section.
- **Components** — one short block per component: its single responsibility,
what it owns, what it explicitly does *not* do, and how it talks to its
neighbours (protocol, sync/async, direction). Name them exactly as the
directories and services are named in the repo, so the mapping to code is
mechanical.
- **Data flow** — walk the two or three paths that matter end to end: the main
request, the background/reconcile loop, the failure path. Say where
retries happen, where the boundaries are transactional, and what is
idempotent.
- **State and persistence** — where state lives, who owns each store, what the
key entities are and how they relate. Schema *shape* and ownership, not a
column-by-column dump the migrations already define.
- **Design decisions** — the choices a newcomer would otherwise question, each
with its trade-off: what is gained, what is given up, and what the
alternative could not do. A few paragraphs, present tense (see above).
Include the tooling choices only when they shape the design.
- **Invariants and constraints** — what must hold for the system to be correct
("a reconcile handler never raises a permanent error", "IDs are ULIDs so
they sort by creation"), and the constraints imposed from outside: org
policy, platform limits, quotas, compliance rules. These are the sentences
that save an afternoon; make them explicit and unmissable.
- **Limitations** — what the design does not handle, and what would have to
change to lift it. Present tense: a limitation is a property of the
system, not a promise about the future. No roadmap, no dates.
## What stays out
- **The CI.** Pipelines, workflows, runners, caching strategy, releaseFrom leroyguillaume/claude, MIT.
More from leroyguillaume/claude
- 0.624score
adr-conventions
leroyguillaume
Architecture Decision Records in `docs/adr/`.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
api-conventions
leroyguillaume
HTTP/RPC API payloads in any language: DTOs, JSON casing, pagination, OpenAPI docs.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
argocd-conventions
leroyguillaume
Argo CD objects in any GitOps repository.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
ci-conventions
leroyguillaume
Platform-agnostic CI pipelines: quality gate, Trivy scans, path filters, caching, releases.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
contributing-conventions
leroyguillaume
CONTRIBUTING.md: dev setup, tests, pre-commit and CI.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
dependency-update-conventions
leroyguillaume
Dependabot and Renovate configuration and their PRs.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
diagram-conventions
leroyguillaume
Diagrams in committed files: format and diagram type.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
docker-conventions
leroyguillaume
Dockerfiles: base images, multi-stage builds, non-root USER, hadolint and Trivy.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
documentation-conventions
leroyguillaume
Docs a human can maintain: one home per fact, links not copies.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
frontend-conventions
leroyguillaume
Frontend code: TypeScript, React, Biome, mobile-first.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
github-actions-conventions
leroyguillaume
GitHub Actions mechanics: workflows, pinned actions, SARIF, release notes, Releases, Pages.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
github-issue-conventions
leroyguillaume
Where remaining work goes on a GitHub repo: an issue via `gh`.
SkillAFreshness: A★ 7Claude Code +9
Signals
- Stars
- 7
- Forks
- 3
- Open issues
- 0
- Last commit (this folder)
- Oct 2, 2026 (26 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/leroyguillaume/claude
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from leroyguillaume
- 0.624score
api-conventions
leroyguillaume
HTTP/RPC API payloads in any language: DTOs, JSON casing, pagination, OpenAPI docs.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
argocd-conventions
leroyguillaume
Argo CD objects in any GitOps repository.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
ci-conventions
leroyguillaume
Platform-agnostic CI pipelines: quality gate, Trivy scans, path filters, caching, releases.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
contributing-conventions
leroyguillaume
CONTRIBUTING.md: dev setup, tests, pre-commit and CI.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
dependency-update-conventions
leroyguillaume
Dependabot and Renovate configuration and their PRs.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
adr-conventions
leroyguillaume
Architecture Decision Records in `docs/adr/`.
SkillAFreshness: A★ 7Claude Code +9
Cite this page
architecture-conventions skill. Agent Mart. https://agentmart.dev/skills/leroyguillaume-architecture-conventions (last updated 2026-10-24)