# Issue tracker: GitHub Задачи этого репозитория живут в GitHub Issues. Все операции — через CLI `gh`; репозиторий `gh` определяет сам по `git remote`. - **Создать issue**: `gh issue create --title "..." --body "..."` (многострочное тело — heredoc'ом). - **Прочитать issue**: `gh issue view <номер> --comments`. - **Список**: `gh issue list --state open --json number,title,labels` с нужными фильтрами `--label` / `--state`. - **Комментарий**: `gh issue comment <номер> --body "..."`. - **Метки**: `gh issue edit <номер> --add-label "..."` / `--remove-label "..."`. - **Закрыть**: `gh issue close <номер> --comment "..."`. ## Спека — источник истины - Спецификация фичи — файл в `docs/specs/`, версионируется с кодом. - Корневой issue фичи — **тонкий**: ссылка на спеку + чек-лист дочерних issues (`- [ ] #NN`). Содержание спеки в issue не дублируется — истина одна, в git. - Дочерние issues — полноценные самодостаточные постановки: цель, критерии приёмки чекбоксами, границы («что трогать нельзя»), «сначала прочитать», команды проверки. - Итоговые резолюции и решения — в спеку/ADR тем же PR; issue — рабочая переписка, она не обязана переживать фичу. ## Когда скилл говорит «опубликовать в issue tracker» Создать GitHub issue. ## Когда скилл говорит «достать тикет» `gh issue view <номер> --comments`. ## PR как поверхность триажа **Нет** — одиночный учебный репозиторий, внешних PR не ждём. (Если включить — `/triage` начнёт гонять PR через те же метки и состояния командами `gh pr ...`.) ## Wayfinding-операции Используются `/wayfinder`. Карта — один issue, тикеты — дочерние issues. - **Карта**: issue с меткой `wayfinder:map` (Notes / Decisions-so-far / Fog в теле). - **Дочерний тикет**: sub-issue карты (`gh api` на endpoint sub-issues); если sub-issues недоступны — пункт task-list в теле карты + `Part of #` в начале тела тикета. Метки: `wayfinder:` (`research`/`prototype`/ `grilling`/`task`). - **Блокировки**: нативные issue dependencies — `gh api --method POST repos///issues//dependencies/blocked_by -F issue_id=` (`` — числовой database id: `gh api repos///issues/ --jq .id`, не `#номер`). Fallback — строка `Blocked by: #` в начале тела. Тикет разблокирован, когда все блокеры закрыты. - **Фронтир**: открытые дети карты минус заблокированные и назначенные; первый в порядке карты. - **Взять в работу**: `gh issue edit --add-assignee @me`. - **Закрыть**: комментарий с ответом, `gh issue close`, указатель на контекст — в Decisions-so-far карты. ## Архив До 2026-07-19 задачи велись markdown-файлами в `.scratch//issues/` (фичи `data-generator` и `generator-model-time-startup-history`, задачи 01–21). Не мигрированы; доступны в истории git — срез `0e312b3`.