[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6J1KNENC157AA5ESVSMP25B":3,"skill-same:01M6J1KNENC157AA5ESVSMP25B":84},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":26,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":49,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":55,"ownerDescription":56,"updatedAt":57,"install":58,"resources":71},"01M6J1KNENC157AA5ESVSMP25B","sdd:test",null,"Generate and run check artifacts for a spec. Self-sufficient: MCP preflight, 2-agent generation, автоматически по всем Requirements, auto state transition.","esurvanov\u002Fawesome-claude","esurvanov","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F4973667?v=4","01M6J1G7N9TE6PM9STY2K0BH2Y","Egor Urvanov","01M6J1G7S79PJF3DN0XVVPBMM4",22,"MIT","https:\u002F\u002Fgithub.com\u002Fesurvanov\u002Fawesome-claude\u002Fblob\u002Fmain\u002Fnamespace\u002Fsdd\u002Fskills\u002Ftest\u002Fskill.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[5,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"test","sdd","check","for","agent generation","generation","requirements","self","auto","MCP","preflight","state","artifacts","run","generate","spec","2026-11-10 10:12:30",false,"---\nname: sdd:test\ndescription: >\n  Generate and run check artifacts for a spec. Self-sufficient: MCP preflight,\n  2-agent generation, автоматически по всем Requirements, auto state transition.\nworkflow_step: 5\n---\n\n## Шаг 0: MCP preflight\n\nПопытайся вызвать `sdd_db_init` (MCP tool).\n\nЕсли инструмент **недоступен**:\n\n1. Прочитай `.mcp.json`. Если `sdd-scripts` **отсутствует** → остановись:\n   ```\n   ✗ sdd-scripts не зарегистрирован в .mcp.json. Добавьте запись вручную и перезапустите.\n   ```\n\n2. Если `sdd-scripts` **присутствует** → запусти через Bash tool:\n   ```bash\n   python3 \"${CLAUDE_SKILL_DIR}\u002F..\u002Fscripts\u002Fenable_mcp.py\"\n   ```\n   - Вывод `added` → остановись:\n     ```\n     Конфигурация обновлена: sdd-scripts добавлен в enabledMcpjsonServers.\n     Перезапустите сессию Claude Code и повторите \u002Fsdd:test.\n     ```\n   - Вывод `already-enabled` → остановись:\n     ```\n     MCP-сервер настроен, но не загружен. Перезапустите сессию Claude Code.\n     ```\n   - Вывод `error:` → остановись с текстом ошибки.\n\nЕсли инструмент **доступен** → перейди к шагу 0.5.\n\n## Шаг 0.5: выбор режима и start run\n\nСпроси через AskUserQuestion:\n\n> Режим прогона:\n> 1. **full** — заново генерировать check-скрипты и запустить всё\n> 2. **rerun** — запустить существующие скрипты без регенерации\n> 3. **show** — показать текущее состояние БД без запуска\n\nОпредели `\u003Cspec>` из `$ARGUMENTS` или из контекста разговора.\n\nВызови `sdd_db_run_start` → получи `run_id`. Все дальнейшие `sdd_db_step_*` используют этот `run_id`.\n\n## Шаг 1: загрузка спеки\n\n`sdd_db_step_start run_id 1`\n\nПрочитай `\u003Cspec>\u002Fspec.md`. Извлеки все Requirements и Scenarios.\nЕсли spec.md содержит `test_type:` в Purpose-секции → `sdd_db_set_spec_meta \u003Cspec> test_type \u003Cvalue>`.\n\nЗарегистрируй каждый Requirement через `sdd_db_add \u003Cspec> \u003Creq_id> \u003Crun_id>` → получи `check_id`.\nЕсли у Requirement есть явный `scope:` → `sdd_db_set_req_meta \u003Cspec> \u003Creq_id> scope \u003Cvalue>`.\n\n`sdd_db_step_done run_id 1`\n\n## Шаг 2: чтение метаданных\n\n`sdd_db_step_start run_id 2`\n\nДля каждого Requirement прочитай `check_id` через `sdd_db_read`. Собери:\n- `test_type` спеки (из spec_meta)\n- `scope` каждого Requirement (из checks)\n\n`sdd_db_step_done run_id 2`\n\n## Шаг 3: wipe (только в режиме full)\n\n`sdd_db_step_start run_id 3`\n\nЕсли mode=`full`: спроси подтверждение через AskUserQuestion:\n> Удалить существующие check-скрипты и данные БД для `\u003Cspec>`?\n\nПри согласии: `sdd_db_delete_spec \u003Cspec>`, удали файлы `\u003Cspec>\u002Fscripts\u002Fcheck_*.py`.\n\n`sdd_db_step_done run_id 3`\n\n## Шаг 4: загрузка критериев\n\n`sdd_db_step_start run_id 4`\n\nВызови `sdd_db_list_criteria` → получи JSON список критериев.\nОни передаются Агенту 1 на шаге 6.\n\n`sdd_db_step_done run_id 4`\n\n## Шаг 5: прогон существующих скриптов (rerun \u002F full после wipe)\n\n`sdd_db_step_start run_id 5`\n\nДля каждого check: если `script_path` задан и файл существует → запусти через Bash tool.\nЗапиши результат через `sdd_db_write_manual \u003Ccheck_id> passed|failed`.\n\n`sdd_db_step_done run_id 5`\n\n## Шаг 6: генерация (только mode=full)\n\n`sdd_db_step_start run_id 6`\n\nДля каждого Requirement параллельно:\n\n### scope=workflow\n\nСоздай тест-кейс `\u003Cspec>\u002Fcases\u002F\u003Creq_slug>.md` по шаблону из `cases\u002Ftest.md`.\nЗапиши путь: `sdd_db_write_script_path \u003Ccheck_id> \u003Cpath>`.\n\n### scope=component — два агента последовательно\n\n**Агент 1 (анализ):**\n\nВходы:\n- Полный текст `spec.md`\n- Текст данного Requirement + его Scenarios\n- Список критериев из шага 4 (`test_type`, `scope`)\n\nЗадача: системный анализ (процесс → контекст → цель → failure mode), MVP без деталей.\n\nЕсли `test_type=imperative` — включить precondition\u002Foperation\u002Fpostcondition.\nЕсли `test_type=declarative` — включить assertions по каждому полю\u002Fправилу.\n\nФормат вывода — жёсткий YAML:\n```yaml\ngoal: \u003Cчто этот requirement охраняет>\nfailure_mode: \u003Cчто сломается если нарушен>\nscenarios:\n  - id: \u003Cscenario-id>\n    description: \u003Cдословно из spec.md>\nchecks:\n  - what: \u003Cчто проверить>\n    justification: \u003Cцитата из текста Requirement>\n    boundary: \u003Cграничный случай с обоснованием, если применимо>\n```\n\nПосле завершения: `sdd_db_write_analysis_notes \u003Ccheck_id> \u003Cyaml>` (ставит `analysis_status=done`).\n\n**Агент 2 (генерация):**\n\nВходы:\n- `analysis_notes` из БД (основной источник — `sdd_db_read \u003Ccheck_id>`)\n- `spec.md` только для разрешения неоднозначностей\n\nПравило: реализовать ровно то, что в `analysis_notes`. Не добавлять проверки из `spec.md`.\nЕсли противоречие `analysis_notes` vs `spec.md` → флагировать в stdout, не генерировать (сигнал перезапустить Агента 1).\n\nКонтракт скрипта (D22):\n- Exit 0 = pass, exit 1 = fail, exit 2 = env-error\n- Первая строка stdout: `PASS` или `FAIL: \u003Creason>`\n- Read-only, детерминированный\n- Данные через CLI\u002FAPI, не через прямое чтение файлов\n\nСохрани скрипт: `\u003Cspec>\u002Fscripts\u002Fcheck_\u003Creq_slug>.py`.\nЗапиши путь: `sdd_db_write_script_path \u003Ccheck_id> \u003Cpath>`.\nСтавит `generation_status=done`.\n\n`sdd_db_step_done run_id 6`\n\n## Шаг 6.5: проверка покрытия Scenarios\n\nПосле каждого Агента 2: `sdd_db_list_gaps \u003Ccheck_id>`.\nЕсли непусто → вернись к Агенту 2 с запросом дописать проверки.\nМаксимум 2 итерации.\n\n## Шаг 7: семантическая оценка (автоматически по всем Requirements)\n\n`sdd_db_step_start run_id 7`\n\nВызови `sdd_db_start_semantic_eval \u003Crun_id> agent` **до** запуска субагентов.\nБез этого вызова `sdd_db_step_done run_id 7` завершится ошибкой.\n\nДля каждого Requirement запусти субагент-оценщик:\n\nВходы субагента:\n- Текст Requirement + Scenarios из spec.md\n- Содержимое check-скрипта (если scope=component) или тест-кейса (workflow)\n- Список критериев (id, name, category, признаки нарушения)\n\nЗадача субагента (Верификация — шаг 7):\nПроверь что тест действительно проверяет то, что написано в требовании.\nОцени каждый критерий: passed\u002Ffailed.\nЗапиши через `sdd_db_add_criterion_result \u003Ccheck_id> \u003Ccriterion_id> \u003Cpassed> \u003Cnotes>`.\nИстория накапливается — повторный вызов добавляет строку, не перезаписывает.\n\n`sdd_db_step_done run_id 7`\n\n## Шаг 7.5: автоматический transition Блока 1\n\n`sdd_db_step_start run_id 7.5`\n\nЕсли скилл вызван в контексте change'а (известен `change_id`):\n\nПрочитай агрегат через `sdd_db_report \u003Cspec>`.\n- Все `manual_result = passed` → `sdd_state_transition \u003Cchange_id> verify-ok`\n- Хотя бы один `manual_result = failed` → `sdd_state_transition \u003Cchange_id> verify-failed`\n\nТолько Skill Flow выполняет этот transition. Generation и Evaluation — запрещено.\n\n`sdd_db_step_done run_id 7.5`\n\n## Шаг 8: итоговый отчёт\n\n`sdd_db_step_start run_id 8`\n\nВызови `sdd_db_report \u003Cspec>` → выведи таблицу:\n\n```\n| Requirement | Script | Manual | Semantic | Criteria |\n|-------------|--------|--------|----------|----------|\n| req-name    | ✓      | passed | passed   | 7\u002F7      |\n```\n\nИтоговая строка: `N\u002FM passed`.\n\nOrphans из report → отдельная секция если непусто.\n\n`sdd_db_step_done run_id 8`\n","## Шаг 0: MCP preflight\n\nПопытайся вызвать `sdd_db_init` (MCP tool).\n\nЕсли инструмент **недоступен**:\n\n1. Прочитай `.mcp.json`. Если `sdd-scripts` **отсутствует** → остановись:\n   ```\n   ✗ sdd-scripts не зарегистрирован в .mcp.json. Добавьте запись вручную и перезапустите.\n   ```\n\n2. Если `sdd-scripts` **присутствует** → запусти через Bash tool:\n   ```bash\n   python3 \"${CLAUDE_SKILL_DIR}\u002F..\u002Fscripts\u002Fenable_mcp.py\"\n   ```\n   - Вывод `added` → остановись:\n     ```\n     Конфигурация обновлена: sdd-scripts добавлен в enabledMcpjsonServers.\n     Перезапустите сессию Claude Code и повторите \u002Fsdd:test.\n     ```\n   - Вывод `already-enabled` → остановись:\n     ```\n     MCP-сервер настроен, но не загружен. Перезапустите сессию Claude Code.\n     ```\n   - Вывод `error:` → остановись с текстом ошибки.\n\nЕсли инструмент **доступен** → перейди к шагу 0.5.\n\n## Шаг 0.5: выбор режима и start run\n\nСпроси через AskUserQuestion:\n\n> Режим прогона:\n> 1. **full** — заново генерировать check-скрипты и запустить всё\n> 2. **rerun** — запустить существующие скрипты без регенерации\n> 3. **show** — показать текущее состояние БД без запуска\n\nОпредели `\u003Cspec>` из `$ARGUMENTS` или из контекста разговора.\n\nВызови `sdd_db_run_start` → получи `run_id`. Все дальнейшие `sdd_db_step_*` используют этот `run_id`.\n\n## Шаг 1: загрузка спеки\n\n`sdd_db_step_start run_id 1`\n\nПрочитай `\u003Cspec>\u002Fspec.md`. Извлеки все Requirements и Scenarios.\nЕсли spec.md содержит `test_type:` в Purpose-секции → `sdd_db_set_spec_meta \u003Cspec> test_type \u003Cvalue>`.\n\nЗарегистрируй каждый Requirement через `sdd_db_add \u003Cspec> \u003Creq_id> \u003Crun_id>` → получи `check_id`.\nЕсли у Requirement есть явный `scope:` → `sdd_db_set_req_meta \u003Cspec> \u003Creq_id> scope \u003Cvalue>`.\n\n`sdd_db_step_done run_id 1`\n\n## Шаг 2: чтение метаданных\n\n`sdd_db_step_start run_id 2`\n\nДля каждого Requirement прочитай `check_id` через `sdd_db_read`. Собери:\n- `test_type` спеки (из spec_meta)\n- `scope` каждого Requirement (из checks)\n\n`sdd_db_step_done run_id 2`\n\n## Шаг 3: wipe (только в режиме full)\n\n`sdd_db_step_start run_id 3`\n\nЕсли mode=`full`: спроси подтверждение через AskUserQuestion:\n> Удалить существующие check-скрипты и данные БД для `\u003Cspec>`?\n\nПри согласии: `sdd_db_delete_spec \u003Cspec>`, удали файлы `\u003Cspec>\u002Fscripts\u002Fcheck_*.py`.\n\n`sdd_db_step_done run_id 3`\n\n## Шаг 4: загрузка критериев\n\n`sdd_db_step_start run_id 4`\n\nВызови `sdd_db_list_criteria` → получи JSON список критериев.\nОни передаются Агенту 1 на шаге 6.\n\n`sdd_db_step_done run_id 4`\n\n## Шаг 5: прогон существующих скриптов (rerun \u002F full после wipe)\n\n`sdd_db_step_start run_id 5`\n\nДля каждого check: если `script_path` задан и файл существует → запусти через Bash tool.\nЗапиши результат через `sdd_db_write_manual \u003Ccheck_id> passed|failed`.\n\n`sdd_db_step_done run_id 5`\n\n## Шаг 6: генерация (только mode=full)\n\n`sdd_db_step_start run_id 6`\n\nДля каждого Requirement параллельно:\n\n### scope=workflow\n\nСоздай тест-кейс `\u003Cspec>\u002Fcases\u002F\u003Creq_slug>.md` по шаблону из `cases\u002Ftest.md`.\nЗапиши путь: `sdd_db_write_script_path \u003Ccheck_id> \u003Cpath>`.\n\n### scope=component — два агента последовательно\n\n**Агент 1 (анализ):**\n\nВходы:\n- Полный текст `spec.md`\n- Текст данного Requirement + его Scenarios\n- Список критериев из шага 4 (`test_type`, `scope`)\n\nЗадача: системный анализ (процесс → контекст → цель → failure mode), MVP без деталей.\n\nЕсли `test_type=imperative` — включить precondition\u002Foperation\u002Fpostcondition.\nЕсли `test_type=declarative` — включить assertions по каждому полю\u002Fправилу.\n\nФормат вывода — жёсткий YAML:\n```yaml\ngoal: \u003Cчто этот requirement охраняет>\nfailure_mode: \u003Cчто сломается если нарушен>\nscenarios:\n  - id: \u003Cscenario-id>\n    description: \u003Cдословно из spec.md>\nchecks:\n  - what: \u003Cчто проверить>\n    justification: \u003Cцитата из текста Requirement>\n    boundary: \u003Cграничный случай с обоснованием, если применимо>\n```\n\nПосле завершения: `sdd_db_write_analysis_notes \u003Ccheck_id> \u003Cyaml>` (ставит `analysis_status=done`).\n\n**Агент 2 (генерация):**\n\nВходы:\n- `analysis_notes` из БД (основной источник — `sdd_db_read \u003Ccheck_id>`)\n- `spec.md` только для разрешения неоднозначностей\n\nПравило: реализовать ровно то, что в `analysis_notes`. Не добавлять проверки из `spec.md`.\nЕсли противоречие `analysis_notes` vs `spec.md` → флагировать в stdout, не генерировать (сигнал перезапустить Агента 1).\n\nКонтракт скрипта (D22):\n- Exit 0 = pass, exit 1 = fail, exit 2 = env-error\n- Первая строка stdout: `PASS` или `FAIL: \u003Creason>`\n- Read-only, детерминированный\n- Данные через CLI\u002FAPI, не через прямое чтение файлов\n\nСохрани скрипт: `\u003Cspec>\u002Fscripts\u002Fcheck_\u003Creq_slug>.py`.\nЗапиши путь: `sdd_db_write_script_path \u003Ccheck_id> \u003Cpath>`.\nСтавит `generation_status=done`.\n\n`sdd_db_step_done run_id 6`\n\n## Шаг 6.5: проверка покрытия Scenarios\n\nПосле каждого Агента 2: `sdd_db_list_gaps \u003Ccheck_id>`.\nЕсли непусто → вернись к Агенту 2 с запросом дописать проверки.\nМаксимум 2 итерации.\n\n## Шаг 7: семантическая оценка (автоматически по всем Requirements)\n\n`sdd_db_step_start run_id 7`\n\nВызови `sdd_db_start_semantic_eval \u003Crun_id> agent` **до** запуска субагентов.\nБез этого вызова `sdd_db_step_done run_id 7` завершится ошибкой.\n\nДля каждого Requirement запусти субагент-оценщик:\n\nВходы субагента:\n- Текст Requirement + Scenarios из spec.md\n- Содержимое check-скрипта (если scope=component) или тест-кейса (workflow)\n- Список критериев (id, name, category, признаки нарушения)\n\nЗадача субагента (Верификация — шаг 7):\nПроверь что тест действительно проверяет то, что написано в требовании.\nОцени каждый критерий: passed\u002Ffailed.\nЗапиши через `sdd_db_add_criterion_result \u003Ccheck_id> \u003Ccriterion_id> \u003Cpassed> \u003Cnotes>`.\nИстория накапливается — повторный вызов добавляет строку, не перезаписывает.\n\n`sdd_db_step_done run_id 7`\n\n## Шаг 7.5: автоматический transition Блока 1\n\n`sdd_db_step_start run_id 7.5`\n\nЕсли скилл вызван в контексте change'а (известен `change_id`):\n\nПрочитай агрегат через `sdd_db_report \u003Cspec>`.\n- Все `manual_result = passed` → `sdd_state_transition \u003Cchange_id> verify-ok`\n- Хотя бы один `manual_result = failed` → `sdd_state_transition \u003Cchange_id> verify-failed`\n\nТолько Skill Flow выполняет этот transition. Generation и Evaluation — запрещено.\n\n`sdd_db_step_done run_id 7.5`\n\n## Шаг 8: итоговый отчёт\n\n`sdd_db_step_start run_id 8`\n\nВызови `sdd_db_report \u003Cspec>` → выведи таблицу:\n\n```\n| Requirement | Script | Manual | Semantic | Criteria |\n|-------------|--------|--------|----------|----------|\n| req-name    | ✓      | passed | passed   | 7\u002F7      |\n```\n\nИтоговая строка: `N\u002FM passed`.\n\nOrphans из report → отдельная секция если непусто.\n\n`sdd_db_step_done run_id 8`\n",{"name":5,"description":48,"workflow_step":49},"Generate and run check artifacts for a spec. Self-sufficient: MCP preflight, 2-agent generation, автоматически по всем Requirements, auto state transition.\n",5,"main","81eafc75f9ca212c44852f5012421b956024b0e6","namespace\u002Fsdd\u002Fskills\u002Ftest","https:\u002F\u002Fgithub.com\u002Fesurvanov\u002Fawesome-claude","https:\u002F\u002Fgithub.com\u002Fesurvanov","https:\u002F\u002Fwww.urvanov.com\u002F","CTO in iGaming (NDA). AI development, engineering leadership, networking. Based between Batumi, Da Nang and Bangkok. Founder of Jaiora.","2026-05-12 00:32:28",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add esurvanov\u002Fawesome-claude --skill \"sdd:test\"",{"tool":64,"command":65},"bunx","bunx skills add esurvanov\u002Fawesome-claude --skill \"sdd:test\"",{"tool":67,"command":68},"pnpm","pnpm dlx skills add esurvanov\u002Fawesome-claude --skill \"sdd:test\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fesurvanov\u002Fawesome-claude\u002Fblob\u002Fmain\u002Fnamespace\u002Fsdd\u002Fskills\u002Ftest\u002Fskill.md",true,[72,78],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"cases\u002Ftest.md","REFERENCE","参考文档",444,"https:\u002F\u002Fgithub.com\u002Fesurvanov\u002Fawesome-claude\u002Fblob\u002Fmain\u002Fnamespace\u002Fsdd\u002Fskills\u002Ftest\u002Fcases\u002Ftest.md",{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"state.py","SCRIPT","脚本",25326,"https:\u002F\u002Fgithub.com\u002Fesurvanov\u002Fawesome-claude\u002Fblob\u002Fmain\u002Fnamespace\u002Fsdd\u002Fskills\u002Ftest\u002Fstate.py",[85,102,115,127,143,157],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":93,"publishedAt":43},"01M6J1MGH6A2FXTHYDF0WCCQJZ","skill:test-skill","Тест одного скилла: несколько кейсов, стабы, семантические проверки. Читает cases\u002F\u003Cns>\u002F\u003Cskill>.md, для каждого Case поднимает стаб, запускает скилл в агенте, проверяет contains + semantic.","https:\u002F\u002Fgithub.com\u002Fesurvanov\u002Fawesome-claude\u002Fblob\u002Fmain\u002Fnamespace\u002Fskill\u002Fskills\u002Ftest-skill\u002Fskill.md",[91,92],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[27,94,95,28,96,97,98,99,100,101],"skill:test skill","Test Skill","sonnet","case","semantic","read","Bash","help",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":110,"publishedAt":43},"01M6J1MCNHVC2NAVF5XYKCA3BR","skill:test-all","Запускает все тесты скиллов. Обнаруживает тест-спеки в .claude\u002Fskills\u002F*\u002F*\u002Fcases\u002F, запускает каждый через логику test-skill, выводит сводную таблицу, проверяет TDD-coverage матрицу.","https:\u002F\u002Fgithub.com\u002Fesurvanov\u002Fawesome-claude\u002Fblob\u002Fmain\u002Fnamespace\u002Fskill\u002Fskills\u002Ftest-all\u002Fskill.md",[108,109],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[27,111,112,113,100,99,114,96],"test all","skill:test all","tdd","coverage",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":121,"publishedAt":43},"01M6J1M7Q2T82FXF2S5TYWMYWK","skill:setup","Dev mode setup для awesome-claude репы — создаёт симлинки skills\u002F, commands\u002F, rules\u002F в .claude\u002F напрямую через bash. Идемпотентен: повторный вызов выводит \"Already linked\". Если .claude\u002F\u003Cdir> уже существует как обычная директория — предупреждает и просит подтверждение перед заменой.","https:\u002F\u002Fgithub.com\u002Fesurvanov\u002Fawesome-claude\u002Fblob\u002Fmain\u002Fnamespace\u002Fskill\u002Fskills\u002Fsetup\u002Fskill.md",[],[122,117,123,100,124,99,125,96,126],"setup","dev","Rules","commands","mode",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":134,"publishedAt":43},"01M6J1M37B5M33229RTK5EQM2Y","skill:release","Финальный шаг контрибьюторского workflow — релиз awesome-claude. Bump-version в manifest.yaml, commit, version tag. Останавливается если working tree не чистый.","https:\u002F\u002Fgithub.com\u002Fesurvanov\u002Fawesome-claude\u002Fblob\u002Fmain\u002Fnamespace\u002Fskill\u002Fskills\u002Frelease\u002Fskill.md",[133],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[129,135,136,137,138,139,140,141,100,99,142,96],"release","version","tree","workflow","commit","yaml","manifest","bump",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":155,"publishedAt":43},"01M6J1KZ8Y0TFBRF0D5ZKV62DW","skill:onboarding","Guided entry point для контрибьютора awesome-claude. Показывает полный contributor workflow и текущий следующий шаг по состоянию репы. НЕ запускает другие скиллы автоматически — только показывает, что вызвать дальше.","https:\u002F\u002Fgithub.com\u002Fesurvanov\u002Fawesome-claude\u002Fblob\u002Fmain\u002Fnamespace\u002Fskill\u002Fskills\u002Fonboarding\u002Fskill.md",[149,150],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":151,"categoryName":152,"taxonomyType":153,"taxonomyTypeDesc":154},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",[145,156,138,100,99,96],"onboarding",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":164,"publishedAt":43},"01M6J1KTMG1PW8QJGTGH9PQE4V","skill:deps","Установка\u002Fпроверка зависимостей awesome-claude из manifest.yaml: CLI-инструменты из секции tools:, субмодули из repos: через sdd:sync. Read-only по manifest.yaml — никогда не пишет в него (для добавления записей используй ручное редактирование или sdd:repo). Валидирует схему manifest.yaml: ошибка и стоп если отсутствует один из version, tools, repos.","https:\u002F\u002Fgithub.com\u002Fesurvanov\u002Fawesome-claude\u002Fblob\u002Fmain\u002Fnamespace\u002Fskill\u002Fskills\u002Fdeps\u002Fskill.md",[163],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[159,165,166,167,168,140,169,141,100,170,99,136,171,28,172,96,173,174],"deps","sdd:sync","sync","repos","Tools","repo","only","read-only","sdd:repo","cli"]