08b997848f
Document implemented status, pi -e installation, /skill-reinject usage, and coexistence guidance per SPEC §9.1 and §16.7. Co-authored-by: Cursor <cursoragent@cursor.com>
65 lines
3.6 KiB
Markdown
65 lines
3.6 KiB
Markdown
# pi-skill-reinject
|
||
|
||
Pi Coding Agent extension: отслеживает вызванные skills и повторно инжектит их после auto compaction.
|
||
|
||
**Статус:** реализовано (v1)
|
||
|
||
## Установка
|
||
|
||
```bash
|
||
# из клона репозитория
|
||
pi -e ./src/index.ts
|
||
|
||
# или абсолютный путь
|
||
pi -e ~/Documents/repos/pi-auto-reinjection/src/index.ts
|
||
```
|
||
|
||
Для постоянной установки укажите путь к `src/index.ts` в `~/.pi/agent/settings.json` → `extensions` (нужен весь каталог `src/`, не один файл). См. [Pi extensions](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/extensions.md).
|
||
|
||
По умолчанию extension **выключен**. Включение:
|
||
|
||
```text
|
||
/skill-reinject on # эта сессия
|
||
/skill-reinject global on # навсегда (~/.pi/agent/settings.json)
|
||
```
|
||
|
||
## Команда `/skill-reinject`
|
||
|
||
```text
|
||
/skill-reinject # статус (enabled, delivery, tracked, pending)
|
||
/skill-reinject on | off | reset # session override
|
||
/skill-reinject global on | off # глобальный default
|
||
/skill-reinject list | clear # tracked skills
|
||
/skill-reinject now # принудительный re-inject (debug)
|
||
/skill-reinject integration auto|defer|immediate|off
|
||
```
|
||
|
||
Алиасы: `/sr`, `/skills-reinject`. Footer status: `on·N` / `off·N`.
|
||
|
||
Полный синтаксис и настройки — [SPEC.md §7](./SPEC.md#7-команда-skill-reinject).
|
||
|
||
## Как это работает
|
||
|
||
Pi хранит в контексте только описания skills; полный `SKILL.md` теряется при compaction. Extension отслеживает вызванные skills (`/skill:name`, skill-блоки, `read` на `SKILL.md` при `trackReadPaths: true`) и после **auto** compaction повторно инжектит отсутствующие в kept window блоки — тем же форматом, что `/skill:name`.
|
||
|
||
## Совместимость с pi-auto-compact
|
||
|
||
Рассчитан на совместную работу с [@capyup/pi-auto-compact](https://github.com/capyup/pi-auto-compact). При обнаружении команды `auto-compact` re-inject идёт через `defer` + `before_agent_start`, чтобы не конкурировать с follow-up pi-auto-compact (см. [SPEC.md §16](./SPEC.md#16-совместимость-с-capyuppi-auto-compact)).
|
||
|
||
**Coexistence с Pi default auto-compaction:** оба механизма могут сработать в одной сессии. При использовании pi-auto-compact можно отключить встроенный compaction Pi (`"compaction.enabled": false` в settings) или оставить оба — skill-reinject отработает после каждого **auto** compaction. Extension не отключает чужой compaction; при первом обнаружении обоих механизмов показывает одноразовый hint.
|
||
|
||
## Разработка
|
||
|
||
```bash
|
||
npm run typecheck # tsc --noEmit
|
||
npm test # vitest
|
||
```
|
||
|
||
## Документация
|
||
|
||
- [SPEC.md](./SPEC.md) — полное ТЗ
|
||
- [Pi extensions](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/extensions.md)
|
||
- [Pi skills](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/skills.md)
|
||
- [Pi compaction](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/compaction.md)
|
||
- [pi-auto-compact](https://github.com/capyup/pi-auto-compact)
|