CLAUDE.md · git:20261021.df58c20 · 2026-10-21 · sha256 f7ef44e3b821ee50

CLAUDE.md git:20261021.df58c20A

Immutable. This exact content never changes and is served at /api/v1/blob/f7ef44e3b821ee50.

<!-- ORIENT:START -->
## Project docs — read on demand, never import

- `docs/STATE.md` — what's built, in progress, blocked. Read this first when picking up work.
- `docs/decisions/` — one file per architectural decision. Read the relevant one before changing that area.
- `docs/architecture.md` — entry points and module boundaries. Read before cross-module work.

## Workflow

- Before reporting a task complete: update `docs/STATE.md`, and if an architectural decision was made with no ADR recorded, offer to record it.
- When a real architectural decision is made in conversation (a framework, database, auth, or API choice, or reversing one), proactively offer to record it with `/orient:decide` — don't wait to be asked. It also updates `architecture.md`.
- When a plan is approved before a build, treat any architectural choices inside it as decisions — offer to record them before starting.
- Never edit a past decision file. Supersede it with a new one.
- Trace execution paths on demand instead of maintaining a flow doc.
<!-- ORIENT:END -->

## Build rules for this repo

- Only `plugin.json` goes in `.claude-plugin/`. Skills, agents, hooks, scripts and templates live at the plugin root.
- `version` lives in `plugin.json` only, never also in the marketplace entry. Bump it on every release.
- Nothing enters the always-on path without a reason recorded in an ADR.
- Before claiming a change is done: `claude plugin validate . --strict` and `claude plugin validate ./plugins/orient --strict` must both pass.