_inbox/
Capture: unprocessed input awaiting classification
- written by
- /inbox, trillian, deep-thought, marvin
- read by
- /inbox, trillian, marvin
The contract
A folder structure is not a convention until something can check it. Every path here is declared, and every declaration names who may write it.
36 declared paths.
The names below are the contract's own. Several name tools that are not published — see the component pages for what can actually be obtained.
_inbox/Capture: unprocessed input awaiting classification
CONTEXT.mdHand-written orientation at vault root: the frame the rest of the vault is read against — what is active, what is paused, which decisions are open, what governs the calendar. INDEX.md answers WHERE things live; CONTEXT.md answers WHAT APPLIES. Singleton (CR-036): there is one context, not one per folder
<folder>/.status/current.mdGenerated situational view for one contact or org person: meeting cadence over months, insight counts by type with the most recent named, open items, and the last movement from CHANGELOG. Answers 'where does this relationship stand' without reading a year of files. Lives in a HIDDEN subfolder so scanning skills cannot reach it — structural isolation rather than a skip flag, because CR-033 showed skip-lists are missed when skills glob on the YYMMDD- prefix
_inbox/_tasks.yamlPersonal working tasks — SOURCE OF TRUTH (CR-035, supersedes CR-022 in part). Standard v2 task schema plus triage_id (preserves the {id} token used by external sync). task: states what is to be done and nothing else; history, references and reasoning go in notes:
_inbox/_inbox.yamlThe inbox register: one entry per captured item, with its classification, routing and status. The markdown files in _inbox/ are the material; this is the index over them
_inbox/_capture.mdFree-form write path for tasks (CR-035). One line each; import moves them into _tasks.yaml and empties this file. Syntax: @tag or [Tag] -> context, !P0..!P3 -> priority, clock+YYMMDD -> due
_inbox/_frame.mdHand-written context (week anchor, frame, conventions) pasted verbatim into the generated view (CR-035), so the generator never owns prose
_inbox/<working-doc>.mdGENERATED VIEW of _inbox/_tasks.yaml (CR-035). Shows overdue, today, tomorrow, P0/P1 without a date, and the coming seven days. NEVER hand-edited; tools must not write to it. Was the system of record under CR-022 until 260907
_inbox/.audio/Raw audio captured by Trillian, paired by basename with _inbox/<id>.md
_inbox/.files/File drops: input files with a vault destiny, paired by basename with _inbox/<id>.md (CR-024)
.knowledge/wiki/Knowledge wiki: topic articles synthesized from the insights corpus (CR-027)
.knowledge/INDEX.mdMaster knowledge index — read FIRST when answering knowledge questions (no RAG)
.handoff/Frozen handoff snapshots: one bounded subject each, self-contained, human-actioned only (CR-033)
.transcripts/<stem>-raw.mdRaw source archive: the verbatim input behind each summary, one file per input (CR-085). A summary is a reading of what was said; this is what it was read from
.ephemeral/Disposable working material with NO vault destiny (session scratch, snapshots, intermediates)
_outbox/Staging for outgoing material (CR-047). One folder per send event, or a loose .md for a single message. Each folder carries a _manifest.md declaring status, channel, contact and canonical source — that manifest is the contract any dispatcher reads. Those are the FIELD NAMES; the label each is written under follows the vault language (a Swedish vault writes Status, Kanal, Kontakt, Kanonisk källa) and belongs in a dispatcher's vocabulary file, not in its code
_outbox/<item>/_manifest.mdThe per-item contract every dispatcher reads: status, channel, contact, classification, canonical source. Declared in its own right because two different parties write it — the skill authors it, a dispatcher records only that it sent something
<venture>/.teamschats/Chat archive from an external messaging platform (CR-047). Raw provider message objects, one JSON file per chat per day, plus a rendered .md per day and a _chat.json naming the meeting topic. A dot-folder so Obsidian ignores the raw data; the derived notes belong in the normal tree
<venture>/.teamschats/_fetch.jsonThe fetch record for the archive: when it was last fetched, and whether that worked. Tells a quiet source (fetched, nothing new) from a stale one (not fetched) and a broken one (the fetch failed, often on an expired login) — three states a snapshot date alone prints identically
_infrastructure/The INTERNAL architecture: machines, topology, connectivity, who operates what from where. Named in prefix_conventions since CR-034 but never declared in its own right until CR-051
_architecture/The EXTERNAL architecture: the software system — which components exist, which repository holds each, what reads and writes the vault, and where each configuration lives. The counterpart to _infrastructure/, which answers the same questions about machines
<venture>/.githubmeta/Repository metadata archive: issues with their state and dates, releases, commit subjects, a docs listing. One folder per repository, a manifest saying what it is, then a dated snapshot plus a rendered .md. Metadata only — never the code
<venture>/.githubmeta/_fetch.jsonThe fetch record for the archive: when it was last fetched, and whether that worked. Tells a quiet source (fetched, nothing new) from a stale one (not fetched) and a broken one (the fetch failed, often on an expired login) — three states a snapshot date alone prints identically
<venture>/.jirameta/Issue-tracker metadata archive: issues with their status, assignee and dates, plus released versions. One folder per board, a manifest saying what it is, a dated snapshot, a rendered .md, and a status.md holding current state. Metadata only — never descriptions or comment threads
<venture>/.jirameta/_fetch.jsonThe fetch record for the archive: when it was last fetched, and whether that worked. Tells a quiet source (fetched, nothing new) from a stale one (not fetched) and a broken one (the fetch failed, often on an expired login) — three states a snapshot date alone prints identically
_config/Vault-wide overrides for skill defaults (optional)
.analytics/Dated snapshots of vault-level analytics. A DORMANT dot surface (CR-097): read on demand by name, never by a folder walk. Was _analytics/ before 1.83.0; readers fall back to it for one release
_tasks.yamlVault-root task aggregation (legacy from v1 schema)
_INDEX-*.mdGenerated registers at vault root: what runs where, and which project maps to which machine. Swept from a machine list held outside the vault, so the vault is the view and not the source
<folder>/_ops.yamlPer-folder ops config (org config, team, language, terminology)
<folder>/_tasks.yamlPer-folder open tasks (v2 distributed)
<folder>/_insights.yamlExtracted decisions, learnings, patterns, evolution feedback
<folder>/_meta.yamlFolder metadata (esp. _contacts/<name>/ classification)
<folder>/_summary.yamlFolder-level narrative summary (CR-008, generated by Ollama)
<folder>/CHANGELOG.mdPer-folder changelog of structural changes
<folder>/rolling-plan-<facilitator>-<partner>.mdLiving per-axis planning doc for a recurring 1-on-1 (CR-014); registered in _ops.yaml workflows.rolling_plans
From ecosystem.yaml, contract 41 · core-skills 1.89.4 · read at build 2026-10-08