$npx -y skills add TserenTserenov/FMT-exocortex-template --skill week-closeПротокол закрытия недели (Week Close). Ретро 7 дней + carry-over в новую неделю + платформенные шаги (бэкап, dirty repos).
| 1 | # Week Close (протокол закрытия недели) |
| 2 | |
| 3 | > **Роль:** R1 Стратег. **Бюджет:** ~30 мин. |
| 4 | > **Принцип:** SKILL.md = L1 платформенный файл. Пользователь не редактирует напрямую — только через `extensions/`. |
| 5 | > **Стиль текста:** ретро недели и новый WeekPlan читает пилот → весь текст синтезировать в базе разговорного стиля (S0 база + S1 автор, источник DP.SC.050): русский, без машинных меток, главная мысль первой, код РП и путь не подлежащее. |
| 6 | |
| 7 | ## When to use |
| 8 | |
| 9 | Протокол закрытия недели (Week Close). Ретро 7 дней + carry-over в новую неделю + платформенные шаги (бэкап, dirty repos). |
| 10 | |
| 11 | ## БЛОКИРУЮЩЕЕ: пошаговое исполнение |
| 12 | |
| 13 | Week Close = протокол. Исполнять ТОЛЬКО пошагово через TodoWrite. |
| 14 | **Шаг 0 — ПЕРВОЕ действие:** создать список задач прямо сейчас (до любых других действий). |
| 15 | Каждый шаг алгоритма → отдельная задача (pending → in_progress → completed). |
| 16 | |
| 17 | ## Algorithm |
| 18 | |
| 19 | ### 0. Extensions (before) |
| 20 | Загрузить: `bash .claude/scripts/load-extensions.sh week-close before`. Exit 0 → `Read` каждый файл из вывода (alphabetic) → выполнить как первые шаги. Exit 1 → пропустить. Поддерживает `extensions/week-close.before.md` И `extensions/week-close.before.<suffix>.md`. |
| 21 | |
| 22 | ### 1. Сбор данных за 7 дней |
| 23 | |
| 24 | **Коммиты:** |
| 25 | ```bash |
| 26 | for repo in $(ls {{WORKSPACE_DIR}}/); do |
| 27 | if [ -d {{WORKSPACE_DIR}}/$repo/.git ]; then |
| 28 | commits=$(git -C {{WORKSPACE_DIR}}/$repo log --since="last monday 00:00" --until="today 00:00" --oneline --no-merges 2>/dev/null) |
| 29 | [ -n "$commits" ] && echo "=== $repo ===" && echo "$commits" |
| 30 | fi |
| 31 | done |
| 32 | ``` |
| 33 | |
| 34 | **Календарь недели:** |
| 35 | ```bash |
| 36 | bash {{WORKSPACE_DIR}}/scripts/server-calendar.sh --week $(date -v-mon +%Y-%m-%d 2>/dev/null || date -d "last monday" +%Y-%m-%d) |
| 37 | ``` |
| 38 | Сверить запланированные встречи/задачи с фактом: что состоялось, что перенеслось, что отменилось. Для задач с отчётами (🔧 backup stress-test и т.п.) — проверить наличие артефакта. |
| 39 | |
| 40 | Сопоставить коммиты и календарь с РП в WeekPlan → определить статусы (done/partial/not started). |
| 41 | |
| 42 | ### 2. Headless week-review (если включён launchd Пн 00:00) |
| 43 | |
| 44 | > **Условный шаг:** если запущен через `strategist.sh week-review` (Пн 00:00 launchd) — алгоритм идёт через `{{IWE_TEMPLATE}}/roles/strategist/prompts/week-review.md`. В интерактивном режиме `/week-close` (вечер Вс) — выполнять следующие шаги вручную. |
| 45 | |
| 46 | ### 3. Ретро (closed/partial/not_started/blocked) |
| 47 | |
| 48 | **3a.** Закрытые РП: что сделано, ключевые артефакты, мультипликатор за неделю. |
| 49 | **3b.** Частичные: % выполнения, что осталось, перенос в W+1. |
| 50 | **3c.** Не стартовавшие: причина, перенос или закрытие. |
| 51 | **3d.** Заблокированные: блокер, ETA снятия. |
| 52 | |
| 53 | ### 4. Метрики недели |
| 54 | |
| 55 | - Completion rate: X/Y РП (N%) |
| 56 | - Коммитов всего, активных дней |
| 57 | - WakaTime итог недели (физическое время) |
| 58 | - Бюджет закрыт (сумма done × бюджет + partial % × бюджет) |
| 59 | - Мультипликатор недели = Бюджет закрыт / WakaTime |
| 60 | - **Калибровка гипотез (WP-496, из шага 6a):** сверено N записей за неделю; из них с уверенностью ≥80% — доля подтвердившихся (порог: ≥0.9 от заявленной уверенности, иначе «уверенность завышена» — явно отметить в WeekReport). Если сверок не было на этой неделе — не считать, пропустить строку. |
| 61 | |
| 62 | ### 5. Carry-over → W+1 |
| 63 | |
| 64 | Незавершённые РП с pending/in_progress статусами → перенести в новый WeekPlan W{N+1} (создаст session-prep автоматически в Пн 04:00 либо вручную). |
| 65 | |
| 66 | ### 5b. Pending фазы внутри активных РП (B-005) |
| 67 | |
| 68 | > **Зачем:** carry-over §5 работает на уровне РП (status: in_progress → перенос). Pending **фазы** внутри Ф-таблиц context-файлов могут потеряться: если родительский РП в `in_progress` — pending-фаза не выделяется автоматически; если родительский ушёл в `done` — фаза теряется вместе с context-файлом. |
| 69 | |
| 70 | ```bash |
| 71 | bash ${IWE_SCRIPTS}/pending-phases-sweep.sh |
| 72 | ``` |
| 73 | |
| 74 | Скрипт обходит все `{{WORKSPACE_DIR}}/{{GOVERNANCE_REPO}}/inbox/WP-*.md` со `status: in_progress` (или без явного status), извлекает строки Ф-таблицы со статусом `⏳ pending` / `pending`, выводит сводку формата: |
| 75 | |
| 76 | ``` |
| 77 | WP-NNN: pending-фазы (M): |
| 78 | Фx — <описание фазы> |
| 79 | Фy — <описание фазы> |
| 80 | ``` |
| 81 | |
| 82 | Для каждой pending-фазы решить: **(a)** делать на этой неделе → добавить в W{N+1} как явный пункт; **(b)** переоценить (блокер? устарела?); **(c)** оставить как есть (если ожидание внешнего события — записать ожидаемый триггер). |
| 83 | |
| 84 | Если скрипта нет — fallback: `grep -l "status: in_progress" {{WORKSPACE_DIR}}/{{GOVERNANCE_REPO}}/inbox/WP-*.md` → для каждого `grep -E "⏳.*pending|Ф[0-9]+.*pending"`. |
| 85 | |
| 86 | ### 6. Captures и уроки |
| 87 | |
| 88 | - Просмотреть `inbox/fleeting-notes.md` за неделю → маршрутизировать невыключенные. |
| 89 | - Уро |