atlas
Skill2 starsChanged 11 months agoMITView on GitHub
Generate or update a semantic domain map (ATLAS.md) for the project. Maps where to look, entry points, module purposes, key symbols, and integration points. Complements codemap's structural index with the domain knowledge layer.
We split this skill into the rules it gives an agent
16 rules. 0 are common, 10 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 8 edited versions we read keep these.
10
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 18
Do not generate from assumptions or memory.
- Distinctive: line 22
If ATLAS.md does NOT exist in the project root → Generate mode
- Distinctive: line 23
If ATLAS.md exists → Update mode
- Distinctive: line 28
Read project structure (directory listing, key config files)
- Very specific: line 29
Read CLAUDE.md (./CLAUDE.md or ./.claude/CLAUDE.md) if it exists — understand what's already documented (don't duplicate it)
- Distinctive: line 30
Read entry points (main files, CLI entry, API routers, job schedulers)
- Distinctive: line 31
Read domain models (data classes, schemas, database models)
- Very specific: line 36
If .codemap/.codemap.json exists in the project root:
- Very specific: line 38
Read .codemap/.codemap.json — it contains a manifest with directories (list of indexed paths) and stats (total files, total symbols).
- Distinctive: line 40
Use this data to pre-populate:
- Very specific: line 51
Create ATLAS.md in the project root following the format in Step 4.
- Very specific: line 57
Update stale sections — preserve any manually-added notes (lines starting with 📌)
- Very specific: line 58
Update the Last updated date
- Distinctive: line 109
Constraint: every section above is a table or bullet list.
- Distinctive: line 116
After writing ATLAS.md, compute a directory-listing hash and append it as an HTML comment on the very last line:
- Distinctive: line 138
If codemap is not installed, mention: "Consider installing codemap for structural indexing alongside this domain map"
“Common” is measured: kept by at least 6 in 10 of the 8 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Atlas — Project Domain Map
Generate or update the semantic domain map for this project.
Announce: "Using atlas to map this project's domain."
The Iron Law
NO ATLAS WITHOUT READING THE CODEBASE FIRSTDo not generate from assumptions or memory. Read the actual code, configs, and docs.
Step 1: Detect Mode
- If ATLAS.md does NOT exist in the project root → Generate mode
- If ATLAS.md exists → Update mode
Step 2: Read the Codebase
Regardless of mode:
- Read project structure (directory listing, key config files)
- Read CLAUDE.md (
./CLAUDE.mdor./.claude/CLAUDE.md) if it exists — understand what's already documented (don't duplicate it) - Read entry points (main files, CLI entry, API routers, job schedulers)
- Read domain models (data classes, schemas, database models)
- Scan integration configs (env files, connection strings, external service clients)
Step 2b: Read Codemap Index (if available)
If .codemap/.codemap.json exists in the project root:
- Read
.codemap/.codemap.json— it contains a manifest withdirectories(list of indexed paths) andstats(total files, total symbols). - For each directory in the manifest, read
.codemap/<dir>/.codemap.json— each containsfileswith symbol entries (name, type, lines, language). - Use this data to pre-populate:
- Module Map — each directory with its file count and key files
- Key Symbols — pick the 20-30 most important symbols (classes, exported functions) with their
file:line-range
- You still need to fill in the semantic layer manually: Where to Look (intent→file mapping), Entry Points (which files boot the app), Integration Points (external services), Conventions & Gotchas.
This shortcut reduces atlas generation from ~20 tool calls to ~5. If .codemap/ does not exist, skip this step entirely — fall through to the standard codebase scan in Step 2.
Step 3: Generate or Update
Generate Mode (no ATLAS.md)
Create ATLAS.md in the project root following the format in Step 4.
Update Mode (ATLAS.md exists)
- Read existing ATLAS.md
- Compare each section against current codebase state
- Update stale sections — preserve any manually-added notes (lines starting with
📌) - Update the
Last updateddate - Report what changed: "Updated: Module Directory (2 new modules), Integration Points (added Redis)"
Step 4: ATLAS.md Format
# ATLAS — [Project Name]
Last updated: YYYY-MM-DD
## Where to Look
| I want to... | Open | Why |
|--------------|------|-----|
| [Intent phrased as user goal] | `path/to/file` | One-line why this is the right file |
## Entry Points
| File | Role | Starts |
|------|------|--------|
| `path/to/main` | CLI / API / Job / Hook | What it boots |
## Module Map
| Directory | One-line purpose | Key files |
|-----------|------------------|-----------|
| `src/module/` | What this module does | `important.ext`, `other.ext` |
## Key Symbols
(20-30 most-referenced; heuristic, not AST-exhaustive.)
| Symbol | File:line-range | Kind |
|--------|-----------------|------|
| `SymbolName` | `path/to/file:10-42` | class / function / const |
## Integration Points
| System | Config key | Path |
|--------|------------|------|
| ServiceName | `ENV_VAR` | `path/to/client` |
## Conventions & Gotchas
- [Non-obvious trap that burned someone]
- [Intentional-looking-wrong pattern]
<!-- 📌-prefixed lines are manual notes, preserved across atlas updates -->
<!-- atlas-hash:XXXXXXXXXXXX -->Constraint: every section above is a table or bullet list. No prose paragraphs.
Removed from prior format: Data Flows (prose arrows), Domain Model (→ CLAUDE.md), Active Work & Known Issues. Added: Where to Look (intent→file), Key Symbols (heuristic).
Step 5: Write Staleness Hash
After writing ATLAS.md, compute a directory-listing hash and append it as an HTML comment on the very last line:
HASH=$(ls -1 | grep -v -e '^\.codemap$' -e '^node_modules$' -e '^\.git$' -e '^__pycache__$' -e '^\.venv$' -e '^venv$' -e '^dist$' -e '^build$' | sort | md5sum | cut -c1-12)
echo "<!-- atlas-hash:$HASH -->" >> ATLAS.mdThis hash is checked by the SessionStart hook to detect structural changes. If the user adds or removes top-level files/directories, the hash will mismatch and the hook will nudge a re-run.
What NOT to Include
ATLAS.md contains facts about the project. Do not include:
- Rules or instructions for Claude → CLAUDE.md
- Exhaustive symbol indexes (every class/function) → codemap; Key Symbols is a curated top-30 heuristic, not a full AST dump
- Full code snippets → reference by
file:linepath - Git history →
git log - Dependency version lists →
package.json/requirements.txt
After Generation
- Show the user a summary of what was mapped (section counts)
- Commit ATLAS.md
- If codemap is not installed, mention: "Consider installing codemap for structural indexing alongside this domain map"
- Offer to continue: "Ready to work? What's next?"
Red Flags — STOP
| Flag | Problem |
| Generating from memory or assumptions | Read the actual codebase first |
| Duplicating CLAUDE.md content | ATLAS = facts about project, CLAUDE.md = rules for Claude |
| Including code snippets | Reference paths, don't inline code |
| Skipping modules or directories | Cover the ENTIRE project structure |
| Writing prose paragraphs | Use tables, lists, flow arrows — structured data only |
| Not checking for existing ATLAS.md | Always detect mode first |
Workflow Position
setup → atlas (recommended after first setup)
[any point] → atlas → [resume work]
wrap → atlas (suggested if major changes were made)Other versions11 projects use a version of this.
Word for word · 1
- nicodiansk/turboflow★ 2100% same
Edited · 0
None found.
Wrote their own version · 10
- ariga/atlas★ 8.8ksame name
- simota/agent-skills★ 96same name
- sophonfinance-wq/finance-automation-portfolio★ 16same name
- jscraik/Agent-Skills★ 9same name
- ParkerRex/Skills★ 2same name
- Rynaro/magicite★ 2same name
- Abbasi-Alain/atlas★ 1same name
- nileshteji/skills★ 1same name
- YiftachCohen/skills★ 1same name
- leaf76/agent-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use openai-docs.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
OpenAISkillopenai-docs
Use when the user asks how to build with OpenAI products or APIs, asks about Codex itself or choosing Codex surfaces, needs up-to-date official documentation with citations, help choosing the latest model for a use case, or model upgrade and prompt-upgrade guidance; use OpenAI docs MCP tools for non-Codex docs questions, use the Codex manual helper first for broad Codex self-knowledge, and restrict fallback browsing to official OpenAI domains.
Also in 3 projects that use this
In this repository10 other files it gives its agents.
- .claude/CLAUDE.mdCLAUDE.md
- brainstormSkill
- buildSkill
- debugSkill
- planSkill
- reviewSkill
- setupSkill
- shipSkill
- storySkill
- wrapSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

