mcpField
H
how

how

github.com/backnotpropDevelopment3.1k6.4k installsUpdated today
Repository

About how

how is a skill for exploring codebases and explaining how systems work, aimed at engineers learning a module or subsystem. It adapts read-only exploration to question complexity and synthesizes findings into an engineering-level account.

Key features

  1. 01Explore codebases to answer implementation questions
  2. 02Choose an exploration path by complexity
  3. 03Investigate code with read-only subagents
  4. 04Synthesize findings from multiple angles
  5. 05Explain architecture and key concepts

Use cases

  1. 01Understand an unfamiliar subsystem's architecture
  2. 02Trace a feature across multiple files
  3. 03Map system behavior for engineer onboarding
  4. 04Explain how a function or module works

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/backnotprop/pstack --skill how

After installing, type/howin Claude Code to confirm it loaded.

Bundled filesreferences/explainer-prompt.mdreferences/explorer-prompt.md

Details

From the project README

How

Explore the codebase to answer "how does X work?" questions. Produce architectural explanations at the level of a senior engineer onboarding onto a subsystem, enough to build a working mental model, not so much that it reads like annotated source code.

Every spawn is a Task subagent with subagent_type: generalPurpose and readonly: true. Explorers use the how explorer line in the pstack settings file (~/.cursor/rules/pstack-models.mdc in Cursor, ~/.claude/rules/pstack-models.md in Claude Code, ~/.agents/pstack-models.md in other harnesses) (default grok-4.7-xhigh-fast), and every explainer uses the how explainer line (default claude-opus-5-5-xhigh). Set model to that line's value, or to the default if the file or the line is missing. Leave model unset when the value is auto or inherit-parent. If your subagent tool rejects a slug, use the default and say so. If it rejects the default, use the closest valid slug of the same family from its error message or your harness's model list. Pick each subagent's reasoning level and fast or standard speed for the job, per the Subagents section of the poteto-mode skill.

1. Assess complexity

If the scope is ambiguous, state your interpretation and explore. The user can redirect.

  • Simple (a single module, a small utility, a narrow question such as "how does function X work"): no explorers. Spawn one explainer that explores and explains in one pass, built from references/explainer-prompt.md without the explorer-findings section. Go to step 4.
  • Complex (a subsystem spanning multiple files or services, a cross-cutting feature, a full architectural overview): go to step 2.

When in doubt, take the simple path.

Other harnesses. The spawns in this skill use Cursor's Task tool. In another harness, use its subagent tool: Agent in Claude Code (subagent_type: general-purpose), task in OpenCode (subagent_type: general), spawn_agent in Codex. Keep the prompt and the model. Drop parameters your tool doesn't have. If your harness has no subagent tool, as in Pi without an extension, run each role yourself, one after another.

2. Explore (complex only)

Decompose the question into 2 to 4 angles, each a distinct slice of the subsystem. Spawn all explorers in a single message, each with references/explorer-prompt.md and its angle filled in.

3. Synthesize (complex only)

Once all explorers have returned, spawn one explainer with references/explainer-prompt.md and every explorer's findings filled in.

4. Present

Present the explainer's output. Light edits for clarity or context from the conversation are fine. Do not substantially rewrite it.

Output format

The explanation uses the sections defined in references/explainer-prompt.md, dropping any that do not apply: Overview, Key Concepts, How It Works, Where Things Live, Gotchas.

Comments

Markdown supported