feat: разворачивание комка plugin-dev — 7 навыков (роутер-реестр)

Эпик роутер-реестр, спека v2 §2, этап 1. Зонтик plugin-dev развёрнут в
7 карточек-навыков + 7 под-узлов #57a..#57g.

- 7 карточек plugin-dev__<навык>.contract.json (agent/command/hook/mcp/
  plugin-structure/plugin-settings/skill-development)
- nodes.yaml: узел #57 → #57a..#57g; keyword-триггеры на plugin-structure;
  ссылка L11 обновлена на plugin-dev:plugin-structure
- зонтик plugin-dev убран (карточка + узел)
- registry-load.test: 109 узлов / 101 active

Регрессия (без 5 pre-existing node:test файлов): 4361 passed, exit 0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Дмитрий
2026-06-18 23:05:06 +03:00
parent 5a7c5c255c
commit ded5372f4e
11 changed files with 299 additions and 24 deletions
@@ -1,12 +0,0 @@
{
"skill": "plugin-dev",
"kind": "external",
"needs": ["намерение разработать marketplace Claude-плагин"],
"produces": ["scaffold плагина (plugin.json, MCP, хуки, доки, публикация)"],
"constraints": ["8 sub-skills + 3 агента", "НЕ standalone-скилы (skill-creator)"],
"preview-form": "outline",
"defaults": ["plugin.json + структура компонентов"],
"key-decisions": ["состав компонентов плагина"],
"acceptance-criteria": ["плагин валиден и публикуем"],
"source": { "version": "n/a", "hash": "0000000000000000000000000000000000000000000000000000000000000000", "path": "" }
}
@@ -0,0 +1,29 @@
{
"skill": "plugin-dev:agent-development",
"kind": "external",
"needs": [
"намерение создать субагента плагина"
],
"produces": [
"субагент: frontmatter + when-to-use + системный промпт"
],
"constraints": [
"под-навык зонтика plugin-dev (разработка Claude-плагинов)",
"компоненты плагина, НЕ standalone-навыки (skill-creator)"
],
"preview-form": "outline",
"defaults": [
"структура агента и условия срабатывания"
],
"key-decisions": [
"scope и триггеры агента"
],
"acceptance-criteria": [
"агент оформлен по best-practices"
],
"source": {
"version": "n/a",
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
"path": ""
}
}
@@ -0,0 +1,29 @@
{
"skill": "plugin-dev:command-development",
"kind": "external",
"needs": [
"намерение создать слэш-команду плагина"
],
"produces": [
"слэш-команда: YAML-frontmatter + аргументы + bash"
],
"constraints": [
"под-навык зонтика plugin-dev (разработка Claude-плагинов)",
"компоненты плагина, НЕ standalone-навыки (skill-creator)"
],
"preview-form": "outline",
"defaults": [
"frontmatter и динамические аргументы"
],
"key-decisions": [
"аргументы и интерактивность команды"
],
"acceptance-criteria": [
"команда работает с аргументами"
],
"source": {
"version": "n/a",
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
"path": ""
}
}
@@ -0,0 +1,29 @@
{
"skill": "plugin-dev:hook-development",
"kind": "external",
"needs": [
"намерение создать хук плагина (PreToolUse/PostToolUse/...)"
],
"produces": [
"хук: событие + matcher + скрипт ${CLAUDE_PLUGIN_ROOT}"
],
"constraints": [
"под-навык зонтика plugin-dev (разработка Claude-плагинов)",
"компоненты плагина, НЕ standalone-навыки (skill-creator)"
],
"preview-form": "outline",
"defaults": [
"событие хука и matcher"
],
"key-decisions": [
"какое событие перехватывать"
],
"acceptance-criteria": [
"хук срабатывает и не ломает поток"
],
"source": {
"version": "n/a",
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
"path": ""
}
}
@@ -0,0 +1,29 @@
{
"skill": "plugin-dev:mcp-integration",
"kind": "external",
"needs": [
"намерение подключить MCP-сервер в плагин"
],
"produces": [
".mcp.json: stdio/SSE/HTTP-сервер в плагине"
],
"constraints": [
"под-навык зонтика plugin-dev (разработка Claude-плагинов)",
"компоненты плагина, НЕ standalone-навыки (skill-creator)"
],
"preview-form": "outline",
"defaults": [
"тип MCP-сервера и конфиг"
],
"key-decisions": [
"тип транспорта MCP"
],
"acceptance-criteria": [
"MCP-сервер подключён через плагин"
],
"source": {
"version": "n/a",
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
"path": ""
}
}
@@ -0,0 +1,29 @@
{
"skill": "plugin-dev:plugin-settings",
"kind": "external",
"needs": [
"намерение сделать поведение плагина настраиваемым"
],
"produces": [
".local.md настройки плагина (YAML-frontmatter + состояние)"
],
"constraints": [
"под-навык зонтика plugin-dev (разработка Claude-плагинов)",
"компоненты плагина, НЕ standalone-навыки (skill-creator)"
],
"preview-form": "outline",
"defaults": [
"per-project конфиг плагина"
],
"key-decisions": [
"какие настройки выносить"
],
"acceptance-criteria": [
"настройки читаются плагином"
],
"source": {
"version": "n/a",
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
"path": ""
}
}
@@ -0,0 +1,29 @@
{
"skill": "plugin-dev:plugin-structure",
"kind": "external",
"needs": [
"намерение создать или организовать плагин"
],
"produces": [
"структура плагина: plugin.json + раскладка компонентов"
],
"constraints": [
"под-навык зонтика plugin-dev (разработка Claude-плагинов)",
"компоненты плагина, НЕ standalone-навыки (skill-creator)"
],
"preview-form": "outline",
"defaults": [
"раскладка каталогов и манифест"
],
"key-decisions": [
"организация компонентов плагина"
],
"acceptance-criteria": [
"структура плагина валидна"
],
"source": {
"version": "n/a",
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
"path": ""
}
}
@@ -0,0 +1,29 @@
{
"skill": "plugin-dev:skill-development",
"kind": "external",
"needs": [
"намерение создать навык внутри плагина"
],
"produces": [
"навык плагина: SKILL.md + прогрессивное раскрытие"
],
"constraints": [
"под-навык зонтика plugin-dev (разработка Claude-плагинов)",
"компоненты плагина, НЕ standalone-навыки (skill-creator)"
],
"preview-form": "outline",
"defaults": [
"структура навыка и прогрессивное раскрытие"
],
"key-decisions": [
"scope и описание навыка"
],
"acceptance-criteria": [
"навык оформлен и триггерится"
],
"source": {
"version": "n/a",
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
"path": ""
}
}
+89 -5
View File
@@ -1245,14 +1245,70 @@ nodes:
attributes:
tooling_section: "§4.31 #56"
- id: "#57"
name: "plugin-dev"
slug: "plugin-dev"
- id: "#57a"
name: "agent-development"
slug: "plugin-dev:agent-development"
category: "off-phase"
subcategory: "authoring-tooling"
status: "active"
dormancy_reason: null
capabilities: "Плагин для разработки marketplace Claude-плагинов: 8 sub-skills (plugin.json, MCP-интеграция, хуки, документация, публикация) + 3 специализированных агента."
capabilities: "Субагент плагина: frontmatter + when-to-use + системный промпт."
triggers: []
boundaries: []
chain_membership: []
attributes:
tooling_section: "§4.32 #57"
- id: "#57b"
name: "command-development"
slug: "plugin-dev:command-development"
category: "off-phase"
subcategory: "authoring-tooling"
status: "active"
dormancy_reason: null
capabilities: "Слэш-команда плагина: YAML-frontmatter + аргументы + bash."
triggers: []
boundaries: []
chain_membership: []
attributes:
tooling_section: "§4.32 #57"
- id: "#57c"
name: "hook-development"
slug: "plugin-dev:hook-development"
category: "off-phase"
subcategory: "authoring-tooling"
status: "active"
dormancy_reason: null
capabilities: "Хук плагина: событие (PreToolUse/PostToolUse/...) + matcher + скрипт ${CLAUDE_PLUGIN_ROOT}."
triggers: []
boundaries: []
chain_membership: []
attributes:
tooling_section: "§4.32 #57"
- id: "#57d"
name: "mcp-integration"
slug: "plugin-dev:mcp-integration"
category: "off-phase"
subcategory: "authoring-tooling"
status: "active"
dormancy_reason: null
capabilities: "MCP-сервер в плагине: .mcp.json (stdio/SSE/HTTP)."
triggers: []
boundaries: []
chain_membership: []
attributes:
tooling_section: "§4.32 #57"
- id: "#57e"
name: "plugin-structure"
slug: "plugin-dev:plugin-structure"
category: "off-phase"
subcategory: "authoring-tooling"
status: "active"
dormancy_reason: null
capabilities: "Структура плагина: plugin.json + раскладка компонентов. Входная точка разработки Claude-плагина."
triggers:
- {keyword: "разработка claude-плагинов", weight: 1.0}
- {keyword: "плагин claude code", weight: 1.0}
@@ -1264,6 +1320,34 @@ nodes:
attributes:
tooling_section: "§4.32 #57"
- id: "#57f"
name: "plugin-settings"
slug: "plugin-dev:plugin-settings"
category: "off-phase"
subcategory: "authoring-tooling"
status: "active"
dormancy_reason: null
capabilities: "Настройки плагина: .local.md (YAML-frontmatter + состояние), per-project конфиг."
triggers: []
boundaries: []
chain_membership: []
attributes:
tooling_section: "§4.32 #57"
- id: "#57g"
name: "skill-development"
slug: "plugin-dev:skill-development"
category: "off-phase"
subcategory: "authoring-tooling"
status: "active"
dormancy_reason: null
capabilities: "Навык плагина: SKILL.md + прогрессивное раскрытие."
triggers: []
boundaries: []
chain_membership: []
attributes:
tooling_section: "§4.32 #57"
- id: "#58"
name: "hookify"
slug: "hookify"
@@ -2083,7 +2167,7 @@ chains:
sequence:
- "#56"
- "#58"
- "#57"
- "plugin-dev:plugin-structure"
L12:
name: "CLAUDE.md capture chain"
+2 -2
View File
@@ -111,8 +111,8 @@
| Комок | Статус | Коммит |
|---|---|---|
| claude-md-management (2) | ✅ DONE | e98ba1e (pushed) |
| superpowers (14) | ✅ DONE (не закоммичено) | — |
| plugin-dev (7) | ⬜ | |
| superpowers (14) | ✅ DONE | 5a7c5c2 (pushed) |
| plugin-dev (7) | ✅ DONE | этот коммит |
| adr-kit (2: adr, judge) | ⬜ | |
| hookify (12) | ⬜ | |
| product-management (8) | ⬜ | |