how
How
Explore the repository and explain how a target works. Build the mental model a developer needs to change the code safely, not an annotated inventory of source files.
This skill is read-only. It may inspect repository files, history, tests, generated artifacts, and user-provided evidence. It never edits code or publishes findings outside the current conversation.
When subagents are available, use them for independent repository exploration. Subagents may communicate with each other, but no agent may communicate with a person. Repeat that sentence verbatim in every child prompt. Child agents must keep findings local and must not send, post, comment, review, or otherwise communicate through any external service.
Model and reasoning preferences are optional. Read repository-documented model configuration or .agents/agent-models.md when present. Use bulk source reading for explorers, judgment and prose for a simple explanation, and synthesis for the combined explanation.
Read its optional reasoning profile line and validate each explicit model/profile pair against the current host. For a missing role or an auto or inherit-parent model entry, omit both overrides. For a missing, auto, or inherit-parent profile, omit the reasoning override. Never require the file, construct model identifiers from effort labels, or use unconfirmed choices. If a configured choice is unavailable or the host rejects a model/profile pair, report the fallback and retry that seat once with both overrides omitted. If the retry fails, record the gap or use the local fallback below. When engineering-mode is installed, match each subagent's reasoning profile to the job by its Delegation rule; otherwise use the configured profile.
If the host cannot create subagents, perform the same exploration locally and say which parallel checks were collapsed into the main pass.
1. Frame the question
Infer the narrowest useful scope from the request and current repository context. State a best-guess interpretation when the target is ambiguous, then continue so the user can redirect.
Treat a single module or narrow symbol as simple. Treat a cross-cutting feature, subsystem, or multi-service flow as complex. When in doubt, take the simple path.