Skip to content
Back to skills

Core Explore

ASecurity

Context-safe comprehension of a large/unfamiliar codebase — map first, scope to the task, fan out per-module readers that return compact summaries, so the orchestrator never holds the whole source and never runs out of context.

  • 2 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 8, 2026
developmentgojavabashgit

Security analysis

A100/100

Scanned September 8, 2026

npx -y skills add nobodyonlyc/skills --skill core-explore --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Core Explore?

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

Security grade badge for Core Explore
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nobodyonlyc-core-explore/badge)](https://www.skillsdirectory.com/skills/nobodyonlyc-core-explore)

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: core-explore
description: Context-safe comprehension of a large/unfamiliar codebase — map first, scope to the task, fan out per-module readers that return compact summaries, so the orchestrator never holds the whole source and never runs out of context.
---

> **[Persona Directive]** Act as a **Staff Engineer onboarding to a large codebase under a deadline**. You answer a specific question (what to change for this task, how it connects, what's risky) — you do NOT read the whole repo.

Explore for: $ARGUMENTS

Use this when you must understand a **large or unfamiliar codebase** to plan or implement something — and reading it all would blow the context window. For explaining a single known file/function, use [core-explain](../core-explain/SKILL.md) instead.

## The core rule
**Never read the whole codebase into one agent's context.** Read a *map* and *summaries*, not raw source, at the orchestrator level. Raw source is read only by short-lived sub-readers that return a compact summary and are then discarded.

## Phase 1 — Map first (cheap, before any source)
1. Read the compressed indexes if they exist: `docs/SYSTEM_MAP.md`, `docs/DOMAIN_GLOSSARY.md`, and the **local `README.md`/`RULES.md`** of the directories in scope (progressive disclosure, per `AGENTS.md`).
2. If no map exists, build a lightweight one **without reading file bodies** — structure only:
   ```bash
   git ls-files | sed 's#/[^/]*$##' | sort -u | head -60      # directory map
   git ls-files | grep -E '\.(ts|js|py|go|rs|java)$' | wc -l  # size sense
   ```
   Use naming conventions (`*.controller.*`, `*.service.*`, `*.repository.*`) to infer responsibility from paths.

## Phase 2 — Scope to the task (don't read what you don't need)
From the map, pick **only the modules/paths relevant to `$ARGUMENTS`**. Locate entry points by symbol, not by reading files:
```bash
grep -rln "<symbol or route or table>" --include='*.{ts,js,py,go,rs}' | head -20
```
Write down the candidate slice (a handful of directories/files). Everything outside it is out of scope for this exploration.

## Phase 3 — Fan-out readers (one slice each → compact summary)
For each module/path in scope, spawn a **reader subagent** (spawn-subagents capability, [agent-tool-mapping](../../resources/agent-tool-mapping.md); tier `strong`). Each reader:
- reads **only its assigned slice** (one module/dir, or one large file),
- returns a **compact summary** — never the raw source — written to `.harness/reports/explore-<slice>.md`:
  - public interface (the few functions/types that matter),
  - inputs/outputs and key data flow,
  - what this slice depends on and what depends on it,
  - the exact files a change to `$ARGUMENTS` would touch, and gotchas.

The orchestrator reads **only the summaries** (pointers, per the file-based communication rule), never the slices' raw source. Run readers in parallel (cap ~8; batch the rest).

## Phase 4 — Recurse when a slice is still too big
If a reader reports its slice is too large to summarize safely, it **splits** the slice (by sub-directory or by symbol) and fans out again — summarize-then-discard at each level. Depth over width: never widen a single agent's reading to "just get it all".

## Output — a focused comprehension brief
Synthesize the summaries into one brief (to `docs/design-docs/<id>/exploration.md` if part of a feature):
1. **Files to change** for this task, and why each.
2. **How they connect** (the relevant slice of the architecture, not the whole map).
3. **Risks / blast radius** — what else depends on these paths.
4. **Open questions** for the user.

This brief — not the raw source — feeds planning. Keep `SYSTEM_MAP.md` updated with anything you learned so the next session pays the cost once.

## Hard rules
- Map and summaries at the top level; raw source only inside short-lived readers.
- Read the **slice the task needs**, not the whole tree.
- Compact summaries to files; pass pointers, not bodies.
- When a slice is too big, **recurse** — never widen.

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 development →

Comments

Loading comments…

Newsletter

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