{
  "id": "codemap",
  "title": "Codemap",
  "views": [],
  "pin": [
    "codemap/conventions.md"
  ],
  "seed": {
    "codemap/map.yaml": "# =================================================================\n# CODEMAP - an agent-maintained map of this repository.\n# Humans see this file rendered as an interactive graph in the\n# Workbench; you (the agent) are its maintainer. Keep it truthful.\n#\n# WHEN TO UPDATE (in the same turn as the work, not batched):\n#   - explored new code       -> add or refine the nodes you touched\n#   - changed code            -> update those summaries, or set\n#                                status: stale if you didn't re-verify\n#   - starting work somewhere -> put those node ids in `focus:`,\n#                                and clear them when you move on\n#\n# SCHEMA (structure is the contract; comments are yours to use):\n#   nodes:               # a MAP keyed by node id - never a list\n#     <id>:              # dotted path: a.b.c is a child of a.b;\n#                        # segment chars [a-z0-9_-] only, so file\n#                        # names need '_' (fs.rs -> fs_rs), and the\n#                        # real name goes in `label`\n#       kind: area | module | file | symbol\n#       label: short human-readable name\n#       loc: cheers:ws/@<your-handle>/<repo-relative-path>#L<n>[-L<n>]\n#            <your-handle> = the EXACT name this channel @-mentions\n#            you by (you see it in messages addressed to you, e.g.\n#            '@deng please ...'). NEVER guess it and never copy a\n#            handle from an example - a wrong handle breaks every\n#            jump. Unsure? Omit loc rather than invent one.\n#            The path part is relative to YOUR workspace root:\n#            VERIFY it exists (e.g. `ls <path>`) before writing it -\n#            a guessed path is a broken jump. Prefer a representative\n#            FILE plus #L<line> even for modules; a bare directory\n#            loc only opens the folder view.\n#       summary: what it does / what matters; <=200 chars; facts only\n#       status: explored | partial | stale\n#       tags: [optional, short]\n#   edges:\n#     - { from: <id>, to: <id>, kind: calls|data, label: short }\n#\n# HOW TO EDIT:\n#   - append NEW nodes at the end of the file (desk_append) -\n#     `nodes:` is intentionally the last top-level key\n#   - change EXISTING nodes with desk_edit, replacing single lines;\n#     each node's unique '  <id>:' line is your anchor - never\n#     rewrite the whole file\n#   - comments survive every write path; leave margin notes freely\n#     (e.g. '# TODO: auth branch unverified')\n#   - granularity: areas + modules always; files only when they\n#     matter; symbols only for hot paths. Keep the file under 256 KB\n#   - unsure? prefer `status: partial` over invented detail\n# =================================================================\ncodemap: 1\nrepo: \"\"       # owner/name - fill in on your first write\nupdated: \"\"    # ISO-8601 - refresh on every write\nfocus: []\nedges: []\nnodes:\n  # (empty - append your first node below, e.g.\n  #   gateway:\n  #     kind: area\n  #     label: Gateway\n  #     summary: ...\n  #     status: partial )\n\n",
    "codemap/conventions.md": "Maintain codemap/map.yaml — read that file first; its header comments are the full instructions.\n"
  }
}
