Files
LlamaCasty/schema.md
T
gramps c9ac348976 docs(ai): ai.md becomes a router; invariants move to AGENTS.md; budgets gated
ai.md 228 → 64 lines. It now carries only: what the product is, the build
commands, the architecture table, a "where the truth lives" table, and a
pointer to HANDOFF. No narrative, no status, no duplicated invariants.

AGENTS.md (195 lines) is now the single always-read file:
- the 20 invariants that break output, wipe user data, or ship a legal/trust
  breach — one line each, pointing at the doc that explains it (they replace
  110 lines of invariant stubs that duplicated docs/ai/*.md verbatim)
- Response style + No-Fluff Mode moved in from ai.md (rules belong in the rules file)
- onboarding is now: HANDOFF → ai.md router → the ONE docs/ai file → dir index;
  TASKS.md is read when the question is "what's next", not to write code
- memory rides with the change but is no longer a unit of its own; HANDOFF is
  ≤40 lines and overwritten, never appended

Anti-rebloat gate: scripts/verify.sh gains step 1/4, a doc-budget check
(AGENTS ≤210, ai ≤100; HANDOFF/TASKS caps land with the queue trim). A commit
that pads a capped file instead of moving detail fails the gate.

schema.md and docs/index.md corrected for the new roles and reading order.
Docs-only unit: scope-check run, no build.
2026-10-29 11:08:07 -07:00

3.8 KiB

ytLlive — Memory Map (schema)

This file defines how the repo stores durable, associative memory: context as plain markdown files, versioned in git. It is the map of the map — the schema that every other memory file follows. Read ai.md first; this file explains why and how.

Why markdown files, not a database

  • Grep-able, diffable, portable, human-editable — no tooling lock-in.
  • Git gives versioning and history for free; every stale fact is a git log away.
  • Files form a graph: each file is a node, each relative link an edge. The map stays associative (like memory) rather than a rigid tree.

File inventory

File Role Entry point?
AGENTS.md Auto-read on-ramp: working rules, the invariants that break the product, response style always read first
ai.md Router — what the product is, the architecture table, a "where the truth lives" table. No narrative, no status (≤100 lines, gated) yes — the map
README.md Human-facing intro: what the app is, how to run it, roadmap no
TASKS.md The active queue. Full task detail and research live in TASKS/; done work in TASKS/archive.md when the task is "what's next"
HANDOFF.md Current operational state: branch, in flight, next action, landmines (≤40 lines, overwritten never appended) yes — trust it as current state
MyMistakes.md Failure log + RECIPES REGISTRY: one-off solutions / how-tos get recorded here the same session, then grepp'd before ever re-deriving them grep first on any "did this before?" wall
schema.md This file: the conventions below when in doubt
<dir>/index.md Per-directory map (progressive disclosure): what lives there + links when diving into code
docs/ai/*.md Subsystem truth — one file per subsystem (capture, frame pipeline, output, overlays, youtube-api, ui-surface, product, environment). ai.md routes; docs/ai/index.md lists them with a "read when" when the task touches that subsystem
Views/ Reserved for Views; currently empty —

Conventions

  1. Semantic filenames. A file's name says what it is (YouTubeAuthService.cs, FocusPreservingListBox.cs). No codes, no abbreviations. Naming beats search.
  2. One index.md per code directory. The index is a Map of Content (MOC): it lists every file in that directory with a one-line purpose and links out to related directories. Details live in the files, never duplicated in the index.
  3. Links over hierarchy. Prefer relative links between related files over deep nesting. Relationships that matter should be visible from ai.md or an index.md; a note that is unreachable from ai.md might as well not exist.
  4. Stale facts get FIXED, not appended. A wrong map is worse than no map. When the code changes, update the memory file in the same change — no "TODO: update later" notes.
  5. Progressive disclosure. Don't cram detail into ai.md. ai.md names concepts and points at files; the indexes and source are the detail. Each layer adds resolution only when you drill in.

Reading order

  1. AGENTS.md — auto-read on-ramp: rules + invariants; it points you here.
  2. HANDOFF.md — current state. Trust it; don't re-derive it.
  3. ai.md — the router: architecture and where truth lives.
  4. The one docs/ai/*.md file that matches the task.
  5. <dir>/index.md — before reading that directory's files.
  6. The source files themselves — always the authority over any memory file.

Integration rule

Every feature change ships with what it falsifies corrected in the same commit — a path, an invariant, a status line. Broader restatement may be batched at a milestone. The point is that the map never stays wrong; it is not a tax on every commit.