/bootstrap Skill
Seeds a knowledge store by fan-out exploration of a codebase's architecture. Identifies domains (directories/modules), dispatches Explore agents to investigate each one in parallel, then synthesizes and files findings via lore capture at the lead level. All entries are filed at confidence: medium with source: bootstrap. Supports incremental execution — bootstrap specific directories now, others later — using plan.md checkboxes for progress tracking.
Resolve Work Path
lore resolve
Set KNOWLEDGE_DIR to the result and WORK_DIR to $KNOWLEDGE_DIR/_work.
Step 1: Scope
Run the scoping script to identify domains for exploration.
- Parse arguments: if directory paths were provided (e.g.,
/bootstrap src/auth src/api), pass them to the script. Otherwise, scope the entire repo.
- Run scoping:
lore bootstrap scope [optional dir args...]
Stdout: JSON array of domain objects [{"path": "src/auth", "description": "...", "languages": ["Python"]}].
Stderr: tree output for each scoped directory (useful context but not parsed).
- Parse the JSON output. Present the domain list to the user:
[bootstrap] Scoped N domains:
1. src/auth — Authentication module (Python)
2. src/api — API layer (Node.js)
3. lib/ — Library modules
...
Add, remove, or merge domains? (Enter to proceed)
- Allow the user to adjust: add new paths, remove irrelevant ones (e.g.,
vendor/, dist/), or merge related directories into a single domain. Wait for confirmation before proceeding.
Step 2: Team Setup
Create the agent team and one task per domain.
Check for existing work item: Look for a bootstrap-* work item in $WORK_DIR/. If found, load it for resume (see "Resuming a Bootstrap" below). If not found, create one:
lore work create --title "Bootstrap <repo-name>" --tags bootstrap
Set SLUG to the resulting slug.
Create the team (MUST precede TaskCreate):
TeamCreate: team_name="bootstrap-<SLUG>", description="Bootstrapping knowledge for <repo-name>"
Read your team lead name from ~/.claude/teams/bootstrap-<SLUG>/config.json.
Create one task per domain using the scoping JSON:
TaskCreate:
subject: "Explore: <domain path>"
description: |
Explore the <domain path> directory and report architectural findings.
**Scope:** <domain path>
**Languages:** <languages array from scoping, e.g., ["Python", "Node.js"]>
**Description:** <description from scoping JSON>
Investigate and report:
- Architecture: how is this module/directory structured? What are the layers?
- Key patterns: design patterns, conventions, idioms used
- Design rationale: why is this module structured this way? What constraints or decisions shaped it?
- Behavioral pitfalls: non-obvious behaviors, gotchas, or rules that would bite a developer new to this area
- Entry points: main files, exports, public API surface
- Data flow: how data moves through this module
- Dependencies: internal (what other parts of the codebase does this depend on) and external (third-party packages)
- Key files: the most important files with brief descriptions
**Report format:** Send findings to "<team-lead-name>" via SendMessage with:
**Domain:** <path>
**Architecture:** (bullets)
**Key patterns:** (bullets)
**Design rationale:** why is this module structured this way? What constraints shaped it? (bullets)
**Behavioral directives:** non-obvious behaviors, pitfalls, or rules that would bite a developer new to this area (bullets)
**Entry points:** (bullets)
**Data flow:** (1-2 sentences)
**Dependencies:** internal: ..., external: ...
**Key files:** (paths with descriptions)
**IMPORTANT:** Do NOT call `lore capture`. Report findings only — the lead handles all filing.
activeForm: "Exploring <domain path>"
Set up phase dependencies: Domains are independent — no cross-domain blocking. All tasks can run in parallel.
Step 3: Explorer Prompts
Spawn Explore agents to investigate each domain in parallel.
Pre-fetch knowledge per domain — before constructing prompts:
PRIOR_KNOWLEDGE=$(lore prefetch "<domain path>" --format prompt --limit 5)
Get directory tree for each domain:
DOMAIN_TREE=$(tree -L 3 --dirsfirst -I 'node_modules|.git|vendor|__pycache__|dist|build|.next|target|coverage' <domain-path>)
Spawn agents — launch min(domain_count, 4) agents in a single message:
Task:
subagent_type: "general-purpose"
model: "sonnet"
team_name: "bootstrap-<SLUG>"
name: "explorer-N"
mode: "bypassPermissions"
prompt: |
You are explorer-N on the bootstrap-<SLUG> team.
<embed $PRIOR_KNOWLEDGE here>
## Directory Structure
<embed $DOMAIN_TREE here>
## Workflow
1. Call TaskList to see available exploration tasks
2. Claim one: TaskUpdate with owner=your name, status=in_progress
3. Read the full task with TaskGet
4. Explore the domain using Glob, Grep, Read:
- Start with entry points and key files
- Read enough code to understand architecture, not every line
- Focus on: structure, patterns, conventions, data flow, dependencies, design rationale, behavioral pitfalls
5. Send findings to "<team-lead-name>" via SendMessage:
summary: "Findings: <domain path>"
content: |
**Domain:** <path>
**Architecture:**
- <structural observations>
**Key patterns:**
- <design patterns, conventions, idioms>
**Design rationale:**
- <why is this module structured this way? what constraints or decisions shaped it?>
**Behavioral directives:**
- <non-obvious behaviors, pitfalls, or rules that would bite a developer new to this area>
**Entry points:**
- <main files, exports, public API>
**Data flow:** <how data moves>
**Dependencies:**
- Internal: <other modules this depends on>
- External: <third-party packages>
**Key files:**
- <path>: <description>
**Observations:**
- <patterns that span beyond this domain, anything surprising or non-obvious>
**IMPORTANT:** Do NOT call `lore capture` — report findings only.
6. Mark task completed: TaskUpdate with status=completed
7. Call TaskList — claim next unclaimed task if available
8. When no tasks remain, you're done
Keep findings to 500-1500 characters. Facts over opinions.
Focus on what a developer new to this codebase would need to know.
If more domains than agents, agents pick up additional tasks after completing their first (self-service model).
Step 4: Collection
Persist findings as they arrive for synthesis.
As explorer messages arrive (delivered automatically), write each to findings.md in the work item directory ($WORK_DIR/<SLUG>/findings.md):
## <Domain Path>
**Explored by:** explorer-N
**Timestamp:** <ISO timestamp>
<paste the full findings report from the agent>
---
Append each finding — findings.md is the durable record that survives compaction.
When all exploration tasks are complete:
- Send
shutdown_request to all explorer agents via SendMessage
- Run
TeamDelete to clean up the team
- Proceed to Step 5
Step 5: Synthesis
Group findings by theme, flag contradictions, and draft knowledge entries.
Read findings.md from the work item directory.
Group by theme, not just domain. Findings often reveal cross-cutting patterns:
- Domain-specific architecture → files to
domains/<area> category
- Cross-cutting conventions (error handling, logging, testing patterns) → files to
conventions/ category
- Architectural patterns (data flow, layering, service boundaries) → files to
architecture/ category
- Gotchas and non-obvious behaviors → files to
gotchas/ category
Flag contradictions: Check for cases where two agents describe the same file, pattern, or module differently. List contradictions explicitly:
[contradiction] explorer-1 says auth uses middleware pattern, explorer-3 says auth uses decorator pattern
→ Verify: read src/auth/index.ts to resolve
Resolve contradictions by reading the relevant files before filing.
Draft entry list. Bootstrap drafts eagerly — Step 6 is the pruning pass, not this step. When in doubt, draft the entry.
Baseline conditions (all three must hold):
- Reusable beyond a single task? (yes — bootstrap targets architectural knowledge)
- Non-obvious to someone new? (the whole point of bootstrap)
- Stable enough to be worth filing? (skip anything that looks mid-refactor)
High-value categories — draft any finding that fits one or more:
- Design rationale — why the architecture is this way, what was rejected, what constraints drove decisions
- Architectural models — how components connect, what the layers are, where data flows
- Cross-cutting conventions — patterns that span many files and can't be seen from one
- Behavioral directives — non-obvious behaviors, pitfalls, or rules that would bite someone new
- Mental models — frameworks for recognizing categories of situations
- Directional intent — aspirations and context not yet realized in code
The Synthesis condition from the main capture gate (requiring cross-source combination) is satisfied structurally here: the lead synthesizes across multiple explorer reports, so cross-domain entries qualify by construction.
Draft each entry with:
Title: <concise insight title>
Insight: <1-3 sentence description>
Category: <domains/<area> | conventions | architecture | gotchas>
Related files: <key file paths>
Deduplicate: If multiple agents reported the same pattern, merge into a single entry with the best description. Do not create duplicate entries.
Step 6: Filing
Present entries to the user, then file approved ones via a single batch-capture call.
Present the entry list to the user for review:
[bootstrap] Synthesized N entries from M domains:
1. [domains/auth] "Auth uses middleware chain pattern"
→ src/auth/middleware.ts, src/auth/index.ts
2. [conventions] "All API routes follow controller-service-repo layering"
→ src/api/users/controller.ts, src/api/users/service.ts
3. [gotchas] "Database migrations must run before seed scripts"
→ scripts/migrate.sh, scripts/seed.sh
...
Prune freely — entries are drafted with high eagerness. Drop anything that seems obvious, unstable, or better expressed in code. (e.g., "drop 3, edit 2")
Process user feedback: Remove rejected entries, apply edits.
Write approved entries to a JSON file at $WORK_DIR/<SLUG>/_batch_entries.json:
[
{
"insight": "<insight text>",
"context": "Discovered during bootstrap of <repo>",
"category": "<category>",
"confidence": "medium",
"related_files": "<comma-separated paths>"
},
...
]
One object per approved entry. Fields match lore capture flags.
File all entries in one call:
lore batch-capture --file "$WORK_DIR/<SLUG>/_batch_entries.json"
Run heal once regardless of partial failure:
lore heal
Step 7: Spot-Check
Verify a random sample of filed entries against actual code.
- Pick 3 random entries from the set just filed.
- For each entry, read the
related_files listed in the entry.
- Verify the claims are accurate — does the code actually do what the entry says?
- Report results:
[bootstrap] Spot-check (3/N entries):
"Auth middleware chain" — verified, src/auth/middleware.ts exports chain at L45
"Controller-service layering" — verified, pattern holds in 4/4 sampled routes
"DB migrations before seeds" — INACCURATE: seed.sh actually checks migration status first
- If any entry is inaccurate, offer to correct or remove it. This step is advisory — it does not block completion.
Step 8: Cleanup
Wrap up the bootstrap session.
Update work item notes with a session summary:
# Append to notes.md
## YYYY-MM-DDTHH:MM
**Focus:** Bootstrap via /bootstrap
**Domains explored:** <list>
**Entries filed:** N entries across M categories
**Contradictions found:** <count and brief descriptions, or "none">
**Spot-check:** <pass/fail summary>
**Next:** <remaining domains if partial, or "Bootstrap complete">
Check off completed phases in plan.md — each bootstrapped domain's scope task gets marked [x].
If all domains are bootstrapped:
- Archive the work item:
lore work archive "<SLUG>"
If partial completion (some domains remain):
- Leave the work item active for later
/bootstrap resumption
- Run
lore work heal
Report to user:
[bootstrap] Done.
Domains explored: N
Entries filed: M (confidence: medium, source: bootstrap)
Spot-check: K/3 verified
Remaining: <list if any, or "none — bootstrap complete">
Resuming a Bootstrap
When /bootstrap is called and an existing bootstrap-* work item is found:
- Read
findings.md and plan.md to determine which domains are already bootstrapped (checked phases).
- Re-run scoping (
bootstrap-scope.sh) to detect any new directories since the last run.
- Present the current state:
[bootstrap] Resuming — found existing bootstrap work item.
Already explored: src/auth, src/api, lib/
New/remaining: src/workers, tests/
Proceed with remaining domains? (or specify different scope)
- User confirms scope. Proceed from Step 2 with only the unchecked/new domains.
- New findings append to existing
findings.md. New entries go through the same synthesis/filing/spot-check flow.
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: bootstrap-33description: Bootstrap a knowledge store by exploring codebase architecture — use when starting with a new or empty project, seeding knowledge, or running /bootstrap Use when this capability is needed.4---56# /bootstrap Skill78Seeds a knowledge store by fan-out exploration of a codebase's architecture. Identifies domains (directories/modules), dispatches Explore agents to investigate each one in parallel, then synthesizes and files findings via `lore capture` at the lead level. All entries are filed at `confidence: medium` with `source: bootstrap`. Supports incremental execution — bootstrap specific directories now, others later — using plan.md checkboxes for progress tracking.910## Resolve Work Path1112```bash13lore resolve14```15Set `KNOWLEDGE_DIR` to the result and `WORK_DIR` to `$KNOWLEDGE_DIR/_work`.1617## Step 1: Scope1819Run the scoping script to identify domains for exploration.20211. Parse arguments: if directory paths were provided (e.g., `/bootstrap src/auth src/api`), pass them to the script. Otherwise, scope the entire repo.222. Run scoping:23 ```bash24 lore bootstrap scope [optional dir args...]25 ```26 Stdout: JSON array of domain objects `[{"path": "src/auth", "description": "...", "languages": ["Python"]}]`.27 Stderr: tree output for each scoped directory (useful context but not parsed).283. Parse the JSON output. Present the domain list to the user:29 ```30 [bootstrap] Scoped N domains:31 1. src/auth — Authentication module (Python)32 2. src/api — API layer (Node.js)33 3. lib/ — Library modules34 ...35 Add, remove, or merge domains? (Enter to proceed)36 ```374. Allow the user to adjust: add new paths, remove irrelevant ones (e.g., `vendor/`, `dist/`), or merge related directories into a single domain. Wait for confirmation before proceeding.3839## Step 2: Team Setup4041Create the agent team and one task per domain.42431. **Check for existing work item:** Look for a `bootstrap-*` work item in `$WORK_DIR/`. If found, load it for resume (see "Resuming a Bootstrap" below). If not found, create one:44 ```bash45 lore work create --title "Bootstrap <repo-name>" --tags bootstrap46 ```47 Set `SLUG` to the resulting slug.48492. **Create the team** (MUST precede TaskCreate):50 ```51 TeamCreate: team_name="bootstrap-<SLUG>", description="Bootstrapping knowledge for <repo-name>"52 ```53543. **Read your team lead name** from `~/.claude/teams/bootstrap-<SLUG>/config.json`.55564. **Create one task per domain** using the scoping JSON:57 ```58 TaskCreate:59 subject: "Explore: <domain path>"60 description: |61 Explore the <domain path> directory and report architectural findings.6263 **Scope:** <domain path>64 **Languages:** <languages array from scoping, e.g., ["Python", "Node.js"]>65 **Description:** <description from scoping JSON>6667 Investigate and report:68 - Architecture: how is this module/directory structured? What are the layers?69 - Key patterns: design patterns, conventions, idioms used70 - Design rationale: why is this module structured this way? What constraints or decisions shaped it?71 - Behavioral pitfalls: non-obvious behaviors, gotchas, or rules that would bite a developer new to this area72 - Entry points: main files, exports, public API surface73 - Data flow: how data moves through this module74 - Dependencies: internal (what other parts of the codebase does this depend on) and external (third-party packages)75 - Key files: the most important files with brief descriptions7677 **Report format:** Send findings to "<team-lead-name>" via SendMessage with:78 **Domain:** <path>79 **Architecture:** (bullets)80 **Key patterns:** (bullets)81 **Design rationale:** why is this module structured this way? What constraints shaped it? (bullets)82 **Behavioral directives:** non-obvious behaviors, pitfalls, or rules that would bite a developer new to this area (bullets)83 **Entry points:** (bullets)84 **Data flow:** (1-2 sentences)85 **Dependencies:** internal: ..., external: ...86 **Key files:** (paths with descriptions)8788 **IMPORTANT:** Do NOT call `lore capture`. Report findings only — the lead handles all filing.89 activeForm: "Exploring <domain path>"90 ```91925. **Set up phase dependencies:** Domains are independent — no cross-domain blocking. All tasks can run in parallel.9394## Step 3: Explorer Prompts9596Spawn Explore agents to investigate each domain in parallel.97981. **Pre-fetch knowledge per domain** — before constructing prompts:99 ```bash100 PRIOR_KNOWLEDGE=$(lore prefetch "<domain path>" --format prompt --limit 5)101 ```1021032. **Get directory tree for each domain:**104 ```bash105 DOMAIN_TREE=$(tree -L 3 --dirsfirst -I 'node_modules|.git|vendor|__pycache__|dist|build|.next|target|coverage' <domain-path>)106 ```1071083. **Spawn agents** — launch `min(domain_count, 4)` agents in a single message:109 ```110 Task:111 subagent_type: "general-purpose"112 model: "sonnet"113 team_name: "bootstrap-<SLUG>"114 name: "explorer-N"115 mode: "bypassPermissions"116 prompt: |117 You are explorer-N on the bootstrap-<SLUG> team.118119 <embed $PRIOR_KNOWLEDGE here>120121 ## Directory Structure122 <embed $DOMAIN_TREE here>123124 ## Workflow125 1. Call TaskList to see available exploration tasks126 2. Claim one: TaskUpdate with owner=your name, status=in_progress127 3. Read the full task with TaskGet128 4. Explore the domain using Glob, Grep, Read:129 - Start with entry points and key files130 - Read enough code to understand architecture, not every line131 - Focus on: structure, patterns, conventions, data flow, dependencies, design rationale, behavioral pitfalls132 5. Send findings to "<team-lead-name>" via SendMessage:133 summary: "Findings: <domain path>"134 content: |135 **Domain:** <path>136 **Architecture:**137 - <structural observations>138 **Key patterns:**139 - <design patterns, conventions, idioms>140 **Design rationale:**141 - <why is this module structured this way? what constraints or decisions shaped it?>142 **Behavioral directives:**143 - <non-obvious behaviors, pitfalls, or rules that would bite a developer new to this area>144 **Entry points:**145 - <main files, exports, public API>146 **Data flow:** <how data moves>147 **Dependencies:**148 - Internal: <other modules this depends on>149 - External: <third-party packages>150 **Key files:**151 - <path>: <description>152 **Observations:**153 - <patterns that span beyond this domain, anything surprising or non-obvious>154155 **IMPORTANT:** Do NOT call `lore capture` — report findings only.156 6. Mark task completed: TaskUpdate with status=completed157 7. Call TaskList — claim next unclaimed task if available158 8. When no tasks remain, you're done159160 Keep findings to 500-1500 characters. Facts over opinions.161 Focus on what a developer new to this codebase would need to know.162 ```1631644. If more domains than agents, agents pick up additional tasks after completing their first (self-service model).165166## Step 4: Collection167168Persist findings as they arrive for synthesis.1691701. As explorer messages arrive (delivered automatically), **write each to `findings.md`** in the work item directory (`$WORK_DIR/<SLUG>/findings.md`):171 ```markdown172 ## <Domain Path>173 **Explored by:** explorer-N174 **Timestamp:** <ISO timestamp>175176 <paste the full findings report from the agent>177178 ---179 ```180 Append each finding — `findings.md` is the durable record that survives compaction.1811822. When all exploration tasks are complete:183 - Send `shutdown_request` to all explorer agents via SendMessage184 - Run `TeamDelete` to clean up the team185 - Proceed to Step 5186187## Step 5: Synthesis188189Group findings by theme, flag contradictions, and draft knowledge entries.1901911. **Read `findings.md`** from the work item directory.1921932. **Group by theme, not just domain.** Findings often reveal cross-cutting patterns:194 - Domain-specific architecture → files to `domains/<area>` category195 - Cross-cutting conventions (error handling, logging, testing patterns) → files to `conventions/` category196 - Architectural patterns (data flow, layering, service boundaries) → files to `architecture/` category197 - Gotchas and non-obvious behaviors → files to `gotchas/` category1981993. **Flag contradictions:** Check for cases where two agents describe the same file, pattern, or module differently. List contradictions explicitly:200 ```201 [contradiction] explorer-1 says auth uses middleware pattern, explorer-3 says auth uses decorator pattern202 → Verify: read src/auth/index.ts to resolve203 ```204 Resolve contradictions by reading the relevant files before filing.2052064. **Draft entry list.** Bootstrap drafts eagerly — Step 6 is the pruning pass, not this step. When in doubt, draft the entry.207208 **Baseline conditions** (all three must hold):209 - **Reusable** beyond a single task? (yes — bootstrap targets architectural knowledge)210 - **Non-obvious** to someone new? (the whole point of bootstrap)211 - **Stable** enough to be worth filing? (skip anything that looks mid-refactor)212213 **High-value categories** — draft any finding that fits one or more:214 - **Design rationale** — why the architecture is this way, what was rejected, what constraints drove decisions215 - **Architectural models** — how components connect, what the layers are, where data flows216 - **Cross-cutting conventions** — patterns that span many files and can't be seen from one217 - **Behavioral directives** — non-obvious behaviors, pitfalls, or rules that would bite someone new218 - **Mental models** — frameworks for recognizing categories of situations219 - **Directional intent** — aspirations and context not yet realized in code220221 The Synthesis condition from the main capture gate (requiring cross-source combination) is satisfied structurally here: the lead synthesizes across multiple explorer reports, so cross-domain entries qualify by construction.222223 Draft each entry with:224 ```225 Title: <concise insight title>226 Insight: <1-3 sentence description>227 Category: <domains/<area> | conventions | architecture | gotchas>228 Related files: <key file paths>229 ```2302315. **Deduplicate:** If multiple agents reported the same pattern, merge into a single entry with the best description. Do not create duplicate entries.232233## Step 6: Filing234235Present entries to the user, then file approved ones via a single batch-capture call.2362371. **Present the entry list** to the user for review:238 ```239 [bootstrap] Synthesized N entries from M domains:240241 1. [domains/auth] "Auth uses middleware chain pattern"242 → src/auth/middleware.ts, src/auth/index.ts243 2. [conventions] "All API routes follow controller-service-repo layering"244 → src/api/users/controller.ts, src/api/users/service.ts245 3. [gotchas] "Database migrations must run before seed scripts"246 → scripts/migrate.sh, scripts/seed.sh247 ...248249 Prune freely — entries are drafted with high eagerness. Drop anything that seems obvious, unstable, or better expressed in code. (e.g., "drop 3, edit 2")250 ```2512522. **Process user feedback:** Remove rejected entries, apply edits.2532543. **Write approved entries to a JSON file** at `$WORK_DIR/<SLUG>/_batch_entries.json`:255 ```json256 [257 {258 "insight": "<insight text>",259 "context": "Discovered during bootstrap of <repo>",260 "category": "<category>",261 "confidence": "medium",262 "related_files": "<comma-separated paths>"263 },264 ...265 ]266 ```267 One object per approved entry. Fields match `lore capture` flags.2682694. **File all entries in one call:**270 ```bash271 lore batch-capture --file "$WORK_DIR/<SLUG>/_batch_entries.json"272 ```273 - On success: delete `_batch_entries.json`.274 - On failure: retain `_batch_entries.json` and prompt the user:275 ```276 [bootstrap] batch-capture failed for N entries — _batch_entries.json retained.277 Retry with `lore batch-capture --file <path>`, or fix entries and re-run.278 ```279 Do not proceed to heal until the user resolves the failure.2802815. **Run heal once** regardless of partial failure:282 ```bash283 lore heal284 ```285286## Step 7: Spot-Check287288Verify a random sample of filed entries against actual code.2892901. Pick 3 random entries from the set just filed.2912. For each entry, read the `related_files` listed in the entry.2923. Verify the claims are accurate — does the code actually do what the entry says?2934. Report results:294 ```295 [bootstrap] Spot-check (3/N entries):296 "Auth middleware chain" — verified, src/auth/middleware.ts exports chain at L45297 "Controller-service layering" — verified, pattern holds in 4/4 sampled routes298 "DB migrations before seeds" — INACCURATE: seed.sh actually checks migration status first299 ```3005. If any entry is inaccurate, offer to correct or remove it. This step is advisory — it does not block completion.301302## Step 8: Cleanup303304Wrap up the bootstrap session.3053061. **Update work item notes** with a session summary:307 ```bash308 # Append to notes.md309 ```310 ```markdown311 ## YYYY-MM-DDTHH:MM312 **Focus:** Bootstrap via /bootstrap313 **Domains explored:** <list>314 **Entries filed:** N entries across M categories315 **Contradictions found:** <count and brief descriptions, or "none">316 **Spot-check:** <pass/fail summary>317 **Next:** <remaining domains if partial, or "Bootstrap complete">318 ```3193202. **Check off completed phases** in `plan.md` — each bootstrapped domain's scope task gets marked `[x]`.3213223. **If all domains are bootstrapped:**323 - Archive the work item: `lore work archive "<SLUG>"`3243254. **If partial completion** (some domains remain):326 - Leave the work item active for later `/bootstrap` resumption327 - Run `lore work heal`3283295. **Report to user:**330 ```331 [bootstrap] Done.332 Domains explored: N333 Entries filed: M (confidence: medium, source: bootstrap)334 Spot-check: K/3 verified335 Remaining: <list if any, or "none — bootstrap complete">336 ```337338## Resuming a Bootstrap339340When `/bootstrap` is called and an existing `bootstrap-*` work item is found:3413421. Read `findings.md` and `plan.md` to determine which domains are already bootstrapped (checked phases).3432. Re-run scoping (`bootstrap-scope.sh`) to detect any new directories since the last run.3443. Present the current state:345 ```346 [bootstrap] Resuming — found existing bootstrap work item.347 Already explored: src/auth, src/api, lib/348 New/remaining: src/workers, tests/349 Proceed with remaining domains? (or specify different scope)350 ```3514. User confirms scope. Proceed from Step 2 with only the unchecked/new domains.3525. New findings append to existing `findings.md`. New entries go through the same synthesis/filing/spot-check flow.353354---355> Converted and distributed by [TomeVault](https://tomevault.io/claim/anticorrelator) — claim your Tome and manage your conversions.356<!-- tomevault:4.0:skill_md:2026-04-13 -->