bobs-workshop 0.3.3 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +199 -210
  3. package/bin/bobs-workshop.js +109 -0
  4. package/config/agents.json +27 -0
  5. package/dist/plugins/bobs-workshop.js +34 -0
  6. package/dist/tools/background-agent/cancel.d.ts +3 -0
  7. package/dist/tools/background-agent/cancel.d.ts.map +1 -0
  8. package/dist/tools/background-agent/cancel.js +52 -0
  9. package/dist/tools/background-agent/concurrency.d.ts +15 -0
  10. package/dist/tools/background-agent/concurrency.d.ts.map +1 -0
  11. package/dist/tools/background-agent/concurrency.js +61 -0
  12. package/dist/tools/background-agent/index.d.ts +8 -0
  13. package/dist/tools/background-agent/index.d.ts.map +1 -0
  14. package/dist/tools/background-agent/index.js +7 -0
  15. package/dist/tools/background-agent/launch.d.ts +6 -0
  16. package/dist/tools/background-agent/launch.d.ts.map +1 -0
  17. package/dist/tools/background-agent/launch.js +33 -0
  18. package/dist/tools/background-agent/list.d.ts +7 -0
  19. package/dist/tools/background-agent/list.d.ts.map +1 -0
  20. package/dist/tools/background-agent/list.js +40 -0
  21. package/dist/tools/background-agent/manager.d.ts +29 -0
  22. package/dist/tools/background-agent/manager.d.ts.map +1 -0
  23. package/dist/tools/background-agent/manager.js +377 -0
  24. package/dist/tools/background-agent/output.d.ts +3 -0
  25. package/dist/tools/background-agent/output.d.ts.map +1 -0
  26. package/dist/tools/background-agent/output.js +41 -0
  27. package/dist/tools/background-agent/types.d.ts +46 -0
  28. package/dist/tools/background-agent/types.d.ts.map +1 -0
  29. package/dist/tools/background-agent/types.js +1 -0
  30. package/dist/tools/index.d.ts +9 -0
  31. package/dist/tools/index.d.ts.map +1 -0
  32. package/dist/tools/index.js +8 -0
  33. package/dist/tools/manual/index.d.ts +3 -0
  34. package/dist/tools/manual/index.d.ts.map +1 -0
  35. package/dist/tools/manual/index.js +2 -0
  36. package/dist/tools/manual/manual-update.d.ts +4 -0
  37. package/dist/tools/manual/manual-update.d.ts.map +1 -0
  38. package/dist/tools/manual/manual-update.js +190 -0
  39. package/dist/tools/manual/verify-manual.d.ts +4 -0
  40. package/dist/tools/manual/verify-manual.d.ts.map +1 -0
  41. package/dist/tools/manual/verify-manual.js +46 -0
  42. package/package.json +34 -66
  43. package/postinstall.js +190 -0
  44. package/src/agents/alice.md +466 -0
  45. package/src/agents/bob-rev.md +493 -0
  46. package/src/agents/bob-send.md +277 -0
  47. package/src/agents/bob.md +442 -0
  48. package/src/agents/trace.md +451 -0
  49. package/src/plugins/bobs-workshop.ts +45 -0
  50. package/src/skills/api-patterns/SKILL.md +376 -0
  51. package/src/skills/architecture/SKILL.md +271 -0
  52. package/src/skills/bobs-workshop/performance/icon.svg +3 -0
  53. package/src/skills/brainstorming/SKILL.md +210 -0
  54. package/src/skills/clean-code/SKILL.md +151 -0
  55. package/src/skills/code-review-checklist/SKILL.md +220 -0
  56. package/src/skills/database-design/SKILL.md +271 -0
  57. package/src/skills/exploration/SKILL.md +257 -0
  58. package/src/skills/frontend-ui-ux/SKILL.md +78 -0
  59. package/src/skills/git-master/SKILL.md +1105 -0
  60. package/src/skills/performance/SKILL.md +144 -0
  61. package/src/skills/performance/icon.svg +3 -0
  62. package/src/skills/plan-writing/SKILL.md +225 -0
  63. package/src/skills/security/SKILL.md +410 -0
  64. package/src/skills/simplification/SKILL.md +238 -0
  65. package/src/skills/systematic-debugging/SKILL.md +175 -0
  66. package/src/skills/testing-patterns/SKILL.md +305 -0
  67. package/src/skills/verification/SKILL.md +286 -0
  68. package/src/tools/background-agent/cancel.ts +67 -0
  69. package/src/tools/background-agent/concurrency.ts +71 -0
  70. package/src/tools/background-agent/index.ts +7 -0
  71. package/src/tools/background-agent/launch.ts +39 -0
  72. package/src/tools/background-agent/list.ts +50 -0
  73. package/src/tools/background-agent/manager.ts +455 -0
  74. package/src/tools/background-agent/output.ts +57 -0
  75. package/src/tools/background-agent/types.ts +55 -0
  76. package/src/tools/index.ts +8 -0
  77. package/src/tools/manual/index.ts +2 -0
  78. package/src/tools/manual/manual-update.ts +197 -0
  79. package/src/tools/manual/verify-manual.ts +55 -0
  80. package/uninstall.js +64 -0
  81. package/Claude.md +0 -162
  82. package/bin/bobs-mcp-server.js +0 -11
  83. package/bin/bobs-mcp.js +0 -130
  84. package/dist/api/taskLogger.js +0 -106
  85. package/dist/api/taskLogger.js.map +0 -1
  86. package/dist/cli/checker.js +0 -401
  87. package/dist/cli/checker.js.map +0 -1
  88. package/dist/cli/cleanup.js +0 -131
  89. package/dist/cli/cleanup.js.map +0 -1
  90. package/dist/cli/debug.js +0 -157
  91. package/dist/cli/debug.js.map +0 -1
  92. package/dist/cli/health.js +0 -97
  93. package/dist/cli/health.js.map +0 -1
  94. package/dist/cli/setup.js +0 -81
  95. package/dist/cli/setup.js.map +0 -1
  96. package/dist/cli/workshop.js +0 -42
  97. package/dist/cli/workshop.js.map +0 -1
  98. package/dist/dashboard/server.js +0 -1203
  99. package/dist/dashboard/server.js.map +0 -1
  100. package/dist/index.js +0 -960
  101. package/dist/index.js.map +0 -1
  102. package/dist/prompts/architect.js +0 -221
  103. package/dist/prompts/architect.js.map +0 -1
  104. package/dist/prompts/debugger.js +0 -257
  105. package/dist/prompts/debugger.js.map +0 -1
  106. package/dist/prompts/engineer.js +0 -249
  107. package/dist/prompts/engineer.js.map +0 -1
  108. package/dist/prompts/orchestrator.js +0 -304
  109. package/dist/prompts/orchestrator.js.map +0 -1
  110. package/dist/prompts/reviewer.js +0 -289
  111. package/dist/prompts/reviewer.js.map +0 -1
  112. package/dist/services/activitySummarizer.js +0 -388
  113. package/dist/services/activitySummarizer.js.map +0 -1
  114. package/dist/services/changeValidator.js +0 -396
  115. package/dist/services/changeValidator.js.map +0 -1
  116. package/dist/services/claudeOrchestrator.js +0 -343
  117. package/dist/services/claudeOrchestrator.js.map +0 -1
  118. package/dist/services/fileMonitor.js +0 -250
  119. package/dist/services/fileMonitor.js.map +0 -1
  120. package/dist/services/implementationSummarizer.js +0 -306
  121. package/dist/services/implementationSummarizer.js.map +0 -1
  122. package/dist/services/liveMonitor.js +0 -315
  123. package/dist/services/liveMonitor.js.map +0 -1
  124. package/dist/services/mcpAuditLogger.js +0 -104
  125. package/dist/services/mcpAuditLogger.js.map +0 -1
  126. package/dist/services/mcpLogger.js +0 -223
  127. package/dist/services/mcpLogger.js.map +0 -1
  128. package/dist/services/tmuxManager.js +0 -541
  129. package/dist/services/tmuxManager.js.map +0 -1
  130. package/dist/tools/approvalTools.js +0 -244
  131. package/dist/tools/approvalTools.js.map +0 -1
  132. package/dist/tools/autoDebugger.js +0 -147
  133. package/dist/tools/autoDebugger.js.map +0 -1
  134. package/dist/tools/cleanupService.js +0 -221
  135. package/dist/tools/cleanupService.js.map +0 -1
  136. package/dist/tools/dashboardTools.js +0 -342
  137. package/dist/tools/dashboardTools.js.map +0 -1
  138. package/dist/tools/developmentNudges.js +0 -336
  139. package/dist/tools/developmentNudges.js.map +0 -1
  140. package/dist/tools/gitTools.js +0 -741
  141. package/dist/tools/gitTools.js.map +0 -1
  142. package/dist/tools/orchestratorTools.js +0 -832
  143. package/dist/tools/orchestratorTools.js.map +0 -1
  144. package/dist/tools/searchCache.js +0 -64
  145. package/dist/tools/searchCache.js.map +0 -1
  146. package/dist/tools/searchTools.js +0 -1107
  147. package/dist/tools/searchTools.js.map +0 -1
  148. package/dist/tools/semgrep-patterns.js +0 -296
  149. package/dist/tools/semgrep-patterns.js.map +0 -1
  150. package/dist/tools/specTools.js +0 -332
  151. package/dist/tools/specTools.js.map +0 -1
  152. package/dist/tools/structural/__tests__/orchestrator.test.js +0 -61
  153. package/dist/tools/structural/__tests__/orchestrator.test.js.map +0 -1
  154. package/dist/tools/structural/cache.js +0 -226
  155. package/dist/tools/structural/cache.js.map +0 -1
  156. package/dist/tools/structural/engines/python/index.js +0 -118
  157. package/dist/tools/structural/engines/python/index.js.map +0 -1
  158. package/dist/tools/structural/engines/typescript/__tests__/typescript-engine.test.js +0 -97
  159. package/dist/tools/structural/engines/typescript/__tests__/typescript-engine.test.js.map +0 -1
  160. package/dist/tools/structural/engines/typescript/analyzer.js +0 -433
  161. package/dist/tools/structural/engines/typescript/analyzer.js.map +0 -1
  162. package/dist/tools/structural/engines/typescript/index.js +0 -381
  163. package/dist/tools/structural/engines/typescript/index.js.map +0 -1
  164. package/dist/tools/structural/engines/typescript/utils.js +0 -279
  165. package/dist/tools/structural/engines/typescript/utils.js.map +0 -1
  166. package/dist/tools/structural/index.js +0 -248
  167. package/dist/tools/structural/index.js.map +0 -1
  168. package/dist/tools/structural/types.js +0 -18
  169. package/dist/tools/structural/types.js.map +0 -1
  170. package/dist/tools/tmuxTools.js +0 -100
  171. package/dist/tools/tmuxTools.js.map +0 -1
  172. package/dist/tools/workRecorder.js +0 -215
  173. package/dist/tools/workRecorder.js.map +0 -1
  174. package/dist/tools/worktreeTools.js +0 -705
  175. package/dist/tools/worktreeTools.js.map +0 -1
  176. package/dist/utils/__tests__/integration.test.js +0 -57
  177. package/dist/utils/__tests__/integration.test.js.map +0 -1
  178. package/dist/utils/__tests__/serverDetection.test.js +0 -151
  179. package/dist/utils/__tests__/serverDetection.test.js.map +0 -1
  180. package/dist/utils/errorHandling.js +0 -336
  181. package/dist/utils/errorHandling.js.map +0 -1
  182. package/dist/utils/processManager.js +0 -172
  183. package/dist/utils/processManager.js.map +0 -1
  184. package/dist/utils/reliability.js +0 -263
  185. package/dist/utils/reliability.js.map +0 -1
  186. package/dist/utils/responseFormatter.js +0 -250
  187. package/dist/utils/responseFormatter.js.map +0 -1
  188. package/dist/utils/serverDetection.js +0 -133
  189. package/dist/utils/serverDetection.js.map +0 -1
  190. package/dist/utils/specMigration.js +0 -105
  191. package/dist/utils/specMigration.js.map +0 -1
  192. package/dist/validation/schemas.js +0 -299
  193. package/dist/validation/schemas.js.map +0 -1
  194. package/public/.well-known/mcp/manifest.json +0 -473
  195. package/public/index.html +0 -3157
  196. package/public/index.html.backup +0 -2805
  197. package/public/index.html.backup2 +0 -1292
  198. package/scripts/cleanup-system-logs.ts +0 -121
  199. package/scripts/init-workspace.js +0 -63
  200. package/scripts/install-search-tools.js +0 -116
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 Bob's Workshop - Pawan Raviee
3
+ Copyright (c) 2026 Bob's Workshop Contributors
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
18
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,299 +1,288 @@
1
- # 🧭 Bob's Workshop MCP — AI-Orchestrated Development that Builds with You
1
+ # bobs workshop - agentic dev harness for OpenCode
2
2
 
3
- *Manual-driven AI development. Intelligent orchestration. Real-time insight.*
3
+ *using well-stitched OpenCode features for MANUAL-driven development with background agents, to stop juggling between sequential agent calls, scattered context, and endless context switching*
4
4
 
5
- *From "hey bob, build this" to production-ready code — all in one seamless flow.*
5
+ ![Bob's Workshop Banner](assets/bobs-workshop-banner.png)
6
6
 
7
- <img src="assets/web-banner.jpg" alt="Banner" width="60%" />
8
-
9
- **Finally, AI development that feels like teamwork.**
10
- Bob's Workshop MCP turns complex coding workflows into clear, auditable phases — from **architecture planning**, to **implementation**, **debugging**, and **review** — all captured inside a living manual that evolves as you build.
11
7
 
12
8
  ---
13
9
 
14
- ## The problem
15
-
16
- Modern AI coding assistants are fast, but not reliable. You've seen it before:
17
-
18
- * The model forgets what it planned five minutes ago
19
- * Code gets out of sync with documentation
20
- * You have to re-explain context every time
21
- * Debugs and reviews happenâ€Ļ somewhere, off-record
10
+ ## Problem statement
22
11
 
23
- **What if your AI actually worked like a disciplined engineer — asking questions, documenting decisions, and never skipping review?**
12
+ you know that feeling when you're deep in a complex feature or when the codebase gets large after adding a few features, and you have to:
13
+ - explain your entire codebase ... again
14
+ - switch between architecture planning and implementation
15
+ - keep track of decisions made 3 conversations ago
16
+ - run agents sequentially when they could work in parallel
24
17
 
25
- That's what Bob's Workshop does.
26
-
27
- ---
18
+ **What if your AI agents could talk to each other, work in parallel, and build lasting knowledge about your project through shared markdown files (MANUALS)?**
28
19
 
29
20
  ## Table of contents
30
21
 
31
- - [🧭 Bob's Workshop MCP — AI-Orchestrated Development that Builds with You](#-bobs-workshop-mcp--ai-orchestrated-development-that-builds-with-you)
32
- - [The problem](#the-problem)
33
- - [Table of contents](#table-of-contents)
34
- - [What makes this different](#what-makes-this-different)
35
- - [🧠 How Bob Works](#-how-bob-works)
36
- - [📊 Dashboard](#-dashboard)
37
- - [🚀 Get started in 2 minutes](#-get-started-in-2-minutes)
38
- - [The easiest way](#the-easiest-way)
39
- - [Manual installation](#manual-installation)
40
- - [🧩 Core Workflows](#-core-workflows)
41
- - [âš™ī¸ Tools Overview](#ī¸-tools-overview)
42
- - [đŸ—ī¸ Architecture](#ī¸-architecture)
43
- - [đŸŽ¯ Use cases](#-use-cases)
44
- - [đŸ“Ļ Repository structure](#-repository-structure)
45
- - [🤝 Contributing](#-contributing)
46
- - [📄 License](#-license)
47
-
48
- ---
22
+ - [What makes this different](#what-makes-this-different)
23
+ - [🌟 Showcase](#-showcase)
24
+ - [📊 Project statistics](#-project-statistics)
25
+ - [🚀 Get started in 2 minutes](#-get-started-in-2-minutes)
26
+ - [🔧 Solution overview](#-solution-overview)
27
+ - [đŸŽ¯ Use cases](#-use-cases)
28
+ - [đŸ—ī¸ Architecture](#ī¸-architecture)
29
+ - [đŸ“Ļ Components](#-components)
49
30
 
50
31
  ## What makes this different
51
32
 
52
- 🧭 **Manual-first Development** — every task begins with a living manual (JSON file), so plans and code stay in sync
53
- 🔄 **Mode Switching Execution** — Claude Code switches modes (orchestrator → architect → engineer → debugger → reviewer) within a single conversation - no agent delegation
54
- 🧱 **Role-based Intelligence** — Each mode has specialized prompts and tools for architecture, implementation, debugging, or review
55
- 🧠 **Human-in-the-loop Questions** — Bob never assumes; he clarifies until 95% confident
56
- 🔍 **Hybrid Search (3 Engines)** — Intelligent search combining lexical (ripgrep), semantic (semgrep), and structural (AST-based) analysis with phase-aware routing
57
- 📝 **Traceable Workflows** — Every action logged within the manual using bob.manual.update (single source of truth)
58
- 📊 **Visual Dashboard** — Real-time progress, manual state, logs, and diffs — dashboard reads SPEC files directly
59
- 🔧 **Reliable Git Operations** — Industry-standard practices for handling complex filenames and repository states
33
+ 📝 **MANUALs that live**: Documentation that updates as you build through shared specifications
34
+ 🧠 **Agents that remember**: Your project context persists across conversations via MANUAL files
35
+ 🔄 **Workflows that connect**: Alice → Bob → Trace workflow in one flow
36
+ ⚡ **Parallel execution**: Multiple background agents work simultaneously on different tasks
37
+ đŸŽ¯ **Verification built-in**: PASS/FAIL verification with Bob ensures quality
60
38
 
61
- ---
39
+ ## 🌟 Showcase
62
40
 
63
- ## 🧠 How Bob Works
41
+ ### 🎮 Connections Game
64
42
 
65
- > "Hey Bob, build me a new onboarding flow."
43
+ **Location**: [`showcase/connections-game`](showcase/connections-game)
66
44
 
67
- When you say "hey bob", **Claude Code switches to orchestrator mode** and builds a full lifecycle around your request:
45
+ A daily word puzzle game inspired by NYT Connections where players group 4 words that share a common theme.
68
46
 
69
- **🔄 Mode Switching Model**
70
- Bob's Workshop uses a **mode switching** approach — Claude Code is a single conversation that transitions between modes:
47
+ ![Connections Game](assets/connections-game.png)
48
+ *Daily puzzle interface with 16 words to group into 4 categories*
71
49
 
72
- 1. **Orchestrator Mode** — classifies your problem using `bob.workshop`
73
- 2. **Architect Mode** — Claude switches to architect, drafts the plan, identifies edge cases, asks clarifying questions
74
- 3. **Engineer Mode** — Claude switches to engineer, implements step-by-step, runs tests, and records progress
75
- 4. **Debugger Mode** — Claude switches to debugger, investigates errors using hybrid search before proposing fixes
76
- 5. **Reviewer Mode** — Claude switches to reviewer, audits security, quality, and architecture before final approval
50
+ **Features Implemented**:
51
+ - Daily puzzle selection based on date (50+ levels)
52
+ - Drag and drop tile rearrangement
53
+ - 4 attempts to solve all connections
54
+ - Visual feedback (correct, wrong, "one away" hints)
55
+ - 4 difficulty levels (yellow → green → blue → purple)
56
+ - Responsive design for desktop and mobile
57
+ - Touch support for mobile devices
77
58
 
78
- > **Important:** There is no agent delegation. Claude Code **IS** the orchestrator/architect/engineer/debugger/reviewer. It switches modes and executes directly.
59
+ ---
79
60
 
80
- All changes are tracked in a **Manual** (JSON file stored in `.bob/specs/SPEC-*.json`), which serves as the single source of truth — capturing specifications, execution logs, and debug findings.
61
+ ### 🔮 Cyber Wordle
81
62
 
82
- ---
63
+ **Location**: [`showcase/cyber-wordle`](showcase/cyber-wordle)
83
64
 
84
- ## 📊 Dashboard
65
+ A cyberpunk-themed Wordle clone with daily puzzles, archive mode, and statistics tracking.
85
66
 
86
- ![Bob's MCP Dashboard](assets/bobs-dashboard.jpg)
87
- *A real-time view of your manuals, worktrees, and logs.*
67
+ ![Cyber Wordle](assets/cyber-wordle.png)
68
+ *Cyberpunk interface with neon aesthetics and full game controls*
88
69
 
89
- * 🧾 **Manual List** — track every task from draft to deployed
90
- * 🔄 **Live Sync** — see updates appear as Bob works
91
- * 🧠 **Role Insights** — understand what each agent is doing
92
- * 🧩 **Diff Viewer** — inspect file changes and LOC stats
93
- * đŸ§Ē **Test Status** — know when your work passes validation
70
+ **Features Implemented**:
71
+ - 20 cyberpunk-themed word puzzles
72
+ - Daily puzzle rotation based on date
73
+ - Full archive mode (access any puzzle)
74
+ - Statistics tracking (wins, losses, streaks, best scores)
75
+ - localStorage for persistent statistics
76
+ - Responsive design with mobile support
77
+ - Neon cyberpunk visual theme (dark gradients, holographic effects)
94
78
 
95
79
  ---
96
80
 
81
+ Have a cool project? Share it with the community!
82
+
97
83
  ## 🚀 Get started in 2 minutes
98
84
 
99
85
  ### The easiest way
100
86
 
101
- Ask Claude Code:
87
+ ```bash
88
+ npm install bobs-workshop
89
+ ```
102
90
 
103
- > **"Install Bob's Workshop MCP for me from npm"**
91
+ That's it. The installer:
92
+ - ✅ Automatically installs all components
93
+ - ✅ Detects conflicts before installation
94
+ - ✅ Shows clear error messages if conflicts exist
95
+ - ✅ Follows OpenCode's official directory structure
104
96
 
105
- Claude will:
97
+ ### See it working
106
98
 
107
- * Install and configure Bob's Workshop MCP
108
- * Register tools & prompts
109
- * Launch the dashboard
99
+ Once installed, try your first workflow:
110
100
 
111
- Then just type:
101
+ **Workflow diagram**:
112
102
 
113
- ```bash
114
- hey bob, create an API for project management
103
+ ```
104
+ ┌─────────────┐ ┌────────────────────┐ ┌────────────────────┐ ┌────────────────────┐ ┌────────────────────-┐ ┌──────────────────┐ ┌──────────────┐
105
+ │ USER │────â–ē│ ALICE │────â–ē│ BOB │────â–ē│ BOB-REV │────â–ē│ TRACE │────â–ē│ BOB-SEND │────â–ē│ PRODUCTION │
106
+ │ Creates │ │ (Architect) │ │ (Orchestrator) │ │ (Reviewer) │ │ (Debugger) │ │ (Shipper) │ │ │
107
+ │ MANUAL │ │ ┌──────────────┐ │ │ ┌──────────────┐ │ │ PASS/FAIL │ │ Root cause │ │ Build, lint, │ │ │
108
+ └─────────────┘ │ │ backend- │ │ │ │ testing- │ │ │ verification │ │ analysis │ │ test, verify │ │ │
109
+ │ │ explorer │ │ │ │ patterns │ │ │ Quality │ │ Systematic │ │ │ │ │
110
+ │ │ frontend- │ │ │ │ clean-code │ │ │ checks │ │ debugging │ │ │ │ │
111
+ │ │ explorer │ │ │ │ security │ │ │ │ │ │ │ │ │ │
112
+ │ │ database- │ │ │ └──────â”Ŧ───────┘ │ │ │ │ │ │ │ │ │
113
+ │ │ explorer │ │ │ │ │ │ │ │ │ │ │ │ │
114
+ │ └──────â”Ŧ───────┘ │ │ â–ŧ │ └─────────â”Ŧ────────-─┘ └─────────â”Ŧ───────────┘ └──────────────────┘ └──────────────┘
115
+ │ │ │ │ (if issues) │ │ │
116
+ │ â–ŧ │ │ │ │ │ │
117
+ │ ┌─────────────────┴─┐ │ │ │ │ │
118
+ │ │ Findings → MANUAL │ │ │ │ │ │
119
+ │ └───────────────────┘ │ │ │ │ │
120
+ │ │ │ │ │ │
121
+ └──────────────────────────┘ └──────────┴───────────────┴──────────────────────────┘
122
+ â†ŗ back to Bob or Bob-Rev
115
123
  ```
116
124
 
117
- And watch the magic unfold:
125
+ ## 🔧 Solution overview
118
126
 
119
- * Architect asks clarifying questions
120
- * Engineer implements with logs
121
- * Reviewer checks quality
122
- * Dashboard tracks everything in real-time
127
+ **MANUAL-driven development methodology**: Every feature begins with a comprehensive MANUAL that serves as the single source of truth. This approach ensures architectural consistency and eliminates the traditional disconnect between planning and implementation.
123
128
 
124
- ---
129
+ **Background execution architecture**: Agents run as background tasks, allowing you to continue working while they complete their work. Multiple agents can run simultaneously, dramatically reducing development time through parallel exploration and implementation.
125
130
 
126
- ### Manual installation
131
+ **Context persistence through MANUALs**: Project knowledge accumulates across conversations through MANUAL files. Unlike traditional AI interactions that lose context, agents build cumulative understanding of your codebase patterns, architectural decisions, and implementation preferences by reading and updating the same MANUAL.
127
132
 
128
- ```bash
129
- # 1. Install search tool dependencies (REQUIRED)
130
- # macOS:
131
- brew install semgrep ripgrep
133
+ **Multi-agent coordination system**: Four specialized AI agents work collaboratively within shared MANUAL documents. Alice (architect) plans and coordinates parallel exploration, Bob (orchestrator) implements with skills-based delegation, Bob-Rev (reviewer) provides PASS/FAIL verification, and Bob-Send (shipper) handles build, lint, test, and verification.
132
134
 
133
- # Linux:
134
- pip3 install semgrep && apt install ripgrep # Debian/Ubuntu
135
- pip3 install semgrep && yum install ripgrep # RHEL/CentOS
135
+ **Plugin-based tool integration**: Six custom tools provide seamless background task management. `background_agent` launches parallel tasks, `background_output` collects results, `background_cancel` manages cleanup, `manual_update` appends to MANUAL sections, `verify_manual` runs automated verification, and `list_background_tasks` provides observability.
136
136
 
137
- # 2. Install bobs-workshop globally
138
- npm install -g bobs-workshop
137
+ ## đŸŽ¯ Use cases
139
138
 
140
- # 3. Register with Claude Code (project scope recommended)
141
- claude mcp add bobs-workshop bobs-mcp --scope project
139
+ - **Feature Development**: End-to-end feature planning, implementation, and verification with MANUALs
140
+ - **Architecture Analysis**: Deep codebase exploration with parallel agent coordination
141
+ - **Code Review**: Multi-perspective code analysis with specialized review skills
142
+ - **Documentation**: MANUAL-driven documentation generation and maintenance
143
+ - **Research**: Best practice research and technology evaluation through parallel exploration
144
+ - **Project Planning**: Specification-driven development planning with living MANUALs
142
145
 
143
- # Or register globally
144
- claude mcp add bobs-workshop bobs-mcp --scope global
146
+ ## đŸ—ī¸ Architecture
145
147
 
146
- # 4. Launch dashboard
147
- bobs workshop
148
- ```
148
+ Bob's Workshop integrates with OpenCode through:
149
149
 
150
- **Important:** Search tools (semgrep & ripgrep) must be installed **before** using Bob's MCP. The package will attempt to auto-install semgrep during `npm install`, but manual installation is more reliable.
150
+ - **Plugin System**: Custom tools extend OpenCode's capabilities
151
+ - **Agent Framework**: Five specialized agents for different development phases
152
+ - **Skill System**: Sixteen specialized skills for specific expertise
153
+ - **Background Execution**: Parallel task management without blocking
151
154
 
152
- After installation, the `bobs` command will be available globally. The package will automatically:
153
- - Initialize the workspace structure
154
- - Verify search tools are available
155
+ ## đŸ“Ļ Components
155
156
 
156
- ### Verify Installation
157
+ ### Core agents (5 total)
157
158
 
158
- Check that everything is properly configured:
159
- ```bash
160
- # 1. Verify search tools
161
- semgrep --version # Should show semgrep version
162
- rg --version # Should show ripgrep version
159
+ **Specialized AI agents for different development phases**
163
160
 
164
- # 2. Check MCP server connection in Claude Code
165
- /mcp
166
- # You should see "bobs-workshop" as ✔ connected
161
+ - **alice** (Architect) - Planning & MANUAL authoring with parallel exploration coordination
162
+ - **bob** (Orchestrator) - Executes tasks & routes workflow with skills-based delegation
163
+ - **bob-rev** (Reviewer) - PASS/FAIL verification and quality assurance
164
+ - **trace** (Debugger) - Root cause analysis and systematic debugging
165
+ - **bob-send** (Shipper) - Build, lint, test, and verification for production
167
166
 
168
- # 3. Verify manifest is loaded (in Claude Code)
169
- # The manifest provides critical LLM guidance for tool usage
170
- # Ask Claude: "Can you read the bobs-workshop manifest?"
171
- ```
167
+ ### Core skills (16 total)
172
168
 
173
- **Troubleshooting:** If Claude Code doesn't follow Bob's workflow patterns religiously:
174
- 1. Ensure search tools are installed: `semgrep --version && rg --version`
175
- 2. Restart Claude Code to reload the MCP server
176
- 3. Verify manifest resource is accessible: Ask Claude to read `mcp://bobs-workshop/manifest`
177
- 4. Check `.mcp.json` uses `bobs-mcp` command (not local path)
169
+ **Specialized skills that agents can invoke**
178
170
 
179
- The manifest with LLM guidance is available at resource URI `mcp://bobs-workshop/manifest` and provides tool selection optimization and workflow instructions.
171
+ - **Architecture**: Architectural decision-making and requirements analysis
172
+ - **Exploration**: LSP-powered codebase exploration and definition tracing
173
+ - **API-patterns**: API design principles (REST vs GraphQL vs tRPC)
174
+ - **Database-design**: Schema design, indexing, ORM selection
175
+ - **Security**: Advanced vulnerability analysis (OWASP 2025, supply chain)
176
+ - **Testing-patterns**: Testing strategies (unit, integration, mocking)
177
+ - **Clean-code**: Pragmatic coding standards - concise, no over-engineering
178
+ - **Performance**: Performance analysis, bottleneck identification
179
+ - **Frontend-ui-ux**: UI/UX design without mockups
180
+ - **Git-master**: Atomic commits, rebase/squash, history search
181
+ - **Plan-writing**: Structured task planning with clear breakdowns
182
+ - **Brainstorming**: Socratic questioning for complex requirements
183
+ - **Code-review-checklist**: Code quality, security, best practices
184
+ - **Systematic-debugging**: 4-phase debugging with evidence-based verification
185
+ - **Simplification**: Optional polish pass - simplify without changing behavior
186
+ - **Verification**: Evidence-based verification methodology
180
187
 
181
- See the documentation for advanced setup and configuration options.
188
+ ### Core tools (6 total)
182
189
 
183
- ---
190
+ **Custom tools for background task and MANUAL management**
184
191
 
185
- ## 🧩 Core Workflows
192
+ - **background_agent**: Launch background agents for parallel execution
193
+ - **background_output**: Collect results from specific background tasks
194
+ - **background_cancel**: Cancel running background tasks or all tasks
195
+ - **manual_update**: Append content to specific MANUAL sections
196
+ - **verify_manual**: Run automated verification of MANUAL completion
197
+ - **list_background_tasks**: List all running and completed background tasks
186
198
 
187
- | Workflow | Description |
188
- | ----------------------------- | ---------------------------------------------------- |
189
- | **bob.workshop** | Classifies problem and returns mode to switch to (architect/engineer/debugger/reviewer) |
190
- | **bob.workflow.start** | Creates new manual + worktree + dashboard session |
191
- | **bob.workflow.deploy** | Commits changes, merges to main, cleans up worktree |
192
- | **bob.code.search** | Phase-aware hybrid search (ripgrep + semgrep) |
193
- | **bob.manual.update** | Updates manual sections with execution/debug logs (single source of truth for activity logging) |
194
- | **bob.validate.changes** | Diff validation and spec compliance |
195
- | **bob.summarize.implementation** | Generate implementation summaries |
196
- | **bob.dashboard.launch** | Launch web dashboard (port 4577) - reads SPEC files directly |
199
+ ### File structure after install
197
200
 
198
- ---
201
+ ```
202
+ .opencode/
203
+ ├── agents/ # Flat structure (per OpenCode docs)
204
+ │ ├── alice.md
205
+ │ ├── bob.md
206
+ │ ├── bob-rev.md
207
+ │ ├── trace.md
208
+ │ └── bob-send.md
209
+ ├── skills/ # Flat structure (per OpenCode docs)
210
+ │ ├── architecture/SKILL.md
211
+ │ ├── exploration/SKILL.md
212
+ │ ├── api-patterns/SKILL.md
213
+ │ └── ... (16 total skills)
214
+ ├── tools/bobs-workshop/ # Namespaced tools
215
+ │ ├── background-agent/
216
+ │ ├── manual/
217
+ │ └── index.js
218
+ ├── plugins/bobs-workshop/ # Namespaced plugin
219
+ │ └── plugin.js
220
+ └── opencode.jsonc # Merged agent configs
221
+ ```
199
222
 
200
- ## âš™ī¸ Tools Overview
201
-
202
- | Tool | Description |
203
- | --------------------------------- | ----------------------------------------------- |
204
- | 🧭 `bob.workshop` | Problem classifier — analyzes request and returns which mode to switch to |
205
- | 🧱 `bob.manual.create` / `update` / `get` / `list` | Manage manual JSON files (create, update sections, retrieve, list all) |
206
- | 🔍 `bob.code.search` | 3-engine hybrid search: lexical (ripgrep), semantic (semgrep), structural (AST-based). Auto-routes based on query type and phase (architect/engineer/debugger/reviewer) |
207
- | ✅ `bob.validate.changes` | Verify changes match manual expectations |
208
- | 📊 `bob.dashboard.launch` | Launch web dashboard on port 4577 (reads SPEC files directly) |
209
- | đŸŒŗ `bob.worktree.debug` | Advanced worktree maintenance (repair, cleanup, validate, status) |
210
- | 🚀 `bob.workflow.start` | Bootstrap workflow: create manual + worktree + launch dashboard |
211
- | đŸŽ¯ `bob.workflow.deploy` | Complete feature: commit + merge to main + cleanup worktree |
212
- | 📝 `bob.summarize.implementation` | Generate comprehensive implementation summaries |
213
- | 🐛 `bob.debug` | Debug server state and troubleshoot issues |
214
223
 
215
- ---
224
+ ## CLI (Optional)
216
225
 
217
- ## đŸ—ī¸ Architecture
226
+ The CLI provides diagnostic and manual control:
218
227
 
219
- ![Bob's MCP Architecture](assets/bobs-architecture.jpg)
220
- *A simple, composable structure built on MCP principles.*
228
+ ```bash
229
+ # Diagnostics - check installation status
230
+ bobs-workshop doctor
221
231
 
222
- * **MCP Server** — exposes tools & prompts via Model Context Protocol
223
- * **Mode Switching** — Claude Code switches between orchestrator/architect/engineer/debugger/reviewer modes within a single conversation
224
- * **CLI Interface** — `bobs` command for workflows, health checks, and maintenance
225
- * **Worktrees** — isolated git branches per manual for parallel development
226
- * **Dashboard** — visual orchestration view that reads SPEC files directly from `.bob/specs/`
227
- * **Prompts** — mode-specific instructions that Claude executes directly (ORCHESTRATOR_PROMPT, ARCHITECT_PROMPT, ENGINEER_PROMPT, DEBUGGER_PROMPT, REVIEWER_PROMPT)
228
- * **Manuals** — JSON files (`.bob/specs/SPEC-*.json`) capturing full context, decisions, execution logs, and debug findings as single source of truth
232
+ # Note: Installation is fully automatic via `npm install bobs-workshop`
233
+ # The CLI is primarily for diagnostics and troubleshooting
234
+ ```
229
235
 
230
- ---
236
+ ## Uninstallation
231
237
 
232
- ## đŸŽ¯ Use cases
238
+ ```bash
239
+ npm uninstall bobs-workshop
240
+ ```
233
241
 
234
- * 🧠 **Feature planning** — plan & clarify complex features before coding
235
- * 🧱 **Implementation** — build with discipline & step-by-step logs
236
- * 🔍 **Debugging** — research & resolve issues transparently
237
- * 🔒 **Code review** — security, performance, and quality audits
238
- * 🧾 **Documentation** — living specs that evolve as you code
239
- * 🧰 **Tool orchestration** — unify AI, search, and validation tools under one flow
242
+ All files and configs are removed automatically.
240
243
 
241
- ---
244
+ ## Development
245
+
246
+ ```bash
247
+ # Build tools
248
+ npm run build
242
249
 
243
- ## đŸ“Ļ Repository structure
250
+ # Run tests
251
+ npm test
244
252
 
245
- ```
246
- bobs-workshop/
247
- ├── README.md # You're here
248
- ├── src/
249
- │ ├── index.ts # MCP server bootstrap
250
- │ ├── tools/ # MCP tool implementations
251
- │ ├── cli/ # CLI command modules
252
- │ ├── dashboard/ # Web dashboard server
253
- │ ├── services/ # Core services (logging, validation, etc.)
254
- │ ├── utils/ # Utility functions and helpers
255
- │ └── prompts/ # Role prompts (Architect, Engineer, Reviewer, Debugger)
256
- ├── bin/
257
- │ └── bobs-mcp.js # CLI entry point
258
- ├── scripts/ # Installation and setup scripts
259
- ├── dist/ # Compiled JavaScript output
260
- ├── public/ # Dashboard frontend assets
261
- ├── tests/ # Test suites
262
- └── .bob/ # Workshop data storage
263
- ├── specs/ # Manual JSON files
264
- └── worktrees/ # Worktree metadata
253
+ # Prepare for publish
254
+ npm run prepublishOnly
255
+ npm publish
265
256
  ```
266
257
 
267
- ---
258
+ ## 👨‍đŸ’ģ Author's Stack
268
259
 
269
- ## 🤝 Contributing
260
+ **Core Infrastructure**
261
+ - **[OpenCode](https://opencode.ai)** - CLI coding interface that makes this workflow possible
262
+ - **[OpenChamber](https://github.com/pwnk77/openchamber)** - Multi-agent coordination and orchestration platform
263
+ - **[Tailscale](https://tailscale.com)** - Seamless phone/laptop interoperability across devices
270
264
 
271
- 1. Fork the repository
272
- 2. Create a feature branch (`git checkout -b feat/improvement`)
273
- 3. Add / enhance tools, prompts, or workflows
274
- 4. Test via Claude Code or MCP CLI
275
- 5. Submit a pull request with a clear changelog
265
+ **AI Models**
266
+ - **GLM-4.7** - Primary model for planning and architecture (Alice, Trace agents)
267
+ - **MiniMax M2.1** - Primary model for implementation and verification (Bob, Bob-Rev, Bob-Send agents)
268
+ - **Break-glass Models (via OpenRouter)**: GPT 5.1, Gemini 3, or Sonnet 4.5
276
269
 
277
- ---
270
+ This stack enables efficient, parallel development workflows with robust fallback options and seamless device integration.
278
271
 
279
272
  ## 📄 License
280
273
 
281
- MIT License — see [LICENSE](./LICENSE)
274
+ MIT License - see [LICENSE](./LICENSE) for details.
282
275
 
283
276
  ---
284
277
 
285
- **Tired of re-explaining your project every session?**
286
- Just say: **"Hey Bob, build this feature for me."**
287
-
288
- Bob will architect it, engineer it, test it, review it —
289
- and keep your documentation up to date. ✨
278
+ **Ready to stop explaining your project over and over?**
290
279
 
291
- ---
280
+ ```bash
281
+ npm install bobs-workshop
282
+ ```
292
283
 
293
- *Built with â™Ĩī¸ for developers who value clarity, traceability, and craftsmanship.*
294
- *Powered by [Model Context Protocol](https://modelcontextprotocol.io/) and [Claude Code](https://claude.ai/code)*
284
+ Then create your first MANUAL and watch Alice, Bob, and Trace work their magic. ✨
295
285
 
296
286
  ---
297
287
 
298
- [![npm version](https://badge.fury.io/js/bobs-workshop.svg)](https://badge.fury.io/js/bobs-workshop)
299
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
288
+ *Powered by [OpenCode](https://opencode.ai) and MANUAL-driven development*
@@ -0,0 +1,109 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { readFileSync, writeFileSync, existsSync, rmSync } from 'fs';
4
+ import { join } from 'path';
5
+ import { parse, print } from 'jsonc-parser';
6
+
7
+ const commands = ['install', 'uninstall', 'doctor'];
8
+ const args = process.argv.slice(2);
9
+ const command = args[0];
10
+
11
+ if (!command || !commands.includes(command)) {
12
+ console.log('bobs-workshop CLI');
13
+ console.log('');
14
+ console.log('Usage:');
15
+ console.log(' bobs-workshop install [--force-merge] [--no-config]');
16
+ console.log(' bobs-workshop uninstall [--clean]');
17
+ console.log(' bobs-workshop doctor');
18
+ console.log('');
19
+ process.exit(0);
20
+ }
21
+
22
+ function install(opts = {}) {
23
+ console.log('🔧 Installing bobs-workshop (manual)...');
24
+
25
+ const projectRoot = process.cwd();
26
+ const opencodeDir = join(projectRoot, '.opencode');
27
+ const configPath = join(opencodeDir, 'opencode.jsonc');
28
+
29
+ if (!existsSync(configPath)) {
30
+ console.log('â„šī¸ No opencode.jsonc found. Run npm install bobs-workshop first.');
31
+ return;
32
+ }
33
+
34
+ if (opts.forceMerge) {
35
+ console.log('âš ī¸ Force merging agent configs (will overwrite existing)');
36
+ }
37
+
38
+ if (opts.noConfig) {
39
+ console.log('â­ī¸ Skipping config merge');
40
+ return;
41
+ }
42
+
43
+ console.log('✅ Manual install complete');
44
+ }
45
+
46
+ function uninstall(opts = {}) {
47
+ console.log('đŸ—‘ī¸ Uninstalling bobs-workshop (manual)...');
48
+
49
+ if (opts.clean) {
50
+ console.log('đŸ—‘ī¸ Removing all bobs-workshop files and configs');
51
+
52
+ const projectRoot = process.cwd();
53
+ const opencodeDir = join(projectRoot, '.opencode');
54
+
55
+ const dirsToRemove = [
56
+ join(opencodeDir, 'plugins/bobs-workshop'),
57
+ join(opencodeDir, 'agent/bobs-workshop'),
58
+ join(opencodeDir, 'skill/bobs-workshop')
59
+ ];
60
+
61
+ dirsToRemove.forEach(dir => {
62
+ if (existsSync(dir)) {
63
+ rmSync(dir, { recursive: true, force: true });
64
+ console.log(`đŸ—‘ī¸ Removed: ${dir}`);
65
+ }
66
+ });
67
+ }
68
+
69
+ console.log('✅ Manual uninstall complete');
70
+ }
71
+
72
+ function doctor() {
73
+ console.log('đŸĨ Running bobs-workshop diagnostics...');
74
+
75
+ const projectRoot = process.cwd();
76
+ const opencodeDir = join(projectRoot, '.opencode');
77
+
78
+ const checks = [
79
+ { path: opencodeDir, name: '.opencode directory' },
80
+ { path: join(opencodeDir, 'opencode.jsonc'), name: 'Config file' },
81
+ { path: join(opencodeDir, 'plugins/bobs-workshop'), name: 'Plugin directory' },
82
+ { path: join(opencodeDir, 'agent/bobs-workshop'), name: 'Agent directory' },
83
+ { path: join(opencodeDir, 'skill/bobs-workshop'), name: 'Skill directory' },
84
+ ];
85
+
86
+ checks.forEach(check => {
87
+ const exists = existsSync(check.path);
88
+ console.log(`${exists ? '✅' : '❌'} ${check.name}`);
89
+ });
90
+ }
91
+
92
+ const flags = args.slice(1);
93
+ const opts = {
94
+ forceMerge: flags.includes('--force-merge'),
95
+ noConfig: flags.includes('--no-config'),
96
+ clean: flags.includes('--clean')
97
+ };
98
+
99
+ switch (command) {
100
+ case 'install':
101
+ install(opts);
102
+ break;
103
+ case 'uninstall':
104
+ uninstall(opts);
105
+ break;
106
+ case 'doctor':
107
+ doctor();
108
+ break;
109
+ }