Your first project
You ran tapestry onboard --slug my-project. Here’s what landed and what comes next.
Files written
Section titled “Files written”tapestry onboard registers your project with the Project Registry first — this is mandatory: if no registry is reachable it aborts and writes nothing (the default registry URL is a placeholder, so pass --registry-url or set TAPESTRY_REGISTRY_URL). Then, idempotently, it writes (or merges into) several files:
| File | What it holds | Why |
|---|---|---|
.env | LOOM_PROJECT_ID (the registry-assigned id) + the shared OTEL_* block | The project’s identity tag — everything memory and telemetry scope by this. |
.mcp.json | The loom-memory MCP server declaration (with the Bearer ${TAPESTRY_MEMORY_API_KEY} header) | Wires the Memory MCP into every Claude Code session in this repo. |
.project-intelligence/ (flat) | agent-profile.json, project-context.json, observatory-config.json + local-skills/ + lessons-learned/ | Per-project intelligence files the Observer + Observatory read. |
.claude/settings.json | Both tapestry-discipline + tapestry-patterns plugins enabled | So the discipline plugin auto-loads its hooks and tapestry-patterns auto-loads its agents + skills. |
CLAUDE.md, .gitignore, docs/, skills/ | A starter skeleton | So the project has the standard shape from day one; edit CLAUDE.md to fit. |
What changes in Claude Code
Section titled “What changes in Claude Code”Open the chat panel and start a fresh session. Three things are now different from a bare project:
1. The session header includes an auto-recall block. It lists memory records tagged for my-project. On first session this block is empty — that’s expected; it fills in as you accumulate corrections, decisions, and observer findings over time.
2. Every prompt you send gets a [loom-discipline] Discipline check: reminder line injected as additional context. That’s the discipline plugin’s UserPromptSubmit hook firing — it injects PROBE-before-asserting + cite file:line + dev-tooling-vs-runtime + save-friction-as-memory rules into the agent’s working context.
3. Hook events emit to two destinations. Local ~/.claude/logs/hooks.jsonl always (source of truth). Grafana Cloud via OTel if OTEL_EXPORTER_OTLP_* env vars are set in your .env. See Telemetry for the wiring.
What’s NOT installed by onboarding
Section titled “What’s NOT installed by onboarding”Onboarding makes your project observable. It does not install a per-project Observatory — the Observatory is one surface in your platform deployment, shared across all your projects. Onboarding wires your project into it.
What to do next
Section titled “What to do next”- Verify it worked — four quick checks that the wiring landed.
- First Observatory visit — open the dashboard and learn what to look for.
- Edit the starter
CLAUDE.mdonboarding seeded in your project root to fit your project (it’s a skeleton, not a contract).
Related
Section titled “Related”- Quickstart — VS Code — the 4-step setup that got you here
- Set up a new project (comprehensive) — what to do beyond onboarding for projects that want CLAUDE.md, snapshot scripts, custom hooks