onboard-map
Skill0 starsChanged 4 months agoMITView on GitHub
Phase 1 of 3 in the onboard chain (map → deepen → digest) — the durable repo-onboarding pipeline. Entry point: fans out fairy-tales explore-role subagents in parallel, via durable quests, to map an unfamiliar repo's entry points, largest/most- connected files, config, test layout, dependency graph, and conventions. This phase starts the durable chain run (state tracked by the chain tool). Trigger whenever the user wants to onboard onto an unfamiliar codebase, learn a new repo, or start the onboard chain: "onboard-map", "onboard this repo", "map the codebase", "start the onboard chain", "learn this project", or standalone "onboard".
- Reads credentials
In this repository21 other files it gives its agents.
- bughunt-diagnoseSkill
- bughunt-fixSkill
- bughunt-reproSkill
- bughunt-verifySkill
- feature-ship-buildSkill
- feature-ship-reviewSkill
- feature-ship-shipSkill
- feature-ship-specSkill
- migrate-inventorySkill
- migrate-transformSkill
- migrate-verifySkill
- onboard-deepenSkill
- onboard-digestSkill
- release-bumpSkill
- release-changelogSkill
- release-publishSkill
- release-tagSkill
- release-verifySkill
- research-artifactSkill
- research-gatherSkill
- research-synthesizeSkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 5 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 26
All chain state is managed by the chain tool: authoritative JSON at .pi/fairy-tales/chains/onboard/state.json with a human-readable …
- Very specific: line 36
Call the chain tool with action: "status", chain: "onboard":
- Distinctive: line 38
If an active run exists, an onboarding session is already mid-flight (the status shows its current phase).
- Very specific: line 42
If the tool reports the chain is locked by another session, abort and tell the user.
- Distinctive: line 44
If there is no run, or the last run is complete/abandoned (a completed prior run over the same repo just means its digest already exists — …
- Very specific: line 76
If a returned quest is already done (crash-resume case), reuse its stored result.
- Distinctive: line 89
Call the chain tool:
- Distinctive: line 108
After completing this phase, output exactly:
- Distinctive: line 113
Do not start the next phase.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill 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
Onboard: Map
Chain version: 2 (durable state contract — see docs/STATE-CONTRACT.md)
Phase 1 of 3: onboard-map → onboard-deepen → onboard-digest
Overview
Entry point of the onboard chain. Fans out fairy-tales explore-role subagents in
parallel, via durable quests, to build a first structural map of an unfamiliar repo —
before anyone reads a single file line by line.
All chain state is managed by the chain tool: authoritative JSON at
.pi/fairy-tales/chains/onboard/state.json with a human-readable state.md
projection beside it (a legacy .onboard-state.md from an older version is imported
automatically). Never create or edit state files by hand, and never create lock files
— the tool locks for you.
Workflow
Step 1 — Start the run (entry phase)
Call the chain tool with action: "status", chain: "onboard":
- If an active run exists, an onboarding session is already mid-flight (the status
shows its current phase). Show the user the status and ask whether to resume from
the current phase (run that phase's skill) or discard it (
action: "abandon") and start over. Do not silently overwrite. - If the tool reports the chain is locked by another session, abort and tell the user;
a dead session's lock can be cleared with
action: "unlock". - If there is no run, or the last run is complete/abandoned (a completed prior run over
the same repo just means its digest already exists — note that, then continue with a
fresh map), start fresh:
action: "start", chain: "onboard", task: "onboard <repo/path>". Note therunIdin the response — it keys this run's quest dedupe keys.
Step 2 — Fan out explore-role subagents via durable quests
Because mapping a repo can be long-running and must survive a session restart, use the
quest tool rather than bare agent calls. For each concern below, enqueue a quest
with role: "explore", a self-contained task, and:
dedupeKey: "onboard/<runId>/map/<area>"(<area>is the concern id below) — re-running a crashed phase returns the same quest instead of duplicating work;chain: { chain: "onboard", runId: "<runId>", phase: "map" };retainUntilConsumed: true.
Issue all six enqueue calls in one message so they run in parallel:
entry-points— how the project is launched/served (main,bin,index, framework entrypoints, CLI commands,package.json/pyproject.tomlscripts).hotspots— the files with the most imports-in and imports-out (a cheap proxy for "core" modules), plus raw largest-by-line-count files.config— env files, config loaders, feature flags, build tooling (*.config.*,.env*, CI workflow files).tests— test framework(s) in use, directory conventions, how to run the suite, coverage of the hotspot files found above.dep-graph— top-level module/package boundaries and how they depend on each other (a coarse graph, not a full call graph).conventions— naming, formatting, commit style, anyCLAUDE.md/CONTRIBUTING.mdalready in the repo.
If a returned quest is already done (crash-resume case), reuse its stored result;
otherwise quest action run with its id and collect the result. After extracting
what's needed into chain state (Step 4), quest action consume each quest by id.
Step 3 — Assemble the map
Merge the six quest results into one consolidated map: entry points, hotspot files
(ranked), config surface, test layout, dependency graph, conventions. This is the raw
material Phase 2 (onboard-deepen) will target for deep reads — flag the top 3-6
hotspots explicitly so the next phase knows exactly what to read deeply.
Step 4 — Complete the phase
Call the chain tool:
action: "complete-phase", chain: "onboard", phase: "map",
summary: "consolidated repo map assembled (entry points, hotspots, config, tests, dep graph, conventions); top hotspots flagged for Phase 2: <list>",
data: {
"map": "<the consolidated map, in full, as markdown>",
"hotspots": [
{ "file": "<path>", "reason": "<why it's a hotspot>" }
]
},
artifacts: { "mapQuests": "<quest ids>" }The tool validates this is the current phase, advances the run to deepen, and
rewrites the JSON + markdown projection atomically.
Handoff
After completing this phase, output exactly:
Phase 1 complete. Chain state updated (
.pi/fairy-tales/chains/onboard/state.json). Run/onboard-deepento begin Phase 2.
Do not start the next phase. Do not offer to continue. Output only the handoff line and stop.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

