feat(registry): токенизация needs/produces — группа tools/MCP, ЭТАП 2b ЗАВЕРШЁН (роутер-реестр)

Phase 2b группа C (финал): 51 атомарный инструмент (MCP-серверы + линтеры/
тулинг) переведены на токены словаря. Словарь +98, всего 265 токенов, v0.6.0.

ИТОГ ЭТАПА 2b: ВСЕ 153 контракта needs/produces на токенах словаря.
- замок словаря проходит на полном наборе (0 unknown) — готовность к 2d;
- граф ожил: A8-цепочка, superpowers, knowledge-work, кросс-плагинные мосты
  (write-spec->writing-plans, frontend-design->design-handoff).

Тест: финальный замок-тест всего реестра (153 контракта + рёбра графа).
Регрессия 4373 passed, exit 0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Дмитрий
2026-06-19 10:27:39 +03:00
parent 88fc55b4a5
commit 4dee49e4a1
53 changed files with 1869 additions and 358 deletions
+24 -7
View File
@@ -1,12 +1,29 @@
{
"skill": "gitleaks",
"kind": "external",
"needs": ["git diff или история репозитория"],
"produces": ["находки утечек секретов (ключи/токены/пароли/DSN)"],
"constraints": ["сканирует секреты в diff/истории через lefthook pre-commit/pre-push", "НЕ SAST-уязвимости кода (Semgrep)"],
"needs": [
"git-diff-or-history"
],
"produces": [
"secret-leak-findings"
],
"constraints": [
"сканирует секреты в diff/истории через lefthook pre-commit/pre-push",
"НЕ SAST-уязвимости кода (Semgrep)"
],
"preview-form": "none",
"defaults": ["protect --staged на pre-commit; полная история на pre-push"],
"key-decisions": ["реальный секрет vs тестовая фикстура (false-positive)"],
"acceptance-criteria": ["0 утечек секретов в diff/истории"],
"source": { "version": "n/a", "hash": "0000000000000000000000000000000000000000000000000000000000000000", "path": "" }
"defaults": [
"protect --staged на pre-commit; полная история на pre-push"
],
"key-decisions": [
"реальный секрет vs тестовая фикстура (false-positive)"
],
"acceptance-criteria": [
"0 утечек секретов в diff/истории"
],
"source": {
"version": "n/a",
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
"path": ""
}
}