feat(registry): +16 chains L1-L16 + chain_membership на 83 узлах (task 9)
Заменил pilot chains (L1 brainstorming-skill / L8 TDD-skill) на полные 16 цепочек из routing-off-phase.md §4 v1.6: L1 feature discovery & implementation L2 system orientation L3 as-is ↔ to-be process L4 diagram rendering L5 architecture triangle L6 security layered L7 integration development L8 runtime debug (Sentry+Redis+systematic-debug) L9 project management L10 LLM feature L11 Claude infra extension L12 CLAUDE.md capture L13 finance chain L14 backend-quality chain L15 security go-live chain L16 marketing chain chain_membership обновлён на каждом участвующем узле (sorted). Pilot L1/L8 переопределены под routing-off-phase: #19 Superpowers больше не в L1/L8; #18 Pest перенесён в L13. Task 9 закрывает Phase B плана (Task 8+9). Task 10 - render check. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+164
-51
@@ -30,7 +30,7 @@ nodes:
|
||||
- {keyword: "commits", weight: 1.0}
|
||||
- {keyword: "открытые вопросы", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
chain_membership: ["L9"]
|
||||
attributes:
|
||||
tooling_section: "§2.4 #3"
|
||||
|
||||
@@ -110,7 +110,7 @@ nodes:
|
||||
- {keyword: "секреты в diff", weight: 1.0}
|
||||
- {keyword: "pre-commit hook", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
chain_membership: ["L15"]
|
||||
attributes:
|
||||
tooling_section: "§2.4 #8"
|
||||
|
||||
@@ -145,7 +145,7 @@ nodes:
|
||||
- {keyword: "roster auto-detect", weight: 1.0}
|
||||
boundaries:
|
||||
- {pair: "#1", relation: "replaces"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L7", "L13"]
|
||||
attributes:
|
||||
tooling_section: "§3.5 #10"
|
||||
install: "composer require laravel/boost --dev"
|
||||
@@ -177,7 +177,7 @@ nodes:
|
||||
- {keyword: "статанализ php", weight: 1.0}
|
||||
- {keyword: "типы", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
chain_membership: ["L14"]
|
||||
attributes:
|
||||
tooling_section: "§3.5 #12"
|
||||
install: "composer stan"
|
||||
@@ -274,7 +274,7 @@ nodes:
|
||||
boundaries:
|
||||
- {adr: "ADR-011", role: "hard-floor source"}
|
||||
- {pair: "#30", relation: "paired stack"}
|
||||
chain_membership: ["L1", "L8"]
|
||||
chain_membership: []
|
||||
attributes:
|
||||
tooling_section: "§3.3 #19"
|
||||
install: "marketplace plugin, enabled in ~/.claude/settings.json"
|
||||
@@ -292,7 +292,7 @@ nodes:
|
||||
- {keyword: "тест", weight: 1.0}
|
||||
- {file_pattern: "tests/**/*.php", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: ["L8"]
|
||||
chain_membership: ["L13"]
|
||||
attributes:
|
||||
tooling_section: "§3.2 #18"
|
||||
install: "composer require pestphp/pest --dev"
|
||||
@@ -402,7 +402,7 @@ nodes:
|
||||
- {keyword: "security static analysis", weight: 1.0}
|
||||
boundaries:
|
||||
- {relation: "связка binary+mcp"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L6", "L15"]
|
||||
attributes:
|
||||
tooling_section: "§5.1 #25"
|
||||
install: "npm run sast"
|
||||
@@ -531,7 +531,7 @@ nodes:
|
||||
- {keyword: "обязательный канал", weight: 1.0}
|
||||
boundaries:
|
||||
- {relation: "CLAUDE.md §5 п.10 + PSR_v1 R10.1"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L12"]
|
||||
attributes:
|
||||
tooling_section: "§4.7 #33"
|
||||
install: "enabledPlugins.claude-md-management@claude-plugins-official в ~/.claude/settings.json"
|
||||
@@ -546,7 +546,7 @@ nodes:
|
||||
triggers:
|
||||
- {keyword: "отладка production runtime errors", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
chain_membership: ["L8", "L13"]
|
||||
attributes:
|
||||
tooling_section: "§4.8 #34"
|
||||
|
||||
@@ -563,7 +563,7 @@ nodes:
|
||||
- {keyword: "pest-race", weight: 1.0}
|
||||
boundaries:
|
||||
- {relation: "read-only"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L8", "L13"]
|
||||
attributes:
|
||||
tooling_section: "§4.9 #35"
|
||||
|
||||
@@ -580,7 +580,7 @@ nodes:
|
||||
- {keyword: "enforcement", weight: 1.0}
|
||||
boundaries:
|
||||
- {relation: "adr-judge lefthook job 9"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L4", "L5"]
|
||||
attributes:
|
||||
tooling_section: "§4.11 #36"
|
||||
install: "claude plugin install adr-kit@rvdbreemen-adr-kit"
|
||||
@@ -596,7 +596,7 @@ nodes:
|
||||
- {keyword: "c4", weight: 1.0}
|
||||
- {keyword: "architecture-диаграммы", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
chain_membership: ["L4"]
|
||||
attributes:
|
||||
tooling_section: "§4.12 #37"
|
||||
install: "vendored в .claude/skills/mermaid/"
|
||||
@@ -611,7 +611,7 @@ nodes:
|
||||
triggers:
|
||||
- {keyword: "справочник архитектурных паттернов", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
chain_membership: ["L5"]
|
||||
attributes:
|
||||
tooling_section: "§4.13 #38"
|
||||
install: "claude plugin install architecture-patterns@claude-skills"
|
||||
@@ -628,7 +628,7 @@ nodes:
|
||||
- {keyword: "diff", weight: 1.0}
|
||||
- {keyword: "supply-chain", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
chain_membership: ["L6", "L15"]
|
||||
attributes:
|
||||
tooling_section: "§4.14 #39"
|
||||
install: "enabledPlugins subsets из trailofbits/skills"
|
||||
@@ -644,7 +644,7 @@ nodes:
|
||||
- {keyword: "inline-блокировка уязвимых паттернов", weight: 1.0}
|
||||
boundaries:
|
||||
- {relation: "блокирующий PreToolUse (sys.exit 2)"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L6"]
|
||||
attributes:
|
||||
tooling_section: "§4.15 #40"
|
||||
install: "claude plugin install security-guidance@claude-plugins-official"
|
||||
@@ -660,7 +660,7 @@ nodes:
|
||||
- {keyword: "prd эпик issue код", weight: 1.0}
|
||||
- {keyword: "dev-проекты", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
chain_membership: ["L9"]
|
||||
attributes:
|
||||
tooling_section: "§4.16 #41"
|
||||
install: "vendored в .claude/skills/ccpm/"
|
||||
@@ -678,7 +678,7 @@ nodes:
|
||||
- {keyword: "метрики", weight: 1.0}
|
||||
- {keyword: "продуктовые церемонии", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
chain_membership: ["L9"]
|
||||
attributes:
|
||||
tooling_section: "§4.17 #42"
|
||||
install: "claude plugin install product-management@knowledge-work-plugins"
|
||||
@@ -695,7 +695,7 @@ nodes:
|
||||
- {keyword: "границы слоёв", weight: 1.0}
|
||||
boundaries:
|
||||
- {relation: "lefthook job 10"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L5", "L14"]
|
||||
attributes:
|
||||
tooling_section: "§4.18 #43"
|
||||
install: "composer require --dev deptrac/deptrac"
|
||||
@@ -759,7 +759,7 @@ nodes:
|
||||
- {keyword: "introspection openapi/rest-спек", weight: 1.0}
|
||||
boundaries:
|
||||
- {relation: "read-only"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L7"]
|
||||
attributes:
|
||||
tooling_section: "§4.22 #47"
|
||||
install: "npm install @ivotoby/openapi-mcp-server (в .mcp.json)"
|
||||
@@ -776,7 +776,7 @@ nodes:
|
||||
- {keyword: "eval", weight: 1.0}
|
||||
boundaries:
|
||||
- {relation: "только вручную/CI, никогда в хук"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L10"]
|
||||
attributes:
|
||||
tooling_section: "§4.23 #48"
|
||||
install: "npm install --save-dev promptfoo"
|
||||
@@ -791,7 +791,7 @@ nodes:
|
||||
triggers:
|
||||
- {keyword: "классический ml-воркфлоу", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
chain_membership: ["L10"]
|
||||
attributes:
|
||||
tooling_section: "§4.24 #49"
|
||||
install: "vendored в .claude/skills/data-scientist/"
|
||||
@@ -820,7 +820,7 @@ nodes:
|
||||
triggers:
|
||||
- {keyword: "документирование/оптимизация бизнес-процессов", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
chain_membership: ["L4"]
|
||||
attributes:
|
||||
tooling_section: "§4.26 #51"
|
||||
install: "claude plugin install operations@knowledge-work-plugins"
|
||||
@@ -837,7 +837,7 @@ nodes:
|
||||
- {keyword: "bpmn 2.0", weight: 1.0}
|
||||
boundaries:
|
||||
- {relation: "self-authored project skill"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L3", "L4"]
|
||||
attributes:
|
||||
tooling_section: "§4.27 #52"
|
||||
|
||||
@@ -853,7 +853,7 @@ nodes:
|
||||
- {keyword: "discovery из кода", weight: 1.0}
|
||||
boundaries:
|
||||
- {relation: "self-authored project skill; ADR-009 граница с #55"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L3"]
|
||||
attributes:
|
||||
tooling_section: "§4.28 #53"
|
||||
|
||||
@@ -884,7 +884,7 @@ nodes:
|
||||
- {keyword: "feature system режим", weight: 1.0}
|
||||
boundaries:
|
||||
- {adr: "ADR-009", role: "граница с #53 process-analysis: discovery-interview = интервью человека; process-analysis = discovery из кода"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L1", "L2"]
|
||||
attributes:
|
||||
tooling_section: "§4.30 #55"
|
||||
|
||||
@@ -899,7 +899,7 @@ nodes:
|
||||
- {keyword: "создание standalone-скилов", weight: 1.0}
|
||||
- {keyword: "eval", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
chain_membership: ["L11"]
|
||||
attributes:
|
||||
tooling_section: "§4.31 #56"
|
||||
|
||||
@@ -913,7 +913,7 @@ nodes:
|
||||
triggers:
|
||||
- {keyword: "разработка claude-плагинов", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
chain_membership: ["L11"]
|
||||
attributes:
|
||||
tooling_section: "§4.32 #57"
|
||||
|
||||
@@ -928,7 +928,7 @@ nodes:
|
||||
- {keyword: "генерация хуков (только по явному /hookify)", weight: 1.0}
|
||||
boundaries:
|
||||
- {adr: "ADR-010", role: "HK1 pre-check коллизии с существующими хуками перед генерацией"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L11"]
|
||||
attributes:
|
||||
tooling_section: "§4.33 #58"
|
||||
|
||||
@@ -996,7 +996,7 @@ nodes:
|
||||
- {keyword: "дрейф reconcile", weight: 1.0}
|
||||
boundaries:
|
||||
- {adr: "ADR-012", role: "граница с process-*/D3/ru-tax; аудит кода биллинга, не налогов и не процесса"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L13"]
|
||||
attributes:
|
||||
tooling_section: "§4.37 #62"
|
||||
|
||||
@@ -1015,7 +1015,7 @@ nodes:
|
||||
- {keyword: "выгрузка бухгалтеру", weight: 1.0}
|
||||
boundaries:
|
||||
- {adr: "ADR-012", role: "закрывает РФ-gap US-GAAP-плагина #61; ≠ billing-audit #62 (корректность кода), ≠ D1/D2"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L13"]
|
||||
attributes:
|
||||
tooling_section: "§4.38 #63"
|
||||
|
||||
@@ -1032,7 +1032,7 @@ nodes:
|
||||
- {keyword: "удаление мёртвого кода", weight: 1.0}
|
||||
boundaries:
|
||||
- {adr: "ADR-013", role: "BT1 vs Pint (трансформация vs форматирование); BT2 vs Larastan (комплементарны); BT3 vs deptrac"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L14"]
|
||||
attributes:
|
||||
tooling_section: "§4.39 #64"
|
||||
install: "composer require rector/rector --dev"
|
||||
@@ -1048,7 +1048,7 @@ nodes:
|
||||
- {keyword: "метрики качества/сложности/архитектуры php-кода", weight: 1.0}
|
||||
boundaries:
|
||||
- {adr: "ADR-013", role: "BT4 vs Pint/Larastan; уникум — оси complexity + architecture"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L14"]
|
||||
attributes:
|
||||
tooling_section: "§4.40 #65"
|
||||
install: "composer require nunomaduro/phpinsights --dev"
|
||||
@@ -1100,7 +1100,7 @@ nodes:
|
||||
- {keyword: "xss", weight: 1.0}
|
||||
boundaries:
|
||||
- {adr: "ADR-014", role: "IS1 ≠ Semgrep #25 (динамика vs статика); IS2 ≠ Nuclei #69 (глубина vs широта)"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L15"]
|
||||
attributes:
|
||||
tooling_section: "§4.43 #68"
|
||||
|
||||
@@ -1115,7 +1115,7 @@ nodes:
|
||||
- {keyword: "известные уязвимости/экспозиция/слабый tls снаружи", weight: 1.0}
|
||||
boundaries:
|
||||
- {adr: "ADR-014", role: "IS2 ≠ ZAP #68 (широта vs глубина — комплементарны)"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L15"]
|
||||
attributes:
|
||||
tooling_section: "§4.44 #69"
|
||||
|
||||
@@ -1131,7 +1131,7 @@ nodes:
|
||||
- {keyword: ".env/config/заголовки/cookie/secrets/deps", weight: 1.0}
|
||||
boundaries:
|
||||
- {adr: "ADR-014", role: "IS3 ≠ Larastan #12/Semgrep #25; заменил Enlightn (abandoned/L13)"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L15"]
|
||||
attributes:
|
||||
tooling_section: "§4.45 #70"
|
||||
|
||||
@@ -1146,7 +1146,7 @@ nodes:
|
||||
- {keyword: "аудит пдн / соответствие 152-фз", weight: 1.0}
|
||||
boundaries:
|
||||
- {adr: "ADR-014", role: "IS4 ≠ pg_anonymizer #29 (аудит vs инструмент маскирования); IS5 ≠ D2 (техника vs юридическое оформление)"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L15"]
|
||||
attributes:
|
||||
tooling_section: "§4.46 #71"
|
||||
|
||||
@@ -1163,7 +1163,7 @@ nodes:
|
||||
- {keyword: "что защищать первым", weight: 1.0}
|
||||
boundaries:
|
||||
- {adr: "ADR-014", role: "IS6 ≠ Trail of Bits #39 (портал+STRIDE+going-public vs generic deep code-audit)"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L15"]
|
||||
attributes:
|
||||
tooling_section: "§4.47 #72"
|
||||
|
||||
@@ -1179,7 +1179,7 @@ nodes:
|
||||
- {keyword: "go/no-go", weight: 1.0}
|
||||
boundaries:
|
||||
- {adr: "ADR-014", role: "IS7 ≠ audit-portal (только безопасность + go-live-вердикт vs полный 14-фазный аудит)"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L15"]
|
||||
attributes:
|
||||
tooling_section: "§4.48 #73"
|
||||
|
||||
@@ -1199,7 +1199,7 @@ nodes:
|
||||
- {keyword: "performance-report", weight: 1.0}
|
||||
boundaries:
|
||||
- {adr: "ADR-015", role: "MKT1 vs C2/C3; MKT2 vs product-management #42; MKT3 vs marketingskills #75 (решатель, не материал)"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L16"]
|
||||
attributes:
|
||||
tooling_section: "§4.49 #74"
|
||||
install: "claude plugin install marketing@knowledge-work-plugins"
|
||||
@@ -1260,7 +1260,7 @@ nodes:
|
||||
- {keyword: "маркетинг 152-фз согласия на рассылки", weight: 1.0}
|
||||
boundaries:
|
||||
- {adr: "ADR-015", role: "MKT9 — 152-ФЗ cross-ref #71; закрывает РФ-специфику маркетинга"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L16"]
|
||||
attributes:
|
||||
tooling_section: "§4.52 #77"
|
||||
|
||||
@@ -1280,7 +1280,7 @@ nodes:
|
||||
- {keyword: "поведение", weight: 1.0}
|
||||
boundaries:
|
||||
- {adr: "ADR-015", role: "MKT8 READ-ONLY; активация при живом лендинге (Б-1)"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L16"]
|
||||
attributes:
|
||||
tooling_section: "§4.53 #78"
|
||||
|
||||
@@ -1296,7 +1296,7 @@ nodes:
|
||||
- {keyword: "частотность запросов рф", weight: 1.0}
|
||||
boundaries:
|
||||
- {adr: "ADR-015", role: "MKT8 — Direct-мутации НЕ активированы; только Wordstat-модуль (5 read-only tools)"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L16"]
|
||||
attributes:
|
||||
tooling_section: "§4.54 #79"
|
||||
|
||||
@@ -1313,7 +1313,7 @@ nodes:
|
||||
- {keyword: "получение аналитики канала", weight: 1.0}
|
||||
boundaries:
|
||||
- {adr: "ADR-015", role: "MKT8 — SESSION_STRING только .env; выделенный аккаунт"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L16"]
|
||||
attributes:
|
||||
tooling_section: "§4.55 #80"
|
||||
|
||||
@@ -1329,7 +1329,7 @@ nodes:
|
||||
- {keyword: "контент-календарь", weight: 1.0}
|
||||
boundaries:
|
||||
- {adr: "ADR-015", role: "MKT7 AGPL self-host без дистрибуции; покрывает VK-постинг"}
|
||||
chain_membership: []
|
||||
chain_membership: ["L16"]
|
||||
attributes:
|
||||
tooling_section: "§4.56 #81"
|
||||
|
||||
@@ -1368,20 +1368,133 @@ nodes:
|
||||
|
||||
chains:
|
||||
L1:
|
||||
name: "Brainstorming chain"
|
||||
name: "feature discovery & implementation chain"
|
||||
sequence:
|
||||
- "#55"
|
||||
- "superpowers:brainstorming"
|
||||
- "superpowers:writing-plans"
|
||||
- "superpowers:executing-plans"
|
||||
- "superpowers:subagent-driven-development"
|
||||
triggers:
|
||||
- {classification: "feature"}
|
||||
- {classification: "planning"}
|
||||
|
||||
L8:
|
||||
name: "TDD chain"
|
||||
L2:
|
||||
name: "system orientation chain"
|
||||
sequence:
|
||||
- "superpowers:test-driven-development"
|
||||
- "#18"
|
||||
- "#55"
|
||||
- "audit-portal"
|
||||
|
||||
L3:
|
||||
name: "as-is ↔ to-be process chain"
|
||||
sequence:
|
||||
- "#53"
|
||||
- "#52"
|
||||
|
||||
L4:
|
||||
name: "diagram rendering chain"
|
||||
sequence:
|
||||
- "#36"
|
||||
- "#37"
|
||||
- "#51"
|
||||
- "#52"
|
||||
|
||||
L5:
|
||||
name: "architecture triangle chain"
|
||||
sequence:
|
||||
- "#36"
|
||||
- "#38"
|
||||
- "#43"
|
||||
|
||||
L6:
|
||||
name: "security layered chain"
|
||||
sequence:
|
||||
- "#40"
|
||||
- "#25"
|
||||
- "#39"
|
||||
- "/security-review"
|
||||
|
||||
L7:
|
||||
name: "integration development chain"
|
||||
sequence:
|
||||
- "#47"
|
||||
- "api-docs"
|
||||
- "#10"
|
||||
|
||||
L8:
|
||||
name: "runtime debug chain"
|
||||
sequence:
|
||||
- "superpowers:systematic-debugging"
|
||||
- "#34"
|
||||
- "#35"
|
||||
triggers:
|
||||
- {classification: "bugfix"}
|
||||
- {keyword: "tdd"}
|
||||
- {keyword: "runtime bug"}
|
||||
|
||||
L9:
|
||||
name: "project management chain"
|
||||
sequence:
|
||||
- "#41"
|
||||
- "#42"
|
||||
- "#3"
|
||||
|
||||
L10:
|
||||
name: "LLM feature chain"
|
||||
sequence:
|
||||
- "#48"
|
||||
- "#49"
|
||||
- "claude-api"
|
||||
|
||||
L11:
|
||||
name: "Claude infra extension chain"
|
||||
sequence:
|
||||
- "#56"
|
||||
- "#58"
|
||||
- "#57"
|
||||
|
||||
L12:
|
||||
name: "CLAUDE.md capture chain"
|
||||
sequence:
|
||||
- "#33"
|
||||
- "claude-md-management:revise-claude-md"
|
||||
|
||||
L13:
|
||||
name: "finance chain"
|
||||
sequence:
|
||||
- "#62"
|
||||
- "#18"
|
||||
- "#10"
|
||||
- "#34"
|
||||
- "#35"
|
||||
- "#63"
|
||||
|
||||
L14:
|
||||
name: "backend-quality chain"
|
||||
sequence:
|
||||
- "#64"
|
||||
- "#65"
|
||||
- "#12"
|
||||
- "#43"
|
||||
|
||||
L15:
|
||||
name: "security go-live chain"
|
||||
sequence:
|
||||
- "#73"
|
||||
- "#8"
|
||||
- "#25"
|
||||
- "#70"
|
||||
- "#39"
|
||||
- "#71"
|
||||
- "#72"
|
||||
- "#69"
|
||||
- "#68"
|
||||
|
||||
L16:
|
||||
name: "marketing chain"
|
||||
sequence:
|
||||
- "superpowers:brainstorming"
|
||||
- "#74"
|
||||
- "#77"
|
||||
- "#78"
|
||||
- "#79"
|
||||
- "#80"
|
||||
- "#81"
|
||||
|
||||
@@ -56,8 +56,9 @@ describe('registry-load', () => {
|
||||
|
||||
it('findChainsByNode returns chain membership', () => {
|
||||
const r = loadRegistry();
|
||||
const tddChains = findChainsByNode(r, 'superpowers:test-driven-development');
|
||||
expect(tddChains.map(c => c.chainId)).toContain('L8');
|
||||
// L8 = runtime debug chain: systematic-debugging + Sentry (#34) + Redis (#35)
|
||||
const sentryChains = findChainsByNode(r, '#34');
|
||||
expect(sentryChains.map(c => c.chainId)).toContain('L8');
|
||||
});
|
||||
|
||||
it('caches across calls in same process', () => {
|
||||
|
||||
Reference in New Issue
Block a user