Part A — Pre-close coverage gate. ### Task completion now lists acceptance criteria from the per-task file before setting 🟢; missing evidence → ask the user. New section ### Post-commit task closure prompt: after a feat:/fix: commit the agent asks "эта работа закрывает таску <slug>?" so shipped code doesn't sit under stale ⚪ blocks (cf. extend-project-discipline-brainstorm- workspaces / project-creation-lifecycle-skill, both shipped before close). Part B — Local-first recommendations at session-start / "what next" triggers. cwd-project board (🔴 → 🟡 → ⚪) leads; cross-project urgents are at most one footnote line. Explicit "по всем проектам" flips the order. Pairs with using-projects-meta's local-first read rule. Bump 1.0.0 → 1.1.0 (MINOR — adds two new operation types; task block suggested PATCH but Rule 3 grades these as capability additions). Closes [using-tasks-close-coverage-gate] (next commit). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5.8 KiB
using-tasks
Runtime policy for keeping 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.
using-tasks governs usage of an existing .tasks/. Initial creation and
migration to canon are owned by setup-tasks.
Renamed from
task-status-wikiat v1.0.0.
When it triggers
- User is switching between tasks, resuming a paused task, starting a new one, or asks "where were we" / "what's the status".
- User says: "use task management system", "pause", "switch to X", "update status".
- Any context-switching or multi-task coordination question in a code project.
- If
.tasks/is missing or non-canonical, this skill delegates tosetup-tasksbefore doing anything else.
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
---
Status legend:
| Emoji | State | Notes |
|---|---|---|
| 🔴 | Active | Currently worked on. Only one at a time. |
| 🟡 | Paused | In progress, resumable. |
| ⚪ | Ready | Defined, not started. |
| 🟢 | Done | Kept until merged. |
| 🔵 | Blocked | Waiting on external input. |
Per-task file format (<task-slug>.md)
Sections, in order: Goal (one paragraph — what this achieves and why),
Key files (path/to/file.ts:42 style — specific lines when relevant),
Decisions log (reverse-chronological, append-only — past entries are
immutable), Open questions, Completed steps, Notes (temporary
hypotheses, links).
Operations
Session start
- Check
.tasks/STATUS.md. If missing → invokesetup-tasksand stop 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
_Updatedis more than 3 days old, flag it and ask the user to confirm current state.
Session end / pause / switch
- Update
STATUS.md: set the current task to 🟡, refresh "Where I stopped" and "Next action". - Append non-obvious decisions to
<task-slug>.mdDecisions log. - Move finished items to "Completed steps".
- Commit:
git add .tasks/ && git commit -m "chore: update task status [<task-slug>]".
Task switch
- Run session-end ops for the current task.
- Read the target
<task-slug>.md. - Set the target to 🔴 in
STATUS.md(demote previous active to 🟡). - Confirm orientation before starting work.
New task
- Ask: slug, goal, known key files, branch.
- Create
<task-slug>.mdwith Goal and Key files populated. - Add a ⚪ block to
STATUS.md. - Create / checkout the branch if missing.
Task completion
- Pre-close coverage check — list acceptance criteria, locate evidence (tests, smoke-test artefacts, manual checklist ticks, design doc refs). Missing evidence → ask the user before closing; never auto-close.
- Resolve or drop all open questions.
- Set status to 🟢 in
STATUS.md. - Append a final summary line to the Decisions log.
- Remind the user to delete the branch after merge.
Post-commit task closure prompt
After a feat: / fix: commit the agent prompts:
"эта работа закрывает таску <slug>?". Slug candidates: commit-message
scope, current branch, most recent Where I stopped. If yes → run the
coverage check above. Skips chore: / meta: / docs: commits.
Forces a fresh-while-fresh decision, instead of letting shipped code sit under a stale ⚪ block.
Recommendations / "what's next" trigger
When the user asks «что дальше», «срочные», «куда копаем», "what next", "status", or on session-start — recommend in this order:
- Local cwd-project board ranked 🔴 → 🟡 → ⚪. Cite slugs.
- One footnote line if relevant:
Cross-project: N 🔴 in other repos (см. mcp__projects-meta__tasks_aggregate).Only if N>0 and no local 🔴.
Explicit "по всем проектам" / "across all projects" flips the order.
Pairs with using-projects-meta's local-first rule (which covers reads;
this one covers recommendations).
Rules
- Never lose "Where I stopped". Most critical field. If unclear, ask before ending the session.
- One sentence per
STATUS.mdfield. 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 logis 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 without coverage check. See "### Task completion" step 1.
- Local-first recommendations. cwd-project first; cross-project at most one footnote line.
Install
From the repo root:
bash scripts/install.sh using-tasks
Works on Windows under git-bash, Linux, macOS.
See also
setup-tasks— companion, owns.tasks/creation and canon migration.project-bootstrap— invokessetup-tasksfor new projects.