meta(wiki): ingest concepts/hermes-skills-rollout-design in claude-skills
This commit is contained in:
141
.wiki/concepts/hermes-skills-rollout-design.md
Normal file
141
.wiki/concepts/hermes-skills-rollout-design.md
Normal file
@@ -0,0 +1,141 @@
|
||||
---
|
||||
tags:
|
||||
- hermes
|
||||
- skills
|
||||
- conversion
|
||||
- deployment
|
||||
- factory
|
||||
sources:
|
||||
- 'https://hermes-agent.nousresearch.com/docs/user-guide/features/skills'
|
||||
- 'https://hermes-agent.nousresearch.com/docs/guides/use-mcp-with-hermes'
|
||||
- 'https://www.glukhov.org/ai-systems/hermes/authoring-hermes-skill/'
|
||||
- >-
|
||||
https://github.com/NousResearch/hermes-agent/blob/main/skills/research/llm-wiki/SKILL.md
|
||||
source_brainstorm: .meeting-room/.archive/2026-05-06-hermes-skills-rollout.md
|
||||
title: hermes-skills-rollout-design
|
||||
type: concept
|
||||
ingested_at: '2026-05-06T20:21:13.349Z'
|
||||
ingested_by: OpeItcLoc03@DESKTOP-NSEF0UK
|
||||
source_project: .meeting-room
|
||||
---
|
||||
# Hermes Skills Rollout — Design
|
||||
|
||||
Раскатить `claude-skills` на Hermes Agent (Nous Research) как **частный фабричный комплект**, через converter + pre-built `dist-hermes/` + recursive installer-skill. Не tap, не Hub, не публикация.
|
||||
|
||||
## Context
|
||||
|
||||
Hermes — агент Nous Research (модель `glm-5.1`, локальная), формально совместим с `agentskills.io`. Цель: те же 21 наших скила, что работают в Claude Code, доступны и Hermes-агенту на фабричных Linux-машинах. Установка — через `skill_manage(action='create')` в `~/.hermes/skills/<category>/<skill>/`.
|
||||
|
||||
## Design tenet: независимость
|
||||
|
||||
Мы не зависим от Hermes built-in скилов. Где у нас и у Hermes есть аналог по функции (например `research/llm-wiki`), ставим **наш**. Hermes built-in остаётся, но наша schema, наш темп развития — суверенны. Override через `skill_manage` precedence.
|
||||
|
||||
Исключение — Hermes-нативные **тулы** (не скилы): `skills_list()`, `cronjob`, `execute_code`, `native-mcp`. Это инфраструктура, используем напрямую.
|
||||
|
||||
## Hermes' inventory (relevant findings)
|
||||
|
||||
- **`research/llm-wiki`** — встроен (Karpathy три-слой). Schema: `SCHEMA.md` (vs наш `.wiki/CLAUDE.md`), секции `entities/concepts/comparisons/queries` (vs наш `entities/concepts/packages/sources`). `.tasks/` НЕ трогает. Не drop-in replacement — другая schema → ставим наш через override.
|
||||
- **`mcp/native-mcp`** — встроенный MCP-клиент. Внешние сервера через `~/.hermes/config.yaml > mcp_servers.<name>` (stdio/HTTP, env-vars, auto-discovery, `/reload-mcp`).
|
||||
- **`skills_list()`** — встроенный progressive disclosure (Level 0). Делает наш `find-skills` лишним.
|
||||
- **`cronjob`** tool встроен → через `using-projects-meta` вешаем синк фабричных проектов на расписание.
|
||||
- Hermes на Linux (`/opt/data/projects`), модель `glm-5.1` (Nous, дешёвая) → caveman-экономия токенов мотива не имеет.
|
||||
|
||||
## Audit (factory-relevance × Hermes-side fit)
|
||||
|
||||
| Skill | Решение | Reasoning |
|
||||
|---|---|---|
|
||||
| `pulling-before-work` | ✅ MVP | универсально, нет Hermes-аналога |
|
||||
| `using-markitdown` | ✅ MVP | через `execute_code` |
|
||||
| `active-platform` | ✅ MVP | shell-идиома (Hermes на Linux) |
|
||||
| `project-discipline` | ✅ MVP | workflow-правила |
|
||||
| `setup-tasks` / `using-tasks` | ✅ adapt | Hermes' llm-wiki `.tasks/` не покрывает |
|
||||
| `setup-wiki` / `using-wiki` | ✅ adapt | наша schema, override Hermes built-in |
|
||||
| `setup-projects-meta` (Hermes-flavour) | ✅ adapt-mandatory | thin wrapper: бинарь и `auth.toml` уже общие в `~/projects/.common/lib/projects-meta-mcp/` и `~/.config/projects-mcp/auth.toml` → только yaml-edit + `/reload-mcp` |
|
||||
| `using-projects-meta` | ✅ adapt-mandatory | тулы auto-injected; политика та же; cron-синк фабричных проектов потом |
|
||||
| `setup-context7` (Hermes-flavour) | ✅ adapt-mandatory | yaml-edit паттерн, аналогично projects-meta |
|
||||
| `using-context7` | ✅ adapt-mandatory | политика та же |
|
||||
| `project-bootstrap` | ⚠️ adapt | orchestrator — адаптируется последним |
|
||||
| `caveman`×5 | ❌ skip | Hermes на дешёвой модели, мотив пропадает |
|
||||
| `setup-interns` / `using-interns` | ❌ skip | Hermes сам — «cheap intern» |
|
||||
| `find-skills` | ❌ skip | Hermes имеет `skills_list()` |
|
||||
|
||||
**MVP locked: 13 скилов** (4 универсальных + 2 tasks + 2 projects-meta + 2 wiki + 2 context7 + 1 bootstrap). **Skip: 8** (caveman×5 + interns×2 + find-skills).
|
||||
|
||||
## Architecture
|
||||
|
||||
### Источник истины + конвертер + pre-built dist
|
||||
|
||||
```
|
||||
claude-skills/
|
||||
├── skills/ ← source-of-truth (Claude-формат, без изменений)
|
||||
├── dist/ ← .skill архивы для Claude (есть)
|
||||
├── dist-hermes/ ← pre-converted Hermes-tree (committed, NEW)
|
||||
│ ├── productivity/caveman/SKILL.md ← (нет — в SKIPPED.md)
|
||||
│ ├── software-development/pulling-before-work/SKILL.md
|
||||
│ ├── software-development/active-platform/SKILL.md
|
||||
│ ├── ...
|
||||
│ ├── meta/claude-skills-installer/SKILL.md ← bootstrap installer
|
||||
│ └── SKIPPED.md ← skip-log с причинами
|
||||
├── hermes/
|
||||
│ ├── mapping.yaml ← skill→category, replace-rules, skip-list, mode (NEW)
|
||||
│ └── skills/<name>/SKILL.md ← `mode: manual` overrides (Hermes-flavour setups)
|
||||
├── scripts/
|
||||
│ ├── build.sh / build.ps1 (есть)
|
||||
│ ├── install.sh (есть)
|
||||
│ └── build-hermes.{sh,py} (NEW — конвертер)
|
||||
```
|
||||
|
||||
### Установка на Hermes-машине (recursive bootstrap)
|
||||
|
||||
```
|
||||
git clone <claude-skills> # private Gitea remote, на /opt/data/projects/
|
||||
# Один раз:
|
||||
hermes → skill_manage(action='create', from='dist-hermes/meta/claude-skills-installer/SKILL.md')
|
||||
# Дальше:
|
||||
hermes → trigger «обнови claude-skills» → installer-скил итерирует по dist-hermes/<cat>/<name>/, вызывает skill_manage per файл
|
||||
```
|
||||
|
||||
Никакой conversion-логики на стороне Hermes. Никакого Python-окружения. Только `skill_manage` петля.
|
||||
|
||||
### Категория-маппинг (черновик)
|
||||
|
||||
- `pulling-before-work`, `project-discipline`, `project-bootstrap`, `active-platform` → `software-development`
|
||||
- `setup-tasks`, `using-tasks` → `productivity`
|
||||
- `using-markitdown` → `productivity` (или `research`)
|
||||
- `setup-projects-meta`, `using-projects-meta`, `setup-context7`, `using-context7` → `mcp`
|
||||
- `setup-wiki`, `using-wiki` → `research`
|
||||
|
||||
## Decisions log
|
||||
|
||||
- **Q1.** Maintenance model → ongoing dual-target (конвертер + маппинг, регенерим при каждом релизе claude-skills). Anti-drift, видимость Claude-измов, reuse под другие агенты.
|
||||
- **Q2.** Distribution → НЕ tap-репо, НЕ install-script. **Pre-built `dist-hermes/` (committed) + recursive Hermes-side installer-скил.** Конвертация у нас, установка на Hermes — глупая петля по `skill_manage`.
|
||||
- **Q3.** Hub-публикация → out of scope (частные фабричные скилы).
|
||||
- **Q4.** Форма installer'а → installer-как-Hermes-скил (recursive bootstrap). Один раз ручная регистрация installer'а, дальше «обнови claude-skills» работает сам.
|
||||
- **Q5.** caveman → skip (модель дешёвая, мотив теряется). wiki-fork → порти́руем наши (independence). context7 → mandatory adapt. projects-meta → mandatory adapt thin (бинарь общий).
|
||||
- **Q6.** 🔴 не портируется → `mode: skip` в `mapping.yaml` + коммитимый `dist-hermes/SKIPPED.md` с причиной per skill. Stub-скилы не пишем. Silent отвергнут.
|
||||
- **Q7.** Версионирование → per-skill semver mirror из claude-skills фронтматтера (`1.0.0` default если нет). Lock-step с upstream. Bump по `project-discipline` Rule 3.
|
||||
- **Q8.** Layout → `claude-skills/hermes/{mapping.yaml,skills/}` + `scripts/build-hermes` + `dist-hermes/{<cat>/,meta/,SKIPPED.md}`.
|
||||
|
||||
## Security carry-forward
|
||||
|
||||
При имплементации — учитывать ЛОКАЛЬНЫЕ pre-existing уроки из claude-skills (актуально для Hermes-flavour `setup-projects-meta`):
|
||||
|
||||
- **Extraheader-pattern** для git clone с auth: `git -c http.extraheader="Authorization: token $T" clone <url>` (per-invocation, НЕ persist в `.git/config`). Никаких `https://USER:TOKEN@host/...` URL — git персистит креды.
|
||||
- **POSIX-absolute paths** (`~/projects/.common/...`), не `<project-root>/.common/...` (cwd-relative). Урок из `[setup-interns-fix-paths]` / `[using-projects-meta-fix-paths]`.
|
||||
- **Version bump** на каждый edit per `project-discipline` Rule 3 (PATCH/MINOR/MAJOR).
|
||||
|
||||
## Out of scope
|
||||
|
||||
- CI auto-rebuild `dist-hermes/` (отдельная deferred-таска `hermes-converter-ci`, не блокирует MVP).
|
||||
- Распространение через Hermes Hub (частные скилы, public out).
|
||||
- Cross-fabric distribution через приватный Gitea-tap (если когда-нибудь — отдельный спайк).
|
||||
|
||||
## Связанные таски
|
||||
|
||||
- `hermes-converter-mvp` (claude-skills) — infra + 4 universal как proof
|
||||
- `hermes-flavour-mcp-setups` (claude-skills) — Hermes-version `setup-projects-meta` + `setup-context7` (yaml-edit)
|
||||
- `hermes-installer-skill` (claude-skills) — recursive bootstrap loop
|
||||
- `hermes-mvp-coverage` (claude-skills) — extend на остальные 9 MVP-скилов, smoke-test
|
||||
- `hermes-converter-ci` (claude-skills, deferred) — auto-rebuild на push to master
|
||||
- `tasks-close-normalize-body` (common, discipline pre-req)
|
||||
- `using-tasks-close-coverage-gate` (claude-skills, discipline pre-req)
|
||||
Reference in New Issue
Block a user