feat(install): profile-based skill gating + public skills
- prompt for profile (frontend/backend/qa/mobile) via /dev/tty (works under curl|bash); PI_KIT_PROFILE env fallback
- gate bundled skills per profile by rewriting the pi-kit entry in settings.json to object-form {source, skills:[...]}; prompts/extensions stay ungated
- install common public skills for everyone (grill-me, grill-with-docs, code-review, diagnosing-bugs from mattpocock/skills) and profile-specific (frontend-design from anthropics/skills) via npx skills add --global
- README: profiles table + gating mechanism for maintainers
Verified: gating logic (string->object, idempotent, other packages preserved), live backend-profile load via RPC (ts excluded, prompts intact), npx skills add --global lands in ~/.agents/skills without cwd pollution, all 4 common skills exist in mattpocock/skills (diagnose is 'diagnosing-bugs').
This commit is contained in:
41
README.md
41
README.md
@@ -16,11 +16,33 @@ guardrails и скиллы со знанием того, где у нас код
|
||||
curl -fsSL https://git.codelab.vc/ai/pi-kit/-/raw/main/install.sh | bash
|
||||
```
|
||||
|
||||
Скрипт проверит Node.js (>= 20), поставит Pi (если нет), установит этот пакет и подскажет,
|
||||
какие переменные окружения нужны (ключ вашего LLM-провайдера, `TRACKER_URL`, `JIRA_TOKEN`).
|
||||
Скрипт проверит Node.js (>= 20), поставит Pi (если нет), установит этот пакет, **спросит
|
||||
твой профиль**, поставит нужные скилы и подскажет, какие переменные окружения нужны
|
||||
(ключ вашего LLM-провайдера, `TRACKER_URL`, `JIRA_TOKEN`).
|
||||
Pi провайдер-агностичен — модель/провайдера пакет не навязывает, каждый выбирает свой
|
||||
(Anthropic, OpenAI, OpenRouter, …).
|
||||
|
||||
Профиль можно задать заранее (для CI/неинтерактивной установки):
|
||||
|
||||
```bash
|
||||
PI_KIT_PROFILE=backend curl -fsSL https://git.codelab.vc/ai/pi-kit/-/raw/main/install.sh | bash
|
||||
```
|
||||
|
||||
### Профили и скилы
|
||||
|
||||
Общее для всех: команды `/bugfix /feature /review /rfc /kit-config`, guardrails, скилы
|
||||
`jira-workflow`, `repo-map`, `docs-map`, и публичные `grill-me`, `grill-with-docs`,
|
||||
`code-review`, `diagnosing-bugs`. Дополнительно по профилю:
|
||||
|
||||
| Профиль | Языковые стандарты | Доп. публичные скилы |
|
||||
|---|---|---|
|
||||
| `frontend` | typescript | frontend-design |
|
||||
| `backend` | go, rust, python | — |
|
||||
| `qa` | python, typescript | — |
|
||||
| `mobile` | — (TODO: kotlin/swift) | — |
|
||||
|
||||
Сменить профиль позже: `PI_KIT_PROFILE=frontend ./install.sh` (или перезапусти установку).
|
||||
|
||||
Либо вручную:
|
||||
|
||||
```bash
|
||||
@@ -125,6 +147,21 @@ pi-kit/
|
||||
3. **Никаких секретов и URL в тексте** — только ссылки на корпоративный контекст сессии и
|
||||
переменные окружения.
|
||||
|
||||
### Профили и гейтинг скилов
|
||||
|
||||
`install.sh` спрашивает профиль (или берёт `PI_KIT_PROFILE`) и делает две вещи:
|
||||
|
||||
1. **Гейтит наши скилы** — переписывает запись пакета в `~/.pi/agent/settings.json` в
|
||||
object-форму `{"source": "...", "skills": ["skills/go-standards", ...]}`, чтобы грузились
|
||||
только скилы профиля. Prompts и расширения не гейтятся (их ключи опущены → грузятся все).
|
||||
2. **Ставит публичные скилы** через `npx skills add <repo> --skill <name> --global` в
|
||||
`~/.agents/skills/` (Pi читает эту папку). Чужой код в наш репо не вендорится.
|
||||
|
||||
Чтобы поменять маппинг профиль→скилы — правь блок `case "$PROFILE"` и `COMMON_PUBLIC_SKILLS`
|
||||
в `install.sh`. Языковой скилл добавляется как обычный (см. ниже) и подключается к нужному
|
||||
профилю в этом `case`. Профили: `frontend`, `backend`, `qa`, `mobile` (последний пока без
|
||||
языковых стандартов — TODO kotlin/swift).
|
||||
|
||||
### Как добавить шаблон-команду
|
||||
|
||||
1. Создай `prompts/<name>.md` — имя файла станет командой `/<name>`.
|
||||
|
||||
Reference in New Issue
Block a user