@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,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: SEC-006
|
|
3
|
+
title: "Validate agent names to prevent shell injection via eval"
|
|
4
|
+
type: security
|
|
5
|
+
priority: medium
|
|
6
|
+
assigned_to: aegis
|
|
7
|
+
created_at: 2026-01-16T00:00:00Z
|
|
8
|
+
created_by: scribe-docs-migration
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
The load_agents_from_json() function uses eval on agent data which could allow shell command execution if agents.json is compromised.
|
|
13
|
+
|
|
14
|
+
## Current State
|
|
15
|
+
From docs/TODO.md (M-1 - Medium Priority):
|
|
16
|
+
> **eval() of external data in load_agents_from_json()**
|
|
17
|
+
> File: `bin/lib/config.sh` line 95
|
|
18
|
+
> Issue: If agents.json is compromised, malicious agent names could execute shell commands via `eval "$agent_data"`
|
|
19
|
+
> Fix: Add input validation in Node.js script to reject agent names containing shell metacharacters
|
|
20
|
+
|
|
21
|
+
## Affected Files
|
|
22
|
+
- `bin/lib/config.sh` line 95
|
|
23
|
+
|
|
24
|
+
## Proposed Fix
|
|
25
|
+
Add input validation in the Node.js script that processes agents.json to reject agent names containing:
|
|
26
|
+
- Shell metacharacters (`;`, `|`, `&`, `$`, backticks, etc.)
|
|
27
|
+
- Newlines
|
|
28
|
+
- Quotes
|
|
29
|
+
|
|
30
|
+
Alternatively, refactor to avoid eval entirely by using a safer approach to populate the agent data.
|
|
31
|
+
|
|
32
|
+
## Acceptance Criteria
|
|
33
|
+
- [x] Agent names validated before eval
|
|
34
|
+
- [x] Shell metacharacters rejected with clear error message
|
|
35
|
+
- [x] No change to legitimate agent names
|
|
36
|
+
- [x] Test coverage for injection attempts
|
|
37
|
+
|
|
38
|
+
## Resolution
|
|
39
|
+
|
|
40
|
+
**Status: Already Fixed**
|
|
41
|
+
|
|
42
|
+
The validation was implemented as part of SEC-001 security fixes:
|
|
43
|
+
|
|
44
|
+
1. **`bin/lib/config.sh`** lines 47-86 contain:
|
|
45
|
+
- `isValidIdentifier()` function that validates against `^[a-z0-9_-]+$`
|
|
46
|
+
- Validation of all agent names before processing
|
|
47
|
+
- Validation of all aliases
|
|
48
|
+
- `escapeForShell()` for display names, roles, and other string values
|
|
49
|
+
|
|
50
|
+
2. **Test coverage** exists in `tests/unit/agents.test.js`:
|
|
51
|
+
- `should reject command injection attempt` (line 89)
|
|
52
|
+
- `should reject backtick injection` (line 94)
|
|
53
|
+
- `should reject path traversal attempt` (line 84)
|
|
54
|
+
|
|
55
|
+
No additional changes required.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: SEC-007
|
|
3
|
+
title: "Escape variables in Windows Terminal spawn command"
|
|
4
|
+
type: security
|
|
5
|
+
priority: low
|
|
6
|
+
assigned_to: aegis
|
|
7
|
+
created_at: 2026-01-16T00:00:00Z
|
|
8
|
+
created_by: scribe-docs-migration
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
Variables passed to Windows Terminal command are not properly escaped for nested shell invocation.
|
|
13
|
+
|
|
14
|
+
## Current State
|
|
15
|
+
From docs/TODO.md (L-1 - Low Priority):
|
|
16
|
+
> **Windows Terminal command escaping**
|
|
17
|
+
> File: `bin/forge-spawn.sh` lines 55-57
|
|
18
|
+
> Issue: `$display_name` and `$FORGE_ROOT` not escaped for nested shell invocation
|
|
19
|
+
> Fix: Use `printf %q` for proper escaping
|
|
20
|
+
|
|
21
|
+
Current code:
|
|
22
|
+
```bash
|
|
23
|
+
wt.exe "${wt_args[@]}" "$bash_path" -c "cd \"$win_forge_root\" && ./bin/forge.sh start \"$agent\""
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The `$win_forge_root` and other variables could contain characters that break the nested shell command.
|
|
27
|
+
|
|
28
|
+
## Affected Files
|
|
29
|
+
- `bin/forge-spawn.sh` lines 55-57 (and nearby)
|
|
30
|
+
|
|
31
|
+
## Proposed Fix
|
|
32
|
+
Use `printf %q` to properly escape variables before embedding in the command string:
|
|
33
|
+
```bash
|
|
34
|
+
escaped_path=$(printf %q "$win_forge_root")
|
|
35
|
+
escaped_agent=$(printf %q "$agent")
|
|
36
|
+
wt.exe "${wt_args[@]}" "$bash_path" -c "cd $escaped_path && ./bin/forge.sh start $escaped_agent"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Risk Assessment
|
|
40
|
+
Low risk because:
|
|
41
|
+
- $agent is already validated through resolve_agent whitelist
|
|
42
|
+
- $FORGE_ROOT is set from script directory, not user input
|
|
43
|
+
|
|
44
|
+
Still worth fixing for defense in depth.
|
|
45
|
+
|
|
46
|
+
## Acceptance Criteria
|
|
47
|
+
- [x] Variables properly escaped with printf %q
|
|
48
|
+
- [x] Works with paths containing spaces
|
|
49
|
+
- [x] Works with paths containing special characters
|
|
50
|
+
- [ ] Test on Windows with various path types (manual testing required)
|
|
51
|
+
|
|
52
|
+
## Resolution
|
|
53
|
+
|
|
54
|
+
**Status: Fixed**
|
|
55
|
+
|
|
56
|
+
Updated `bin/forge-spawn.sh` lines 76-87 to use `printf %q` for proper escaping:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# SECURITY: Use printf %q to properly escape paths for nested shell invocation
|
|
60
|
+
local escaped_path escaped_agent
|
|
61
|
+
escaped_path=$(printf %q "$win_forge_root")
|
|
62
|
+
escaped_agent=$(printf %q "$agent")
|
|
63
|
+
|
|
64
|
+
wt.exe "${wt_args[@]}" "$bash_path" -c "cd $escaped_path && ./bin/forge.sh start $escaped_agent"
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
This ensures paths with spaces, special characters, or shell metacharacters are properly escaped for the nested shell invocation.
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: TASK-DASH-001
|
|
3
|
+
title: "Dashboard Server Infrastructure (Phase 1A)"
|
|
4
|
+
type: feature
|
|
5
|
+
priority: critical
|
|
6
|
+
status: completed
|
|
7
|
+
created_at: 2026-01-16T22:00:00Z
|
|
8
|
+
created_by: planning-hub
|
|
9
|
+
assigned_to: furnace
|
|
10
|
+
parent: FEATURE-001
|
|
11
|
+
completed_at: 2026-01-16T22:30:00Z
|
|
12
|
+
completed_by: furnace
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Dashboard Server Infrastructure (Phase 1A)
|
|
16
|
+
|
|
17
|
+
## Summary
|
|
18
|
+
|
|
19
|
+
Scaffold the dashboard server infrastructure as the first phase of FEATURE-001-dashboard-mvp.
|
|
20
|
+
|
|
21
|
+
## Requirements
|
|
22
|
+
|
|
23
|
+
Create standalone HTTP + WebSocket server that can be tested independently:
|
|
24
|
+
|
|
25
|
+
1. `bin/dashboard/server.js` - HTTP + WebSocket server using Node.js built-in http module + ws package
|
|
26
|
+
2. `bin/dashboard/api/tasks.js` - API endpoint for listing tasks from tasks/ directory
|
|
27
|
+
3. `bin/dashboard/api/agents.js` - API endpoint for agent status from context/agent-status/
|
|
28
|
+
4. `bin/dashboard/api/dispatch.js` - API endpoint to create task files
|
|
29
|
+
5. `bin/dashboard/public/index.html` - Basic placeholder
|
|
30
|
+
6. Add `ws` to package.json devDependencies
|
|
31
|
+
|
|
32
|
+
## Technical Details
|
|
33
|
+
|
|
34
|
+
### Server Configuration
|
|
35
|
+
- Default port: 5555 (configurable via DASHBOARD_PORT env or config)
|
|
36
|
+
- Host: localhost (configurable)
|
|
37
|
+
- Serve static files from public/
|
|
38
|
+
- REST API at /api/*
|
|
39
|
+
- WebSocket at /ws for real-time updates
|
|
40
|
+
|
|
41
|
+
### API Endpoints
|
|
42
|
+
```
|
|
43
|
+
GET /api/tasks # List all tasks by status
|
|
44
|
+
GET /api/tasks/:id # Get task details
|
|
45
|
+
POST /api/tasks # Create new task (for dispatch)
|
|
46
|
+
GET /api/agents # List agents and their status
|
|
47
|
+
POST /api/dispatch # Dispatch agent for a task
|
|
48
|
+
WS /ws # Real-time updates
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Scope
|
|
52
|
+
|
|
53
|
+
- DO NOT integrate with daemon yet
|
|
54
|
+
- Standalone server for independent testing
|
|
55
|
+
- Read from existing SQLite database or task files
|
|
56
|
+
|
|
57
|
+
## Acceptance Criteria
|
|
58
|
+
|
|
59
|
+
- [x] Server starts on port 5555
|
|
60
|
+
- [x] GET /api/tasks returns task list
|
|
61
|
+
- [x] GET /api/agents returns agent status
|
|
62
|
+
- [x] POST /api/dispatch creates task file
|
|
63
|
+
- [x] WebSocket connection established at /ws
|
|
64
|
+
- [x] Static files served from public/
|
|
65
|
+
- [x] ws package added to devDependencies
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Completion Summary
|
|
70
|
+
|
|
71
|
+
completed_by: furnace
|
|
72
|
+
completed_at: 2026-01-16T22:30:00Z
|
|
73
|
+
duration_minutes: 30
|
|
74
|
+
|
|
75
|
+
### Files Created
|
|
76
|
+
|
|
77
|
+
- `bin/dashboard/server.js` - Main HTTP + WebSocket server (280 lines)
|
|
78
|
+
- `bin/dashboard/api/tasks.js` - Task listing and creation API (220 lines)
|
|
79
|
+
- `bin/dashboard/api/agents.js` - Agent status API (215 lines)
|
|
80
|
+
- `bin/dashboard/api/dispatch.js` - Task dispatch API (310 lines)
|
|
81
|
+
- `bin/dashboard/public/index.html` - Placeholder dashboard UI (370 lines)
|
|
82
|
+
|
|
83
|
+
### Files Modified
|
|
84
|
+
|
|
85
|
+
- `package.json` - Added `ws` ^8.18.0 to devDependencies
|
|
86
|
+
|
|
87
|
+
### API Endpoints Implemented
|
|
88
|
+
|
|
89
|
+
- `GET /api/health` - Server health check
|
|
90
|
+
- `GET /api/tasks` - List all tasks grouped by status (pending, in-progress, review, completed)
|
|
91
|
+
- `GET /api/tasks/:id` - Get single task details with full body
|
|
92
|
+
- `POST /api/tasks` - Create new task file
|
|
93
|
+
- `GET /api/agents` - List all agents with status, icon, role metadata
|
|
94
|
+
- `POST /api/dispatch` - Create task file for agent dispatch
|
|
95
|
+
|
|
96
|
+
### Dispatch Types Supported
|
|
97
|
+
|
|
98
|
+
- `stale-docs` - Stale documentation detection
|
|
99
|
+
- `failing-test` - Test failure dispatch
|
|
100
|
+
- `security-issue` - Security vulnerability dispatch
|
|
101
|
+
- `low-coverage` - Low test coverage dispatch
|
|
102
|
+
- `todo-fixme` - TODO/FIXME marker dispatch
|
|
103
|
+
- `pending-review` - Pending PR review dispatch
|
|
104
|
+
- `custom` - Custom task dispatch
|
|
105
|
+
|
|
106
|
+
### Features
|
|
107
|
+
|
|
108
|
+
1. **HTTP Server**
|
|
109
|
+
- Static file serving with security (path traversal prevention)
|
|
110
|
+
- CORS headers for local development
|
|
111
|
+
- JSON request/response handling
|
|
112
|
+
- Request logging
|
|
113
|
+
|
|
114
|
+
2. **WebSocket Server**
|
|
115
|
+
- Real-time connection at `/ws`
|
|
116
|
+
- Ping/pong support
|
|
117
|
+
- Broadcast function for real-time updates
|
|
118
|
+
- Graceful reconnection in client
|
|
119
|
+
|
|
120
|
+
3. **Tasks API**
|
|
121
|
+
- Parses YAML frontmatter from markdown task files
|
|
122
|
+
- Groups tasks by directory (pending, in-progress, review, completed)
|
|
123
|
+
- Sorts by priority (critical > high > medium > low)
|
|
124
|
+
- Summary stats (total, by status)
|
|
125
|
+
|
|
126
|
+
4. **Agents API**
|
|
127
|
+
- Reads from JSON status files in `context/agent-status/`
|
|
128
|
+
- Falls back to SQLite database if available
|
|
129
|
+
- Includes agent metadata (icon, role, color) from personality files
|
|
130
|
+
- Lists all known agents even if status file missing
|
|
131
|
+
|
|
132
|
+
5. **Dispatch API**
|
|
133
|
+
- Creates properly formatted task files
|
|
134
|
+
- Auto-generates task IDs with type prefixes
|
|
135
|
+
- Suggests appropriate agent based on file type
|
|
136
|
+
- Broadcasts task creation via WebSocket
|
|
137
|
+
|
|
138
|
+
### Usage
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
# Start server (default port 5555)
|
|
142
|
+
node bin/dashboard/server.js
|
|
143
|
+
|
|
144
|
+
# Custom port
|
|
145
|
+
node bin/dashboard/server.js --port 3000
|
|
146
|
+
DASHBOARD_PORT=3000 node bin/dashboard/server.js
|
|
147
|
+
|
|
148
|
+
# Custom host
|
|
149
|
+
node bin/dashboard/server.js --host 0.0.0.0
|
|
150
|
+
|
|
151
|
+
# Help
|
|
152
|
+
node bin/dashboard/server.js --help
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Testing
|
|
156
|
+
|
|
157
|
+
Server can be tested independently:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
# Install ws dependency
|
|
161
|
+
npm install
|
|
162
|
+
|
|
163
|
+
# Start server
|
|
164
|
+
node bin/dashboard/server.js
|
|
165
|
+
|
|
166
|
+
# Test endpoints
|
|
167
|
+
curl http://localhost:5555/api/health
|
|
168
|
+
curl http://localhost:5555/api/tasks
|
|
169
|
+
curl http://localhost:5555/api/agents
|
|
170
|
+
|
|
171
|
+
# Test dispatch
|
|
172
|
+
curl -X POST http://localhost:5555/api/dispatch \
|
|
173
|
+
-H "Content-Type: application/json" \
|
|
174
|
+
-d '{"type": "stale-docs", "target": "README.md", "agent": "scribe"}'
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Notes
|
|
178
|
+
|
|
179
|
+
- Server uses Node.js built-in `http` module (no Express dependency)
|
|
180
|
+
- WebSocket gracefully degrades if `ws` package not installed
|
|
181
|
+
- Agents API tries SQLite first, falls back to JSON files
|
|
182
|
+
- All task files use standard YAML frontmatter format
|
|
183
|
+
- Placeholder UI includes dark mode styling per FEATURE-001 spec
|
|
184
|
+
|
|
185
|
+
ready_for_review: true
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: TASK-anvil-001
|
|
3
|
+
title: "Dashboard Frontend MVP Implementation"
|
|
4
|
+
type: task
|
|
5
|
+
priority: critical
|
|
6
|
+
status: completed
|
|
7
|
+
created_at: 2026-01-16T21:30:00Z
|
|
8
|
+
created_by: planning-hub
|
|
9
|
+
assigned_to: anvil
|
|
10
|
+
parent_feature: FEATURE-001
|
|
11
|
+
completed_at: 2026-01-16T22:15:00Z
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Dashboard Frontend MVP Implementation
|
|
15
|
+
|
|
16
|
+
## Summary
|
|
17
|
+
|
|
18
|
+
Build the complete frontend UI for the Vibe Forge Dashboard based on Pixel's wireframes.
|
|
19
|
+
|
|
20
|
+
## Acceptance Criteria
|
|
21
|
+
|
|
22
|
+
- [x] Three-panel layout: Tasks, Agents, Notifications
|
|
23
|
+
- [x] Issues panel with dispatch buttons (the killer feature)
|
|
24
|
+
- [x] Dark mode by default with light mode toggle
|
|
25
|
+
- [x] CSS variables for theming per Pixel's spec
|
|
26
|
+
- [x] WebSocket connection for real-time updates
|
|
27
|
+
- [x] Keyboard shortcuts (1-4 panels, j/k nav, d dispatch)
|
|
28
|
+
- [x] Responsive design (desktop, tablet, mobile)
|
|
29
|
+
- [x] Accessible (ARIA labels, focus indicators, keyboard nav)
|
|
30
|
+
- [x] Loading, empty, and error states
|
|
31
|
+
- [x] Dispatch confirmation modal
|
|
32
|
+
- [x] Toast notifications for feedback
|
|
33
|
+
|
|
34
|
+
## Completion Summary
|
|
35
|
+
|
|
36
|
+
completed_by: anvil
|
|
37
|
+
completed_at: 2026-01-16T22:15:00Z
|
|
38
|
+
duration_minutes: 45
|
|
39
|
+
|
|
40
|
+
### Files Created
|
|
41
|
+
|
|
42
|
+
- `bin/dashboard/public/index.html` (created - 335 lines)
|
|
43
|
+
- Semantic HTML5 structure with ARIA landmarks
|
|
44
|
+
- Skip links for accessibility
|
|
45
|
+
- Connection lost banner
|
|
46
|
+
- Header with logo and theme toggle
|
|
47
|
+
- Four panels: Tasks, Agents, Notifications, Issues
|
|
48
|
+
- Dispatch confirmation modal
|
|
49
|
+
- Keyboard shortcuts help modal
|
|
50
|
+
- Toast notification container
|
|
51
|
+
- Mobile tab bar navigation
|
|
52
|
+
|
|
53
|
+
- `bin/dashboard/public/style.css` (created - 1100+ lines)
|
|
54
|
+
- CSS custom properties for theming (dark mode default)
|
|
55
|
+
- Light mode color scheme
|
|
56
|
+
- Full WCAG AA compliant contrast ratios
|
|
57
|
+
- Agent-specific colors per Pixel's spec
|
|
58
|
+
- Issue category colors
|
|
59
|
+
- Card, panel, and modal styles
|
|
60
|
+
- Button variants (primary, secondary, dispatch)
|
|
61
|
+
- Loading skeletons with shimmer animation
|
|
62
|
+
- Empty and error states
|
|
63
|
+
- Toast notifications
|
|
64
|
+
- Responsive breakpoints (desktop, tablet, mobile)
|
|
65
|
+
- Focus indicators for keyboard navigation
|
|
66
|
+
- Print styles
|
|
67
|
+
|
|
68
|
+
- `bin/dashboard/public/app.js` (created - 900+ lines)
|
|
69
|
+
- WebSocket connection with auto-reconnect
|
|
70
|
+
- API fetch functions for tasks, agents, issues
|
|
71
|
+
- Dispatch flow implementation (POST /api/dispatch)
|
|
72
|
+
- Dynamic rendering of all panels
|
|
73
|
+
- Task filtering by status (pending, in-progress, review, done)
|
|
74
|
+
- Keyboard shortcuts (1-4 panel focus, j/k navigation, d dispatch, t theme, ? help)
|
|
75
|
+
- Theme toggle with localStorage persistence
|
|
76
|
+
- Toast notification system
|
|
77
|
+
- Focus trap for modals
|
|
78
|
+
- Mobile panel switching
|
|
79
|
+
- Mock issues data for demonstration
|
|
80
|
+
|
|
81
|
+
### Key Features Implemented
|
|
82
|
+
|
|
83
|
+
1. **Four-Panel Layout**
|
|
84
|
+
- Tasks panel with Kanban-style filters
|
|
85
|
+
- Agents panel with status indicators
|
|
86
|
+
- Notifications panel with grouping by date
|
|
87
|
+
- Issues panel (the killer feature) with dispatch buttons
|
|
88
|
+
|
|
89
|
+
2. **Dispatch Flow**
|
|
90
|
+
- Click [Dispatch Agent] on any issue
|
|
91
|
+
- Confirmation modal shows task preview
|
|
92
|
+
- POST to /api/dispatch on confirm
|
|
93
|
+
- Success toast notification
|
|
94
|
+
- Issue removed from panel
|
|
95
|
+
- Task appears in Tasks panel via WebSocket
|
|
96
|
+
|
|
97
|
+
3. **Dark Mode**
|
|
98
|
+
- Default theme per Pixel's spec
|
|
99
|
+
- CSS variables for all colors
|
|
100
|
+
- 200ms transition on theme change
|
|
101
|
+
- Theme persisted in localStorage
|
|
102
|
+
|
|
103
|
+
4. **Keyboard Shortcuts**
|
|
104
|
+
- `1-4` to focus panels
|
|
105
|
+
- `j/k` to navigate items
|
|
106
|
+
- `Enter` to expand/select
|
|
107
|
+
- `d` to dispatch selected issue
|
|
108
|
+
- `r` to refresh current panel
|
|
109
|
+
- `t` to toggle theme
|
|
110
|
+
- `?` to show help modal
|
|
111
|
+
- `Escape` to close modals
|
|
112
|
+
|
|
113
|
+
5. **Responsive Design**
|
|
114
|
+
- Desktop: 3-column top row, full-width issues
|
|
115
|
+
- Tablet: 2-column layout
|
|
116
|
+
- Mobile: Single panel with bottom tab bar
|
|
117
|
+
|
|
118
|
+
6. **Accessibility**
|
|
119
|
+
- Skip links
|
|
120
|
+
- ARIA landmarks and labels
|
|
121
|
+
- Focus indicators
|
|
122
|
+
- Screen reader announcements
|
|
123
|
+
- Keyboard navigation throughout
|
|
124
|
+
|
|
125
|
+
### Notes
|
|
126
|
+
|
|
127
|
+
- Mock issues data provided for demonstration since /api/issues endpoint may not exist yet
|
|
128
|
+
- WebSocket reconnects automatically with exponential backoff
|
|
129
|
+
- Connection banner shows after 3 failed reconnect attempts
|
|
130
|
+
- All animations follow Pixel's timing guidelines (150ms-300ms)
|
|
131
|
+
- Used vanilla JS to keep bundle lightweight per requirements
|
|
132
|
+
|
|
133
|
+
ready_for_review: true
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: review-bmad-aegis
|
|
3
|
+
title: "BMAD vs Vibe Forge: Security Review"
|
|
4
|
+
type: review
|
|
5
|
+
priority: high
|
|
6
|
+
status: completed
|
|
7
|
+
assigned_to: aegis
|
|
8
|
+
blocked_by: []
|
|
9
|
+
depends_on: []
|
|
10
|
+
created: 2026-03-31T00:00:00-05:00
|
|
11
|
+
updated: 2026-03-31T00:00:00-05:00
|
|
12
|
+
estimated_complexity: medium
|
|
13
|
+
epic: BMAD-REVIEW
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Context
|
|
17
|
+
|
|
18
|
+
## Background
|
|
19
|
+
We are doing a comprehensive comparison of Vibe Forge (this framework) against BMAD-METHOD (https://github.com/bmad-code-org/BMAD-METHOD) to identify gaps and improvements to bring into Vibe Forge.
|
|
20
|
+
|
|
21
|
+
You are Aegis - the security specialist. Your job is to review BOTH frameworks through the lens of: security posture, agent authorization boundaries, prompt injection risks, secret handling, and how well each framework prevents agents from doing harmful things.
|
|
22
|
+
|
|
23
|
+
## Your Review Focus
|
|
24
|
+
1. **Agent authorization** - Does BMAD have a better model for what agents are/aren't allowed to do? How are boundaries enforced?
|
|
25
|
+
2. **Prompt injection** - Are there prompt injection risks in either framework's agent design? Can a malicious task file compromise an agent?
|
|
26
|
+
3. **Secret handling** - How does each framework handle secrets, tokens, API keys in agent context?
|
|
27
|
+
4. **Shell script security** - Review Vibe Forge's bash scripts for injection vulnerabilities, unsafe evals, etc.
|
|
28
|
+
5. **Task file trust** - Should agents trust task files completely? What validation exists?
|
|
29
|
+
6. **Least privilege** - Does BMAD enforce least privilege for agents better than Vibe Forge?
|
|
30
|
+
7. **Audit trail** - Does BMAD have better logging/auditing of agent actions?
|
|
31
|
+
8. **Security agent design** - Compare your own personality to BMAD's security guidance. What's missing?
|
|
32
|
+
|
|
33
|
+
## Files to Read
|
|
34
|
+
- /agents/aegis/personality.md (your own definition)
|
|
35
|
+
- /bin/forge-daemon.sh (check for security issues)
|
|
36
|
+
- /bin/lib/config.sh (already has security notes - evaluate them)
|
|
37
|
+
- /bin/forge-spawn.sh (validate security handling)
|
|
38
|
+
- /config/agents.json
|
|
39
|
+
- Then fetch and read BMAD: https://github.com/bmad-code-org/BMAD-METHOD
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
# Acceptance Criteria
|
|
44
|
+
|
|
45
|
+
- [ ] Read all scripts with a security focus
|
|
46
|
+
- [ ] Fetch and review BMAD repo
|
|
47
|
+
- [ ] Identify any actual security vulnerabilities in Vibe Forge scripts
|
|
48
|
+
- [ ] Compare agent authorization models
|
|
49
|
+
- [ ] Write findings to tasks/review/bmad-review-aegis.md
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
# Agent Instructions
|
|
54
|
+
|
|
55
|
+
Aegis: Assume breach. Question everything. Find the vulnerability that everyone else missed. Pay special attention to the eval in config.sh and any other dynamic execution.
|
|
56
|
+
|
|
57
|
+
**Boundaries:**
|
|
58
|
+
- DO read: all scripts, agent files, BMAD repo (via web fetch)
|
|
59
|
+
- DO write: tasks/review/bmad-review-aegis.md
|
|
60
|
+
- DO NOT modify: any framework files
|
|
61
|
+
|
|
62
|
+
**On Completion:**
|
|
63
|
+
1. Write your findings to tasks/review/bmad-review-aegis.md
|
|
64
|
+
2. Move this file to /tasks/completed/
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
# Output Expected
|
|
69
|
+
|
|
70
|
+
- [ ] tasks/review/bmad-review-aegis.md created with findings
|
|
71
|
+
- [ ] Any actual vulnerabilities identified
|
|
72
|
+
- [ ] Agent authorization model comparison
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
# Completion Summary
|
|
77
|
+
```yaml
|
|
78
|
+
completed_by: aegis
|
|
79
|
+
completed_at: 2026-03-31T00:00:00Z
|
|
80
|
+
files_created:
|
|
81
|
+
- tasks/review/bmad-review-aegis.md
|
|
82
|
+
notes: >
|
|
83
|
+
1 HIGH (CI script injection via github.head_ref), 1 MEDIUM (eval in config.sh),
|
|
84
|
+
1 MEDIUM (dangerous eval example in json.sh comment), 3 LOW findings.
|
|
85
|
+
BMAD has no security specialist agent and minimal shell scripting.
|
|
86
|
+
Vibe Forge shell scripts are significantly more security-conscious than BMAD.
|
|
87
|
+
Both frameworks share the same fundamental weakness: agent authorization is
|
|
88
|
+
entirely behavioral (prompt-based), not technically enforced.
|
|
89
|
+
```
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: review-bmad-anvil
|
|
3
|
+
title: "BMAD vs Vibe Forge: Frontend/UI Tooling Review"
|
|
4
|
+
type: review
|
|
5
|
+
priority: high
|
|
6
|
+
status: completed
|
|
7
|
+
assigned_to: anvil
|
|
8
|
+
blocked_by: []
|
|
9
|
+
depends_on: []
|
|
10
|
+
created: 2026-03-31T00:00:00-05:00
|
|
11
|
+
updated: 2026-03-31T00:00:00-05:00
|
|
12
|
+
estimated_complexity: medium
|
|
13
|
+
epic: BMAD-REVIEW
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Context
|
|
17
|
+
|
|
18
|
+
## Background
|
|
19
|
+
We are doing a comprehensive comparison of Vibe Forge (this framework) against BMAD-METHOD (https://github.com/bmad-code-org/BMAD-METHOD) to identify gaps and improvements to bring into Vibe Forge.
|
|
20
|
+
|
|
21
|
+
You are Anvil - the frontend dev perspective. Your job is to review BOTH frameworks specifically through the lens of: developer experience, UI tooling, dashboard design, frontend agent capabilities, and how well each framework supports frontend-heavy projects.
|
|
22
|
+
|
|
23
|
+
## Your Review Focus
|
|
24
|
+
1. **Dashboard** - How does Vibe Forge's dashboard (bin/dashboard/) compare in concept/quality to anything BMAD provides for UI?
|
|
25
|
+
2. **Frontend agent** - Compare Anvil's (your own) personality/capabilities vs BMAD's equivalent frontend agent. What does BMAD do better?
|
|
26
|
+
3. **Frontend project support** - How well does each framework scaffold and support frontend projects (React, Vue, etc.)?
|
|
27
|
+
4. **Developer UX** - Which framework has better DX for a frontend developer using it day-to-day?
|
|
28
|
+
5. **Templates** - Are there frontend-specific templates in BMAD that Vibe Forge lacks?
|
|
29
|
+
6. **Component/UI patterns** - Does BMAD have opinions on UI architecture that Vibe Forge should adopt?
|
|
30
|
+
|
|
31
|
+
## Files to Read
|
|
32
|
+
- /agents/anvil/personality.md (your own definition)
|
|
33
|
+
- /agents/pixel/personality.md (if exists - UX agent)
|
|
34
|
+
- /bin/dashboard/ (current dashboard implementation)
|
|
35
|
+
- /config/agents.json (agent config)
|
|
36
|
+
- Then fetch and read BMAD: https://github.com/bmad-code-org/BMAD-METHOD
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
# Acceptance Criteria
|
|
41
|
+
|
|
42
|
+
- [ ] Read your own personality file and BMAD's equivalent agent
|
|
43
|
+
- [ ] Fetch and review the BMAD repo
|
|
44
|
+
- [ ] Identify 3-5 specific improvements Vibe Forge should make for frontend support
|
|
45
|
+
- [ ] Call out anything BMAD does worse (so we don't copy mistakes)
|
|
46
|
+
- [ ] Write findings to tasks/review/bmad-review-anvil.md
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
# Agent Instructions
|
|
51
|
+
|
|
52
|
+
Anvil: Review both frameworks from a frontend developer's perspective. Be specific - reference actual files and line numbers. Don't just say "BMAD is better at X" - show WHY with examples from the actual files.
|
|
53
|
+
|
|
54
|
+
**Boundaries:**
|
|
55
|
+
- DO read: all agent files, dashboard code, BMAD repo (via web fetch)
|
|
56
|
+
- DO write: tasks/review/bmad-review-anvil.md (your findings report)
|
|
57
|
+
- DO NOT modify: any framework files (read-only review)
|
|
58
|
+
|
|
59
|
+
**On Completion:**
|
|
60
|
+
1. Write your findings to tasks/review/bmad-review-anvil.md
|
|
61
|
+
2. Move this file to /tasks/completed/
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
# Output Expected
|
|
66
|
+
|
|
67
|
+
- [ ] tasks/review/bmad-review-anvil.md created with findings
|
|
68
|
+
- [ ] Specific, actionable improvement recommendations
|
|
69
|
+
- [ ] Honest assessment of Vibe Forge weaknesses
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
# Completion Summary
|
|
74
|
+
```yaml
|
|
75
|
+
completed_by: anvil
|
|
76
|
+
completed_at: 2026-04-02T00:00:00-05:00
|
|
77
|
+
files_created:
|
|
78
|
+
- tasks/review/bmad-review-anvil.md
|
|
79
|
+
notes: "Dashboard code reviewed in full (27 files). BMAD UX designer agent (Sally) and create-ux-design skill fetched and compared. 5 actionable recommendations produced."
|
|
80
|
+
```
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: review-bmad-crucible
|
|
3
|
+
title: "BMAD vs Vibe Forge: Quality & Testing Framework Review"
|
|
4
|
+
type: review
|
|
5
|
+
priority: high
|
|
6
|
+
status: completed
|
|
7
|
+
assigned_to: crucible
|
|
8
|
+
blocked_by: []
|
|
9
|
+
depends_on: []
|
|
10
|
+
created: 2026-03-31T00:00:00-05:00
|
|
11
|
+
updated: 2026-03-31T00:00:00-05:00
|
|
12
|
+
estimated_complexity: medium
|
|
13
|
+
epic: BMAD-REVIEW
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Context
|
|
17
|
+
|
|
18
|
+
## Background
|
|
19
|
+
We are doing a comprehensive comparison of Vibe Forge (this framework) against BMAD-METHOD (https://github.com/bmad-code-org/BMAD-METHOD) to identify gaps and improvements to bring into Vibe Forge.
|
|
20
|
+
|
|
21
|
+
You are Crucible - the QA/testing specialist. Your job is to review BOTH frameworks through the lens of: quality gates, testing philosophy, validation mechanisms, acceptance criteria design, and how well each framework enforces quality.
|
|
22
|
+
|
|
23
|
+
## Your Review Focus
|
|
24
|
+
1. **QA agent** - Compare your own personality/capabilities vs BMAD's equivalent. What does BMAD's QA approach do that yours doesn't?
|
|
25
|
+
2. **Quality gates** - Does BMAD have explicit quality gates or checkpoints that Vibe Forge lacks?
|
|
26
|
+
3. **Acceptance criteria patterns** - How does BMAD structure acceptance criteria in tasks vs Vibe Forge's template? What makes BMAD's criteria more testable?
|
|
27
|
+
4. **Test coverage enforcement** - Does BMAD have mechanisms to ensure agents write tests? How does it compare to Vibe Forge?
|
|
28
|
+
5. **Review workflow** - How does Sentinel (code reviewer) compare to BMAD's review equivalent?
|
|
29
|
+
6. **Definition of Done** - Does BMAD have a more rigorous "done" standard than Vibe Forge?
|
|
30
|
+
7. **Bug tracking** - How does each framework handle bug reports, reproduction steps, and regression prevention?
|
|
31
|
+
|
|
32
|
+
## Files to Read
|
|
33
|
+
- /agents/crucible/personality.md (your own definition)
|
|
34
|
+
- /agents/sentinel/personality.md (reviewer)
|
|
35
|
+
- /config/task-template.md (look at acceptance criteria section)
|
|
36
|
+
- /tests/ (existing tests for the framework itself)
|
|
37
|
+
- Then fetch and read BMAD: https://github.com/bmad-code-org/BMAD-METHOD
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
# Acceptance Criteria
|
|
42
|
+
|
|
43
|
+
- [ ] Read your own personality file and BMAD's QA equivalent
|
|
44
|
+
- [ ] Fetch and review the BMAD repo
|
|
45
|
+
- [ ] Identify quality gate gaps in Vibe Forge
|
|
46
|
+
- [ ] Evaluate how acceptance criteria compares
|
|
47
|
+
- [ ] Write findings to tasks/review/bmad-review-crucible.md
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
# Agent Instructions
|
|
52
|
+
|
|
53
|
+
Crucible: Be skeptical of both frameworks. Find the holes. What happens when an agent marks a task complete without writing tests? What prevents bad PRs from merging? Look for the absence of safeguards, not just their presence.
|
|
54
|
+
|
|
55
|
+
**Boundaries:**
|
|
56
|
+
- DO read: all agent files, task templates, tests/, BMAD repo (via web fetch)
|
|
57
|
+
- DO write: tasks/review/bmad-review-crucible.md
|
|
58
|
+
- DO NOT modify: any framework files
|
|
59
|
+
|
|
60
|
+
**On Completion:**
|
|
61
|
+
1. Write your findings to tasks/review/bmad-review-crucible.md
|
|
62
|
+
2. Move this file to /tasks/completed/
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
# Output Expected
|
|
67
|
+
|
|
68
|
+
- [ ] tasks/review/bmad-review-crucible.md created with findings
|
|
69
|
+
- [ ] Quality gate gap analysis
|
|
70
|
+
- [ ] Specific recommendations for enforcement mechanisms
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
# Completion Summary
|
|
75
|
+
```yaml
|
|
76
|
+
completed_by: crucible
|
|
77
|
+
completed_at: 2026-03-31T00:00:00Z
|
|
78
|
+
files_created:
|
|
79
|
+
- tasks/review/bmad-review-crucible.md
|
|
80
|
+
notes: "Reviewed Crucible vs Quinn, Sentinel vs BMAD code review, DoD, test enforcement, adversarial review skills, automated gates. 10 gaps identified, ranked by severity. Critical gaps: no formal DoD, no automated quality gates."
|
|
81
|
+
```
|