vibe-forge 0.4.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/.claude/commands/clear-attention.md +63 -63
  2. package/.claude/commands/compact-context.md +52 -0
  3. package/.claude/commands/configure-vcs.md +102 -102
  4. package/.claude/commands/forge.md +218 -171
  5. package/.claude/commands/need-help.md +77 -77
  6. package/.claude/commands/update-status.md +64 -64
  7. package/.claude/commands/worker-loop.md +106 -106
  8. package/.claude/hooks/worker-loop.js +217 -187
  9. package/.claude/scripts/setup-worker-loop.sh +45 -45
  10. package/.claude/settings.json +89 -0
  11. package/LICENSE +21 -21
  12. package/README.md +253 -232
  13. package/agents/aegis/personality.md +303 -269
  14. package/agents/anvil/personality.md +278 -240
  15. package/agents/architect/personality.md +260 -234
  16. package/agents/crucible/personality.md +362 -309
  17. package/agents/crucible-x/personality.md +210 -0
  18. package/agents/ember/personality.md +293 -265
  19. package/agents/flux/personality.md +248 -0
  20. package/agents/furnace/personality.md +342 -291
  21. package/agents/herald/personality.md +249 -247
  22. package/agents/loki/personality.md +108 -0
  23. package/agents/oracle/personality.md +284 -0
  24. package/agents/pixel/personality.md +140 -0
  25. package/agents/planning-hub/personality.md +473 -251
  26. package/agents/scribe/personality.md +253 -251
  27. package/agents/slag/personality.md +268 -0
  28. package/agents/temper/personality.md +270 -0
  29. package/bin/cli.js +372 -325
  30. package/bin/dashboard/api/agents.js +333 -0
  31. package/bin/dashboard/api/dispatch.js +507 -0
  32. package/bin/dashboard/api/tasks.js +416 -0
  33. package/bin/dashboard/public/assets/index-BpHfsx1r.js +2 -0
  34. package/bin/dashboard/public/assets/index-QODv4Zn9.css +1 -0
  35. package/bin/dashboard/public/index.html +14 -0
  36. package/bin/dashboard/server.js +645 -0
  37. package/bin/forge-daemon.sh +477 -851
  38. package/bin/forge-setup.sh +661 -645
  39. package/bin/forge-spawn.sh +164 -164
  40. package/bin/forge.cmd +83 -83
  41. package/bin/forge.sh +566 -387
  42. package/bin/lib/agents.sh +177 -177
  43. package/bin/lib/check-aliases.js +50 -0
  44. package/bin/lib/colors.sh +44 -44
  45. package/bin/lib/config.sh +347 -313
  46. package/bin/lib/constants.sh +241 -206
  47. package/bin/lib/daemon/budgets.sh +107 -0
  48. package/bin/lib/daemon/dependencies.sh +146 -0
  49. package/bin/lib/daemon/display.sh +128 -0
  50. package/bin/lib/daemon/notifications.sh +273 -0
  51. package/bin/lib/daemon/routing.sh +93 -0
  52. package/bin/lib/daemon/state.sh +163 -0
  53. package/bin/lib/daemon/sync.sh +103 -0
  54. package/bin/lib/database.sh +357 -305
  55. package/bin/lib/frontmatter.js +106 -0
  56. package/bin/lib/heimdall-setup.js +113 -0
  57. package/bin/lib/heimdall.js +265 -0
  58. package/bin/lib/json.sh +264 -258
  59. package/bin/lib/terminal.js +452 -446
  60. package/bin/lib/util.sh +126 -126
  61. package/bin/lib/vcs.js +349 -349
  62. package/config/agent-manifest.yaml +237 -243
  63. package/config/agents.json +207 -132
  64. package/config/task-template.md +159 -87
  65. package/config/task-types.yaml +111 -106
  66. package/config/templates/handoff-template.md +40 -0
  67. package/context/agent-overrides/README.md +41 -0
  68. package/context/architecture.md +42 -0
  69. package/context/modern-conventions.md +129 -129
  70. package/context/project-context-template.md +122 -122
  71. package/docs/agents.md +473 -409
  72. package/docs/architecture.md +194 -162
  73. package/docs/commands.md +451 -388
  74. package/docs/security.md +195 -144
  75. package/package.json +77 -50
  76. package/.claude/settings.local.json +0 -33
  77. package/agents/forge-master/capabilities.md +0 -144
  78. package/agents/forge-master/context-template.md +0 -128
  79. package/agents/forge-master/personality.md +0 -138
  80. package/agents/sentinel/personality.md +0 -194
  81. package/context/forge-state.yaml +0 -19
  82. package/docs/TODO.md +0 -150
  83. package/docs/getting-started.md +0 -243
  84. package/docs/npm-publishing.md +0 -95
  85. package/docs/workflows/README.md +0 -32
  86. package/docs/workflows/azure-devops.md +0 -108
  87. package/docs/workflows/bitbucket.md +0 -104
  88. package/docs/workflows/git-only.md +0 -130
  89. package/docs/workflows/gitea.md +0 -168
  90. package/docs/workflows/github.md +0 -103
  91. package/docs/workflows/gitlab.md +0 -105
  92. package/docs/workflows.md +0 -454
  93. package/tasks/completed/ARCH-001-duplicate-agent-config.md +0 -121
  94. package/tasks/completed/ARCH-002-mixed-bash-node-implementation.md +0 -88
  95. package/tasks/completed/ARCH-003-worker-loop-hook-duplication.md +0 -77
  96. package/tasks/completed/ARCH-009-test-organization.md +0 -78
  97. package/tasks/completed/ARCH-011-jq-vs-nodejs-json.md +0 -94
  98. package/tasks/completed/ARCH-012-tmp-files-in-root.md +0 -71
  99. package/tasks/completed/ARCH-013-exit-code-constants.md +0 -65
  100. package/tasks/completed/ARCH-014-sed-incompatibility.md +0 -96
  101. package/tasks/completed/ARCH-015-docs-todo-tracking.md +0 -83
  102. package/tasks/completed/CLEAN-001.md +0 -38
  103. package/tasks/completed/CLEAN-003.md +0 -47
  104. package/tasks/completed/CLEAN-004.md +0 -56
  105. package/tasks/completed/CLEAN-005.md +0 -75
  106. package/tasks/completed/CLEAN-006.md +0 -47
  107. package/tasks/completed/CLEAN-007.md +0 -34
  108. package/tasks/completed/CLEAN-008.md +0 -49
  109. package/tasks/completed/CLEAN-012.md +0 -58
  110. package/tasks/completed/CLEAN-013.md +0 -45
  111. package/tasks/completed/SEC-001-sql-injection-fix.md +0 -58
  112. package/tasks/completed/SEC-002-notification-injection-fix.md +0 -45
  113. package/tasks/completed/SEC-003-eval-injection-fix.md +0 -54
  114. package/tasks/completed/SEC-004-pid-race-condition-fix.md +0 -49
  115. package/tasks/completed/SEC-005-worker-loop-path-fix.md +0 -51
  116. package/tasks/completed/SEC-006-eval-agent-names.md +0 -55
  117. package/tasks/completed/SEC-007-spawn-escaping.md +0 -67
  118. package/tasks/pending/ARCH-004-git-bash-detection-duplication.md +0 -72
  119. package/tasks/pending/ARCH-005-missing-src-directory.md +0 -95
  120. package/tasks/pending/ARCH-006-task-template-location.md +0 -64
  121. package/tasks/pending/ARCH-007-daemon-monolith.md +0 -91
  122. package/tasks/pending/ARCH-008-forge-master-vs-hub.md +0 -81
  123. package/tasks/pending/ARCH-010-missing-index-files.md +0 -84
  124. package/tasks/pending/CLEAN-002.md +0 -29
  125. package/tasks/pending/CLEAN-009.md +0 -31
  126. package/tasks/pending/CLEAN-010.md +0 -30
  127. package/tasks/pending/CLEAN-011.md +0 -30
  128. package/tasks/pending/CLEAN-014.md +0 -32
  129. package/tasks/review/task-001.md +0 -78
@@ -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
- "sentinel": {
19
- "name": "Sentinel",
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/sentinel/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", "design", "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
- }
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
+ }
@@ -1,87 +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
15
- ---
16
-
17
- # Context
18
-
19
- ## Parent Epic
20
- See: /specs/epics/{EPIC_ID}.md
21
-
22
- ## Relevant Files
23
- <!-- List ONLY files the agent needs to read or modify -->
24
- - /path/to/relevant/file.ts (reason: what to do here)
25
- - /path/to/reference/file.ts (reference only)
26
-
27
- ## Dependencies
28
- <!-- Other tasks that must complete first -->
29
- - task-{DEP_ID} (status: pending|completed)
30
-
31
- ## Background
32
- <!-- Brief context the agent needs - keep minimal, reference docs instead -->
33
- {BACKGROUND}
34
-
35
- ---
36
-
37
- # Acceptance Criteria
38
-
39
- <!-- Checkboxes for each requirement - agent marks complete as they work -->
40
- - [ ] {CRITERION_1}
41
- - [ ] {CRITERION_2}
42
- - [ ] {CRITERION_3}
43
-
44
- ---
45
-
46
- # Agent Instructions
47
-
48
- <!-- Specific instructions for the assigned agent -->
49
- {AGENT_TYPE}: {SPECIFIC_INSTRUCTIONS}
50
-
51
- **Boundaries:**
52
- - DO modify: {ALLOWED_PATHS}
53
- - DO NOT modify: {FORBIDDEN_PATHS}
54
- - If blocked, write blocker to task file and notify Forge Master
55
-
56
- **On Completion:**
57
- 1. Ensure all acceptance criteria checked
58
- 2. Run relevant tests
59
- 3. Move this file to `/tasks/completed/`
60
- 4. Include completion summary below
61
-
62
- ---
63
-
64
- # Output Expected
65
-
66
- - [ ] Files created/modified (list paths in completion)
67
- - [ ] Tests passing (include count)
68
- - [ ] No linting errors
69
- - [ ] Completion summary written
70
-
71
- ---
72
-
73
- # Completion Summary
74
- <!-- Filled by agent on completion -->
75
-
76
- ```yaml
77
- completed_by: null
78
- completed_at: null
79
- duration_minutes: null
80
- files_modified: []
81
- files_created: []
82
- tests_added: 0
83
- tests_passing: 0
84
- notes: ""
85
- blockers_encountered: []
86
- ready_for_review: false
87
- ```
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
+ ```