dekko-notes · git:20260803.ca49afc · 2026-08-03 · sha256 ad6f9b16344599c4

dekko-notes git:20260803.ca49afcA

Immutable. This exact content is served forever at /api/v1/blob/ad6f9b16344599c4.

---
name: dekko-notes
description: Read and write dekko's symbol-anchored notes in any repo with a .dekko/ directory. Trigger every time you pull a symbol's context (query_symbol, get_context_pack, dekko query/context), right after a non-obvious change, and right after any rename/move/signature edit (to sweep orphaned notes). Notes are durable, committed annotations keyed by symbol id — they carry rationale grep/Read cannot show.
---

# Keeping dekko notes current

dekko stores **symbol-anchored notes** in `.dekko/notes.json`, keyed by
symbol id (`path::Qualified.name`). They are committed to git and shown
inline by `query_symbol` / `get_context_pack` (CLI: `dekko query
symbol` / `dekko context`). See the `dekko-orient` skill for target
syntax (bare name, `Class.method`, `file.py:name`, or the tolerated
`::` form) and for when to reach for dekko over grep/Read generally.

## Consult notes before editing

Whenever you pull a symbol's context, read any `note:` lines first —
they record rationale, gotchas, and constraints the code alone does
not show. Call the `list_notes` MCP tool (or `dekko note list <sym>`)
directly if you need to see a symbol's notes outside a context pack.

## Write a note after a non-obvious change

After a change whose reasoning is not evident from the diff — a
workaround, an invariant that must hold, a deliberate trade-off — add
a note so the next reader (human or agent) sees it. Call the
`add_note` MCP tool directly, or:

```
dekko note add path/to/file.py:func "why this is the way it is"
```

Keep notes short and about *why*, not what.

## Re-anchor notes when a symbol moves

Note ids embed the file path and qualified name, so renaming or moving
a symbol **orphans** its notes. After such a change:

1. Find orphans: `dekko note list --orphaned`.
2. For each orphan that still applies, re-anchor it to the new id:
   ```
   dekko note add <new-target> "<the note text>"
   dekko note rm  <old-target>
   ```
   (the old id is shown in the orphaned listing).
3. Remove notes that no longer apply: `dekko note rm <old-target>`.

Run this sweep after any rename, file move, or signature change that
alters a symbol's qualified name.

## Boundaries

- Notes are for human/agent rationale, not generated data — never put
  machine state or large output in them.
- Do not edit `.dekko/notes.json` by hand; use the `note` commands or
  the `add_note` / `list_notes` tools so the file stays valid and
  git-tracked.