triage-tasks
Use when you want to review and batch-update open vault task statuses for the current project or across all projects.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when you want to review and batch-update open vault task statuses for the current project or across all projects.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use when researching what the vault knows about a topic — performs graph + semantic exploration with gap analysis to map existing knowledge and find missing connections. Primarily used via the vault-explorer agent. Not for routine session-start context loading (hooks handle that).
Use when wrapping up a work session — creates devlog entry, captures undocumented decisions/research/debugging, audits link health of session work, and updates project index. Primarily used via the pkm-capture agent.
Use when writing to the vault — creating new notes (vault_write), editing existing notes (vault_edit, vault_append, vault_update_frontmatter). Handles duplicate checking, link discovery, annotations, and index updates for new notes. Provides guidelines for modifications.
Use when you want to quickly capture a new task in the vault from a title, with optional priority and due date.
Use when starting work on a specific vault task, when a task title or path is mentioned, or when coming from triage output.
| name | triage-tasks |
| description | Use when you want to review and batch-update open vault task statuses for the current project or across all projects. |
Runs interactively: fetch open tasks, show them numbered with completion hints, wait for user decisions, apply updates.
Detect the current project from CLAUDE.md:
Read("CLAUDE.md") // look for: # PKM: <path>
Extract the vault project path from a line matching /^#\s+PKM:\s*(.+)$/m (e.g., 01-Projects/Obsidian-MCP).
Scope (check skill args first, then default):
folder from queriesIf CLAUDE.md has no # PKM: line and no scope was specified, ask:
"No project found in CLAUDE.md. Should I triage tasks across all projects, or a specific folder?"
vault_query({ type: "task", status: "pending", folder: "<project>", sort_by: "priority", sort_order: "desc" })
vault_query({ type: "task", status: "active", folder: "<project>", sort_by: "priority", sort_order: "desc" })
Omit folder for all-projects scope. If both return empty, report "No open tasks found — all clear!" and stop.
Combine: active tasks first (priority-sorted), then pending (priority-sorted). Assign sequential numbers 1–N.
Collect lightweight signals in two calls — not one call per task.
Activity log (check if any task was recently touched):
vault_activity({ since: "<date 30 days ago as YYYY-MM-DD>", limit: 100 })
Git log (look for commits related to task work):
Bash: git rev-parse --is-inside-work-tree 2>/dev/null && git log --oneline --since="30 days ago" | head -50
If git rev-parse fails (not a git repo), skip git hints silently — don't surface an error to the user.
For each task, derive a hint from these results:
vault_update_frontmatter, vault_edit, vault_append): mark "recently updated"-) appears in a commit message: mark "⚡ git commits"Format the list clearly, grouping active before pending:
### Open Tasks — 01-Projects/Obsidian-MCP (5 tasks)
**Active:**
1. [urgent] implement-semantic-caching ⚡ git commits
Implement caching layer for OpenAI embedding calls
**Pending:**
2. [high] add-triage-tasks-command
Add /triage-tasks skill to vault-pkm plugin
3. [normal] project-init-update-command
Add init --update subcommand for hook file updates
4. [normal] support-claude-ai-hosted-sessions
Research making vault-pkm work with claude.ai sessions
5. [normal] rename-github-repo ⚡ git commits
Rename GitHub repo via UI
Reply with decisions, e.g.: `1,2 done | 4 cancel | 3 active`
Options: done · active · pending · cancel
Press Enter with no input to skip.
Include the task's first non-empty description line as a subtitle. Use vault_peek(path) per task (cheaper than vault_read — returns preview without full content). If the description section is empty or contains only a template placeholder, omit the subtitle entirely.
Wait for user input. Parse leniently:
| Input form | Meaning |
|---|---|
1,3 done | Tasks 1 and 3 → done |
2 active | Task 2 → active |
4 cancel or 4 cancelled | Task 4 → cancelled |
5 pending | Task 5 → pending (no-op if already pending) |
empty / skip | No updates — exit cleanly |
Numbers out of range: ignore with a warning. Unrecognised tokens: ignore silently.
Confirm parsed decisions before applying:
"Updating: 1, 3 → done · 4 → cancelled. Proceed? (y/n)"
For each decision, update frontmatter atomically:
vault_update_frontmatter({
path: "<task-path>",
fields: { status: "<new-status>" }
})
For tasks marked done, check for an existing completion timestamp before appending:
vault_read({ path: "<task-path>" })
If the note already contains **Completed**, skip. Otherwise:
vault_append({
path: "<task-path>",
content: "\n**Completed**: <YYYY-MM-DD>\n"
})
Report what changed:
Updated 3 tasks:
- ✓ implement-semantic-caching → done
- ✓ add-triage-tasks-command → done
- ✗ rename-github-repo → cancelled
Skipped: 2 tasks unchanged.