brainclaw 0.29.2 → 1.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -74
- package/README.md +199 -176
- package/dist/brainclaw-vscode.vsix +0 -0
- package/dist/cli.js +710 -25
- package/dist/commands/accept.js +3 -0
- package/dist/commands/add-step.js +11 -26
- package/dist/commands/agent-board.js +70 -3
- package/dist/commands/audit.js +19 -0
- package/dist/commands/check-policy.js +54 -0
- package/dist/commands/check-security-mcp.js +145 -0
- package/dist/commands/check-security.js +106 -0
- package/dist/commands/claim-resource.js +1 -0
- package/dist/commands/codev.js +672 -0
- package/dist/commands/compact.js +74 -0
- package/dist/commands/complete-step.js +16 -26
- package/dist/commands/constraint.js +8 -20
- package/dist/commands/decision.js +9 -20
- package/dist/commands/delete-plan.js +10 -12
- package/dist/commands/delete-step.js +16 -0
- package/dist/commands/dispatch.js +163 -0
- package/dist/commands/doctor.js +1122 -49
- package/dist/commands/enable-agent.js +1 -0
- package/dist/commands/export.js +280 -22
- package/dist/commands/handoff.js +33 -0
- package/dist/commands/harvest.js +189 -0
- package/dist/commands/hooks.js +82 -25
- package/dist/commands/inbox.js +169 -0
- package/dist/commands/init.js +38 -31
- package/dist/commands/install-hooks.js +71 -44
- package/dist/commands/link.js +89 -0
- package/dist/commands/list-claims.js +48 -3
- package/dist/commands/list-plans.js +129 -25
- package/dist/commands/loops-handlers.js +409 -0
- package/dist/commands/mcp-read-handlers.js +1628 -0
- package/dist/commands/mcp-schemas.generated.js +269 -0
- package/dist/commands/mcp.js +4224 -1501
- package/dist/commands/plan-resource.js +64 -0
- package/dist/commands/plan.js +12 -26
- package/dist/commands/prune.js +37 -2
- package/dist/commands/reflect.js +20 -7
- package/dist/commands/release-claim.js +11 -6
- package/dist/commands/release-notes.js +170 -0
- package/dist/commands/repair.js +210 -0
- package/dist/commands/run-profile.js +57 -0
- package/dist/commands/sequence.js +113 -0
- package/dist/commands/session-end.js +423 -14
- package/dist/commands/session-start.js +214 -41
- package/dist/commands/setup-security.js +103 -0
- package/dist/commands/setup.js +42 -4
- package/dist/commands/stale.js +109 -0
- package/dist/commands/switch.js +100 -2
- package/dist/commands/trap.js +14 -31
- package/dist/commands/update-handoff.js +63 -4
- package/dist/commands/update-plan.js +21 -28
- package/dist/commands/update-step.js +37 -0
- package/dist/commands/upgrade.js +313 -6
- package/dist/commands/usage.js +102 -0
- package/dist/commands/version.js +20 -0
- package/dist/commands/who.js +33 -5
- package/dist/commands/worktree.js +105 -0
- package/dist/core/actions.js +315 -0
- package/dist/core/agent-capability.js +610 -17
- package/dist/core/agent-context.js +7 -1
- package/dist/core/agent-files.js +1169 -85
- package/dist/core/agent-integrations.js +160 -5
- package/dist/core/agent-inventory.js +2 -0
- package/dist/core/agent-profiles.js +93 -0
- package/dist/core/agent-registry.js +162 -30
- package/dist/core/agentrun-reconciler.js +345 -0
- package/dist/core/agentruns.js +424 -0
- package/dist/core/ai-agent-detection.js +31 -10
- package/dist/core/archival.js +77 -0
- package/dist/core/assignment-sweeper.js +82 -0
- package/dist/core/assignments.js +367 -0
- package/dist/core/audit.js +30 -0
- package/dist/core/brainclaw-version.js +94 -2
- package/dist/core/candidates.js +93 -2
- package/dist/core/claims.js +419 -0
- package/dist/core/codev-metrics.js +77 -0
- package/dist/core/codev-personas.js +31 -0
- package/dist/core/codev-plan-gen.js +35 -0
- package/dist/core/codev-prompts.js +74 -0
- package/dist/core/codev-responses.js +62 -0
- package/dist/core/codev-rounds.js +218 -0
- package/dist/core/config.js +4 -0
- package/dist/core/context.js +381 -34
- package/dist/core/coordination.js +201 -6
- package/dist/core/cross-project.js +230 -16
- package/dist/core/default-profiles/doctor.yaml +11 -0
- package/dist/core/default-profiles/janitor.yaml +11 -0
- package/dist/core/default-profiles/onboarder.yaml +11 -0
- package/dist/core/default-profiles/reviewer.yaml +13 -0
- package/dist/core/dispatcher.js +1189 -0
- package/dist/core/duplicates.js +2 -2
- package/dist/core/entity-operations.js +450 -0
- package/dist/core/entity-registry.js +344 -0
- package/dist/core/events.js +106 -2
- package/dist/core/execution-adapters.js +154 -0
- package/dist/core/execution-context.js +63 -0
- package/dist/core/execution-profile.js +270 -0
- package/dist/core/execution.js +255 -0
- package/dist/core/facade-schema.js +81 -0
- package/dist/core/federation-cloud.js +99 -0
- package/dist/core/federation-message.js +52 -0
- package/dist/core/federation-transport.js +65 -0
- package/dist/core/gc-semantic.js +482 -0
- package/dist/core/governance.js +247 -0
- package/dist/core/guards.js +19 -0
- package/dist/core/ideation.js +72 -0
- package/dist/core/identity.js +110 -25
- package/dist/core/ids.js +6 -0
- package/dist/core/input-validation.js +2 -2
- package/dist/core/instruction-templates.js +344 -136
- package/dist/core/io.js +90 -11
- package/dist/core/lock.js +6 -2
- package/dist/core/loops/brief-assembly.js +213 -0
- package/dist/core/loops/facade-schema.js +148 -0
- package/dist/core/loops/index.js +7 -0
- package/dist/core/loops/iteration-engine.js +139 -0
- package/dist/core/loops/lock.js +385 -0
- package/dist/core/loops/store.js +201 -0
- package/dist/core/loops/types.js +403 -0
- package/dist/core/loops/verbs.js +534 -0
- package/dist/core/markdown.js +15 -3
- package/dist/core/memory-compactor.js +432 -0
- package/dist/core/memory-git.js +152 -8
- package/dist/core/messaging.js +278 -0
- package/dist/core/migration.js +32 -1
- package/dist/core/mutation-pipeline.js +4 -2
- package/dist/core/operations/memory-mutation.js +129 -0
- package/dist/core/operations/memory-write.js +78 -0
- package/dist/core/operations/plan.js +190 -0
- package/dist/core/policy.js +169 -0
- package/dist/core/reputation.js +9 -3
- package/dist/core/schema.js +491 -6
- package/dist/core/search.js +21 -2
- package/dist/core/security-cache.js +71 -0
- package/dist/core/security-guard.js +152 -0
- package/dist/core/security-scoring.js +86 -0
- package/dist/core/sequence.js +130 -0
- package/dist/core/socket-client.js +113 -0
- package/dist/core/staleness.js +246 -0
- package/dist/core/state.js +98 -22
- package/dist/core/store-resolution.js +43 -11
- package/dist/core/toml-writer.js +76 -0
- package/dist/core/upgrades/backup.js +232 -0
- package/dist/core/upgrades/health-check.js +169 -0
- package/dist/core/upgrades/patches/candidate-archive.js +145 -0
- package/dist/core/upgrades/patches/handoff-review-strip.js +128 -0
- package/dist/core/upgrades/patches/provenance-rollout.js +136 -0
- package/dist/core/upgrades/schema-version.js +97 -0
- package/dist/core/worktree.js +606 -0
- package/dist/facts.js +114 -0
- package/dist/facts.json +111 -0
- package/docs/architecture/project-refs.md +5 -1
- package/docs/cli.md +690 -43
- package/docs/concepts/ideation-loop.md +317 -0
- package/docs/concepts/loop-engine.md +456 -0
- package/docs/concepts/mcp-governance.md +268 -0
- package/docs/concepts/memory-staleness.md +122 -0
- package/docs/concepts/multi-agent-workflows.md +166 -0
- package/docs/concepts/plans-and-claims.md +31 -6
- package/docs/concepts/project-md-convention.md +35 -0
- package/docs/concepts/troubleshooting.md +220 -0
- package/docs/concepts/upgrade-cli.md +202 -0
- package/docs/concepts/upgrade-dogfood-procedure.md +114 -0
- package/docs/context-format-changelog.md +2 -2
- package/docs/context-format.md +2 -2
- package/docs/index.md +68 -0
- package/docs/integrations/agents.md +15 -16
- package/docs/integrations/cline.md +88 -0
- package/docs/integrations/codex.md +75 -23
- package/docs/integrations/continue.md +60 -0
- package/docs/integrations/copilot.md +67 -9
- package/docs/integrations/kilocode.md +72 -0
- package/docs/integrations/mcp.md +304 -21
- package/docs/integrations/mistral-vibe.md +122 -0
- package/docs/integrations/opencode.md +84 -0
- package/docs/integrations/overview.md +23 -8
- package/docs/integrations/roo.md +74 -0
- package/docs/integrations/windsurf.md +83 -0
- package/docs/mcp-schema-changelog.md +191 -1
- package/docs/playbooks/integration/index.md +121 -0
- package/docs/playbooks/productivity/index.md +102 -0
- package/docs/playbooks/team/index.md +122 -0
- package/docs/product/agent-first-model.md +184 -0
- package/docs/product/entity-model-audit.md +462 -0
- package/docs/product/positioning.md +10 -10
- package/docs/quickstart-existing-project.md +135 -0
- package/docs/quickstart.md +124 -37
- package/docs/release-maintenance.md +79 -0
- package/docs/review.md +2 -0
- package/docs/server-operations.md +118 -0
- package/package.json +21 -13
- package/dist/commands/claude-desktop-extension.js +0 -18
- package/dist/commands/diff.js +0 -99
- package/dist/core/claude-desktop-extension.js +0 -224
|
@@ -0,0 +1,462 @@
|
|
|
1
|
+
# Entity model audit — pre-v1.0 strategic reflection
|
|
2
|
+
|
|
3
|
+
Captured 2026-04-18 during a second round of strategic review before
|
|
4
|
+
the MCP grammar Phase 3 refactor. This document complements
|
|
5
|
+
`docs/product/agent-first-model.md` (which defines the two-layer
|
|
6
|
+
product model) and should be read before any entity-shape or API-verb
|
|
7
|
+
decision.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
brainclaw has grown organically over months and some older concepts
|
|
12
|
+
deserve challenge before the public launch:
|
|
13
|
+
|
|
14
|
+
- The MCP surface has 70 tools, 26 dedicated to CRUD variants per
|
|
15
|
+
entity type.
|
|
16
|
+
- Some lifecycles (candidate review queue) are rarely used as designed.
|
|
17
|
+
- Some entities overlap in role (runtime_note vs decision-candidate,
|
|
18
|
+
capability vs tool).
|
|
19
|
+
- The upcoming API grammar refactor (Phase 3 in the broader plan)
|
|
20
|
+
will bake current entity shapes into permanent verbs. Cleaning the
|
|
21
|
+
model first avoids fossilising bad decisions.
|
|
22
|
+
|
|
23
|
+
Since brainclaw is not yet publicly distributed, backward compatibility
|
|
24
|
+
is not a blocker — the priority is internal coherence at v1.0 launch.
|
|
25
|
+
|
|
26
|
+
## Design principles that emerged
|
|
27
|
+
|
|
28
|
+
### P1 — Engine delivers value, cockpit sells adoption
|
|
29
|
+
See `agent-first-model.md`. Every engine feature should emit
|
|
30
|
+
machine-readable signals the cockpit can consume. Human visibility is
|
|
31
|
+
a critical adoption gate at enterprise scale, not optional.
|
|
32
|
+
|
|
33
|
+
### P2 — Three review modes must coexist without penalty
|
|
34
|
+
brainclaw must support three review intensities and let the agent
|
|
35
|
+
choose consciously:
|
|
36
|
+
|
|
37
|
+
| Mode | When | Cost | Entry point today |
|
|
38
|
+
|---|---|---|---|
|
|
39
|
+
| Self-review inline | Solo default path (~70% of sessions) | Few LLM cycles | No brainclaw tool, agent self-checks |
|
|
40
|
+
| Dispatch-review | When a second opinion is worth a round-trip | One inbox message + reply | `bclaw_dispatch_review(openLoop: false)` |
|
|
41
|
+
| Review loop | Quality bar high, multi-round likely, structured feedback needed | Multiple rounds, multi-slot | `bclaw_dispatch_review(openLoop: true)` or `bclaw_loop(intent='open', kind='review')` |
|
|
42
|
+
|
|
43
|
+
The simpler modes must not pay a tax because the heavier mode exists.
|
|
44
|
+
Primitives like session, claim, handoff, inbox must all work fully
|
|
45
|
+
without loops.
|
|
46
|
+
|
|
47
|
+
### P3 — Loops are opt-in enhancement, not default path
|
|
48
|
+
Loops (review, ideation, debug, research) are structured, multi-agent,
|
|
49
|
+
expensive. In the majority of sessions agents work directly without
|
|
50
|
+
them. Every primitive must be fully usable without a loop; loops are
|
|
51
|
+
invoked when the complexity justifies the cost.
|
|
52
|
+
|
|
53
|
+
### P4 — Teams cross-machine is a first-class scenario
|
|
54
|
+
brainclaw supports three modes of work without compromise:
|
|
55
|
+
|
|
56
|
+
- **Solo agent** — local, no coordination, fast.
|
|
57
|
+
- **Solo dev + external reviewer** — dispatch-review or review_loop.
|
|
58
|
+
- **Teams cross-machine** — federation push/pull, inbox cross-project,
|
|
59
|
+
handoff as the artifact for resuming on another machine.
|
|
60
|
+
|
|
61
|
+
Team primitives (federation, cross-project inbox, handoff) must stay
|
|
62
|
+
load-bearing; simplifications cannot break them.
|
|
63
|
+
|
|
64
|
+
## Entity-by-entity verdicts
|
|
65
|
+
|
|
66
|
+
### ✅ Keep as-is
|
|
67
|
+
|
|
68
|
+
- **Plan / Step / Sequence** — the three-tier hierarchy is
|
|
69
|
+
semantically distinct and useful for precise agent communication.
|
|
70
|
+
- Plan: a work item with a goal, text, priority, status, tags,
|
|
71
|
+
dependencies, steps.
|
|
72
|
+
- Step: sub-element of a plan; inherits lifecycle from its parent
|
|
73
|
+
but has its own status.
|
|
74
|
+
- Sequence: coordinates execution across plans/steps by defining
|
|
75
|
+
parallelizable lanes with hard/soft dependencies between items.
|
|
76
|
+
The distinction was confirmed as valuable by the operator.
|
|
77
|
+
|
|
78
|
+
- **Decision / Constraint / Trap (trichotomy)** — each carries
|
|
79
|
+
distinct semantics that earn their keep:
|
|
80
|
+
- **Decision**: anchors a strategic choice (e.g., "chose
|
|
81
|
+
PostgreSQL", "use X testing framework"). Retrospective reference.
|
|
82
|
+
- **Constraint**: imposes a process or rule that must be followed
|
|
83
|
+
(e.g., "minimize core dependencies", "all APIs must be REST",
|
|
84
|
+
"never init --force"). Strongest concept; drives hook injection
|
|
85
|
+
to remind agents of the process.
|
|
86
|
+
- **Trap**: environmental or process pitfall to avoid (e.g., "git
|
|
87
|
+
merge wipes node_modules", "sandbox X blocks MCP writes"). May
|
|
88
|
+
trigger a corrective plan when resolvable.
|
|
89
|
+
All three drive different agent behaviours (decisions = retrieve for
|
|
90
|
+
context, constraints = enforce, traps = warn + resolve).
|
|
91
|
+
|
|
92
|
+
- **Claim** — file-level advisory lock, scope boundary, worktree
|
|
93
|
+
attachment point. Clear lifecycle (active → released/expired).
|
|
94
|
+
|
|
95
|
+
- **Session** — execution envelope, links work to an agent identity.
|
|
96
|
+
|
|
97
|
+
- **Assignment / AgentRun** — runtime tracking of dispatched work.
|
|
98
|
+
Distinction is technical (assignment = the ask, run = the execution)
|
|
99
|
+
but useful for observability; the agent does not need to interact
|
|
100
|
+
with them directly.
|
|
101
|
+
|
|
102
|
+
### 🔴 Remove
|
|
103
|
+
|
|
104
|
+
- **Candidate lifecycle** — the "create candidate → accept/reject →
|
|
105
|
+
promote to decision/constraint/trap/handoff" workflow is badly used
|
|
106
|
+
in practice. Very few candidates in the current store have been
|
|
107
|
+
processed; most are auto-generated and ignored. The review queue
|
|
108
|
+
concept duplicates what the Loop engine now provides better via
|
|
109
|
+
`review_loop`.
|
|
110
|
+
|
|
111
|
+
**After removal:**
|
|
112
|
+
- `bclaw_create_candidate`, `bclaw_list_candidates`, `bclaw_accept`,
|
|
113
|
+
`bclaw_reject`, `bclaw_harvest_candidates` disappear from the
|
|
114
|
+
surface.
|
|
115
|
+
- Auto-reflection at session_end writes directly to decision /
|
|
116
|
+
constraint / trap / handoff with a `source: 'auto'` field and a
|
|
117
|
+
`confidence` score. Agents or humans filter low-confidence auto
|
|
118
|
+
items via `bclaw_find(source: 'auto', confidence_gte: 0.8)`.
|
|
119
|
+
- Intentional batch review moves to `review_loop` (open a loop
|
|
120
|
+
whose change_summary points to the memory items under review).
|
|
121
|
+
- Cross-project signals arrive directly in `inbox/cross-project/`
|
|
122
|
+
(already the pattern for other signals).
|
|
123
|
+
|
|
124
|
+
### ⚠️ Downscale
|
|
125
|
+
|
|
126
|
+
- **Handoff** — keep as a session-end auto-artifact, strip the
|
|
127
|
+
review sub-flow.
|
|
128
|
+
|
|
129
|
+
**Keep:**
|
|
130
|
+
- Automatic generation at `bclaw_session_end` with commits, files
|
|
131
|
+
touched, narrative, pre/post conditions, linked plans.
|
|
132
|
+
- Read-only access via `bclaw_get(entity='handoff', id)` for context
|
|
133
|
+
resumption on the same or another machine.
|
|
134
|
+
- Federation push/pull across linked projects (critical for teams;
|
|
135
|
+
without this teammate B's agent loses teammate A's session story).
|
|
136
|
+
- Optional linking to a `review_loop` when a structured review is
|
|
137
|
+
dispatched via `bclaw_dispatch_review(openLoop: true)`.
|
|
138
|
+
|
|
139
|
+
**Drop:**
|
|
140
|
+
- The `review` sub-object on the handoff entity (requester,
|
|
141
|
+
reviewer, thread_id, requested_at, review_message_id). Never
|
|
142
|
+
used as designed.
|
|
143
|
+
- Active `update_handoff` for mid-life edits. Only the narrative
|
|
144
|
+
override at session_end stays (single write at creation).
|
|
145
|
+
|
|
146
|
+
**Rationale:** handoffs are a *passive artefact* of the default
|
|
147
|
+
path, not a coordination surface. Review happens via dispatch-review
|
|
148
|
+
or review_loop, not via mutating a handoff.
|
|
149
|
+
|
|
150
|
+
### 🟡 Examine further during implementation
|
|
151
|
+
|
|
152
|
+
- **RuntimeNote** — if auto-reflect + direct memory writes land,
|
|
153
|
+
runtime_note becomes redundant with low-confidence decision/trap
|
|
154
|
+
candidates. Consider removing. Keep for this audit, revisit during
|
|
155
|
+
Phase 3 implementation.
|
|
156
|
+
|
|
157
|
+
- **Instruction layers** (global / project / agent) — functionally
|
|
158
|
+
similar to constraints with different scopes. Could merge into a
|
|
159
|
+
unified `memory` entity with a `scope` field. Not urgent; valid to
|
|
160
|
+
keep distinct for now since instructions have lifecycle triggers
|
|
161
|
+
(`trigger:post-claim`, `trigger:pre-session-end`) that constraints
|
|
162
|
+
do not.
|
|
163
|
+
|
|
164
|
+
- **Capability vs Tool** — two registries under `.brainclaw/memory/`
|
|
165
|
+
with a thin distinction (capability = what the project can do, tool
|
|
166
|
+
= what the project uses). Good candidate for merger under a
|
|
167
|
+
`resource` entity with a `kind` field. Low priority.
|
|
168
|
+
|
|
169
|
+
## Phase 3 grammar outline (post-audit)
|
|
170
|
+
|
|
171
|
+
### Canonical verbs (6)
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
bclaw_find(entity, filters, limit, offset) — query many
|
|
175
|
+
bclaw_get(entity, id | short_label) — fetch one
|
|
176
|
+
bclaw_create(entity, data) — new item, returns id
|
|
177
|
+
bclaw_update(entity, id, patch) — partial merge
|
|
178
|
+
bclaw_remove(entity, id, purge?) — archive (default) or hard delete
|
|
179
|
+
bclaw_transition(entity, id, to, reason?) — state machine transitions with side effects
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Workflow intents that stay distinct
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
bclaw_work(intent) — session + claim + context facade
|
|
186
|
+
bclaw_coordinate(intent) — multi-agent coordination
|
|
187
|
+
bclaw_loop(intent) — loop lifecycle
|
|
188
|
+
bclaw_dispatch(intent) — dispatch analysis + execution + review (unified from 3 tools)
|
|
189
|
+
bclaw_quick_capture(text) — NL → typed memory
|
|
190
|
+
bclaw_bootstrap, bclaw_setup, bclaw_switch, bclaw_compact
|
|
191
|
+
bclaw_context(kind) — unified from get_context, get_execution_context, get_discovery, get_agent_board, get_agent_board_summary
|
|
192
|
+
bclaw_audit(mode) — chronological or governance report
|
|
193
|
+
bclaw_doctor, bclaw_check_policy, bclaw_check_security
|
|
194
|
+
bclaw_history, bclaw_estimation_report, bclaw_release_notes
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Approximate surface size
|
|
198
|
+
|
|
199
|
+
From 70 tools to ~20. Each verb is memorable, schema-discoverable, and
|
|
200
|
+
has a clear semantic.
|
|
201
|
+
|
|
202
|
+
### EntityRegistry as single source of truth
|
|
203
|
+
|
|
204
|
+
A new `src/core/entity-registry.ts` module holds:
|
|
205
|
+
|
|
206
|
+
- Short-label prefix per entity (plan → `pln`, claim → `clm`, …)
|
|
207
|
+
- Updatable fields per entity (Zod schema — what `update` can touch)
|
|
208
|
+
- Valid status transitions per entity (state machine definition)
|
|
209
|
+
- Side effects per transition (hardcoded for MVP, configurable later)
|
|
210
|
+
|
|
211
|
+
`bclaw_update` and `bclaw_transition` both consult this registry. A
|
|
212
|
+
grammar-consistency test suite verifies every entity has a complete
|
|
213
|
+
schema declaration.
|
|
214
|
+
|
|
215
|
+
### Transition logging — three destinations
|
|
216
|
+
|
|
217
|
+
| Destination | For whom | Why |
|
|
218
|
+
|---|---|---|
|
|
219
|
+
| `audit.log` | Forensics, compliance, governance | Authoritative chronological record |
|
|
220
|
+
| `events.jsonl` (already exists) | Reactive agents + cockpit live feed | Low-level event stream |
|
|
221
|
+
| `bclaw_activity` (new derived tool) | Humans, coordinator agents | Narrative digest, aggregated by entity/agent/session |
|
|
222
|
+
|
|
223
|
+
The cockpit (human-visibility layer) is built by consuming these
|
|
224
|
+
signals. Engine features emit; cockpit aggregates.
|
|
225
|
+
|
|
226
|
+
## Open questions for external validation
|
|
227
|
+
|
|
228
|
+
Before committing to implementation, we are consulting external
|
|
229
|
+
perspectives (codex, another claude-code instance, github-copilot) to
|
|
230
|
+
pressure-test these decisions. The four questions:
|
|
231
|
+
|
|
232
|
+
**Q0 — Teams cross-machine completeness.** Our current primitives
|
|
233
|
+
(handoff federation, inbox cross-project, claims local, runtime_note
|
|
234
|
+
federation) — do they cover common team cases (2–5 devs on different
|
|
235
|
+
machines, shared monorepo, distributed reviewers)? Is there an obvious
|
|
236
|
+
missing pattern?
|
|
237
|
+
|
|
238
|
+
**Q1 — Handoff simplification safety.** After stripping the review
|
|
239
|
+
sub-flow and keeping the handoff as a passive session-end artefact
|
|
240
|
+
(with federation + read-only + optional review_loop link), is there
|
|
241
|
+
any agent-facing use case this simplification breaks that we haven't
|
|
242
|
+
seen?
|
|
243
|
+
|
|
244
|
+
**Q2 — Transition side effects hardcoded vs configurable.** For MVP we
|
|
245
|
+
plan to hardcode side effects of transitions (close claims on
|
|
246
|
+
plan.status=done, promote candidate on accept, etc.) in the
|
|
247
|
+
`bclaw_transition` handler rather than declaring them in the
|
|
248
|
+
EntityRegistry. Is this the right tradeoff for now, or does the
|
|
249
|
+
configurable approach pay for itself early?
|
|
250
|
+
|
|
251
|
+
**Q3 — Version strategy pre-public.** Given we are pre-public with no
|
|
252
|
+
external integrators, should we:
|
|
253
|
+
- (a) bump v0.8 → v1.0 directly with the cleaned grammar, accepting
|
|
254
|
+
the internal breaking change in one go; or
|
|
255
|
+
- (b) go v0.8 → v0.9 (add new verbs, deprecate legacy) → v1.0 (remove
|
|
256
|
+
legacy), using two internal releases as buffer?
|
|
257
|
+
|
|
258
|
+
Option (a) is cleaner but less battle-tested before public launch;
|
|
259
|
+
(b) is slower but lets us dogfood the new grammar before removing the
|
|
260
|
+
old.
|
|
261
|
+
|
|
262
|
+
## §6 — Patches integrated post-consult
|
|
263
|
+
|
|
264
|
+
Three external reviewers (codex, a second claude-code instance,
|
|
265
|
+
github-copilot) returned verdict `proceed_with_patches` on the audit.
|
|
266
|
+
Their convergent recommendations are integrated below. Each patch is
|
|
267
|
+
load-bearing for Phase 3 and must land either before or during the
|
|
268
|
+
grammar refactor.
|
|
269
|
+
|
|
270
|
+
### P6.1 — Tombstone pattern for handoff corrections
|
|
271
|
+
|
|
272
|
+
**What.** Handoffs stay immutable session-end artefacts. Post-session
|
|
273
|
+
corrections (a teammate spotted a mistake, a follow-up clarified
|
|
274
|
+
something) do not mutate the original handoff — they create a *new
|
|
275
|
+
correction handoff* that carries a `superseded_by` pointer back to the
|
|
276
|
+
original.
|
|
277
|
+
|
|
278
|
+
**Why.** Preserves the "passive artefact" property while keeping an
|
|
279
|
+
audit trail of who revised what. Federation remains safe (each record
|
|
280
|
+
is whole, no partial merges).
|
|
281
|
+
|
|
282
|
+
**How to apply.** Reject all `bclaw_update(entity='handoff', …)`
|
|
283
|
+
outside the narrative override at creation. Expose instead a
|
|
284
|
+
`bclaw_correct_handoff(original_id, correction_data)` helper that
|
|
285
|
+
writes a new handoff and patches `original.superseded_by`.
|
|
286
|
+
|
|
287
|
+
### P6.2 — Declarative transition matrix + imperative side effects
|
|
288
|
+
|
|
289
|
+
**What.** Valid status transitions per entity live in the
|
|
290
|
+
EntityRegistry as a declarative matrix (`{ from: [to1, to2] }`). Side
|
|
291
|
+
effects (close linked claims, write audit entry, emit event) stay
|
|
292
|
+
imperative in `bclaw_transition` for MVP.
|
|
293
|
+
|
|
294
|
+
**Why.** Hybrid lets us test the declarative matrix (grammar
|
|
295
|
+
consistency tests, static analysis) without over-engineering a rules
|
|
296
|
+
engine we do not need yet. Migration to declarative side effects later
|
|
297
|
+
is a drop-in without breaking callers.
|
|
298
|
+
|
|
299
|
+
**How to apply.** `EntityRegistry[entity].transitions` is the
|
|
300
|
+
authoritative matrix; `bclaw_transition` rejects moves not in the
|
|
301
|
+
matrix, then runs a hardcoded side-effect dispatch per (entity, to)
|
|
302
|
+
pair.
|
|
303
|
+
|
|
304
|
+
### P6.3 — Provenance as a typed discriminated union
|
|
305
|
+
|
|
306
|
+
**What.** Replace the single `source: 'auto' | 'user' | …` string with
|
|
307
|
+
a typed discriminated union:
|
|
308
|
+
|
|
309
|
+
```ts
|
|
310
|
+
type Provenance =
|
|
311
|
+
| { kind: 'agent'; agent_id: string; session_id: string }
|
|
312
|
+
| { kind: 'auto_reflect'; source_session: string; confidence: number }
|
|
313
|
+
| { kind: 'user'; author: string }
|
|
314
|
+
| { kind: 'loop_artifact'; loop_id: string; slot: string; turn: number }
|
|
315
|
+
| { kind: 'federation'; source_project: string; remote_id: string }
|
|
316
|
+
| { kind: 'correction'; supersedes: string }
|
|
317
|
+
| { kind: 'legacy' };
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
**Why.** Each origin has different downstream implications (retention,
|
|
321
|
+
confidence, federation behavior, audit narrative). A single string
|
|
322
|
+
field cannot carry the metadata cleanly; a union keeps type-safety and
|
|
323
|
+
makes queries like `bclaw_find(provenance.kind='auto_reflect',
|
|
324
|
+
confidence_gte:0.8)` natural.
|
|
325
|
+
|
|
326
|
+
**How to apply.** Add `provenance` field to
|
|
327
|
+
decision/constraint/trap/handoff/runtime_note schemas. On v1.0
|
|
328
|
+
migration, existing records receive `{ kind: 'legacy' }`. Default
|
|
329
|
+
filter on memory reads: exclude `legacy` + auto below threshold,
|
|
330
|
+
configurable via the query.
|
|
331
|
+
|
|
332
|
+
### P6.4 — Delta context via bclaw_context(kind='delta')
|
|
333
|
+
|
|
334
|
+
**What.** `bclaw_context` currently returns full state every call. Add
|
|
335
|
+
a `kind: 'delta', since: <handoff_id | timestamp | event_seq>`
|
|
336
|
+
parameter that returns only what changed since the reference point.
|
|
337
|
+
|
|
338
|
+
**Why.** At scale (long sessions, cross-agent resumption, federation
|
|
339
|
+
sync) returning full state is a token tax. Resumption needs the delta,
|
|
340
|
+
not the world.
|
|
341
|
+
|
|
342
|
+
**How to apply.** Implement as a filter over the events.jsonl stream +
|
|
343
|
+
a diff against the referenced snapshot. Falls back to full context if
|
|
344
|
+
the reference point is too old (compacted out).
|
|
345
|
+
|
|
346
|
+
### P6.5 — MCP schema version strategy: 0.6 → 0.7 → 0.8 → 1.0
|
|
347
|
+
|
|
348
|
+
**What.** The MCP schema version (`SCHEMA_VERSION` in
|
|
349
|
+
`src/commands/mcp.ts`, currently `0.6.0`) is distinct from the app
|
|
350
|
+
version (`package.json`, currently `0.62.0`). Progression:
|
|
351
|
+
|
|
352
|
+
| Step | MCP schema | App version | Scope |
|
|
353
|
+
|---|---|---|---|
|
|
354
|
+
| Now | 0.6.0 | 0.62.x | baseline |
|
|
355
|
+
| Patches | 0.7.0 | 0.63.x | P6.1–P6.4 + provenance rollout |
|
|
356
|
+
| Migration | 0.8.0 | 0.64.x | `brainclaw migrate` + candidate archive |
|
|
357
|
+
| Phase 3 | 1.0.0 | 1.0.0 | canonical 6 verbs + legacy removal |
|
|
358
|
+
|
|
359
|
+
**Why.** App version tracks code changes; schema version tracks the
|
|
360
|
+
contract MCP clients bind to. Agents that cache tool catalogs need to
|
|
361
|
+
know when verbs changed shape.
|
|
362
|
+
|
|
363
|
+
**How to apply.** Bump `SCHEMA_VERSION` at each step. Tool catalog
|
|
364
|
+
response always includes schema_version so clients can invalidate.
|
|
365
|
+
|
|
366
|
+
### P6.6 — Pending candidates archived on migration
|
|
367
|
+
|
|
368
|
+
**What.** On v1.0 migration, existing candidates are not promoted or
|
|
369
|
+
rejected — they are archived to `.brainclaw/archive/candidates/` with a
|
|
370
|
+
manifest listing their original paths. The runtime stops reading them.
|
|
371
|
+
|
|
372
|
+
**Why.** No information loss (archive stays on disk for later
|
|
373
|
+
inspection), no forced triage on the operator, clean cutover.
|
|
374
|
+
|
|
375
|
+
**How to apply.** `brainclaw migrate --to-schema=1.0` copies
|
|
376
|
+
`.brainclaw/memory/candidates/` to `.brainclaw/archive/candidates/<date>/`,
|
|
377
|
+
writes an index, removes the live directory.
|
|
378
|
+
|
|
379
|
+
### P6.7 — Schema migration as a hard pre-Phase-3 step
|
|
380
|
+
|
|
381
|
+
**What.** Do not start Phase 3 (the grammar refactor) until
|
|
382
|
+
`brainclaw migrate` command exists and has been dogfooded on both live
|
|
383
|
+
installations (this machine + the monorepo test server).
|
|
384
|
+
|
|
385
|
+
**Why.** Phase 3 ships the canonical grammar. Existing stores must
|
|
386
|
+
upgrade cleanly to v1.0 schema before any tool rewrites remove the
|
|
387
|
+
legacy paths. Migration first = safety net; grammar refactor second =
|
|
388
|
+
execute with confidence.
|
|
389
|
+
|
|
390
|
+
**How to apply.** Migration plan (`feat/v1-schema-migration`, see §7)
|
|
391
|
+
is a hard blocker on the Phase 3 plan (`feat/phase-3-canonical-grammar`).
|
|
392
|
+
|
|
393
|
+
### P6.8 — Keep runtime_note / instruction / capability/tool distinct
|
|
394
|
+
|
|
395
|
+
**What.** Reviewers recommended leaving runtime_note, instruction
|
|
396
|
+
layers, and capability/tool as distinct entities for v1.0. They were
|
|
397
|
+
flagged as "examine further" in §5 — verdict is *keep as-is*.
|
|
398
|
+
|
|
399
|
+
**Why.** Instructions carry lifecycle triggers (`post-claim`,
|
|
400
|
+
`pre-session-end`) that constraints do not. Capability vs tool has a
|
|
401
|
+
semantic distinction (what the project *can do* vs what it *uses*)
|
|
402
|
+
that matters for discoverability. Runtime notes remain a natural
|
|
403
|
+
slot for low-confidence, scoped observations that do not yet deserve
|
|
404
|
+
promotion to decision/trap. Premature merger would lose information.
|
|
405
|
+
|
|
406
|
+
**How to apply.** No change for v1.0. Flag for a dedicated audit pass
|
|
407
|
+
post-v1.0 once usage data confirms or contradicts the distinctions.
|
|
408
|
+
|
|
409
|
+
## §7 — Consolidated Phase 3 checklist
|
|
410
|
+
|
|
411
|
+
Hard prerequisite before any item below: **`feat/v1-schema-migration`
|
|
412
|
+
plan must be executed and dogfooded** (see P6.7).
|
|
413
|
+
|
|
414
|
+
Phase 3 itself is sliced into nine sub-items; each is independently
|
|
415
|
+
mergeable behind a feature flag or catalog filter:
|
|
416
|
+
|
|
417
|
+
- **3a — EntityRegistry core.** New `src/core/entity-registry.ts`:
|
|
418
|
+
short-label prefixes, updatable-field Zod schemas, transition
|
|
419
|
+
matrices, side-effect map. Grammar consistency tests.
|
|
420
|
+
- **3b — Six canonical CRUD verbs.** Implement `bclaw_find`,
|
|
421
|
+
`bclaw_get`, `bclaw_create`, `bclaw_update`, `bclaw_remove`,
|
|
422
|
+
`bclaw_transition` consuming EntityRegistry. Behind `catalog: "all"`
|
|
423
|
+
filter first, public in `catalog: "default"` at v1.0.
|
|
424
|
+
- **3c — `bclaw_context(kind)` unified.** Consolidates
|
|
425
|
+
`bclaw_get_context`, `bclaw_get_execution_context`,
|
|
426
|
+
`bclaw_get_agent_board`, `bclaw_get_agent_board_summary` under one
|
|
427
|
+
intent with a `kind` discriminator. Includes `kind='delta'` from
|
|
428
|
+
P6.4.
|
|
429
|
+
- **3d — `bclaw_dispatch(intent)` unified.** Consolidates
|
|
430
|
+
`bclaw_dispatch_analysis`, `bclaw_dispatch_review`, and the raw
|
|
431
|
+
`bclaw_dispatch`. Review sub-intent carries `openLoop` flag for the
|
|
432
|
+
review_loop escalation path.
|
|
433
|
+
- **3e — Handoff downscale.** Strip the review sub-object, remove
|
|
434
|
+
`bclaw_update_handoff`, expose `bclaw_correct_handoff` for tombstone
|
|
435
|
+
corrections (P6.1). Federation push/pull preserved end-to-end.
|
|
436
|
+
- **3f — Provenance rollout.** Apply discriminated-union provenance
|
|
437
|
+
(P6.3) to decision/constraint/trap/handoff/runtime_note. Default
|
|
438
|
+
memory reads filter on confidence + non-legacy.
|
|
439
|
+
- **3g — Legacy deprecation warnings.** Keep old tool names in
|
|
440
|
+
`catalog: "all"` with `LEGACY_MCP_TOOL_WARNINGS` entries pointing to
|
|
441
|
+
the new verb. Warnings fire server-side on every call during 0.9.x.
|
|
442
|
+
- **3h — Docs sync.** Update `docs/integrations/mcp.md`,
|
|
443
|
+
`CLAUDE.md`, release notes, and agent profile exports. Canonical
|
|
444
|
+
grammar example galleries.
|
|
445
|
+
- **3i — Legacy removal + v1.0 cut.** Remove deprecated tool names
|
|
446
|
+
from the MCP surface entirely. Bump schema to 1.0.0 and app to
|
|
447
|
+
1.0.0. Public launch candidate.
|
|
448
|
+
|
|
449
|
+
Slices 3a–3b are the architecture core; 3c–3e are the intent
|
|
450
|
+
consolidations; 3f is cross-cutting; 3g–3i are the soft→hard cutover.
|
|
451
|
+
|
|
452
|
+
## Sources
|
|
453
|
+
|
|
454
|
+
- `docs/product/agent-first-model.md` — engine/cockpit two-layer model
|
|
455
|
+
- `docs/concepts/loop-engine.md` — v8 RFC for the loop primitive
|
|
456
|
+
- Session transcript 2026-04-18 (strategic round 2) — post-consult
|
|
457
|
+
integration pass
|
|
458
|
+
- Memory decisions `cnd#587` (product model) and `cnd#588` (loop
|
|
459
|
+
protocols roadmap)
|
|
460
|
+
- External consult verdicts 2026-04-18 (codex / claude-code /
|
|
461
|
+
github-copilot) — all `proceed_with_patches`, patches integrated in
|
|
462
|
+
§6
|
|
@@ -65,16 +65,16 @@ Local-first gives teams:
|
|
|
65
65
|
- Git history for shared project state
|
|
66
66
|
- compatibility with enterprise or offline environments
|
|
67
67
|
|
|
68
|
-
## License
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
The
|
|
73
|
-
|
|
74
|
-
- the local-first brainclaw core is
|
|
75
|
-
- remote shared-memory, hosted collaboration, advanced dashboards, and related private add-ons will stay separate commercial products
|
|
76
|
-
|
|
77
|
-
The
|
|
68
|
+
## License
|
|
69
|
+
|
|
70
|
+
brainclaw core is published under the **MIT License**.
|
|
71
|
+
|
|
72
|
+
The product split is:
|
|
73
|
+
|
|
74
|
+
- the local-first brainclaw core is MIT
|
|
75
|
+
- remote shared-memory, hosted collaboration, advanced dashboards, and related private add-ons will stay separate commercial products
|
|
76
|
+
|
|
77
|
+
The MIT core covers the local coordination layer:
|
|
78
78
|
|
|
79
79
|
- local project memory
|
|
80
80
|
- local MCP and CLI workflows
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Joining a project that already uses brainclaw
|
|
2
|
+
|
|
3
|
+
You cloned a repo and noticed `.brainclaw/` already exists — someone (or something) has set it up before you. This page walks through the read-then-register path for arriving on a configured project, which is **different** from creating a new one.
|
|
4
|
+
|
|
5
|
+
If the repo is brand new and `.brainclaw/` is absent, see [quickstart.md](quickstart.md) instead.
|
|
6
|
+
|
|
7
|
+
## When to use this page
|
|
8
|
+
|
|
9
|
+
| Situation | Use |
|
|
10
|
+
|---|---|
|
|
11
|
+
| Repo has no `.brainclaw/` | [quickstart.md](quickstart.md) (`brainclaw init`) |
|
|
12
|
+
| Repo has `.brainclaw/`, you've never worked here | **this page** (`brainclaw enable-agent` + discovery) |
|
|
13
|
+
| Repo has memory but it was scraped from docs/git, not curated | [bootstrap](concepts/workspace-bootstrapping.md) (`brainclaw bootstrap --apply`) |
|
|
14
|
+
|
|
15
|
+
The three commands target different lifecycle stages: `init` creates, `bootstrap` extracts, `enable-agent` joins.
|
|
16
|
+
|
|
17
|
+
## Step 0 — verify your install is compatible
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
brainclaw --version
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Compare with what the project expects. If `.brainclaw/config.yaml` has a `version_policy` block, it tells you the minimum version the project requires. If your local version is older, `brainclaw doctor --json` will surface a `version_policy` failure.
|
|
24
|
+
|
|
25
|
+
To upgrade:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm install -g brainclaw@latest
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
(or pull the team's local-pack tarball from `.releases/` if the project doesn't publish to npm.)
|
|
32
|
+
|
|
33
|
+
## Step 1 — register your agent on this project
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
brainclaw enable-agent <agent-name>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
`<agent-name>` is one of `claude-code`, `codex`, `copilot`, `cursor`, `cline`, `windsurf`, `continue`, `kilocode`, `roo`, `opencode`, `antigravity`, etc. (see [docs/integrations/overview.md](integrations/overview.md) for the full list).
|
|
40
|
+
|
|
41
|
+
This command:
|
|
42
|
+
- Detects the agent in your environment (env vars, installed CLIs, IDE)
|
|
43
|
+
- Writes the agent's native instruction file (`CLAUDE.md`, `.cursor/rules/`, `AGENTS.md`, etc.) from the project's current memory
|
|
44
|
+
- Wires the MCP server config so the agent can call brainclaw at runtime
|
|
45
|
+
- Adds the generated files to `.gitignore` (they're regenerated locally per developer)
|
|
46
|
+
|
|
47
|
+
If you use multiple agents on the same project, run `enable-agent` once per agent.
|
|
48
|
+
|
|
49
|
+
## Step 2 — read what already exists
|
|
50
|
+
|
|
51
|
+
Before touching code, load the project's accumulated knowledge so you don't re-discover what others already learned.
|
|
52
|
+
|
|
53
|
+
### Via the CLI (you, the human)
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
brainclaw context # full project memory as text (constraints, decisions, traps, plans)
|
|
57
|
+
brainclaw agent-board # current state of plans, claims, and open handoffs
|
|
58
|
+
brainclaw stale list # what looks abandoned and might need attention
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Via your agent (recommended day-to-day)
|
|
62
|
+
|
|
63
|
+
Tell the agent to call:
|
|
64
|
+
|
|
65
|
+
```text
|
|
66
|
+
bclaw_work(intent="resume")
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
This single MCP call returns: open plans, recent decisions, active constraints, known traps, latest handoff narrative, plus a context-diff hint. Your agent reads that *before* writing any code.
|
|
70
|
+
|
|
71
|
+
For a narrower view focused on the area you're about to touch:
|
|
72
|
+
|
|
73
|
+
```text
|
|
74
|
+
bclaw_context(kind="memory", path="src/<area>/")
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Step 3 — discover in-flight work
|
|
78
|
+
|
|
79
|
+
Several things may be already underway when you arrive:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# Plans that other agents/humans started
|
|
83
|
+
brainclaw plan list --status in_progress
|
|
84
|
+
|
|
85
|
+
# Scopes someone else has claimed (don't touch those without coordination)
|
|
86
|
+
brainclaw claim list
|
|
87
|
+
|
|
88
|
+
# Sequences with parallel lanes still active
|
|
89
|
+
brainclaw sequence list --status active
|
|
90
|
+
|
|
91
|
+
# Open handoffs waiting for a reviewer
|
|
92
|
+
brainclaw inbox list
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Or one-shot via MCP:
|
|
96
|
+
|
|
97
|
+
```text
|
|
98
|
+
bclaw_context(kind="board")
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
The board surfaces all four (plans, claims, sequences, handoffs) in one structured response.
|
|
102
|
+
|
|
103
|
+
## Step 4 — pick what to work on
|
|
104
|
+
|
|
105
|
+
You have a few honest options:
|
|
106
|
+
|
|
107
|
+
1. **Pick up an open handoff** — `brainclaw inbox list` shows handoffs targeted at you (or unassigned). Read the handoff narrative, then claim its scope and start.
|
|
108
|
+
2. **Take a `todo` plan** — `brainclaw plan list --status todo` returns work nobody has started yet.
|
|
109
|
+
3. **Start something new** — create a fresh plan with `bclaw_create(entity="plan", data={…})`, then claim its scope. Make sure you're not duplicating an existing plan first.
|
|
110
|
+
|
|
111
|
+
In all three cases, the workflow is then the same: `bclaw_work(intent="execute", scope=…, planId=…)` opens a session, claims the scope (with an isolated git worktree), and loads the relevant context.
|
|
112
|
+
|
|
113
|
+
## Step 5 — verify your setup is healthy before commiting changes
|
|
114
|
+
|
|
115
|
+
Once you've started working, sanity-check:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
brainclaw doctor
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
This runs a series of checks: state validity, MCP runtime health (post-pln#478), agent-integration declarations, claim hygiene, freshness markers. If anything is amber or red, see [docs/concepts/troubleshooting.md](concepts/troubleshooting.md) for the runbook.
|
|
122
|
+
|
|
123
|
+
## What this page does *not* cover
|
|
124
|
+
|
|
125
|
+
- **Creating a new project** → [quickstart.md](quickstart.md)
|
|
126
|
+
- **Extracting context from an existing repo without `.brainclaw/`** → [bootstrap](concepts/workspace-bootstrapping.md)
|
|
127
|
+
- **Setting up brainclaw on your machine for the first time** → [docs/integrations/overview.md](integrations/overview.md) (the `brainclaw setup` flow)
|
|
128
|
+
- **Recovering from a degraded state** → [docs/concepts/troubleshooting.md](concepts/troubleshooting.md)
|
|
129
|
+
|
|
130
|
+
## See also
|
|
131
|
+
|
|
132
|
+
- [docs/quickstart.md](quickstart.md) — full first-time setup (greenfield)
|
|
133
|
+
- [docs/concepts/plans-and-claims.md](concepts/plans-and-claims.md) — claim/plan model
|
|
134
|
+
- [docs/concepts/multi-agent-workflows.md](concepts/multi-agent-workflows.md) — coordination patterns once you're settled in
|
|
135
|
+
- [docs/concepts/troubleshooting.md](concepts/troubleshooting.md) — when things go wrong
|