bobs-workshop 0.3.3 â 3.1.1
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/LICENSE +2 -2
- package/README.md +199 -210
- package/bin/bobs-workshop.js +109 -0
- package/config/agents.json +27 -0
- package/dist/plugins/bobs-workshop.js +34 -0
- package/dist/tools/background-agent/cancel.d.ts +3 -0
- package/dist/tools/background-agent/cancel.d.ts.map +1 -0
- package/dist/tools/background-agent/cancel.js +52 -0
- package/dist/tools/background-agent/concurrency.d.ts +15 -0
- package/dist/tools/background-agent/concurrency.d.ts.map +1 -0
- package/dist/tools/background-agent/concurrency.js +61 -0
- package/dist/tools/background-agent/index.d.ts +8 -0
- package/dist/tools/background-agent/index.d.ts.map +1 -0
- package/dist/tools/background-agent/index.js +7 -0
- package/dist/tools/background-agent/launch.d.ts +6 -0
- package/dist/tools/background-agent/launch.d.ts.map +1 -0
- package/dist/tools/background-agent/launch.js +33 -0
- package/dist/tools/background-agent/list.d.ts +7 -0
- package/dist/tools/background-agent/list.d.ts.map +1 -0
- package/dist/tools/background-agent/list.js +40 -0
- package/dist/tools/background-agent/manager.d.ts +29 -0
- package/dist/tools/background-agent/manager.d.ts.map +1 -0
- package/dist/tools/background-agent/manager.js +388 -0
- package/dist/tools/background-agent/output.d.ts +3 -0
- package/dist/tools/background-agent/output.d.ts.map +1 -0
- package/dist/tools/background-agent/output.js +41 -0
- package/dist/tools/background-agent/types.d.ts +46 -0
- package/dist/tools/background-agent/types.d.ts.map +1 -0
- package/dist/tools/background-agent/types.js +1 -0
- package/dist/tools/index.d.ts +9 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +8 -0
- package/dist/tools/manual/index.d.ts +3 -0
- package/dist/tools/manual/index.d.ts.map +1 -0
- package/dist/tools/manual/index.js +2 -0
- package/dist/tools/manual/manual-update.d.ts +4 -0
- package/dist/tools/manual/manual-update.d.ts.map +1 -0
- package/dist/tools/manual/manual-update.js +190 -0
- package/dist/tools/manual/verify-manual.d.ts +4 -0
- package/dist/tools/manual/verify-manual.d.ts.map +1 -0
- package/dist/tools/manual/verify-manual.js +51 -0
- package/package.json +34 -66
- package/postinstall.js +193 -0
- package/src/agents/alice.md +466 -0
- package/src/agents/bob-rev.md +493 -0
- package/src/agents/bob-send.md +277 -0
- package/src/agents/bob.md +442 -0
- package/src/agents/trace.md +451 -0
- package/src/plugins/bobs-workshop.ts +45 -0
- package/src/skills/api-patterns/SKILL.md +376 -0
- package/src/skills/architecture/SKILL.md +271 -0
- package/src/skills/bobs-workshop/performance/icon.svg +3 -0
- package/src/skills/brainstorming/SKILL.md +210 -0
- package/src/skills/clean-code/SKILL.md +151 -0
- package/src/skills/code-review-checklist/SKILL.md +220 -0
- package/src/skills/database-design/SKILL.md +271 -0
- package/src/skills/exploration/SKILL.md +257 -0
- package/src/skills/frontend-ui-ux/SKILL.md +78 -0
- package/src/skills/git-master/SKILL.md +1105 -0
- package/src/skills/performance/SKILL.md +144 -0
- package/src/skills/performance/icon.svg +3 -0
- package/src/skills/plan-writing/SKILL.md +225 -0
- package/src/skills/security/SKILL.md +410 -0
- package/src/skills/simplification/SKILL.md +238 -0
- package/src/skills/systematic-debugging/SKILL.md +175 -0
- package/src/skills/testing-patterns/SKILL.md +305 -0
- package/src/skills/verification/SKILL.md +286 -0
- package/src/tools/background-agent/cancel.ts +67 -0
- package/src/tools/background-agent/concurrency.ts +71 -0
- package/src/tools/background-agent/index.ts +7 -0
- package/src/tools/background-agent/launch.ts +39 -0
- package/src/tools/background-agent/list.ts +50 -0
- package/src/tools/background-agent/manager.ts +466 -0
- package/src/tools/background-agent/output.ts +57 -0
- package/src/tools/background-agent/types.ts +55 -0
- package/src/tools/index.ts +8 -0
- package/src/tools/manual/index.ts +2 -0
- package/src/tools/manual/manual-update.ts +197 -0
- package/src/tools/manual/verify-manual.ts +60 -0
- package/uninstall.js +64 -0
- package/Claude.md +0 -162
- package/bin/bobs-mcp-server.js +0 -11
- package/bin/bobs-mcp.js +0 -130
- package/dist/api/taskLogger.js +0 -106
- package/dist/api/taskLogger.js.map +0 -1
- package/dist/cli/checker.js +0 -401
- package/dist/cli/checker.js.map +0 -1
- package/dist/cli/cleanup.js +0 -131
- package/dist/cli/cleanup.js.map +0 -1
- package/dist/cli/debug.js +0 -157
- package/dist/cli/debug.js.map +0 -1
- package/dist/cli/health.js +0 -97
- package/dist/cli/health.js.map +0 -1
- package/dist/cli/setup.js +0 -81
- package/dist/cli/setup.js.map +0 -1
- package/dist/cli/workshop.js +0 -42
- package/dist/cli/workshop.js.map +0 -1
- package/dist/dashboard/server.js +0 -1203
- package/dist/dashboard/server.js.map +0 -1
- package/dist/index.js +0 -960
- package/dist/index.js.map +0 -1
- package/dist/prompts/architect.js +0 -221
- package/dist/prompts/architect.js.map +0 -1
- package/dist/prompts/debugger.js +0 -257
- package/dist/prompts/debugger.js.map +0 -1
- package/dist/prompts/engineer.js +0 -249
- package/dist/prompts/engineer.js.map +0 -1
- package/dist/prompts/orchestrator.js +0 -304
- package/dist/prompts/orchestrator.js.map +0 -1
- package/dist/prompts/reviewer.js +0 -289
- package/dist/prompts/reviewer.js.map +0 -1
- package/dist/services/activitySummarizer.js +0 -388
- package/dist/services/activitySummarizer.js.map +0 -1
- package/dist/services/changeValidator.js +0 -396
- package/dist/services/changeValidator.js.map +0 -1
- package/dist/services/claudeOrchestrator.js +0 -343
- package/dist/services/claudeOrchestrator.js.map +0 -1
- package/dist/services/fileMonitor.js +0 -250
- package/dist/services/fileMonitor.js.map +0 -1
- package/dist/services/implementationSummarizer.js +0 -306
- package/dist/services/implementationSummarizer.js.map +0 -1
- package/dist/services/liveMonitor.js +0 -315
- package/dist/services/liveMonitor.js.map +0 -1
- package/dist/services/mcpAuditLogger.js +0 -104
- package/dist/services/mcpAuditLogger.js.map +0 -1
- package/dist/services/mcpLogger.js +0 -223
- package/dist/services/mcpLogger.js.map +0 -1
- package/dist/services/tmuxManager.js +0 -541
- package/dist/services/tmuxManager.js.map +0 -1
- package/dist/tools/approvalTools.js +0 -244
- package/dist/tools/approvalTools.js.map +0 -1
- package/dist/tools/autoDebugger.js +0 -147
- package/dist/tools/autoDebugger.js.map +0 -1
- package/dist/tools/cleanupService.js +0 -221
- package/dist/tools/cleanupService.js.map +0 -1
- package/dist/tools/dashboardTools.js +0 -342
- package/dist/tools/dashboardTools.js.map +0 -1
- package/dist/tools/developmentNudges.js +0 -336
- package/dist/tools/developmentNudges.js.map +0 -1
- package/dist/tools/gitTools.js +0 -741
- package/dist/tools/gitTools.js.map +0 -1
- package/dist/tools/orchestratorTools.js +0 -832
- package/dist/tools/orchestratorTools.js.map +0 -1
- package/dist/tools/searchCache.js +0 -64
- package/dist/tools/searchCache.js.map +0 -1
- package/dist/tools/searchTools.js +0 -1107
- package/dist/tools/searchTools.js.map +0 -1
- package/dist/tools/semgrep-patterns.js +0 -296
- package/dist/tools/semgrep-patterns.js.map +0 -1
- package/dist/tools/specTools.js +0 -332
- package/dist/tools/specTools.js.map +0 -1
- package/dist/tools/structural/__tests__/orchestrator.test.js +0 -61
- package/dist/tools/structural/__tests__/orchestrator.test.js.map +0 -1
- package/dist/tools/structural/cache.js +0 -226
- package/dist/tools/structural/cache.js.map +0 -1
- package/dist/tools/structural/engines/python/index.js +0 -118
- package/dist/tools/structural/engines/python/index.js.map +0 -1
- package/dist/tools/structural/engines/typescript/__tests__/typescript-engine.test.js +0 -97
- package/dist/tools/structural/engines/typescript/__tests__/typescript-engine.test.js.map +0 -1
- package/dist/tools/structural/engines/typescript/analyzer.js +0 -433
- package/dist/tools/structural/engines/typescript/analyzer.js.map +0 -1
- package/dist/tools/structural/engines/typescript/index.js +0 -381
- package/dist/tools/structural/engines/typescript/index.js.map +0 -1
- package/dist/tools/structural/engines/typescript/utils.js +0 -279
- package/dist/tools/structural/engines/typescript/utils.js.map +0 -1
- package/dist/tools/structural/index.js +0 -248
- package/dist/tools/structural/index.js.map +0 -1
- package/dist/tools/structural/types.js +0 -18
- package/dist/tools/structural/types.js.map +0 -1
- package/dist/tools/tmuxTools.js +0 -100
- package/dist/tools/tmuxTools.js.map +0 -1
- package/dist/tools/workRecorder.js +0 -215
- package/dist/tools/workRecorder.js.map +0 -1
- package/dist/tools/worktreeTools.js +0 -705
- package/dist/tools/worktreeTools.js.map +0 -1
- package/dist/utils/__tests__/integration.test.js +0 -57
- package/dist/utils/__tests__/integration.test.js.map +0 -1
- package/dist/utils/__tests__/serverDetection.test.js +0 -151
- package/dist/utils/__tests__/serverDetection.test.js.map +0 -1
- package/dist/utils/errorHandling.js +0 -336
- package/dist/utils/errorHandling.js.map +0 -1
- package/dist/utils/processManager.js +0 -172
- package/dist/utils/processManager.js.map +0 -1
- package/dist/utils/reliability.js +0 -263
- package/dist/utils/reliability.js.map +0 -1
- package/dist/utils/responseFormatter.js +0 -250
- package/dist/utils/responseFormatter.js.map +0 -1
- package/dist/utils/serverDetection.js +0 -133
- package/dist/utils/serverDetection.js.map +0 -1
- package/dist/utils/specMigration.js +0 -105
- package/dist/utils/specMigration.js.map +0 -1
- package/dist/validation/schemas.js +0 -299
- package/dist/validation/schemas.js.map +0 -1
- package/public/.well-known/mcp/manifest.json +0 -473
- package/public/index.html +0 -3157
- package/public/index.html.backup +0 -2805
- package/public/index.html.backup2 +0 -1292
- package/scripts/cleanup-system-logs.ts +0 -121
- package/scripts/init-workspace.js +0 -63
- package/scripts/install-search-tools.js +0 -116
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c)
|
|
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
|
-
#
|
|
1
|
+
# bobs workshop - agentic dev harness for OpenCode
|
|
2
2
|
|
|
3
|
-
*
|
|
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
|
-
|
|
5
|
+

|
|
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
|
-
##
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
- [
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
41
|
+
### đŽ Connections Game
|
|
64
42
|
|
|
65
|
-
|
|
43
|
+
**Location**: [`showcase/connections-game`](showcase/connections-game)
|
|
66
44
|
|
|
67
|
-
|
|
45
|
+
A daily word puzzle game inspired by NYT Connections where players group 4 words that share a common theme.
|
|
68
46
|
|
|
69
|
-
|
|
70
|
-
|
|
47
|
+

|
|
48
|
+
*Daily puzzle interface with 16 words to group into 4 categories*
|
|
71
49
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
4
|
|
76
|
-
|
|
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
|
-
|
|
59
|
+
---
|
|
79
60
|
|
|
80
|
-
|
|
61
|
+
### đŽ Cyber Wordle
|
|
81
62
|
|
|
82
|
-
|
|
63
|
+
**Location**: [`showcase/cyber-wordle`](showcase/cyber-wordle)
|
|
83
64
|
|
|
84
|
-
|
|
65
|
+
A cyberpunk-themed Wordle clone with daily puzzles, archive mode, and statistics tracking.
|
|
85
66
|
|
|
86
|
-

|
|
68
|
+
*Cyberpunk interface with neon aesthetics and full game controls*
|
|
88
69
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
|
|
87
|
+
```bash
|
|
88
|
+
npm install bobs-workshop
|
|
89
|
+
```
|
|
102
90
|
|
|
103
|
-
|
|
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
|
-
|
|
97
|
+
### See it working
|
|
106
98
|
|
|
107
|
-
|
|
108
|
-
* Register tools & prompts
|
|
109
|
-
* Launch the dashboard
|
|
99
|
+
Once installed, try your first workflow:
|
|
110
100
|
|
|
111
|
-
|
|
101
|
+
**Workflow diagram**:
|
|
112
102
|
|
|
113
|
-
```
|
|
114
|
-
|
|
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
|
-
|
|
125
|
+
## đ§ Solution overview
|
|
118
126
|
|
|
119
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
138
|
-
npm install -g bobs-workshop
|
|
137
|
+
## đ¯ Use cases
|
|
139
138
|
|
|
140
|
-
|
|
141
|
-
|
|
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
|
-
|
|
144
|
-
claude mcp add bobs-workshop bobs-mcp --scope global
|
|
146
|
+
## đī¸ Architecture
|
|
145
147
|
|
|
146
|
-
|
|
147
|
-
bobs workshop
|
|
148
|
-
```
|
|
148
|
+
Bob's Workshop integrates with OpenCode through:
|
|
149
149
|
|
|
150
|
-
**
|
|
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
|
-
|
|
153
|
-
- Initialize the workspace structure
|
|
154
|
-
- Verify search tools are available
|
|
155
|
+
## đĻ Components
|
|
155
156
|
|
|
156
|
-
###
|
|
157
|
+
### Core agents (5 total)
|
|
157
158
|
|
|
158
|
-
|
|
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
|
-
|
|
165
|
-
|
|
166
|
-
|
|
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
|
-
|
|
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
|
-
**
|
|
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
|
-
|
|
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
|
-
|
|
188
|
+
### Core tools (6 total)
|
|
182
189
|
|
|
183
|
-
|
|
190
|
+
**Custom tools for background task and MANUAL management**
|
|
184
191
|
|
|
185
|
-
|
|
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
|
-
|
|
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
|
-
|
|
226
|
+
The CLI provides diagnostic and manual control:
|
|
218
227
|
|
|
219
|
-
|
|
220
|
-
|
|
228
|
+
```bash
|
|
229
|
+
# Diagnostics - check installation status
|
|
230
|
+
bobs-workshop doctor
|
|
221
231
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
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
|
-
|
|
238
|
+
```bash
|
|
239
|
+
npm uninstall bobs-workshop
|
|
240
|
+
```
|
|
233
241
|
|
|
234
|
-
|
|
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
|
-
|
|
250
|
+
# Run tests
|
|
251
|
+
npm test
|
|
244
252
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
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
|
-
|
|
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
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
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
|
|
274
|
+
MIT License - see [LICENSE](./LICENSE) for details.
|
|
282
275
|
|
|
283
276
|
---
|
|
284
277
|
|
|
285
|
-
**
|
|
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
|
-
|
|
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
|
-
[
|
|
299
|
-
[](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
|
+
}
|