Files
skills/.tasks/STATUS.md

72 KiB
Raw Blame History

Task Board

Updated: 2026-08-12 — sovereign-catalog-wave2-review closed: VERDICT PASS для волны-2 (10/10) + CONCERN на HEAD (2 дефекта 42ed5ea → 4 follow-up таски), архив доски (51 🟢). Ранее: 2026-08-10 — session-inbox-monitor-pi-extension shipped: pi-native inbox delivery for ALL pi sessions. SESSION-SCOPED: watches only <ctx.cwd>/.claude-inbox/ (own project only — vitya's rule: an agent may only read its own directory's inbox; the first global-scan version was scrapped same day). PUSH 15s poll (interactive) + PULL agent_settled sweep; headless = no delivery (messages wait for interactive); dedup per-process + .read/ move = cross-process first-wins vs CC hooks; source of truth .common/lib/pi-extensions/inbox-monitor.ts, deployed byte-identical to ~/.pi/agent/extensions/, functional tests PASS (incl. decoy — other inbox untouched). SKILL.md v0.2.2→v0.3.0 with Pi section. Ранее: review-kit прогнан в чистой не-имплементер сессии: 3 трека закрыты VERDICT PASS — inter-session-peer-discipline-test-trigger (pos 4/4→peer high, 0 FP на 5 чужих RU+EN), inter-session-peer-discipline-review (тело v0.1.1 несёт все 3 принципа, не конфликтует с CLAUDE.md), session-inbox-monitor-review (зонтик: активация 3/3 monitor + neg clean [X2 low-conf observation]; структурный аудит хуков 5 PASS/1 CONCERN; received-msg-fp учтён RESOLVED via b; hermes держим pending до tool-side аудита). Метод — clean-context непрайменные субагенты + независимый структурный аудит. Единственный finding (UTF-8 guard) сразу пофикшен и закрыт: session-inbox-monitor-encoding-guard-followup 🟢[Console]::OutputEncoding=UTF8 forward-guard в inbox-monitor.ps1, кириллический regression под WinPS 5.1 PASS, задеплоен byte-identical, SKILL.md v0.2.2. Ранее: session-inbox-monitor-test-trigger closed (VERDICT PASS; clean-session run, 7 непрайменных субагентов: pos 4/4→session-inbox-monitor [вкл. CLAUDE.md-line P4], neg 2/3 [N2 backend→none, N3 received-msg EN→none, N1 received-msg RU→FP]; FP borderline + body-load-self-correcting, корень=inter-session-peer-discipline не установлен; follow-up session-inbox-monitor-received-msg-fp заведён; -review разблокирован [нужна НЕ-имплементер сессия]; строка inbox monitor: raise on start добавлена в CLAUDE.md по согласию user). Ранее: task-loop-test-trigger closed (VERDICT PASS; live clean-session run: pos 6/6→task-loop, neg discrimination clean, task-loop FP 0/3, behavioral 4/4 [consult-gate, session_break BOUNDARY, empty-stop-no-poll, long-watch ScheduleWakeup≥1200 not CronCreate]; registry confirmed real via subagent probe; ALL 3 task-loop baselines now done; finding: session_break is the fragile gate — body-load-dependent, informational only, no fix). Ранее: task-loop-hermes-mapping closed (task-loop entry → hermes/mapping.yaml mode:pending, intended auto/mcp; reason claim/close/heartbeat + ScheduleWakeup; YAML validated; schema version untouched. 2 of 3 task-loop baselines now done; -test-trigger remains, needs clean session). Ранее: task-loop-install closed (skill installed to ~/.claude/skills/, diff-identical to source, visible in available-skills with full description post-/reload-plugins; -test-trigger unblocked → ready, needs clean session). Ранее: using-tasks-session-lock shipped (using-tasks 1.3.0→1.4.0; session lock guard: start step 1 + end step 1 + .gitignore + Structure docs). Ранее: meta-host-routing-review closed (VERDICT PASS; behavioral 8/8 via clean-context subagents — 5 pos→meta-host-routing, 3 neg routed away incl. known-Gitea Skip-clause; Steps verified vs live infra: yt-tools→OpeItcLoc03/meta-yt-tools dedicated host resolves, .common grep hits, excludesFile/auth.toml present; failure-modes→STOP+ask, What-NOT accurate; no blocking findings on skill v0.3.0. Observation: task acceptance «resolves .common» is stale — skill+reality route yt-tools to dedicated meta-yt-tools host. Caveat: -install + -hermes-mapping baselines remain open — skill not in ~/.claude/skills nor hermes/mapping.yaml; review covers content+trigger-discrimination only, not live-harness activation). Ранее: task-format skill v0.1.0 created (TDD via writing-skills; RED 3-fail → GREEN 2-pass). Ранее: using-markitdown-cli-rewrite-review done (VERDICT PASS; SKILL.md без mcp__markitdown__, CLI-примеры совпадают с markitdown 0.1.6 --help, version 1.0.0→1.0.1 PATCH, dist консистентен; 1 informational finding — docker-контейнер респаунится из out-of-scope ~/.claude.json MCP-регистрации → follow-up using-markitdown-mcp-deregister needs-human). Ранее: skill-using-system-snapshot-review done (VERDICT PASS 3/3; live tool-contract verify + 9-way fresh-context trigger test, 8 clean; 3 informational findings, none blocking — incl. missing deployment scaffold: skill not installed / not in hermes-mapping / no baseline tasks). Ранее: using-tasks-status-read-perf done (using-tasks 1.2.0→1.3.0; done-task archival rule fixes STATUS.md bloat; literal tasks_get_status-for-orientation swap NOT done — tool can't enumerate the board, documented). Ранее: session-break-using-tasks done (using-tasks 1.1.0→1.2.0; session_break marker — stop after close before claim-next). Ранее: delegate-task-review done (VERDICT PASS; smoke-test 6/6 fresh subagents, no blocking findings, 3 informational notes). Ранее: delegate-task-test-trigger done (pos 5/5, neg 2/3; FP на «создать задачу себе» → follow-up delegate-task-description-fp-fix, shipped v0.2.1). Ранее (2026-06-08): откат churn'а от агент-раннера (always-on dry-run): 5 тасок (using-yt-tools-rate-limit-guard, archive-roundtrip-test, skills-grouping-revisit, hermes-converter-ci, tdd-criteria-precommit-hook) спуриозно claimed/blocked из-за workspace-divergence бага раннера → возвращены в ready. yt-tools re-scoped на plugin-репо OpeItcLoc03/yt-tools (исходный stub deprecated). Poller: eligible

[#315 using-yt-tools-rate-limit-guard] — Add explicit "don't batch requests at YouTube" rule to skills/using-yt-tools/SKILL.md (avoid HTTP 429 IP-block).

Эмпирика (2026-05-31, modulair-wiki ingest, DESKTOP). Владелец кинул подборку из 10 YouTube URL. Агент выстрелил залпом ~21 запрос подряд: yt-dlp --dump-json ×10 (метаданные — прошли) + yt-transcript ×10 (transcript-api). Первый transcript-вызов достучался (вернул список языков), со второго пошёл HTTP 429 / "YouTube is blocking requests from your IP". Блок IP-wide и держится минутами — упёрлись оба пути: youtube-transcript-api (yt-transcript) И yt-dlp timedtext-subtitle endpoint (метаданные при этом ещё проходили, а субтитры — нет). Что разблокировало: ~4-мин cooldown + запросы по одному с паузами 2535с + ранний abort если первый не прошёл (чтобы не жечь cooldown впустую).

Второй, смежный баг той же сессии: yt-transcript по умолчанию просит --lang en и промахивается мимо ручных en-US субтитров (видео с manually-created en-US и без en отдаёт "no transcript"). Лечится --lang en-US,en (или вообще автоопределением).

Что добавить в SKILL.md:

  1. What NOT to do — новый буллет: «Не пулять в YouTube пачкой запросов. Несколько URL подряд (или metadata+transcript залпом) → HTTP 429, IP-block на минуты, бьёт оба пути (transcript-api и yt-dlp). Обрабатывай по одному, с паузой ≥2535с между; при пакете из N URL — последовательно, не параллельно. Если уже словил 429 — cooldown ~35 мин перед повтором, проверяй первый запрос и не продолжай залп если он упал.»

  2. Failure modes — новая строка: симптом HTTP 429 Too Many Requests / "blocking requests from your IP" → причина: слишком много запросов подряд (rate-limit, не приватность/регион) → действие: cooldown + по одному с паузами; НЕ retry в цикле без задержки. Отличать от yt-dlp source download failed (это реальная недоступность видео).

  3. (опц.) Inputs / Flow A — упомянуть --lang en-US,en как дефолт-страховку для ручных не-en субтитров (видео NE/прочие с en-US-only).

Bump: PATCH (поверхностное расширение guidance, не breaking). TDD: не применим (markdown-документ). Behavioral-смок опционален: «дай 5 URL» → агент обрабатывает последовательно с паузами, не залпом. Дисциплина: после правки — bump version в frontmatter, commit feat(using-yt-tools): rate-limit guard (no-batch) vX.Y.Z; install/hermes-mapping/push — отдельно, как в прошлых yt-tools-тасках (для PATCH достаточно reload-plugins).

Weight: needs-human Status: ready — RE-SCOPED 2026-06-08: исходный таргет skills/using-yt-tools/SKILL.md устарел — это deprecated inert stub (v0.4.1), канонический контент мигрировал в plugin-репо OpeItcLoc03/yt-tools (v0.6.0), там же живут секции, на которые ссылается задача (вкл. буллет «Не retry на yt-dlp failures» для расширения). Правило по-прежнему нужно — но вносить его в plugin-репо, не в stub. (Находка автономного агента 2026-06-08; consult по «какой репо править» → halt при consult_policy=human-only; decision-trail в per-task файле.) Created: 2026-06-08 Where I stopped: (not started в правильном репо) — баг и фикс зафиксированы по живой сессии 2026-05-31; правка отложена в задачу (владелец просил не лезть в глобальный скил из проекта modulair-wiki). Next action: В репо OpeItcLoc03/yt-tools (plugin) открыть его SKILL.md, внести пункты 13 (rate-limit guard), bump PATCH, commit. Свериться с существующим «Не retry на yt-dlp failures» — расширить его, а не плодить дубль. (НЕ править claude-skills stub.) Branch: master


🟡 [#24 skill-readmes] — write English README.md for every skill + translate root README

Status: paused Created: 2026-04-28 Where I stopped: infra-skill cluster done — READMEs for project-bootstrap, setup-wiki, setup-tasks, using-wiki, using-tasks; root README translated; cross-links between all five skills wired up Next action: continue with the next batch — suggest the caveman cluster (caveman, caveman-commit, caveman-review, caveman-help, caveman-compress, compress) since they form a coherent group; or jump to active-platform, find-skills, setup-context7, using-context7, using-markitdown if the caveman cluster needs deduplication first (see compress-dedup task) Branch: master


[#23 archive-roundtrip-test] — smoke-test for .skill archive shape

Weight: needs-human Status: ready Created: 2026-04-28 Where I stopped: (not started) — caught the PowerShell-Compress-Archive backslash bug manually; a smoke-test would catch the next regression automatically Next action: add a script that builds dist/<name>.skill, unzips into a temp dir, and diff -r against skills/<name>/. Fail on any difference. Run from CI or pre-commit if we add one Branch: (not started)


🟡 [#49 active-platform-eval] — eval-driven tuning of active-platform (description + body), absorbs [active-platform-tuning]

Status: paused Created: 2026-05-05 Where I stopped: design doc complete (.wiki/concepts/active-platform-eval-design.md, ~150 lines); per-task file complete (.tasks/active-platform-eval.md); STATUS.md collapsed the two original tasks into this one block. Pre-flight verified: claude CLI on PATH at C:\nvm4w\nodejs\claude.ps1 (Claude Code 2.1.128); run_loop.py present at ~/.claude/plugins/cache/claude-plugins-official/skill-creator/unknown/skills/skill-creator/scripts/run_loop.py. Stopped right before eval-set authoring at user request — paused for asynchronous follow-up. No code touched, no tooling launched, no .tasks/active-platform-eval/ workspace dir created yet. Next action: resume by answering Q2 from the chat ("eval set — write 20 queries solo from current SKILL.md + concept-page open questions, or run skill-creator's HTML review template first for user-driven edits before kickoff?"), then (a) build .tasks/active-platform-eval/eval-set.json, (b) snapshot skill to .tasks/active-platform-eval/skill-snapshot/, (c) launch run_loop.py in background, (d) parallel manual body sweep, (e) apply changes + bump to 1.1.0 + rebuild + reinstall + final report + commit. Branch: master


[#25 skills-grouping-revisit] — revisit flat vs grouped skills/ layout if count grows past ~30

Weight: needs-human Status: ready Created: 2026-04-28 Where I stopped: (not started) — current 14 skills fit fine in flat skills/; threshold for revisiting is ~30 Next action: when triggered (skill count crosses threshold), evaluate variant B (grouped by family) vs variant C (flat + manifest) from the original brainstorm in .wiki/concepts/repo-layout.md Branch: (not started)


[#53 hermes-converter-ci] — [deferred — после ручной валидации MVP] CI hook (Gitea-pipeline или GitHub-Action если зеркалим): на push to master запустить scripts/build-hermes.py, сравнить diff dist-hermes/, авто-коммит если изменения (или PR-шаблон). Цель — чтобы dist-hermes/ всегда матчил skills/+hermes/mapping.yaml+hermes/skills/ без ручного запуска build. Не блокирует MVP — первая итерация делается ручным запуском конвертера. Дизайн: .wiki/concepts/hermes-skills-rollout-design.md.

Weight: needs-human Status: ready Created: 2026-05-06 Where I stopped: unblocked 2026-05-07 — hermes-mvp-coverage shipped в a003b80; MVP живой на фабрике. Next action: Выбрать платформу CI (Gitea Actions vs внешняя), написать workflow, прогнать тестовый push. Branch: master


[#64 tdd-criteria-precommit-hook] — Optional pre-commit hook script that automates the bright-line checks from tdd-criteria Anti-loophole rules 1 and 4. Project owner opts in per-repo by symlinking / copying to .git/hooks/pre-commit (or via husky / lefthook integration if the project uses them).

Two checks (both bright-line, both fail-closed):

Check 1 — [skip-tdd: <category>] validation. If git diff --cached --name-only includes a *.ts / *.js / *.py / similar code file (excluding tests and Permissive-zoned paths like *.css / *.env* / *.md / *.yaml), require either:

  • A *.test.* / *.spec.* / test_*.py / similar file present in the same diff, OR
  • The commit subject (read from $1 arg, line 1 of $1 = msg path) matches \[skip-tdd: (visual|spike|oneshot|wrapper)\].

If neither holds → block with message:

TDD policy violation: code change without test or skip marker.
Add a test, or include [skip-tdd: <visual|spike|oneshot|wrapper>] in commit subject.
See claude-skills/.wiki/concepts/tdd-criteria-design.md for which category applies.

Check 2 — Test-modification audit ([test-modify] rule 4). Detect test-modifying changes in git diff --cached:

  • Removed line matching ^-\s*(expect|assert|assertThat|chai\.)\( (assertion deletion)
  • Added/removed lines that change argument values inside expect(...) / assert(...) calls
  • Added .skip / \.xit\b / @pytest\.mark\.skip / @Disabled / @Ignore annotations
  • Deleted it(...) / test(...) / def test_* definitions (matches ^-\s*(it|test|describe)\( or ^-def test_)

If any matched → require commit subject matches \[test-modify: [^:]+: was .+; is .+; reason: .+\]. Block otherwise with message:

Test-modification without [test-modify: ...] marker.
Required format: [test-modify: <name>: was <literal>; is <literal>; reason: <Z>]
The was/is must be the LITERAL assertion expressions, not paraphrased.
See tdd-criteria Anti-loophole rule 4.

ALSO: if git diff --cached --name-only includes both a test-pattern file AND an impl-pattern file → block:

Test changes must be in a separate commit from impl changes (tdd-criteria rule 4b).
Run: git reset HEAD <impl-files> && git commit (test-only) && git add <impl-files> && git commit (impl-only).

Implementation:

  • Bash script (single file). Cross-platform: works on Linux/macOS and on Windows under git-bash (which Claude/Hermes both already run on).
  • Path: ~/projects/claude-skills/scripts/tdd-criteria-precommit-hook.sh. Plus a Windows wrapper .ps1 that delegates if needed.
  • Tested on a real repo before commit (books is a good candidate — it has Jest tests + *.test.js convention).
  • Documented in claude-skills/.wiki/concepts/tdd-criteria-design.md «See also» section (already linked).

Activation pattern (per-repo):

# Symlink or copy the hook
ln -sf ~/projects/claude-skills/scripts/tdd-criteria-precommit-hook.sh \
       .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit

Or via lefthook.yml / .husky/pre-commit if the project already uses one of those.

Out of scope:

  • Mutation testing (Stryker, mutmut) — separate heavyweight infra, not this hook.
  • Coverage gates — different mechanism, different cost/benefit.
  • Visual regression infra (Percy, Chromatic) — Permissive-5 acknowledges this is heavyweight; not bundled.
  • Auto-fixing the violation — hook only blocks; fix is human's job.

Why this is optional, not required by the SKILL.md:

The skill is policy that lives in claude-skills and gets pulled into agent context per project. The hook is enforcement that needs per-project setup. Some projects opt out of pre-commit hooks entirely (e.g. karu if it's pure CSS — no code surface to enforce). Forcing the hook into the skill would couple policy to tooling.

Bypass:

Pre-commit hooks have --no-verify. Per project-discipline Rule 4 («never skip hooks unless user explicitly asks») agents must not use --no-verify — but humans can in emergencies. Each --no-verify use should be self-flagged in the commit body («bypassed pre-commit because: ...»). Not enforceable by the hook itself; this is a higher-level audit.

Weight: needs-human Status: ready Created: 2026-05-07 Where I stopped: (not started) Next action: Решить, нужен ли hook (он опционален) — если да, написать ~/projects/claude-skills/scripts/tdd-criteria-precommit-hook.sh по спеке в description, протестировать на books (Jest-конвенция *.test.js), задокументировать activation pattern. Если нет — закрыть как wontfix с пометкой что fence чисто социальная (commit subject visible в git log). Branch: master


[#63 tasks-board-cleanup-2026-05] — Архивная чистка .tasks/STATUS.md: переместить все 🟢 done-блоки в .tasks/.archive/done-2026-05.md, оставить в STATUS.md только header + status legend + 🔴/🟡//🔵 блоки. Цель — разгрузить файл от исторического шума без потери data (git history + явный архивный файл для текстового поиска).

Предпосылка: на 2026-05-07 в claude-skills/.tasks/STATUS.md накопилось ~18+ 🟢 done-блоков (rolled out за 2026-04-25 — 2026-05-07: tdd-criteria-rollout, hermes-rollout, bootstrap-related, project-creation-lifecycle, recommend-dont-menu и т.д.). Convention в шапке файла говорит «🟢 Done — kept until merged», но проект работает на master-only (нет ветвления для merge), поэтому convention превратилась в «kept forever». Файл рос до ~600 строк / 26K токенов — Read-инструменты упираются в лимит.

После чистки STATUS.md остаётся только активный board (🔴/🟡//🔵 + closed [bootstrap-upgrade-canonical-triggers] если уже отработал). Архивный файл .tasks/.archive/done-2026-05.md сохраняет полный текст всех перемещённых блоков для grep-поиска и historical context.

Weight: needs-human Status: ready Created: 2026-05-07 Where I stopped: Создана 2026-05-07. После rollout v1.10.0/1.10.1 на STATUS.md накопилось много свежих 🟢 (bootstrap-add-tdd-trigger, refresh-project-bootstrap closed-as-superseded, bootstrap-fix-tdd-recommend-template, bootstrap-upgrade-canonical-triggers если уже отработал). Хороший момент для batch-archive. Next action: 1) Прочитать .tasks/STATUS.md целиком (Read in chunks if needed). 2) Идентифицировать все блоки ## 🟢 [...] — разделители ---. 3) Создать .tasks/.archive/ директорию (если нет). 4) Записать .tasks/.archive/done-2026-05.md с шапкой:

# Archived — Done batch 2026-05

Перемещено из `.tasks/STATUS.md` 2026-05-07 в рамках board-cleanup. Полный список 🟢 done-тасок, шипанутых в апреле-мае 2026.

Полный source — git history `.tasks/STATUS.md` до commit X.

---

И подряд все 🟢-блоки в исходном виде.

  1. Edit .tasks/STATUS.md: убрать все 🟢-блоки + соседние --- разделители. Header + status legend + 🔴/🟡//🔵 блоки оставить. 6) Verify: grep '^## ' .tasks/STATUS.md | wc -l — было ~28+, должно остаться число активных (🔴+🟡++🔵, ожидание ~10-12). 7) Commit meta(tasks): archive done batch 2026-05 → .tasks/.archive/done-2026-05.md с body, описывающим какие группы перемещены (tdd-criteria, hermes, bootstrap, etc.) и итоговый count. 8) tasks_close.

NB: эта таска сама уйдёт в следующий cleanup batch (2026-06 или подобный), так что не пытаться её закрыть+архивировать в одном коммите. Branch: n/a


[#254 meta-host-routing-install] — Установить новый скил meta-host-routing v0.1.0 (закоммичен локально a7526d1, ещё не установлен — потому не триггерит).

Запустить install.sh в ~/projects/claude-skills/, проверить что скил активируется в новой сессии, /reload-plugins.

Weight: needs-human Status: ready Created: 2026-05-27 Where I stopped: (not started) Next action: Запустить install.sh, открыть новую CC-сессию, убедиться что meta-host-routing в available-skills, /reload-plugins. Branch: n/a


[#255 meta-host-routing-test-trigger] — Прогнать триггер-фразы meta-host-routing из description на тестовом сценарии.

Должен активироваться: «project not in cache» от projects-meta; промоушен/таски для проекта с github-remote; «заведи таски в <github-проект>», «промоутни <github-проект>». НЕ должен (false-positive check): обычный Gitea-проект уже в projects-meta (прямой маршрут); 2-3 близкие фразы из соседних доменов (using-projects-meta query, обычный tasks_create в known-проект).

Weight: needs-human Status: ready Created: 2026-05-27 Where I stopped: (not started) Next action: В чистой сессии прогнать активацию на своих фразах И убедиться что не фаерит на 2-3 чужих близких; зафиксировать результат. Branch: n/a


[#336 skill-using-system-snapshot] — ## Goal

Создать скил using-system-snapshot в claude-skills.

Назначение

Заменить разрозненные ops-проверки (tasklist, docker ps, meta_status вручную) одним вызовом mcp__projects-meta__meta_system_snapshot в начале сессии.

Содержание скила

  • Когда вызывать: старт сессии при ops-контексте; перед любым утверждением о состоянии процессов/поллера
  • Что делать: вызвать mcp__projects-meta__meta_system_snapshot, интерпретировать ответ
  • Формат вывода: одна строка на секцию — поллер (стоп/работает + проекты), docker (ОК / список проблем), задачи (сводка по проектам)
  • Запрет: не утверждать состояние процессов без предварительного вызова snapshot

Acceptance criteria

  • skills/using-system-snapshot/SKILL.md создан
  • Trigger-фразы описаны: «что запущено», «состояние системы», «поллер работает?»
  • Dependency: инструмент meta_system_snapshot должен быть готов (meta-system-snapshot в .common)

Permissions

  • interns: no
  • auto-push: yes

Weight

needs-claude

Weight: needs-claude Status: ready Created: 2026-06-09 Where I stopped: Разблокировано 2026-06-09 — meta-system-snapshot в OpeItcLoc03/common закрыт (review прошёл, live call верифицирован). Next action: Написать skills/using-system-snapshot/SKILL.md Branch: n/a


[#335 delegate-task-review-weight-inherit] — Исправить delegate-task скил: при создании парной review-таски (Step 5) наследовать weight от impl-таски.

Проблема: review-таски создаются через tasks_create(status=blocked, blocker=<impl-slug>) без weight параметра. Reconciler обрабатывает авто-анблок только задач с **Weight:** needs-claude или **Weight:** cheap-ok в теле. Без поля — задача навечно остаётся 🔵, поллер её не видит. Воспроизводилось трижды за одну сессию (session-break-using-tasks-review, session-break-delegate-task-review, skill-using-system-snapshot-review, using-tasks-status-read-perf-review).

Фикс: в Step 5 шаблона явно указывать weight при tasks_create review-таски. Правило: review-таска наследует weight impl-таски, но не выше needs-claude (review не бывает cheap-ok — риск игнора invoke-инструкций слабыми моделями).

Acceptance criteria:

  • Step 5 в SKILL.md явно говорит: создавать review-таску с weight = weight impl-таски (но min needs-claude)
  • tasks_create вызов в Step 5 включает weight параметр в примере/описании
  • What-NOT-to-do: не создавать review-таску без weight

Обязательные скилы — вызвать до начала работы

  • invoke using-tasks — для управления статусом задачи
  • invoke project-discipline — дисциплина коммитов/пушей
  • invoke using-wiki после закрытия — заингесть .wiki/concepts/delegate-task-review-weight.md

TDD: нет — markdown policy artifact; behavioral smoke = парная review-таска Разрешения: интерны: да | автопуш: нет weight: needs-claude notify: OpeItcLoc03/workshop

Status: ready Created: 2026-06-09 Where I stopped: (not started) Next action: Открыть skills/delegate-task/SKILL.md, найти Step 5, добавить явное наследование weight при tasks_create review-таски. Bump PATCH. Branch: n/a Notify: OpeItcLoc03/workshop


[#337 using-markitdown-cli-rewrite] — Переписать skills/using-markitdown/SKILL.md: заменить все инструкции по вызову mcp__markitdown__* тулов на вызов CLI markitdown <path|url> (v0.1.6, доступен в системном PATH). Убрать секцию про MCP setup/docker. После обновления SKILL.md — остановить и удалить локальный docker контейнер markitdown-mcp (docker stop markitdown-mcp && docker rm markitdown-mcp). Bump PATCH version в frontmatter скила.

Acceptance criteria:

  • SKILL.md не содержит mcp__markitdown__ — только CLI-вызовы
  • docker ps не показывает markitdown-mcp
  • version bumped (PATCH)

Обязательные скилы — вызвать до начала работы

  • invoke using-tasks — для управления статусом задачи
  • invoke project-discipline — дисциплина коммитов/пушей
  • invoke using-interns — для file-read/grep операций
  • invoke using-wiki после закрытия — заингесть .wiki/concepts/using-markitdown-design.md если существует

TDD: нет — markdown policy artifact; behavioral smoke: markitdown --help выводит usage Разрешения: интерны: да | автопуш: да weight: needs-claude notify: OpeItcLoc03/workshop

Status: ready Created: 2026-06-09 Where I stopped: (not started) Next action: Открыть skills/using-markitdown/SKILL.md, заменить все mcp__markitdown__ вызовы на CLI-эквиваленты, bump PATCH, затем docker stop markitdown-mcp && docker rm markitdown-mcp. Branch: n/a Notify: OpeItcLoc03/workshop


🔵 [#443 setup-agents-task-runner-windows-fixes] — Починить setup-agents-task-runner по итогам первого реального Windows-прогона. Скил v0.1.0 устанавливал, но службы вставали сломанными — 5 дефектов, все диагностированы и воркэраунд-починены в OpeItcLoc03/common dev-шаблонах. Нужно перенести в SKILL.md, чтобы fresh-install на новой машине работал без ручной отладки.

Дефекты (с проверенными фиксами в OpeItcLoc03/common)

  1. winsw serviceaccount: v3-схема при v2.12.0 пине. Шаблоны: <username>.\{{USER}}</username> + <allowservicelogonright> (схема winsw v3). Пин — v2.12.0, молча игнорит незнакомые элементы → служба падает на LocalSystem без ошибки. Эталон из sample-allOptions.xml v2.12.0: <domain>+<user>+<allowservicelogon>. Фикс: коммит 681fcda. → привести serviceaccount-блок шаблонов к v2-схеме + заметка «схема обязана совпадать с major пина winsw».

  2. projects-meta-mcp не разворачивается в install-layout. appeals импортит projects-meta-mcp/dist/... (bare, file:../projects-meta-mcp junction); watchdog — ../../../projects-meta-mcp/dist/... (относит., ждёт соседа install-dir). Phase 4 копирует изолированно → junction виснет на %LOCALAPPDATA%\projects-meta-mcp → ERR_MODULE_NOT_FOUND краш-луп. → Phase 4: развернуть projects-meta-mcp соседом install-dir (junction на dev-дерево либо deploy-копия) + перенаправить appeals node_modules junction.

  3. PORT 3000 — коллизия с дев-портом. Перенесён на 4316 во всех хост-юнитах (winsw/systemd/launchd) + watchdog TASK_RUNNER_URL. Docker-внутренний 3000 не трогали. Коммит 211d662. → дефолт хост-порта 4316.

  4. Home-резолюция. Под LocalSystem os.homedir() → systemprofile → auth.toml не найден. После фикса run-as-user снимается само. На машине добавлен USERPROFILE/HOME env в рендеренные XML (не в dev-шаблоны). → решить: полагаться на run-as-user ИЛИ добавить env в шаблоны (тест на fresh-машине).

  5. Phase 8 не ловил LocalSystem (службы Running как SYSTEM, прошли). → Phase 8 ассертить SERVICE_START_NAME/StartName == целевой юзер + порт-проверку.

Мелочь: PIN.md стух (.NET461 заметка vs self-contained Core 18МБ). Фикс 31bd5a9.

Acceptance

  • Fresh Windows-установка через обновлённый скил: 3 службы run-as-user (не LocalSystem), не-дев порты, отвечают по HTTP — без ручной правки junction/схемы/порта.
  • Phase 8 реально ассертит аккаунт + порты.
  • Linux/mac-ветки проверены на тот же класс (sibling-deploy, схема юнитов); winsw-специфична только деф.1.
  • ВЕРИФИКАЦИЯ install-результата требует Windows-машины — если раннер на не-Windows, правки портируются и коммитятся, full-install проверка деферится (отметить в close-ноте).

Обязательные скилы — вызвать до начала работы

  • invoke using-tasks — статус задачи
  • invoke project-discipline — semver-bump SKILL.md + дисциплина коммитов/пушей
  • invoke writing-skills — правка скила по канону (Iron Law: тест-сценарий до правки)
  • invoke using-projects-meta — контекст в OpeItcLoc03/common

Контекст: проверенные фиксы — OpeItcLoc03/common коммиты 681fcda / 211d662 / 31bd5a9, шаблоны lib/agents-task-runner/service/. Ops-runbook concepts/agents-task-runner-ops.md (who-does-what).

TDD: нет (правка процедуры; верификация = реальная установка). Разрешения: интерны: нет | автопуш: нет

Weight: needs-claude Notify: OpeItcLoc03/workshop

Дефекты (с проверенными фиксами)

  1. winsw serviceaccount: v3-схема при v2.12.0 пине. Шаблоны использовали <username>.\{{USER}}</username> + <allowservicelogonright> — это схема winsw v3. Пин — v2.12.0, который молча игнорит незнакомые элементы → служба падает на LocalSystem (без ошибки!). Эталон из sample-allOptions.xml v2.12.0: <domain> + <user> + <allowservicelogon>. Фикс в common: коммит 681fcda. → Skill: serviceaccount-блок шаблонов привести к v2-схеме; добавить заметку «схема обязана совпадать с major пина winsw».

  2. projects-meta-mcp не разворачивается в install-layout. appeals импортит projects-meta-mcp/dist/... (bare, через file:../projects-meta-mcp junction); watchdog — ../../../projects-meta-mcp/dist/... (относит. путь, ждёт соседа install-dir). Phase 4 копирует appeals/runner изолированно → npm-junction виснет на несуществующий %LOCALAPPDATA%\projects-meta-mcp → ERR_MODULE_NOT_FOUND краш-луп. → Skill Phase 4: добавить шаг — развернуть projects-meta-mcp соседом install-dir (junction на dev-дерево либо deploy-копия) + перенаправить appeals node_modules junction. На этой машине решено единым junction %LOCALAPPDATA%\projects-meta-mcp → dev-дерево (согласовано с тем, что TASKS_BIN уже ссылается на dev-дерево).

  3. PORT 3000 — коллизия с дев-портом. Раннер сидел на 3000 (Next/CRA/Express default) — фоновая autostart-служба не должна его занимать. Перенесён на 4316 (рядом с appeals :4317) во всех хост-юнитах (winsw/systemd/launchd) + watchdog TASK_RUNNER_URL. Docker-внутренний 3000 не трогали. Коммит 211d662. → Skill/README: дефолт хост-порта 4316.

  4. Home-резолюция под службой. Пока служба была LocalSystem, os.homedir() давал C:\WINDOWS\system32\config\systemprofileauth.toml не находился. На этой машине добавлен <env USERPROFILE>/<env HOME> в РЕНДЕРЕННЫЕ XML (не в dev-шаблоны). После фикса run-as-user (деф.1) проблема снимается сама (USERPROFILE берётся из токена vitya). → Skill: решить — полагаться на run-as-user ИЛИ для надёжности добавить USERPROFILE env в шаблоны (протестировать на fresh-машине без загруженного профиля).

  5. Phase 8 не ловил LocalSystem. Скил считал успехом «службы Running» — но они прекрасно бежали как LocalSystem (благодаря env-хаку). → Skill Phase 8: ассертить SERVICE_START_NAME/StartName == целевой юзер, а не только Running. Проверка порта (нет 3000-коллизии) тоже.

Мелочь: PIN.md стух (.NET Framework 4.6.1 — на деле self-contained .NET Core, 18 МБ; .NET461 — отдельный ассет). Фикс 31bd5a9.

Acceptance

  • Fresh Windows-установка через обновлённый скил даёт 3 службы run-as-user (не LocalSystem), на не-дев портах, все отвечают по HTTP — БЕЗ ручной правки junction/схемы/порта.
  • Phase 8 скила реально ассертит аккаунт + порты.
  • Линукс/мак-ветки проверены на тот же класс (sibling-deploy, схема юнитов) — winsw-специфична только деф.1.

Обязательные скилы — вызвать до начала работы

  • invoke using-tasks — управление статусом задачи
  • invoke project-discipline — semver-bump SKILL.md (это versioned-артефакт) + дисциплина коммитов/пушей
  • invoke writing-skills — правка скила по канону
  • invoke using-projects-meta — кросс-проектный контекст (фиксы живут в OpeItcLoc03/common)

Контекст: проверенные фиксы и эталон-схема — в OpeItcLoc03/common (коммиты 681fcda / 211d662 / 31bd5a9, шаблоны lib/agents-task-runner/service/). Ops-runbook concepts/agents-task-runner-ops.md (секция who-does-what).

TDD: нет — правка процедуры скила; верификация = реальная установка на Windows-машине. Разрешения: интерны: нет | автопуш: нет

Status: blocked Created: 2026-06-18 Where I stopped: exit 1 Next action: Портировать проверенные фиксы в SKILL.md (Phases) + дотянуть dev-шаблоны. См. тело. Branch: n/a Owner: DESKTOP-NSEF0UK:claude-opus:22572 Claim token: ef76904a-43a0-4a30-adb9-d9ed43c126e4


🟢 [#655 agent-neutral-skill-pipeline] — ДОЛГ (идея 19 п.5): инсталл/апдейт-пайплайн скилов — claude-only. update-claude-skills ставил только в ~/.claude/skills; pi получил каталог вручную (settings skills array, идея 6). Цель: update-skills обслуживает всех агентов (единый канон + честный per-agent срез).

Status: done Created: 2026-08-12 Where I stopped: РЕШЕНИЕ ОПЕРАТОРА (2026-08-12, зафиксировано после вскрытия непротоколированного решения вчерашней сессии «канон = ~/.claude/skills»): dual install target. install.sh/ps1 + update.sh/ps1 ставят в ОБА каталога: ~/.claude/skills (Claude Code — читает только его нативно, кастомные диры не конфигурируются) + ~/.agents/skills (pi — нативный скан-путь, нейтральный неймспейс .agents/). Из ~/.pi/agent/settings.json убран skills-массив (вендор-лок устранён). update-skills SKILL.md v0.2.1 — секция «Install targets (dual, agent-neutral)», semver-bump, lint 46/0. Оба таргета синхронны (46/46, diff IDENTICAL). Источник истины — git-репо skills/, оба дира — инсталлы. Next action: (none — kept until merged) pi перезапустить чтобы убедиться, что скилы грузятся из ~/.agents/skills (нативный скан без settings-хака). Branch: master


🟢 [#656 readme-command-index-row] — README.md + README.ru.md: 0 строк про скил command-index (провенанс-таблица не обновлена); заодно стейл-заметка README.md про install.ps1 («not yet implemented», а build.ps1/update.ps1 существуют). Найдено: command-index-review (F1/F2).

Status: done Created: 2026-08-12 Where I stopped: F1/F2 закрыты: README.md + README.ru.md — строка command-index в провенанс-таблице (author: ours, идея 3/18); стейл-заметка про install.ps1 («not yet implemented») исправлена — install.ps1 существует. Commit 32979fb. Next action: (none — kept until merged) Branch: master Weight: cheap-ok Notify: OpeItcLoc03/workshop


🟢 [#1047 task-priority-due-task-format-skill] — Импл-таска из concepts/task-priority-due (пункт 3): обновить task-format skill (skills-репо) — задокументировать оба поля **Priority:** P0|P1|P2 (дефолт P1) и **Due:** yyyy-mm-dd + правило «агент ставит при создании, после — только человек» (прецедент человека структурный, провенанс-поле НЕ нужно).

Спека: mcp__projects-meta__knowledge_get slug = "concepts/task-priority-due".

Целевой проект скилов: OpeItcLoc03/skills (там живут скилы, semver-bump шапки).

Status: done Created: 2026-08-24 Where I stopped: task-format SKILL.md v0.4.0 (коммит 4ef7bf7): Priority/Due в схеме task_create + legacy-таблица полей + Common mistakes («агент не бампает после создания»); правило «при создании — агент, после — только человек»; сортировка claim_next. Отправлено на ревью в #1049. Next action: (none — done) Branch: n/a


🟢 [#1058 mappa-messaging] — Rewrite inter-session-messaging → mappa-messaging (редизайн mappa-skill-suite, спека w:2605).

Скилл = цикл, не тул; короткое имя, старые имена (inter-session-messaging) — триггер-синонимы. Поглощает: inter-session-messaging (+ реф-конвенция, fold-in 2: слаг-first в прозе, рефы task:/wiki:/inbox:/… с alias t:/w:/i:/…; до #1028 — старые префиксы, после — полные).

Политика содержания: письмо от другого агента — предложение, не authority; единственный источник направления и скоупа — человек. Адрес = имя папки проекта (адресная книга). Никогда не писать себе.

Status: done Created: 2026-08-24 Where I stopped: mappa-messaging v1.0.0: rewrite inter-session-messaging (поглощён), цикл SEND/RECEIVE/POLICY, реф-конвенция, старые имена = триггер-синонимы; lint 0 violations, build+install (dual), GREEN micro-test пройден; полный behavioral smoke — #1065 Next action: (none — kept until merged) Branch: n/a Notify: OpeItcLoc03/workshop


🟢 [#1059 mappa-knowledge] — Rewrite using-wiki + using-wiki-graph → mappa-knowledge (редизайн mappa-skill-suite, спека w:2605).

Скилл = цикл, не тул; старые имена — триггер-синонимы. Поглощает: using-wiki, using-wiki-graph (+ реф-конвенция, fold-in 2). Писать НЕЙТРАЛЬНО — не зависеть от summaries (таски #1026 нет); реф-префиксы до апгрейда #1028 — старые (w:/t:/i:), после — полные.

Relational/структурные вопросы (связи, backlinks, сироты) — через graph-тулы, guarded failure-mode: одна страница и стоп, без многохоповых цепочек сам.

Status: done Created: 2026-08-24 Where I stopped: mappa-knowledge v1.0.0: слияние using-wiki + using-wiki-graph (оба поглощены), цикл ingest/query/lint + граф-слой (graph_*, guarded failure-mode), старые имена = триггер-синонимы; lint 0 violations, build+install (dual), GREEN micro-test (реляционный вопрос → graph_path) пройден; полный behavioral smoke — #1065 Next action: (none — kept until merged) Branch: n/a Notify: OpeItcLoc03/workshop


🟢 [#1060 mappa-brainstorm-promote] — UPDATE workshop-promote-brainstorm → mappa-brainstorm-promote (редизайн mappa-skill-suite, спека w:2605). АПДЕЙТ, не rewrite.

Fold-in 1: mappa-service target. Промоут в mappa-сервисные борды (mappa, .common, …) — отдельный канал: сервисные тулы mcp__mappa__task_create/wiki_create (под лизом, claim через task_claim_next); pointers-таска НЕ нужна, если спека уже в вики проекта (w:NNNN) — описание импл-таски ссылается на неё; review-umbrella — сервисная таска (status=blocked, blocker=impl#); covering-письмо в инбокс цели (канон delegate-task) — в обоих каналах. Файловый путь (projects-meta → .tasks/STATUS.md) остаётся.

NB (2026-08-24): таски при промоушене создавать ПОСЛЕДОВАТЕЛЬНО — параллельный tasks_create → гонка на sha-CAS общего счётчика (agenda-репо), часть тасок падает с PushRejected (инцидент при промоуте mappa-skill-suite: 6/7 упали, повторены последовательно).

Fold-in 1: mappa-service target. Промоут в mappa-сервисные борды (mappa, .common, …) — отдельный канал: сервисные тулы mcp__mappa__task_create/wiki_create (под лизом, claim через task_claim_next); pointers-таска НЕ нужна, если спека уже в вики проекта (w:NNNN) — описание импл-таски ссылается на неё; review-umbrella — сервисная таска (status=blocked, blocker=impl#); covering-письмо в инбокс цели (канон delegate-task) — в обоих каналах. Файловый путь (projects-meta → .tasks/STATUS.md) остаётся.

Status: done Created: 2026-08-24 Where I stopped: mappa-brainstorm-promote v1.2.0 (UPDATE workshop-promote-brainstorm, старое имя = триггер-синоним): mappa-service channel (fold-in 1 — лиз, wiki_create, task_create последовательно, без pointers если спека в вики w:NNNN, сервисная review-umbrella, covering-письмо); NB последовательности тасок (гонка sha-CAS); file channel сохранён; lint 0 violations, build+install, GREEN micro-test (service channel) пройден; полный smoke — #1065 Next action: (none — kept until merged) Branch: n/a Notify: OpeItcLoc03/workshop


🟢 [#1061 mappa-delegation] — Rewrite delegate-task → mappa-delegation (редизайн mappa-skill-suite, спека w:2605).

Скилл = цикл, не тул; старые имена — триггер-синонимы. Поглощает: delegate-task. Каждая кросс-проектная делегация — пара: tasks_create + covering-письмо в инбокс получателя (таска на доске не пингует живую сессию). #1054 create-без-лиза — опционально (контракт работает на текущих тулах); перейти, когда #1054 имплементится.

НЕ применимо: self-assigned таски на своей доске («создать задачу себе» → mappa-task-work), работа своими руками, workshop-внутренние таски.

Status: done Created: 2026-08-24 Where I stopped: mappa-delegation v1.0.0: rewrite delegate-task (поглощён, имя = триггер-синоним), цикл pre-flight→шаблон→preview→confirm→covering-письмо→review-umbrella→downstream; suite-ссылки (mappa-task-work/mappa-messaging/mappa-knowledge); нота #1054 (create-без-лиза опционально); lint 0 violations, build+install, GREEN micro-test (task+letter пара) пройден; полный smoke — #1065 Next action: (none — kept until merged) Branch: n/a Notify: OpeItcLoc03/workshop


🟢 [#1062 mappa-task-work] — Rewrite using-tasks + task-format + task-loop + priority-due → mappa-task-work (редизайн mappa-skill-suite, спека w:2605). Центральный, крупный.

Скилл = цикл, не тул; старые имена — триггер-синонимы. Поглощает: using-tasks, task-format (вливается), task-loop (loop-mode ВНУТРИ, вариант A — отдельный скилл не создаётся), priority-due-раздел (P0-P2 + дедлайны: приоритет = территория человека, агенты ставят только при создании; дефолт P1; дедлайн-механика: notify при просрочке без авто-бампа).

Цикл: выбор работы (claim) → исполнение → сдача (close + review-umbrella). Один триггер-сёрфейс: «поработай очередь» / «work the queue» → mode=loop.

Status: done Created: 2026-08-24 Where I stopped: mappa-task-work v1.0.0: слияние using-tasks + task-format + task-loop + priority-due (все поглощены, имена = триггер-синонимы); центральный цикл (ориентация→claim→исполнениесдача+review-umbrella), loop-mode внутри (пустая очередь = стоп, session_break, consult gate), priority/due раздел (территория человека, дефолт P1, overdue notify без бампа); lint 0 violations, build+install, GREEN micro-test (loop-mode) пройден; полный smoke — #1065 Next action: (none — kept until merged) Branch: n/a Notify: OpeItcLoc03/workshop


🟢 [#1063 mappa-closing-ritual] — НОВЫЙ скилл mappa-closing-ritual (редизайн mappa-skill-suite, спека w:2605).

Финиш-фаза форкфлоу: session-handoff(write) + PROPOSE wiki-ingest + task closes + sweep. Старт ≠ финиш: closing-ritual = write-path с процедурой и подтверждением. Ad-hoc: mode=light — явный вопрос «Сделать handoff?» в конце сессии (НЕ автоматический sweep); решение за человеком. Поглощает: session-handoff(write-часть).

Handoff: sliding, per-project, versioned-история; read на старте — mappa-session-orient, write на финише — тут. Мутации (handoff write / wiki-ingest / task closes) — только после подтверждения пользователя.

Status: done Created: 2026-08-24 Where I stopped: mappa-closing-ritual v1.0.0 (НОВЫЙ): финиш-фаза — handoff write (h:N, versioned) + PROPOSE wiki-ingest + PROPOSE task closes, confirm-gated (мутации только после «да»); mode=light для ad-hoc (явный вопрос «Сделать handoff?», без авто-sweep); поглощает session-handoff write-часть (read — за #1064); lint 0 violations, build+install, GREEN micro-test (полный ритуал + mode=light) пройден; полный smoke — #1065 Next action: (none — kept until merged) Branch: n/a Notify: OpeItcLoc03/workshop


🟢 [#1064 mappa-session-orient] — НОВЫЙ скилл mappa-session-orient (редизайн mappa-skill-suite, спека w:2605). Самый новый, делается ПОСЛЕДНИМ.

Старт-фаза форкфлоу: контракт + чтение (нужен и для ad-hoc, где нет AGENTS.md-контракта). Поглощает: pulling-before-work (полный цикл --ff-only), session-handoff(read), session-inbox-monitor(raise), using-system-snapshot (liveness-сводка «живо/мертво», одна строка), live-ingest query (потребитель session-live-ingest: GET /session?project=, stale-active детект, «другая связка + не завершена» → предложение: забить / дернуть письмом / продолжить).

Граница: session-orient = «живо/мертво»; глубокая диагностика — вне suite (адхок). Эскалация: проблема на старте → не углубляться, передать человеку/диагностической сессии.

Status: done Created: 2026-08-24 Where I stopped: mappa-session-orient v1.0.0 (НОВЫЙ, последний в suite): старт-ритуал контракт→pull(--ff-only)→handoff-read→inbox-raise→liveness(«живо/мертво»)→live-ingest query (stale-active, другая связка→предложение); граница orient/ops (эскалация, не углубление); поглощает pulling-before-work/session-handoff(read)/session-inbox-monitor/using-system-snapshot; 404-skip для неразвёрнутых /session (E2E шага 6 — за #1055 деплой + #1024 клиент); lint 0 violations, build+install, GREEN micro-test пройден; полный smoke — #1065 Next action: (none — kept until merged) Blocker: #1024 session-sync-pi-extension (клиентская часть live-ingest, .common); server #1022 готово Branch: n/a Notify: OpeItcLoc03/workshop


🔵 [#1065 mappa-skill-suite-review] — Skill-review checkpoint для mappa-skill-suite (промоушен 2026-08-24).

Спецификация: w:2605 concepts/mappa-skill-suite (mappa wiki). Источник дизайна (trace): .workshop/.archive/2026-08-24-mappa-skill-suite.md. Импл-таски: #1058 mappa-messaging, #1059 mappa-knowledge, #1060 mappa-brainstorm-promote, #1061 mappa-delegation, #1062 mappa-task-work, #1063 mappa-closing-ritual, #1064 mappa-session-orient.

Кто делает: не имплементер. Ревьюер по решению оператора 2026-08-24 — .workshop (опытный практик, чистый контекст). Identity-not-location.

Поведенческий smoke-test на скилл (это и есть acceptance):

  • Скилл активируется в чистой сессии на каждой триггер-фразе из description (русский И английский варианты).
  • Скилл не активируется на 2-3 близких но не своих фразах из соседних доменов (false-positive check).
  • Каждый шаг секции Steps отрабатывает на тестовом буфере без ошибок.
  • Failure modes уводят в abort, не в частичный успех.
  • What NOT to do соответствует реальности.

Чек-лист:

  • Сверить каждый скилл со спекой w:2605 (структура, поглощения, naming mappa-).
  • Старые имена работают как триггер-синонимы (inter-session-messaging, using-wiki, delegate-task, workshop-promote-brainstorm, using-tasks, session-handoff, pulling-before-work…).
  • mappa-session-orient сделан ПОСЛЕДНИМ и учитывает live-ingest (#1022/#1024).
  • mappa-task-work: loop-mode, priority/due-раздел, session-break.
  • #1060: последовательное создание тасок (NB от промоутера).

Findings → follow-up tasks через tasks_create в OpeItcLoc03/skills.

Закрытие: только когда все findings зафайлены ИЛИ ревьюер подтвердил «нет findings» в close-note.

Спецификация: w:2605 concepts/mappa-skill-suite (mappa wiki). Источник дизайна (trace): .workshop/.archive/2026-08-24-mappa-skill-suite.md. Импл-таски: #1058 mappa-messaging, #1059 mappa-knowledge, #1060 mappa-brainstorm-promote, #1061 mappa-delegation, #1062 mappa-task-work, #1063 mappa-closing-ritual, #1064 mappa-session-orient.

Кто делает: не имплементер. Другая сессия / другой день / другой агент (identity-not-location).

Поведенческий smoke-test на скилл (это и есть acceptance):

  • Скилл активируется в чистой сессии на каждой триггер-фразе из description (русский И английский варианты).
  • Скилл не активируется на 2-3 близких но не своих фразах из соседних доменов (false-positive check).
  • Каждый шаг секции Steps отрабатывает на тестовом буфере без ошибок.
  • Failure modes уводят в abort, не в частичный успех.
  • What NOT to do соответствует реальности.

Чек-лист:

  • Сверить каждый скилл со спекой w:2605 (структура, поглощения, naming mappa-).
  • Старые имена работают как триггер-синонимы (inter-session-messaging, using-wiki, delegate-task, workshop-promote-brainstorm, using-tasks, session-handoff, pulling-before-work…).
  • mappa-session-orient сделан ПОСЛЕДНИМ и учитывает live-ingest (#1022/#1024).
  • mappa-task-work: loop-mode, priority/due-раздел, session-break.

Findings → follow-up tasks через tasks_create в OpeItcLoc03/skills.

Закрытие: только когда все findings зафайлены ИЛИ ревьюер подтвердил «нет findings» в close-note.

Status: blocked Created: 2026-08-24 Where I stopped: (not started) Next action: Дождаться 🟢 у всех blocker-тасок (#1058#1064). Прочитать спеку w:2605 + trace в .archive. Прогнать behavioral-smoke per скилл (см. чек-лист в description). Findings → follow-up tasks через tasks_create. Blocker: impl-tasks: #1058 mappa-messaging, #1059 mappa-knowledge, #1060 mappa-brainstorm-promote, #1061 mappa-delegation, #1062 mappa-task-work, #1063 mappa-closing-ritual, #1064 mappa-session-orient Branch: n/a Notify: OpeItcLoc03/workshop