vibe-forge 0.4.0 → 0.8.2
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 -63
- package/.claude/commands/compact-context.md +52 -0
- package/.claude/commands/configure-vcs.md +5 -5
- package/.claude/commands/forge.md +50 -3
- package/.claude/commands/need-help.md +77 -77
- package/.claude/commands/update-status.md +64 -64
- package/.claude/commands/worker-loop.md +106 -106
- package/.claude/hooks/worker-loop.js +37 -4
- package/.claude/scripts/setup-worker-loop.sh +45 -45
- package/.claude/settings.json +89 -0
- package/LICENSE +21 -21
- package/README.md +211 -232
- package/agents/aegis/personality.md +35 -1
- package/agents/anvil/personality.md +39 -1
- package/agents/architect/personality.md +26 -0
- package/agents/crucible/personality.md +54 -1
- package/agents/crucible-x/personality.md +210 -0
- package/agents/ember/personality.md +29 -1
- package/agents/flux/personality.md +248 -0
- package/agents/furnace/personality.md +52 -1
- package/agents/herald/personality.md +3 -1
- package/agents/loki/personality.md +108 -0
- package/agents/oracle/personality.md +284 -0
- package/agents/pixel/personality.md +140 -0
- package/agents/planning-hub/personality.md +222 -0
- package/agents/scribe/personality.md +3 -1
- package/agents/slag/personality.md +268 -0
- package/agents/{sentinel → temper}/personality.md +85 -9
- package/bin/cli.js +77 -30
- package/bin/dashboard/api/agents.js +333 -0
- package/bin/dashboard/api/dispatch.js +507 -0
- package/bin/dashboard/api/tasks.js +416 -0
- package/bin/dashboard/public/assets/index-BpHfsx1r.js +2 -0
- package/bin/dashboard/public/assets/index-QODv4Zn9.css +1 -0
- package/bin/dashboard/public/index.html +14 -0
- package/bin/dashboard/server.js +645 -0
- package/bin/forge-daemon.sh +176 -550
- package/bin/forge-setup.sh +28 -11
- package/bin/forge-spawn.sh +5 -5
- package/bin/forge.cmd +83 -83
- package/bin/forge.sh +210 -31
- package/config/agent-manifest.yaml +237 -243
- package/config/agents.json +207 -132
- package/config/task-types.yaml +111 -106
- package/context/agent-overrides/README.md +41 -0
- package/context/architecture.md +42 -0
- package/context/modern-conventions.md +129 -129
- package/docs/agents.md +473 -409
- package/docs/architecture.md +194 -162
- package/docs/commands.md +451 -388
- package/docs/security.md +195 -144
- package/package.json +38 -11
- package/src/lib/check-aliases.js +50 -0
- package/{bin → src}/lib/colors.sh +2 -1
- package/src/lib/config.sh +347 -0
- package/{bin → src}/lib/constants.sh +48 -13
- package/src/lib/daemon/budgets.sh +107 -0
- package/src/lib/daemon/dependencies.sh +146 -0
- package/src/lib/daemon/display.sh +128 -0
- package/src/lib/daemon/notifications.sh +273 -0
- package/src/lib/daemon/routing.sh +93 -0
- package/src/lib/daemon/state.sh +163 -0
- package/src/lib/daemon/sync.sh +103 -0
- package/{bin → src}/lib/database.sh +52 -0
- package/src/lib/frontmatter.js +106 -0
- package/src/lib/heimdall-setup.js +113 -0
- package/src/lib/heimdall.js +265 -0
- package/src/lib/index.sh +25 -0
- package/{bin → src}/lib/json.sh +7 -1
- package/{bin → src}/lib/terminal.js +7 -1
- package/.claude/settings.local.json +0 -33
- package/agents/forge-master/capabilities.md +0 -144
- package/agents/forge-master/context-template.md +0 -128
- package/agents/forge-master/personality.md +0 -138
- package/bin/lib/config.sh +0 -313
- package/config/task-template.md +0 -87
- package/context/forge-state.yaml +0 -19
- package/docs/TODO.md +0 -150
- package/docs/getting-started.md +0 -243
- package/docs/npm-publishing.md +0 -95
- package/docs/workflows/README.md +0 -32
- package/docs/workflows/azure-devops.md +0 -108
- package/docs/workflows/bitbucket.md +0 -104
- package/docs/workflows/git-only.md +0 -130
- package/docs/workflows/gitea.md +0 -168
- package/docs/workflows/github.md +0 -103
- package/docs/workflows/gitlab.md +0 -105
- package/docs/workflows.md +0 -454
- package/tasks/completed/ARCH-001-duplicate-agent-config.md +0 -121
- package/tasks/completed/ARCH-002-mixed-bash-node-implementation.md +0 -88
- package/tasks/completed/ARCH-003-worker-loop-hook-duplication.md +0 -77
- package/tasks/completed/ARCH-009-test-organization.md +0 -78
- package/tasks/completed/ARCH-011-jq-vs-nodejs-json.md +0 -94
- package/tasks/completed/ARCH-012-tmp-files-in-root.md +0 -71
- package/tasks/completed/ARCH-013-exit-code-constants.md +0 -65
- package/tasks/completed/ARCH-014-sed-incompatibility.md +0 -96
- package/tasks/completed/ARCH-015-docs-todo-tracking.md +0 -83
- package/tasks/completed/CLEAN-001.md +0 -38
- package/tasks/completed/CLEAN-003.md +0 -47
- package/tasks/completed/CLEAN-004.md +0 -56
- package/tasks/completed/CLEAN-005.md +0 -75
- package/tasks/completed/CLEAN-006.md +0 -47
- package/tasks/completed/CLEAN-007.md +0 -34
- package/tasks/completed/CLEAN-008.md +0 -49
- package/tasks/completed/CLEAN-012.md +0 -58
- package/tasks/completed/CLEAN-013.md +0 -45
- package/tasks/completed/SEC-001-sql-injection-fix.md +0 -58
- package/tasks/completed/SEC-002-notification-injection-fix.md +0 -45
- package/tasks/completed/SEC-003-eval-injection-fix.md +0 -54
- package/tasks/completed/SEC-004-pid-race-condition-fix.md +0 -49
- package/tasks/completed/SEC-005-worker-loop-path-fix.md +0 -51
- package/tasks/completed/SEC-006-eval-agent-names.md +0 -55
- package/tasks/completed/SEC-007-spawn-escaping.md +0 -67
- package/tasks/pending/ARCH-004-git-bash-detection-duplication.md +0 -72
- package/tasks/pending/ARCH-005-missing-src-directory.md +0 -95
- package/tasks/pending/ARCH-006-task-template-location.md +0 -64
- package/tasks/pending/ARCH-007-daemon-monolith.md +0 -91
- package/tasks/pending/ARCH-008-forge-master-vs-hub.md +0 -81
- package/tasks/pending/ARCH-010-missing-index-files.md +0 -84
- package/tasks/pending/CLEAN-002.md +0 -29
- package/tasks/pending/CLEAN-009.md +0 -31
- package/tasks/pending/CLEAN-010.md +0 -30
- package/tasks/pending/CLEAN-011.md +0 -30
- package/tasks/pending/CLEAN-014.md +0 -32
- package/tasks/review/task-001.md +0 -78
- /package/{bin → src}/lib/agents.sh +0 -0
- /package/{bin → src}/lib/util.sh +0 -0
- /package/{bin → src}/lib/vcs.js +0 -0
- /package/{context → templates}/project-context-template.md +0 -0
package/config/agents.json
CHANGED
|
@@ -1,132 +1,207 @@
|
|
|
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
|
-
"
|
|
19
|
-
"name": "
|
|
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/
|
|
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
|
-
"
|
|
120
|
-
"name": "
|
|
121
|
-
"icon": "
|
|
122
|
-
"role": "
|
|
123
|
-
"aliases": ["
|
|
124
|
-
"type": "
|
|
125
|
-
"persistent": false,
|
|
126
|
-
"personality_file": "agents/
|
|
127
|
-
"tab_color": "#
|
|
128
|
-
"description": "
|
|
129
|
-
"task_types": ["
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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
|
+
"slag": {
|
|
120
|
+
"name": "Slag",
|
|
121
|
+
"icon": "💀",
|
|
122
|
+
"role": "Red Team Lead",
|
|
123
|
+
"aliases": ["redteam", "red-team", "pentest", "offensive"],
|
|
124
|
+
"type": "specialist",
|
|
125
|
+
"persistent": false,
|
|
126
|
+
"personality_file": "agents/slag/personality.md",
|
|
127
|
+
"tab_color": "#DC2626",
|
|
128
|
+
"description": "Offensive security, OWASP testing, engagement lead, attack simulation",
|
|
129
|
+
"task_types": ["redteam", "pentest", "offensive-security"],
|
|
130
|
+
"requires_approval": true
|
|
131
|
+
},
|
|
132
|
+
"flux": {
|
|
133
|
+
"name": "Flux",
|
|
134
|
+
"icon": "⚡",
|
|
135
|
+
"role": "Red Team Operator",
|
|
136
|
+
"aliases": ["infra-sec", "supply-chain", "chaos"],
|
|
137
|
+
"type": "specialist",
|
|
138
|
+
"persistent": false,
|
|
139
|
+
"personality_file": "agents/flux/personality.md",
|
|
140
|
+
"tab_color": "#B91C1C",
|
|
141
|
+
"description": "Infrastructure security, dependency CVEs, CI/CD attacks, chaos testing",
|
|
142
|
+
"task_types": ["redteam", "infra-security", "supply-chain", "chaos"],
|
|
143
|
+
"requires_approval": true
|
|
144
|
+
},
|
|
145
|
+
"architect": {
|
|
146
|
+
"name": "Architect",
|
|
147
|
+
"icon": "🏛️",
|
|
148
|
+
"role": "System Architect",
|
|
149
|
+
"aliases": ["arch", "sage"],
|
|
150
|
+
"type": "advisor",
|
|
151
|
+
"persistent": false,
|
|
152
|
+
"personality_file": "agents/architect/personality.md",
|
|
153
|
+
"tab_color": "#6366F1",
|
|
154
|
+
"description": "System design, technical decisions, architecture review",
|
|
155
|
+
"task_types": ["architecture", "design", "tech-debt"]
|
|
156
|
+
},
|
|
157
|
+
"pixel": {
|
|
158
|
+
"name": "Pixel",
|
|
159
|
+
"icon": "🎨",
|
|
160
|
+
"role": "UX Designer",
|
|
161
|
+
"aliases": ["ux", "ui-design", "user-experience"],
|
|
162
|
+
"type": "specialist",
|
|
163
|
+
"persistent": false,
|
|
164
|
+
"personality_file": "agents/pixel/personality.md",
|
|
165
|
+
"tab_color": "#D946EF",
|
|
166
|
+
"description": "User experience, interaction design, wireframes, accessibility",
|
|
167
|
+
"task_types": ["ux", "wireframe", "design", "accessibility", "user-research"]
|
|
168
|
+
},
|
|
169
|
+
"oracle": {
|
|
170
|
+
"name": "Oracle",
|
|
171
|
+
"icon": "🔮",
|
|
172
|
+
"role": "Product Owner / Requirements Analyst",
|
|
173
|
+
"aliases": ["product", "po", "requirements", "req", "analyst"],
|
|
174
|
+
"type": "advisor",
|
|
175
|
+
"persistent": false,
|
|
176
|
+
"personality_file": "agents/oracle/personality.md",
|
|
177
|
+
"tab_color": "#FBBF24",
|
|
178
|
+
"description": "Product requirements, epics, user stories, acceptance criteria, research",
|
|
179
|
+
"task_types": ["product", "requirements", "epics", "stories", "research", "planning"]
|
|
180
|
+
},
|
|
181
|
+
"loki": {
|
|
182
|
+
"name": "Loki",
|
|
183
|
+
"icon": "🎭",
|
|
184
|
+
"role": "Lateral Thinker, Assumption Challenger",
|
|
185
|
+
"aliases": ["trickster", "contrarian", "challenge", "brainstorm"],
|
|
186
|
+
"type": "advisor",
|
|
187
|
+
"persistent": false,
|
|
188
|
+
"personality_file": "agents/loki/personality.md",
|
|
189
|
+
"tab_color": "#7C3AED",
|
|
190
|
+
"description": "Challenges assumptions, lateral thinking, brainstorm provocations",
|
|
191
|
+
"task_types": ["brainstorm", "design-review", "planning", "postmortem"]
|
|
192
|
+
},
|
|
193
|
+
"crucible-x": {
|
|
194
|
+
"name": "Crucible-X",
|
|
195
|
+
"icon": "🔥🧪",
|
|
196
|
+
"role": "Adversarial Reviewer",
|
|
197
|
+
"aliases": ["adversarial", "break-it", "breaker", "cx"],
|
|
198
|
+
"type": "specialist",
|
|
199
|
+
"persistent": false,
|
|
200
|
+
"personality_file": "agents/crucible-x/personality.md",
|
|
201
|
+
"tab_color": "#DC2626",
|
|
202
|
+
"description": "Adversarial testing, edge case discovery, failing test generation",
|
|
203
|
+
"task_types": ["adversarial-review", "security-test", "edge-case"],
|
|
204
|
+
"requires_approval": false
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
package/config/task-types.yaml
CHANGED
|
@@ -1,106 +1,111 @@
|
|
|
1
|
-
# Vibe Forge Task Types
|
|
2
|
-
# Used by
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
description: "
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
1
|
+
# Vibe Forge Task Types
|
|
2
|
+
# Used by Planning Hub 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
|
+
redteam:
|
|
71
|
+
agent: slag
|
|
72
|
+
description: "Offensive security testing, penetration testing, red team engagements"
|
|
73
|
+
requires_approval: true # All red team actions need sign-off
|
|
74
|
+
|
|
75
|
+
priorities:
|
|
76
|
+
critical:
|
|
77
|
+
sla_hours: 0
|
|
78
|
+
description: "Blocking other work, production issue"
|
|
79
|
+
|
|
80
|
+
high:
|
|
81
|
+
sla_hours: 8
|
|
82
|
+
description: "Sprint commitment, needed today"
|
|
83
|
+
|
|
84
|
+
medium:
|
|
85
|
+
sla_hours: 40
|
|
86
|
+
description: "Sprint goal, this sprint"
|
|
87
|
+
|
|
88
|
+
low:
|
|
89
|
+
sla_hours: null
|
|
90
|
+
description: "Nice to have, when available"
|
|
91
|
+
|
|
92
|
+
complexity:
|
|
93
|
+
trivial:
|
|
94
|
+
estimated_minutes: 15
|
|
95
|
+
description: "Config change, typo fix"
|
|
96
|
+
|
|
97
|
+
low:
|
|
98
|
+
estimated_minutes: 30
|
|
99
|
+
description: "Simple function, minor feature"
|
|
100
|
+
|
|
101
|
+
medium:
|
|
102
|
+
estimated_minutes: 60
|
|
103
|
+
description: "New component, API endpoint"
|
|
104
|
+
|
|
105
|
+
high:
|
|
106
|
+
estimated_minutes: 180
|
|
107
|
+
description: "Complex feature, refactoring"
|
|
108
|
+
|
|
109
|
+
unknown:
|
|
110
|
+
estimated_minutes: null
|
|
111
|
+
description: "Needs investigation"
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Agent Overrides
|
|
2
|
+
|
|
3
|
+
Place per-agent override files here to customize agent behavior for this project.
|
|
4
|
+
|
|
5
|
+
## How It Works
|
|
6
|
+
|
|
7
|
+
When Planning Hub spawns a worker, it appends the contents of
|
|
8
|
+
`context/agent-overrides/<agent-name>.md` to the agent's system prompt.
|
|
9
|
+
This lets you add project-specific rules without modifying the global
|
|
10
|
+
personality files.
|
|
11
|
+
|
|
12
|
+
## File Naming
|
|
13
|
+
|
|
14
|
+
Use the canonical agent name (matching `config/agents.json`):
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
context/agent-overrides/
|
|
18
|
+
anvil.md # Frontend-specific project rules
|
|
19
|
+
furnace.md # Backend-specific project rules
|
|
20
|
+
crucible.md # Testing conventions for this project
|
|
21
|
+
...
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## What to Put Here
|
|
25
|
+
|
|
26
|
+
- Tech stack constraints ("Use React Query, not SWR")
|
|
27
|
+
- Naming conventions specific to this project
|
|
28
|
+
- Files or directories the agent should never touch
|
|
29
|
+
- Patterns the agent should follow or avoid
|
|
30
|
+
- Project-specific testing requirements
|
|
31
|
+
|
|
32
|
+
## Example
|
|
33
|
+
|
|
34
|
+
```markdown
|
|
35
|
+
# Anvil Overrides
|
|
36
|
+
|
|
37
|
+
- Use Tailwind CSS utility classes, no custom CSS files
|
|
38
|
+
- All components must be in `src/components/` with PascalCase naming
|
|
39
|
+
- Use `shadcn/ui` for base components, don't reinvent
|
|
40
|
+
- Never import from `@/lib/legacy/` (deprecated)
|
|
41
|
+
```
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Project Architecture
|
|
2
|
+
|
|
3
|
+
This file contains project-specific architectural decisions and guardrails.
|
|
4
|
+
Agents read this during planning and task execution to stay aligned.
|
|
5
|
+
|
|
6
|
+
For Vibe Forge's own architecture, see [docs/architecture.md](../docs/architecture.md).
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Key Decisions
|
|
11
|
+
|
|
12
|
+
<!-- Add project-specific architectural decisions here -->
|
|
13
|
+
<!-- Example:
|
|
14
|
+
- **Auth:** JWT with httpOnly cookies, refresh token rotation
|
|
15
|
+
- **Database:** PostgreSQL via Prisma ORM, no raw SQL outside migrations
|
|
16
|
+
- **API:** REST for CRUD, WebSocket for real-time updates
|
|
17
|
+
-->
|
|
18
|
+
|
|
19
|
+
## Patterns
|
|
20
|
+
|
|
21
|
+
<!-- Document patterns agents should follow -->
|
|
22
|
+
<!-- Example:
|
|
23
|
+
- Repository pattern for data access (no direct DB queries in handlers)
|
|
24
|
+
- Error boundaries at route level, not in services
|
|
25
|
+
- All new endpoints require OpenAPI spec before implementation
|
|
26
|
+
-->
|
|
27
|
+
|
|
28
|
+
## Guardrails
|
|
29
|
+
|
|
30
|
+
<!-- Things agents must NOT do -->
|
|
31
|
+
<!-- Example:
|
|
32
|
+
- Never modify schema files without running `prisma migrate dev`
|
|
33
|
+
- No new dependencies without architect approval
|
|
34
|
+
- No `any` types in TypeScript
|
|
35
|
+
-->
|
|
36
|
+
|
|
37
|
+
## ADR Index
|
|
38
|
+
|
|
39
|
+
<!-- Link to Architecture Decision Records as they're created -->
|
|
40
|
+
<!-- Example:
|
|
41
|
+
- [ADR-001](../docs/adr/ADR-001-daemon-module-extraction.md) - Daemon module extraction
|
|
42
|
+
-->
|