@codemcp/workflows 6.20.2 → 6.22.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 (135) hide show
  1. package/package.json +2 -2
  2. package/packages/cli/dist/{chunk-4N42FFJE.js → chunk-QMPDZD7D.js} +117 -2674
  3. package/packages/cli/dist/{cli-MFHC7UWY.js → cli-CY4PLNWR.js} +475 -34
  4. package/packages/cli/dist/{dist-ISN3FRV4.js → dist-6BKGI5U7.js} +91 -8
  5. package/packages/cli/dist/{dist-TDV3DJ2J.js → dist-S4HQ3JQN.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/dist/system-prompt-generator.js +26 -4
  32. package/packages/core/dist/system-prompt-generator.js.map +1 -1
  33. package/packages/core/package.json +1 -1
  34. package/packages/core/resources/templates/opencode-agents/coding.md.tmpl +13 -0
  35. package/packages/core/resources/templates/opencode-agents/research.md.tmpl +13 -0
  36. package/packages/core/resources/templates/opencode-agents/thinking.md.tmpl +13 -0
  37. package/packages/core/resources/workflows/bugfix.yaml +6 -0
  38. package/packages/core/resources/workflows/epcc.yaml +3 -0
  39. package/packages/core/resources/workflows/greenfield.yaml +3 -0
  40. package/packages/core/resources/workflows/pr-review.yaml +2 -0
  41. package/packages/core/resources/workflows/qrspi.yaml +5 -0
  42. package/packages/core/resources/workflows/tdd.yaml +3 -0
  43. package/packages/core/resources/workflows/waterfall.yaml +3 -0
  44. package/packages/docs/.vitepress/dist/404.html +1 -1
  45. package/packages/docs/.vitepress/dist/assets/user_capability-routing.md.DbNKvMiS.js +15 -0
  46. package/packages/docs/.vitepress/dist/assets/user_capability-routing.md.DbNKvMiS.lean.js +1 -0
  47. package/packages/docs/.vitepress/dist/dev/ARCHITECTURE.html +2 -2
  48. package/packages/docs/.vitepress/dist/dev/DEVELOPMENT.html +2 -2
  49. package/packages/docs/.vitepress/dist/dev/LOGGING.html +2 -2
  50. package/packages/docs/.vitepress/dist/dev/PUBLISHING.html +2 -2
  51. package/packages/docs/.vitepress/dist/hashmap.json +1 -1
  52. package/packages/docs/.vitepress/dist/index.html +2 -2
  53. package/packages/docs/.vitepress/dist/user/advanced-engineering.html +3 -3
  54. package/packages/docs/.vitepress/dist/user/agent-setup.html +3 -3
  55. package/packages/docs/.vitepress/dist/user/beads-integration.html +2 -2
  56. package/packages/docs/.vitepress/dist/user/capability-routing.html +40 -0
  57. package/packages/docs/.vitepress/dist/user/crowd-mcp-integration.html +2 -2
  58. package/packages/docs/.vitepress/dist/user/custom-workflows.html +2 -2
  59. package/packages/docs/.vitepress/dist/user/git-commit-feature.html +2 -2
  60. package/packages/docs/.vitepress/dist/user/how-it-works.html +2 -2
  61. package/packages/docs/.vitepress/dist/user/long-term-memory.html +2 -2
  62. package/packages/docs/.vitepress/dist/user/packaged-workflows.html +2 -2
  63. package/packages/docs/.vitepress/dist/user/tutorial.html +2 -2
  64. package/packages/docs/.vitepress/dist/user/workflow-selection.html +2 -2
  65. package/packages/docs/.vitepress/dist/workflows/adr.html +1 -1
  66. package/packages/docs/.vitepress/dist/workflows/big-bang-conversion.html +1 -1
  67. package/packages/docs/.vitepress/dist/workflows/boundary-testing.html +1 -1
  68. package/packages/docs/.vitepress/dist/workflows/bugfix.html +1 -1
  69. package/packages/docs/.vitepress/dist/workflows/bugfix.yaml +6 -0
  70. package/packages/docs/.vitepress/dist/workflows/business-analysis.html +1 -1
  71. package/packages/docs/.vitepress/dist/workflows/c4-analysis.html +1 -1
  72. package/packages/docs/.vitepress/dist/workflows/epcc.html +1 -1
  73. package/packages/docs/.vitepress/dist/workflows/epcc.yaml +3 -0
  74. package/packages/docs/.vitepress/dist/workflows/game-beginner.html +1 -1
  75. package/packages/docs/.vitepress/dist/workflows/greenfield.html +1 -1
  76. package/packages/docs/.vitepress/dist/workflows/greenfield.yaml +3 -0
  77. package/packages/docs/.vitepress/dist/workflows/minor.html +1 -1
  78. package/packages/docs/.vitepress/dist/workflows/posts.html +1 -1
  79. package/packages/docs/.vitepress/dist/workflows/pr-review.html +1 -1
  80. package/packages/docs/.vitepress/dist/workflows/pr-review.yaml +2 -0
  81. package/packages/docs/.vitepress/dist/workflows/qrspi.html +1 -1
  82. package/packages/docs/.vitepress/dist/workflows/qrspi.yaml +5 -0
  83. package/packages/docs/.vitepress/dist/workflows/sdd-bugfix-crowd.html +1 -1
  84. package/packages/docs/.vitepress/dist/workflows/sdd-bugfix.html +1 -1
  85. package/packages/docs/.vitepress/dist/workflows/sdd-feature-crowd.html +1 -1
  86. package/packages/docs/.vitepress/dist/workflows/sdd-feature.html +1 -1
  87. package/packages/docs/.vitepress/dist/workflows/sdd-greenfield-crowd.html +1 -1
  88. package/packages/docs/.vitepress/dist/workflows/sdd-greenfield.html +1 -1
  89. package/packages/docs/.vitepress/dist/workflows/skilled-bugfix.html +1 -1
  90. package/packages/docs/.vitepress/dist/workflows/skilled-epcc.html +1 -1
  91. package/packages/docs/.vitepress/dist/workflows/skilled-greenfield.html +1 -1
  92. package/packages/docs/.vitepress/dist/workflows/slides.html +1 -1
  93. package/packages/docs/.vitepress/dist/workflows/tdd.html +1 -1
  94. package/packages/docs/.vitepress/dist/workflows/tdd.yaml +3 -0
  95. package/packages/docs/.vitepress/dist/workflows/waterfall.html +1 -1
  96. package/packages/docs/.vitepress/dist/workflows/waterfall.yaml +3 -0
  97. package/packages/docs/.vitepress/dist/workflows.html +1 -1
  98. package/packages/docs/package.json +1 -1
  99. package/packages/mcp-server/dist/index.js +93 -8
  100. package/packages/mcp-server/package.json +1 -1
  101. package/packages/mcp-server/resources/templates/opencode-agents/coding.md.tmpl +13 -0
  102. package/packages/mcp-server/resources/templates/opencode-agents/research.md.tmpl +13 -0
  103. package/packages/mcp-server/resources/templates/opencode-agents/thinking.md.tmpl +13 -0
  104. package/packages/mcp-server/resources/workflows/bugfix.yaml +6 -0
  105. package/packages/mcp-server/resources/workflows/epcc.yaml +3 -0
  106. package/packages/mcp-server/resources/workflows/greenfield.yaml +3 -0
  107. package/packages/mcp-server/resources/workflows/pr-review.yaml +2 -0
  108. package/packages/mcp-server/resources/workflows/qrspi.yaml +5 -0
  109. package/packages/mcp-server/resources/workflows/tdd.yaml +3 -0
  110. package/packages/mcp-server/resources/workflows/waterfall.yaml +3 -0
  111. package/packages/opencode-plugin/dist/index.js +93 -8
  112. package/packages/opencode-plugin/package.json +1 -1
  113. package/packages/opencode-plugin/resources/templates/opencode-agents/coding.md.tmpl +13 -0
  114. package/packages/opencode-plugin/resources/templates/opencode-agents/research.md.tmpl +13 -0
  115. package/packages/opencode-plugin/resources/templates/opencode-agents/thinking.md.tmpl +13 -0
  116. package/packages/opencode-plugin/resources/workflows/bugfix.yaml +6 -0
  117. package/packages/opencode-plugin/resources/workflows/epcc.yaml +3 -0
  118. package/packages/opencode-plugin/resources/workflows/greenfield.yaml +3 -0
  119. package/packages/opencode-plugin/resources/workflows/pr-review.yaml +2 -0
  120. package/packages/opencode-plugin/resources/workflows/qrspi.yaml +5 -0
  121. package/packages/opencode-plugin/resources/workflows/tdd.yaml +3 -0
  122. package/packages/opencode-plugin/resources/workflows/waterfall.yaml +3 -0
  123. package/packages/opencode-tui-plugin/package.json +1 -1
  124. package/packages/visualizer/package.json +1 -1
  125. package/resources/state-machine-schema.json +4 -0
  126. package/resources/templates/opencode-agents/coding.md.tmpl +13 -0
  127. package/resources/templates/opencode-agents/research.md.tmpl +13 -0
  128. package/resources/templates/opencode-agents/thinking.md.tmpl +13 -0
  129. package/resources/workflows/bugfix.yaml +6 -0
  130. package/resources/workflows/epcc.yaml +3 -0
  131. package/resources/workflows/greenfield.yaml +3 -0
  132. package/resources/workflows/pr-review.yaml +2 -0
  133. package/resources/workflows/qrspi.yaml +5 -0
  134. package/resources/workflows/tdd.yaml +3 -0
  135. package/resources/workflows/waterfall.yaml +3 -0
@@ -19,7 +19,7 @@
19
19
  <script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
20
20
  </head>
21
21
  <body>
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 has-sidebar" 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" 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 has-sidebar empty" data-v-c1df4d5c data-v-d06e114f><div class="container" data-v-d06e114f><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-d06e114f><span class="vpi-align-left menu-icon" data-v-d06e114f></span><span class="menu-text" data-v-d06e114f>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-d06e114f data-v-aab1d107><button data-v-aab1d107>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-c1df4d5c data-v-026681b8><div class="curtain" data-v-026681b8></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-026681b8><span class="visually-hidden" id="sidebar-aria-label" data-v-026681b8> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-03a62be3><section class="VPSidebarItem level-0" data-v-03a62be3 data-v-cb4e7117><div class="item" role="button" tabindex="0" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><h2 class="text" data-v-cb4e7117>User Guide</h2><!----></div><div class="items" data-v-cb4e7117><!--[--><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Overview</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/how-it-works.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>How It Works</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/agent-setup.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Agent Setup</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/advanced-engineering.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Vibe Engineering</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/long-term-memory.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Long-Term Memory</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/beads-integration.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Beads-Integration</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/tutorial.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Tutorial</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-03a62be3><section class="VPSidebarItem level-0" data-v-03a62be3 data-v-cb4e7117><div class="item" role="button" tabindex="0" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><h2 class="text" data-v-cb4e7117>Workflows</h2><!----></div><div class="items" data-v-cb4e7117><!--[--><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/workflow-selection.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Workflow-Selection</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/packaged-workflows.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Packaged Workflows</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/custom-workflows.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Custom Workflows</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/workflows.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Explore All Workflows</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/crowd-mcp-integration.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Crowd MCP Integration</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-c1df4d5c data-v-28fa4ed1><div class="VPDoc has-sidebar has-aside" data-v-28fa4ed1 data-v-cda1d691><!--[--><!--]--><div class="container" data-v-cda1d691><div class="aside" data-v-cda1d691><div class="aside-curtain" data-v-cda1d691></div><div class="aside-container" data-v-cda1d691><div class="aside-content" data-v-cda1d691><div class="VPDocAside" data-v-cda1d691 data-v-0199d109><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-0199d109 data-v-9d908c55><div class="content" data-v-9d908c55><div class="outline-marker" data-v-9d908c55></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-9d908c55>On this page</div><ul class="VPDocOutlineItem root" data-v-9d908c55 data-v-f1d87f0d><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-0199d109></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><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_dev_ARCHITECTURE" data-v-cda1d691><div><h1 id="architecture" tabindex="-1">Architecture <a class="header-anchor" href="#architecture" aria-label="Permalink to &quot;Architecture&quot;">​</a></h1><p>This document provides detailed information about the Responsible Vibe MCP Server architecture, components, and design principles.</p><h2 id="information-architecture" tabindex="-1">Information Architecture <a class="header-anchor" href="#information-architecture" aria-label="Permalink to &quot;Information Architecture&quot;">​</a></h2><p>Responsible-Vibe-MCP implements a <strong>plan-file-centric information architecture</strong> with clear separation of responsibilities across different components:</p><h3 id="information-component-responsibilities" tabindex="-1">Information Component Responsibilities <a class="header-anchor" href="#information-component-responsibilities" aria-label="Permalink to &quot;Information Component Responsibilities&quot;">​</a></h3><table tabindex="0"><thead><tr><th><strong>Component</strong></th><th><strong>Responsibility</strong></th><th><strong>Information Type</strong></th><th><strong>Maintenance</strong></th></tr></thead><tbody><tr><td><strong>System Prompt</strong></td><td>Generic workflow guidance</td><td>How to use the system</td><td>Static</td></tr><tr><td><strong>Tool Descriptions</strong></td><td>Generic tool usage</td><td>What each tool does</td><td>Static</td></tr><tr><td><strong>Tool Responses</strong></td><td>Dynamic phase guidance</td><td>What to do right now</td><td>Dynamic</td></tr><tr><td><strong>Plan File</strong></td><td>Project context &amp; tasks</td><td>What we&#39;ve done/decided</td><td>LLM-maintained</td></tr></tbody></table><h3 id="core-principles" tabindex="-1">Core Principles <a class="header-anchor" href="#core-principles" aria-label="Permalink to &quot;Core Principles&quot;">​</a></h3><h4 id="_1-static-components-stay-generic" tabindex="-1"><strong>1. Static Components Stay Generic</strong> <a class="header-anchor" href="#_1-static-components-stay-generic" aria-label="Permalink to &quot;**1. Static Components Stay Generic**&quot;">​</a></h4><ul><li><strong>System Prompt</strong>: Workflow-agnostic instructions on tool usage patterns</li><li><strong>Tool Descriptions</strong>: Generic tool purposes without hardcoded phase names</li><li><strong>Benefit</strong>: Works with any workflow (built-in or custom)</li></ul><h4 id="_2-dynamic-guidance-through-tool-responses" tabindex="-1"><strong>2. Dynamic Guidance Through Tool Responses</strong> <a class="header-anchor" href="#_2-dynamic-guidance-through-tool-responses" aria-label="Permalink to &quot;**2. Dynamic Guidance Through Tool Responses**&quot;">​</a></h4><ul><li><strong>Tool responses provide</strong>: Phase-specific instructions, user interaction guidance, completion criteria</li><li><strong>Plan-file-referential</strong>: &quot;Check your plan file&#39;s Design section for current tasks&quot;</li><li><strong>Context-aware</strong>: Adapts to current project state and progress</li></ul><h4 id="_3-plan-file-as-single-source-of-truth" tabindex="-1"><strong>3. Plan File as Single Source of Truth</strong> <a class="header-anchor" href="#_3-plan-file-as-single-source-of-truth" aria-label="Permalink to &quot;**3. Plan File as Single Source of Truth**&quot;">​</a></h4><ul><li><strong>Contains</strong>: Task lists per phase, key decisions, project context</li><li><strong>Structure</strong>: Simple, LLM-maintainable (no complex dynamic elements)</li><li><strong>Purpose</strong>: Task tracker and decision log, not workflow guide</li></ul><h4 id="_4-clear-separation-of-concerns" tabindex="-1"><strong>4. Clear Separation of Concerns</strong> <a class="header-anchor" href="#_4-clear-separation-of-concerns" aria-label="Permalink to &quot;**4. Clear Separation of Concerns**&quot;">​</a></h4><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>System Prompt: &quot;How to use tools&quot;</span></span>
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 has-sidebar" 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" 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 has-sidebar empty" data-v-c1df4d5c data-v-d06e114f><div class="container" data-v-d06e114f><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-d06e114f><span class="vpi-align-left menu-icon" data-v-d06e114f></span><span class="menu-text" data-v-d06e114f>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-d06e114f data-v-aab1d107><button data-v-aab1d107>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-c1df4d5c data-v-026681b8><div class="curtain" data-v-026681b8></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-026681b8><span class="visually-hidden" id="sidebar-aria-label" data-v-026681b8> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-03a62be3><section class="VPSidebarItem level-0" data-v-03a62be3 data-v-cb4e7117><div class="item" role="button" tabindex="0" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><h2 class="text" data-v-cb4e7117>User Guide</h2><!----></div><div class="items" data-v-cb4e7117><!--[--><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Overview</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/how-it-works.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>How It Works</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/agent-setup.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Agent Setup</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/capability-routing.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Capability Routing</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/advanced-engineering.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Vibe Engineering</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/long-term-memory.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Long-Term Memory</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/beads-integration.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Beads-Integration</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/tutorial.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Tutorial</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-03a62be3><section class="VPSidebarItem level-0" data-v-03a62be3 data-v-cb4e7117><div class="item" role="button" tabindex="0" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><h2 class="text" data-v-cb4e7117>Workflows</h2><!----></div><div class="items" data-v-cb4e7117><!--[--><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/workflow-selection.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Workflow-Selection</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/packaged-workflows.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Packaged Workflows</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/custom-workflows.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Custom Workflows</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/workflows.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Explore All Workflows</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/crowd-mcp-integration.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Crowd MCP Integration</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-c1df4d5c data-v-28fa4ed1><div class="VPDoc has-sidebar has-aside" data-v-28fa4ed1 data-v-cda1d691><!--[--><!--]--><div class="container" data-v-cda1d691><div class="aside" data-v-cda1d691><div class="aside-curtain" data-v-cda1d691></div><div class="aside-container" data-v-cda1d691><div class="aside-content" data-v-cda1d691><div class="VPDocAside" data-v-cda1d691 data-v-0199d109><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-0199d109 data-v-9d908c55><div class="content" data-v-9d908c55><div class="outline-marker" data-v-9d908c55></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-9d908c55>On this page</div><ul class="VPDocOutlineItem root" data-v-9d908c55 data-v-f1d87f0d><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-0199d109></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><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_dev_ARCHITECTURE" data-v-cda1d691><div><h1 id="architecture" tabindex="-1">Architecture <a class="header-anchor" href="#architecture" aria-label="Permalink to &quot;Architecture&quot;">​</a></h1><p>This document provides detailed information about the Responsible Vibe MCP Server architecture, components, and design principles.</p><h2 id="information-architecture" tabindex="-1">Information Architecture <a class="header-anchor" href="#information-architecture" aria-label="Permalink to &quot;Information Architecture&quot;">​</a></h2><p>Responsible-Vibe-MCP implements a <strong>plan-file-centric information architecture</strong> with clear separation of responsibilities across different components:</p><h3 id="information-component-responsibilities" tabindex="-1">Information Component Responsibilities <a class="header-anchor" href="#information-component-responsibilities" aria-label="Permalink to &quot;Information Component Responsibilities&quot;">​</a></h3><table tabindex="0"><thead><tr><th><strong>Component</strong></th><th><strong>Responsibility</strong></th><th><strong>Information Type</strong></th><th><strong>Maintenance</strong></th></tr></thead><tbody><tr><td><strong>System Prompt</strong></td><td>Generic workflow guidance</td><td>How to use the system</td><td>Static</td></tr><tr><td><strong>Tool Descriptions</strong></td><td>Generic tool usage</td><td>What each tool does</td><td>Static</td></tr><tr><td><strong>Tool Responses</strong></td><td>Dynamic phase guidance</td><td>What to do right now</td><td>Dynamic</td></tr><tr><td><strong>Plan File</strong></td><td>Project context &amp; tasks</td><td>What we&#39;ve done/decided</td><td>LLM-maintained</td></tr></tbody></table><h3 id="core-principles" tabindex="-1">Core Principles <a class="header-anchor" href="#core-principles" aria-label="Permalink to &quot;Core Principles&quot;">​</a></h3><h4 id="_1-static-components-stay-generic" tabindex="-1"><strong>1. Static Components Stay Generic</strong> <a class="header-anchor" href="#_1-static-components-stay-generic" aria-label="Permalink to &quot;**1. Static Components Stay Generic**&quot;">​</a></h4><ul><li><strong>System Prompt</strong>: Workflow-agnostic instructions on tool usage patterns</li><li><strong>Tool Descriptions</strong>: Generic tool purposes without hardcoded phase names</li><li><strong>Benefit</strong>: Works with any workflow (built-in or custom)</li></ul><h4 id="_2-dynamic-guidance-through-tool-responses" tabindex="-1"><strong>2. Dynamic Guidance Through Tool Responses</strong> <a class="header-anchor" href="#_2-dynamic-guidance-through-tool-responses" aria-label="Permalink to &quot;**2. Dynamic Guidance Through Tool Responses**&quot;">​</a></h4><ul><li><strong>Tool responses provide</strong>: Phase-specific instructions, user interaction guidance, completion criteria</li><li><strong>Plan-file-referential</strong>: &quot;Check your plan file&#39;s Design section for current tasks&quot;</li><li><strong>Context-aware</strong>: Adapts to current project state and progress</li></ul><h4 id="_3-plan-file-as-single-source-of-truth" tabindex="-1"><strong>3. Plan File as Single Source of Truth</strong> <a class="header-anchor" href="#_3-plan-file-as-single-source-of-truth" aria-label="Permalink to &quot;**3. Plan File as Single Source of Truth**&quot;">​</a></h4><ul><li><strong>Contains</strong>: Task lists per phase, key decisions, project context</li><li><strong>Structure</strong>: Simple, LLM-maintainable (no complex dynamic elements)</li><li><strong>Purpose</strong>: Task tracker and decision log, not workflow guide</li></ul><h4 id="_4-clear-separation-of-concerns" tabindex="-1"><strong>4. Clear Separation of Concerns</strong> <a class="header-anchor" href="#_4-clear-separation-of-concerns" aria-label="Permalink to &quot;**4. Clear Separation of Concerns**&quot;">​</a></h4><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>System Prompt: &quot;How to use tools&quot;</span></span>
23
23
  <span class="line"><span>Tool Descriptions: &quot;What tools do&quot; (generic)</span></span>
24
24
  <span class="line"><span>Tool Responses: &quot;Check plan file section X, work on tasks Y, Z&quot; (specific)</span></span>
25
25
  <span class="line"><span>Plan File: &quot;[ ] Task 1 [x] Task 2 Decision: chose approach A&quot; (tracking)</span></span></code></pre></div><h3 id="benefits-of-this-architecture" tabindex="-1">Benefits of This Architecture <a class="header-anchor" href="#benefits-of-this-architecture" aria-label="Permalink to &quot;Benefits of This Architecture&quot;">​</a></h3><ul><li><strong>✅ Workflow Flexibility</strong>: Static components work with any workflow type</li><li><strong>✅ Maintainable</strong>: No hardcoded workflow information in static descriptions</li><li><strong>✅ User Transparency</strong>: Users see the same plan file the LLM follows</li><li><strong>✅ Consistent Guidance</strong>: All dynamic instructions come from tool responses</li><li><strong>✅ Simple Maintenance</strong>: LLM only updates simple task lists and decisions</li></ul><h2 id="monorepo-architecture" tabindex="-1">Monorepo Architecture <a class="header-anchor" href="#monorepo-architecture" aria-label="Permalink to &quot;Monorepo Architecture&quot;">​</a></h2><p>Responsible-Vibe-MCP is organized as a monorepo with clear package separation and dependency management:</p><h3 id="package-structure" tabindex="-1">Package Structure <a class="header-anchor" href="#package-structure" aria-label="Permalink to &quot;Package Structure&quot;">​</a></h3><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>@codemcp/workflows/</span></span>
@@ -149,7 +149,7 @@
149
149
  <span class="line"></span>
150
150
  <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Pretty-print with jq</span></span>
151
151
  <span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">cat</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .vibe/conversations/my-project-main-abc123/interactions.jsonl</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> jq</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .</span></span></code></pre></div><p><strong>Note</strong>: All interaction data is stored locally on your system and is never transmitted to external services.</p><h2 id="task-backend-architecture" tabindex="-1">Task Backend Architecture <a class="header-anchor" href="#task-backend-architecture" aria-label="Permalink to &quot;Task Backend Architecture&quot;">​</a></h2><p>The system supports multiple task management backends through a factory pattern for component substitution.</p><h3 id="backend-detection" tabindex="-1">Backend Detection <a class="header-anchor" href="#backend-detection" aria-label="Permalink to &quot;Backend Detection&quot;">​</a></h3><p>At startup, the system auto-detects the task backend. If the <code>bd</code> command is available, beads is used; otherwise markdown is used. This can be overridden via the <code>TASK_BACKEND</code> environment variable (<code>markdown</code> or <code>beads</code>).</p><h3 id="component-factory" tabindex="-1">Component Factory <a class="header-anchor" href="#component-factory" aria-label="Permalink to &quot;Component Factory&quot;">​</a></h3><p>The ServerComponentsFactory creates appropriate implementations based on detected task backend configuration.</p><h3 id="component-responsibilities" tabindex="-1">Component Responsibilities <a class="header-anchor" href="#component-responsibilities" aria-label="Permalink to &quot;Component Responsibilities&quot;">​</a></h3><p>Task management functionality varies between backends:</p><ul><li><strong>Plan Management</strong>: Markdown backends use traditional plan files with checkboxes; beads backends reference task hierarchies</li><li><strong>Instruction Generation</strong>: Markdown backends provide generic task guidance; beads backends provide CLI command guidance</li><li><strong>Task Operations</strong>: Markdown backends store tasks in plan files; beads backends integrate with CLI tools for task lifecycle management</li></ul></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><!----></div><div class="pager" data-v-5253e96b><a class="VPLink link pager-link next" href="/workflows/" data-v-5253e96b><!--[--><span class="desc" data-v-5253e96b>Next page</span><span class="title" data-v-5253e96b>Overview</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
152
- <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>
152
+ <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>
153
153
 
154
154
  </body>
155
155
  </html>
@@ -19,7 +19,7 @@
19
19
  <script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
20
20
  </head>
21
21
  <body>
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 has-sidebar" 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" 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 has-sidebar empty" data-v-c1df4d5c data-v-d06e114f><div class="container" data-v-d06e114f><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-d06e114f><span class="vpi-align-left menu-icon" data-v-d06e114f></span><span class="menu-text" data-v-d06e114f>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-d06e114f data-v-aab1d107><button data-v-aab1d107>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-c1df4d5c data-v-026681b8><div class="curtain" data-v-026681b8></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-026681b8><span class="visually-hidden" id="sidebar-aria-label" data-v-026681b8> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-03a62be3><section class="VPSidebarItem level-0" data-v-03a62be3 data-v-cb4e7117><div class="item" role="button" tabindex="0" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><h2 class="text" data-v-cb4e7117>User Guide</h2><!----></div><div class="items" data-v-cb4e7117><!--[--><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Overview</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/how-it-works.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>How It Works</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/agent-setup.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Agent Setup</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/advanced-engineering.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Vibe Engineering</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/long-term-memory.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Long-Term Memory</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/beads-integration.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Beads-Integration</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/tutorial.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Tutorial</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-03a62be3><section class="VPSidebarItem level-0" data-v-03a62be3 data-v-cb4e7117><div class="item" role="button" tabindex="0" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><h2 class="text" data-v-cb4e7117>Workflows</h2><!----></div><div class="items" data-v-cb4e7117><!--[--><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/workflow-selection.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Workflow-Selection</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/packaged-workflows.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Packaged Workflows</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/custom-workflows.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Custom Workflows</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/workflows.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Explore All Workflows</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/crowd-mcp-integration.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Crowd MCP Integration</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-c1df4d5c data-v-28fa4ed1><div class="VPDoc has-sidebar has-aside" data-v-28fa4ed1 data-v-cda1d691><!--[--><!--]--><div class="container" data-v-cda1d691><div class="aside" data-v-cda1d691><div class="aside-curtain" data-v-cda1d691></div><div class="aside-container" data-v-cda1d691><div class="aside-content" data-v-cda1d691><div class="VPDocAside" data-v-cda1d691 data-v-0199d109><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-0199d109 data-v-9d908c55><div class="content" data-v-9d908c55><div class="outline-marker" data-v-9d908c55></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-9d908c55>On this page</div><ul class="VPDocOutlineItem root" data-v-9d908c55 data-v-f1d87f0d><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-0199d109></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><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_dev_DEVELOPMENT" data-v-cda1d691><div><h1 id="development" tabindex="-1">Development <a class="header-anchor" href="#development" aria-label="Permalink to &quot;Development&quot;">​</a></h1><p>This document provides information for developers working on the Responsible Vibe MCP Server, including testing, logging, debugging, and architectural decisions.</p><h2 id="optional-documentation-feature" tabindex="-1">Optional Documentation Feature <a class="header-anchor" href="#optional-documentation-feature" aria-label="Permalink to &quot;Optional Documentation Feature&quot;">​</a></h2><p>The system includes a flexible documentation architecture that allows workflows to specify their documentation requirements:</p><h3 id="key-implementation-components" tabindex="-1">Key Implementation Components <a class="header-anchor" href="#key-implementation-components" aria-label="Permalink to &quot;Key Implementation Components&quot;">​</a></h3><h4 id="_1-workflow-metadata-schema" tabindex="-1">1. Workflow Metadata Schema <a class="header-anchor" href="#_1-workflow-metadata-schema" aria-label="Permalink to &quot;1. Workflow Metadata Schema&quot;">​</a></h4><div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">interface</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> YamlStateMachine</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
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 has-sidebar" 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" 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 has-sidebar empty" data-v-c1df4d5c data-v-d06e114f><div class="container" data-v-d06e114f><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-d06e114f><span class="vpi-align-left menu-icon" data-v-d06e114f></span><span class="menu-text" data-v-d06e114f>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-d06e114f data-v-aab1d107><button data-v-aab1d107>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-c1df4d5c data-v-026681b8><div class="curtain" data-v-026681b8></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-026681b8><span class="visually-hidden" id="sidebar-aria-label" data-v-026681b8> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-03a62be3><section class="VPSidebarItem level-0" data-v-03a62be3 data-v-cb4e7117><div class="item" role="button" tabindex="0" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><h2 class="text" data-v-cb4e7117>User Guide</h2><!----></div><div class="items" data-v-cb4e7117><!--[--><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Overview</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/how-it-works.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>How It Works</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/agent-setup.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Agent Setup</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/capability-routing.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Capability Routing</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/advanced-engineering.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Vibe Engineering</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/long-term-memory.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Long-Term Memory</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/beads-integration.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Beads-Integration</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/tutorial.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Tutorial</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-03a62be3><section class="VPSidebarItem level-0" data-v-03a62be3 data-v-cb4e7117><div class="item" role="button" tabindex="0" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><h2 class="text" data-v-cb4e7117>Workflows</h2><!----></div><div class="items" data-v-cb4e7117><!--[--><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/workflow-selection.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Workflow-Selection</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/packaged-workflows.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Packaged Workflows</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/custom-workflows.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Custom Workflows</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/workflows.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Explore All Workflows</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/crowd-mcp-integration.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Crowd MCP Integration</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-c1df4d5c data-v-28fa4ed1><div class="VPDoc has-sidebar has-aside" data-v-28fa4ed1 data-v-cda1d691><!--[--><!--]--><div class="container" data-v-cda1d691><div class="aside" data-v-cda1d691><div class="aside-curtain" data-v-cda1d691></div><div class="aside-container" data-v-cda1d691><div class="aside-content" data-v-cda1d691><div class="VPDocAside" data-v-cda1d691 data-v-0199d109><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-0199d109 data-v-9d908c55><div class="content" data-v-9d908c55><div class="outline-marker" data-v-9d908c55></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-9d908c55>On this page</div><ul class="VPDocOutlineItem root" data-v-9d908c55 data-v-f1d87f0d><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-0199d109></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><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_dev_DEVELOPMENT" data-v-cda1d691><div><h1 id="development" tabindex="-1">Development <a class="header-anchor" href="#development" aria-label="Permalink to &quot;Development&quot;">​</a></h1><p>This document provides information for developers working on the Responsible Vibe MCP Server, including testing, logging, debugging, and architectural decisions.</p><h2 id="optional-documentation-feature" tabindex="-1">Optional Documentation Feature <a class="header-anchor" href="#optional-documentation-feature" aria-label="Permalink to &quot;Optional Documentation Feature&quot;">​</a></h2><p>The system includes a flexible documentation architecture that allows workflows to specify their documentation requirements:</p><h3 id="key-implementation-components" tabindex="-1">Key Implementation Components <a class="header-anchor" href="#key-implementation-components" aria-label="Permalink to &quot;Key Implementation Components&quot;">​</a></h3><h4 id="_1-workflow-metadata-schema" tabindex="-1">1. Workflow Metadata Schema <a class="header-anchor" href="#_1-workflow-metadata-schema" aria-label="Permalink to &quot;1. Workflow Metadata Schema&quot;">​</a></h4><div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">interface</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> YamlStateMachine</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
23
23
  <span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> metadata</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">?:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
24
24
  <span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> requiresDocumentation</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">?:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> boolean</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">; </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// defaults to false</span></span>
25
25
  <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // ... other metadata</span></span>
@@ -91,7 +91,7 @@
91
91
  <span class="line"><span>fix: resolve database connection issue</span></span>
92
92
  <span class="line"><span>docs: update API documentation</span></span>
93
93
  <span class="line"><span>test: add integration tests for phase transitions</span></span></code></pre></div><h3 id="pull-request-process" tabindex="-1">Pull Request Process <a class="header-anchor" href="#pull-request-process" aria-label="Permalink to &quot;Pull Request Process&quot;">​</a></h3><ol><li>Fork the repository</li><li>Create a feature branch</li><li>Make your changes with tests</li><li>Ensure all tests pass (<code>npm run test:all</code>)</li><li>Update documentation as needed</li><li>Submit a pull request</li></ol><h3 id="automated-checks" tabindex="-1">Automated Checks <a class="header-anchor" href="#automated-checks" aria-label="Permalink to &quot;Automated Checks&quot;">​</a></h3><p>The project includes several automated checks that run on every PR:</p><ul><li><strong>Tests</strong>: Comprehensive test suite including MCP contract tests</li><li><strong>Linting</strong>: Code style and quality checks</li><li><strong>Type Checking</strong>: TypeScript compilation verification</li><li><strong>Build Verification</strong>: Ensures the project builds successfully</li></ul><h3 id="dependency-management" tabindex="-1">Dependency Management <a class="header-anchor" href="#dependency-management" aria-label="Permalink to &quot;Dependency Management&quot;">​</a></h3><p>This project uses <strong>Renovate</strong> for automated dependency management:</p><ul><li>Automatically creates PRs for dependency updates</li><li>Follows semantic versioning for update scheduling</li><li>Includes security updates with higher priority</li><li>Configuration in <code>.github/renovate.json</code></li><li>Helps keep dependencies current and secure</li></ul><h3 id="release-process" tabindex="-1">Release Process <a class="header-anchor" href="#release-process" aria-label="Permalink to &quot;Release Process&quot;">​</a></h3><p>The project uses automated releases based on conventional commits:</p><ul><li><code>feat:</code> commits trigger minor version bumps</li><li><code>fix:</code> commits trigger patch version bumps</li><li><code>BREAKING CHANGE:</code> in commit body triggers major version bumps</li></ul></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><!----></div><div class="pager" data-v-5253e96b><a class="VPLink link pager-link next" href="/workflows/" data-v-5253e96b><!--[--><span class="desc" data-v-5253e96b>Next page</span><span class="title" data-v-5253e96b>Overview</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
94
- <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>
94
+ <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>
95
95
 
96
96
  </body>
97
97
  </html>
@@ -19,7 +19,7 @@
19
19
  <script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
20
20
  </head>
21
21
  <body>
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 has-sidebar" 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" 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 has-sidebar empty" data-v-c1df4d5c data-v-d06e114f><div class="container" data-v-d06e114f><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-d06e114f><span class="vpi-align-left menu-icon" data-v-d06e114f></span><span class="menu-text" data-v-d06e114f>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-d06e114f data-v-aab1d107><button data-v-aab1d107>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-c1df4d5c data-v-026681b8><div class="curtain" data-v-026681b8></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-026681b8><span class="visually-hidden" id="sidebar-aria-label" data-v-026681b8> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-03a62be3><section class="VPSidebarItem level-0" data-v-03a62be3 data-v-cb4e7117><div class="item" role="button" tabindex="0" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><h2 class="text" data-v-cb4e7117>User Guide</h2><!----></div><div class="items" data-v-cb4e7117><!--[--><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Overview</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/how-it-works.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>How It Works</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/agent-setup.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Agent Setup</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/advanced-engineering.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Vibe Engineering</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/long-term-memory.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Long-Term Memory</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/beads-integration.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Beads-Integration</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/tutorial.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Tutorial</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-03a62be3><section class="VPSidebarItem level-0" data-v-03a62be3 data-v-cb4e7117><div class="item" role="button" tabindex="0" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><h2 class="text" data-v-cb4e7117>Workflows</h2><!----></div><div class="items" data-v-cb4e7117><!--[--><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/workflow-selection.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Workflow-Selection</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/packaged-workflows.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Packaged Workflows</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/custom-workflows.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Custom Workflows</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/workflows.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Explore All Workflows</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/crowd-mcp-integration.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Crowd MCP Integration</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-c1df4d5c data-v-28fa4ed1><div class="VPDoc has-sidebar has-aside" data-v-28fa4ed1 data-v-cda1d691><!--[--><!--]--><div class="container" data-v-cda1d691><div class="aside" data-v-cda1d691><div class="aside-curtain" data-v-cda1d691></div><div class="aside-container" data-v-cda1d691><div class="aside-content" data-v-cda1d691><div class="VPDocAside" data-v-cda1d691 data-v-0199d109><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-0199d109 data-v-9d908c55><div class="content" data-v-9d908c55><div class="outline-marker" data-v-9d908c55></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-9d908c55>On this page</div><ul class="VPDocOutlineItem root" data-v-9d908c55 data-v-f1d87f0d><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-0199d109></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><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_dev_LOGGING" data-v-cda1d691><div><h1 id="logging-documentation" tabindex="-1">Logging Documentation <a class="header-anchor" href="#logging-documentation" aria-label="Permalink to &quot;Logging Documentation&quot;">​</a></h1><p>The Vibe Feature MCP Server includes a comprehensive logging system that follows MCP best practices and provides both local debugging capabilities and client notifications.</p><h2 id="mcp-compliance" tabindex="-1">MCP Compliance <a class="header-anchor" href="#mcp-compliance" aria-label="Permalink to &quot;MCP Compliance&quot;">​</a></h2><p>The logging system is fully compliant with MCP requirements:</p><ul><li><strong>stderr only</strong>: All local logging uses <code>stderr</code> (not <code>stdout</code>) to avoid interfering with MCP protocol operation</li><li><strong>Client notifications</strong>: Important events are sent to the MCP client via log message notifications</li><li><strong>Structured logging</strong>: All log messages include structured context data</li><li><strong>Centralized logging</strong>: All logging logic is centralized in <code>logger.ts</code> to avoid duplication</li></ul><h2 id="log-levels" tabindex="-1">Log Levels <a class="header-anchor" href="#log-levels" aria-label="Permalink to &quot;Log Levels&quot;">​</a></h2><p>The server supports four log levels with configurable output:</p><ul><li><strong>DEBUG</strong>: Detailed tracing and execution flow information</li><li><strong>INFO</strong>: Success operations and important milestones (default)</li><li><strong>WARN</strong>: Expected errors and recoverable issues</li><li><strong>ERROR</strong>: Caught but unexpected errors</li></ul><h2 id="configuration" tabindex="-1">Configuration <a class="header-anchor" href="#configuration" aria-label="Permalink to &quot;Configuration&quot;">​</a></h2><p>Set the log level using the <code>LOG_LEVEL</code> environment variable:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Debug level (most verbose)</span></span>
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 has-sidebar" 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" 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 has-sidebar empty" data-v-c1df4d5c data-v-d06e114f><div class="container" data-v-d06e114f><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-d06e114f><span class="vpi-align-left menu-icon" data-v-d06e114f></span><span class="menu-text" data-v-d06e114f>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-d06e114f data-v-aab1d107><button data-v-aab1d107>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-c1df4d5c data-v-026681b8><div class="curtain" data-v-026681b8></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-026681b8><span class="visually-hidden" id="sidebar-aria-label" data-v-026681b8> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-03a62be3><section class="VPSidebarItem level-0" data-v-03a62be3 data-v-cb4e7117><div class="item" role="button" tabindex="0" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><h2 class="text" data-v-cb4e7117>User Guide</h2><!----></div><div class="items" data-v-cb4e7117><!--[--><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Overview</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/how-it-works.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>How It Works</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/agent-setup.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Agent Setup</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/capability-routing.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Capability Routing</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/advanced-engineering.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Vibe Engineering</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/long-term-memory.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Long-Term Memory</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/beads-integration.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Beads-Integration</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/tutorial.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Tutorial</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-03a62be3><section class="VPSidebarItem level-0" data-v-03a62be3 data-v-cb4e7117><div class="item" role="button" tabindex="0" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><h2 class="text" data-v-cb4e7117>Workflows</h2><!----></div><div class="items" data-v-cb4e7117><!--[--><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/workflow-selection.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Workflow-Selection</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/packaged-workflows.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Packaged Workflows</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/custom-workflows.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Custom Workflows</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/workflows.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Explore All Workflows</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-cb4e7117 data-v-cb4e7117><div class="item" data-v-cb4e7117><div class="indicator" data-v-cb4e7117></div><a class="VPLink link link" href="/workflows/user/crowd-mcp-integration.html" data-v-cb4e7117><!--[--><p class="text" data-v-cb4e7117>Crowd MCP Integration</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-c1df4d5c data-v-28fa4ed1><div class="VPDoc has-sidebar has-aside" data-v-28fa4ed1 data-v-cda1d691><!--[--><!--]--><div class="container" data-v-cda1d691><div class="aside" data-v-cda1d691><div class="aside-curtain" data-v-cda1d691></div><div class="aside-container" data-v-cda1d691><div class="aside-content" data-v-cda1d691><div class="VPDocAside" data-v-cda1d691 data-v-0199d109><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-0199d109 data-v-9d908c55><div class="content" data-v-9d908c55><div class="outline-marker" data-v-9d908c55></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-9d908c55>On this page</div><ul class="VPDocOutlineItem root" data-v-9d908c55 data-v-f1d87f0d><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-0199d109></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><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_dev_LOGGING" data-v-cda1d691><div><h1 id="logging-documentation" tabindex="-1">Logging Documentation <a class="header-anchor" href="#logging-documentation" aria-label="Permalink to &quot;Logging Documentation&quot;">​</a></h1><p>The Vibe Feature MCP Server includes a comprehensive logging system that follows MCP best practices and provides both local debugging capabilities and client notifications.</p><h2 id="mcp-compliance" tabindex="-1">MCP Compliance <a class="header-anchor" href="#mcp-compliance" aria-label="Permalink to &quot;MCP Compliance&quot;">​</a></h2><p>The logging system is fully compliant with MCP requirements:</p><ul><li><strong>stderr only</strong>: All local logging uses <code>stderr</code> (not <code>stdout</code>) to avoid interfering with MCP protocol operation</li><li><strong>Client notifications</strong>: Important events are sent to the MCP client via log message notifications</li><li><strong>Structured logging</strong>: All log messages include structured context data</li><li><strong>Centralized logging</strong>: All logging logic is centralized in <code>logger.ts</code> to avoid duplication</li></ul><h2 id="log-levels" tabindex="-1">Log Levels <a class="header-anchor" href="#log-levels" aria-label="Permalink to &quot;Log Levels&quot;">​</a></h2><p>The server supports four log levels with configurable output:</p><ul><li><strong>DEBUG</strong>: Detailed tracing and execution flow information</li><li><strong>INFO</strong>: Success operations and important milestones (default)</li><li><strong>WARN</strong>: Expected errors and recoverable issues</li><li><strong>ERROR</strong>: Caught but unexpected errors</li></ul><h2 id="configuration" tabindex="-1">Configuration <a class="header-anchor" href="#configuration" aria-label="Permalink to &quot;Configuration&quot;">​</a></h2><p>Set the log level using the <code>LOG_LEVEL</code> environment variable:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Debug level (most verbose)</span></span>
23
23
  <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">LOG_LEVEL</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">DEBUG</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> npx</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> tsx</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> src/index.ts</span></span>
24
24
  <span class="line"></span>
25
25
  <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Production level (default)</span></span>
@@ -53,7 +53,7 @@
53
53
  <span class="line"></span>
54
54
  <span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Monitor logs in real-time</span></span>
55
55
  <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">LOG_LEVEL</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">DEBUG</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> npx</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> tsx</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> src/index.ts</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> 2&gt;&amp;1</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> tee</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> server.log</span></span></code></pre></div><h2 id="best-practices" tabindex="-1">Best Practices <a class="header-anchor" href="#best-practices" aria-label="Permalink to &quot;Best Practices&quot;">​</a></h2><ol><li><strong>Use appropriate log levels</strong>: Debug for tracing, Info for milestones, Warn for recoverable issues, Error for failures</li><li><strong>Include context</strong>: Always provide relevant context data with log messages</li><li><strong>Avoid sensitive data</strong>: Don&#39;t log passwords, tokens, or other sensitive information</li><li><strong>Use structured logging</strong>: Provide context as objects rather than string interpolation</li><li><strong>Component-specific loggers</strong>: Use dedicated loggers for different components</li><li><strong>Centralized logging</strong>: Use the logger module for all logging needs</li></ol><h2 id="performance-considerations" tabindex="-1">Performance Considerations <a class="header-anchor" href="#performance-considerations" aria-label="Permalink to &quot;Performance Considerations&quot;">​</a></h2><ul><li>Log level filtering happens before message formatting for efficiency</li><li>MCP client notifications are sent asynchronously to avoid blocking operations</li><li>Failed MCP notifications fall back to stderr logging</li><li>Context objects are JSON-serialized only when the log level permits output</li><li>Enhanced notifications only process important events to reduce overhead</li></ul><h2 id="troubleshooting" tabindex="-1">Troubleshooting <a class="header-anchor" href="#troubleshooting" aria-label="Permalink to &quot;Troubleshooting&quot;">​</a></h2><h3 id="no-log-output" tabindex="-1">No Log Output <a class="header-anchor" href="#no-log-output" aria-label="Permalink to &quot;No Log Output&quot;">​</a></h3><p>Check the <code>LOG_LEVEL</code> environment variable. Default is <code>INFO</code>.</p><h3 id="mcp-client-not-receiving-notifications" tabindex="-1">MCP Client Not Receiving Notifications <a class="header-anchor" href="#mcp-client-not-receiving-notifications" aria-label="Permalink to &quot;MCP Client Not Receiving Notifications&quot;">​</a></h3><p>Ensure the server is properly initialized and connected to the MCP transport. Client notifications are only sent after successful server initialization. In test environments, &quot;Not connected&quot; errors are expected and harmless.</p><h3 id="performance-issues" tabindex="-1">Performance Issues <a class="header-anchor" href="#performance-issues" aria-label="Permalink to &quot;Performance Issues&quot;">​</a></h3><p>Consider raising the log level to <code>WARN</code> or <code>ERROR</code> in production environments to reduce log volume.</p><h2 id="integration-with-mcp-inspector" tabindex="-1">Integration with MCP Inspector <a class="header-anchor" href="#integration-with-mcp-inspector" aria-label="Permalink to &quot;Integration with MCP Inspector&quot;">​</a></h2><p>When using the MCP Inspector for debugging, set debug logging to see detailed protocol interactions:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">LOG_LEVEL</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">DEBUG</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> npx</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> @modelcontextprotocol/inspector</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> npx</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> tsx</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> src/index.ts</span></span></code></pre></div><p>The enhanced logging system provides comprehensive visibility into the server&#39;s operation while maintaining MCP compliance and optimal performance through centralized, structured logging.</p></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><!----></div><div class="pager" data-v-5253e96b><a class="VPLink link pager-link next" href="/workflows/" data-v-5253e96b><!--[--><span class="desc" data-v-5253e96b>Next page</span><span class="title" data-v-5253e96b>Overview</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
56
- <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>
56
+ <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>
57
57
 
58
58
  </body>
59
59
  </html>