triage
User-facing companion to notifications. Agents running non-interactively can’t ask questions, so they append to the feed. Skills that surface something noteworthy — even interactively — also drop FYIs there. triage is how that feed gets drained — interactively, one item at a time.
When to use
- User runs
/triage. - User asks “what needs my input”, “what’s pending”, “show me notifications”, “what’s new”, or “what should I look at”.
- User opens notifications and wants to work through it.
Inputs
- notifications — the feed. Two formats:
- Action item:
- [ ] YYYY-MM-DD — <action>: <message> → [[link]] - FYI item:
- YYYY-MM-DD — <fyi>: <message> → [[link]]
- Action item:
Workflow
1. Read feed
Read notifications. If the ## Items section has no items, say so and exit — nothing to do.
2. Per item — walk, resolve, remove
For each item (oldest first), one at a time:
-
Show context. Read the linked source. If it’s a weekly reconcile report, parse its sections (Integration, Consolidation candidates, Promotion candidates, Moves/renames, Synthesis, Questions) and walk the user through each proposal individually — don’t dump the whole report.
-
Branch on item type:
- Action item (
- [ ]): Present the action plainly and offer: approve / modify / skip / defer. - FYI item (
-): Show the message + linked context concisely. Offer: dismiss / convert-to-action / defer. No action needed unless the user wants to take one.
- Action item (
-
Act on the decision. For action items, delegate to the appropriate skill:
- Promotion candidate approved → invoke
crystallizeon the target page. - Merge candidate approved → invoke
consolidateon the pair. - Missing cross-ref — add the wikilink directly.
- Synthesis / concept-page proposal — offer to create the page now with proper frontmatter, or defer.
- Rename impact (broken inbound wikilinks) — rewrite the broken refs directly.
- Answered-question item — offer to prune the entry from
questions.md. - Custom action (skill-specific) — execute as described in the item.
- Promotion candidate approved → invoke
-
Remove the item. Once handled (action: approved-and-executed / modified-and-executed / explicitly skipped this session; FYI: dismissed), delete that line from
notifications.md. A deferred item stays in the feed for next session. -
Append to log (log):
## [YYYY-MM-DD] triage | <short label> - Source: <link> - Actions: <one bullet per action taken, or "FYI dismissed" for FYIs>
3. Finish
When the feed is empty (or user stops), summarize what was processed this session — count + one-line per item. Do not generate new feed items during triage; that’s for other skills.
Rules
- One item at a time. Don’t batch decisions. The whole point is unhurried interactive review.
- Distinguish action from FYI. Don’t pressure the user to “do” something on an FYI — show it, let them dismiss.
- Delegate, don’t reimplement. If an action maps to an existing skill (
crystallize,consolidate,process-inbox), invoke it — their propose-first discipline still applies inside triage. - Delete on resolution, not on non-action. “Skip” / “dismiss” removes the item from this session’s pass; the next scheduled run may re-add an action item if the underlying condition persists. “Defer” keeps the item for later.
- Never add items here.
triagedrains the feed; other skills fill it. - Source gone? Drop the item. If the linked source file no longer exists, inform the user and remove the item — no action possible.
Verification
- notifications has fewer (or zero) items than before.
- log has one entry per actioned/dismissed item.
- Any invoked skills (crystallize, consolidate) have their own log entries too.