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.
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 +5 -5
  4. package/.claude/commands/forge.md +50 -3
  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 +37 -4
  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 +211 -232
  13. package/agents/aegis/personality.md +35 -1
  14. package/agents/anvil/personality.md +39 -1
  15. package/agents/architect/personality.md +26 -0
  16. package/agents/crucible/personality.md +54 -1
  17. package/agents/crucible-x/personality.md +210 -0
  18. package/agents/ember/personality.md +29 -1
  19. package/agents/flux/personality.md +248 -0
  20. package/agents/furnace/personality.md +52 -1
  21. package/agents/herald/personality.md +3 -1
  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 +222 -0
  26. package/agents/scribe/personality.md +3 -1
  27. package/agents/slag/personality.md +268 -0
  28. package/agents/{sentinel → temper}/personality.md +85 -9
  29. package/bin/cli.js +77 -30
  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 +176 -550
  38. package/bin/forge-setup.sh +28 -11
  39. package/bin/forge-spawn.sh +5 -5
  40. package/bin/forge.cmd +83 -83
  41. package/bin/forge.sh +210 -31
  42. package/config/agent-manifest.yaml +237 -243
  43. package/config/agents.json +207 -132
  44. package/config/task-types.yaml +111 -106
  45. package/context/agent-overrides/README.md +41 -0
  46. package/context/architecture.md +42 -0
  47. package/context/modern-conventions.md +129 -129
  48. package/docs/agents.md +473 -409
  49. package/docs/architecture.md +194 -162
  50. package/docs/commands.md +451 -388
  51. package/docs/security.md +195 -144
  52. package/package.json +38 -11
  53. package/src/lib/check-aliases.js +50 -0
  54. package/{bin → src}/lib/colors.sh +2 -1
  55. package/src/lib/config.sh +347 -0
  56. package/{bin → src}/lib/constants.sh +48 -13
  57. package/src/lib/daemon/budgets.sh +107 -0
  58. package/src/lib/daemon/dependencies.sh +146 -0
  59. package/src/lib/daemon/display.sh +128 -0
  60. package/src/lib/daemon/notifications.sh +273 -0
  61. package/src/lib/daemon/routing.sh +93 -0
  62. package/src/lib/daemon/state.sh +163 -0
  63. package/src/lib/daemon/sync.sh +103 -0
  64. package/{bin → src}/lib/database.sh +52 -0
  65. package/src/lib/frontmatter.js +106 -0
  66. package/src/lib/heimdall-setup.js +113 -0
  67. package/src/lib/heimdall.js +265 -0
  68. package/src/lib/index.sh +25 -0
  69. package/{bin → src}/lib/json.sh +7 -1
  70. package/{bin → src}/lib/terminal.js +7 -1
  71. package/.claude/settings.local.json +0 -33
  72. package/agents/forge-master/capabilities.md +0 -144
  73. package/agents/forge-master/context-template.md +0 -128
  74. package/agents/forge-master/personality.md +0 -138
  75. package/bin/lib/config.sh +0 -313
  76. package/config/task-template.md +0 -87
  77. package/context/forge-state.yaml +0 -19
  78. package/docs/TODO.md +0 -150
  79. package/docs/getting-started.md +0 -243
  80. package/docs/npm-publishing.md +0 -95
  81. package/docs/workflows/README.md +0 -32
  82. package/docs/workflows/azure-devops.md +0 -108
  83. package/docs/workflows/bitbucket.md +0 -104
  84. package/docs/workflows/git-only.md +0 -130
  85. package/docs/workflows/gitea.md +0 -168
  86. package/docs/workflows/github.md +0 -103
  87. package/docs/workflows/gitlab.md +0 -105
  88. package/docs/workflows.md +0 -454
  89. package/tasks/completed/ARCH-001-duplicate-agent-config.md +0 -121
  90. package/tasks/completed/ARCH-002-mixed-bash-node-implementation.md +0 -88
  91. package/tasks/completed/ARCH-003-worker-loop-hook-duplication.md +0 -77
  92. package/tasks/completed/ARCH-009-test-organization.md +0 -78
  93. package/tasks/completed/ARCH-011-jq-vs-nodejs-json.md +0 -94
  94. package/tasks/completed/ARCH-012-tmp-files-in-root.md +0 -71
  95. package/tasks/completed/ARCH-013-exit-code-constants.md +0 -65
  96. package/tasks/completed/ARCH-014-sed-incompatibility.md +0 -96
  97. package/tasks/completed/ARCH-015-docs-todo-tracking.md +0 -83
  98. package/tasks/completed/CLEAN-001.md +0 -38
  99. package/tasks/completed/CLEAN-003.md +0 -47
  100. package/tasks/completed/CLEAN-004.md +0 -56
  101. package/tasks/completed/CLEAN-005.md +0 -75
  102. package/tasks/completed/CLEAN-006.md +0 -47
  103. package/tasks/completed/CLEAN-007.md +0 -34
  104. package/tasks/completed/CLEAN-008.md +0 -49
  105. package/tasks/completed/CLEAN-012.md +0 -58
  106. package/tasks/completed/CLEAN-013.md +0 -45
  107. package/tasks/completed/SEC-001-sql-injection-fix.md +0 -58
  108. package/tasks/completed/SEC-002-notification-injection-fix.md +0 -45
  109. package/tasks/completed/SEC-003-eval-injection-fix.md +0 -54
  110. package/tasks/completed/SEC-004-pid-race-condition-fix.md +0 -49
  111. package/tasks/completed/SEC-005-worker-loop-path-fix.md +0 -51
  112. package/tasks/completed/SEC-006-eval-agent-names.md +0 -55
  113. package/tasks/completed/SEC-007-spawn-escaping.md +0 -67
  114. package/tasks/pending/ARCH-004-git-bash-detection-duplication.md +0 -72
  115. package/tasks/pending/ARCH-005-missing-src-directory.md +0 -95
  116. package/tasks/pending/ARCH-006-task-template-location.md +0 -64
  117. package/tasks/pending/ARCH-007-daemon-monolith.md +0 -91
  118. package/tasks/pending/ARCH-008-forge-master-vs-hub.md +0 -81
  119. package/tasks/pending/ARCH-010-missing-index-files.md +0 -84
  120. package/tasks/pending/CLEAN-002.md +0 -29
  121. package/tasks/pending/CLEAN-009.md +0 -31
  122. package/tasks/pending/CLEAN-010.md +0 -30
  123. package/tasks/pending/CLEAN-011.md +0 -30
  124. package/tasks/pending/CLEAN-014.md +0 -32
  125. package/tasks/review/task-001.md +0 -78
  126. /package/{bin → src}/lib/agents.sh +0 -0
  127. /package/{bin → src}/lib/util.sh +0 -0
  128. /package/{bin → src}/lib/vcs.js +0 -0
  129. /package/{context → templates}/project-context-template.md +0 -0
@@ -1,63 +1,63 @@
1
- ---
2
- description: Clear an attention signal after helping a worker
3
- argument-hint: [agent-name | all]
4
- ---
5
-
6
- # Clear Attention Command
7
-
8
- Use this command to clear attention signals after you've helped a blocked worker.
9
-
10
- ## Usage
11
-
12
- ```
13
- /clear-attention anvil # Clear Anvil's attention signal
14
- /clear-attention all # Clear all attention signals
15
- /clear-attention # List current attention signals
16
- ```
17
-
18
- ## Implementation
19
-
20
- Based on `$ARGUMENTS`:
21
-
22
- ### If no argument or empty
23
-
24
- List all current attention signals from `tasks/attention/`:
25
-
26
- ```
27
- 🔔 Current Attention Signals:
28
-
29
- 1. Anvil (5 min ago): Need clarification on auth implementation
30
- 2. Crucible (2 min ago): Tests failing, unsure of expected behavior
31
-
32
- Use /clear-attention <agent> to resolve.
33
- ```
34
-
35
- ### If argument is "all"
36
-
37
- Remove all files from `tasks/attention/` and confirm:
38
-
39
- ```
40
- ✅ Cleared all attention signals (2 resolved)
41
- ```
42
-
43
- ### If argument is an agent name
44
-
45
- 1. Find and remove files matching that agent in `tasks/attention/`
46
- 2. Confirm removal:
47
-
48
- ```
49
- ✅ Cleared attention signal for Anvil
50
- ```
51
-
52
- If no matching signal found:
53
-
54
- ```
55
- No attention signal found for Anvil
56
- ```
57
-
58
- ## Notes
59
-
60
- - Attention files are created by workers using `/need-help`
61
- - The daemon watches this folder and sends notifications
62
- - Clearing signals is a way to acknowledge you've responded
63
- - Workers can also clear their own signals when unblocked
1
+ ---
2
+ description: Clear an attention signal after helping a worker
3
+ argument-hint: [agent-name | all]
4
+ ---
5
+
6
+ # Clear Attention Command
7
+
8
+ Use this command to clear attention signals after you've helped a blocked worker.
9
+
10
+ ## Usage
11
+
12
+ ```
13
+ /clear-attention anvil # Clear Anvil's attention signal
14
+ /clear-attention all # Clear all attention signals
15
+ /clear-attention # List current attention signals
16
+ ```
17
+
18
+ ## Implementation
19
+
20
+ Based on `$ARGUMENTS`:
21
+
22
+ ### If no argument or empty
23
+
24
+ List all current attention signals from `tasks/attention/`:
25
+
26
+ ```
27
+ 🔔 Current Attention Signals:
28
+
29
+ 1. Anvil (5 min ago): Need clarification on auth implementation
30
+ 2. Crucible (2 min ago): Tests failing, unsure of expected behavior
31
+
32
+ Use /clear-attention <agent> to resolve.
33
+ ```
34
+
35
+ ### If argument is "all"
36
+
37
+ Remove all files from `tasks/attention/` and confirm:
38
+
39
+ ```
40
+ ✅ Cleared all attention signals (2 resolved)
41
+ ```
42
+
43
+ ### If argument is an agent name
44
+
45
+ 1. Find and remove files matching that agent in `tasks/attention/`
46
+ 2. Confirm removal:
47
+
48
+ ```
49
+ ✅ Cleared attention signal for Anvil
50
+ ```
51
+
52
+ If no matching signal found:
53
+
54
+ ```
55
+ No attention signal found for Anvil
56
+ ```
57
+
58
+ ## Notes
59
+
60
+ - Attention files are created by workers using `/need-help`
61
+ - The daemon watches this folder and sends notifications
62
+ - Clearing signals is a way to acknowledge you've responded
63
+ - Workers can also clear their own signals when unblocked
@@ -0,0 +1,52 @@
1
+ # Compact Context
2
+
3
+ Compress the current conversation to free up context window space while preserving all essential information.
4
+
5
+ ## When to Use
6
+
7
+ Use this when:
8
+ - You notice response quality degrading (repetitive, forgetting earlier decisions)
9
+ - A task is running long and you want to continue without starting fresh
10
+ - The conversation history is getting unwieldy
11
+ - Before picking up a new task in the same session
12
+
13
+ ## How to Compact
14
+
15
+ Summarize the current conversation into a dense brief using this format:
16
+
17
+ ```
18
+ ## Context Compact — [timestamp]
19
+
20
+ ### Work In Progress
21
+ - Task: [task ID and title]
22
+ - Status: [what's done, what's not]
23
+ - Files touched: [list]
24
+
25
+ ### Key Decisions Made
26
+ - [decision 1 and the reason behind it]
27
+ - [decision 2 and the reason behind it]
28
+
29
+ ### Architecture Constraints Discovered
30
+ - [any patterns, restrictions, or conventions learned from reading code]
31
+
32
+ ### Tests Written
33
+ - [test file: X tests passing]
34
+
35
+ ### Blockers / Open Questions
36
+ - [anything unresolved]
37
+
38
+ ### Next Step
39
+ [Exactly what to do next when work resumes]
40
+ ```
41
+
42
+ After writing the summary, respond with:
43
+
44
+ > Context compacted. Summary above replaces prior conversation history.
45
+ > Ready to continue with: [next step].
46
+
47
+ ## Rules
48
+
49
+ - Never lose acceptance criteria state -- list any unchecked ACs explicitly
50
+ - Never lose test counts -- the DoD requires accurate numbers
51
+ - Keep the summary under 400 words -- longer defeats the purpose
52
+ - If mid-task: the summary IS the handoff. Make it complete enough to resume cold.
@@ -39,23 +39,23 @@ Based on `$ARGUMENTS`:
39
39
 
40
40
  ### If no arguments (interactive mode):
41
41
 
42
- 1. Run detection: `node bin/lib/vcs.js detect`
42
+ 1. Run detection: `node src/lib/vcs.js detect`
43
43
  2. Show current setting and detected type
44
44
  3. Ask user to confirm or change
45
- 4. Run `node bin/lib/vcs.js init <type>` to create folders
45
+ 4. Run `node src/lib/vcs.js init <type>` to create folders
46
46
  5. Report configuration saved
47
47
 
48
48
  ### If `detect`:
49
49
 
50
- 1. Run: `node bin/lib/vcs.js detect`
50
+ 1. Run: `node src/lib/vcs.js detect`
51
51
  2. Display detected type and confidence
52
52
  3. If confident detection, ask to apply
53
- 4. Run `node bin/lib/vcs.js set <type>` to save
53
+ 4. Run `node src/lib/vcs.js set <type>` to save
54
54
 
55
55
  ### If `set <type>`:
56
56
 
57
57
  1. Validate type is one of: github, gitlab, azure-devops, bitbucket, git-only, none
58
- 2. Run: `node bin/lib/vcs.js init <type>`
58
+ 2. Run: `node src/lib/vcs.js init <type>`
59
59
  3. Report folders created (if any)
60
60
  4. Confirm configuration saved
61
61
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: Vibe Forge - multi-agent development orchestration
3
- argument-hint: [status|spawn <agent>|task [desc]|help]
3
+ argument-hint: [status|spawn <agent>|task [desc]|redteam [scope]|help]
4
4
  ---
5
5
 
6
6
  # Vibe Forge Command Router
@@ -37,13 +37,14 @@ You are now the **Vibe Forge Planning Hub** - a multi-expert planning team.
37
37
 
38
38
  The forge council assembles...
39
39
 
40
- 🔥 Forge Master - Orchestration & Tasks
40
+ 🔥 Planning Hub - Orchestration & Tasks
41
41
  🏛️ Architect - Technical Design
42
42
  🛡️ Aegis - Security
43
43
  ⚙️ Ember - DevOps & Infrastructure
44
44
  🎨 Pixel - User Experience
45
45
  📊 Oracle - Product & Requirements
46
46
  🧪 Crucible - Quality & Testing
47
+ 🎭 Loki - Lateral Thinking & Assumption Challenger
47
48
 
48
49
  Ready to plan, review, or coordinate.
49
50
  Use /forge status to check current tasks.
@@ -54,6 +55,8 @@ What's on the anvil today?
54
55
 
55
56
  Do NOT automatically scan task folders - wait for user to ask or use `/forge status`.
56
57
 
58
+ If `$1` is "plan" and `$2+` contains a feature description (e.g., `/forge plan user authentication`), enter **Planning Mode** immediately with the feature as the discovery input. Skip the generic welcome and go straight to Phase 1 (Discovery) with Oracle asking clarifying questions about the described feature.
59
+
57
60
  ---
58
61
 
59
62
  ### If `$1` is "status" → Show Status Dashboard
@@ -102,6 +105,10 @@ Available agents (with aliases):
102
105
  | herald | release, deploy | Release Manager |
103
106
  | ember | devops, ops, infra | DevOps |
104
107
  | aegis | security, sec, appsec | Security |
108
+ | slag | redteam, pentest | Red Team Lead |
109
+ | flux | infra-sec, chaos | Red Team Operator |
110
+ | loki | trickster, lateral | Lateral Thinker (Planning Hub) |
111
+ | crucible-x | adversarial, break-it, cx | Adversarial Reviewer |
105
112
 
106
113
  If `$2` is empty, show the table above and ask which agent to spawn.
107
114
 
@@ -121,7 +128,7 @@ Confirm the spawn. If an alias was used (e.g., "frontend"), mention the resolved
121
128
 
122
129
  #### Task Template
123
130
 
124
- @_vibe-forge/config/task-template.md
131
+ @_vibe-forge/templates/task-template.md
125
132
 
126
133
  #### Existing Tasks
127
134
 
@@ -149,6 +156,7 @@ Display:
149
156
  /forge status Show status dashboard
150
157
  /forge spawn <agent> Spawn worker in new terminal
151
158
  /forge task [desc] Create a new task
159
+ /forge redteam [scope] Launch red team engagement
152
160
  /forge help Show this help
153
161
 
154
162
  Agents (with aliases):
@@ -160,12 +168,51 @@ Agents (with aliases):
160
168
  herald (release, deploy) - Release Manager
161
169
  ember (devops, ops, infra) - DevOps
162
170
  aegis (security, sec, appsec) - Security
171
+ slag (redteam, pentest) - Red Team Lead
172
+ flux (infra-sec, chaos) - Red Team Operator
173
+ loki (trickster, lateral) - Lateral Thinker (Planning Hub)
174
+ crucible-x (adversarial, cx) - Adversarial Reviewer
163
175
 
164
176
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
165
177
  ```
166
178
 
167
179
  ---
168
180
 
181
+ ### If `$1` is "redteam" → Launch Red Team Engagement
182
+
183
+ **Scope:** `$2` `$3` `$4` (remaining arguments)
184
+
185
+ If no scope provided, ask:
186
+ - What should the red team target? (e.g., "auth module", "API endpoints", "full application")
187
+ - Any exclusions? (systems/endpoints off-limits)
188
+ - Attack types? (OWASP, infra, supply-chain, all)
189
+
190
+ Display:
191
+
192
+ ```text
193
+ 💀 VIBE FORGE - Red Team Engagement
194
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
195
+ Scope: [target]
196
+ Lead: Slag (💀 Offensive Security)
197
+ Operator: Flux (⚡ Infrastructure)
198
+
199
+ Rules of Engagement:
200
+ - requires_approval: true (all actions need sign-off)
201
+ - Separation of duties: no Aegis collaboration during engagement
202
+ - All findings documented with PoC
203
+
204
+ Spawning red team...
205
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
206
+ ```
207
+
208
+ Then run:
209
+
210
+ ```bash
211
+ ./_vibe-forge/bin/forge-spawn.sh slag
212
+ ```
213
+
214
+ ---
215
+
169
216
  ### Otherwise → Unknown Command
170
217
 
171
218
  Tell the user: "Unknown command: $1. Run `/forge help` for available commands."
@@ -1,77 +1,77 @@
1
- ---
2
- description: Signal that you need human attention/input
3
- argument-hint: <brief reason>
4
- ---
5
-
6
- # Need Help Command
7
-
8
- Use this command when you're blocked and need human input. This will:
9
-
10
- 1. Create an attention file in `tasks/attention/`
11
- 2. Ring the terminal bell for immediate notification
12
- 3. Trigger a system toast notification (if daemon is running)
13
- 4. Show in the Planning Hub's status display
14
-
15
- ## Usage
16
-
17
- ```
18
- /need-help Need clarification on auth implementation approach
19
- /need-help Blocked on API design decision - REST vs GraphQL?
20
- /need-help Tests failing, need guidance on expected behavior
21
- ```
22
-
23
- ## Implementation
24
-
25
- Based on `$ARGUMENTS`:
26
-
27
- 1. Determine your agent identity from your system prompt or context
28
- 2. Create an attention file at `tasks/attention/<agent>-<timestamp>.md`:
29
-
30
- ```markdown
31
- ---
32
- agent: <your-agent-name>
33
- created: <ISO timestamp>
34
- status: pending
35
- ---
36
-
37
- # Attention Needed
38
-
39
- **Agent:** <icon> <display-name>
40
- **Time:** <human-readable time>
41
-
42
- ## Issue
43
-
44
- $ARGUMENTS
45
-
46
- ## Context
47
-
48
- <Brief context about what you were working on>
49
- ```
50
-
51
- 3. Ring the terminal bell:
52
-
53
- ```bash
54
- printf '\a'
55
- ```
56
-
57
- 4. Announce that you've signaled for help and will wait.
58
-
59
- ## Resolving Attention
60
-
61
- When a human responds (via Hub or directly), they can:
62
- - Delete the attention file to clear the flag
63
- - Move it to a resolved folder
64
- - Or just respond - the worker can delete their own attention file once unblocked
65
-
66
- ## Example Output
67
-
68
- After running `/need-help Need decision on caching strategy`:
69
-
70
- ```
71
- 🔔 Attention signal sent!
72
-
73
- I've created tasks/attention/anvil-20240115-143022.md
74
- The Planning Hub and daemon have been notified.
75
-
76
- I'll wait for guidance. You can respond here or via the Hub.
77
- ```
1
+ ---
2
+ description: Signal that you need human attention/input
3
+ argument-hint: <brief reason>
4
+ ---
5
+
6
+ # Need Help Command
7
+
8
+ Use this command when you're blocked and need human input. This will:
9
+
10
+ 1. Create an attention file in `tasks/attention/`
11
+ 2. Ring the terminal bell for immediate notification
12
+ 3. Trigger a system toast notification (if daemon is running)
13
+ 4. Show in the Planning Hub's status display
14
+
15
+ ## Usage
16
+
17
+ ```
18
+ /need-help Need clarification on auth implementation approach
19
+ /need-help Blocked on API design decision - REST vs GraphQL?
20
+ /need-help Tests failing, need guidance on expected behavior
21
+ ```
22
+
23
+ ## Implementation
24
+
25
+ Based on `$ARGUMENTS`:
26
+
27
+ 1. Determine your agent identity from your system prompt or context
28
+ 2. Create an attention file at `tasks/attention/<agent>-<timestamp>.md`:
29
+
30
+ ```markdown
31
+ ---
32
+ agent: <your-agent-name>
33
+ created: <ISO timestamp>
34
+ status: pending
35
+ ---
36
+
37
+ # Attention Needed
38
+
39
+ **Agent:** <icon> <display-name>
40
+ **Time:** <human-readable time>
41
+
42
+ ## Issue
43
+
44
+ $ARGUMENTS
45
+
46
+ ## Context
47
+
48
+ <Brief context about what you were working on>
49
+ ```
50
+
51
+ 3. Ring the terminal bell:
52
+
53
+ ```bash
54
+ printf '\a'
55
+ ```
56
+
57
+ 4. Announce that you've signaled for help and will wait.
58
+
59
+ ## Resolving Attention
60
+
61
+ When a human responds (via Hub or directly), they can:
62
+ - Delete the attention file to clear the flag
63
+ - Move it to a resolved folder
64
+ - Or just respond - the worker can delete their own attention file once unblocked
65
+
66
+ ## Example Output
67
+
68
+ After running `/need-help Need decision on caching strategy`:
69
+
70
+ ```
71
+ 🔔 Attention signal sent!
72
+
73
+ I've created tasks/attention/anvil-20240115-143022.md
74
+ The Planning Hub and daemon have been notified.
75
+
76
+ I'll wait for guidance. You can respond here or via the Hub.
77
+ ```
@@ -1,64 +1,64 @@
1
- ---
2
- description: Update your agent status for the forge dashboard
3
- argument-hint: <status> [task-id]
4
- ---
5
-
6
- # Update Status Command
7
-
8
- Report your current status to the forge daemon and Planning Hub. This enables real-time visibility into what each worker is doing.
9
-
10
- ## Usage
11
-
12
- ```
13
- /update-status working TASK-001 # Working on a specific task
14
- /update-status idle # Waiting for tasks
15
- /update-status blocked # Stuck, may need help
16
- /update-status reviewing PR-123 # Reviewing something
17
- /update-status testing TASK-001 # Running tests
18
- ```
19
-
20
- ## Status Values
21
-
22
- | Status | Meaning |
23
- |--------|---------|
24
- | `idle` | No current task, ready for work |
25
- | `working` | Actively working on a task |
26
- | `blocked` | Stuck, needs input (consider `/need-help`) |
27
- | `reviewing` | Reviewing code or PR |
28
- | `testing` | Running tests |
29
- | `waiting` | Waiting for external dependency |
30
-
31
- ## Implementation
32
-
33
- Based on `$ARGUMENTS`:
34
-
35
- 1. Parse the status and optional task ID from arguments
36
- 2. Determine your agent identity from your system prompt
37
- 3. Write status file to `context/agent-status/<agent>.json`:
38
-
39
- ```json
40
- {
41
- "agent": "anvil",
42
- "status": "working",
43
- "task": "TASK-001",
44
- "message": "Implementing user authentication",
45
- "updated": "2026-01-15T14:30:22Z" // ISO 8601 timestamp (auto-generated)
46
- }
47
- ```
48
-
49
- 4. The daemon reads these files and includes them in `forge-state.yaml`
50
- 5. The Planning Hub sees your status in the dashboard
51
-
52
- ## Auto-Status Updates
53
-
54
- Workers should update their status at these key moments:
55
-
56
- 1. **On startup**: `/update-status idle` (or working if picking up a task)
57
- 2. **When picking up a task**: `/update-status working TASK-XXX`
58
- 3. **When completing a task**: `/update-status idle`
59
- 4. **When blocked**: `/update-status blocked` (then `/need-help` if needed)
60
- 5. **Before exiting**: Status file can remain (daemon marks stale after timeout)
61
-
62
- ## Stale Status
63
-
64
- The daemon considers a status stale if not updated for 5+ minutes. Stale statuses are shown with a warning indicator in the dashboard.
1
+ ---
2
+ description: Update your agent status for the forge dashboard
3
+ argument-hint: <status> [task-id]
4
+ ---
5
+
6
+ # Update Status Command
7
+
8
+ Report your current status to the forge daemon and Planning Hub. This enables real-time visibility into what each worker is doing.
9
+
10
+ ## Usage
11
+
12
+ ```
13
+ /update-status working TASK-001 # Working on a specific task
14
+ /update-status idle # Waiting for tasks
15
+ /update-status blocked # Stuck, may need help
16
+ /update-status reviewing PR-123 # Reviewing something
17
+ /update-status testing TASK-001 # Running tests
18
+ ```
19
+
20
+ ## Status Values
21
+
22
+ | Status | Meaning |
23
+ |--------|---------|
24
+ | `idle` | No current task, ready for work |
25
+ | `working` | Actively working on a task |
26
+ | `blocked` | Stuck, needs input (consider `/need-help`) |
27
+ | `reviewing` | Reviewing code or PR |
28
+ | `testing` | Running tests |
29
+ | `waiting` | Waiting for external dependency |
30
+
31
+ ## Implementation
32
+
33
+ Based on `$ARGUMENTS`:
34
+
35
+ 1. Parse the status and optional task ID from arguments
36
+ 2. Determine your agent identity from your system prompt
37
+ 3. Write status file to `context/agent-status/<agent>.json`:
38
+
39
+ ```json
40
+ {
41
+ "agent": "anvil",
42
+ "status": "working",
43
+ "task": "TASK-001",
44
+ "message": "Implementing user authentication",
45
+ "updated": "2026-01-15T14:30:22Z" // ISO 8601 timestamp (auto-generated)
46
+ }
47
+ ```
48
+
49
+ 4. The daemon reads these files and includes them in `forge-state.yaml`
50
+ 5. The Planning Hub sees your status in the dashboard
51
+
52
+ ## Auto-Status Updates
53
+
54
+ Workers should update their status at these key moments:
55
+
56
+ 1. **On startup**: `/update-status idle` (or working if picking up a task)
57
+ 2. **When picking up a task**: `/update-status working TASK-XXX`
58
+ 3. **When completing a task**: `/update-status idle`
59
+ 4. **When blocked**: `/update-status blocked` (then `/need-help` if needed)
60
+ 5. **Before exiting**: Status file can remain (daemon marks stale after timeout)
61
+
62
+ ## Stale Status
63
+
64
+ The daemon considers a status stale if not updated for 5+ minutes. Stale statuses are shown with a warning indicator in the dashboard.