From Todos
Capture a review finding, PR comment, or tech-debt item as a file under .claude/todos/ in the current repo. Writes NNN-{status}-{priority}-{slug}.md with YAML frontmatter per the schema. Canonical writer - other skills (todo-triage, todo-resolve, ce-review) call this one to avoid duplicating the file-naming and frontmatter rules. Todos start as status:pending by default; promote via /todo-triage. Triggers: todo, add todo, capture this as a todo, track this finding, write a todo, note this for later, add to todos.
How this skill is triggered — by the user, by Claude, or both
Slash command
/todos:todo-createThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Capture a reviewable item that is not worth a full GitHub issue but is worth not forgetting. Writes `.claude/todos/NNN-{status}-{priority}-{slug}.md` in the current repo.
Capture a reviewable item that is not worth a full GitHub issue but is worth not forgetting. Writes .claude/todos/NNN-{status}-{priority}-{slug}.md in the current repo.
Write a todo when:
/xplan surfaces a future-work item that is not scope for the current planDo NOT write a todo when:
/compound instead)The rule: agent time is cheap, tech debt is expensive. If an item is valid, capture it - including nitpicks.
Todos live in .claude/todos/ in the repo being worked on, not in CCGM or ~/.claude/. This is a per-repo concern, committed with the rest of the code.
If .claude/todos/ does not exist:
Create it.
Write .claude/todos/README.md with a one-paragraph summary of the convention and a pointer to this skill.
Offer to add a short pointer block to the repo's AGENTS.md or CLAUDE.md:
## Todos
Review findings and PR nitpicks that do not warrant a GitHub issue live
in `.claude/todos/` as `NNN-{status}-{priority}-{slug}.md` files. Run
`/todo-triage` to promote pending todos to ready; run `/todo-resolve` to
batch-fix ready todos.
Parse $ARGUMENTS for:
/todo-create extract the auth middleware out of the request handler, p2, from ce-reviewIf $ARGUMENTS is empty, use the most recent discussion context - the last review finding, PR comment, or debug observation visible in the current conversation.
Infer the following from context (ask only when genuinely unclear):
priority - p1 (blocks something), p2 (this cycle), p3 (nitpick). Default p3 if the item came from a nitpick or style comment, p2 otherwise.source - review, pr-comment, debug, planning, ad-hoc. Default ad-hoc.pr - if a PR number is visible in context, record it.files - paths the todo touches, if known.status - always pending at creation. Triage promotes.Pick the next number by scanning existing files:
ls .claude/todos/*.md 2>/dev/null \
| sed -E 's#.*/([0-9]{3})-.*#\1#' \
| sort -n | tail -1
Increment by one, zero-pad to three digits. If no files exist, start at 001. Never reuse numbers.
Filename: .claude/todos/NNN-pending-{priority}-{slug}.md
Slug rules (matches references/schema.yaml):
Frontmatter - see references/schema.yaml for the full schema. Required fields on every todo:
---
title: <one-line imperative>
status: pending
priority: <p1|p2|p3>
created: <YYYY-MM-DD>
source: <review|pr-comment|debug|planning|ad-hoc>
---
Include pr, files, dependencies, tags when known.
Write the body in this order:
/todo-triage writes this when promoting to ready.)Do not speculate about the fix at create time. The triage pass is the place to commit to a direction; capture just enough for triage to have the context it needs.
After writing the file, print one line:
Wrote .claude/todos/NNN-pending-{priority}-{slug}.md (source: {source})
If the caller is another skill (headless mode - see modules/subagent-patterns/rules/subagent-patterns.md), return the created path in a structured envelope instead of printing.
todo-create is the canonical writer. /todo-triage, /todo-resolve, and the review orchestrator (ce-review) invoke it to avoid duplicating the filename/frontmatter rules. When called this way:
.claude/todos/)$ARGUMENTSSee references/schema.yaml for the exact fields.
Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.
npx claudepluginhub lucasmccomb/ccgm --plugin todos