- Зачем:
- пилот нативного трекера на фиче mentee-path: спека в git как
источник истины, тонкий корневой issue, дочерние issues-постановки.
- Что:
- docs/agents/issue-tracker.md переписан с локального markdown на
GitHub Issues (gh CLI, правило тонкого корневого issue, архив
старых задач — в истории git, срез 0e312b3).
- triage-метки стали настоящими метками GitHub (созданы в репозитории),
AGENTS.md обновлён.
- Проверка:
- gh label list — пять канонических меток на месте.
64 lines
3.9 KiB
Markdown
64 lines
3.9 KiB
Markdown
# 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 #<map>` в
|
||
начале тела тикета. Метки: `wayfinder:<type>` (`research`/`prototype`/
|
||
`grilling`/`task`).
|
||
- **Блокировки**: нативные issue dependencies —
|
||
`gh api --method POST repos/<owner>/<repo>/issues/<child>/dependencies/blocked_by -F issue_id=<db-id блокера>`
|
||
(`<db-id>` — числовой database id: `gh api repos/<owner>/<repo>/issues/<n> --jq .id`,
|
||
не `#номер`). Fallback — строка `Blocked by: #<n>` в начале тела. Тикет
|
||
разблокирован, когда все блокеры закрыты.
|
||
- **Фронтир**: открытые дети карты минус заблокированные и назначенные; первый
|
||
в порядке карты.
|
||
- **Взять в работу**: `gh issue edit <n> --add-assignee @me`.
|
||
- **Закрыть**: комментарий с ответом, `gh issue close`, указатель на контекст —
|
||
в Decisions-so-far карты.
|
||
|
||
## Архив
|
||
|
||
До 2026-07-19 задачи велись markdown-файлами в `.scratch/<feature>/issues/`
|
||
(фичи `data-generator` и `generator-model-time-startup-history`, задачи 01–21).
|
||
Не мигрированы; доступны в истории git — срез `0e312b3`.
|