From valerie
Task and todo management specialist. Use PROACTIVELY when users mention tasks, todos, project tracking, task completion, or ask what to work on next. Also use when parsing council analysis reports, HANDOFF files, or any structured recommendation source into doob todos — including auditing doob against HANDOFF context and writing back capture status.
How this skill is triggered — by the user, by Claude, or both
Slash command
/valerie:valeriesonnetThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Valerie manages tasks and todos using a configured backend (doob or sqlite). Valerie is the
Valerie manages tasks and todos using a configured backend (doob or sqlite). Valerie is the
only skill that should talk to doob or run the GitHub issue sync loop. Other skills should
use handoff-db/SQLite plus transient HANDOFF YAML only. Before any todo workflow, run the
setup check. Then handle one of five workflows: direct CRUD, structured-source ingestion
(council reports, HANDOFF files), HANDOFF cleanup/write-back, and audit/reconciliation. For
HANDOFF sources, prefer the shared handoff-reconcile script over hand-written doob
commands.
Default active-work loop:
doobdoobdoob back to GitHub issuesHANDOFF files are not the backlog system. Active items should not retain closed work after
sync, but the log section remains durable and should keep one-line completion records.
Resolve the config file:
<plugin-cache-dir>/atelier/<version>/.claude-plugin/valerie.local.yaml
If the file does not exist, run the setup prompt before any todo operation:
valerie is not configured. Run setup now? [Y/n]
If yes — detect the user's shell ($SHELL) and run the appropriate setup script:
# sh
sh <plugin-cache>/valerie/<version>/skills/valerie/helpers/setup.sh
# nu (if $SHELL contains nu)
nu <plugin-cache>/valerie/<version>/skills/valerie/helpers/setup.nu
The script writes .claude-plugin/valerie.local.yaml:
backend: doob | sqlite
shell: sh | nu
configured: YYYY-MM-DD
If no — skip setup and assume backend: doob, shell: sh. Remind the user they can
run setup later.
After setup, read the config and use the chosen backend for all commands in this session.
doob is available; use native CLI commands (see references/doob-commands.md).
Verify: command -v doob exits 0.
doob is not installed. Valerie scaffolds a thin sqlite wrapper at first use:
# check if wrapper exists
ls ~/.local/bin/doob 2>/dev/null || valerie_scaffold_sqlite_wrapper
See references/sqlite-fallback.md for the schema, wrapper code, and limitations.
All subsequent commands use the same surface (doob todo add, doob todo list, etc.)
but routed through the sqlite wrapper.
Dispatch the valerie agent for:
For single ad-hoc todos (one item, no source document), invoke the backend directly without dispatching the full agent.
Add, list, complete, remove individual todos. See references/doob-commands.md for full
syntax.
Quick reference:
doob todo add "<description>" [--priority <n>] [-p <project>] [-t <tag1,tag2>]
doob todo list [--status pending|in_progress|completed] [-p <project>]
doob todo complete <id>
doob todo remove <id>
When a council analysis report (devloop analyze output, *-council.md) is referenced:
--priority 5--priority 4--priority 3--priority 2--priority 1doob todo addWhen a HANDOFF.*.yaml is the source:
handoff-reconcile sync --handoff <path-to-HANDOFF.yaml>
Use this as the default path. Only fall back to direct doob commands when extending or
debugging the reconciler itself.
doobhandoff-detect if available)status: open or status: blockeddoob todo/issue:
name when present, otherwise <title> (append [BLOCKED] if blocked)project fieldhandoff,<project>After reconciling HANDOFF items with doob, update the HANDOFF file so its items only
contain still-open context.
For each still-open item that was reconciled, optionally append to its extra array:
extra:
- date: <today>
type: note
note: "reconciled with doob — todo id <doob-id>"
Remove any item whose matching todo/issue is complete, cancelled, or closed upstream. Do not
retain closed items in committed items. Preserve or prepend a one-line log entry for
finished work, ideally with commit hashes when known. Write back and commit:
git add .ctx/HANDOFF.*.*.yaml
git commit -m "docs: prune resolved handoff items"
When asked to audit todos against a HANDOFF:
handoff-reconcile audit --handoff <path-to-HANDOFF.yaml>
Use this as the default audit path, then fall back to the manual checklist below only when you need to debug a mismatch.
doobdoob todo list -p <project> --json — collect all pending/in-progress todosReconciliation — <project>
===========================
Captured (HANDOFF→doob): N items
Not captured: N items [list titles]
Orphaned todos: N items [list descriptions]
Closed upstream: N items [list IDs]
git rev-parse --show-toplevel | xargs basename) if not specifieddoob; all other skills should use
handoff-db/SQLite and HANDOFF YAML onlyhandoff-reconcile first; direct doob commands are the
fallback/debug path, not the defaultitems as the source of truth for closed work; prune closed items after
sync, but preserve durable log historydoob/GitHub syncreferences/doob-commands.md — Full doob CLI syntax, flags, and output formatsreferences/sqlite-fallback.md — SQLite schema, wrapper code, and limitations vs doobhelpers/setup.sh — Interactive setup for sh usershelpers/setup.nu — Interactive setup for nu usersProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub 89jobrien/bazaar --plugin valerie