Atlas Guide — project map, search, graph, trace
Plain English first. Sharp edges after.
1. What this is / is not
Atlas is a map of this Unity project. It indexes C# scripts, scenes, prefabs, ScriptableObjects, asmdefs, shaders, and MonoBehaviours into a knowledge graph you can search, graph, and trace. Mechanical path always works. Fully native Unity Editor APIs. No extras required to rebuild, search, open a symbol, or read the cache.
It is not Charter (game plans). It is not Scribe (comment banners). It is not Folio (markdown viewer). It is not ArTchie AI (companion chat). Atlas is Unity-only by design — it does not invent embeddings, multi-language world models, or a second store kit. Soft/optional Unity AI Assistant tools compile only when that package is present. ArTchie AI uses Atlas when both are present; neither kit requires the other.
2. Open it
Everything hangs under:
ArTchie / Atlas / …
| Job | Click |
|---|---|
| Search the project map | ArTchie / Atlas / Codebase |
| GraphView of selection / hits + neighbors | ArTchie / Atlas / Graph |
| Who-calls / what-it-calls | ArTchie / Atlas / Trace |
| Counts, modules, entry points, hotspots, dead methods | ArTchie / Atlas / Architecture |
| Full walk + save cache | ArTchie / Atlas / Rebuild Index |
Window tabs: Atlas Codebase · Atlas Graph · Atlas Trace · Atlas Architecture. Rebuild Index has no window (progress bar only).
If a README still says Atlas / … without the ArTchie/ prefix, the README is stale — trust the menu in Unity.
3. First five minutes
- Make sure
com.artchie.atlasis in the project (Packages/unity-atlasor afile:entry inPackages/manifest.json). Open Unity. Wait for import. Check the Console for red errors. - Click
ArTchie / Atlas / Rebuild Index. Wait for the progress bar. Atlas walksAssets/and embedded Packages/, then writes the cache. - Click
ArTchie / Atlas / Codebase. Status should show node/edge counts and an indexed time — not “No index.” - Type a class or file name you know (example:
Player). Toggle chips if you want only Class / Method / File. - Click a result (snippet appears). Double-click or press Enter / click Open at symbol — the script opens at that line.
That is enough. Graph, Trace, and Architecture use the same index. Optional Unity AI tools come later — never required for search.
Folders whose names end with ~ are skipped on purpose (same rule Unity uses). Charter Genre Blueprints templates live in Blueprints/stubs~ — they should not show up in Search after Rebuild.
4. The meat
Where the index lives
Cache is project-local, not inside the package:
<project>/Library/Atlas/graph.json
Also used: Library/Atlas/api-out.json when headless/CLI API writes output. Delete Library/ and you lose the cache — run Rebuild Index again. The package itself never ships the graph.
What Rebuild walks
- AssetDatabase + GUID +
GetDependenciesfor files, scenes, prefabs, SOs, shaders, asmdefs (and related Editor assets Atlas knows:.cs.unity.prefab.asset.asmdef.shader.hlsl.compute.cginc.uxml.uss). - TypeCache / reflection on Editor + player assemblies (skips UnityEngine / UnityEditor / System).
- C# source scan for DEFINES, CALLS, IMPORTS, inheritance, Unity messages.
- asmdef → Module nodes; assembly references → IMPORTS.
- Prefab / SO
SerializedObjectobject fields → REFERENCES / SERIALIZED_ON. Scenes → IN_SCENE.
Skips: Library/, Temp/, obj/, PackageCache, .git/, node_modules/, plus a root .gitignore if present (see AtlasIgnore). Also skips any path segment that ends in ~ — Unity’s own ignore rule. AtlasIgnore.IsIgnored returns true; AtlasIndexer.Walk does not descend those folders. Charter Genre Blueprints templates live under Blueprints/stubs~ so they do not compile into a buyer project and do not clutter Atlas Search.
Incremental refresh
After AssetDatabase imports/moves/deletes (and after compile), Atlas marks dirty paths and refreshes. Windows also have a Rebuild Index button for a full walk. If incremental fails, Atlas falls back to a full rebuild. Empty cache → EnsureLoaded rebuilds on first use.
Codebase window
- Search: plain words, path, GUID, or prefixes
t:Class/t:Method/f:Assets/Scripts. - Chips (EditorPrefs
Atlas.Chip.*): Class · Method · File · Scene · Prefab · SO · Module · Interface. - Extra row: scope path filter, min deg / max structural degree, camelCase / snake_case aware.
- Select → ping + numbered snippet. Double-click / Enter / Open at symbol →
AssetDatabase.OpenAssetat the line.
Graph window
Native GraphView. Follow Project selection (toggle) or type a search. Label chips. Hops 1–3. Click = ping, double-click = open.
Trace window
Pick a Class / Method symbol. Direction: both / inbound / outbound. Depth 1–5. Path list + mini graph. Double-click a path row to open that hop.
Architecture window
Schema counts, asmdefs / modules, entry scenes + runtime entry flags, structural hotspots, assembly clusters.
Dead methods (Architecture foldout) = methods with zero inbound CALLS. The foldout HelpBox says the same.
- Unity messages, tests, and entry/menu points are left off the list.
- A call through a field counts:
world.Get(...)is a CALLS edge toGet. new Vector3(/new Ns.Type(is a constructor, not a method named Vector3 — Atlas does not record it as a call.- Several methods with the same name in one assembly: Atlas draws CALLS to each (cap 16), not a weak USAGE-only edge.
- A name that never appears as
ident(still looks dead. That can be a true unused method. Rebuild Index after scripts compile.
Empty / first-run (no index): title No index yet + HelpBox (click Rebuild Index) + miniLabel (ArTchie / Atlas / Rebuild Index, cache Library/Atlas/graph.json). Same empty pattern on Codebase / Graph / Trace / Architecture.
Soft Unity AI (optional)
Atlas.Editor.asmdef gates Assistant tool registration with:
com.unity.ai.assistant >= 0.1.0 → UNITY_AI_ASSISTANT
When present, AtlasAssistantTools registers Search / Trace / Snippet / Architecture / DeadMethods for Unity AI Assistant. When missing, Atlas menus and AtlasApi still work — zero hard dependency on Unity AI. No pasted key.
Missing optional Unity AI (HelpBox)
- Unity AI absent: Info HelpBox on Codebase / Graph / Trace / Architecture — not in this project (
com.unity.ai.assistant); optional Assistant tools unavailable; Rebuild Index, search, and graph still work — no key needed. - No CLI Detect in Atlas: logged-in CLIs live in Scribe / Charter / ArTchie AI — Detect paths there, then sign in. Prefer Detect over pasting a key.
- Mechanical first: Rebuild Index / search / graph / open-at-symbol never blocked by missing Unity AI.
Soft pair: ArTchie AI
Install Atlas if you want companion chat to use the project map. Chat still runs without Atlas (map tools return kit not loaded). Atlas alone never requires ArTchie AI or a pasted key.
Soft friends (others use Atlas)
- Scribe may enrich Used by from the Atlas index via reflection when present.
- Bedder may probe Atlas by reflection only — never a compile hard-dep.
- Charter / Folio / Anvil / Rivet do not need Atlas.
5. Common stuck
- Menus say
Atlas / …withoutArTchie/— stale README. Trust Unity:ArTchie / Atlas / …. - Empty results / “No index” — run
ArTchie / Atlas / Rebuild Index, wait, then search again. ConfirmLibrary/Atlas/graph.jsonexists. - I don’t see
ArTchie / Atlas— package not imported, asmdef error, or wrong project. Check Console andPackages/manifest.jsonforcom.artchie.atlas. - Double-click does nothing useful — pick a hit with a real
Assets/…path (or Package path Atlas indexed). Ping/Open need a loadable asset. - Dead methods list empty, huge, or flags
Getthat I call every frame — Rebuild Index after scripts compile. Zero-CALLS candidates skip Unity messages / tests / entries. Calls through a field (world.Get) count;new Vector3(is not a method. Same-name methods in one assembly each get CALLS (cap 16). If a name never appears asident(, it stays dead — that can be a true unused method. - Search shows Charter Genre Blueprints stubs / files under
stubs~— it should not. Atlas skips any path segment ending in~(Unity’s ignore). Rebuild Index. If hits remain, the path is not actually under a~folder. - Unity AI tools missing / ArTchie AI chat won’t use the map — Unity AI is optional (HelpBox; no pasted key). Atlas has no CLI Detect (use Scribe / Charter / ArTchie AI Detect paths). Rebuild Index, search, and graph still work. ArTchie AI is a sibling kit — install it for companion chat; it does not have to be present for Atlas.
6. For pros
Package + asmdef
- Package:
com.artchie.atlas· Unity 2021.3+ · asmdefAtlas.Editor - Native lock: AssetDatabase, TypeCache, CompilationPipeline, MonoScript, SerializedObject, EditorWindow, UIToolkit, IMGUI,
UnityEditor.Experimental.GraphView - Cache API:
AtlasStore.CacheDir/CachePath→Library/Atlas/graph.json(format blob via JsonUtility) - Persist fields: format, version, builtUtc, projectName, incremental, nodes, edges
Ignore + DeadMethods (Fable)
AtlasIgnore.IsIgnored— after slash-normalize, if any path segment ends with~, ignored. Source of truth for files.AtlasIndexer.Walk— does not descend a child directory whose name ends with~.AtlasSourceScan.ScanBody— skipnew Type(/new Ns.Type((PrecededByNewKeywordlook-back). Constructors are not CALLS. Scanner-native, no Roslyn.AtlasIndexer.LinkCsGraph— each recordedident(becomes CALLS. Prefer same-assembly hits; if several, CALLS to each (cap 16) instead of USAGE-only. Instance-field receivers (world.Get) count.AtlasQuery.DeadMethods— inbound CALLS == 0; skip UnityMessage / EntryPoint / Test /Main. Unchanged contract; the scan/link fixes are what stop false-deadGet/Set/Rebuild.
AtlasApi (JSON strings)
Atlas.AtlasApi.Status()
Atlas.AtlasApi.RebuildIndex()
Atlas.AtlasApi.Search("t:Class player", 20)
Atlas.AtlasApi.Trace("MyClass.MyMethod", "both", 2, 40)
Atlas.AtlasApi.Architecture()
Atlas.AtlasApi.DeadMethods(60)
Atlas.AtlasApi.Snippet("MyClass.MyMethod", 8)
Atlas.AtlasApi.GraphPath → Library/Atlas/graph.json
Headless:
Unity -batchmode -quit -projectPath X -executeMethod Atlas.AtlasApi.Cli
-atlas-cmd rebuild|status|search|trace|arch|dead|snippet
-atlas-arg "query or symbol" [-atlas-dir inbound|outbound|both]
[-atlas-depth N] [-atlas-limit N] [-atlas-out path.json]
Default -atlas-out: Library/Atlas/api-out.json. Agents can also parse graph.json directly.
versionDefines
com.unity.ai.assistant >= 0.1.0 → UNITY_AI_ASSISTANT
AtlasAssistantTools compiles only behind that define. When absent, windows show the Info HelpBox from AtlasOptionalAiGui. No pasted API key. No MCP required for Editor use. No CLI Detect in this kit.
Design bounds (do not invent)
Atlas indexes this Unity project. Do not document fictional multi-language corpora, embedding stores, or a third kit. Scribe/Charter soft friends stay reflection-soft. ArTchie AI stays the HARD consumer.
Canonical base
artchie-RECONCILED-20260822-2107. Package README + this Guide.
7. Related kits
| Kit | When you want it |
|---|---|
| Suite Map | Which ArTchie pile does what · Guides/Guide-Suite-Map.md |
| ArTchie AI | Companion chat — uses Atlas when both present; neither required; never require a pasted key |
| Scribe | Soft “Used by” from Atlas when present; comment / document scripts |
| Charter | Game plans (does not need Atlas) |
| Folio | Read markdown in the Editor |
| Anvil / Rivet | Project health · daily Editor chores |
| Bedder | In-player IDE; may probe Atlas by reflection only |
Rebuild first. Search second. AI is optional on top — and AI needs this map.
Source in the box: Assets/ArTchie Studios/ArTchie-Suite/com.artchie.atlas/Documentation/Guide-Atlas.md