Skip to content
Back to skills

Zoom Out

ASecurity

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.

  • 2 stars
  • 0 votes
  • 0 copies
  • 7 views
  • Added September 8, 2026
code-qualitygoapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 8, 2026

npx -y skills add nobodyonlyc/skills --skill zoom-out --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Zoom Out?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Zoom Out
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nobodyonlyc-zoom-out/badge)](https://www.skillsdirectory.com/skills/nobodyonlyc-zoom-out)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: zoom-out
kind: workflow
version: 1.0.0
tags:
  - domain: engineering
  - subtype: zoom-out
  - methodology: codebase-navigation
description: "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."
license: MIT
metadata:
  author: theNeoAI <lucas_hsueh@hotmail.com>
  inspired_by: mattpocock/skills
---

# 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 |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in code-quality →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.