diff --git a/skills/session-handoff/SKILL.md b/skills/session-handoff/SKILL.md index 836aca0..6a86ef6 100644 --- a/skills/session-handoff/SKILL.md +++ b/skills/session-handoff/SKILL.md @@ -121,7 +121,7 @@ Forward-looking, не timeline: handoff = связка новых вещей к **Триггер:** ритуал на session-end фразе; на substantive commit'е — только handoff-write, ритуал НЕ гонять (mid-session коммит ≠ конец сессии, иначе спам предложений). -**Headless (pi):** pi-extension `session-close-ritual` (источник: `.common/lib/pi-extensions/session-close-ritual.ts`, деплой `~/.pi/agent/extensions/`) инжектит «прогони ритуал» один раз за сессию на `agent_end` в print-режиме (`pi -p`), с дедуп-гардом и opt-in (та же trigger-строка + `.tasks/` + git). Почему `agent_end`, а не `agent_settled`: settle = «no follow-up left», процесс в teardown — followUp уже не обработается (проверено live); `agent_end` срабатывает сразу после рана, пока followUps ещё доставляются. Интерактив — фразовый триггер (ниже), не инжекция. +**Headless (pi):** pi-extension `session-close-ritual` (источник: `~/projects/pi-extensions/extensions/session-close-ritual.ts` — репо `OpeItcLoc03/pi-extensions`, деплой `just install` в клоне → `~/.pi/agent/extensions/`) инжектит «прогони ритуал» один раз за сессию на `agent_end` в print-режиме (`pi -p`), с дедуп-гардом и opt-in (та же trigger-строка + `.tasks/` + git). Почему `agent_end`, а не `agent_settled`: settle = «no follow-up left», процесс в teardown — followUp уже не обработается (проверено live); `agent_end` срабатывает сразу после рана, пока followUps ещё доставляются. Интерактив — фразовый триггер (ниже), не инжекция. ## Failure modes diff --git a/skills/session-inbox-monitor/SKILL.md b/skills/session-inbox-monitor/SKILL.md index d48d529..f9a422d 100644 --- a/skills/session-inbox-monitor/SKILL.md +++ b/skills/session-inbox-monitor/SKILL.md @@ -138,8 +138,9 @@ other projects' inboxes (vitya's rule: an agent may only read its own directory's inbox). Installed globally so *every* pi session has the capability, but each session only ever touches its own project's inbox. -- **Source of truth:** `.common/lib/pi-extensions/inbox-monitor.ts` (Node - built-ins only, no npm deps). Deploy: copy to +- **Source of truth:** `~/projects/pi-extensions/extensions/inbox-monitor.ts` + (репо `OpeItcLoc03/pi-extensions`, Gitea — дом pi-расширений). Deploy: + `just install` в клоне репо — копирует с затираанием в `~/.pi/agent/extensions/inbox-monitor.ts` (global → every pi, every directory), hot-reload with `/reload`. Test: `node --experimental-strip-types .common/lib/pi-extensions/inbox-monitor.test.mjs` diff --git a/skills/vision-subagent/SKILL.md b/skills/vision-subagent/SKILL.md index 0a599c3..d2a4f70 100644 --- a/skills/vision-subagent/SKILL.md +++ b/skills/vision-subagent/SKILL.md @@ -56,3 +56,11 @@ describe_image: 2. файл `~/.pi/vision-model.json` — `{ "model": "routerai/minimax-m3" }` Авто-выбора нет — если модель не задана, `describe_image` вернёт ошибку с подсказкой. + +## Реализация тула + +Тул `describe_image` — pi-расширение: +`~/projects/pi-extensions/extensions/vision-subagent.ts` (репо +`OpeItcLoc03/pi-extensions`, дом pi-расширений). Правки — в клоне репо → +`commit + push` → `just install` (затирает home-копию). Конфиг-example: +`~/projects/pi-extensions/config/vision-model.json.example`.