diff --git a/docs/architecture/overview.md b/ARCHITECTURE.md similarity index 97% rename from docs/architecture/overview.md rename to ARCHITECTURE.md index 557b7ce..45e0720 100644 --- a/docs/architecture/overview.md +++ b/ARCHITECTURE.md @@ -4,9 +4,9 @@ This is the cross-codebase entry point. It describes how the four Relicario code > If you are about to make a change in a single codebase, read its `ARCHITECTURE.md` first: > -> - [crates/relicario-core/ARCHITECTURE.md](../../crates/relicario-core/ARCHITECTURE.md) -> - [crates/relicario-cli/ARCHITECTURE.md](../../crates/relicario-cli/ARCHITECTURE.md) -> - [extension/ARCHITECTURE.md](../../extension/ARCHITECTURE.md) +> - [crates/relicario-core/ARCHITECTURE.md](crates/relicario-core/ARCHITECTURE.md) +> - [crates/relicario-cli/ARCHITECTURE.md](crates/relicario-cli/ARCHITECTURE.md) +> - [extension/ARCHITECTURE.md](extension/ARCHITECTURE.md) > > If you want historical *why*, see `docs/superpowers/specs/` — those are time-stamped decision artifacts. This overview describes what *is*. @@ -196,10 +196,10 @@ Core tests use **fast Argon2id params** (m=256, t=1, p=1) so they don't take for | If you're working on... | Start with | |---|---| -| Crypto, item types, manifest format | [`crates/relicario-core/ARCHITECTURE.md`](../../crates/relicario-core/ARCHITECTURE.md) | -| A new CLI command or a CLI bug | [`crates/relicario-cli/ARCHITECTURE.md`](../../crates/relicario-cli/ARCHITECTURE.md) | -| A new popup view, vault tab feature, or autofill change | [`extension/ARCHITECTURE.md`](../../extension/ARCHITECTURE.md) | -| A new SW message type | `extension/src/shared/messages.ts` (capability sets), then [`extension/ARCHITECTURE.md § Invariants`](../../extension/ARCHITECTURE.md) | +| Crypto, item types, manifest format | [`crates/relicario-core/ARCHITECTURE.md`](crates/relicario-core/ARCHITECTURE.md) | +| A new CLI command or a CLI bug | [`crates/relicario-cli/ARCHITECTURE.md`](crates/relicario-cli/ARCHITECTURE.md) | +| A new popup view, vault tab feature, or autofill change | [`extension/ARCHITECTURE.md`](extension/ARCHITECTURE.md) | +| A new SW message type | `extension/src/shared/messages.ts` (capability sets), then [`extension/ARCHITECTURE.md § Invariants`](extension/ARCHITECTURE.md) | | A new GitHost (e.g. GitLab support) | `extension/src/service-worker/git-host.ts` (interface) and existing implementations | | The pre-receive hook / device-auth enforcement | `crates/relicario-server/src/main.rs`, then `docs/superpowers/specs/2026-05-02-device-authentication-design.md` for rationale | | Adding a new item type | core's `item_types/` mod, then CLI's `build_*_item`/`edit_*` helpers, then extension's `popup/components/types/.ts` | diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ea1c6e..1552716 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -135,7 +135,7 @@ two confirmed bugs). the `.form-grid` cards above. Removes the visual rhythm break at the 2-col → full-width transition. The popup surface is unchanged. - **Documentation refreshed for v0.5.0 (doc audit, 14 findings).** - `docs/architecture/overview.md` now describes four codebases (the + `ARCHITECTURE.md` now describes four codebases (the `relicario-server` pre-receive hook crate is no longer invisible); `CLAUDE.md` project tree and roadmap reflect current state; `docs/SECURITY.md` names the server crate and its `verify-commit` / diff --git a/CLAUDE.md b/CLAUDE.md index 7c7cae1..3d93eda 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -95,8 +95,23 @@ Core references (read before touching crypto, data model, or architecture): - `docs/superpowers/specs/2026-04-18-relicario-typed-items-design.md` — typed-item data model and envelope - `docs/superpowers/specs/2026-04-30-relicario-fullscreen-ux-redesign-design.md` — fullscreen UX phase plan -After completing any dev iteration, update `STATUS.md` to reflect what shipped and what's now in flight. +After completing any dev iteration, update `STATUS.md` to reflect what shipped and what's now in flight. Update the component `ARCHITECTURE.md` for any area you changed (see table below). ## Roadmap & status Current in-flight work: `STATUS.md`. Full roadmap with release targets: `ROADMAP.md`. Wire format reference: `FORMATS.md`. + +## Living docs — update discipline + +| File | What it documents | Update when... | +|---|---|---| +| `ARCHITECTURE.md` | Cross-codebase structure: four codebases, contracts, secrets map, build matrix, test strategy | Adding a codebase, changing inter-codebase contracts, new build targets | +| `docs/ARCHITECTURE.md` | Crypto pipeline diagrams, vault creation/unlock flows, DCT embedding, encrypted file format | Changing crypto primitives, format version byte, or file format | +| `crates/relicario-core/ARCHITECTURE.md` | Module map, invariants, key flows, test architecture for `relicario-core` | Adding/changing modules, item types, or crypto invariants in core | +| `crates/relicario-cli/ARCHITECTURE.md` | Module map, invariants, key flows (init, unlock, all commands) for `relicario-cli` | Adding/changing CLI commands, helpers, or session behavior | +| `extension/ARCHITECTURE.md` | Bundle structure, SW↔popup contract, component architecture | Adding bundles, changing the SW message protocol, or major UI flows | +| `docs/SECURITY.md` | Threat model, device auth, env-var trust surface | Adding env vars, changing auth model, new security-relevant config | +| `FORMATS.md` | Wire formats: `.enc` blobs, `params.json`, `devices.json`, manifest schema | Changing any serialized format, version number, or on-disk layout | +| `STATUS.md` | In-flight work, recent landings, what's next | End of every dev iteration | +| `ROADMAP.md` | Full roadmap with release targets | When milestones shift or new work is scoped | +| `CHANGELOG.md` | User-facing release history | When tagging a release |