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:` без смысла.
|
||||||
@@ -0,0 +1,126 @@
|
|||||||
|
# AGENTS.md — pi-skill-reinject
|
||||||
|
|
||||||
|
Инструкции для AI-агентов в репозитории **pi-auto-reinjection**: Pi Coding Agent extension (TypeScript), re-inject skills после auto compaction. План и чеклисты — в [`TODO.md`](./TODO.md). ТЗ — [`SPEC.md`](./SPEC.md).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Обзор
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|---|---|
|
||||||
|
| Продукт | Extension `skill-reinject` для [Pi Coding Agent](https://github.com/earendil-works/pi) |
|
||||||
|
| Цель | Отслеживать вызванные skills и повторно инжектить их после **auto** compaction |
|
||||||
|
| Статус | Спецификация готова; реализация — по фазам в `TODO.md` |
|
||||||
|
| Целевой API | Публичный `ExtensionAPI` Pi (`extensions.md`), без приватных internal imports |
|
||||||
|
| Совместимость | [@capyup/pi-auto-compact](https://github.com/capyup/pi-auto-compact) — режим `defer` по умолчанию (см. SPEC §16) |
|
||||||
|
|
||||||
|
Целевая структура кода (см. SPEC §9):
|
||||||
|
|
||||||
|
```
|
||||||
|
src/
|
||||||
|
├── index.ts # export default function(pi: ExtensionAPI)
|
||||||
|
├── state.ts
|
||||||
|
├── detect.ts
|
||||||
|
├── expand.ts
|
||||||
|
├── reinject.ts
|
||||||
|
├── auto-compact.ts
|
||||||
|
├── settings.ts
|
||||||
|
└── commands.ts
|
||||||
|
test/
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Workflow разработки
|
||||||
|
|
||||||
|
Работаем **по фазам из `TODO.md`**, пока пользователь не сменит приоритет. Триггеры: «работай по фазе», «фаза N», «продолжай фазу», «следующий пункт чеклиста».
|
||||||
|
|
||||||
|
**Коммиты в этом репозитории** — часть цикла разработки, а не опция «по просьбе пользователя»: после каждого пункта чеклиста обязателен отдельный коммит, даже если пользователь не написал «закоммить». Исключение — только явный запрет («без коммитов», «только diff»).
|
||||||
|
|
||||||
|
**Приоритет над общим user rule:** пока агент идёт **по фазе** из `TODO.md`, коммиты отдельных пунктов **разрешены и ожидаются без отдельного разрешения** в каждом сообщении. Вне активного цикла фазы (разовая задача, review-only) — коммит только по явной просьбе.
|
||||||
|
|
||||||
|
### Цикл на один пункт чеклиста внутри фазы
|
||||||
|
|
||||||
|
1. **Правки** — минимальный дифф под **один** пункт; смотреть соседний код и стиль репозитория. Не начинать следующий пункт, пока текущий не закоммичен.
|
||||||
|
2. **Проверка** — если для пункта есть автотесты (`test/`, `npm test`), прогнать до зелёного; иначе `npx tsc --noEmit` (или `npm run build`) и smoke по SPEC (импорт extension, `--help` команд Pi при наличии). Явно отметить «tests: n/a», если покрытия ещё нет. Не пропускать без причины.
|
||||||
|
3. **Code review** — запустить субагента **code-reviewer** (отдельный Task/review) по затронутым файлам; дождаться ответа.
|
||||||
|
4. **Исправления** — закрыть Critical из ревью **и** красное на тестах/tsc; Suggestions — по смыслу. После правок — повторный прогон. Всё — **в том же** пункте, до коммита.
|
||||||
|
5. **Коммит (обязательный шлюз)** — ровно **один** атомарный коммит на пункт. Проверить `git status` — рабочее дерево чистое.
|
||||||
|
6. **Только после чистого дерева** — следующий пункт той же фазы.
|
||||||
|
|
||||||
|
Запрещено: накапливать правки нескольких пунктов и коммитить «в конце фазы»; переходить к п.6 без п.5; коммитить с красными тестами/tsc; откладывать коммит «на потом».
|
||||||
|
|
||||||
|
### Конец фазы
|
||||||
|
|
||||||
|
- Функциональные проверки всей фазы (manual E2E по SPEC §12 — когда extension готов к прогону).
|
||||||
|
- Отдельный коммит **`TODO.md`** и **`AGENTS.md`**: отметить выполненные `[x]`, статус фаз, правки workflow. Допустимо **одним** коммитом вместе.
|
||||||
|
- По умолчанию — **остановиться** и позвать пользователя на просмотр перед следующей фазой; если пользователь просит «без пауз между фазами» — коммит кода + коммит TODO/AGENTS и сразу следующая фаза.
|
||||||
|
|
||||||
|
### Атомарные коммиты
|
||||||
|
|
||||||
|
Один коммит = **одна атомарная мысль**: изменение, которое можно описать одной фразой «зачем», откатить одним `git revert` и ревьюить отдельно.
|
||||||
|
|
||||||
|
| Правило | |
|
||||||
|
|---------|--|
|
||||||
|
| Граница | Один пункт чеклиста `TODO.md` → один коммит кода (если пункт слишком крупный — **разбить пункт** в `TODO.md` на подпункты). |
|
||||||
|
| Scope | Только файлы, нужные для этой мысли; без «заодно поправил соседнее». |
|
||||||
|
| Subject | `Phase N: <глагол> <что> — <зачем в двух словах>`. |
|
||||||
|
| Размер | Предпочитать узкие коммиты; несколько независимых правок в одном коммите — ошибка workflow. |
|
||||||
|
| Fixup после ревью | Доработки по замечаниям **того же** пункта — в **тот же** коммит (`git commit --amend`) **только** если коммит ещё не запушен и создан в этой сессии; иначе — отдельный узкий коммит или skill **fup-blame-commits** по запросу. |
|
||||||
|
|
||||||
|
### `TODO.md` и `AGENTS.md` во время работы
|
||||||
|
|
||||||
|
- Можно **обновлять** оба файла по ходу (чеклисты, статус фаз, уточнения workflow).
|
||||||
|
- **Нельзя** включать `TODO.md` или `AGENTS.md` в тот же коммит, что и код — только отдельный коммит (subject `TODO: …` и/или `AGENTS: …`; **можно один коммит на оба файла**).
|
||||||
|
- Отметку `[x]` в `TODO.md` для пункта — в коммите **конца фазы** (или отдельном `TODO:`), не смешивать с коммитом кода по этому пункту.
|
||||||
|
|
||||||
|
### Тесты
|
||||||
|
|
||||||
|
- Автотесты **не добавлять**, если пользователь не просил и пункт плана не требует.
|
||||||
|
- Когда тесты есть — они обязательны в шаге 2 цикла. Manual E2E с `pi` — по чеклисту SPEC §12, обычно в конце фазы или по явному пункту.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Git и коммиты
|
||||||
|
|
||||||
|
| Правило | |
|
||||||
|
|---------|--|
|
||||||
|
| Когда | После каждого пункта чеклиста в активной фазе: «правки → проверка → review → commit». |
|
||||||
|
| Сколько | Один коммит на пункт; фаза из N пунктов → не меньше N коммитов кода (+ отдельный `TODO:`/`AGENTS:` в конце фазы). |
|
||||||
|
| Subject | `Phase N: …` для кода; `TODO: …` / `AGENTS: …` для плана. |
|
||||||
|
| Тело | 1–3 предложения: **зачем**, не перечисление файлов. |
|
||||||
|
| Секреты | Не коммитить токены, `.env` с реальными ключами. |
|
||||||
|
| Force-push | Только если пользователь явно попросил; предупредить про переписанную историю. |
|
||||||
|
|
||||||
|
### Антипаттерны
|
||||||
|
|
||||||
|
- Один коммит на всю фазу или на несколько `[ ]` из чеклиста.
|
||||||
|
- WIP-коммиты (`wip`, `misc`, `fixes`) без одной мысли.
|
||||||
|
- Смешивать рефакторинг и фичу из разных пунктов плана в одном коммите.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Стиль кода
|
||||||
|
|
||||||
|
- TypeScript, минимальный scope; без лишней абстракции.
|
||||||
|
- Только публичный API Pi; при необходимости зеркалить логику Pi с комментарием «mirror agent-session» (SPEC §10).
|
||||||
|
- Комментарии — только для неочевидной бизнес-логики (compaction source, defer vs immediate, kept window).
|
||||||
|
- Сверяться с [`SPEC.md`](./SPEC.md) при любых архитектурных решениях.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## BACKLOG
|
||||||
|
|
||||||
|
Проблемы при разработке, ручном тесте с `pi`, интеграции с pi-auto-compact или неясностях API Pi — фиксировать в [`BACKLOG.md`](./BACKLOG.md). Правило: [`.cursor/rules/dev-backlog.mdc`](./.cursor/rules/dev-backlog.mdc).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Связанные файлы
|
||||||
|
|
||||||
|
| Файл | Назначение |
|
||||||
|
|------|------------|
|
||||||
|
| [`TODO.md`](./TODO.md) | План, фазы, чеклисты (ведение — правила в начале файла) |
|
||||||
|
| [`SPEC.md`](./SPEC.md) | Полное ТЗ |
|
||||||
|
| [`README.md`](./README.md) | Для людей |
|
||||||
|
| [`BACKLOG.md`](./BACKLOG.md) | Журнал открытых проблем runtime/интеграции |
|
||||||
|
| [`.cursor/rules/atomic-commits-workflow.mdc`](./.cursor/rules/atomic-commits-workflow.mdc) | Cursor: атомарные коммиты (`alwaysApply`) |
|
||||||
+50
@@ -0,0 +1,50 @@
|
|||||||
|
# BACKLOG — pi-skill-reinject
|
||||||
|
|
||||||
|
Журнал **открытых** ограничений и сбоев при разработке, ручном тесте с `pi`, интеграции с [pi-auto-compact](https://github.com/capyup/pi-auto-compact) или неясностях API Pi.
|
||||||
|
|
||||||
|
Не путать с [`TODO.md`](./TODO.md): там план разработки; здесь — наблюдения из runtime, которые потом закрывают пачкой (правка кода, документация, issue upstream Pi).
|
||||||
|
|
||||||
|
Правило для агентов: [`.cursor/rules/dev-backlog.mdc`](./.cursor/rules/dev-backlog.mdc).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Когда добавлять пункт
|
||||||
|
|
||||||
|
- Поведение Pi / extension API не совпало с [`SPEC.md`](./SPEC.md) или [документацией Pi](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/extensions.md).
|
||||||
|
- Ошибка или гонка при совместной работе с pi-auto-compact (`sendUserMessage`, `before_agent_start`, follow-up).
|
||||||
|
- Ручной E2E не воспроизводится стабильно; обходной путь есть, но хрупкий.
|
||||||
|
- Неясность в публичном API (события без `reason`, формат entries, settings merge).
|
||||||
|
- Пришлось дублировать приватную логику Pi — зафиксировать риск и желаемый upstream.
|
||||||
|
|
||||||
|
**Не добавлять:** ожидаемое «extension выключен по умолчанию»; отсутствие установленного `pi`; разовый сбой без воспроизведения; пункты из плана фаз (это `TODO.md`).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Формат пункта
|
||||||
|
|
||||||
|
Следующий свободный id: **`B-###`** (смотреть заголовки ниже, увеличивать номер).
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
### B-001 · open · pi-api · 2026-06-17
|
||||||
|
|
||||||
|
- **Сценарий:** что пытались сделать
|
||||||
|
- **Проблема:** одно предложение — в чём затык
|
||||||
|
- **Место:** `session_compact` / `before_agent_start` / pi-auto-compact / `src/…`
|
||||||
|
- **Факт:** текст ошибки, неожиданное поведение, расхождение с SPEC
|
||||||
|
- **Обход:** что сработало (или «нет»)
|
||||||
|
- **Предложение:** правка в extension / SPEC / issue в Pi / pi-auto-compact
|
||||||
|
```
|
||||||
|
|
||||||
|
При закрытии: статус `open` → `done`, дата закрытия, ссылка на коммит/issue; блок перенести в [Закрыто](#закрыто).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Открыто
|
||||||
|
|
||||||
|
_Новые пункты — ниже (следующий id: **B-001**)._
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Закрыто
|
||||||
|
|
||||||
|
_Пусто._
|
||||||
@@ -0,0 +1,101 @@
|
|||||||
|
# TODO: pi-skill-reinject
|
||||||
|
|
||||||
|
План реализации extension для Pi Coding Agent. ТЗ — [`SPEC.md`](./SPEC.md). Workflow агента — [`AGENTS.md`](./AGENTS.md).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Правила ведения `TODO.md`
|
||||||
|
|
||||||
|
### Роль файла
|
||||||
|
|
||||||
|
- **Единственный** источник фаз и чеклистов для цикла «работай по фазе».
|
||||||
|
- `AGENTS.md` — как исполнять пункты; `TODO.md` — **что** делать и в каком порядке.
|
||||||
|
- Не дублировать полное ТЗ из `SPEC.md`; в пунктах — ссылки на разделы SPEC при необходимости.
|
||||||
|
|
||||||
|
### Структура фазы
|
||||||
|
|
||||||
|
Каждая фаза — заголовок `### Фаза N — …` и чеклист `- [ ]` / `- [x]`.
|
||||||
|
|
||||||
|
| Элемент | Правило |
|
||||||
|
|---------|---------|
|
||||||
|
| Нумерация | `0`, `1`, `2`, … — монотонно; не переиспользовать номера |
|
||||||
|
| Пункт | Одна атомарная мысль = один коммит кода (см. AGENTS.md) |
|
||||||
|
| Крупный пункт | Разбить на подпункты `- [ ]` до размера «один коммит» |
|
||||||
|
| Статус фазы | В конце секции или в таблице в `AGENTS.md` при необходимости |
|
||||||
|
| Зависимости | Явно: «после фазы N», «блокируется …» |
|
||||||
|
|
||||||
|
### Формат пункта чеклиста
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
- [ ] **Краткое имя** — что сделать; зачем в одной фразе; ссылка на SPEC §X при нужде
|
||||||
|
```
|
||||||
|
|
||||||
|
Хорошо: «**state.ts** — load/save через `appendEntry`, dedupe skills by name (SPEC §6.1)».
|
||||||
|
|
||||||
|
Плохо: «сделать state» (неатомарно, непонятен scope коммита).
|
||||||
|
|
||||||
|
### Коммиты и отметки `[x]`
|
||||||
|
|
||||||
|
| Действие | Когда |
|
||||||
|
|----------|--------|
|
||||||
|
| Код по пункту | Коммит `Phase N: …` — **без** `TODO.md` в том же коммите |
|
||||||
|
| `[x]` на пункте | В коммите **конца фазы** `TODO: …` (или отдельном `TODO:`), не вместе с кодом пункта |
|
||||||
|
| Правки workflow | `TODO:` / `AGENTS:` — отдельный коммит; оба файла можно в одном |
|
||||||
|
| Черновик плана | Можно править `TODO.md` по ходу; финальные галочки — с концом фазы |
|
||||||
|
|
||||||
|
### Добавление и изменение плана
|
||||||
|
|
||||||
|
- Новая фаза — в конец раздела «Фазы реализации», не вставлять между завершёнными без причины.
|
||||||
|
- Отменённый пункт — `[x]` с пометкой «отменено» в тексте или удалить с записью в коммите `TODO:`.
|
||||||
|
- Перенос между фазами — обновить оба файла (`TODO.md` + при необходимости таблицу статуса в `AGENTS.md`).
|
||||||
|
|
||||||
|
### Чего не писать в `TODO.md`
|
||||||
|
|
||||||
|
- Длинные спецификации (они в `SPEC.md`).
|
||||||
|
- Журнал багов при ручном тесте — в [`BACKLOG.md`](./BACKLOG.md).
|
||||||
|
- Секреты, пути к личным `~/.pi/…` с токенами.
|
||||||
|
|
||||||
|
### Старт работы агентом
|
||||||
|
|
||||||
|
1. Прочитать `AGENTS.md` и актуальную фазу в этом файле.
|
||||||
|
2. Найти первый `- [ ]` в запрошенной фазе (или текущей незавершённой).
|
||||||
|
3. Выполнить цикл: правки → проверка → review → исправления → коммит → следующий пункт.
|
||||||
|
4. В конце фазы — коммит `TODO:`/`AGENTS:`, пауза для пользователя (если не сказано иначе).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Контекст
|
||||||
|
|
||||||
|
| Сейчас | Цель |
|
||||||
|
|--------|------|
|
||||||
|
| Только `SPEC.md` + `README.md` | Рабочий extension `src/index.ts` + тесты |
|
||||||
|
| Default off | `/skill-reinject on` / `global on` |
|
||||||
|
| Нет re-inject после compaction | Auto compaction → re-inject tracked skills (SPEC §5–6) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Решения (зафиксировано в SPEC)
|
||||||
|
|
||||||
|
Ключевые решения не дублировать здесь — см. [`SPEC.md`](./SPEC.md) §5–8, §16. При расхождении при реализации — сначала обновить SPEC или зафиксировать в «Решения» ниже.
|
||||||
|
|
||||||
|
| Тема | Где |
|
||||||
|
|------|-----|
|
||||||
|
| Триггер re-inject | `session_compact`, auto only (§5.2, §8) |
|
||||||
|
| Доставка с pi-auto-compact | `defer` + `before_agent_start` (§6.5, §16) |
|
||||||
|
| Персистенция | `pi.appendEntry("skill-reinject:state", …)` (§6.1) |
|
||||||
|
| Команды | `/skill-reinject` (§7) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Фазы реализации
|
||||||
|
|
||||||
|
_Пункты чеклиста добавляет владелец репозитория. Агент не заполняет фазы без запроса._
|
||||||
|
|
||||||
|
<!-- Пример структуры (удалить при первом заполнении):
|
||||||
|
|
||||||
|
### Фаза 0 — Каркас
|
||||||
|
|
||||||
|
- [ ] **package.json** — manifest, devDependencies Pi
|
||||||
|
- [ ] **src/index.ts** — пустой extension, регистрация на session_start
|
||||||
|
|
||||||
|
-->
|
||||||
Reference in New Issue
Block a user