@codemcp/workflows 6.20.1 → 6.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/package.json +2 -2
  2. package/packages/cli/dist/{chunk-4N42FFJE.js → chunk-KWAFQZUI.js} +91 -2670
  3. package/packages/cli/dist/{cli-MFHC7UWY.js → cli-O52P3RVC.js} +468 -33
  4. package/packages/cli/dist/{dist-ISN3FRV4.js → dist-FIUD5G5U.js} +65 -4
  5. package/packages/cli/dist/{dist-TDV3DJ2J.js → dist-ZTAPC4IK.js} +3 -1
  6. package/packages/cli/dist/index.js +2 -2
  7. package/packages/cli/package.json +5 -2
  8. package/packages/cli/resources/templates/opencode-agents/coding.md.tmpl +13 -0
  9. package/packages/cli/resources/templates/opencode-agents/research.md.tmpl +13 -0
  10. package/packages/cli/resources/templates/opencode-agents/thinking.md.tmpl +13 -0
  11. package/packages/cli/resources/workflows/bugfix.yaml +6 -0
  12. package/packages/cli/resources/workflows/epcc.yaml +3 -0
  13. package/packages/cli/resources/workflows/greenfield.yaml +3 -0
  14. package/packages/cli/resources/workflows/pr-review.yaml +2 -0
  15. package/packages/cli/resources/workflows/qrspi.yaml +5 -0
  16. package/packages/cli/resources/workflows/tdd.yaml +3 -0
  17. package/packages/cli/resources/workflows/waterfall.yaml +3 -0
  18. package/packages/core/dist/capability-hint.d.ts +28 -0
  19. package/packages/core/dist/capability-hint.js +52 -0
  20. package/packages/core/dist/capability-hint.js.map +1 -0
  21. package/packages/core/dist/config-manager.d.ts +19 -0
  22. package/packages/core/dist/config-manager.js +26 -0
  23. package/packages/core/dist/config-manager.js.map +1 -1
  24. package/packages/core/dist/index.d.ts +1 -0
  25. package/packages/core/dist/index.js +1 -0
  26. package/packages/core/dist/index.js.map +1 -1
  27. package/packages/core/dist/instruction-generator.js +7 -1
  28. package/packages/core/dist/instruction-generator.js.map +1 -1
  29. package/packages/core/dist/interfaces/instruction-generator.interface.d.ts +14 -0
  30. package/packages/core/dist/state-machine-types.d.ts +7 -0
  31. package/packages/core/package.json +1 -1
  32. package/packages/core/resources/templates/opencode-agents/coding.md.tmpl +13 -0
  33. package/packages/core/resources/templates/opencode-agents/research.md.tmpl +13 -0
  34. package/packages/core/resources/templates/opencode-agents/thinking.md.tmpl +13 -0
  35. package/packages/core/resources/workflows/bugfix.yaml +6 -0
  36. package/packages/core/resources/workflows/epcc.yaml +3 -0
  37. package/packages/core/resources/workflows/greenfield.yaml +3 -0
  38. package/packages/core/resources/workflows/pr-review.yaml +2 -0
  39. package/packages/core/resources/workflows/qrspi.yaml +5 -0
  40. package/packages/core/resources/workflows/tdd.yaml +3 -0
  41. package/packages/core/resources/workflows/waterfall.yaml +3 -0
  42. package/packages/docs/.vitepress/dist/404.html +1 -1
  43. package/packages/docs/.vitepress/dist/assets/user_capability-routing.md.DbNKvMiS.js +15 -0
  44. package/packages/docs/.vitepress/dist/assets/user_capability-routing.md.DbNKvMiS.lean.js +1 -0
  45. package/packages/docs/.vitepress/dist/dev/ARCHITECTURE.html +2 -2
  46. package/packages/docs/.vitepress/dist/dev/DEVELOPMENT.html +2 -2
  47. package/packages/docs/.vitepress/dist/dev/LOGGING.html +2 -2
  48. package/packages/docs/.vitepress/dist/dev/PUBLISHING.html +2 -2
  49. package/packages/docs/.vitepress/dist/hashmap.json +1 -1
  50. package/packages/docs/.vitepress/dist/index.html +2 -2
  51. package/packages/docs/.vitepress/dist/user/advanced-engineering.html +3 -3
  52. package/packages/docs/.vitepress/dist/user/agent-setup.html +3 -3
  53. package/packages/docs/.vitepress/dist/user/beads-integration.html +2 -2
  54. package/packages/docs/.vitepress/dist/user/capability-routing.html +40 -0
  55. package/packages/docs/.vitepress/dist/user/crowd-mcp-integration.html +2 -2
  56. package/packages/docs/.vitepress/dist/user/custom-workflows.html +2 -2
  57. package/packages/docs/.vitepress/dist/user/git-commit-feature.html +2 -2
  58. package/packages/docs/.vitepress/dist/user/how-it-works.html +2 -2
  59. package/packages/docs/.vitepress/dist/user/long-term-memory.html +2 -2
  60. package/packages/docs/.vitepress/dist/user/packaged-workflows.html +2 -2
  61. package/packages/docs/.vitepress/dist/user/tutorial.html +2 -2
  62. package/packages/docs/.vitepress/dist/user/workflow-selection.html +2 -2
  63. package/packages/docs/.vitepress/dist/workflows/adr.html +1 -1
  64. package/packages/docs/.vitepress/dist/workflows/big-bang-conversion.html +1 -1
  65. package/packages/docs/.vitepress/dist/workflows/boundary-testing.html +1 -1
  66. package/packages/docs/.vitepress/dist/workflows/bugfix.html +1 -1
  67. package/packages/docs/.vitepress/dist/workflows/bugfix.yaml +6 -0
  68. package/packages/docs/.vitepress/dist/workflows/business-analysis.html +1 -1
  69. package/packages/docs/.vitepress/dist/workflows/c4-analysis.html +1 -1
  70. package/packages/docs/.vitepress/dist/workflows/epcc.html +1 -1
  71. package/packages/docs/.vitepress/dist/workflows/epcc.yaml +3 -0
  72. package/packages/docs/.vitepress/dist/workflows/game-beginner.html +1 -1
  73. package/packages/docs/.vitepress/dist/workflows/greenfield.html +1 -1
  74. package/packages/docs/.vitepress/dist/workflows/greenfield.yaml +3 -0
  75. package/packages/docs/.vitepress/dist/workflows/minor.html +1 -1
  76. package/packages/docs/.vitepress/dist/workflows/posts.html +1 -1
  77. package/packages/docs/.vitepress/dist/workflows/pr-review.html +1 -1
  78. package/packages/docs/.vitepress/dist/workflows/pr-review.yaml +2 -0
  79. package/packages/docs/.vitepress/dist/workflows/qrspi.html +1 -1
  80. package/packages/docs/.vitepress/dist/workflows/qrspi.yaml +5 -0
  81. package/packages/docs/.vitepress/dist/workflows/sdd-bugfix-crowd.html +1 -1
  82. package/packages/docs/.vitepress/dist/workflows/sdd-bugfix.html +1 -1
  83. package/packages/docs/.vitepress/dist/workflows/sdd-feature-crowd.html +1 -1
  84. package/packages/docs/.vitepress/dist/workflows/sdd-feature.html +1 -1
  85. package/packages/docs/.vitepress/dist/workflows/sdd-greenfield-crowd.html +1 -1
  86. package/packages/docs/.vitepress/dist/workflows/sdd-greenfield.html +1 -1
  87. package/packages/docs/.vitepress/dist/workflows/skilled-bugfix.html +1 -1
  88. package/packages/docs/.vitepress/dist/workflows/skilled-epcc.html +1 -1
  89. package/packages/docs/.vitepress/dist/workflows/skilled-greenfield.html +1 -1
  90. package/packages/docs/.vitepress/dist/workflows/slides.html +1 -1
  91. package/packages/docs/.vitepress/dist/workflows/tdd.html +1 -1
  92. package/packages/docs/.vitepress/dist/workflows/tdd.yaml +3 -0
  93. package/packages/docs/.vitepress/dist/workflows/waterfall.html +1 -1
  94. package/packages/docs/.vitepress/dist/workflows/waterfall.yaml +3 -0
  95. package/packages/docs/.vitepress/dist/workflows.html +1 -1
  96. package/packages/docs/package.json +1 -1
  97. package/packages/mcp-server/dist/index.js +67 -4
  98. package/packages/mcp-server/package.json +1 -1
  99. package/packages/mcp-server/resources/templates/opencode-agents/coding.md.tmpl +13 -0
  100. package/packages/mcp-server/resources/templates/opencode-agents/research.md.tmpl +13 -0
  101. package/packages/mcp-server/resources/templates/opencode-agents/thinking.md.tmpl +13 -0
  102. package/packages/mcp-server/resources/workflows/bugfix.yaml +6 -0
  103. package/packages/mcp-server/resources/workflows/epcc.yaml +3 -0
  104. package/packages/mcp-server/resources/workflows/greenfield.yaml +3 -0
  105. package/packages/mcp-server/resources/workflows/pr-review.yaml +2 -0
  106. package/packages/mcp-server/resources/workflows/qrspi.yaml +5 -0
  107. package/packages/mcp-server/resources/workflows/tdd.yaml +3 -0
  108. package/packages/mcp-server/resources/workflows/waterfall.yaml +3 -0
  109. package/packages/opencode-plugin/dist/index.d.ts +8 -192
  110. package/packages/opencode-plugin/dist/index.js +76 -5
  111. package/packages/opencode-plugin/package.json +6 -1
  112. package/packages/opencode-plugin/resources/templates/opencode-agents/coding.md.tmpl +13 -0
  113. package/packages/opencode-plugin/resources/templates/opencode-agents/research.md.tmpl +13 -0
  114. package/packages/opencode-plugin/resources/templates/opencode-agents/thinking.md.tmpl +13 -0
  115. package/packages/opencode-plugin/resources/workflows/bugfix.yaml +6 -0
  116. package/packages/opencode-plugin/resources/workflows/epcc.yaml +3 -0
  117. package/packages/opencode-plugin/resources/workflows/greenfield.yaml +3 -0
  118. package/packages/opencode-plugin/resources/workflows/pr-review.yaml +2 -0
  119. package/packages/opencode-plugin/resources/workflows/qrspi.yaml +5 -0
  120. package/packages/opencode-plugin/resources/workflows/tdd.yaml +3 -0
  121. package/packages/opencode-plugin/resources/workflows/waterfall.yaml +3 -0
  122. package/packages/opencode-tui-plugin/package.json +1 -1
  123. package/packages/visualizer/package.json +1 -1
  124. package/resources/state-machine-schema.json +4 -0
  125. package/resources/templates/opencode-agents/coding.md.tmpl +13 -0
  126. package/resources/templates/opencode-agents/research.md.tmpl +13 -0
  127. package/resources/templates/opencode-agents/thinking.md.tmpl +13 -0
  128. package/resources/workflows/bugfix.yaml +6 -0
  129. package/resources/workflows/epcc.yaml +3 -0
  130. package/resources/workflows/greenfield.yaml +3 -0
  131. package/resources/workflows/pr-review.yaml +2 -0
  132. package/resources/workflows/qrspi.yaml +5 -0
  133. package/resources/workflows/tdd.yaml +3 -0
  134. package/resources/workflows/waterfall.yaml +3 -0
@@ -20,7 +20,7 @@
20
20
  </head>
21
21
  <body>
22
22
  <div id="app"><div style="position:relative;" data-v-c1df4d5c><div><div id="workflow-visualizer-app" class="" data-v-7fa343e6><!----><main class="app-main"><div class="diagram-container"><div id="diagram-canvas" class="diagram-canvas"><div class="loading-message">Loading workflow...</div></div></div><aside class="side-panel"><div class="side-panel-header"><h2>Details</h2></div><div class="side-panel-content"><div class="empty-state"> Click on a state or transition to see details </div></div></aside></main><div id="error-container" class="error-container hidden"><div class="error-message"><span class="error-text"></span><button class="error-close">×</button></div></div></div></div></div></div>
23
- <script>window.__VP_HASH_MAP__=JSON.parse("{\"dev_architecture.md\":\"CvNKCNdN\",\"dev_development.md\":\"D_3UnLYh\",\"dev_logging.md\":\"ChgMzoxk\",\"dev_publishing.md\":\"9HHCKtL4\",\"index.md\":\"BqtGZhQl\",\"user_advanced-engineering.md\":\"DSy0uwWe\",\"user_agent-setup.md\":\"Cgzr8dYa\",\"user_beads-integration.md\":\"CB1VJJCp\",\"user_crowd-mcp-integration.md\":\"DPSO9u7p\",\"user_custom-workflows.md\":\"CtvQt5R0\",\"user_git-commit-feature.md\":\"IwIx6MMR\",\"user_how-it-works.md\":\"08ZFhWmJ\",\"user_long-term-memory.md\":\"Tss4q2DM\",\"user_packaged-workflows.md\":\"D8DLEuhH\",\"user_tutorial.md\":\"BTP4OqKB\",\"user_workflow-selection.md\":\"G8vSc8iy\",\"workflows.md\":\"B6jknRdS\",\"workflows_adr.md\":\"DQ73iGUh\",\"workflows_big-bang-conversion.md\":\"BgV6R1KI\",\"workflows_boundary-testing.md\":\"RwhcIDcf\",\"workflows_bugfix.md\":\"sZNWPjvx\",\"workflows_business-analysis.md\":\"C3FBbsiu\",\"workflows_c4-analysis.md\":\"MVyWuWSL\",\"workflows_epcc.md\":\"1mWsuIIR\",\"workflows_game-beginner.md\":\"J4UOyAAT\",\"workflows_greenfield.md\":\"DzJ6V7lb\",\"workflows_minor.md\":\"dYZlfSHT\",\"workflows_posts.md\":\"BrkDZjGs\",\"workflows_pr-review.md\":\"CdYxJ5Yu\",\"workflows_qrspi.md\":\"CPYiTyJ8\",\"workflows_sdd-bugfix-crowd.md\":\"BQH-LJXS\",\"workflows_sdd-bugfix.md\":\"CoPY5TS6\",\"workflows_sdd-feature-crowd.md\":\"CCj9xqan\",\"workflows_sdd-feature.md\":\"Dy8SNaX8\",\"workflows_sdd-greenfield-crowd.md\":\"_lPEQnGj\",\"workflows_sdd-greenfield.md\":\"KStU-OJS\",\"workflows_skilled-bugfix.md\":\"CvCekIa2\",\"workflows_skilled-epcc.md\":\"D7Kg_U7p\",\"workflows_skilled-greenfield.md\":\"C_R8GafG\",\"workflows_slides.md\":\"CScRnwcC\",\"workflows_tdd.md\":\"C_hC07yu\",\"workflows_waterfall.md\":\"nMkWHPRt\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Responsible Vibe MCP\",\"description\":\"Model Context Protocol server for intelligent conversation state management and development guidance\",\"base\":\"/workflows/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"Documentation\",\"link\":\"/\"},{\"text\":\"Workflows\",\"link\":\"/workflows\"},{\"text\":\"Github\",\"link\":\"https://github.com/codemcp/workflows\"}],\"sidebar\":[{\"text\":\"User Guide\",\"items\":[{\"text\":\"Overview\",\"link\":\"/\"},{\"text\":\"How It Works\",\"link\":\"/user/how-it-works\"},{\"text\":\"Agent Setup\",\"link\":\"/user/agent-setup\"},{\"text\":\"Vibe Engineering\",\"link\":\"/user/advanced-engineering\"},{\"text\":\"Long-Term Memory\",\"link\":\"/user/long-term-memory\"},{\"text\":\"Beads-Integration\",\"link\":\"/user/beads-integration\"},{\"text\":\"Tutorial\",\"link\":\"/user/tutorial\"}]},{\"text\":\"Workflows\",\"items\":[{\"text\":\"Workflow-Selection\",\"link\":\"/user/workflow-selection\"},{\"text\":\"Packaged Workflows\",\"link\":\"/user/packaged-workflows\"},{\"text\":\"Custom Workflows\",\"link\":\"/user/custom-workflows\"},{\"text\":\"Explore All Workflows\",\"link\":\"/workflows\"},{\"text\":\"Crowd MCP Integration\",\"link\":\"/user/crowd-mcp-integration\"}]}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
23
+ <script>window.__VP_HASH_MAP__=JSON.parse("{\"dev_architecture.md\":\"CvNKCNdN\",\"dev_development.md\":\"D_3UnLYh\",\"dev_logging.md\":\"ChgMzoxk\",\"dev_publishing.md\":\"9HHCKtL4\",\"index.md\":\"BqtGZhQl\",\"user_advanced-engineering.md\":\"DSy0uwWe\",\"user_agent-setup.md\":\"Cgzr8dYa\",\"user_beads-integration.md\":\"CB1VJJCp\",\"user_capability-routing.md\":\"DbNKvMiS\",\"user_crowd-mcp-integration.md\":\"DPSO9u7p\",\"user_custom-workflows.md\":\"CtvQt5R0\",\"user_git-commit-feature.md\":\"IwIx6MMR\",\"user_how-it-works.md\":\"08ZFhWmJ\",\"user_long-term-memory.md\":\"Tss4q2DM\",\"user_packaged-workflows.md\":\"D8DLEuhH\",\"user_tutorial.md\":\"BTP4OqKB\",\"user_workflow-selection.md\":\"G8vSc8iy\",\"workflows.md\":\"B6jknRdS\",\"workflows_adr.md\":\"DQ73iGUh\",\"workflows_big-bang-conversion.md\":\"BgV6R1KI\",\"workflows_boundary-testing.md\":\"RwhcIDcf\",\"workflows_bugfix.md\":\"sZNWPjvx\",\"workflows_business-analysis.md\":\"C3FBbsiu\",\"workflows_c4-analysis.md\":\"MVyWuWSL\",\"workflows_epcc.md\":\"1mWsuIIR\",\"workflows_game-beginner.md\":\"J4UOyAAT\",\"workflows_greenfield.md\":\"DzJ6V7lb\",\"workflows_minor.md\":\"dYZlfSHT\",\"workflows_posts.md\":\"BrkDZjGs\",\"workflows_pr-review.md\":\"CdYxJ5Yu\",\"workflows_qrspi.md\":\"CPYiTyJ8\",\"workflows_sdd-bugfix-crowd.md\":\"BQH-LJXS\",\"workflows_sdd-bugfix.md\":\"CoPY5TS6\",\"workflows_sdd-feature-crowd.md\":\"CCj9xqan\",\"workflows_sdd-feature.md\":\"Dy8SNaX8\",\"workflows_sdd-greenfield-crowd.md\":\"_lPEQnGj\",\"workflows_sdd-greenfield.md\":\"KStU-OJS\",\"workflows_skilled-bugfix.md\":\"CvCekIa2\",\"workflows_skilled-epcc.md\":\"D7Kg_U7p\",\"workflows_skilled-greenfield.md\":\"C_R8GafG\",\"workflows_slides.md\":\"CScRnwcC\",\"workflows_tdd.md\":\"C_hC07yu\",\"workflows_waterfall.md\":\"nMkWHPRt\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Responsible Vibe MCP\",\"description\":\"Model Context Protocol server for intelligent conversation state management and development guidance\",\"base\":\"/workflows/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"Documentation\",\"link\":\"/\"},{\"text\":\"Workflows\",\"link\":\"/workflows\"},{\"text\":\"Github\",\"link\":\"https://github.com/codemcp/workflows\"}],\"sidebar\":[{\"text\":\"User Guide\",\"items\":[{\"text\":\"Overview\",\"link\":\"/\"},{\"text\":\"How It Works\",\"link\":\"/user/how-it-works\"},{\"text\":\"Agent Setup\",\"link\":\"/user/agent-setup\"},{\"text\":\"Capability Routing\",\"link\":\"/user/capability-routing\"},{\"text\":\"Vibe Engineering\",\"link\":\"/user/advanced-engineering\"},{\"text\":\"Long-Term Memory\",\"link\":\"/user/long-term-memory\"},{\"text\":\"Beads-Integration\",\"link\":\"/user/beads-integration\"},{\"text\":\"Tutorial\",\"link\":\"/user/tutorial\"}]},{\"text\":\"Workflows\",\"items\":[{\"text\":\"Workflow-Selection\",\"link\":\"/user/workflow-selection\"},{\"text\":\"Packaged Workflows\",\"link\":\"/user/packaged-workflows\"},{\"text\":\"Custom Workflows\",\"link\":\"/user/custom-workflows\"},{\"text\":\"Explore All Workflows\",\"link\":\"/workflows\"},{\"text\":\"Crowd MCP Integration\",\"link\":\"/user/crowd-mcp-integration\"}]}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
24
24
 
25
25
  </body>
26
26
  </html>
@@ -27,6 +27,7 @@ metadata:
27
27
  states:
28
28
  requirements:
29
29
  description: 'Gathering and analyzing requirements'
30
+ required_capability: 'research'
30
31
  allowed_file_patterns:
31
32
  - '**/*.md'
32
33
  - '**/*.txt'
@@ -53,6 +54,7 @@ states:
53
54
 
54
55
  design:
55
56
  description: 'Technical design and architecture planning'
57
+ required_capability: 'thinking'
56
58
  allowed_file_patterns:
57
59
  - '**/*.md'
58
60
  - '**/*.txt'
@@ -80,6 +82,7 @@ states:
80
82
 
81
83
  implementation:
82
84
  description: 'Building the solution according to design'
85
+ required_capability: 'coding'
83
86
  allowed_file_patterns:
84
87
  - '**/*'
85
88
  default_instructions: |
@@ -20,7 +20,7 @@
20
20
  </head>
21
21
  <body>
22
22
  <div id="app"><div class="Layout" data-v-c1df4d5c><!--[--><!--]--><!--[--><span tabindex="-1" data-v-ecac0ce8></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-ecac0ce8>Skip to content</a><!--]--><!----><header class="VPNav" data-v-c1df4d5c data-v-b2fedd30><div class="VPNavBar" data-v-b2fedd30 data-v-37a0846a><div class="wrapper" data-v-37a0846a><div class="container" data-v-37a0846a><div class="title" data-v-37a0846a><div class="VPNavBarTitle" data-v-37a0846a data-v-b408e164><a class="title" href="/workflows/" data-v-b408e164><!--[--><!--]--><!----><span data-v-b408e164>Responsible Vibe MCP</span><!--[--><!--]--></a></div></div><div class="content" data-v-37a0846a><div class="content-body" data-v-37a0846a><!--[--><!--]--><div class="VPNavBarSearch search" data-v-37a0846a><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-37a0846a data-v-27d7d4fe><span id="main-nav-aria-label" class="visually-hidden" data-v-27d7d4fe> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/workflows/" tabindex="0" data-v-27d7d4fe data-v-e70ce59d><!--[--><span data-v-e70ce59d>Documentation</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/workflows/workflows.html" tabindex="0" data-v-27d7d4fe data-v-e70ce59d><!--[--><span data-v-e70ce59d>Workflows</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://github.com/codemcp/workflows" target="_blank" rel="noreferrer" tabindex="0" data-v-27d7d4fe data-v-e70ce59d><!--[--><span data-v-e70ce59d>Github</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-37a0846a data-v-34a9cb79><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-34a9cb79 data-v-9e7dfa94 data-v-c055c202><span class="check" data-v-c055c202><span class="icon" data-v-c055c202><!--[--><span class="vpi-sun sun" data-v-9e7dfa94></span><span class="vpi-moon moon" data-v-9e7dfa94></span><!--]--></span></span></button></div><!----><div class="VPFlyout VPNavBarExtra extra" data-v-37a0846a data-v-abbdfbda data-v-8b861926><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-8b861926><span class="vpi-more-horizontal icon" data-v-8b861926></span></button><div class="menu" data-v-8b861926><div class="VPMenu" data-v-8b861926 data-v-5713f977><!----><!--[--><!--[--><!----><div class="group" data-v-abbdfbda><div class="item appearance" data-v-abbdfbda><p class="label" data-v-abbdfbda>Appearance</p><div class="appearance-action" data-v-abbdfbda><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-abbdfbda data-v-9e7dfa94 data-v-c055c202><span class="check" data-v-c055c202><span class="icon" data-v-c055c202><!--[--><span class="vpi-sun sun" data-v-9e7dfa94></span><span class="vpi-moon moon" data-v-9e7dfa94></span><!--]--></span></span></button></div></div></div><!----><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-37a0846a data-v-923ccc68><span class="container" data-v-923ccc68><span class="top" data-v-923ccc68></span><span class="middle" data-v-923ccc68></span><span class="bottom" data-v-923ccc68></span></span></button></div></div></div></div><div class="divider" data-v-37a0846a><div class="divider-line" data-v-37a0846a></div></div></div><!----></header><div class="VPLocalNav empty fixed" data-v-c1df4d5c data-v-d06e114f><div class="container" data-v-d06e114f><!----><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-d06e114f data-v-aab1d107><button data-v-aab1d107>Return to top</button><!----></div></div></div><!----><div class="VPContent" id="VPContent" data-v-c1df4d5c data-v-28fa4ed1><div class="VPDoc" data-v-28fa4ed1 data-v-cda1d691><!--[--><!--]--><div class="container" data-v-cda1d691><!----><div class="content" data-v-cda1d691><div class="content-container" data-v-cda1d691><!--[--><!--]--><main class="main" data-v-cda1d691><div style="position:relative;" class="vp-doc _workflows_workflows" data-v-cda1d691><div><div id="workflow-visualizer-app" class="" data-v-7fa343e6><header class="app-header"><h1>Workflow Visualizer</h1><div class="workflow-controls"><select id="workflow-selector" class="workflow-selector"><option value="">Select a workflow...</option></select><input type="file" id="file-upload" accept=".yaml,.yml" class="file-upload"><label for="file-upload" class="file-upload-label">Upload YAML</label></div></header><main class="app-main"><div class="diagram-container"><div id="diagram-canvas" class="diagram-canvas"><div class="loading-message">Select a workflow to visualize</div></div></div><aside class="side-panel"><div class="side-panel-header"><h2>Details</h2></div><div class="side-panel-content"><div class="empty-state"> Click on a state or transition to see details </div></div></aside></main><div id="error-container" class="error-container hidden"><div class="error-message"><span class="error-text"></span><button class="error-close">×</button></div></div></div></div></div></main><footer class="VPDocFooter" data-v-cda1d691 data-v-5253e96b><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-5253e96b><span class="visually-hidden" id="doc-footer-aria-label" data-v-5253e96b>Pager</span><div class="pager" data-v-5253e96b><a class="VPLink link pager-link prev" href="/workflows/user/custom-workflows.html" data-v-5253e96b><!--[--><span class="desc" data-v-5253e96b>Previous page</span><span class="title" data-v-5253e96b>Custom Workflows</span><!--]--></a></div><div class="pager" data-v-5253e96b><a class="VPLink link pager-link next" href="/workflows/user/crowd-mcp-integration.html" data-v-5253e96b><!--[--><span class="desc" data-v-5253e96b>Next page</span><span class="title" data-v-5253e96b>Crowd MCP Integration</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
23
- <script>window.__VP_HASH_MAP__=JSON.parse("{\"dev_architecture.md\":\"CvNKCNdN\",\"dev_development.md\":\"D_3UnLYh\",\"dev_logging.md\":\"ChgMzoxk\",\"dev_publishing.md\":\"9HHCKtL4\",\"index.md\":\"BqtGZhQl\",\"user_advanced-engineering.md\":\"DSy0uwWe\",\"user_agent-setup.md\":\"Cgzr8dYa\",\"user_beads-integration.md\":\"CB1VJJCp\",\"user_crowd-mcp-integration.md\":\"DPSO9u7p\",\"user_custom-workflows.md\":\"CtvQt5R0\",\"user_git-commit-feature.md\":\"IwIx6MMR\",\"user_how-it-works.md\":\"08ZFhWmJ\",\"user_long-term-memory.md\":\"Tss4q2DM\",\"user_packaged-workflows.md\":\"D8DLEuhH\",\"user_tutorial.md\":\"BTP4OqKB\",\"user_workflow-selection.md\":\"G8vSc8iy\",\"workflows.md\":\"B6jknRdS\",\"workflows_adr.md\":\"DQ73iGUh\",\"workflows_big-bang-conversion.md\":\"BgV6R1KI\",\"workflows_boundary-testing.md\":\"RwhcIDcf\",\"workflows_bugfix.md\":\"sZNWPjvx\",\"workflows_business-analysis.md\":\"C3FBbsiu\",\"workflows_c4-analysis.md\":\"MVyWuWSL\",\"workflows_epcc.md\":\"1mWsuIIR\",\"workflows_game-beginner.md\":\"J4UOyAAT\",\"workflows_greenfield.md\":\"DzJ6V7lb\",\"workflows_minor.md\":\"dYZlfSHT\",\"workflows_posts.md\":\"BrkDZjGs\",\"workflows_pr-review.md\":\"CdYxJ5Yu\",\"workflows_qrspi.md\":\"CPYiTyJ8\",\"workflows_sdd-bugfix-crowd.md\":\"BQH-LJXS\",\"workflows_sdd-bugfix.md\":\"CoPY5TS6\",\"workflows_sdd-feature-crowd.md\":\"CCj9xqan\",\"workflows_sdd-feature.md\":\"Dy8SNaX8\",\"workflows_sdd-greenfield-crowd.md\":\"_lPEQnGj\",\"workflows_sdd-greenfield.md\":\"KStU-OJS\",\"workflows_skilled-bugfix.md\":\"CvCekIa2\",\"workflows_skilled-epcc.md\":\"D7Kg_U7p\",\"workflows_skilled-greenfield.md\":\"C_R8GafG\",\"workflows_slides.md\":\"CScRnwcC\",\"workflows_tdd.md\":\"C_hC07yu\",\"workflows_waterfall.md\":\"nMkWHPRt\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Responsible Vibe MCP\",\"description\":\"Model Context Protocol server for intelligent conversation state management and development guidance\",\"base\":\"/workflows/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"Documentation\",\"link\":\"/\"},{\"text\":\"Workflows\",\"link\":\"/workflows\"},{\"text\":\"Github\",\"link\":\"https://github.com/codemcp/workflows\"}],\"sidebar\":[{\"text\":\"User Guide\",\"items\":[{\"text\":\"Overview\",\"link\":\"/\"},{\"text\":\"How It Works\",\"link\":\"/user/how-it-works\"},{\"text\":\"Agent Setup\",\"link\":\"/user/agent-setup\"},{\"text\":\"Vibe Engineering\",\"link\":\"/user/advanced-engineering\"},{\"text\":\"Long-Term Memory\",\"link\":\"/user/long-term-memory\"},{\"text\":\"Beads-Integration\",\"link\":\"/user/beads-integration\"},{\"text\":\"Tutorial\",\"link\":\"/user/tutorial\"}]},{\"text\":\"Workflows\",\"items\":[{\"text\":\"Workflow-Selection\",\"link\":\"/user/workflow-selection\"},{\"text\":\"Packaged Workflows\",\"link\":\"/user/packaged-workflows\"},{\"text\":\"Custom Workflows\",\"link\":\"/user/custom-workflows\"},{\"text\":\"Explore All Workflows\",\"link\":\"/workflows\"},{\"text\":\"Crowd MCP Integration\",\"link\":\"/user/crowd-mcp-integration\"}]}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
23
+ <script>window.__VP_HASH_MAP__=JSON.parse("{\"dev_architecture.md\":\"CvNKCNdN\",\"dev_development.md\":\"D_3UnLYh\",\"dev_logging.md\":\"ChgMzoxk\",\"dev_publishing.md\":\"9HHCKtL4\",\"index.md\":\"BqtGZhQl\",\"user_advanced-engineering.md\":\"DSy0uwWe\",\"user_agent-setup.md\":\"Cgzr8dYa\",\"user_beads-integration.md\":\"CB1VJJCp\",\"user_capability-routing.md\":\"DbNKvMiS\",\"user_crowd-mcp-integration.md\":\"DPSO9u7p\",\"user_custom-workflows.md\":\"CtvQt5R0\",\"user_git-commit-feature.md\":\"IwIx6MMR\",\"user_how-it-works.md\":\"08ZFhWmJ\",\"user_long-term-memory.md\":\"Tss4q2DM\",\"user_packaged-workflows.md\":\"D8DLEuhH\",\"user_tutorial.md\":\"BTP4OqKB\",\"user_workflow-selection.md\":\"G8vSc8iy\",\"workflows.md\":\"B6jknRdS\",\"workflows_adr.md\":\"DQ73iGUh\",\"workflows_big-bang-conversion.md\":\"BgV6R1KI\",\"workflows_boundary-testing.md\":\"RwhcIDcf\",\"workflows_bugfix.md\":\"sZNWPjvx\",\"workflows_business-analysis.md\":\"C3FBbsiu\",\"workflows_c4-analysis.md\":\"MVyWuWSL\",\"workflows_epcc.md\":\"1mWsuIIR\",\"workflows_game-beginner.md\":\"J4UOyAAT\",\"workflows_greenfield.md\":\"DzJ6V7lb\",\"workflows_minor.md\":\"dYZlfSHT\",\"workflows_posts.md\":\"BrkDZjGs\",\"workflows_pr-review.md\":\"CdYxJ5Yu\",\"workflows_qrspi.md\":\"CPYiTyJ8\",\"workflows_sdd-bugfix-crowd.md\":\"BQH-LJXS\",\"workflows_sdd-bugfix.md\":\"CoPY5TS6\",\"workflows_sdd-feature-crowd.md\":\"CCj9xqan\",\"workflows_sdd-feature.md\":\"Dy8SNaX8\",\"workflows_sdd-greenfield-crowd.md\":\"_lPEQnGj\",\"workflows_sdd-greenfield.md\":\"KStU-OJS\",\"workflows_skilled-bugfix.md\":\"CvCekIa2\",\"workflows_skilled-epcc.md\":\"D7Kg_U7p\",\"workflows_skilled-greenfield.md\":\"C_R8GafG\",\"workflows_slides.md\":\"CScRnwcC\",\"workflows_tdd.md\":\"C_hC07yu\",\"workflows_waterfall.md\":\"nMkWHPRt\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Responsible Vibe MCP\",\"description\":\"Model Context Protocol server for intelligent conversation state management and development guidance\",\"base\":\"/workflows/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"Documentation\",\"link\":\"/\"},{\"text\":\"Workflows\",\"link\":\"/workflows\"},{\"text\":\"Github\",\"link\":\"https://github.com/codemcp/workflows\"}],\"sidebar\":[{\"text\":\"User Guide\",\"items\":[{\"text\":\"Overview\",\"link\":\"/\"},{\"text\":\"How It Works\",\"link\":\"/user/how-it-works\"},{\"text\":\"Agent Setup\",\"link\":\"/user/agent-setup\"},{\"text\":\"Capability Routing\",\"link\":\"/user/capability-routing\"},{\"text\":\"Vibe Engineering\",\"link\":\"/user/advanced-engineering\"},{\"text\":\"Long-Term Memory\",\"link\":\"/user/long-term-memory\"},{\"text\":\"Beads-Integration\",\"link\":\"/user/beads-integration\"},{\"text\":\"Tutorial\",\"link\":\"/user/tutorial\"}]},{\"text\":\"Workflows\",\"items\":[{\"text\":\"Workflow-Selection\",\"link\":\"/user/workflow-selection\"},{\"text\":\"Packaged Workflows\",\"link\":\"/user/packaged-workflows\"},{\"text\":\"Custom Workflows\",\"link\":\"/user/custom-workflows\"},{\"text\":\"Explore All Workflows\",\"link\":\"/workflows\"},{\"text\":\"Crowd MCP Integration\",\"link\":\"/user/crowd-mcp-integration\"}]}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
24
24
 
25
25
  </body>
26
26
  </html>
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codemcp/workflows-docs",
3
- "version": "6.20.1",
3
+ "version": "6.21.0",
4
4
  "description": "Documentation site for Responsible Vibe MCP",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -3077,7 +3077,8 @@ var ConfigManager = class {
3077
3077
  this.validateConfig(config, configPath);
3078
3078
  logger3.info("Loaded project configuration", {
3079
3079
  configPath,
3080
- enabledWorkflows: config.enabled_workflows?.length || 0
3080
+ enabledWorkflows: config.enabled_workflows?.length || 0,
3081
+ capabilityModels: config.capability_models ? Object.keys(config.capability_models).length : 0
3081
3082
  });
3082
3083
  return config;
3083
3084
  } catch (error) {
@@ -3107,6 +3108,23 @@ var ConfigManager = class {
3107
3108
  }
3108
3109
  }
3109
3110
  }
3111
+ if (config.capability_models !== void 0) {
3112
+ if (typeof config.capability_models !== "object" || config.capability_models === null || Array.isArray(config.capability_models)) {
3113
+ throw new Error(`Invalid config file ${configPath}: capability_models must be an object`);
3114
+ }
3115
+ for (const [key, entry] of Object.entries(config.capability_models)) {
3116
+ if (entry === null || typeof entry !== "object" || Array.isArray(entry)) {
3117
+ throw new Error(`Invalid config file ${configPath}: capability_models entry '${key}' must be an object`);
3118
+ }
3119
+ const { model, agent } = entry;
3120
+ if (model !== void 0 && (typeof model !== "string" || model.trim() === "")) {
3121
+ throw new Error(`Invalid config file ${configPath}: capability_models entry '${key}' model must be a non-empty string`);
3122
+ }
3123
+ if (agent !== void 0 && (typeof agent !== "string" || agent.trim() === "")) {
3124
+ throw new Error(`Invalid config file ${configPath}: capability_models entry '${key}' agent must be a non-empty string`);
3125
+ }
3126
+ }
3127
+ }
3110
3128
  }
3111
3129
  };
3112
3130
 
@@ -6060,6 +6078,31 @@ var BeadsStateManager = class {
6060
6078
  }
6061
6079
  };
6062
6080
 
6081
+ // ../core/dist/capability-hint.js
6082
+ var CAPABILITY_DESCRIPTIONS = {
6083
+ thinking: "deep reasoning, complex planning",
6084
+ research: "fast information gathering and browsing"
6085
+ };
6086
+ function formatCapabilityHint(capability, config) {
6087
+ if (!capability) {
6088
+ return "";
6089
+ }
6090
+ const description = CAPABILITY_DESCRIPTIONS[capability];
6091
+ const label = description ? `Capability hint: This phase requires ${capability} capability (${description}).` : `Capability hint: This phase requires ${capability} capability.`;
6092
+ const model = config?.model;
6093
+ const agent = config?.agent;
6094
+ if (agent && model) {
6095
+ return `${label} When launching subagents, use agent: ${agent} (model: ${model}).`;
6096
+ }
6097
+ if (agent) {
6098
+ return `${label} When launching subagents, use agent: ${agent}.`;
6099
+ }
6100
+ if (model) {
6101
+ return `${label} When launching subagents, prefer model: ${model}.`;
6102
+ }
6103
+ return label;
6104
+ }
6105
+
6063
6106
  // ../core/dist/interaction-logger.js
6064
6107
  var logger12 = createLogger("InteractionLogger");
6065
6108
  var InteractionLogger = class {
@@ -6186,7 +6229,7 @@ var InstructionGenerator = class {
6186
6229
  * Enhance base instructions with context-specific information
6187
6230
  */
6188
6231
  async enhanceInstructions(baseInstructions, context) {
6189
- const { phase, conversationContext, allowedFilePatterns } = context;
6232
+ const { phase, conversationContext, allowedFilePatterns, requiredCapability, capabilityConfig } = context;
6190
6233
  const phaseName = capitalizePhase(phase);
6191
6234
  let workflowSection = `---
6192
6235
  ### YOU MUST FOLLOW THESE INSTRUCTIONS:
@@ -6201,6 +6244,12 @@ var InstructionGenerator = class {
6201
6244
  if (allowedFilePatterns && allowedFilePatterns.length > 0 && !allowedFilePatterns.includes("**/*") && !allowedFilePatterns.includes("*")) {
6202
6245
  workflowSection += `
6203
6246
  - Files allowed: \`${allowedFilePatterns.join("`, `")}\``;
6247
+ }
6248
+ const capabilityHint = formatCapabilityHint(requiredCapability, capabilityConfig);
6249
+ if (capabilityHint) {
6250
+ workflowSection += `
6251
+
6252
+ ${capabilityHint}`;
6204
6253
  }
6205
6254
  workflowSection += "\n\nCall `whats_next()` after user messages.";
6206
6255
  return `## ${phaseName} Phase
@@ -8273,6 +8322,11 @@ var WhatsNextHandler = class extends ConversationRequiredToolHandler {
8273
8322
  );
8274
8323
  const phaseState = stateMachine.states[transitionResult.newPhase];
8275
8324
  const allowedFilePatterns = phaseState?.allowed_file_patterns ?? ["**/*"];
8325
+ const requiredCapability = phaseState?.required_capability;
8326
+ const projectConfig = ConfigManager.loadProjectConfig(
8327
+ conversationContext.projectPath
8328
+ );
8329
+ const capabilityConfig = requiredCapability ? projectConfig?.capability_models?.[requiredCapability] : void 0;
8276
8330
  const instructions = await context.instructionGenerator.generateInstructions(
8277
8331
  transitionResult.instructions,
8278
8332
  {
@@ -8284,7 +8338,9 @@ var WhatsNextHandler = class extends ConversationRequiredToolHandler {
8284
8338
  transitionReason: transitionResult.transitionReason,
8285
8339
  isModeled: transitionResult.isModeled,
8286
8340
  instructionSource: "whats_next",
8287
- allowedFilePatterns
8341
+ allowedFilePatterns,
8342
+ requiredCapability,
8343
+ capabilityConfig
8288
8344
  }
8289
8345
  );
8290
8346
  let finalInstructions = instructions.instructions;
@@ -8445,6 +8501,11 @@ var ProceedToPhaseHandler = class extends ConversationRequiredToolHandler {
8445
8501
  );
8446
8502
  const phaseState = stateMachine.states[transitionResult.newPhase];
8447
8503
  const allowedFilePatterns = phaseState?.allowed_file_patterns ?? ["**/*"];
8504
+ const requiredCapability = phaseState?.required_capability;
8505
+ const projectConfig = ConfigManager.loadProjectConfig(
8506
+ conversationContext.projectPath
8507
+ );
8508
+ const capabilityConfig = requiredCapability ? projectConfig?.capability_models?.[requiredCapability] : void 0;
8448
8509
  const instructions = await context.instructionGenerator.generateInstructions(
8449
8510
  transitionResult.instructions,
8450
8511
  {
@@ -8456,7 +8517,9 @@ var ProceedToPhaseHandler = class extends ConversationRequiredToolHandler {
8456
8517
  transitionReason: transitionResult.transitionReason,
8457
8518
  isModeled: transitionResult.isModeled,
8458
8519
  instructionSource: "proceed_to_phase",
8459
- allowedFilePatterns
8520
+ allowedFilePatterns,
8521
+ requiredCapability,
8522
+ capabilityConfig
8460
8523
  }
8461
8524
  );
8462
8525
  let finalInstructions = instructions.instructions;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codemcp/workflows-server",
3
- "version": "6.20.1",
3
+ "version": "6.21.0",
4
4
  "description": "MCP server for responsible-vibe development workflows - provides structured workflow guidance",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -0,0 +1,13 @@
1
+ ---
2
+ description: "Subagent for code generation and editing, focused on idiomatic patterns and minimal scope."
3
+ mode: subagent
4
+ model: ${model}
5
+ ---
6
+
7
+ You are the `${capability}` subagent for the workflows system. Your job is to implement focused, high-quality code changes on behalf of the parent agent.
8
+
9
+ Read the file you are about to edit before changing it. Match the surrounding style: indentation, naming, import order, error-handling conventions, and test patterns. Prefer small, surgical edits over large rewrites — change as little as possible to satisfy the requirement, and leave unrelated code untouched.
10
+
11
+ Write idiomatic code for the language and framework in use. Avoid clever one-liners, speculative abstractions, or new dependencies unless they are clearly justified. When a fix could be done two ways, pick the simpler one and note the trade-off in a short comment if it matters.
12
+
13
+ Run the relevant tests and linters when you can. If a build or test fails, do not declare success — diagnose and fix the root cause rather than papering over it. Never commit, push, or modify git state unless the parent agent explicitly instructs you to.
@@ -0,0 +1,13 @@
1
+ ---
2
+ description: "Subagent for fast information gathering and codebase exploration."
3
+ mode: subagent
4
+ model: ${model}
5
+ ---
6
+
7
+ You are the `${capability}` subagent for the workflows system. Your job is to gather information quickly and report back concisely to the parent agent.
8
+
9
+ Search the codebase, documentation, and any provided context before answering. Use the most targeted query you can — exact symbol names, file paths, or distinctive error messages — before falling back to broader patterns. When a question can be answered by reading one or two files, just read them instead of guessing.
10
+
11
+ Report findings as a tight, structured summary: the direct answer first, then supporting evidence with file paths and line numbers. Quote only the snippets that matter. Do not paraphrase code when the original is clearer.
12
+
13
+ Avoid making changes. Do not implement, refactor, or "fix while you're there" — your job is to inform the parent's decision, not to make it. If a question cannot be answered from the available context, say so plainly and suggest the next investigation step.
@@ -0,0 +1,13 @@
1
+ ---
2
+ description: "Subagent for deep reasoning, complex planning, and architectural trade-off analysis."
3
+ mode: subagent
4
+ model: ${model}
5
+ ---
6
+
7
+ You are the `${capability}` subagent for the workflows system. Your job is to support the parent agent during phases that demand careful reasoning, planning, and architectural analysis.
8
+
9
+ Approach problems methodically. Read the relevant code, surrounding tests, and any linked design notes before forming an opinion. When a question involves trade-offs, lay out the options with their concrete consequences rather than jumping to a single answer. Distinguish clearly between observed facts, reasonable inferences, and assumptions that still need verification.
10
+
11
+ Prefer structured output: short bullet lists, named options, and explicit recommendation with rationale. Call out open questions, risks, and edge cases the parent agent should not overlook. When a decision depends on values (readability, performance, maintainability, scope) name them rather than hand-waving.
12
+
13
+ Avoid making code changes unless the parent agent explicitly asks you to. Your primary value is sharp thinking, not typing. Do not invent APIs, file paths, or version numbers — when uncertain, say so and point at where to verify.
@@ -26,10 +26,13 @@ metadata:
26
26
  states:
27
27
  reproduce:
28
28
  description: 'Reproduce and understand the bug'
29
+ required_capability: 'research'
29
30
  allowed_file_patterns:
30
31
  - '**/*.md'
31
32
  - '**/*.txt'
32
33
  - '**/*.adoc'
34
+ - '**/*test*'
35
+ - '**/*spec*'
33
36
  default_instructions: |
34
37
  Gather specific information to reliably reproduce the reported bug:
35
38
  - What are the exact OS, browser/runtime versions, and hardware specs?
@@ -46,6 +49,7 @@ states:
46
49
 
47
50
  analyze:
48
51
  description: 'Analyze the bug and identify root cause'
52
+ required_capability: 'thinking'
49
53
  allowed_file_patterns:
50
54
  - '**/*.md'
51
55
  - '**/*.txt'
@@ -74,6 +78,7 @@ states:
74
78
 
75
79
  fix:
76
80
  description: 'Implement the bug fix'
81
+ required_capability: 'coding'
77
82
  allowed_file_patterns:
78
83
  - '**/*'
79
84
  default_instructions: |
@@ -110,6 +115,7 @@ states:
110
115
 
111
116
  verify:
112
117
  description: 'Verify the fix and ensure no regressions'
118
+ required_capability: 'thinking'
113
119
  allowed_file_patterns:
114
120
  - '**/*'
115
121
  default_instructions: Test the fix thoroughly to ensure the original bug is resolved and no new issues were introduced. Run existing tests, create new ones if needed, and verify the solution is robust.
@@ -26,6 +26,7 @@ metadata:
26
26
  states:
27
27
  explore:
28
28
  description: 'Research and exploration phase - understanding the problem space'
29
+ required_capability: 'research'
29
30
  allowed_file_patterns:
30
31
  - '**/*.md'
31
32
  - '**/*.txt'
@@ -48,6 +49,7 @@ states:
48
49
 
49
50
  plan:
50
51
  description: 'Planning phase - creating a detailed implementation strategy'
52
+ required_capability: 'thinking'
51
53
  allowed_file_patterns:
52
54
  - '**/*.md'
53
55
  - '**/*.txt'
@@ -92,6 +94,7 @@ states:
92
94
 
93
95
  code:
94
96
  description: 'Implementation phase - writing and building the solution'
97
+ required_capability: 'coding'
95
98
  allowed_file_patterns:
96
99
  - '**/*'
97
100
  default_instructions: |
@@ -27,6 +27,7 @@ metadata:
27
27
  states:
28
28
  ideation:
29
29
  description: 'Deep requirements discovery and PRD creation phase'
30
+ required_capability: 'thinking'
30
31
  allowed_file_patterns:
31
32
  - '**/*.md'
32
33
  - '**/*.txt'
@@ -51,6 +52,7 @@ states:
51
52
 
52
53
  architecture:
53
54
  description: 'Tech stack selection and architecture design phase'
55
+ required_capability: 'thinking'
54
56
  allowed_file_patterns:
55
57
  - '**/*.md'
56
58
  - '**/*.txt'
@@ -130,6 +132,7 @@ states:
130
132
 
131
133
  code:
132
134
  description: 'Implementation phase following the established plan and architecture'
135
+ required_capability: 'coding'
133
136
  allowed_file_patterns:
134
137
  - '**/*'
135
138
  default_instructions: |
@@ -57,6 +57,7 @@ states:
57
57
 
58
58
  review_architecture:
59
59
  description: 'Review whether the change is in the right place and respects existing structure'
60
+ required_capability: 'thinking'
60
61
  default_instructions: |
61
62
  Evaluate the structural decisions in the change against the confirmed intent:
62
63
 
@@ -93,6 +94,7 @@ states:
93
94
 
94
95
  review_correctness:
95
96
  description: 'Review whether the logic correctly achieves the confirmed intent'
97
+ required_capability: 'thinking'
96
98
  default_instructions: |
97
99
  Evaluate the logic of the change against the confirmed intent:
98
100
 
@@ -54,6 +54,7 @@ states:
54
54
 
55
55
  research:
56
56
  description: 'Gather facts without forming conclusions or proposing solutions'
57
+ required_capability: 'research'
57
58
  allowed_file_patterns:
58
59
  - '**/*.md'
59
60
  - '**/*.txt'
@@ -81,6 +82,7 @@ states:
81
82
 
82
83
  design:
83
84
  description: 'Explore options and reach consensus on WHAT and high-level HOW'
85
+ required_capability: 'thinking'
84
86
  allowed_file_patterns:
85
87
  - '**/*.md'
86
88
  - '**/*.txt'
@@ -114,6 +116,7 @@ states:
114
116
 
115
117
  structure:
116
118
  description: 'Decompose the approved design into end-to-end vertical slices'
119
+ required_capability: 'thinking'
117
120
  allowed_file_patterns:
118
121
  - '**/*.md'
119
122
  - '**/*.txt'
@@ -143,6 +146,7 @@ states:
143
146
 
144
147
  plan:
145
148
  description: 'Create a detailed implementation plan per vertical slice'
149
+ required_capability: 'thinking'
146
150
  allowed_file_patterns:
147
151
  - '**/*.md'
148
152
  - '**/*.txt'
@@ -182,6 +186,7 @@ states:
182
186
 
183
187
  implement:
184
188
  description: 'Build the solution slice by slice'
189
+ required_capability: 'coding'
185
190
  allowed_file_patterns:
186
191
  - '**/*'
187
192
  default_instructions: |
@@ -26,6 +26,7 @@ metadata:
26
26
  states:
27
27
  explore:
28
28
  description: 'Research and exploration phase - understanding the problem space and codebase'
29
+ required_capability: 'research'
29
30
  allowed_file_patterns:
30
31
  - '**/*.md'
31
32
  - '**/*.txt'
@@ -50,6 +51,7 @@ states:
50
51
 
51
52
  red:
52
53
  description: 'RED phase - Write a failing test that defines the expected behavior'
54
+ required_capability: 'thinking'
53
55
  allowed_file_patterns:
54
56
  - '**/*'
55
57
  default_instructions: |
@@ -87,6 +89,7 @@ states:
87
89
 
88
90
  green:
89
91
  description: 'GREEN phase - Write only the necessary code to make the test pass'
92
+ required_capability: 'coding'
90
93
  allowed_file_patterns:
91
94
  - '**/*'
92
95
  default_instructions: |
@@ -27,6 +27,7 @@ metadata:
27
27
  states:
28
28
  requirements:
29
29
  description: 'Gathering and analyzing requirements'
30
+ required_capability: 'research'
30
31
  allowed_file_patterns:
31
32
  - '**/*.md'
32
33
  - '**/*.txt'
@@ -53,6 +54,7 @@ states:
53
54
 
54
55
  design:
55
56
  description: 'Technical design and architecture planning'
57
+ required_capability: 'thinking'
56
58
  allowed_file_patterns:
57
59
  - '**/*.md'
58
60
  - '**/*.txt'
@@ -80,6 +82,7 @@ states:
80
82
 
81
83
  implementation:
82
84
  description: 'Building the solution according to design'
85
+ required_capability: 'coding'
83
86
  allowed_file_patterns:
84
87
  - '**/*'
85
88
  default_instructions: |