- mapping.yaml: 7 pending → auto (setup-tasks, using-tasks, setup-wiki, using-wiki, using-projects-meta, using-context7, project-bootstrap, recommend-dont-menu). pending count now 0. - dist-hermes/ populated: software-development: project-bootstrap (+ assets) productivity: recommend-dont-menu, setup-tasks, using-tasks research: setup-wiki, using-wiki mcp: using-context7, using-projects-meta - active-platform replace-rule verified: Windows+PowerShell → Linux+bash in body SKILL.md (frontmatter description unchanged by design). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
8.0 KiB
name, version, description
| name | version | description |
|---|---|---|
| using-tasks | 1.1.0 | Policy skill for working with an existing `.tasks/` board (per-task files + STATUS.md). Use whenever the user is switching between tasks, resuming a paused task, starting a new task, asking "where were we", says "use task management system", "pause", "switch to X", "what's the status", "update status", or wants to track progress across parallel workstreams. Trigger on any context-switching or multi-task coordination question in a code project. If `.tasks/` is missing or non-canonical (no per-task `<task-slug>.md` files, no emoji status legend in STATUS.md), delegate to `setup-tasks` first — it has its own confirmation gate. Renamed from `task-status-wiki` at v1.0.0. |
using-tasks
Policy for maintaining compressed working context across parallel tasks in a monorepo. The agent reads and updates
.tasks/so every session starts oriented and every switch costs seconds, not minutes. This skill governs usage of an existing.tasks/— initial creation and migration to canon are owned bysetup-tasks.
Prerequisites
This skill assumes the project has a canonical .tasks/ layout:
.tasks/STATUS.md— the board, with per-task blocks using emoji status (🔴 active / 🟡 paused / ⚪ ready / 🟢 done / 🔵 blocked)..tasks/<task-slug>.md— one deep-context file per active or paused task.
If .tasks/ is missing, or STATUS.md exists but is non-canonical (e.g. flat sections like "## Done" / "## In Progress" without the emoji + per-task block format, or no per-task files exist alongside STATUS.md) — invoke setup-tasks first. It detects greenfield vs migrate, has its own confirmation gate, and creates / migrates the structure. Only after setup-tasks finishes should this skill operate on .tasks/.
Structure
<monorepo-root>/
.tasks/
STATUS.md ← board: one block per task, sorted by priority
<task-slug>.md ← deep context per task, one file each
Commit .tasks/ to git. Decision history is valuable; diffs show how thinking evolved.
STATUS.md format
# Task Board
_Updated: YYYY-MM-DD_
## 🔴 [task-slug] — short description
**Status:** active | paused | blocked | done
**Where I stopped:** one sentence — the exact thought or action interrupted
**Next action:** one concrete step to resume immediately
**Blocker:** (only if blocked) what is preventing progress
**Branch:** git branch name
---
Emoji convention:
- 🔴 Active — currently worked on (only one at a time)
- 🟡 Paused — in progress, resumable
- ⚪ Ready — not started, fully defined
- 🟢 Done — completed, kept until merged
- 🔵 Blocked — waiting on external input
Per-task file format (<task-slug>.md)
# <task-slug>
## Goal
One paragraph. What this achieves and why it matters in the monorepo.
## Key files
- `path/to/file.ts` — role in this task
- `path/to/other.ts:42` — specific line if relevant
## Decisions log
Reverse-chronological. Append only — never rewrite past entries.
- YYYY-MM-DD: Why X was chosen over Y
- YYYY-MM-DD: Constraint Z discovered, approach adjusted
## Open questions
- [ ] unresolved design or dependency questions
## Completed steps
- [x] steps finished this or previous sessions
## Notes
Temporary hypotheses, links, names of people to consult.
Agent operations
Session start
- Check if
.tasks/STATUS.mdexists. If not → invokesetup-tasksand stop here until it returns. - Read
STATUS.md. - If user names a task, read its
<task-slug>.md. - Confirm in one sentence: "We're in the middle of X, next step is Y."
- Ask if the plan is still correct before doing anything.
- If STATUS.md
_Updateddate is >3 days ago, flag it and ask user to confirm current state.
Session end / pause / switch
- Update
STATUS.md: set current task to 🟡, update "Where I stopped" and "Next action". - Append to
<task-slug>.mdDecisions log any non-obvious choices made this session. - Move finished items to "Completed steps".
- Commit:
git add .tasks/ && git commit -m "chore: update task status [<task-slug>]"
Task switch
- Perform session-end operations for the current task.
- Read the target
<task-slug>.md. - Set it to 🔴 in STATUS.md (demote previous active to 🟡).
- Confirm orientation before starting work.
New task creation
- Ask: task name (slug), goal, known key files, branch name.
- Create
<task-slug>.mdwith Goal and Key files populated. - Add ⚪ block to
STATUS.md. - Create and checkout branch if it doesn't exist.
Task completion
- Pre-close coverage check. Before setting 🟢:
- List acceptance criteria from the per-task
<slug>.md(or the STATUS block if no per-task file). - For each criterion, locate evidence: a test name in the diff, a smoke-test artefact, a manual-checklist tick in the per-task file, or a design-doc reference.
- Missing evidence on any criterion → flag to user and ask "закрывать или подождать coverage'а?". Never silently close.
- If acceptance criteria are policy / docs-only and have no testable shape, an explicit user "ok, closed by inspection" is required (record this in the close-note).
- List acceptance criteria from the per-task
- Resolve or drop all open questions.
- Set status to 🟢 in STATUS.md.
- Append final summary line to Decisions log.
- Remind user to delete the branch after merge.
Post-commit task closure prompt
After any implementation commit (feat: / fix: / similar), prompt the user once:
Эта работа закрывает таску
<slug>?
Slug candidates, in priority: (a) commit message scope, (b) current branch name, (c) the most recent Where I stopped field that mentions a now-shipped artefact. If user says yes → run the pre-close coverage check from "### Task completion". If no → silent.
Skip on chore: / meta: / docs: / style: commits — they rarely close work.
This exists because shipped code can sit while the task block stays ⚪ ready (e.g. extend-project-discipline-brainstorm-workspaces lived as ⚪ for a day after 215afdd shipped Rule 5). The prompt forces a one-line decision while the work is fresh.
Recommendations / "what's next" trigger
When the user asks «что дальше», «срочные», «куда копаем», «status», «what next», or session-start lands on a project — recommend in this order:
- Local cwd-project board ranked 🔴 → 🟡 → ⚪. Group by status, summarize one line each. Cite slugs.
- One footnote line if cross-project state is relevant:
Cross-project: N 🔴 active in other repos (см. mcp__projects-meta__tasks_aggregate).Only when N>0 and there is no active 🔴 in the current cwd. Never bury local recommendations under it.
Cross-project urgents are information, not the driver of "what to do here". The user chose this cwd; that's the implicit scope.
If the user explicitly asks "across all projects" / "по всем проектам" / "cross-project status" — flip the order: cross-project first, local as footnote.
Pair: using-projects-meta declares local-first for reads; this rule extends local-first to the recommendation phase.
Rules
- Never lose "Where I stopped" — most critical field. If unclear, ask before ending session.
- One sentence per STATUS.md field — compress, don't write prose.
- Key files must be specific — not "auth module" but
packages/auth/src/useAuth.ts:87. - Decisions log is append-only — past entries are immutable.
- Commit after every session end — git log is the history of thinking.
- Always confirm orientation at session start — state understanding before acting.
- One active task at a time — only one 🔴 in STATUS.md.
- Never close a task without a coverage check — see "### Task completion" step 1. Acceptance criteria with no evidence → ask, don't auto-close.
- Local-first recommendations — cwd-project board comes first; cross-project urgents are at most one footnote line.