Files
pi-auto-reinject/README.md
T
grayhook e3873d765d Phase 14: document requireRegistered and --skill reinject paths — README
Explain default loose disk fallback for CLI --skill skills and opt-in strict requireRegistered mode.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-17 17:38:48 +07:00

87 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`.
## Skills via `--skill` and discovery paths
| Источник skill | Трекинг | Re-inject после compact |
|----------------|---------|-------------------------|
| Discovery (`~/.pi/agent/skills`, `.pi/skills`) | Да | По имени в resourceLoader |
| CLI `--skill /path/to/SKILL.md` | Да (`slash` / skill-блок) | Да, если `SKILL.md` ещё на диске по `tracked.filePath` |
| `--resume` без повторного `--skill` | Восстанавливается из state entry / rescan | Да при `requireRegistered: false` (default) |
По умолчанию `skillReinject.requireRegistered`**`false`**: tracked skill re-injectится с диска, даже если `resourceLoader` его не знает (типично для `--skill` вне discovery paths). Уведомление: `re-injected "<name>" from disk`.
Строгий режим — только skills из resourceLoader:
```json
{
"skillReinject": {
"requireRegistered": true
}
}
```
Полезно при `--no-skills` или осознанном отключении skill через `pi config`, когда re-inject с диска нежелателен.
## Совместимость с 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)