MCPInstall

how

Use for "how does X work", code walkthroughs before changing something, and placement / ownership / layering questions ("where should this live", "which package owns this", "is this the right layer"). Explains subsystem architecture, runtime flow, onboarding mental models. Use why for motivation.

Installs
951
Last 24h
+9
Trending rank
#9340
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/michael-denyer/pstack-claude --skill how
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads how automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

How

On Codex, read the platform mapping, including its per-skill notes, before following this skill.

On GitHub Copilot, read the platform mapping, including its per-skill notes, before following this skill.

On Muse, read the platform mapping, including its per-skill notes, before following this skill.

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 Agent subagent with subagent_type: "general-purpose" and readonly: true. Explorers use the how explorer line in pstack-models.md (default in Models), and every explainer uses the how explainer line (default in Models). Set model to that line's value, or to the default if the sheet or the line is missing. Leave model unset when the value is auto or inherit-parent. If the Agent 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. Pick each subagent's reasoning level 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.

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.

Models

Role defaults, stamped from plugins/pstack/models.json (edit there, rerun tools/generate.mjs). A matching role line in the pstack-models.md override sheet overrides each at runtime; /setup-pstack writes it and lists its path per runtime.

  • how explorer: opus
  • how explainer: opus

Reasoning effort

A role value in the override sheet may name a reasoning effort after its model, as in opus @xhigh. Levels on Claude Code: low, medium, high, xhigh, max. Which ones apply depends on the model. A value without @ takes the sheet's default effort line, a level or session, and session when the sheet has no such line. session sets no effort, so the dispatch is the usual one. Strip the suffix before reading the model: inherit-parent or auto still omits model at every level, and a model name is passed as model. Pass the level as the dispatch's effort field and keep the subagent_type you would otherwise use. That is effort on the Claude Code Agent call and reasoning_effort on Codex's spawn_agent. On Muse it is effort on a Workflow child; a subagent_spawn dispatch keeps the session's effort.

FAQ

What does the how skill do?

Use for "how does X work", code walkthroughs before changing something, and placement / ownership / layering questions ("where should this live", "which package owns this", "is this the right layer"). Explains subsystem architecture, runtime flow, onboarding mental models. Use why for motivation.

How do I install how?

Run npx skills add https://github.com/michael-denyer/pstack-claude --skill how in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/how/ (personal) or .claude/skills/how/ (project).

Which AI agents can use how?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is how safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains how?

It is published by michael-denyer in michael-denyer/pstack-claude. It has 951 recorded installs.

More from michael-denyer/pstack-claude

View all →

poteto-mode

michael-denyer/pstack-claude

poteto's agent style for concise, detailed responses, deliberate subagents, unslopped prose, simple code, and verified work. Use for poteto, /poteto-mode, or requests to work in this style.

AI & Agents1.1K installs

unslop

michael-denyer/pstack-claude

Cut AI tells from any writing.

Docs & Writing1K installs

arena

michael-denyer/pstack-claude

Spawn N parallel candidates at the same task, pick a base, graft the strongest parts of the losers into it. Use for /arena, 'arena this', 'throw it in the arena', or when one attempt at a non-trivial artifact would lock in the wrong shape.

architect

michael-denyer/pstack-claude

Sketch types, signatures, and module structure before code, then stay in the loop while implementation fills in. Use for /architect, 'architect this', 'design this', or non-trivial work where jumping to code would lock in the wrong shape.

922 installs

interrogate

michael-denyer/pstack-claude

Use for "interrogate", "adversarial review", "multi-model review", "challenge this", "stress test this code", "find blind spots", or "tear this apart". Multiple LLM reviewers challenge changes from independent angles.

setup-pstack

michael-denyer/pstack-claude

Configure which models pstack uses per role. Detects available models and writes the current runtime's override sheet. Use for /setup-pstack, "configure pstack models", changing pstack's model choices, or turning the SessionStart hook on or off.

908 installs

Popular code quality & workflow skills

View category →

grill-me

mattpocock/skills

A relentless interview to sharpen a plan or design.

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

handoff

mattpocock/skills

Compact the current conversation into a handoff document for another agent to pick up.

domain-modeling

mattpocock/skills

Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.

codebase-design

mattpocock/skills

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

diagnosing-bugs

mattpocock/skills

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.