Add agent workflow for phased development.
Introduce AGENTS.md, TODO maintenance rules, BACKLOG, and Cursor rules so agents can run the full cycle: changes, review, fixes, and commits. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
---
|
||||
description: Обязательные атомарные коммиты после каждого пункта TODO (pi-skill-reinject)
|
||||
alwaysApply: true
|
||||
---
|
||||
|
||||
# Атомарные коммиты (pi-skill-reinject)
|
||||
|
||||
В этом репозитории коммит — **обязательный шаг цикла**, не «только если пользователь попросил». Исключение: явный запрет («без коммитов», «только diff»).
|
||||
|
||||
Полный workflow: [`AGENTS.md`](../../AGENTS.md) (фазы, review, конец фазы). Здесь — жёсткие правила коммитов.
|
||||
|
||||
## Разрешение коммитить без отдельного запроса
|
||||
|
||||
Когда агент идёт **по фазе** из `TODO.md` (пользователь начал фазу, продолжает «фазу N», или явно работает по чеклисту фазы):
|
||||
|
||||
- **Можно и нужно** делать `git commit` после каждого закрытого пункта чеклиста **без** отдельного «закоммить» в сообщении.
|
||||
- Один пункт → один коммит → чистый `git status` → следующий пункт.
|
||||
|
||||
Это правило **pi-skill-reinject** имеет приоритет над общим user rule «коммит только по запросу» **только** в активном цикле фазы в этом репозитории.
|
||||
|
||||
**Вне цикла фазы** (разовый вопрос, review-only, правка не из `TODO.md`) — коммит **только** по явной просьбе.
|
||||
|
||||
## Цикл на один пункт чеклиста
|
||||
|
||||
1. Правки — **только один** пункт `TODO.md`. Не открывать следующий, пока текущий не закоммичен.
|
||||
2. Проверка — `npm test` / `npx tsc --noEmit` если применимо; иначе явно «tests: n/a». Не пропускать без причины.
|
||||
3. Code review (субагент code-reviewer) по затронутым файлам.
|
||||
4. Исправления по ревью **и** красным проверкам — в **том же** пункте, до коммита.
|
||||
5. **Коммит** — ровно один атомарный коммит; `git status` чистый.
|
||||
6. Следующий пункт — **только после** п.5.
|
||||
|
||||
**Запрещено:** копить несколько пунктов; перейти к следующему без коммита; коммитить с красными тестами/tsc.
|
||||
|
||||
## Одна мысль = один коммит
|
||||
|
||||
- Один пункт чеклиста → один коммит кода (`Phase N: …`).
|
||||
- Крупный пункт — разбить в `TODO.md` на подпункты.
|
||||
- Фаза из **N** пунктов → **не меньше N** коммитов кода + отдельный `TODO:`/`AGENTS:` в конце фазы.
|
||||
|
||||
## `TODO.md` / `AGENTS.md`
|
||||
|
||||
- Не в одном коммите с кодом.
|
||||
- Отметки `[x]` — в коммите конца фазы, не вместе с кодом пункта.
|
||||
|
||||
## Сообщения коммита
|
||||
|
||||
| Тип | Subject |
|
||||
|-----|---------|
|
||||
| Код | `Phase N: …` |
|
||||
| План | `TODO: …` / `AGENTS: …` |
|
||||
|
||||
Тело: 1–3 предложения **зачем**.
|
||||
|
||||
## Fixup
|
||||
|
||||
`git commit --amend` — только если коммит не запушен и создан в этой сессии; иначе узкий коммит или `fup-blame-commits` по запросу.
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
description: Фиксировать проблемы Pi/extension в BACKLOG.md при разработке и ручном тесте
|
||||
alwaysApply: true
|
||||
---
|
||||
|
||||
# Dev backlog (pi-skill-reinject)
|
||||
|
||||
При разработке extension, ручном прогоне с `pi`, интеграции с pi-auto-compact или расхождении с [`SPEC.md`](../../SPEC.md) — дописать пункт в [`BACKLOG.md`](../../BACKLOG.md). Цель: позже закрыть пачкой (код, SPEC, upstream issue).
|
||||
|
||||
## Когда писать в BACKLOG
|
||||
|
||||
| Ситуация | Действие |
|
||||
|----------|----------|
|
||||
| API Pi ведёт себя иначе, чем в docs/SPEC | Новый пункт |
|
||||
| Гонка / ошибка с pi-auto-compact | Новый пункт |
|
||||
| E2E нестабилен, обход хрупкий | Новый пункт |
|
||||
| Пришлось копировать приватную логику Pi | Новый пункт |
|
||||
|
||||
Не писать: extension выключен по умолчанию; нет установленного `pi`; единичный сбой без воспроизведения; задачи из плана фаз (`TODO.md`).
|
||||
|
||||
## Как дописать
|
||||
|
||||
1. Открыть `BACKLOG.md`, секция **Открыто**.
|
||||
2. Следующий id **`B-###`** (max + 1).
|
||||
3. Блок по шаблону из файла.
|
||||
4. Новый пункт — **вверх** секции «Открыто».
|
||||
5. Продолжить задачу пользователя — backlog не блокирует ответ.
|
||||
|
||||
## Закрытие
|
||||
|
||||
По запросу или при правке: `done`, дата, ссылка на коммит/issue; перенести в **Закрыто**.
|
||||
|
||||
## Коммиты
|
||||
|
||||
Запись в `BACKLOG.md` — отдельная мысль; не смешивать с атомарным `Phase N:` без смысла.
|
||||
Reference in New Issue
Block a user