From 3a5d999006327ea02d4534cdecc8cf390d2d50f9 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Sat, 9 May 2026 11:21:58 +0700 Subject: [PATCH] docs: refresh CLAUDE.md doc index, fold design.md into design system MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Make `docs/` the explicit source of truth: "the docs"/"check the docs" mean this directory, not the web. - List all 16 docs in CLAUDE.md (was 8); group by purpose so unistyles, glossary, data-model, providers, etc. are discoverable. - Delete the old design.md (designing-features prose) and rename design-system.md → design.md so design tokens own the name. --- CLAUDE.md | 36 ++++-- docs/design-system.md | 247 -------------------------------------- docs/design.md | 268 ++++++++++++++++++++++++++++++++++-------- 3 files changed, 245 insertions(+), 306 deletions(-) delete mode 100644 docs/design-system.md diff --git a/CLAUDE.md b/CLAUDE.md index 27d2cce4c..e9d196f1a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -15,19 +15,31 @@ This is an npm workspace monorepo: - `packages/desktop` — Electron desktop wrapper - `packages/website` — Marketing site (paseo.sh) -## Documentation +## Docs -| Doc | What's in it | -| ---------------------------------------------------- | --------------------------------------------------------------------------------- | -| [docs/architecture.md](docs/architecture.md) | System design, package layering, WebSocket protocol, agent lifecycle, data flow | -| [docs/coding-standards.md](docs/coding-standards.md) | Type hygiene, error handling, state design, React patterns, file organization | -| [docs/testing.md](docs/testing.md) | TDD workflow, determinism, real dependencies over mocks, test organization | -| [docs/development.md](docs/development.md) | Dev server, build sync gotchas, CLI reference, agent state, Playwright MCP | -| [docs/release.md](docs/release.md) | Release playbook, draft releases, completion checklist | -| [docs/custom-providers.md](docs/custom-providers.md) | Custom provider config: Z.AI, Alibaba/Qwen, ACP agents, profiles, custom binaries | -| [docs/android.md](docs/android.md) | App variants, local/cloud builds, EAS workflows | -| [docs/design.md](docs/design.md) | How to design features before implementation | -| [SECURITY.md](SECURITY.md) | Relay threat model, E2E encryption, DNS rebinding, agent auth | +`docs/` is the source of truth for system-level and process-level knowledge. **"The docs", "check the docs", or "check the X docs" always mean this directory — not the web.** Look here before fetching anything online; the docs capture gotchas and conventions you cannot derive from the code or external sources. + +At the start of non-trivial work, list `docs/` and skim anything relevant to the task. When you learn something meta worth preserving — a gotcha, a convention, a workflow, a piece of system context that will outlive the current task — update an existing doc or propose a new one. Code-level facts belong in inline comments next to the code; system, process, and gotcha-level facts belong in `docs/`. + +| Doc | What's in it | +| -------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| [docs/product.md](docs/product.md) | What Paseo is, who it's for, where it's going | +| [docs/architecture.md](docs/architecture.md) | System design, package layering, WebSocket protocol, agent lifecycle, data flow | +| [docs/data-model.md](docs/data-model.md) | File-based JSON persistence, Zod schemas, atomic writes, no migrations | +| [docs/glossary.md](docs/glossary.md) | Authoritative terminology — UI label wins, no synonyms | +| [docs/coding-standards.md](docs/coding-standards.md) | Type hygiene, error handling, state design, React patterns, file organization | +| [docs/design.md](docs/design.md) | Theme tokens — colors, fonts, spacing, radii, icons | +| [docs/unistyles.md](docs/unistyles.md) | Unistyles gotchas — `useUnistyles()` is forbidden, alternatives in order | +| [docs/file-icons.md](docs/file-icons.md) | Material icon theme integration for the file explorer | +| [docs/providers.md](docs/providers.md) | Adding a new agent provider end-to-end | +| [docs/custom-providers.md](docs/custom-providers.md) | Custom provider config: Z.AI, Alibaba/Qwen, ACP agents, profiles, custom binaries | +| [docs/development.md](docs/development.md) | Dev server, build sync gotchas, CLI reference, agent state, Playwright MCP | +| [docs/testing.md](docs/testing.md) | TDD workflow, determinism, real dependencies over mocks, test organization | +| [docs/mobile-testing.md](docs/mobile-testing.md) | Maestro and mobile test workflows | +| [docs/ad-hoc-daemon-testing.md](docs/ad-hoc-daemon-testing.md) | Isolated in-process daemon test harness | +| [docs/android.md](docs/android.md) | App variants, local/cloud builds, EAS workflows | +| [docs/release.md](docs/release.md) | Release playbook, draft releases, completion checklist | +| [SECURITY.md](SECURITY.md) | Relay threat model, E2E encryption, DNS rebinding, agent auth | ## Quick start diff --git a/docs/design-system.md b/docs/design-system.md deleted file mode 100644 index bee8c23ba..000000000 --- a/docs/design-system.md +++ /dev/null @@ -1,247 +0,0 @@ -# Design system - -Tokens — every color, font size, weight, spacing step, radius, icon size — live in `packages/app/src/styles/theme.ts`. - ---- - -## 1. Character - -Paseo is minimal, spacious, quiet, confident. Whitespace is deliberate. Nothing crowds, nothing decorates, nothing apologizes. A row, a label, a control. That is the bar. - -The app is calm so the user's work is not. Every visual decision serves either _act on this_ or _understand this_ — never _look at this_. - -Consistency comes from component reuse, not from hand-matching styles across surfaces. A row in the projects list, a row in settings, and a row in a modal are the same component, not three implementations that happen to look alike. When two surfaces do the same semantic thing in two different ways, one of them is wrong. - ---- - -## 2. Component reuse - -A semantic element used in three or more places is a primitive. One of a kind is a screen. - -Primitives live in `packages/app/src/components/ui/` and `packages/app/src/components/headers/`. Card and row layout live in `packages/app/src/styles/settings.ts`. Section structure lives in `packages/app/src/screens/settings/settings-section.tsx`. - -A pressable styled to look like a button is wrong; the button is `