From 08de3a79fccff08cf77fd2ad7ba772b50f7f967d Mon Sep 17 00:00:00 2001 From: vitya Date: Sun, 23 Aug 2026 11:54:58 +0300 Subject: [PATCH] =?UTF-8?q?fix(skills):=20setup-tasks/using-tasks=20review?= =?UTF-8?q?=20fixes=20=E2=80=94=20field=20count,=20rollback=20done/,=20ste?= =?UTF-8?q?p=20numbering?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dist/setup-tasks.skill | Bin 6464 -> 6488 bytes dist/using-tasks.skill | Bin 11284 -> 11279 bytes skills/setup-tasks/SKILL.md | 4 ++-- skills/using-tasks/SKILL.md | 20 ++++++++++---------- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/dist/setup-tasks.skill b/dist/setup-tasks.skill index c094f884bfa94fbf6af8d20c38fcb1c7a4850b81..047c50a373aa4fadabb514e6330ed844377e0e00 100644 GIT binary patch delta 4251 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 delta 4227 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 delta 2878 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 diff --git a/skills/setup-tasks/SKILL.md b/skills/setup-tasks/SKILL.md index b0f856d..c21a5e4 100644 --- a/skills/setup-tasks/SKILL.md +++ b/skills/setup-tasks/SKILL.md @@ -126,7 +126,7 @@ In migrate mode, do *not* try to auto-parse the old flat STATUS.md. The old layo 1. Show the user the old STATUS.md content (or a summary). 2. Ask: "Which of these are real, in-flight tasks you want to keep?" Get a list. -3. For each task, ask the four canonical fields (slug, status, branch, where-stopped, next-action). The skill never invents these. +3. For each task, ask the canonical fields (slug, status, branch, where-stopped, next-action). The skill never invents these. 4. Build a fresh canonical `.tasks/STATUS.md` from those answers. 5. Create `.tasks/yyyy-mm-dd-#####-.md` for each active or paused task using the per-task template (Goal, Key files, Decisions log, Open questions, Completed steps, Notes). File name format v2: date + 5-digit number (from the task's header `[#n slug]`) + slug, no `#`: `2026-05-08-00057-fbs-picking-list-pdf.md`. 6. Leave the `.bak-` file in place — historical record. @@ -194,7 +194,7 @@ If invoked from `project-bootstrap`, return control silently. 1. `rm -rf .tasks/` (greenfield rollback) or - `mv .tasks/STATUS.md.bak- .tasks/STATUS.md` (migrate rollback) and `rm .tasks/.md` for any newly created per-task files. + `mv .tasks/STATUS.md.bak- .tasks/STATUS.md` (migrate rollback) and `rm .tasks/.md` for any newly created per-task files; if per-task files were moved to `.tasks/done/` during the migration, remove those too. 2. `git reset HEAD .tasks/` if a git repo. 3. Tell user what failed. diff --git a/skills/using-tasks/SKILL.md b/skills/using-tasks/SKILL.md index dca1bf7..9205ddd 100644 --- a/skills/using-tasks/SKILL.md +++ b/skills/using-tasks/SKILL.md @@ -44,7 +44,7 @@ If `.tasks/` is **missing**, or `STATUS.md` exists but is non-canonical (e.g. fl Commit `.tasks/` to git. Decision history is valuable; diffs show how thinking evolved. -`STATUS.md` is the **active** board — it must stay lean so orientation reads stay cheap. Closed 🟢 tasks are archived to `.archive/done-YYYY-MM.md` once they pile up; their **per-task files** move to `.tasks/done/` (see "### Task completion" step 9). +`STATUS.md` is the **active** board — it must stay lean so orientation reads stay cheap. Closed 🟢 tasks are archived to `.archive/done-YYYY-MM.md` once they pile up; their **per-task files** move to `.tasks/done/` (see "### Task completion" step 7). > **`.tasks/.lock` must be listed in `.gitignore`** (add `.tasks/.lock` to your project's `.gitignore`). The lock file is ephemeral runtime state, not project history — it must never be committed. @@ -195,31 +195,31 @@ self-implemented work closed with the coverage check. - 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). 2. Resolve or drop all open questions. -5. Set status to 🟢 in STATUS.md. -6. **Notify-письмо при закрытии (кросс-проектные таски).** Если закрываемая +3. Set status to 🟢 in STATUS.md. +4. **Notify-письмо при закрытии (кросс-проектные таски).** Если закрываемая таска пришла из другого проекта (в блоке есть `**Notify:**` или ``) — отправить письмо комиссионеру в его инбокс: `/.agents/inbox/Z-<своя-папка>.md`, frontmatter `event: closed`, `slug: `, тело = итог (сделано, acceptance, ссылки). Поллер пишет это письмо за авто-раны; **живая сессия пишет сама** — статус 🟢 на борде ≠ комиссионер узнал. -7. Append final summary line to Decisions log. -8. Remind user to delete the branch after merge. -9. **Move the per-task file to `.tasks/done/`** (format v2): `git mv .tasks/yyyy-mm-dd-#####-.md .tasks/done/`. The board block is 🟢 (archived to `.archive/done-YYYY-MM.md` when it piles up); the deep-context file leaves the active folder. -10. **Session-break check (after close, before claiming the next task).** Once the task is 🟢 and committed — and **before** any `tasks_claim_next` or starting the next task — read the closed task's `session_break` marker (its frontmatter `session_break`, or the `**Session break:**` field in its STATUS.md block). If present: +5. Append final summary line to Decisions log. +6. Remind user to delete the branch after merge. +7. **Move the per-task file to `.tasks/done/`** (format v2): `git mv .tasks/yyyy-mm-dd-#####-.md .tasks/done/`. The board block is 🟢 (archived to `.archive/done-YYYY-MM.md` when it piles up); the deep-context file leaves the active folder. +8. **Session-break check (after close, before claiming the next task).** Once the task is 🟢 and committed — and **before** any `tasks_claim_next` or starting the next task — read the closed task's `session_break` marker (its frontmatter `session_break`, or the `**Session break:**` field in its STATUS.md block). If present: - Print this line **verbatim**, substituting the closed task's slug for `[slug]` and the marker's string value for `[value | "см. STATUS.md"]` (use the literal `см. STATUS.md` when the marker is just `true`): `🔚 SESSION BOUNDARY — [slug] закрыта. Рекомендую завершить текущую сессию. Следующий трек: [value | "см. STATUS.md"]` - **Stop.** Do not claim or start the next task. - If the marker is absent → behaviour is unchanged: proceed to claim / start the next task as usual. -11. **Archival check.** After the close is committed, if `STATUS.md` now holds **≥ 10** 🟢 done blocks, archive them (see "### Archiving done tasks"). This keeps the board lean for the next orientation read. +9. **Archival check.** After the close is committed, if `STATUS.md` now holds **≥ 10** 🟢 done blocks, archive them (see "### Archiving done tasks"). This keeps the board lean for the next orientation read. ### Archiving done tasks 🟢 done blocks accumulate in `STATUS.md` and bloat it — and since orientation reads the whole board, a bloated file burns context on every session start (the recurring "huge STATUS.md" complaint). Keep the board lean: done blocks stay only until merged, then move to a monthly archive. -**Threshold.** When `STATUS.md` holds **≥ 10** 🟢 done blocks, archive them. Check at two moments: (a) right after closing a task (Task completion step 8), and (b) at session start, before orienting (Session start step 7). The threshold is a ceiling, not a target — archive in batches; don't churn one block at a time. +**Threshold.** When `STATUS.md` holds **≥ 10** 🟢 done blocks, archive them. Check at two moments: (a) right after closing a task (Task completion step 9), and (b) at session start, before orienting (Session start step 7). The threshold is a ceiling, not a target — archive in batches; don't churn one block at a time. **Where.** Append the archived blocks to `.tasks/.archive/done-YYYY-MM.md` — one file per calendar month, keyed by the date of archival. Create `.tasks/.archive/` and the month file if absent. If the month file already exists, **append**; never overwrite. @@ -283,7 +283,7 @@ Pair: `using-projects-meta` declares local-first for **reads**; this rule extend - **One active task at a time** — only one 🔴 in STATUS.md. - **Keep the board lean** — orientation reads the local `STATUS.md` whole, so archive 🟢 done blocks to `.tasks/.archive/done-YYYY-MM.md` once ≥10 pile up. Never enumerate the current project's board via `tasks_aggregate` (cross-project cache) or `tasks_get_status` (single-task, by slug). See "### Archiving done tasks". - **Never close a task without a coverage check** — see "### Task completion" step 1. Acceptance criteria with no evidence → ask, don't auto-close. -- **Honour `session_break`** — a closed task carrying a `session_break` marker means stop after close; never chain into `tasks_claim_next`. See "### Task completion" step 7. +- **Honour `session_break`** — a closed task carrying a `session_break` marker means stop after close; never chain into `tasks_claim_next`. See "### Task completion" step 8. - **Local-first recommendations** — cwd-project board comes first; cross-project urgents are at most one footnote line. - **Notify-письмо при закрытии** — кросс-проектная таска закрыта → письмо комиссионеру (event: closed). Поллер пишет за авто-раны; живая сессия — сама. See "### Task completion" step 4. - **Design → impl tasks ⇒ review umbrella** — N≥1 impl tasks derived from a design get a `-review` umbrella (status=blocked, blocker=impl-slugs, reviewer = non-implementer session). See "### Design-derived impl tasks — review umbrella".