@codemcp/workflows 6.20.1 → 6.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/packages/cli/dist/{chunk-4N42FFJE.js → chunk-KWAFQZUI.js} +91 -2670
- package/packages/cli/dist/{cli-MFHC7UWY.js → cli-O52P3RVC.js} +468 -33
- package/packages/cli/dist/{dist-ISN3FRV4.js → dist-FIUD5G5U.js} +65 -4
- package/packages/cli/dist/{dist-TDV3DJ2J.js → dist-ZTAPC4IK.js} +3 -1
- package/packages/cli/dist/index.js +2 -2
- package/packages/cli/package.json +5 -2
- package/packages/cli/resources/templates/opencode-agents/coding.md.tmpl +13 -0
- package/packages/cli/resources/templates/opencode-agents/research.md.tmpl +13 -0
- package/packages/cli/resources/templates/opencode-agents/thinking.md.tmpl +13 -0
- package/packages/cli/resources/workflows/bugfix.yaml +6 -0
- package/packages/cli/resources/workflows/epcc.yaml +3 -0
- package/packages/cli/resources/workflows/greenfield.yaml +3 -0
- package/packages/cli/resources/workflows/pr-review.yaml +2 -0
- package/packages/cli/resources/workflows/qrspi.yaml +5 -0
- package/packages/cli/resources/workflows/tdd.yaml +3 -0
- package/packages/cli/resources/workflows/waterfall.yaml +3 -0
- package/packages/core/dist/capability-hint.d.ts +28 -0
- package/packages/core/dist/capability-hint.js +52 -0
- package/packages/core/dist/capability-hint.js.map +1 -0
- package/packages/core/dist/config-manager.d.ts +19 -0
- package/packages/core/dist/config-manager.js +26 -0
- package/packages/core/dist/config-manager.js.map +1 -1
- package/packages/core/dist/index.d.ts +1 -0
- package/packages/core/dist/index.js +1 -0
- package/packages/core/dist/index.js.map +1 -1
- package/packages/core/dist/instruction-generator.js +7 -1
- package/packages/core/dist/instruction-generator.js.map +1 -1
- package/packages/core/dist/interfaces/instruction-generator.interface.d.ts +14 -0
- package/packages/core/dist/state-machine-types.d.ts +7 -0
- package/packages/core/package.json +1 -1
- package/packages/core/resources/templates/opencode-agents/coding.md.tmpl +13 -0
- package/packages/core/resources/templates/opencode-agents/research.md.tmpl +13 -0
- package/packages/core/resources/templates/opencode-agents/thinking.md.tmpl +13 -0
- package/packages/core/resources/workflows/bugfix.yaml +6 -0
- package/packages/core/resources/workflows/epcc.yaml +3 -0
- package/packages/core/resources/workflows/greenfield.yaml +3 -0
- package/packages/core/resources/workflows/pr-review.yaml +2 -0
- package/packages/core/resources/workflows/qrspi.yaml +5 -0
- package/packages/core/resources/workflows/tdd.yaml +3 -0
- package/packages/core/resources/workflows/waterfall.yaml +3 -0
- package/packages/docs/.vitepress/dist/404.html +1 -1
- package/packages/docs/.vitepress/dist/assets/user_capability-routing.md.DbNKvMiS.js +15 -0
- package/packages/docs/.vitepress/dist/assets/user_capability-routing.md.DbNKvMiS.lean.js +1 -0
- package/packages/docs/.vitepress/dist/dev/ARCHITECTURE.html +2 -2
- package/packages/docs/.vitepress/dist/dev/DEVELOPMENT.html +2 -2
- package/packages/docs/.vitepress/dist/dev/LOGGING.html +2 -2
- package/packages/docs/.vitepress/dist/dev/PUBLISHING.html +2 -2
- package/packages/docs/.vitepress/dist/hashmap.json +1 -1
- package/packages/docs/.vitepress/dist/index.html +2 -2
- package/packages/docs/.vitepress/dist/user/advanced-engineering.html +3 -3
- package/packages/docs/.vitepress/dist/user/agent-setup.html +3 -3
- package/packages/docs/.vitepress/dist/user/beads-integration.html +2 -2
- package/packages/docs/.vitepress/dist/user/capability-routing.html +40 -0
- package/packages/docs/.vitepress/dist/user/crowd-mcp-integration.html +2 -2
- package/packages/docs/.vitepress/dist/user/custom-workflows.html +2 -2
- package/packages/docs/.vitepress/dist/user/git-commit-feature.html +2 -2
- package/packages/docs/.vitepress/dist/user/how-it-works.html +2 -2
- package/packages/docs/.vitepress/dist/user/long-term-memory.html +2 -2
- package/packages/docs/.vitepress/dist/user/packaged-workflows.html +2 -2
- package/packages/docs/.vitepress/dist/user/tutorial.html +2 -2
- package/packages/docs/.vitepress/dist/user/workflow-selection.html +2 -2
- package/packages/docs/.vitepress/dist/workflows/adr.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/big-bang-conversion.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/boundary-testing.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/bugfix.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/bugfix.yaml +6 -0
- package/packages/docs/.vitepress/dist/workflows/business-analysis.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/c4-analysis.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/epcc.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/epcc.yaml +3 -0
- package/packages/docs/.vitepress/dist/workflows/game-beginner.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/greenfield.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/greenfield.yaml +3 -0
- package/packages/docs/.vitepress/dist/workflows/minor.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/posts.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/pr-review.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/pr-review.yaml +2 -0
- package/packages/docs/.vitepress/dist/workflows/qrspi.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/qrspi.yaml +5 -0
- package/packages/docs/.vitepress/dist/workflows/sdd-bugfix-crowd.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/sdd-bugfix.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/sdd-feature-crowd.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/sdd-feature.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/sdd-greenfield-crowd.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/sdd-greenfield.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/skilled-bugfix.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/skilled-epcc.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/skilled-greenfield.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/slides.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/tdd.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/tdd.yaml +3 -0
- package/packages/docs/.vitepress/dist/workflows/waterfall.html +1 -1
- package/packages/docs/.vitepress/dist/workflows/waterfall.yaml +3 -0
- package/packages/docs/.vitepress/dist/workflows.html +1 -1
- package/packages/docs/package.json +1 -1
- package/packages/mcp-server/dist/index.js +67 -4
- package/packages/mcp-server/package.json +1 -1
- package/packages/mcp-server/resources/templates/opencode-agents/coding.md.tmpl +13 -0
- package/packages/mcp-server/resources/templates/opencode-agents/research.md.tmpl +13 -0
- package/packages/mcp-server/resources/templates/opencode-agents/thinking.md.tmpl +13 -0
- package/packages/mcp-server/resources/workflows/bugfix.yaml +6 -0
- package/packages/mcp-server/resources/workflows/epcc.yaml +3 -0
- package/packages/mcp-server/resources/workflows/greenfield.yaml +3 -0
- package/packages/mcp-server/resources/workflows/pr-review.yaml +2 -0
- package/packages/mcp-server/resources/workflows/qrspi.yaml +5 -0
- package/packages/mcp-server/resources/workflows/tdd.yaml +3 -0
- package/packages/mcp-server/resources/workflows/waterfall.yaml +3 -0
- package/packages/opencode-plugin/dist/index.d.ts +8 -192
- package/packages/opencode-plugin/dist/index.js +76 -5
- package/packages/opencode-plugin/package.json +6 -1
- package/packages/opencode-plugin/resources/templates/opencode-agents/coding.md.tmpl +13 -0
- package/packages/opencode-plugin/resources/templates/opencode-agents/research.md.tmpl +13 -0
- package/packages/opencode-plugin/resources/templates/opencode-agents/thinking.md.tmpl +13 -0
- package/packages/opencode-plugin/resources/workflows/bugfix.yaml +6 -0
- package/packages/opencode-plugin/resources/workflows/epcc.yaml +3 -0
- package/packages/opencode-plugin/resources/workflows/greenfield.yaml +3 -0
- package/packages/opencode-plugin/resources/workflows/pr-review.yaml +2 -0
- package/packages/opencode-plugin/resources/workflows/qrspi.yaml +5 -0
- package/packages/opencode-plugin/resources/workflows/tdd.yaml +3 -0
- package/packages/opencode-plugin/resources/workflows/waterfall.yaml +3 -0
- package/packages/opencode-tui-plugin/package.json +1 -1
- package/packages/visualizer/package.json +1 -1
- package/resources/state-machine-schema.json +4 -0
- package/resources/templates/opencode-agents/coding.md.tmpl +13 -0
- package/resources/templates/opencode-agents/research.md.tmpl +13 -0
- package/resources/templates/opencode-agents/thinking.md.tmpl +13 -0
- package/resources/workflows/bugfix.yaml +6 -0
- package/resources/workflows/epcc.yaml +3 -0
- package/resources/workflows/greenfield.yaml +3 -0
- package/resources/workflows/pr-review.yaml +2 -0
- package/resources/workflows/qrspi.yaml +5 -0
- package/resources/workflows/tdd.yaml +3 -0
- 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_DEVELOPMENT" data-v-cda1d691><div><h1 id="development" tabindex="-1">Development <a class="header-anchor" href="#development" aria-label="Permalink to "Development""></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 "Optional Documentation Feature""></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 "Key Implementation Components""></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 "1. Workflow Metadata Schema""></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 "Development""></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 "Optional Documentation Feature""></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 "Key Implementation Components""></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 "1. Workflow Metadata Schema""></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 "Pull Request Process""></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 "Automated Checks""></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 "Dependency Management""></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 "Release Process""></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 "Logging Documentation""></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 "MCP Compliance""></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 "Log Levels""></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 "Configuration""></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 "Logging Documentation""></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 "MCP Compliance""></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 "Log Levels""></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 "Configuration""></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>&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 "Best Practices""></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'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 "Performance Considerations""></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 "Troubleshooting""></a></h2><h3 id="no-log-output" tabindex="-1">No Log Output <a class="header-anchor" href="#no-log-output" aria-label="Permalink to "No Log Output""></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 "MCP Client Not Receiving Notifications""></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, "Not connected" 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 "Performance Issues""></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 "Integration with MCP Inspector""></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'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>
|
|
@@ -19,12 +19,12 @@
|
|
|
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_PUBLISHING" data-v-cda1d691><div><h1 id="publishing-guide" tabindex="-1">Publishing Guide <a class="header-anchor" href="#publishing-guide" aria-label="Permalink to "Publishing Guide""></a></h1><p>This document describes the automated publishing setup for the responsible-vibe MCP server.</p><h2 id="overview" tabindex="-1">Overview <a class="header-anchor" href="#overview" aria-label="Permalink to "Overview""></a></h2><p>The project uses GitHub Actions to automatically:</p><ul><li>Run tests on pull requests</li><li>Version bump using conventional commits</li><li>Publish to npm registry</li><li>Create git tags and GitHub releases</li><li>Generate changelogs</li></ul><h2 id="setup-instructions" tabindex="-1">Setup Instructions <a class="header-anchor" href="#setup-instructions" aria-label="Permalink to "Setup Instructions""></a></h2><h3 id="_1-npm-token-setup" tabindex="-1">1. npm Token Setup <a class="header-anchor" href="#_1-npm-token-setup" aria-label="Permalink to "1. npm Token Setup""></a></h3><ol><li><p><strong>Generate npm Access Token:</strong></p><ul><li>Go to <a href="https://www.npmjs.com/settings/tokens" target="_blank" rel="noreferrer">https://www.npmjs.com/settings/tokens</a></li><li>Click "Generate New Token" → "Automation" (for CI/CD)</li><li>Copy the token (starts with <code>npm_</code>)</li></ul></li><li><p><strong>Add GitHub Secret:</strong></p><ul><li>Go to your repo: <a href="https://github.com/codemcp/workflows/settings/secrets/actions" target="_blank" rel="noreferrer">https://github.com/codemcp/workflows/settings/secrets/actions</a></li><li>Click "New repository secret"</li><li>Name: <code>NPM_TOKEN</code></li><li>Value: Your npm token</li></ul></li></ol><h3 id="_2-package-information" tabindex="-1">2. Package Information <a class="header-anchor" href="#_2-package-information" aria-label="Permalink to "2. Package Information""></a></h3><ul><li><strong>Package Name</strong>: <code>@codemcp/workflows</code></li><li><strong>Registry</strong>: npm (<a href="https://registry.npmjs.org" target="_blank" rel="noreferrer">https://registry.npmjs.org</a>)</li><li><strong>Access</strong>: Public (scoped package)</li></ul><h2 id="workflows" tabindex="-1">Workflows <a class="header-anchor" href="#workflows" aria-label="Permalink to "Workflows""></a></h2><h3 id="pr-workflow-github-workflows-pr-yml" tabindex="-1">PR Workflow (<code>.github/workflows/pr.yml</code>) <a class="header-anchor" href="#pr-workflow-github-workflows-pr-yml" aria-label="Permalink to "PR Workflow (`.github/workflows/pr.yml`)""></a></h3><p><strong>Triggers</strong>: Pull requests to main branch <strong>Actions</strong>:</p><ul><li>Tests on Node.js 18, 20, and latest</li><li>Build verification</li><li>Full test suite including MCP contract tests</li></ul><h3 id="release-workflow-github-workflows-release-yml" tabindex="-1">Release Workflow (<code>.github/workflows/release.yml</code>) <a class="header-anchor" href="#release-workflow-github-workflows-release-yml" aria-label="Permalink to "Release Workflow (`.github/workflows/release.yml`)""></a></h3><p><strong>Triggers</strong>: Push to main branch <strong>Actions</strong>:</p><ol><li>Run full test suite</li><li>Analyze conventional commits for version bump</li><li>Update package.json version</li><li>Create git tag (v1.2.3 format)</li><li>Generate changelog</li><li>Publish to npm</li><li>Create GitHub release</li></ol><h2 id="conventional-commits" tabindex="-1">Conventional Commits <a class="header-anchor" href="#conventional-commits" aria-label="Permalink to "Conventional Commits""></a></h2><p>The versioning follows conventional commit standards:</p><ul><li><code>feat:</code> → Minor version bump (1.0.0 → 1.1.0)</li><li><code>fix:</code> → Patch version bump (1.0.0 → 1.0.1)</li><li><code>BREAKING CHANGE:</code> → Major version bump (1.0.0 → 2.0.0)</li></ul><h3 id="examples" tabindex="-1">Examples: <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples:""></a></h3><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:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> commit</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -m</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "feat: add new authentication method"</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_PUBLISHING" data-v-cda1d691><div><h1 id="publishing-guide" tabindex="-1">Publishing Guide <a class="header-anchor" href="#publishing-guide" aria-label="Permalink to "Publishing Guide""></a></h1><p>This document describes the automated publishing setup for the responsible-vibe MCP server.</p><h2 id="overview" tabindex="-1">Overview <a class="header-anchor" href="#overview" aria-label="Permalink to "Overview""></a></h2><p>The project uses GitHub Actions to automatically:</p><ul><li>Run tests on pull requests</li><li>Version bump using conventional commits</li><li>Publish to npm registry</li><li>Create git tags and GitHub releases</li><li>Generate changelogs</li></ul><h2 id="setup-instructions" tabindex="-1">Setup Instructions <a class="header-anchor" href="#setup-instructions" aria-label="Permalink to "Setup Instructions""></a></h2><h3 id="_1-npm-token-setup" tabindex="-1">1. npm Token Setup <a class="header-anchor" href="#_1-npm-token-setup" aria-label="Permalink to "1. npm Token Setup""></a></h3><ol><li><p><strong>Generate npm Access Token:</strong></p><ul><li>Go to <a href="https://www.npmjs.com/settings/tokens" target="_blank" rel="noreferrer">https://www.npmjs.com/settings/tokens</a></li><li>Click "Generate New Token" → "Automation" (for CI/CD)</li><li>Copy the token (starts with <code>npm_</code>)</li></ul></li><li><p><strong>Add GitHub Secret:</strong></p><ul><li>Go to your repo: <a href="https://github.com/codemcp/workflows/settings/secrets/actions" target="_blank" rel="noreferrer">https://github.com/codemcp/workflows/settings/secrets/actions</a></li><li>Click "New repository secret"</li><li>Name: <code>NPM_TOKEN</code></li><li>Value: Your npm token</li></ul></li></ol><h3 id="_2-package-information" tabindex="-1">2. Package Information <a class="header-anchor" href="#_2-package-information" aria-label="Permalink to "2. Package Information""></a></h3><ul><li><strong>Package Name</strong>: <code>@codemcp/workflows</code></li><li><strong>Registry</strong>: npm (<a href="https://registry.npmjs.org" target="_blank" rel="noreferrer">https://registry.npmjs.org</a>)</li><li><strong>Access</strong>: Public (scoped package)</li></ul><h2 id="workflows" tabindex="-1">Workflows <a class="header-anchor" href="#workflows" aria-label="Permalink to "Workflows""></a></h2><h3 id="pr-workflow-github-workflows-pr-yml" tabindex="-1">PR Workflow (<code>.github/workflows/pr.yml</code>) <a class="header-anchor" href="#pr-workflow-github-workflows-pr-yml" aria-label="Permalink to "PR Workflow (`.github/workflows/pr.yml`)""></a></h3><p><strong>Triggers</strong>: Pull requests to main branch <strong>Actions</strong>:</p><ul><li>Tests on Node.js 18, 20, and latest</li><li>Build verification</li><li>Full test suite including MCP contract tests</li></ul><h3 id="release-workflow-github-workflows-release-yml" tabindex="-1">Release Workflow (<code>.github/workflows/release.yml</code>) <a class="header-anchor" href="#release-workflow-github-workflows-release-yml" aria-label="Permalink to "Release Workflow (`.github/workflows/release.yml`)""></a></h3><p><strong>Triggers</strong>: Push to main branch <strong>Actions</strong>:</p><ol><li>Run full test suite</li><li>Analyze conventional commits for version bump</li><li>Update package.json version</li><li>Create git tag (v1.2.3 format)</li><li>Generate changelog</li><li>Publish to npm</li><li>Create GitHub release</li></ol><h2 id="conventional-commits" tabindex="-1">Conventional Commits <a class="header-anchor" href="#conventional-commits" aria-label="Permalink to "Conventional Commits""></a></h2><p>The versioning follows conventional commit standards:</p><ul><li><code>feat:</code> → Minor version bump (1.0.0 → 1.1.0)</li><li><code>fix:</code> → Patch version bump (1.0.0 → 1.0.1)</li><li><code>BREAKING CHANGE:</code> → Major version bump (1.0.0 → 2.0.0)</li></ul><h3 id="examples" tabindex="-1">Examples: <a class="header-anchor" href="#examples" aria-label="Permalink to "Examples:""></a></h3><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:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> commit</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -m</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "feat: add new authentication method"</span></span>
|
|
23
23
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> commit</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -m</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "fix: resolve memory leak in state management"</span></span>
|
|
24
24
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> commit</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -m</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> "feat!: redesign API structure</span></span>
|
|
25
25
|
<span class="line"></span>
|
|
26
26
|
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">BREAKING CHANGE: API endpoints have changed"</span></span></code></pre></div><h2 id="publishing-process" tabindex="-1">Publishing Process <a class="header-anchor" href="#publishing-process" aria-label="Permalink to "Publishing Process""></a></h2><ol><li><strong>Development</strong>: Work on feature branches</li><li><strong>Pull Request</strong>: Create PR to main branch (triggers tests)</li><li><strong>Review & Merge</strong>: After approval, merge to main</li><li><strong>Automatic Release</strong>: GitHub Actions handles the rest: <ul><li>Tests pass → Version bump → npm publish → Git tag → Release notes</li></ul></li></ol><h2 id="manual-override" tabindex="-1">Manual Override <a class="header-anchor" href="#manual-override" aria-label="Permalink to "Manual Override""></a></h2><p>If needed, you can manually trigger releases:</p><ol><li>Go to Actions tab in GitHub</li><li>Select "Release and Publish" workflow</li><li>Click "Run workflow" on main branch</li></ol><h2 id="troubleshooting" tabindex="-1">Troubleshooting <a class="header-anchor" href="#troubleshooting" aria-label="Permalink to "Troubleshooting""></a></h2><h3 id="common-issues" tabindex="-1">Common Issues: <a class="header-anchor" href="#common-issues" aria-label="Permalink to "Common Issues:""></a></h3><ol><li><strong>npm publish fails</strong>: Check NPM_TOKEN secret is set correctly</li><li><strong>No version bump</strong>: Ensure commits follow conventional format</li><li><strong>Tests fail</strong>: Fix tests before merging to main</li><li><strong>Permission denied</strong>: Verify GitHub Actions permissions</li></ol><h3 id="checking-status" tabindex="-1">Checking Status: <a class="header-anchor" href="#checking-status" aria-label="Permalink to "Checking Status:""></a></h3><ul><li><strong>npm package</strong>: <a href="https://www.npmjs.com/package/@codemcp/workflows" target="_blank" rel="noreferrer">https://www.npmjs.com/package/@codemcp/workflows</a></li><li><strong>GitHub releases</strong>: <a href="https://github.com/codemcp/workflows/releases" target="_blank" rel="noreferrer">https://github.com/codemcp/workflows/releases</a></li><li><strong>Actions logs</strong>: <a href="https://github.com/codemcp/workflows/actions" target="_blank" rel="noreferrer">https://github.com/codemcp/workflows/actions</a></li></ul><h2 id="version-history" tabindex="-1">Version History <a class="header-anchor" href="#version-history" aria-label="Permalink to "Version History""></a></h2><p>Versions and changelogs are automatically maintained in:</p><ul><li>GitHub Releases</li><li>CHANGELOG.md (auto-generated)</li><li>Git tags (v1.2.3 format)</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>
|
|
27
|
-
<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>
|
|
27
|
+
<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>
|
|
28
28
|
|
|
29
29
|
</body>
|
|
30
30
|
</html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"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"}
|
|
1
|
+
{"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"}
|