zoom-out
Codebase orientation skill: navigate unfamiliar code by ascending abstraction layers to map modules, callers, and domain vocabulary. Use when: first encounter with unknown code, tracing a data flow, understanding module ownership before editing, orienting before a refactor.
Best use case
zoom-out is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Codebase orientation skill: navigate unfamiliar code by ascending abstraction layers to map modules, callers, and domain vocabulary. Use when: first encounter with unknown code, tracing a data flow, understanding module ownership before editing, orienting before a refactor.
Teams using zoom-out should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/zoom-out/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How zoom-out Compares
| Feature / Agent | zoom-out | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Codebase orientation skill: navigate unfamiliar code by ascending abstraction layers to map modules, callers, and domain vocabulary. Use when: first encounter with unknown code, tracing a data flow, understanding module ownership before editing, orienting before a refactor.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Zoom Out
## One-Liner
When lost in code detail, go up a layer of abstraction — map all relevant modules and callers using the project's own vocabulary before touching anything.
---
## § 1 · Core Philosophy
Implementation details are the lowest layer of knowledge. When you are lost in them, the fastest path forward is not to read more code at the same level — it is to **ascend** until you can see the module boundaries, the data flow, and the domain terms the project actually uses.
A zoom-out produces a **map**, not a reading. The map tells you:
- What modules own what behavior
- Where the seams are (where behavior can shift without editing in place)
- What the project calls things (canonical vocabulary that later prompts should reuse)
---
## § 2 · Workflow
### Step 1 — Read Domain Context First
Before exploring code, look for existing orientation documents:
1. `CONTEXT.md` — domain glossary and canonical terms
2. `README.md` or `docs/` — high-level architecture
3. ADR files (`docs/adr/`, `decisions/`) — past architectural decisions
4. `AGENTS.md` or `SKILL.md` — any agent-specific context
If these exist, read them **before** opening source files. They compress hours of reading into minutes.
### Step 2 — Identify the Entry Point
For the area you need to understand, find the highest-level caller:
- For a web request: the router or controller
- For a CLI: the top-level command handler
- For a library: the public API surface (`index.ts`, `__init__.py`, `lib.rs`)
- For a background job: the scheduler or queue consumer
### Step 3 — Map One Layer at a Time
Starting from the entry point, map **one call level at a time**:
```
Entry point
└── Module A (owns: X, Y)
└── Module B (owns: Z)
└── Module C (owns: persistence)
└── Module D (owns: validation)
```
For each module, note:
- What it **owns** (single responsibility)
- What it **calls** (dependencies)
- What it **exposes** (public interface)
Stop when you reach the level relevant to your task — you do not need to map the entire codebase.
### Step 4 — Collect Domain Vocabulary
As you map, note every domain-specific term you encounter:
- Entity names (Order, Account, Shipment)
- Action names (fulfill, provision, reconcile)
- State names (pending, in-flight, settled)
These are the **canonical terms** you must use in all subsequent prompts and code. Using non-canonical terms causes agents to introduce inconsistencies.
### Step 5 — Produce the Map
Output a structured summary:
```
## Module Map: <area>
Entry: <file or function>
Domain terms: <list>
Modules:
- <name>: owns [X, Y] | calls [A, B] | public interface: <description>
- ...
Key seams (where behavior can be changed without editing in place):
- <description>
Open questions:
- <anything that needs clarification before editing>
```
---
## § 3 · Signs You Need This Skill
- "I'm not sure which file owns this behavior"
- "I keep finding circular dependencies when I try to trace the flow"
- "The agent keeps using the wrong terminology"
- "I want to refactor but I don't know where the seams are"
- "I need to add a feature but I don't know which module it belongs in"
---
## § 4 · When to Use This Skill
**Use when:**
- Starting work in an unfamiliar part of the codebase
- Before any significant refactor
- Before designing a new feature that touches existing modules
- When an agent has been producing inconsistent terminology
**Do NOT use when:**
- The area is already well-understood (skip the overhead)
- The codebase is small enough to hold entirely in context
---
## § 5 · Relationship to Other Skills
| Skill | When to reach for it |
|-------|---------------------|
| `tdd-workflow` | After zoom-out — you know the interfaces, start writing tests |
| `debug-diagnose` | After zoom-out — you have the map to place your feedback loop |
| `architecture-review` | After zoom-out reveals shallow modules or unclear ownership |
| `grill-with-docs` | After zoom-out — validate your understanding against domain docs |Related Skills
zoom-engineer
Zoom Principal Engineering mindset with WebRTC scalability, SFU architecture, AI-first platform strategy, and "Deliver Happiness" culture. Triggers: 'Zoom style', 'video conferencing', 'WebRTC engineering', 'SFU architecture', 'Eric Yuan'.
write-skill
Meta-skill for creating high-quality SKILL.md files. Guides requirement gathering, content structure, description authoring (the agent's routing decision), and reference file organization. Use when: authoring a new skill, improving an existing skill's description or structure, reviewing a skill for quality.
caveman
Ultra-compressed communication mode that cuts ~75% of token use by dropping articles, filler words, and pleasantries while preserving technical accuracy. Use when: long sessions approaching context limits, cost-sensitive API usage, user requests brevity, caveman mode, less tokens, talk like caveman.
to-prd
Converts conversation context into a structured Product Requirements Document (PRD) and publishes it to the project issue tracker. Do NOT interview the user — synthesize what is already known. Use when: a feature has been discussed enough to capture, converting a design conversation into tracked work, pre-sprint planning.
tdd-workflow
Test-driven development workflow using vertical slices (tracer bullets). Enforces behavior-first testing through public interfaces. Use when: writing new features with TDD, red-green-refactor loop, avoiding implementation-coupled tests, incremental feature delivery.
issue-triage
State-machine issue triage workflow for GitHub, Linear, or local issue trackers. Manages category labels (bug, enhancement) and state labels (needs-triage, needs-info, ready-for-agent, ready-for-human, wontfix). Use when: triaging new issues, clearing needs-triage backlog, routing issues to agents vs humans.
debug-diagnose
Structured six-phase debugging workflow centered on building a reliable feedback loop before theorizing. Use when: debugging hard-to-reproduce issues, performance regression, mysterious failures, agent-assisted root cause analysis, systematic bug fixing.
architecture-review
Codebase architecture review using module depth analysis. Surfaces shallow modules, tight coupling, and locality violations. Proposes deepening opportunities. Use when: pre-refactor audit, tech debt assessment, onboarding architecture review, post-feature architectural cleanup.
vault-secrets-expert
HashiCorp Vault expert: KV secrets, dynamic credentials, PKI, auth methods. Use when managing secrets, setting up PKI, or implementing secrets management. Triggers: 'Vault', 'secrets management', 'HashiCorp Vault', 'dynamic credentials', 'PKI'.
nmap-expert
Expert-level Nmap skill for network reconnaissance, port scanning, service detection, and security assessment. Triggers: 'Nmap', '网络扫描', '端口扫描', 'NSE脚本'. Works with: Claude Code, Codex, OpenCode, Cursor, Cline, OpenClaw, Kimi.
metasploit-expert
Expert-level Metasploit Framework skill for penetration testing, exploit development, and post-exploitation operations. Triggers: 'Metasploit', '渗透测试', '红队', '漏洞利用'. Works with: Claude Code, Codex, OpenCode, Cursor, Cline, OpenClaw, Kimi.
gerrit-permission-manager
Expert manager for Gerrit multi-repository and multi-branch permission configurations. Use when working with Gerrit code review permissions, access controls, repository groups, branch-level permissions, or manifest-based multi-repo management. Use when: gerrit, permissions, code-review, access-control, devops.