devour — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited devour (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Devour is a study and discovery mode for building a working mental model of a codebase. The job is not to summarize files like a tourist. The job is to construct enough system intuition that future changes can be made with grounded judgment: where things live, how time moves through the app, what touches what, and what breaks when a piece changes.
Use this skill when the user asks for any of these:
There is also a two-brain variant, triggered by devour collab (e.g. /devour collab, $devour collab, optionally scoped: devour collab src/api). It runs one Claude and one Codex over the same code and makes them cross-examine each other. See Collab Mode below. Everything in this skill is the solo path unless that section says otherwise.
Also use it when a future task clearly needs deep repo context before implementation, especially if the user is asking for a risky feature, migration, refactor, debug session, or integration.
below, scoped to the user's question or the repo they requested.
below when asked, or when prior understanding exists and only its changes need study.
launch devour just because the task touches a repo.
Both modes preserve the same operating boundary. refresh does not enable collab; the two-brain option still requires the user's explicit collab request.
This skill must work in Codex, Claude Code, and other coding-agent hosts.
Devour is allowed to run safe local discovery commands when useful:
Devour must not silently mutate the project.
MAP.md at the repo root(see Persist The Atlas). Writing or updating it is announced output, not silent mutation. Everything else stays read-only.
Treat the codebase like a living city with space and time.
Do not claim mastery just because many files were opened. Mastery means the agent can answer practical change questions with evidence.
Before deep study:
MAP.md exists at the repo root, read it first: it is a prior devour's persistedatlas. Treat it as claims to verify, not truth — reconcile it against the real repo as you study, and note what has drifted since it was written.
revision when available and check whether the repository history permits comparison. If provenance is missing or the revision is unavailable, say so. Use map history and source references to orient a fresh scoped verification; never infer a precise baseline from the file's modification time or treat an arbitrary recent commit as the last study.
HEAD, plus staged, unstaged, and relevant untracked source files. Record current dirty scope separately. A recorded dirty baseline is not fully recoverable from its HEAD; recheck those claims directly unless the prior evidence was retained. Never reset, stash, or switch branches to make the comparison easier.
lifecycle, tests, and configuration. Include external/runtime drift where it matters; an unchanged source file does not prove unchanged deployed behavior. Follow dependencies beyond the named area when they affect the question, and explain why scope widened.
inherited claims not rechecked, and unresolved questions. Replace incorrect map entries with current evidence or mark them stale. Preserve valid out-of-scope sections with their previous provenance; do not stamp the whole atlas as freshly verified.
what failed or could not be checked. No full test/build ritual is required merely because this is a refresh.
longer hold, what is now verified, what remains inherited or unknown, and what that means for the next task. Persist within the existing MAP.md unless the user asked for chat-only output. Stop when the scoped change question is answered or the remaining gaps are precisely identified; a fundamental topology change may justify a wider study.
Refresh uses the relevant parts of the study workflow below; it does not automatically repeat the whole census. Hand the updated evidence into an authorized next task using WORKFLOWS.md, or end with the delta for a standalone request.
Build a complete surface map without wasting context on bulk output.
For small repos, reading most files may be appropriate. For large repos, use search, manifests, imports, routes, tests, and call/caller paths to guide deeper reading.
Turn the census into a map of the system.
Name the major subsystems and their boundaries. If boundaries are leaky, say where and how.
Trace actual flows from trigger to consequence. Prefer evidence from code paths, tests, scripts, logs, and local probes.
For each important route, map:
trigger -> entrypoint -> domain logic -> persistence/external calls -> side effects -> response/UI/log/testCover the most important categories that exist in the repo:
Study how time moves through the system.
This section is what turns architecture knowledge into operational intuition.
Build a practical "if touched, inspect these too" map.
Look for:
For each high-risk area, state the blast radius and the verification path.
Run safe probes when they improve the map.
Good probes include:
When probes fail, capture the exact failure and infer carefully. A failed probe is useful evidence, not a reason to hand-wave.
Compress the study into an atlas the user can use.
Default output:
Devour Atlas
Repo Identity
- what this codebase is
- languages/frameworks/package managers
- real root and major apps/packages
Provenance
- study/refresh date, source HEAD or non-git baseline, dirty scope, studied areas
- per-area last verification where coverage differs; runtime environment when probed
Terrain Map
- major subsystems and where they live
- important boundaries and shared layers
Runtime Routes
- key flows traced end to end
- entrypoints, persistence, side effects, tests/logs
Temporal Map
- boot/build/test/deploy/runtime order
- async jobs, retries, caches, migrations, state transitions
Blast Radius Map
- if you touch X, inspect Y
- fragile zones, shared contracts, high-churn areas
Change Playbook
- safe extension points
- commands to verify changes
- files to inspect before common edits
Unknowns And Next Probes
- what is still unknown
- what evidence would close each gap
Readiness
- what kinds of changes the agent is now ready to make
- what still requires deeper studyUse file references when the host supports them. Avoid huge paste dumps. The value is in the connected map.
The atlas does not evaporate with the session. After synthesis, write it to MAP.md at the repo root — create it on the first devour, reconcile and update it on every devour after. Announce that it was written; if the user declines persistence, keep the atlas in chat only.
Rules for MAP.md:
detail, never spawn a second map file.
available), studied scope, and relevant dirty paths. For non-git sources, record available source identifiers and the baseline limitation; never invent a commit.
not evidence that inherited sections were rechecked. Distinguish code inspection from runtime observation, and identify the environment and date for runtime claims.
VISION.md declares an adopted system twin ("this is built as a hospital"), labelthe atlas in both languages where it helps — sessions/ = the wards — so the map speaks the building's own metaphor.
map.
bedrock, potential, any agent) must treat it asclaims to verify, not truth. Write it so that spot-checking is easy: file references, not prose vibes.
This is what makes the family compound: bedrock orients its audit walk with MAP.md, potential reads it as the structure to dream from, and the next devour starts from a checkpoint instead of zero.
Triggered by devour collab. Solo devour is one mind. Collab runs two different minds — one Claude, one Codex — over the same code, because their blindspots are decorrelated: two of the same harness miss the same things; one of each do not. The point is not throughput. It is catching what a single model is structurally blind to.
brains, carries messages between them, and merges as a disinterested third party. Neutrality is the job: a conductor that also devoured would defend its own atlas.
is conducting, the other is spawned as the second brain, and the conductor's own harness is spawned as a fresh, separate process for the first brain — never the conductor's live session — so neither brain is also the judge.
Both brains run read-only. The conductor owns every file write; MAP.md stays devour's only repo mutation.
They do not hold a live conversation, and that is deliberate. They exchange written atlases through the conductor, in rounds — like two reviewers trading written reviews, not a phone call. Live chat would let them anchor on each other and re-correlate their blindspots; the whole value is that each forms a complete independent model first, then is forced to confront the other's.
Round 1 — Independent (blind). Each brain devours the scope alone and emits a Devour Atlas. Neither sees the other. file:line references are mandatory here — they are what let the peer verify in round 2. Run the two in parallel (background the first, run the second alongside, join when both land):
codex exec -s read-only -C <repo> -o <scratch>/atlas-codex.md "$(cat <scratch>/brief.md)"
claude -p --permission-mode plan "$(cat <scratch>/brief.md)" > <scratch>/atlas-claude.mdRound 2 — Critique. The conductor hands each brain the other's atlas: "Re-enter the code and verify. Report (1) what they caught that you missed, (2) their claims you believe are wrong — with file:line proof, (3) what you now think you both missed." Each re-reads real files to check the other's citations. This is the blindspot exchange.
Round 3 — Rebuttal (the actual conversation). The conductor hands each brain the critique written about its own atlas. Each concedes or defends with evidence. Two passes of written exchange make a real, grounded dialogue — mediated and on the record, so the conductor sees exactly where they converged and where they dug in. One critique+rebuttal cycle by default; loop again only if the user asks or genuine disagreements remain open.
Round 4 — Reconcile. The conductor reads both atlases and the full exchange and writes the merged MAP.md, adding the section a solo devour cannot produce:
Devour Atlas sections.
Claude: boot driven by init.ts:40. Codex: bootstrap.ts:12. Unresolved — inspect both. This is where a human looks first.
Stamp the update: collab devour, the date, the scope, and the two harnesses with their model ids.
brief.md, the two atlases,and the critique/rebuttal files. Only MAP.md lands in the repo. Drop scratch when done unless the user wants it kept.
and the output format into brief.md, so each brain runs a real devour without depending on this skill being loaded in its host.
probes (grep, tests that do not write); Claude in plan mode reads and reasons but will not run probes headless. If a probe matters, the conductor runs it and feeds the result into round 2. Note this rather than pretend symmetry.
plain devour is right; reach for collab when the map must be trusted — before a risky migration, an unfamiliar inherited repo, or a foundation audit.
claude -p +codex exec. Invoked from Codex → mirror image. Same contract either way.
Before saying the repo has been devoured, check whether you can answer:
For a refresh, apply these questions to the changed scope and affected dependencies. Also verify that the output identifies the baseline, invalidated conclusions, current evidence, and inherited areas not rechecked. If provenance is missing or a stale claim was presented as verified, correct the map before declaring the refresh complete.
If you cannot answer these with evidence, say the codebase is partially devoured and list the next probes.
For long devours:
MAP.md withits Unknowns section marking exactly what remains, and say so.
MAP.md is for.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.