project-gapslisted
Install: claude install-skill by-carlos/daikenja
# Gaps
An audit of the Open items section for exactly two problems: nobody owns it,
or it has sat past the staleness threshold. Nothing else is a gap. In
particular, an unowned **decision** is normal (per `ledger-format.md`) and is
never reported here.
## Step 0: read the contracts
Read these before doing anything. Do not work from memory of them.
- `${CLAUDE_PLUGIN_ROOT}/docs/reading.md` -- the shared resolve-and-parse
mechanism every read skill follows.
- `${CLAUDE_PLUGIN_ROOT}/docs/ledger-format.md` -- entry grammar, Open items.
- `${CLAUDE_PLUGIN_ROOT}/docs/config-contract.md` -- `stale_after_days`
resolution order.
- `${CLAUDE_PLUGIN_ROOT}/docs/response-format.md` -- how the reply to the user
is shaped. The report in Step 4 follows it.
## Step 1: resolve config, project and ledger
Follow `reading.md` § Step A and § Step B, then § Step D to resolve
`stale_after_days`: the matched project's value, otherwise the profile's,
otherwise 21. State which was used.
## Step 2: read the ledger
Follow `reading.md` § Step C. Only Open items are in scope for the filter, but
read the whole file the way every read skill does.
## Step 3: filter
From Open items, keep only `- [ ] ` lines -- a resolved item (`- [x] `) is
never a gap, regardless of its owner or age.
For each open line, evaluate two independent conditions:
- **Unowned.** `<owner>` is exactly `@unassigned`.
- **Stale.** Today's date minus the entry's `<date>` field is greater than the
resolved `stale_after_d