feat: catalog init и подсказка при нестянутых сабмодулях
- skills list / catalog list распознают неинициализированные сабмодули: жёлтое предупреждение, строка «не инициализирован», в итоге — «Стянуть: harness catalog init» - новый action catalog init: стягивает сабмодули на зафиксированных коммитах, идемпотентен - catalog update теперь работает из свежего клона: сначала init, потом --remote - skills install подсказывает про catalog init, если источники не стянуты - русское склонение чисел (plural): 1 скилл / 2 скилла / 5 скиллов - README: раздел «Свежий клон», правило 10 в «Правилах вывода списков»
This commit is contained in:
@@ -25,7 +25,7 @@ dev/harness/
|
||||
| `skills` | скиллы из каталога | `list`, `installed`, `install`, `remove` |
|
||||
| `agents` | агенты (только OpenCode) | `list`, `install`, `remove` |
|
||||
| `mcp` | MCP-серверы Hermes | `list`, `add`, `rm` |
|
||||
| `catalog` | внешние репозитории каталога | `list`, `update` |
|
||||
| `catalog` | внешние репозитории каталога | `list`, `init`, `update` |
|
||||
| `hermes` | сам Hermes | `config`, `restart`, `update` |
|
||||
| `opencode` | сам OpenCode | `install`, `restart` |
|
||||
|
||||
@@ -80,6 +80,7 @@ dev/harness/
|
||||
7. **Итог** — `Итого: N <единица>, установлено M`, ниже dim-строками — куда ставится.
|
||||
8. **Только русский.** Никаких `Available` / `Installed` вперемешку с русским.
|
||||
9. **Порядок отметок** = порядок целей из `--target` / `--scope`.
|
||||
10. **Числа — со склонением** через `plural()`: 1 скилл, 2 скилла, 5 скиллов.
|
||||
|
||||
Правила продублированы комментарием в `scripts/harness` над `render_listing()`.
|
||||
|
||||
@@ -196,10 +197,38 @@ dev/harness/
|
||||
## `catalog` — внешние репозитории
|
||||
|
||||
```bash
|
||||
./scripts/harness catalog list # источники, содержимое, sha, признак «сдвинут»
|
||||
./scripts/harness catalog update # git submodule update --remote / git pull для клонов
|
||||
./scripts/harness catalog list # источники, sha, признак «сдвинут»
|
||||
./scripts/harness catalog init # стянуть submodule'ы на зафиксированных коммитах
|
||||
./scripts/harness catalog update # подтянуть свежие коммиты upstream (потом закоммитить)
|
||||
```
|
||||
|
||||
### Свежий клон
|
||||
|
||||
Submodule'ы **не** тянутся при обычном `git clone` — каталоги `catalog/*/` окажутся
|
||||
пустыми. `skills list` это распознаёт и подсказывает, что делать:
|
||||
|
||||
```
|
||||
СКИЛЛЫ — доступно к установке
|
||||
Каталог: /path/to/catalog
|
||||
✓ — установлено, · — нет
|
||||
⚠ submodule'ы не стянуты: jakubkrehel-skills
|
||||
|
||||
├─ jakubkrehel-skills не инициализирован
|
||||
|
||||
Итого: 0 скиллов, установлено 0
|
||||
Стянуть: harness catalog init
|
||||
```
|
||||
|
||||
Дальше — `harness catalog init`. Либо сразу клонировать с сабмодулями:
|
||||
|
||||
```bash
|
||||
git clone --recurse-submodules git@git.itphx.loc:eka/harness.git
|
||||
```
|
||||
|
||||
`catalog init` идемпотентен: если всё на месте, просто сообщит об этом.
|
||||
`catalog update`, в отличие от него, двигает коммиты на актуальные upstream —
|
||||
сначала стягивает недостающие, потом обновляет.
|
||||
|
||||
## `hermes` / `opencode` — сам агент
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user