docs(agents): вести задачи в Gitea через tea
Хранилище задач переведено с локальных файлов в .scratch/ на Gitea Issues. Состояния triage стали метками Gitea. Оставшиеся английские заголовки и термины в документах для агентов переведены на русский. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
310cddf749
commit
e8bf134554
4 files changed
+62
-46
No files matched your search
@@ -1,47 +1,62 @@
|
||||
# Хранилище задач: локальные Markdown-файлы
|
||||
# Хранилище задач: Gitea
|
||||
|
||||
Задачи и спецификации этого репозитория хранятся в `.scratch/`.
|
||||
Задачи и спецификации этого репозитория хранятся в Gitea Issues на
|
||||
`git.dementev.space` (репозиторий `ddmitry/dotfiles`). Все операции — через
|
||||
CLI `tea`. Внутри клона `tea` сам находит репозиторий и учётную запись по
|
||||
`git remote`; если не нашёл, добавь `--repo ddmitry/dotfiles`.
|
||||
|
||||
## Структура
|
||||
GitVerse — только зеркало, задачи там не ведём.
|
||||
|
||||
- Одна возможность на каталог: `.scratch/<feature-slug>/`.
|
||||
- Спецификация: `.scratch/<feature-slug>/spec.md`.
|
||||
- Каждая задача хранится в отдельном файле:
|
||||
`.scratch/<feature-slug>/issues/<NN>-<slug>.md`.
|
||||
- Нумерация задач начинается с `01`.
|
||||
- Состояние triage записывается строкой `Status:` в начале файла.
|
||||
- Обсуждение дописывается в конец файла под заголовком `## Comments`.
|
||||
Заголовки, описания и комментарии задач пишутся по-русски.
|
||||
|
||||
## Жизненный цикл
|
||||
## Команды
|
||||
|
||||
- `.scratch/` указан в `.gitignore`: задачи живут только на этой машине и в
|
||||
Git не попадают.
|
||||
- Они эфемерны: после завершения работы каталог можно удалить.
|
||||
- Всё, что должно пережить задачу (решения, спецификации), до слияния
|
||||
переносится в `docs/` и коммитится.
|
||||
- **Создать задачу**: `tea issues create --title "..." --description-file -`
|
||||
с текстом через heredoc. Метки — `--labels "a,b"`.
|
||||
- **Прочитать задачу**: `tea issues <номер> --comments`.
|
||||
- **Список задач**: `tea issues list --state open --labels "..." --fields
|
||||
index,title,labels,assignees --output json`.
|
||||
- **Комментарий**: `tea comment <номер> "..."`.
|
||||
- **Метки**: `tea issues edit <номер> --add-labels "..."` /
|
||||
`--remove-labels "..."`. Если метки ещё нет в репозитории, создай её:
|
||||
`tea labels create --name "..." --color "#..."`.
|
||||
- **Закрыть**: сначала комментарий с причиной, затем `tea issues close <номер>`.
|
||||
|
||||
## PR как источник задач
|
||||
|
||||
**PR как источник запросов: нет.** _(Поставь `да`, если внешние PR в этом
|
||||
репозитории нужно разбирать как запросы на доработку; `/triage` читает этот
|
||||
флаг.)_
|
||||
|
||||
У задач и PR в Gitea общая нумерация: голый `#42` может оказаться и тем, и
|
||||
другим. Проверяй через `tea issues 42` или `tea pulls 42`.
|
||||
|
||||
## Публикация задачи
|
||||
|
||||
Когда навык просит опубликовать задачу, нужно создать файл внутри
|
||||
`.scratch/<feature-slug>/`, при необходимости создав каталог.
|
||||
Когда навык просит опубликовать задачу, нужно создать задачу в Gitea.
|
||||
|
||||
## Получение задачи
|
||||
|
||||
Нужно прочитать файл по переданному пути. Обычно пользователь указывает путь
|
||||
или номер задачи.
|
||||
Нужно выполнить `tea issues <номер> --comments`.
|
||||
|
||||
## Работа `/wayfinder`
|
||||
|
||||
Карта работы хранится отдельно от дочерних задач:
|
||||
Карта — одна задача, дочерние задачи — отдельные задачи Gitea.
|
||||
|
||||
- Карта: `.scratch/<effort>/map.md`.
|
||||
- Дочерняя задача: `.scratch/<effort>/issues/NN-<slug>.md`.
|
||||
- Строка `Type:` содержит тип: `research`, `prototype`, `grilling` или `task`.
|
||||
- Строка `Status:` содержит состояние `claimed` или `resolved`.
|
||||
- Зависимости перечисляются строкой `Blocked by: NN, NN`.
|
||||
- Задача свободна, если она открыта, не заблокирована и не занята.
|
||||
- Из нескольких свободных задач первой выбирается задача с меньшим номером.
|
||||
- При взятии задачи нужно установить `Status: claimed` и сохранить файл.
|
||||
- При завершении нужно добавить ответ под заголовком `## Answer`, установить
|
||||
`Status: resolved` и добавить краткий итог со ссылкой в раздел решений
|
||||
файла `map.md`.
|
||||
- **Карта**: задача с меткой `wayfinder:map`; в описании — разделы
|
||||
«Заметки», «Принятые решения» и «Неясности».
|
||||
- **Дочерняя задача**: первой строкой описания — `Часть #<карта>`; в
|
||||
описании карты — список дочерних задач. Метка типа: `wayfinder:<тип>`
|
||||
(`research`, `prototype`, `grilling` или `task`).
|
||||
- **Зависимости**: встроенные зависимости Gitea. Добавить блокирующую
|
||||
задачу:
|
||||
`tea api -X POST repos/ddmitry/dotfiles/issues/<дочерняя>/dependencies
|
||||
-d '{"owner":"ddmitry","repo":"dotfiles","index":<блокирующая>}'`.
|
||||
Посмотреть: `tea api repos/ddmitry/dotfiles/issues/<n>/dependencies`.
|
||||
Задача свободна от блокировок, когда все блокирующие задачи закрыты.
|
||||
- **Свободные задачи**: открытые дочерние задачи карты без открытых
|
||||
блокирующих и без исполнителя; первой берётся та, что раньше в списке карты.
|
||||
- **Взять задачу**: `tea issues edit <n> --add-assignees ddmitry` — первым
|
||||
действием сессии.
|
||||
- **Завершить**: комментарий с ответом, `tea issues close <n>`, затем краткий
|
||||
итог со ссылкой в раздел «Принятые решения» описания карты.
|
||||
Reference in new issue
Block a user