fix(install): gate confluence for every profile and dedup PROFILE selection
- Add 'confluence' (always-enabled, per README) to COMMON_BUNDLED so a default install (no PI_KIT_PROFILE / no tty) no longer silently strips it from settings.json. The allowlist now covers every skill under skills/. - Deduplicate PROFILES in profiles_from_text: skip a canonical name already present, so 'frontend,1' or 'backend backend' no longer causes a redundant 'npx skills add' call or a misleading 'Профили: frontend frontend'. - Ship the multi-profile refactor it builds on: merged profile sets, profile_skills()/add_word() helpers, README updates, and the pm-task-spec bundled skill. Validated: bash -n; functional checks for dedup and allowlist coverage.
This commit is contained in:
@@ -17,8 +17,8 @@ curl -fsSL https://git.codelab.vc/ai/pi-kit/raw/branch/stable/install.sh | bash
|
||||
```
|
||||
|
||||
Скрипт проверит `git` и Node.js (>= 20) — оба обязательны: git нужен для `pi install git:...`,
|
||||
Node для Pi. Затем поставит Pi (если нет), установит этот пакет, **спросит твой профиль**, поставит
|
||||
нужные скилы и **интерактивно настроит окружение** (`TRACKER_URL`, `CONFLUENCE_URL`,
|
||||
Node для Pi. Затем поставит Pi (если нет), установит этот пакет, **спросит один или несколько твоих профилей**,
|
||||
поставит нужные скилы (их наборы объединяются) и **интерактивно настроит окружение** (`TRACKER_URL`, `CONFLUENCE_URL`,
|
||||
`JIRA_TOKEN`, `CONFLUENCE_TOKEN`, `GITLAB_TOKEN`, ключ LLM-провайдера). Секреты вводятся скрыто и
|
||||
сохраняются в
|
||||
`~/.config/pi-kit/env.sh` (`chmod 600`), который подключается из твоего `~/.zshrc`/`~/.bashrc`.
|
||||
@@ -30,12 +30,16 @@ Pi провайдер-агностичен — модель/провайдера
|
||||
Пропустить интерактивную настройку окружения: `PI_KIT_SETUP_ENV=0`. Значения потом можно
|
||||
поменять прямо в `~/.config/pi-kit/env.sh` или перезапустив `./install.sh`.
|
||||
|
||||
Профиль можно задать заранее (для CI/неинтерактивной установки):
|
||||
Профили можно задать заранее (для CI/неинтерактивной установки) — через запятую:
|
||||
|
||||
```bash
|
||||
PI_KIT_PROFILE=backend curl -fsSL https://git.codelab.vc/ai/pi-kit/raw/branch/stable/install.sh | bash
|
||||
PI_KIT_PROFILE=backend,qa curl -fsSL https://git.codelab.vc/ai/pi-kit/raw/branch/stable/install.sh | bash
|
||||
```
|
||||
|
||||
Один профиль тоже подходит: `PI_KIT_PROFILE=backend`. Скилы выбранных профилей
|
||||
**объединяются** (дубли убираются), а `jira-workflow`/`repo-map`/`docs-map` и общие
|
||||
публичные скилы ставятся всегда.
|
||||
|
||||
### Профили и скилы
|
||||
|
||||
Общее для всех: команды `/bugfix /feature /review /rfc /kit-config /kit-doctor /kit-help`,
|
||||
@@ -54,7 +58,8 @@ guardrails, скиллы `jira-workflow`, `confluence`, `repo-map`, `docs-map`,
|
||||
сжатой постановки задачи до структурированной, пригодной для передачи в разработку)
|
||||
без языковых стандартов кода.
|
||||
|
||||
Сменить профиль позже: `PI_KIT_PROFILE=frontend ./install.sh` (или перезапусти установку).
|
||||
Сменить/добавить профиль позже: `PI_KIT_PROFILE=frontend,qa ./install.sh` (или перезапусти установку
|
||||
и выбери несколько). Уже установленные наборы скилов можно дополнить, указав нужные профили ещё раз.
|
||||
|
||||
Либо вручную (канал `stable` по умолчанию):
|
||||
|
||||
@@ -208,17 +213,19 @@ pi-kit/
|
||||
|
||||
### Профили и гейтинг скилов
|
||||
|
||||
`install.sh` спрашивает профиль (или берёт `PI_KIT_PROFILE`) и делает две вещи:
|
||||
`install.sh` спрашивает один или несколько профилей (или берёт `PI_KIT_PROFILE`) и делает две вещи:
|
||||
|
||||
1. **Гейтит наши скилы** — переписывает запись пакета в `~/.pi/agent/settings.json` в
|
||||
object-форму `{"source": "...", "skills": ["skills/go-standards", ...]}`, чтобы грузились
|
||||
только скилы профиля. Prompts и расширения не гейтятся (их ключи опущены → грузятся все).
|
||||
только скилы выбранных профилей. Prompts и расширения не гейтятся (их ключи опущены → грузятся все).
|
||||
2. **Ставит публичные скилы** через `npx skills add <repo> --skill <name> --global` в
|
||||
`~/.agents/skills/` (Pi читает эту папку). Чужой код в наш репо не вендорится.
|
||||
|
||||
Чтобы поменять маппинг профиль→скилы — правь блок `case "$PROFILE"` и `COMMON_PUBLIC_SKILLS`
|
||||
в `install.sh`. Языковой скилл добавляется как обычный (см. ниже) и подключается к нужному
|
||||
профилю в этом `case`. Профили: `frontend`, `backend`, `qa`, `mobile`, `pm`.
|
||||
Наборы скилов нескольких профилей объединяются (путь `frontend+qa` даст и `typescript`
|
||||
и `python` стандарты). Чтобы поменять маппинг профиль→скилы — правь функцию `profile_skills()`
|
||||
и `COMMON_PUBLIC_SKILLS` в `install.sh`. Языковой скилл добавляется как обычный (см. ниже)
|
||||
и подключается к нужному профилю в этой функции. Профили: `frontend`, `backend`, `qa`,
|
||||
`mobile`, `pm` — любые сочетаются между собой.
|
||||
|
||||
### Как добавить шаблон-команду
|
||||
|
||||
|
||||
Reference in New Issue
Block a user