reflect:errors-ack
Triage and acknowledge entries in the reflect errors sink (~/.reflect/errors.json). Invoked from the statusline ⚠N badge when pipeline errors accumulate (drain poison, parser crashes, ingest failures, hook timeouts).
Best use case
reflect:errors-ack is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Triage and acknowledge entries in the reflect errors sink (~/.reflect/errors.json). Invoked from the statusline ⚠N badge when pipeline errors accumulate (drain poison, parser crashes, ingest failures, hook timeouts).
Teams using reflect:errors-ack should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/errors-ack/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How reflect:errors-ack Compares
| Feature / Agent | reflect:errors-ack | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Triage and acknowledge entries in the reflect errors sink (~/.reflect/errors.json). Invoked from the statusline ⚠N badge when pipeline errors accumulate (drain poison, parser crashes, ingest failures, hook timeouts).
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Reflect: Errors Ack
Triages unacknowledged entries in `~/.reflect/errors.json` and
acknowledges them (individually or in bulk). The statusline `⚠N
/reflect:errors-ack` badge is the entry point — clicking the badge or
typing `/reflect:errors-ack` lands here.
## When to Use
- Statusline shows `⚠N /reflect:errors-ack` badge
- User asks "what are the reflect errors", "what's broken in reflect"
- After a known fix has landed and user wants to clear stale errors
- Periodic triage of accumulated pipeline noise
## What This Skill Does
1. Load `~/.reflect/errors.json` and filter to unacked entries
2. Render a triage table (id · ts · source · kind · short message)
3. Group entries by `kind` so repeats are obvious
4. Ask the user (via `AskUserQuestion`):
- **Ack all** — wipe the badge, suitable when the user has already
fixed the root cause
- **Ack by kind** — clear a specific failure class while keeping
others visible (e.g. ack all `drain_poison` after fixing the parser)
- **Show details** — print the full message + traceback for an entry
- **Leave alone** — exit without changes
5. Run `reflect errors ack [ids...]` and report the count
of records flipped to `acked: true`
## Triage table format
```
id when source kind message (first 80 chars)
─────────────────────────────────────────────────────────────────────────
err-b177eb 05-17 drain drain_poison poison after 3 retries: …
err-614742 05-17 drain drain_poison poison after 3 retries: …
err-579ed4 05-17 drain drain_no_output claude -p produced no out…
err-c942a3 05-17 drain drain_poison poison after 3 retries: …
```
Group repeats by kind in the prompt: "4 drain_poison + 1 drain_no_output
— ack all? ack just drain_poison? show one in detail?"
## Backend commands
Use the installed `reflect` CLI (from `uv tool install reflect-kb`). If `reflect`
isn't on `$PATH`, self-bootstrap with `uv run --with reflect-kb python -m
reflect_kb.errors <args>` — the bare `python3 -m reflect_kb.errors` form only
works when reflect_kb is importable by *system* python3, which it usually isn't.
```bash
# Count of unacked entries (what the statusline badge reads)
reflect errors count
# Ack all unacked entries
reflect errors ack
# Ack specific entries by ID
reflect errors ack err-b177eb err-614742
# Append a new error (used by hooks/scripts, not user)
reflect errors append \
--source drain --kind drain_poison --message "…" --context '{}'
```
The store at `~/.reflect/errors.json` is locked via `fcntl` so it's
safe to ack and append concurrently. Entries are deduplicated within a
short window (same kind + same hash) to prevent loops from flooding it.
## Implementation
When invoked:
```bash
# 1. show the count + table
reflect errors count
python3 <<'PY'
import json, datetime
with open('/Users/stevengonsalvez/.reflect/errors.json') as f:
d = json.load(f)
unacked = [e for e in d.get('errors', []) if not e.get('acked')]
for e in unacked[:20]:
eid = e.get('id', '?')
ts = e.get('timestamp', e.get('ts', '?'))[:10]
src = (e.get('source') or '?')[:10]
kind = (e.get('kind') or '?')[:18]
msg = (e.get('message') or '')[:80]
print(f"{eid:12} {ts:10} {src:10} {kind:18} {msg}")
PY
# 2. ask user via AskUserQuestion (ack all / ack by kind / show detail / leave)
# 3. run ack
reflect errors ack [optional-ids]
```
After ack the badge disappears on next statusline refresh (10s cache).
## Output template
```
Found N unacked errors in ~/.reflect/errors.json.
By kind:
drain_poison ×4
drain_no_output ×1
Acked M entries. Badge will clear within 10s.
```
## When NOT to use this skill
- Don't ack errors blindly — at least skim the kinds. Repeated
`parser_typeerror` or `ingest_*` failures usually point at a real bug
that needs fixing before acking (otherwise the same error returns
next session).
- Don't delete `~/.reflect/errors.json` to clear the badge — that loses
the history. Always ack.
## Related
- `/reflect-status` — broader system health view
- `/reflect:recall` — search learnings (separate concern, not errors)
- The errors sink itself: `~/.reflect/errors.json`
- Statusline badge: `⚠N /reflect:errors-ack` (rendered red, only when
`count > 0`)Related Skills
reflect
Full conversation scan for self-improvement. Detects behavioral corrections and knowledge signals, classifies them, proposes agent updates and knowledge notes with entity sidecars for GraphRAG indexing. Correct once, never again.
reflect-status
Show reflection metrics, pending reviews, sidecar coverage, and GraphRAG health. Read-only views into the reflect system state. Can also approve/reject pending low-confidence items.
reflect:recall
Retrieve relevant prior learnings from the global knowledge base. Hybrid vector + graph search over 170+ indexed learnings, reranked by confidence, recency, and tag overlap. Use when starting work, debugging a recurring problem, or before implementing a feature that may have prior art.
reflect:ingest
The global knowledge indexer. Harvests ALL memory sources across all tools (Claude, Codex, Copilot, Gemini) and all project types into the unified GraphRAG + QMD knowledge base. Archives originals, generates entity sidecars, and dual-indexes for future retrieval. This is THE command that makes the knowledge base comprehensive.
reflect:cost
Report reflect drain spend over a time window — tokens split by cached (cache_read), uncached writes (cache_creation), and io (input+output), with a $ estimate, grouped by day / outcome / model / transcript. Reads the drainer's cost log and surfaces outlier runs and cache-reuse health (the 41.5M-token failure mode = low cache reuse + high cache writes). Use to answer "what is reflection costing me" for the last day / week.
reflect:consolidate
Project-level memory consolidation. Merges orphaned worktree memory directories into a single .agents/MEMORY.md for the current project. Deduplicates, sections, and proposes cleanup of orphan dirs. Does NOT index into the global knowledge base — use reflect:ingest for that.
workflow
Guide through structured delivery workflow with plan, implement, validate phases
webapp-testing
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
validate
Verify implementation against specifications
ui-ux-pro-max
UI/UX design intelligence. 67 styles, 96 palettes, 57 font pairings, 25 charts, 13 stacks (React, Next.js, Vue, Svelte, Astro, Nuxt, SwiftUI, React Native, Flutter, Tailwind, shadcn/ui, Jetpack Compose). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient.
tui-style-guide
TUI style guide for consistent terminal interface design
token-usage
Show Claude Code token usage across sessions — daily, weekly, per-project, and per-session breakdowns. Parses {{HOME_TOOL_DIR}}/projects/**/*.jsonl for consumption data. Use when the user asks about token usage, costs, how many tokens were used, session statistics, or wants a usage report.