arrow-maintenance
Navigation and audit overlay for linked-intent development. Use when working with docs/arrows/ — orienting via index.yaml, auditing spec-to-code coherence,…
Bootstrap LID in an existing (brownfield) codebase. Deep-reads every file in the declared scope, offers lens-based clustering options, generates skeleton LLDs/HLD/EARS bottom-up, then creates arrow docs and prompts the user to flesh out the skeletons. Token-intensive by design.
$ npx -y skills add jszmajda/lid --skill map-codebase --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/map-codebaseContext preview
The summary Claude sees to decide when to auto-load this skill.
Bootstrap LID in an existing (brownfield) codebase. Deep-reads every file in the declared scope, offers lens-based clustering options, generates skeleton LLDs/HLD/EARS bottom-up, then creates arrow docs and prompts the user to flesh out the skeletons. Token-intensive by design.
name: map-codebase description: Bootstrap LID in an existing (brownfield) codebase. Deep-reads every file in the declared scope, offers lens-based clustering options, generates skeleton LLDs/HLD/EARS bottom-up, then creates arrow docs and prompts the user to flesh out the skeletons. Token-intensive by design. Use when asked to map a codebase, bootstrap arrows, reverse-engineer the design, or start LID on an existing project. disable-model-invocation: true
This skill maps an existing codebase into the arrow of intent. It works bottom-up: read all the code in scope first, then propose lens-based clusterings for the user to choose among, then generate skeleton docs that describe what actually exists.
See [brownfield-bootstrap.md](references/brownfield-bootstrap.md) for detailed guidance per phase.
These govern every phase. Apply consistently.
1. **Read actual code, don't guess.** Every claim in generated artifacts traces to file/line evidence. Speculation is flagged explicitly rather than presented as fact. 2. **Each STOP is mandatory.** The workflow has multiple stop points. None are optional. Rushing past a stop is how brownfield mapping produces bad LLDs that poison subsequent work. 3. **LLDs describe current reality, not aspirational design.** Output is what the code *is*, not what a greenfield version *would be*. Inferred design decisions carry `[inferred]` markers; known technical debt and behavioral quirks go in Open Questions. 4. **Thoroughness over speed.** Token budget is real but not dominant; skimming produces mappings that miss behaviors and lock in the wrong segmentation. 5. **Humble but guide.** The agent is not the expert on the user's system; the user is. But don't silently defer — when the user's framing conflicts with the evidence, surface the tension with evidence rather than just going along.
Ask one question first:
This question determines scope *and* mode simultaneously — the user is not asked a separate "Full or Scoped?" later at terminal verification. Default to Full (whole project) if the user is undecided.
Then ask:
**Token-intensity warning.** Tell the user upfront this is token-intensive by design — reading every file, proposing multiple lenses, drafting skeletons for every segment, multi-step reconciliation. Not a lightweight operation. Users expecting a quick one-shot map should reconsider.
**Undo.** The workflow's STOPs between phases are the undo mechanism — aborting at any STOP leaves nothing written to disk. Agent harnesses also provide their own session-level rewind. LID does not ship a dedicated `/unmap-codebase` command; users roll back via the agent framework's rewind or by reverting a git commit.
Inspect the project before starting:
Read **every file** in the declared scope. Not a sample. Sampling risks missing behaviors that only surface in edge-case files and locks in segmentation based on incomplete view.
For each file, record a structured summary:
Output: a flat list of observed behaviors with file/line references. **No segmentation attempted here.**
**Capacity constraint handling.** If the declared scope exceeds the invocation's capacity (single-agent context window, or the chosen subagent budget), surface the constraint with concrete sizing evidence, warn the user that a sampled sweep produces lower-quality mapping, and recommend narrowing scope or enabling subagent parallelism. The user may override and proceed with sampling anyway. Under override, preserve state across truncation points via per-subagent files (`.lid/map-codebase/sweep-{N}.md`) or by incrementally writing arrow-doc partial drafts during reconnaissance — never silently discard information the orchestrator cannot hold.
When subagents ran in parallel, each subagent writes its sweep to its own file; the orchestrator processes them in chunks during Phase 2.
See [subagent-sweep-prompt.md](references/subagent-sweep-prompt.md) for the prompt template given to sweep workers.
Propose **3–5 fundamentally different clusterings**, each using a distinct *lens*. Not variations on one theme — entirely different mental models.
**Good lenses to propose:**
A structured design-before-code methodology for agentic coding. Stop building the wrong thing — get alignment on what before writing how. Works with any coding agent that reads per-project instructions.
Repo: jszmajda/lid
Navigation and audit overlay for linked-intent development. Use when working with docs/arrows/ — orienting via index.yaml, auditing spec-to-code coherence,…
Audit coherence across an arrow of intent by running two parallel fresh Claude sessions — one reconstructs code from a single EARS, the other reconstructs the…
Review a project's current linked-intent-development (LID) usage against LID's own principles and produce a prioritized report of recommendations for getting…
Guide for linked-intent development (LID). Consult for ALL code changes. Walks changes through a mode-aware six-phase workflow (HLD → LLD → EARS →…
Configure or reconcile a project for linked-intent development (LID). Dispatches on project state — fresh bootstrap, append directives to an existing…