вычитка слияния: имена скиллов в прозе, роли вместо плагинов

Короткие имена скиллов (tasks, canon, docs, groom, healthcheck) в прозе и в
уставах агентов заменены новыми: по прежнему имени скилл не находится. Фразы
вида «плагин задач», «плагина конвейера нет» переписаны на то, чем они были на
деле, — на часть раскладки проекта либо на скилл-владелец.
This commit is contained in:
av
2026-08-13 10:35:33 +03:00
parent a00e132f29
commit 7d559e60ec
15 changed files with 34 additions and 35 deletions
+2 -2
View File
@@ -75,12 +75,12 @@ color: green
| **дельта-спеки** | сколько capability затронуто и сколько требований в каждой | `ADDED` целой capability — поведения такого рода не было; только `MODIFIED` в одной — было | | **дельта-спеки** | сколько capability затронуто и сколько требований в каждой | `ADDED` целой capability — поведения такого рода не было; только `MODIFIED` в одной — было |
**Записи задачи может не быть вовсе, и это не довод за незнакомое.** Задача **Записи задачи может не быть вовсе, и это не довод за незнакомое.** Задача
приходит текстом или из проекта без плагина задач — тогда раздела «Затрагивает» приходит текстом или из проекта без каталога задач — тогда раздела «Затрагивает»
нет **по построению**, а не потому, что границы не назвали. Отличай: нет **по построению**, а не потому, что границы не назвали. Отличай:
запись есть, а раздела в ней нет → незнакомое, как сказано в таблице; записи нет запись есть, а раздела в ней нет → незнакомое, как сказано в таблице; записи нет
→ строка источника снимается, обе оси выводятся из остальных четырёх, и это → строка источника снимается, обе оси выводятся из остальных четырёх, и это
называется в плане строкой «записи задачи нет, оси выведены по четырём называется в плане строкой «записи задачи нет, оси выведены по четырём
источникам». Иначе всякая задача без плагина задач систематически едет в `large` источникам». Иначе всякая задача без каталога задач систематически едет в `large`
за то, чего никто не терял. за то, чего никто не терял.
**`design.md` информативен и своим отсутствием.** Его нет — либо задача **`design.md` информативен и своим отсутствием.** Его нет — либо задача
+1 -1
View File
@@ -12,7 +12,7 @@ color: green
Оптика — смысл записи в её собственных рамках. Ты **не** судишь, нужна ли Оптика — смысл записи в её собственных рамках. Ты **не** судишь, нужна ли
задача, верно ли выбрана цель и не крупна ли она: это разбор, и его ведёт задача, верно ли выбрана цель и не крупна ли она: это разбор, и его ведёт
человек со скиллом `tasks`. человек со скиллом `task-track`.
Границу с языком держи твёрдо. **Залог, оценки, стоп-слова, англицизмы, жаргон** Границу с языком держи твёрдо. **Залог, оценки, стоп-слова, англицизмы, жаргон**
у агента `task-wording`, и тебе они не поручены даже там, где бросаются в у агента `task-wording`, и тебе они не поручены даже там, где бросаются в
+1 -1
View File
@@ -201,7 +201,7 @@ color: green
тоже не твоя находка: твоя — язык того, что уже написано. тоже не твоя находка: твоя — язык того, что уже написано.
**Содержание работы**: нужна ли задача, верно ли выбрана цель, не крупна ли она, **Содержание работы**: нужна ли задача, верно ли выбрана цель, не крупна ли она,
достаточна ли декомпозиция. Это разбор, и его ведёт человек со скиллом `tasks`. достаточна ли декомпозиция. Это разбор, и его ведёт человек со скиллом `task-track`.
**Полезное действие, параллельность и работающий заголовок** — тоже не твои. **Полезное действие, параллельность и работающий заголовок** — тоже не твои.
Они в доктрине языка, судит их человек: находка по ним требует увидеть текст Они в доктрине языка, судит их человек: находка по ним требует увидеть текст
@@ -96,7 +96,7 @@
Резать стоит там, где разрез **снимает доказательство с большей части диффа**. Резать стоит там, где разрез **снимает доказательство с большей части диффа**.
Шов и правило нарезки живут у того, кто ведёт задачи, — скилл Шов и правило нарезки живут у того, кто ведёт задачи, — скилл
`av-dev:task-track`, его раздел о нарезке. Пути туда конвейер не выносит: за `av-dev:task-track`, его раздел о нарезке. Пути туда конвейер не выносит: за
пределы своего плагина он ходит вызовом скилла, а не файлом. пределы своего скилла он ходит вызовом, а не файлом.
Разметка в костяк не входит — она платится один раз на задачу, а не один раз на Разметка в костяк не входит — она платится один раз на задачу, а не один раз на
прогон, и потому **разрез задачи её не удваивает**. Это единственное, что стало прогон, и потому **разрез задачи её не удваивает**. Это единственное, что стало
+6 -7
View File
@@ -24,8 +24,7 @@ description: Привести проект к канону документов
информационный стиль, применённый к проектным текстам, таблицы англицизмов и информационный стиль, применённый к проектным текстам, таблицы англицизмов и
жаргона. Раскладка отвечает, где текст лежит, — этот файл отвечает, каким он жаргона. Раскладка отвечает, где текст лежит, — этот файл отвечает, каким он
должен быть. Правила общие для документов канона, задач, решений ADR и должен быть. Правила общие для документов канона, задач, решений ADR и
записок разведки, и дом у них общий — `shared/language.md` в репозитории записок разведки, и это их **дом**. Вычитывают их два прохода по охвату:
плагинов, а этот файл его копия. Вычитывают их два прохода по охвату:
документы — `doc-wording`, записи каталога задач — `task-wording`. документы — `doc-wording`, записи каталога задач — `task-wording`.
- [references/changelog.md](references/changelog.md) — журнал версий раскладки; - [references/changelog.md](references/changelog.md) — журнал версий раскладки;
закрытые журналы до слияния плагинов лежат рядом. закрытые журналы до слияния плагинов лежат рядом.
@@ -54,7 +53,7 @@ python3 $ds version --dir <корень> # версия кано
**Формы `openspec/config.yaml` здесь больше нет.** Каталог принадлежит конвейеру, **Формы `openspec/config.yaml` здесь больше нет.** Каталог принадлежит конвейеру,
и форму смотрит его скрипт — скилл `av-dev:code-openspec`, команда и форму смотрит его скрипт — скилл `av-dev:code-openspec`, команда
`openspec.py check`. Проект работает по OpenSpec, а плагина конвейера нет — форму `openspec.py check`. Проект работает по OpenSpec, а каталога `openspec/` нет — форму
не проверяет никто, и это надо сказать строкой доклада, а не считать, что она не проверяет никто, и это надо сказать строкой доклада, а не считать, что она
верна. верна.
@@ -139,7 +138,7 @@ capability: незаполненный канон это переходное с
2. **Судей документов на каждом `check` не зови.** Ими владеет отдельный скилл — 2. **Судей документов на каждом `check` не зови.** Ими владеет отдельный скилл —
`av-dev:doc-healthcheck`, — и там же записано, когда его звать: он дорог, и `av-dev:doc-healthcheck`, — и там же записано, когда его звать: он дорог, и
прогон по каждому `check` не окупается. `check` отвечает на «сходится ли прогон по каждому `check` не окупается. `check` отвечает на «сходится ли
форма», `healthcheck` — на «не разошлись ли утверждения». форма», `doc-healthcheck` — на «не разошлись ли утверждения».
3. Доклад: вывод скрипта строкой исхода и **граница покрытия** — что смотрели и 3. Доклад: вывод скрипта строкой исхода и **граница покрытия** — что смотрели и
чего не смотрели. Если суждение здесь нужно, скажи это строкой и предложи чего не смотрели. Если суждение здесь нужно, скажи это строкой и предложи
`healthcheck`, а не зови агентов сам. `healthcheck`, а не зови агентов сам.
@@ -225,7 +224,7 @@ capability), `openspec/config.yaml`.
отказ. Пересчитай эти пункты в докладе переходного состояния — не выдавай отказ. Пересчитай эти пункты в докладе переходного состояния — не выдавай
их за поломку и не молчи о них. их за поломку и не молчи о них.
**Задачи `docs.py` не проверяет** — их ведёт другой плагин, и согласованность **Задачи `docs.py` не проверяет** — их ведёт другой скилл, и согласованность
каталога показывает только `tasks.py check`. Позвал на шаге 5 скилл задач — каталога показывает только `tasks.py check`. Позвал на шаге 5 скилл задач —
его отчёт идёт в доклад отдельной строкой, и пункт «задачи без цели» в нём его отчёт идёт в доклад отдельной строкой, и пункт «задачи без цели» в нём
зелёным не станет: цели не сочиняются адаптацией (запрет записан у того, кто зелёным не станет: цели не сочиняются адаптацией (запрет записан у того, кто
@@ -311,8 +310,8 @@ capability), `openspec/config.yaml`.
хуже отсутствующего: по нему будут строиться находки. хуже отсутствующего: по нему будут строиться находки.
- **Не удаляет то, чьё содержимое не нашло дом.** Оригинал живёт, пока не - **Не удаляет то, чьё содержимое не нашло дом.** Оригинал живёт, пока не
названо поимённо, куда переехал каждый его кусок. названо поимённо, куда переехал каждый его кусок.
- **Не ведёт содержимое канона** — это скилл `docs`. Здесь только раскладка. - **Не ведёт содержимое канона** — это скилл `doc-sync`. Здесь только раскладка.
- **Не заводит проект с нуля** — это скилл `init`. - **Не заводит проект с нуля** — это скилл `doc-init`.
- **Не правит историю.** В старых коммитах старые пути остаются, и это нормально. - **Не правит историю.** В старых коммитах старые пути остаются, и это нормально.
## Доклад ## Доклад
+2 -2
View File
@@ -6,7 +6,7 @@
[журнала](changelog.md). Литерал в шапке был третьим и отстал на первом же [журнала](changelog.md). Литерал в шапке был третьим и отстал на первом же
повышении — версию 13 он пережил, объявляя канон двенадцатым. повышении — версию 13 он пережил, объявляя канон двенадцатым.
Это **единственный дом определения канона**. Скиллы `init`, `canon` и `docs` Это **единственный дом определения канона**. Скиллы `doc-init`, `doc-canon` и `doc-sync`
читают его, а не пересказывают: три описания одной раскладки разъедутся, и читают его, а не пересказывают: три описания одной раскладки разъедутся, и
работать будет то, которое прочитали последним. Меняется канон — меняется этот работать будет то, которое прочитали последним. Меняется канон — меняется этот
файл и появляется запись в [changelog.md](changelog.md). файл и появляется запись в [changelog.md](changelog.md).
@@ -19,7 +19,7 @@
Рядом лежит OpenSpec, у которого структура тоже строгая. Рядом лежит OpenSpec, у которого структура тоже строгая.
Цена принята сознательно: плагин не переносится на чужой репозиторий как есть — Цена принята сознательно: плагин не переносится на чужой репозиторий как есть —
чужой репозиторий **приводится** к канону скиллом `canon`. чужой репозиторий **приводится** к канону скиллом `doc-canon`.
Раскладка отвечает, **где** текст лежит и на какой вопрос отвечает. Каким он Раскладка отвечает, **где** текст лежит и на какой вопрос отвечает. Каким он
должен быть **словами** — общий для всех документов канона файл должен быть **словами** — общий для всех документов канона файл
@@ -428,7 +428,7 @@ severity стоит здесь, а не выводится каждым прох
## `openspec/config.yaml` ## `openspec/config.yaml`
**Образец переехал.** Файл заводит и заполняет плагин конвейера — скилл **Образец переехал.** Файл заводит и заполняет конвейер — скилл
`av-dev:code-openspec`, — потому что по OpenSpec работает он, а не канон `av-dev:code-openspec`, — потому что по OpenSpec работает он, а не канон
документов. Проект без конвейера каталога `openspec/` не имеет вовсе, и образец документов. Проект без конвейера каталога `openspec/` не имеет вовсе, и образец
файла, которого у него нет, в скелетах канона лежал бы мёртвым грузом. файла, которого у него нет, в скелетах канона лежал бы мёртвым грузом.
+1 -1
View File
@@ -23,7 +23,7 @@ check` и его скрипт; здесь начинается там, где к
`architecture.md` и уже живущий в `CLAUDE.md`; `architecture.md` и уже живущий в `CLAUDE.md`;
- **вернулись к проекту после перерыва** — прежде чем опираться на написанное; - **вернулись к проекту после перерыва** — прежде чем опираться на написанное;
- **перед тем как опереться на документ в решении**, если оно дорогое; - **перед тем как опереться на документ в решении**, если оно дорогое;
- шагом `adopt` и шагом `upgrade` — их зовёт скилл `canon` сам. - шагом `adopt` и шагом `upgrade` — их зовёт скилл `doc-canon` сам.
**Не на каждой задаче и не на каждом синке документации.** Цена реальная: **Не на каждой задаче и не на каждом синке документации.** Цена реальная:
`doc-consistency` идёт на `opus`, потому что сличение утверждений — суждение; `doc-consistency` идёт на `opus`, потому что сличение утверждений — суждение;
+4 -4
View File
@@ -1,6 +1,6 @@
--- ---
name: doc-init name: doc-init
description: "Завести новый проект — сессия вопросов и ответов по свободному описанию замысла, из которой рождается первичная документация по канону av-dev: паспорт, CLAUDE.md с инвариантами и командами, модель угроз с периметром и скелет остальных документов; первые цели собирает интервью, а записывает их вызовом скилла av-dev:task-track — роадмап принадлежит плагину задач. OpenSpec заводит не сам, а вызовом скилла av-dev:code-openspec — каталог принадлежит конвейеру; плагина конвейера нет — шаг пропускается строкой доклада. Использовать, когда начинают новый проект с нуля, когда есть только текст «что мне нужно и почему» и надо превратить его в рабочую документацию, когда просят провести стартовое интервью по брифу. Проект, где документация уже как-то ведётся, переводит скилл canon." description: "Завести новый проект — сессия вопросов и ответов по свободному описанию замысла, из которой рождается первичная документация по канону av-dev: паспорт, CLAUDE.md с инвариантами и командами, модель угроз с периметром и скелет остальных документов; первые цели собирает интервью, а записывает их вызовом скилла av-dev:task-track — роадмап принадлежит учёту работ. OpenSpec заводит не сам, а вызовом скилла av-dev:code-openspec — каталог принадлежит конвейеру. Использовать, когда начинают новый проект с нуля, когда есть только текст «что мне нужно и почему» и надо превратить его в рабочую документацию, когда просят провести стартовое интервью по брифу. Проект, где документация уже как-то ведётся, переводит скилл doc-canon."
--- ---
# Заведение нового проекта # Заведение нового проекта
@@ -72,7 +72,7 @@ description: "Завести новый проект — сессия вопро
## Чего может не быть ## Чего может не быть
Два шага порядка работы — вызовы чужого: OpenSpec заводит конвейер, каталог задач Два шага порядка работы — вызовы чужого: OpenSpec заводит конвейер, каталог задач
ведёт плагин задач. Ни того, ни другого `init` не делает руками. ведёт скилл задач. Ни того, ни другого `init` не делает руками.
**Копия.** Дом правила — `shared/absence.md` в репозитории плагина. **Копия.** Дом правила — `shared/absence.md` в репозитории плагина.
Правится дом, а не этот файл. Правится дом, а не этот файл.
@@ -135,7 +135,7 @@ description: "Завести новый проект — сессия вопро
7. Каталог задач и первые цели — **вызови скилл `av-dev:task-track`**: он владеет 7. Каталог задач и первые цели — **вызови скилл `av-dev:task-track`**: он владеет
форматом целей и задач. Не разрешился — учёт задач остаётся владельцу, и это форматом целей и задач. Не разрешился — учёт задач остаётся владельцу, и это
тоже строка доклада. тоже строка доклада.
8. `docs.py check` из скилла `canon` — до отсутствия дрейфа. Замечания о 8. `docs.py check` из скилла `doc-canon` — до отсутствия дрейфа. Замечания о
незаполненных плейсхолдерах остаются: их закрывает не `init`, а работа. незаполненных плейсхолдерах остаются: их закрывает не `init`, а работа.
9. **Вычитай написанное — агент `doc-wording`**, по пачке заполненных документов 9. **Вычитай написанное — агент `doc-wording`**, по пачке заполненных документов
(`passport.md`, `CLAUDE.md`, `security.md`). Здесь он нужен сильнее, чем где (`passport.md`, `CLAUDE.md`, `security.md`). Здесь он нужен сильнее, чем где
@@ -148,7 +148,7 @@ description: "Завести новый проект — сессия вопро
## Что дальше ## Что дальше
- Содержимое канона по ходу разработки ведёт скилл `docs`. - Содержимое канона по ходу разработки ведёт скилл `doc-sync`.
- Раскладку проверяет `canon check`. - Раскладку проверяет `canon check`.
- Первую задачу берёт конвейер проекта; `architecture.md` и `conventions/` - Первую задачу берёт конвейер проекта; `architecture.md` и `conventions/`
наполняются его шагом синка, а не заранее. наполняются его шагом синка, а не заранее.
+4 -4
View File
@@ -9,9 +9,9 @@ description: Вести содержимое документов канона
Определение канона и роли документов — [канон](../doc-canon/references/canon.md), Определение канона и роли документов — [канон](../doc-canon/references/canon.md),
здесь не пересказывается. здесь не пересказывается.
Главный вызывающий — **шаг синка документации в конвейере задачи**. Конвейер Главный вызывающий — **шаг синка документации в конвейере задачи**: скилл
живёт в другом плагине и зовёт этот скилл по имени; проект без конвейера ведёт `av-dev:code-resolve` зовёт этот по имени. Задачу ведут не конвейером —
документацию тем же скиллом вручную. документация ведётся тем же скиллом вручную.
## Правило, из которого всё следует ## Правило, из которого всё следует
@@ -80,7 +80,7 @@ description: Вести содержимое документов канона
**Язык правленого вычитывается тем же прогоном, который его написал, и зовёшь **Язык правленого вычитывается тем же прогоном, который его написал, и зовёшь
агента `doc-wording` ты.** Довод обратный доводу про судей: он читает **только агента `doc-wording` ты.** Довод обратный доводу про судей: он читает **только
названную пачку**, стоит дёшево и ищет ровно то, что портится в момент письма, — названную пачку**, стоит дёшево и ищет ровно то, что портится в момент письма, —
залог, оценку без факта, жаргон, термин без ввода. Ждать `healthcheck` здесь залог, оценку без факта, жаргон, термин без ввода. Ждать `doc-healthcheck` здесь
нечего: через месяц никто уже не помнит, какую фразу имел в виду автор. нечего: через месяц никто уже не помнит, какую фразу имел в виду автор.
Позови его **последним шагом правки, до коммита**, отдав список файлов, которых Позови его **последним шагом правки, до коммита**, отдав список файлов, которых
+5 -5
View File
@@ -13,7 +13,7 @@ description: "Груминг беклога — интерактивный ра
Ответ на оба **записывается порядком строк в беклоге**: первая строка секции — Ответ на оба **записывается порядком строк в беклоге**: первая строка секции —
то, что делают следующим; то, что перестало быть важным, из беклога уходит с то, что делают следующим; то, что перестало быть важным, из беклога уходит с
причиной. Приоритет — свойство очереди, а не задачи, и живёт он в индексе причиной. Приоритет — свойство очереди, а не задачи, и живёт он в индексе
(правило 4 скилла `tasks`). Груминг — единственное место, где очередь (правило 4 скилла `task-track`). Груминг — единственное место, где очередь
назначается человеком. назначается человеком.
**Скилл интерактивный.** Он не «приводит беклог в порядок» сам: суждение о **Скилл интерактивный.** Он не «приводит беклог в порядок» сам: суждение о
@@ -21,7 +21,7 @@ description: "Груминг беклога — интерактивный ра
рекомендацией. Что решается фактом (сделано, отменено, дублируется), решается рекомендацией. Что решается фактом (сделано, отменено, дублируется), решается
без вопросов и показывается списком. без вопросов и показывается списком.
Форматом и содержимым записей владеет скилл `tasks` — груминг зовёт его Форматом и содержимым записей владеет скилл `task-track` — груминг зовёт его
операции, а не правит файлы руками. Выполнением задачи — конвейер проекта. операции, а не правит файлы руками. Выполнением задачи — конвейер проекта.
## Три правила, из которых всё следует ## Три правила, из которых всё следует
@@ -209,7 +209,7 @@ flowchart TD
- **Расставить порядок молча**, без доводов: тогда через месяц он неотличим от - **Расставить порядок молча**, без доводов: тогда через месяц он неотличим от
случайного. Защита: причина у каждого движения и строка доклада. случайного. Защита: причина у каждого движения и строка доклада.
- **Разобрать много и мелко** вместо немногого и важного: тридцать полей гигиены - **Разобрать много и мелко** вместо немногого и важного: тридцать полей гигиены
вместо трёх решений о важности. Защита: гигиена — работа скилла `tasks` и вместо трёх решений о важности. Защита: гигиена — работа скилла `task-track` и
побочный продукт здесь; доклад называет **решения**, а не правки. побочный продукт здесь; доклад называет **решения**, а не правки.
## Слоты проекта ## Слоты проекта
@@ -218,7 +218,7 @@ flowchart TD
1. **Что считается сломанным** — какая красная проверка обгоняет развитие. 1. **Что считается сломанным** — какая красная проверка обгоняет развитие.
Не названо — спрашиваем человека, а не решаем сами. Не названо — спрашиваем человека, а не решаем сами.
2. **Необратимое** — что спрашивается всегда (тот же слот, что у скилла `tasks`; 2. **Необратимое** — что спрашивается всегда (тот же слот, что у скилла `task-track`;
дом один). дом один).
3. **Ориентир по размеру порции**, если он замерялся. Умолчание — 5–8 задач, и 3. **Ориентир по размеру порции**, если он замерялся. Умолчание — 5–8 задач, и
это **ориентир, а не закон**. это **ориентир, а не закон**.
@@ -241,7 +241,7 @@ flowchart TD
## Чего этот скилл не делает ## Чего этот скилл не делает
Не пишет код и не выполняет задачи. Не заводит и не переоформляет записи сам по Не пишет код и не выполняет задачи. Не заводит и не переоформляет записи сам по
себе — формат и содержимое ведёт `tasks` (груминг зовёт его операции). Не решает себе — формат и содержимое ведёт `task-track` (груминг зовёт его операции). Не решает
за человека, что важно: он готовит развилки и рекомендует. Не принимает за человека, что важно: он готовит развилки и рекомендует. Не принимает
закрытые задачи отдельным ритуалом — `reopen` есть, момента у него нет. Не судит закрытые задачи отдельным ритуалом — `reopen` есть, момента у него нет. Не судит
документы проекта — это скиллы `av-dev:doc-canon` и `av-dev:doc-healthcheck`. документы проекта — это скиллы `av-dev:doc-canon` и `av-dev:doc-healthcheck`.
@@ -19,7 +19,7 @@
4. **Запиши ответ в тело задачи, опустоши раздел «Вопросы»**, сними тег 4. **Запиши ответ в тело задачи, опустоши раздел «Вопросы»**, сними тег
(`edit <slug> --rm-tag question`), **перепиши «зачем»**: «Решено: …» на вопрос (`edit <slug> --rm-tag question`), **перепиши «зачем»**: «Решено: …» на вопрос
«почему это лежит в беклоге» уже не отвечает. Опустошение раздела — не «почему это лежит в беклоге» уже не отвечает. Опустошение раздела — не
уборка, а условие взятия: правило и причина в скилле `tasks`, уборка, а условие взятия: правило и причина в скилле `task-track`,
[references/task-format.md](../../task-track/references/task-format.md). [references/task-format.md](../../task-track/references/task-format.md).
**Вопросы на верхних строках очереди разбираются вне очереди порции** — здесь **Вопросы на верхних строках очереди разбираются вне очереди порции** — здесь
@@ -71,7 +71,7 @@
5. **Гигиена полей** — протухшее «зачем», вопрос в прозе, снятый ответ, свойство 5. **Гигиена полей** — протухшее «зачем», вопрос в прозе, снятый ответ, свойство
репозитория в рамках, предписание процесса в теле, тип, разошедшийся с репозитория в рамках, предписание процесса в теле, тип, разошедшийся с
задачей, границы вместо реализации в разделе «Затрагивает». Список и правила — задачей, границы вместо реализации в разделе «Затрагивает». Список и правила —
в скилле `tasks`. **Груминг — то самое место, где беклог добирает тип и в скилле `task-track`. **Груминг — то самое место, где беклог добирает тип и
разделы его схемы:** требовать их на входе значило бы выгонять в заметки то, разделы его схемы:** требовать их на входе значило бы выгонять в заметки то,
что должно лежать задачей, а к взятию в работу они уже обязательны (`ready`). что должно лежать задачей, а к взятию в работу они уже обязательны (`ready`).
Блок здоровья `check` печатает, сколько записей готово к взятию, — по этому Блок здоровья `check` печатает, сколько записей готово к взятию, — по этому
+2 -2
View File
@@ -10,7 +10,7 @@ description: Ведение задач и целей как каталога mar
заводит, редактирует, закрывает, разбирает находки ревью, дробит, штурмует сырьё. заводит, редактирует, закрывает, разбирает находки ревью, дробит, штурмует сырьё.
Чем он **не** владеет: **очередью** — что делать следующим и что перестало быть Чем он **не** владеет: **очередью** — что делать следующим и что перестало быть
важным, решает скилл `groom`, а этот скилл лишь даёт ему операции; и выполнением важным, решает скилл `task-groom`, а этот скилл лишь даёт ему операции; и выполнением
задачи — это конвейер проекта. задачи — это конвейер проекта.
## Шесть правил, из которых всё следует ## Шесть правил, из которых всё следует
@@ -742,6 +742,6 @@ python3 $tk adopt scan --from … | apply --plan … # разовая адап
Не пишет код, не заводит спеки и предложения об изменении, не берёт задачу в Не пишет код, не заводит спеки и предложения об изменении, не берёт задачу в
работу — этим занимается конвейер проекта. **Не ведёт очередь:** что делать работу — этим занимается конвейер проекта. **Не ведёт очередь:** что делать
следующим и что перестало быть важным — скилл `groom`, а этот даёт ему операции. следующим и что перестало быть важным — скилл `task-groom`, а этот даёт ему операции.
Не решает за пользователя, что важно. Не Не решает за пользователя, что важно. Не
переоформляет существующие задачи «заодно»: правится то, чего касается операция. переоформляет существующие задачи «заодно»: правится то, чего касается операция.
+1 -1
View File
@@ -2,7 +2,7 @@
Проект, где задачи уже как-то ведутся, и из имеющегося материала **выводится** Проект, где задачи уже как-то ведутся, и из имеющегося материала **выводится**
заполненный каталог задач: цели, задачи, кладбище, индексы. Операция разовая — заполненный каталог задач: цели, задачи, кладбище, индексы. Операция разовая —
после неё проект живёт скиллами `tasks` и `groom`. после неё проект живёт скиллами `task-track` и `task-groom`.
**Это часть приведения проекта к канону.** Раскладку `docs/` целиком ведёт скилл **Это часть приведения проекта к канону.** Раскладку `docs/` целиком ведёт скилл
`av-dev:doc-canon`; он же зовёт этот сценарий на шаге «каталог задач», потому что `av-dev:doc-canon`; он же зовёт этот сценарий на шаге «каталог задач», потому что
@@ -77,7 +77,7 @@
**Место этому — груминг, а не отдельный заход.** Отмена цели значит **Место этому — груминг, а не отдельный заход.** Отмена цели значит
разбор всех её задач, а разбор задач и есть шаг 3 груминга разбор всех её задач, а разбор задач и есть шаг 3 груминга
(скилл `groom`, «что перестало быть важным»). Отменять на ходу, (скилл `task-groom`, «что перестало быть важным»). Отменять на ходу,
между делом, — верный способ закрыть скопом то, что стоило перевесить. между делом, — верный способ закрыть скопом то, что стоило перевесить.
## Что видит машина, а что человек ## Что видит машина, а что человек