@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,168 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_comment": "SINGLE SOURCE OF TRUTH for agent configuration. Used by bash scripts via load_agents_from_json() and Node.js directly. See config/agent-manifest.yaml for rich documentation (non-normative).",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"agents": {
|
|
5
|
+
"hub": {
|
|
6
|
+
"name": "Planning Hub",
|
|
7
|
+
"icon": "⚒️",
|
|
8
|
+
"role": "Chief Orchestrator",
|
|
9
|
+
"aliases": ["planning", "master", "forge-master"],
|
|
10
|
+
"type": "core",
|
|
11
|
+
"persistent": true,
|
|
12
|
+
"terminal_tab": 1,
|
|
13
|
+
"personality_file": "agents/planning-hub/personality.md",
|
|
14
|
+
"tab_color": "#FF6B35",
|
|
15
|
+
"description": "Task distribution, progress tracking, agent coordination",
|
|
16
|
+
"task_types": ["planning", "coordination", "orchestration"]
|
|
17
|
+
},
|
|
18
|
+
"temper": {
|
|
19
|
+
"name": "Temper",
|
|
20
|
+
"icon": "⚖️",
|
|
21
|
+
"role": "Code Reviewer",
|
|
22
|
+
"aliases": ["review", "reviewer", "cr"],
|
|
23
|
+
"type": "core",
|
|
24
|
+
"persistent": true,
|
|
25
|
+
"terminal_tab": 5,
|
|
26
|
+
"personality_file": "agents/temper/personality.md",
|
|
27
|
+
"tab_color": "#8B5CF6",
|
|
28
|
+
"description": "Quality gates, code review, PR approval",
|
|
29
|
+
"task_types": ["review", "pr", "quality"]
|
|
30
|
+
},
|
|
31
|
+
"anvil": {
|
|
32
|
+
"name": "Anvil",
|
|
33
|
+
"icon": "🔨",
|
|
34
|
+
"role": "Frontend Developer",
|
|
35
|
+
"aliases": ["frontend", "ui", "fe"],
|
|
36
|
+
"type": "worker",
|
|
37
|
+
"persistent": true,
|
|
38
|
+
"terminal_tab": 2,
|
|
39
|
+
"personality_file": "agents/anvil/personality.md",
|
|
40
|
+
"tab_color": "#3B82F6",
|
|
41
|
+
"description": "UI components, React/Vue/Blazor, CSS, client-side logic",
|
|
42
|
+
"task_types": ["frontend", "component", "ui", "styling", "blazor"]
|
|
43
|
+
},
|
|
44
|
+
"furnace": {
|
|
45
|
+
"name": "Furnace",
|
|
46
|
+
"icon": "🔥",
|
|
47
|
+
"role": "Backend Developer",
|
|
48
|
+
"aliases": ["backend", "api", "be"],
|
|
49
|
+
"type": "worker",
|
|
50
|
+
"persistent": true,
|
|
51
|
+
"terminal_tab": 3,
|
|
52
|
+
"personality_file": "agents/furnace/personality.md",
|
|
53
|
+
"tab_color": "#EF4444",
|
|
54
|
+
"description": "API endpoints, database, server logic, .NET/Node.js services",
|
|
55
|
+
"task_types": ["backend", "api", "database", "service", "dotnet"]
|
|
56
|
+
},
|
|
57
|
+
"crucible": {
|
|
58
|
+
"name": "Crucible",
|
|
59
|
+
"icon": "🧪",
|
|
60
|
+
"role": "Tester / QA",
|
|
61
|
+
"aliases": ["test", "testing", "qa", "tester"],
|
|
62
|
+
"type": "worker",
|
|
63
|
+
"persistent": true,
|
|
64
|
+
"terminal_tab": 4,
|
|
65
|
+
"personality_file": "agents/crucible/personality.md",
|
|
66
|
+
"tab_color": "#10B981",
|
|
67
|
+
"description": "Test writing, bug hunting, quality validation, xUnit/NUnit/Jest",
|
|
68
|
+
"task_types": ["test", "qa", "bugfix", "e2e", "xunit"]
|
|
69
|
+
},
|
|
70
|
+
"scribe": {
|
|
71
|
+
"name": "Scribe",
|
|
72
|
+
"icon": "📜",
|
|
73
|
+
"role": "Documentation Specialist",
|
|
74
|
+
"aliases": ["docs", "documentation", "doc"],
|
|
75
|
+
"type": "worker",
|
|
76
|
+
"persistent": false,
|
|
77
|
+
"personality_file": "agents/scribe/personality.md",
|
|
78
|
+
"tab_color": "#F59E0B",
|
|
79
|
+
"description": "Docs, README, API documentation, inline comments",
|
|
80
|
+
"task_types": ["docs", "readme", "api-docs", "comments"]
|
|
81
|
+
},
|
|
82
|
+
"herald": {
|
|
83
|
+
"name": "Herald",
|
|
84
|
+
"icon": "📯",
|
|
85
|
+
"role": "Release Manager",
|
|
86
|
+
"aliases": ["release", "deploy", "deployment"],
|
|
87
|
+
"type": "worker",
|
|
88
|
+
"persistent": false,
|
|
89
|
+
"personality_file": "agents/herald/personality.md",
|
|
90
|
+
"tab_color": "#EC4899",
|
|
91
|
+
"description": "Versioning, changelog, deployment, release notes",
|
|
92
|
+
"task_types": ["release", "deploy", "changelog", "version"]
|
|
93
|
+
},
|
|
94
|
+
"ember": {
|
|
95
|
+
"name": "Ember",
|
|
96
|
+
"icon": "⚙️",
|
|
97
|
+
"role": "DevOps Engineer",
|
|
98
|
+
"aliases": ["devops", "ops", "infra", "infrastructure"],
|
|
99
|
+
"type": "specialist",
|
|
100
|
+
"persistent": false,
|
|
101
|
+
"personality_file": "agents/ember/personality.md",
|
|
102
|
+
"tab_color": "#F97316",
|
|
103
|
+
"description": "Infrastructure, CI/CD, Docker, Azure, .NET deployment",
|
|
104
|
+
"task_types": ["devops", "infra", "ci-cd", "docker", "azure"]
|
|
105
|
+
},
|
|
106
|
+
"aegis": {
|
|
107
|
+
"name": "Aegis",
|
|
108
|
+
"icon": "🔒",
|
|
109
|
+
"role": "Security Specialist",
|
|
110
|
+
"aliases": ["security", "sec", "appsec"],
|
|
111
|
+
"type": "specialist",
|
|
112
|
+
"persistent": false,
|
|
113
|
+
"personality_file": "agents/aegis/personality.md",
|
|
114
|
+
"tab_color": "#06B6D4",
|
|
115
|
+
"description": "Security audit, vulnerability assessment, hardening",
|
|
116
|
+
"task_types": ["security", "audit", "vulnerability"],
|
|
117
|
+
"requires_approval": true
|
|
118
|
+
},
|
|
119
|
+
"architect": {
|
|
120
|
+
"name": "Architect",
|
|
121
|
+
"icon": "🏛️",
|
|
122
|
+
"role": "System Architect",
|
|
123
|
+
"aliases": ["arch", "sage"],
|
|
124
|
+
"type": "advisor",
|
|
125
|
+
"persistent": false,
|
|
126
|
+
"personality_file": "agents/architect/personality.md",
|
|
127
|
+
"tab_color": "#6366F1",
|
|
128
|
+
"description": "System design, technical decisions, architecture review",
|
|
129
|
+
"task_types": ["architecture", "design", "tech-debt"]
|
|
130
|
+
},
|
|
131
|
+
"pixel": {
|
|
132
|
+
"name": "Pixel",
|
|
133
|
+
"icon": "🎨",
|
|
134
|
+
"role": "UX Designer",
|
|
135
|
+
"aliases": ["ux", "ui-design", "user-experience"],
|
|
136
|
+
"type": "specialist",
|
|
137
|
+
"persistent": false,
|
|
138
|
+
"personality_file": "agents/pixel/personality.md",
|
|
139
|
+
"tab_color": "#D946EF",
|
|
140
|
+
"description": "User experience, interaction design, wireframes, accessibility",
|
|
141
|
+
"task_types": ["ux", "wireframe", "design", "accessibility", "user-research"]
|
|
142
|
+
},
|
|
143
|
+
"oracle": {
|
|
144
|
+
"name": "Oracle",
|
|
145
|
+
"icon": "🔮",
|
|
146
|
+
"role": "Product Owner / Requirements Analyst",
|
|
147
|
+
"aliases": ["product", "po", "requirements", "req", "analyst"],
|
|
148
|
+
"type": "advisor",
|
|
149
|
+
"persistent": false,
|
|
150
|
+
"personality_file": "agents/oracle/personality.md",
|
|
151
|
+
"tab_color": "#FBBF24",
|
|
152
|
+
"description": "Product requirements, epics, user stories, acceptance criteria, research",
|
|
153
|
+
"task_types": ["product", "requirements", "epics", "stories", "research", "planning"]
|
|
154
|
+
},
|
|
155
|
+
"loki": {
|
|
156
|
+
"name": "Loki",
|
|
157
|
+
"icon": "🎭",
|
|
158
|
+
"role": "Lateral Thinker, Assumption Challenger",
|
|
159
|
+
"aliases": ["trickster", "contrarian", "challenge", "brainstorm"],
|
|
160
|
+
"type": "advisor",
|
|
161
|
+
"persistent": false,
|
|
162
|
+
"personality_file": "agents/loki/personality.md",
|
|
163
|
+
"tab_color": "#7C3AED",
|
|
164
|
+
"description": "Challenges assumptions, lateral thinking, brainstorm provocations",
|
|
165
|
+
"task_types": ["brainstorm", "design-review", "planning", "postmortem"]
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: task-{ID}
|
|
3
|
+
title: "{TITLE}"
|
|
4
|
+
type: {TYPE} # frontend | backend | test | docs | review | release | devops | security
|
|
5
|
+
priority: {PRIORITY} # critical | high | medium | low
|
|
6
|
+
status: pending
|
|
7
|
+
assigned_to: null
|
|
8
|
+
blocked_by: []
|
|
9
|
+
depends_on: []
|
|
10
|
+
created: {TIMESTAMP}
|
|
11
|
+
updated: {TIMESTAMP}
|
|
12
|
+
estimated_complexity: {COMPLEXITY} # trivial | low | medium | high | unknown
|
|
13
|
+
epic: {EPIC_ID}
|
|
14
|
+
story: {STORY_ID} # optional - epic_num.story_num format (e.g. 2.3)
|
|
15
|
+
isolation: none # none | worktree - use worktree for risky or experimental changes
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Context
|
|
19
|
+
|
|
20
|
+
## Parent Epic
|
|
21
|
+
See: /specs/epics/{EPIC_ID}.md
|
|
22
|
+
|
|
23
|
+
## Relevant Files
|
|
24
|
+
<!-- List ONLY files the agent needs to read or modify -->
|
|
25
|
+
- /path/to/relevant/file.ts (reason: what to do here)
|
|
26
|
+
- /path/to/reference/file.ts (reference only)
|
|
27
|
+
|
|
28
|
+
## Dependencies
|
|
29
|
+
<!-- Other tasks that must complete first -->
|
|
30
|
+
- task-{DEP_ID} (status: pending|completed)
|
|
31
|
+
|
|
32
|
+
## Background
|
|
33
|
+
<!-- Brief context the agent needs - keep minimal, reference docs instead -->
|
|
34
|
+
{BACKGROUND}
|
|
35
|
+
|
|
36
|
+
## Dev Notes
|
|
37
|
+
<!-- Architecture guardrails, relevant patterns, tech constraints - filled by Hub/Architect before assignment -->
|
|
38
|
+
<!-- Example:
|
|
39
|
+
- Auth uses JWT with refresh tokens - follow the pattern in src/middleware/auth.ts
|
|
40
|
+
- All DB access goes through the repository layer in src/repositories/ - no raw queries in controllers
|
|
41
|
+
- Error responses must use the Result<T,E> pattern from src/utils/result.ts
|
|
42
|
+
- Relevant architecture decisions: context/architecture.md#section-3
|
|
43
|
+
-->
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
# Acceptance Criteria
|
|
48
|
+
|
|
49
|
+
<!-- Number each criterion - agents link tasks to AC numbers, Sentinel audits each one -->
|
|
50
|
+
1. {CRITERION_1}
|
|
51
|
+
2. {CRITERION_2}
|
|
52
|
+
3. {CRITERION_3}
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
# Tasks / Subtasks
|
|
57
|
+
|
|
58
|
+
<!-- Each task mapped to one or more AC numbers - enables per-criterion review audit -->
|
|
59
|
+
- [ ] Task 1 (AC: #1, #2)
|
|
60
|
+
- [ ] Subtask 1.1
|
|
61
|
+
- [ ] Subtask 1.2
|
|
62
|
+
- [ ] Task 2 (AC: #3)
|
|
63
|
+
- [ ] Subtask 2.1
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
# Agent Instructions
|
|
68
|
+
|
|
69
|
+
<!-- Specific instructions for the assigned agent -->
|
|
70
|
+
{AGENT_TYPE}: {SPECIFIC_INSTRUCTIONS}
|
|
71
|
+
|
|
72
|
+
**Boundaries:**
|
|
73
|
+
- DO modify: {ALLOWED_PATHS}
|
|
74
|
+
- DO NOT modify: {FORBIDDEN_PATHS}
|
|
75
|
+
|
|
76
|
+
**When to STOP and write to tasks/attention/:**
|
|
77
|
+
- Required package/dependency not in project - get approval before adding
|
|
78
|
+
- 3 consecutive failures on the same test
|
|
79
|
+
- Acceptance criteria are ambiguous or contradictory
|
|
80
|
+
- Schema or migration change would affect live data
|
|
81
|
+
- Security concern requires Aegis review
|
|
82
|
+
|
|
83
|
+
**On Completion:**
|
|
84
|
+
1. Verify all Definition of Done items below are checked
|
|
85
|
+
2. Run relevant tests - confirm they pass
|
|
86
|
+
3. Move this file to `/tasks/completed/`
|
|
87
|
+
4. Fill in completion summary below
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
# Definition of Done
|
|
92
|
+
|
|
93
|
+
<!-- All items must be checked before setting ready_for_review: true -->
|
|
94
|
+
<!-- Crucible audits this list before approving any task -->
|
|
95
|
+
|
|
96
|
+
**Implementation**
|
|
97
|
+
- [ ] All acceptance criteria satisfied (verify each numbered AC individually)
|
|
98
|
+
- [ ] All tasks and subtasks completed
|
|
99
|
+
- [ ] Edge cases handled — not just the happy path
|
|
100
|
+
- [ ] No TODO/FIXME left in new code without a linked tracking task
|
|
101
|
+
- [ ] No dead code or commented-out blocks committed
|
|
102
|
+
|
|
103
|
+
**Testing**
|
|
104
|
+
- [ ] Unit tests written for new functionality
|
|
105
|
+
- [ ] Existing tests still pass (full suite, not just new tests)
|
|
106
|
+
- [ ] No linting errors
|
|
107
|
+
- [ ] Integration tests updated if this touches a service boundary
|
|
108
|
+
- [ ] Negative cases tested (invalid input, error paths, boundary conditions)
|
|
109
|
+
- [ ] No test is skipped or marked `.only` without a comment explaining why
|
|
110
|
+
|
|
111
|
+
**Documentation**
|
|
112
|
+
- [ ] File list complete in completion summary (every file touched)
|
|
113
|
+
- [ ] Inline comments where logic is non-obvious
|
|
114
|
+
- [ ] API contract documented if this adds or changes an endpoint
|
|
115
|
+
- [ ] Breaking changes noted in completion summary with migration path
|
|
116
|
+
|
|
117
|
+
**Security** _(if touching auth, data, external APIs, or file I/O)_
|
|
118
|
+
- [ ] No hardcoded secrets or credentials
|
|
119
|
+
- [ ] Input validated at boundaries
|
|
120
|
+
- [ ] Error paths handled explicitly — not swallowed
|
|
121
|
+
- [ ] Least privilege: no permissions broader than necessary
|
|
122
|
+
|
|
123
|
+
**Database** _(if touching schema or data)_
|
|
124
|
+
- [ ] Migration is reversible (down migration written and tested)
|
|
125
|
+
- [ ] Migration does not destroy existing data without explicit task approval
|
|
126
|
+
- [ ] Queries use parameterized inputs (no string concatenation)
|
|
127
|
+
|
|
128
|
+
**Handoff**
|
|
129
|
+
- [ ] Completion summary fully filled in (completed_by, files, test counts)
|
|
130
|
+
- [ ] `ready_for_review: true` only when ALL above items are checked
|
|
131
|
+
- [ ] Known limitations or follow-up tasks noted
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
# Output Expected
|
|
136
|
+
|
|
137
|
+
- [ ] Files created/modified listed in completion summary
|
|
138
|
+
- [ ] Tests passing (include count)
|
|
139
|
+
- [ ] No linting errors
|
|
140
|
+
- [ ] Definition of Done fully checked
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
# Completion Summary
|
|
145
|
+
<!-- Filled by agent on completion -->
|
|
146
|
+
|
|
147
|
+
```yaml
|
|
148
|
+
completed_by: null
|
|
149
|
+
completed_at: null
|
|
150
|
+
duration_minutes: null
|
|
151
|
+
agent_model: null
|
|
152
|
+
files_modified: []
|
|
153
|
+
files_created: []
|
|
154
|
+
tests_added: 0
|
|
155
|
+
tests_passing: 0
|
|
156
|
+
notes: ""
|
|
157
|
+
blockers_encountered: []
|
|
158
|
+
ready_for_review: false
|
|
159
|
+
```
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Vibe Forge Task Types
|
|
2
|
+
# Used by Forge Master for routing decisions
|
|
3
|
+
|
|
4
|
+
task_types:
|
|
5
|
+
frontend:
|
|
6
|
+
agent: anvil
|
|
7
|
+
description: "UI components, React/Vue/Svelte, CSS, client-side logic"
|
|
8
|
+
file_patterns:
|
|
9
|
+
- "src/components/**"
|
|
10
|
+
- "src/pages/**"
|
|
11
|
+
- "src/styles/**"
|
|
12
|
+
- "*.css"
|
|
13
|
+
- "*.scss"
|
|
14
|
+
|
|
15
|
+
backend:
|
|
16
|
+
agent: furnace
|
|
17
|
+
description: "API endpoints, server logic, database operations"
|
|
18
|
+
file_patterns:
|
|
19
|
+
- "src/api/**"
|
|
20
|
+
- "src/services/**"
|
|
21
|
+
- "src/models/**"
|
|
22
|
+
- "src/middleware/**"
|
|
23
|
+
- "prisma/**"
|
|
24
|
+
|
|
25
|
+
test:
|
|
26
|
+
agent: crucible
|
|
27
|
+
description: "Unit tests, integration tests, E2E tests, bug fixes"
|
|
28
|
+
file_patterns:
|
|
29
|
+
- "**/*.test.ts"
|
|
30
|
+
- "**/*.spec.ts"
|
|
31
|
+
- "tests/**"
|
|
32
|
+
- "e2e/**"
|
|
33
|
+
|
|
34
|
+
docs:
|
|
35
|
+
agent: scribe
|
|
36
|
+
description: "Documentation, README, API docs, inline comments"
|
|
37
|
+
file_patterns:
|
|
38
|
+
- "docs/**"
|
|
39
|
+
- "*.md"
|
|
40
|
+
- "openapi.yaml"
|
|
41
|
+
|
|
42
|
+
review:
|
|
43
|
+
agent: sentinel
|
|
44
|
+
description: "Code review, quality checks, PR review"
|
|
45
|
+
auto_assign: true # All completed tasks auto-route here
|
|
46
|
+
|
|
47
|
+
release:
|
|
48
|
+
agent: herald
|
|
49
|
+
description: "Version bumps, changelog, deployment, release notes"
|
|
50
|
+
file_patterns:
|
|
51
|
+
- "CHANGELOG.md"
|
|
52
|
+
- "package.json (version)"
|
|
53
|
+
- ".github/workflows/**"
|
|
54
|
+
|
|
55
|
+
devops:
|
|
56
|
+
agent: ember
|
|
57
|
+
description: "Infrastructure, CI/CD, Docker, server management"
|
|
58
|
+
file_patterns:
|
|
59
|
+
- "Dockerfile"
|
|
60
|
+
- "docker-compose.yaml"
|
|
61
|
+
- ".github/workflows/**"
|
|
62
|
+
- "terraform/**"
|
|
63
|
+
- "k8s/**"
|
|
64
|
+
|
|
65
|
+
security:
|
|
66
|
+
agent: aegis
|
|
67
|
+
description: "Security audit, vulnerability fixes, auth hardening"
|
|
68
|
+
requires_approval: true # Needs Planning Hub sign-off
|
|
69
|
+
|
|
70
|
+
priorities:
|
|
71
|
+
critical:
|
|
72
|
+
sla_hours: 0
|
|
73
|
+
description: "Blocking other work, production issue"
|
|
74
|
+
|
|
75
|
+
high:
|
|
76
|
+
sla_hours: 8
|
|
77
|
+
description: "Sprint commitment, needed today"
|
|
78
|
+
|
|
79
|
+
medium:
|
|
80
|
+
sla_hours: 40
|
|
81
|
+
description: "Sprint goal, this sprint"
|
|
82
|
+
|
|
83
|
+
low:
|
|
84
|
+
sla_hours: null
|
|
85
|
+
description: "Nice to have, when available"
|
|
86
|
+
|
|
87
|
+
complexity:
|
|
88
|
+
trivial:
|
|
89
|
+
estimated_minutes: 15
|
|
90
|
+
description: "Config change, typo fix"
|
|
91
|
+
|
|
92
|
+
low:
|
|
93
|
+
estimated_minutes: 30
|
|
94
|
+
description: "Simple function, minor feature"
|
|
95
|
+
|
|
96
|
+
medium:
|
|
97
|
+
estimated_minutes: 60
|
|
98
|
+
description: "New component, API endpoint"
|
|
99
|
+
|
|
100
|
+
high:
|
|
101
|
+
estimated_minutes: 180
|
|
102
|
+
description: "Complex feature, refactoring"
|
|
103
|
+
|
|
104
|
+
unknown:
|
|
105
|
+
estimated_minutes: null
|
|
106
|
+
description: "Needs investigation"
|