faster-chat
CLAUDE.md175 starsChanged 6 months agoMITView on GitHub
Privacy-first, offline-capable AI chat. Preact + Hono + SQLite + Bun, TanStack Router/Query, Tailwind 4, Vercel AI SDK. Full docs: README.md. Contributor process: CONTRIBUTING.md. AGENTS.md is @CLAUDE.md. This file is canonical for Claude Code, Codex, and any agent that respects either name. Runtime is Bun. Never npm/pnpm/yarn in this repo. Emit tool calls directly. No preamble like "I'll now read the file." Execution. Interleave reads with edits. Don't map the whole repo first. Turn tasks into verifiable goals — "fix…
We split this CLAUDE.md into the rules it gives an agent
3 rules. About 0 are common, 2 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 39
Surgical changes: Every changed line traces to the request.
- Very specific: line 52
Server state → TanStack Query: Never duplicate API data in useState or Zustand.
- Distinctive: line 63
Before adding state or an effect: can this be an expression?
≈ “Common” is an estimate: at least 1 in 5 of the 25,680 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Faster Chat — Agent Guide
Privacy-first, offline-capable AI chat. Preact + Hono + SQLite + Bun, TanStack Router/Query, Tailwind 4, Vercel AI SDK.
Full docs: README.md. Contributor process: CONTRIBUTING.md.
AGENTS.md is @CLAUDE.md. This file is canonical for Claude Code, Codex, and any agent that respects either name.
Repo layout
frontend/ Preact SPA — TanStack Router/Query, Tailwind 4, Vite
server/ Hono API — SQLite, AI SDK providers, Bun runtime
packages/ Shared internal packages (workspace)
scripts/ Build/deploy helpers
specs/ Feature specs (output of /plan_w_team)
.claude/ Project skills and sub-agents (see bottom)Commands
Runtime is Bun. Never npm/pnpm/yarn in this repo.
bun install # install all workspaces
bun run dev # frontend + server concurrently
bun run dev:frontend # Vite dev server only
bun run dev:server # Hono/Bun server only
bun run build # build both
bun run test # server tests (bun test)
bun run format # prettierWorking style
Emit tool calls directly. No preamble like "I'll now read the file."
Execution. Interleave reads with edits. Don't map the whole repo first. Turn tasks into verifiable goals — "fix bug" → reproducing test → pass. Multi-step work: use /plan_w_team to state the plan with verify steps, loop until verified. Stop when done, blocked, or need clarification.
Surgical changes. Every changed line traces to the request. Don't improve adjacent code, don't refactor the un-broken, match existing style. Orphan imports/vars from your changes: remove. Pre-existing dead code: mention, don't delete.
Code philosophy. Minimum code that solves the stated problem. No speculative abstractions, no configurability nobody asked for, no error handling for impossible cases. Boring over clever. Readable over terse. Comments are a code smell — omit unless asked. If 200 lines could be 50, rewrite.
When unsure. Ambiguous request → ask. Multiple valid approaches → present options, don't pick silently. Uncertain → say so.
Response style. Telegraphic. Noun phrases fine. Don't narrate the diff — the user reads it.
Frontend code rules (hard constraints)
Full spec: .claude/skill/frontend-philosophy/SKILL.md. Claude Code auto-loads it on React/Preact work. Rules below are the non-negotiable subset every agent must follow.
- No TypeScript.
.jsxcomponents,.jsutilities. Runtime validation at boundaries only. - Server state → TanStack Query. Never duplicate API data in
useStateor Zustand. - Client state → Zustand or Preact Signals. UI-only (modals, theme, filters).
- Derive, don't duplicate. Value computable from existing state: compute in render. No
useStatefor derived values. - No
useCallback. Event handlers don't need it. Reaching for it means youruseEffect/useMemodeps are wrong. useEffectis a last resort. Valid: DOM sync, external subscriptions, cleanup, analytics. Not: syncing state between variables, reacting to props.- No barrel files. No
index.ts/jsre-exports. - Feature-based folders.
components/billing/, notcomponents/forms/. - 8-section component structure. Server state → client state → derived → handlers → effects (rare) → early returns → render helpers → JSX. See skill reference.
- Composition over configuration. Pass
children, not dozens of boolean props. No prop drilling past 2 levels. - Data flows down, events flow up. Fetch once at the highest component that needs it.
Before adding state or an effect: can this be an expression? Derivable from props, query data, or existing state?
CSS / animation (project-specific)
ease-snappy=cubic-bezier(.2, .4, .1, .95)(defined infrontend/vite.config.js). Use for UI micro-interactions.- Specific transitions:
transition-colors,transition-transform. Nevertransition-all. - Durations: 75ms hover, 150ms max for most UI.
- GPU acceleration:
transform-gpuonanimate-*,transition-transform, and transform classes (translate-*,rotate-*,scale-*). - Scroll containers:
overflow-y-scroll+scrollbar-gutter: stable both-edges. Keep fixed overlays outside the scroll container. - Slide animations:
translate-x/ytransforms, notleft/top/opacity.
Available sub-agents (.claude/agents/)
code-reviewers/— review diffs against repo standardsdata-flow-reviewer— auth/ownership/data-integrity sweep across SQLite → Hono → Preacttesters/— write tests for changes
Available skills (.claude/skill/)
frontend-philosophy— auto-triggers on React/Preact work; full specsystematic-debugging— use on bugs/test failures before proposing fixestest-driven-development— red-green-refactorinsecure-defaults— audit config/secrets/permissive defaults
In this repository5 other files it gives its agents.
- AGENTS.mdAGENTS.md
- frontend-philosophySkill
- insecure-defaultsSkill
- systematic-debuggingSkill
- tddSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

