Skip to content
Agentmart
Submit a tool

CLAUDE.md · pacifio/atlas

CLAUDE.md from pacifio/atlas: 288 lines covering Where the answers live, Commands, Invariants that fail silently, Adding things and more.

Template by pacifio

IndexedApache-2.0★ 9,536
Write a review

Chalk Labs

Need help deploying CLAUDE.md · pacifio/atlas?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code. Read the repository before you give any tool access to your data.

curl -fsSL https://raw.githubusercontent.com/pacifio/atlas/main/CLAUDE.md -o CLAUDE.md

Read it and adapt it to your project before use.

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.

We use your email only for this newsletter. Privacy

About

The CLAUDE.md file that pacifio/atlas (9,536 stars) keeps for coding agents. It has 288 lines in 8 sections: Where the answers live; Commands; Invariants that fail silently; Adding things; Conventions; The agent runtime; Versioning, branching, commits; Issue tracker. Use it as a model for your own project's instructions.

Use cases: prompt-engineering

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

What's in it

A CLAUDE.md file: project memory Claude Code loads at the start of every session.

For
Claude Code
Length
288 lines
File
CLAUDE.md

Sections

  1. Where the answers live
  2. Commands
  3. Invariants that fail silently
  4. Adding things
  5. Conventions
  6. The agent runtime
  7. Versioning, branching, commits
  8. Issue tracker

First lines (shown under the repo's Apache-2.0 license)

# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Atlas is a Tauri v2 desktop app: a React 19 frontend over a Rust backend, one cargo
workspace, and the agent engine under `vendor/atlas-engine/` (its crates are
`atlas-engine-*`; ADR-0003 has its origin).

This file is deliberately short. It carries the commands, and the invariants that fail
**silently** — where nothing errors, every gate is green, and the symptom is in the
shipped binary. Everything else is a pointer, because a second copy of it here would
drift out of date without anything noticing.

## Where the answers live

| question                                                        | read                                                                                                             |
| --------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| how a feature crosses the stack; a subsystem's file paths       | `docs/architecture.md`                                                                                           |
| verification gates, branching, PR checklist, telemetry rules    | `CONTRIBUTING.md`                                                                                                |
| what a term means                                               | `CONTEXT.md`                                                                                                     |
| why a decision is what it is                                    | `docs/adr/` (0003 and 0004 are each used twice)                                                                  |
| tokens, type/radius/elevation/z-index/motion scales, primitives | `docs/reference/design-system.md`                                                                                |
| theme keys, theme import, icon themes, config, keybindings      | `docs/reference/`                                                                                                |
| the browser mock backend                                        | `src/dev/mock-backend/README.md`                                                                                 |
| what a contract suite guards, and why nothing else can          | that suite's docblock in `tests/`                                                                                |
| what CI actually runs                                           | `.github/workflows/ci.yml` (commented throughout); for a given diff, `node scripts/ci-affected.mjs --base <rev>` |

**Count things, don't quote counts.** Commands, crates, tab types and test suites all
move weekly — `ls src-tauri/src/commands/*.rs`, `ls tests/*.test.ts`,
`src/lib/constants.ts`. A number written in prose anywhere, including here, is stale.

## Commands

```bash
bun run dev          # Vite in a real browser on the fake backend — use for any visual change
bun run dev:app      # full Tauri dev; required for anything that hits invoke()
bun run build:app    # release .app  (build:app:dmg → +DMG, build:app:win → MSI)
```

Gates, all of them, before calling work done:

```bash
bun run lint            # oxlint
bun run format:check    # oxfmt
bun run typecheck       # BOTH tsconfig.json and tsconfig.test.json
bun run test            # vitest, everything
bun run test:contracts  # just tests/ — what the pre-commit hook runs
cargo check --workspace
bun run test:rust       # a SUBSET of CI; the script's header lists what it omits
bun run ci:local        # what CI would run for this branch, as CI runs it (clippy included)
                        # — the jobs that need Linux (the engine sandbox, the app's
                        #   GTK build) go to a Docker container (OrbStack here)
                        #   when the plan includes them; --native skips it
```

**How hard to test depends on where the work is:**

- **While committing — light.** Lint, format, typecheck, the vitest files for what
  changed (`bun run test <paths>`), and `cargo test -p <crate>` for the crates touched,
  natively on this Mac. The pre-commit hook already adds `test:contracts`. Never
  `--workspace`, never the container.
- **Before submitting a PR — heavy.** `bun run ci:local`: every job CI would
  plan for the branch, natively on this Mac, plus Linux-target clippy for the
  crates flagged `cross`. Only the jobs that need Linux itself (the sandbox
  crate's suites, the app's GTK compile) go to the container, and only when the
  plan includes them. A red job here is a red job in CI; fix it before opening
  the PR. The app's Windows compile check (`app-windows`) is the one job that
  runs only in CI. `--linux` is the full container replica, for when you
  suspect the Ubuntu userland itself.

Rust (`rust-toolchain.toml`), Bun and Node (`mise.toml`) are pinned to what CI
installs. Bumping Rust brings new clippy lints: fix them in the same change.

`bunx tsc --noEmit` is **not** the typecheck gate: `tsconfig.json` sets `"types": []`
and excludes test code, so it skips every test file. Use `bun run typecheck`.

Narrowing:

```bash
bun run test src/lib/time-ago.test.ts
cargo test -p atlas-native-agent --test engine_turn   # -p resolves from anywhere
```

Generated files — the TOML/SVG is the source, the committed output is derived, and a
suite fails the moment they disagree. Edit the source and regenerate:

```bash
bun run theme:keys     # crates/atlas-theme/keys.toml → TS registry, Rust, schema, docs
bun run icons:render   # macOS app icons
```

Pre-commit (husky): lint-staged → `bun run typecheck` → `bun run test:contracts`.
Pre-push: the full `bun run test`.

`crates/atlas-kb-server` is workspace-`exclude`d (its own `Cargo.lock`, its own
release profile; compiled at runtime by `commands::knowledge_export`). Test it from
inside its directory.

## Invariants that fail silently

Each has a suite in `tests/`. Read that suite's docblock before changing what it guards.

**The design-system ratchet is closed at zero** (`design-system-ratchet.test.ts`).
Across `src/features`, `src/components`, `src/ui` and `src/dev` it bans: arbitrary
`text-[…]` / `z-[…]` / `shadow-[…]` / `rounded-[…]`; colour literals (`#hex`, `rgb()`,
`hsl()`); `*-white` and `*-black` utilities; Tailwind's stock ramps (`bg-amber-500` —
no theme can restate them); bare `z-` at 50 or above; and inline numeric `zIndex` /
`fontSize` / `boxShadow`. Use the scale and the tokens. The only exits are
`EXEMPT_FILES` or an inline `ratchet-allow: <reason>` comment — on the line or anywhere
in the comment block above it — and the reason must be a real argument of 20+
characters, which the suite also checks. A violation type-checks, lints and renders
perfectly; this suite is the only thing in the toolchain that can see it.

**`bun run lint` also runs `@shadcn/lint`**, whose rules are errors. `no-unknown-classes`
catches a class Tailwind can't generate — a typo, or a plugin utility Atlas doesn't ship —
which otherwise renders as nothing. `no-restyle` stops `className` from overriding a
`src/ui` primitive's look: when it fires, use the variant its message names, or add one
to the primitive; don't restyle at the call site. Plain stylesheet classes are
allowlisted by exact name in `.oxlintrc.json` (`shadcn-lint-allowlist.test.ts` keeps
that list honest — never add a wildcard).

**Anything reading a _resolved_ colour needs a theme subscription**
(`theme-subscription-contract.test.ts`). CSS naming `var(--atlas-…)` recolours for
free; xterm, pixi, recharts and friends cannot, so they must hear the change.

**The IPC and event seams are opaque strings to `tsc`.** `invoke("name")`, the
`atlas:*` channel names, and even the _field names_ inside a payload are checked by
`ipc-contract`, `event-contract`, `state-payload-contract` and `wire-shape-contract`
and by nothing else. Check `event-contract.test.ts` before inventing a channel name.

**Three cargo-workspace rules, each failing quietly** (`cargo-workspace.test.ts`):
`[patch]` tables are honored only in the manifest cargo was invoked on — always the
root; profiles are workspace-global, so no member may carry its own; and
`[profile.dev.package."*"]` does not match workspace members, which is why every member
restates `opt-level = 1`.

**The engine is quarantined.** Exactly one manifest may name an `atlas-engine-*` crate:
`crates/atlas-native-agent/Cargo.toml` (`engine-quarantine.test.ts`). The Apache-2.0
LICENSE/NOTICE travel with the code (`vendor-licensing.test.ts`, needs `fetch-depth: 0`),
and the stripped telemetry paths must stay stripped (`engine-no-phone-home.test.ts`).
Per ADR-0003 the port is first-party code — editing it, manifests included, is ordinary
work, not a fork edit. `clippy.toml` at the repo root is the engine's own lint config, kept at the root; without
it the `atlas-native-agent` Clippy job fails on ~500 engine sites.

**Node singletons and the Vite `dedupe` list are load-bearing.** Two copies of
`@codemirror/*` or `pdfjs-dist` break editor theming and PDF rendering _in production
only_. `bun install`/`bun update` leave nested duplicates; after a lockfile change do
`rm -rf node_modules && bun install` (a full `rm -rf node_modules bun.lock` to dedupe).
`bun-singletons.test.ts` is what tells you. `manualChunks` is equally load-bearing —
each rule encodes a production incident, documented inline.

**Four build-config facts that look like cruft.** Each is argued at its own site; don't
undo one without reading that comment. `lto = "thin"` in the root `Cargo.toml` (fat
LTO's final link is a single-threaded whole-program merge on every rebuild);
`crate-type = ["rlib"]` in `src-tauri/Cargo.toml` (the mobile template's
`staticlib`/`cdylib` makes every dependency compile object code _and_ bitcode, and
nothing consumes either); `.cargo/config.toml`'s `MACOSX_DEPLOYMENT_TARGET`, which must
equal `bundle.macOS.minimumSystemVersion` and must **never** be joined by
`REMOVE_UNUSED_COMMANDS` (the CLI doesn't set it, and `tauri-utils` reads its mere
presence as "prune every command no capability allows"); and

Signals

Stars
9,536
Forks
372
Open issues
27
Last commit (this folder)
Oct 23, 2026 (7 days ago)
Last release
Sep 27, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get CLAUDE.md · pacifio/atlas running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying CLAUDE.md · pacifio/atlas?

CallGet help
Cite this page

CLAUDE.md · pacifio/atlas. Agent Mart. https://agentmart.dev/templates/pacifio-atlas-claude-md (last updated 2026-10-24)