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` по запросу.
|
||||
Reference in New Issue
Block a user