Auto-activate when tracing execution paths, mapping dependencies, understanding unfamiliar code, following data flow through a system, investigating how a feature works end-to-end, or when debugging requires understanding call chains. Produces an execution map showing the path from entry point to result — with file paths, function names, data transformations, and dependency relationships at each node. Use when: need to understand how code flows from entry point to result, mapping what depends on what, exploring unfamiliar codebases systematically, or when reading random files isn't building understanding. Not for reading random files hoping to build understanding — every file opened must be because the previous file pointed you there.
From flownpx claudepluginhub cofin/flow --plugin flowThis skill uses the workspace's default tool permissions.
references/trace-modes.mdreferences/tracing-strategy.mdSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Systematic code exploration that builds understanding incrementally by tracing execution paths and mapping dependencies, rather than randomly reading files. Start at a known entry point and follow connections outward, building a map as you go.
<workflow>What's the starting location? An API endpoint, a function call, a config file, a user action. Be specific — "the auth system" is too vague; POST /api/auth/login is an entry point.
Understand what it does. Note every outgoing call or dependency.
Pick the most relevant outgoing connection to follow. Don't try to trace everything at once — choose the branch most likely to answer the question.
Read the next file/function. Note what it calls. Add to the map. Repeat.
Maintain a running trace: A → B → C → D. Include file paths and line numbers.
What to record at each node:
When enough of the system is traced, describe the overall flow. Connect the nodes into a coherent narrative that answers the original question.
When to stop:
Pick the mode based on the question being asked:
| Mode | Question | Best for |
|---|---|---|
| Execution | "What happens when X is called?" | Request flows, feature behavior |
| Dependency | "What depends on X?" | Impact analysis, refactoring |
| Data | "How does data get from A to B?" | Data pipeline debugging |
For complex investigations, start with execution trace for the happy path, then dependency trace on key components, then data trace on critical structures. See references/trace-modes.md for detailed mode descriptions.
Before presenting the trace, verify:
Trace: "What happens when POST /api/users is called?"
| Node | File | Function | Calls | Data |
|---|---|---|---|---|
| 1 | src/routes/users.ts:14 | createUser | UserService.create() | req.body → {name, email} |
| 2 | src/services/user.ts:42 | create() | validate(), UserRepo.insert() | {name, email} → UserDTO |
| 3 | src/repos/user.ts:28 | insert() | db.query() | UserDTO → SQL INSERT |
| 4 | (leaf) | PostgreSQL | — | INSERT INTO users... |
Path: POST /api/users → createUser → UserService.create → UserRepo.insert → SQL INSERT.