Skip to content

Commit f84da0b

Browse files
committed
docs(claude): add cross-repo mesh guidelines
1 parent 9b8ed48 commit f84da0b

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

CLAUDE.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,52 @@
11
# CreateOS CLI — Development Guide
22

3+
## Cross-repo mesh — CreateOS Sandbox
4+
5+
**You are in `createos-cli` — the public Go CLI.** The `fc` control plane
6+
defines the API this calls; `createos-plugin` wraps this CLI; the website
7+
mirrors these commands. On any command / flag change, run the protocol below —
8+
the concrete website-regen steps live in "Keeping the Website Docs in Sync" near
9+
the end of this file. This repo is one of five in the product mesh.
10+
11+
### Repo map
12+
13+
| repo | path | role | public? | changes that ripple across the mesh |
14+
|---|---|---|---|---|
15+
| **fc** | `../fc` | control-plane — **source of truth** | 🔒 private | HTTP API, wire/JSON fields, error shapes, lifecycle/state, limits/quotas, behavior |
16+
| **fc-sdk** | `../fc-sdk` | TypeScript SDK **+ `examples/`** | 🌐 public | public SDK methods, wire types, example apps |
17+
| **createos-cli** | `../createos-cli` | Go CLI | 🌐 public | commands, flags, help/UX text |
18+
| **website-04** | `../website-04` (`content/docs/Sandbox`) | public docs | 🌐 public | REST / SDK / CLI reference + concept pages |
19+
| **createos-plugin** | `../createos-plugin` | Claude Code plugin over the `createos` CLI | 🌐 public | skills, slash commands, hooks |
20+
21+
### What counts as a shared surface
22+
23+
HTTP endpoint or method · wire or JSON field · error shape · sandbox
24+
lifecycle/state · limit or quota · CLI command or flag · public SDK method ·
25+
documented behavior. A change confined to internals — refactor, comment,
26+
private helper, test-only — is **not** a shared surface, so skip the mesh for it.
27+
28+
### Protocol — run before finalizing a shared-surface change
29+
30+
1. **Classify origin.** `fc` is the source of truth; SDK / CLI / docs / plugin
31+
are downstream consumers. A downstream change that implies a backend change
32+
(new field, new endpoint) → surface it to the user; never invent server
33+
behavior inside a client.
34+
2. **Search every sibling** for the touched symbol / endpoint / flag —
35+
`semble search` first, then `rg`.
36+
3. **Build a status matrix** per sibling: `already-present` ·
37+
`missing-needs-update` · `n/a`. **Flag the already-present ones to the user**
38+
("already exists in fc-sdk + docs"). Never silently duplicate a change that is
39+
already there — that is the whole point of this check.
40+
4. **`fc` → any public repo is a leak-guard boundary (security).** Strip private
41+
implementation, security internals, infra, threat-model notes, and
42+
internal-only tooling (`fcctl`, host filesystem paths, mTLS/CA internals)
43+
before anything lands in a public repo. Respect each public repo's own wording
44+
rules (e.g. `fc-sdk/AGENTS.md` forbids the word "VM"). Report the proposed diff
45+
and **ask for approval before landing any public edit** — never auto-write
46+
across the boundary.
47+
5. **Use the `sync-docs` skill** to execute SDK / CLI / website reconciliation
48+
against upstream `fc` where it applies.
49+
350
## Project Structure
451

552
```

0 commit comments

Comments
 (0)