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
package/docs/workflows.md DELETED
@@ -1,454 +0,0 @@
1
- # Common Workflows
2
-
3
- This guide covers typical development workflows with Vibe Forge.
4
-
5
- ## Single Developer Workflow
6
-
7
- The simplest way to use Vibe Forge - one developer coordinating AI agents.
8
-
9
- ### Morning Startup
10
-
11
- 1. **Open your project** in your terminal
12
-
13
- 2. **Start Claude Code** and open the Planning Hub:
14
- ```
15
- /forge
16
- ```
17
-
18
- 3. **Check status** to see where you left off:
19
- ```
20
- /forge status
21
- ```
22
-
23
- 4. **Review pending tasks** and plan your day
24
-
25
- ### Feature Development
26
-
27
- 1. **Discuss the feature** with the Planning Hub:
28
- ```
29
- I want to add user authentication with email/password login
30
- ```
31
-
32
- 2. **Let the Hub break it down** into tasks for different agents
33
-
34
- 3. **Spawn the needed workers**:
35
- ```
36
- /forge spawn furnace # Backend for auth API
37
- /forge spawn anvil # Frontend for login form
38
- ```
39
-
40
- 4. **Create tasks** (or let the Hub create them):
41
- ```
42
- /forge task Create authentication API endpoints
43
- /forge task Build login form component
44
- ```
45
-
46
- 5. **Monitor progress**:
47
- ```
48
- /forge status
49
- ```
50
-
51
- 6. **Review completed work** with Sentinel:
52
- ```
53
- /forge spawn sentinel
54
- ```
55
-
56
- ### End of Day
57
-
58
- 1. Check `/forge status` for any blocked tasks
59
- 2. Note any attention signals (`/need-help` requests)
60
- 3. Review what was completed
61
- 4. Plan tomorrow's priorities
62
-
63
- ---
64
-
65
- ## Multi-Agent Task Workflow
66
-
67
- Coordinating multiple agents working in parallel.
68
-
69
- ### Setup
70
-
71
- 1. **Start the Planning Hub**:
72
- ```
73
- /forge
74
- ```
75
-
76
- 2. **Spawn your team** (each in its own terminal):
77
- ```
78
- /forge spawn anvil
79
- /forge spawn furnace
80
- /forge spawn crucible
81
- ```
82
-
83
- 3. **Enable worker loops** for continuous work:
84
- In each worker terminal:
85
- ```
86
- /worker-loop anvil
87
- /worker-loop furnace
88
- /worker-loop crucible
89
- ```
90
-
91
- ### Task Distribution
92
-
93
- 1. **Create tasks** from the Planning Hub:
94
- ```
95
- /forge task [frontend] Create product listing component
96
- /forge task [backend] Build product API with pagination
97
- /forge task [test] Write tests for product endpoints
98
- ```
99
-
100
- 2. **Tasks are picked up automatically** by workers in loop mode
101
-
102
- 3. **Monitor from the Hub**:
103
- ```
104
- /forge status
105
- ```
106
-
107
- ### Handling Dependencies
108
-
109
- When tasks depend on each other:
110
-
111
- 1. **Furnace completes the API** - task moves to `completed/`
112
-
113
- 2. **Anvil picks up frontend task** - can now integrate with API
114
-
115
- 3. **Crucible writes tests** - validates both frontend and backend
116
-
117
- ### Resolving Blocks
118
-
119
- When a worker signals for help:
120
-
121
- ```
122
- # In worker terminal
123
- /need-help API spec unclear - should pagination be cursor or offset?
124
- ```
125
-
126
- 1. **Hub sees the attention signal** in status
127
-
128
- 2. **You respond** in the Planning Hub or directly to the worker
129
-
130
- 3. **Worker continues** after getting guidance
131
-
132
- ---
133
-
134
- ## Code Review Workflow
135
-
136
- Systematic code review with Sentinel.
137
-
138
- ### Automatic Review
139
-
140
- 1. **Worker completes a task** and moves it to `review/`
141
-
142
- 2. **Sentinel picks up the review**:
143
- ```
144
- /forge spawn sentinel
145
- ```
146
-
147
- 3. **Sentinel examines the changes**:
148
- - Code correctness
149
- - Security concerns
150
- - Performance implications
151
- - Test coverage
152
-
153
- 4. **Sentinel provides feedback**:
154
- - Approves: Task moves to `approved/`
155
- - Requests changes: Task moves to `needs-changes/`
156
-
157
- ### Manual Review Request
158
-
159
- Request a review of specific code:
160
-
161
- ```
162
- # In Planning Hub
163
- Ask Sentinel to review the authentication implementation in src/auth/
164
- ```
165
-
166
- Or spawn Sentinel directly:
167
-
168
- ```
169
- /forge spawn sentinel
170
- ```
171
-
172
- Then in Sentinel's terminal:
173
- ```
174
- Review the recent changes to the user service
175
- ```
176
-
177
- ### Handling Review Feedback
178
-
179
- When Sentinel requests changes:
180
-
181
- 1. **Task moves to `needs-changes/`**
182
-
183
- 2. **Original worker sees the task** and picks it up
184
-
185
- 3. **Worker addresses feedback**
186
-
187
- 4. **Task goes back to `review/`**
188
-
189
- 5. **Sentinel re-reviews**
190
-
191
- ---
192
-
193
- ## Planning and Breaking Down Tasks
194
-
195
- Using the Planning Hub to decompose large features.
196
-
197
- ### Feature Decomposition
198
-
199
- 1. **Describe the feature**:
200
- ```
201
- /forge
202
-
203
- I need to build a shopping cart with:
204
- - Add/remove items
205
- - Quantity adjustment
206
- - Price calculation
207
- - Checkout flow
208
- ```
209
-
210
- 2. **Hub engages advisors**:
211
- - **Sage** considers architecture
212
- - **Oracle** clarifies requirements
213
- - **Quartermaster** suggests priorities
214
-
215
- 3. **Hub proposes task breakdown**:
216
- ```
217
- Suggested tasks:
218
-
219
- [backend] Cart data model and API
220
- [backend] Price calculation service
221
- [frontend] Cart component with item list
222
- [frontend] Checkout form and flow
223
- [test] Cart API integration tests
224
- [test] Checkout e2e tests
225
- ```
226
-
227
- 4. **Refine and approve**:
228
- ```
229
- Looks good, but add a task for cart persistence across sessions
230
- ```
231
-
232
- 5. **Create the tasks**:
233
- ```
234
- Create these tasks and assign priorities
235
- ```
236
-
237
- ### Estimating Complexity
238
-
239
- Ask the Hub for estimates:
240
-
241
- ```
242
- How complex is the checkout flow? What are the main risks?
243
- ```
244
-
245
- The Hub will engage relevant advisors:
246
- - Sage on technical complexity
247
- - Oracle on requirement gaps
248
- - Quartermaster on timeline
249
-
250
- ### Handling Ambiguity
251
-
252
- When requirements are unclear:
253
-
254
- 1. **Hub identifies gaps**:
255
- ```
256
- Before we proceed, I need clarity on:
257
- - Should guest checkout be supported?
258
- - What payment providers to integrate?
259
- - Are there shipping calculation requirements?
260
- ```
261
-
262
- 2. **You provide answers** or mark as assumptions
263
-
264
- 3. **Hub documents decisions** in task files
265
-
266
- ---
267
-
268
- ## Release Workflow
269
-
270
- Preparing and executing releases with Herald.
271
-
272
- ### Pre-Release Checklist
273
-
274
- 1. **Check status**:
275
- ```
276
- /forge status
277
- ```
278
- Ensure no tasks are in-progress or blocked.
279
-
280
- 2. **Spawn Herald**:
281
- ```
282
- /forge spawn herald
283
- ```
284
-
285
- 3. **Prepare release**:
286
- ```
287
- Prepare release v1.2.0 with all completed work since v1.1.0
288
- ```
289
-
290
- 4. **Herald generates**:
291
- - Changelog entries
292
- - Release notes
293
- - Version bump
294
-
295
- ### Release Execution
296
-
297
- 1. **Review Herald's output**
298
-
299
- 2. **Approve the release**:
300
- ```
301
- Proceed with the release
302
- ```
303
-
304
- 3. **Herald executes**:
305
- - Commits version changes
306
- - Creates git tag
307
- - Prepares deployment notes
308
-
309
- ### Hotfix Release
310
-
311
- For urgent fixes:
312
-
313
- 1. **Create hotfix task**:
314
- ```
315
- /forge task [urgent] Fix payment processing bug
316
- ```
317
-
318
- 2. **Spawn appropriate worker**:
319
- ```
320
- /forge spawn furnace
321
- ```
322
-
323
- 3. **After fix, spawn Herald**:
324
- ```
325
- /forge spawn herald
326
- ```
327
-
328
- 4. **Prepare patch release**:
329
- ```
330
- Prepare hotfix release v1.1.1 for the payment bug fix
331
- ```
332
-
333
- ---
334
-
335
- ## DevOps Workflow
336
-
337
- Infrastructure and deployment with Ember.
338
-
339
- ### CI/CD Setup
340
-
341
- 1. **Spawn Ember**:
342
- ```
343
- /forge spawn ember
344
- ```
345
-
346
- 2. **Describe your needs**:
347
- ```
348
- Set up CI/CD pipeline with:
349
- - Run tests on PR
350
- - Build and deploy on merge to main
351
- - Deploy to staging automatically
352
- - Manual promotion to production
353
- ```
354
-
355
- 3. **Ember creates**:
356
- - GitHub Actions workflows
357
- - Dockerfile if needed
358
- - Deployment scripts
359
-
360
- ### Infrastructure Changes
361
-
362
- 1. **Create infrastructure task**:
363
- ```
364
- /forge task [devops] Add Redis caching layer
365
- ```
366
-
367
- 2. **Ember handles**:
368
- - Docker compose updates
369
- - Environment configuration
370
- - Monitoring setup
371
-
372
- ---
373
-
374
- ## Security Review Workflow
375
-
376
- Security auditing with Aegis.
377
-
378
- ### Scheduled Security Review
379
-
380
- 1. **Spawn Aegis**:
381
- ```
382
- /forge spawn aegis
383
- ```
384
-
385
- 2. **Request audit**:
386
- ```
387
- Perform security review of the authentication system
388
- ```
389
-
390
- 3. **Aegis examines**:
391
- - Authentication flows
392
- - Input validation
393
- - Dependency vulnerabilities
394
- - Security headers
395
-
396
- 4. **Aegis reports findings** with severity levels
397
-
398
- ### Pre-Release Security Check
399
-
400
- Before major releases:
401
-
402
- 1. **Create security task**:
403
- ```
404
- /forge task [security] Pre-release security audit for v2.0
405
- ```
406
-
407
- 2. **Aegis reviews**:
408
- - All changes since last audit
409
- - New dependencies
410
- - Configuration changes
411
-
412
- 3. **Address findings** before release
413
-
414
- ---
415
-
416
- ## Tips for Effective Workflows
417
-
418
- ### Keep Context Updated
419
-
420
- Edit `context/project-context.md` as your project evolves:
421
- - Architecture decisions
422
- - Coding conventions
423
- - Team agreements
424
-
425
- ### Use Worker Loop for Long Sessions
426
-
427
- Enable persistent mode for extended work:
428
- ```
429
- /worker-loop anvil --max-idle 20
430
- ```
431
-
432
- ### Monitor Regularly
433
-
434
- Check status frequently:
435
- ```
436
- /forge status
437
- ```
438
-
439
- Look for:
440
- - Blocked tasks
441
- - Attention signals
442
- - Completed work ready for review
443
-
444
- ### Document Decisions
445
-
446
- When the Hub makes recommendations, capture important decisions in:
447
- - Task files (for task-specific context)
448
- - Project context (for project-wide patterns)
449
-
450
- ### Balance Automation and Control
451
-
452
- - **Worker Loop** for routine tasks
453
- - **Manual spawning** for specific needs
454
- - **Hub coordination** for complex features
@@ -1,121 +0,0 @@
1
- ---
2
- id: ARCH-001
3
- title: "Consolidate duplicate agent configuration sources"
4
- type: architecture
5
- priority: high
6
- assigned_to: architect
7
- created_at: 2026-01-15T17:00:00Z
8
- created_by: architect-review
9
- completed_at: 2026-01-16T10:30:00Z
10
- completed_by: architect
11
- ---
12
-
13
- ## Summary
14
- Agent configuration is defined in three separate locations with overlapping but inconsistent data, creating maintenance burden and risk of drift.
15
-
16
- ## Current State
17
- Agent definitions exist in:
18
-
19
- 1. **config/agents.json** - JSON format with name, icon, role, aliases, type, personality_file, tab_color
20
- 2. **config/agent-manifest.yaml** - YAML format with much richer data (principles, communication_style, task_types, terminal_tab, description, source)
21
- 3. **bin/lib/constants.sh** - Bash fallback arrays (VALID_AGENTS, AGENT_ALIASES, AGENT_DISPLAY_NAMES, AGENT_ROLES, AGENT_PERSONALITY_FILES, AGENT_ICONS, AGENT_TAB_COLORS)
22
-
23
- Problems:
24
- - `agent-manifest.yaml` has "forge-master" vs `agents.json` has "hub" naming
25
- - `agent-manifest.yaml` has extra agents (sage, oracle, quartermaster) not in `agents.json`
26
- - Rich data in manifest (principles, communication_style) is not being used
27
- - Bash fallbacks duplicate JSON, risking drift
28
-
29
- ## Proposed State
30
- Single source of truth with clear hierarchy:
31
-
32
- 1. **config/agents.json** - Primary machine-readable configuration
33
- - All agent data consolidated here
34
- - Used by bash scripts via `load_agents_from_json()`
35
- - Used by Node.js scripts directly
36
-
37
- 2. **config/agent-manifest.yaml** - DEPRECATED or converted
38
- - Either delete (migrate data to agents.json)
39
- - Or keep as human documentation only, clearly marked as non-normative
40
-
41
- 3. **bin/lib/constants.sh** - Minimal fallback
42
- - Keep only as emergency fallback for environments without Node.js
43
- - Auto-generate from agents.json during release process
44
- - Or remove entirely if Node.js is a hard requirement
45
-
46
- ## Affected Files
47
- - G:\dev\vibe-forge\config\agents.json
48
- - G:\dev\vibe-forge\config\agent-manifest.yaml
49
- - G:\dev\vibe-forge\bin\lib\constants.sh
50
- - G:\dev\vibe-forge\bin\lib\config.sh (load_agents_from_json)
51
-
52
- ## Migration/Remediation Steps
53
- 1. Decide which extra agents to include (sage, oracle, quartermaster, or delete)
54
- 2. Add missing fields from agent-manifest.yaml to agents.json (principles, communication_style, etc.)
55
- 3. Either delete agent-manifest.yaml or add clear header marking it as documentation-only
56
- 4. Evaluate whether bash fallback in constants.sh is needed
57
- 5. If keeping fallback, create build script to auto-generate from agents.json
58
- 6. Update tests to verify single source of truth
59
-
60
- ## Acceptance Criteria
61
- - [x] Single authoritative agent configuration source
62
- - [x] No duplicate agent definitions across files
63
- - [x] Clear documentation on which file is source of truth
64
- - [x] Existing functionality unchanged
65
- - [x] All tests passing
66
-
67
- ## Resolution
68
-
69
- ### Decision Made
70
- Established `config/agents.json` as the SINGLE SOURCE OF TRUTH for agent configuration. The other files serve specific purposes:
71
-
72
- - **agents.json**: Primary, authoritative configuration (used by code)
73
- - **agent-manifest.yaml**: Non-normative documentation with rich personality info
74
- - **constants.sh**: Fallback defaults for environments without Node.js
75
-
76
- ### Changes Implemented
77
-
78
- 1. **Enhanced agents.json (v1.1.0)**
79
- - Added `_comment` field documenting it as source of truth
80
- - Added `version` field for tracking schema changes
81
- - Added fields from manifest: `persistent`, `terminal_tab`, `description`, `task_types`
82
- - Standardized on "hub" as canonical name (with "forge-master" alias)
83
- - Changed hub icon from fire to forge hammer to match orchestrator role
84
- - Added `architect` agent (consolidating sage/oracle/quartermaster functionality)
85
-
86
- 2. **Updated agent-manifest.yaml**
87
- - Added prominent header marking file as DOCUMENTATION ONLY / NON-NORMATIVE
88
- - Added `_status: documentation-only` field
89
- - Preserved rich personality data as reference for personality file authors
90
-
91
- 3. **Updated constants.sh**
92
- - Added `architect` agent to all arrays
93
- - Added sync date comments to remind maintainers to check agents.json
94
- - Reordered arrays to match agents.json ordering (hub first as core)
95
- - Updated hub icon to forge hammer
96
-
97
- 4. **Created architect agent**
98
- - New directory: `agents/architect/`
99
- - New personality file: `agents/architect/personality.md`
100
- - Consolidates system architect role (similar to sage from manifest)
101
-
102
- 5. **Updated README.md**
103
- - Added Architect to specialists list
104
- - Updated project structure to show agents.json as roster source
105
-
106
- ### Files Modified
107
- - `config/agents.json` - Enhanced with new fields, architect agent, version
108
- - `config/agent-manifest.yaml` - Added documentation-only header
109
- - `bin/lib/constants.sh` - Added architect, sync date comments
110
- - `README.md` - Updated structure and agent list
111
- - `agents/architect/personality.md` - Created
112
-
113
- ### Tests
114
- All 80 tests passing:
115
- - 4 test suites (cli, constants, config, agents)
116
- - No regressions
117
-
118
- ### Future Considerations
119
- - Consider auto-generating constants.sh from agents.json in build process
120
- - Consider a validation script to check sync between files
121
- - Rich personality data (principles, communication_style) kept in manifest for now - could be moved to personality files
@@ -1,88 +0,0 @@
1
- ---
2
- id: ARCH-002
3
- title: "Standardize on single implementation language"
4
- type: architecture
5
- priority: medium
6
- assigned_to: architect
7
- created_at: 2026-01-15T17:00:00Z
8
- created_by: architect-review
9
- completed_at: 2026-01-16T11:00:00Z
10
- completed_by: architect
11
- ---
12
-
13
- ## Summary
14
- The codebase uses a mix of Bash and Node.js for similar functionality, increasing maintenance burden and complexity. Since Node.js is already a requirement (Node 16+), consider standardizing on Node.js.
15
-
16
- ## Current State (Reassessed)
17
- Implementation split:
18
-
19
- **Bash (bin/*.sh, bin/lib/*.sh):**
20
- - forge.sh - Main entry point
21
- - forge-setup.sh - Setup/init
22
- - forge-spawn.sh - Terminal spawning
23
- - forge-daemon.sh - Background daemon
24
- - lib/colors.sh - Color output
25
- - lib/constants.sh - Constants
26
- - lib/config.sh - Configuration loading
27
- - lib/agents.sh - Agent resolution
28
- - lib/database.sh - SQLite operations
29
- - lib/json.sh - JSON utilities (Node.js-based)
30
- - lib/util.sh - Utility functions
31
-
32
- **Node.js (bin/*.js, bin/lib/*.js):**
33
- - cli.js - npx entry point
34
- - terminal.js - Cross-platform terminal detection
35
-
36
- **Bash calling Node.js:**
37
- - config.sh uses Node.js for JSON parsing
38
- - json.sh provides unified JSON operations via Node.js
39
- - All jq usage has been removed
40
-
41
- ## Analysis Findings
42
-
43
- **Good news:** The task description was outdated. The codebase has already:
44
- 1. Removed all jq dependencies
45
- 2. Unified JSON handling via `bin/lib/json.sh` using Node.js
46
- 3. Established clear separation of concerns
47
-
48
- **Current architecture is intentional:**
49
- - Bash for orchestration (process management, file watching, terminal control)
50
- - Node.js for cross-platform utilities (terminal detection, JSON parsing)
51
- - This hybrid approach is appropriate for a shell orchestration tool
52
-
53
- ## Decision: Option B - Document and Maintain Hybrid
54
-
55
- After analysis, Option B (keep hybrid, document clearly) is the better choice because:
56
-
57
- 1. **Bash is appropriate for shell orchestration** - Vibe Forge manages terminals and processes, which are inherently shell operations
58
- 2. **Full migration is high risk/effort** - Would require rewriting ~70KB of tested Bash code
59
- 3. **Current split is clean** - Clear boundaries between Bash (orchestration) and Node.js (cross-platform utilities)
60
- 4. **jq dependency already removed** - The main inconsistency (JSON handling) is already resolved
61
-
62
- ## Changes Implemented
63
-
64
- 1. **Created docs/architecture.md** - Comprehensive documentation of:
65
- - Language strategy and rationale
66
- - Directory structure
67
- - Data flow diagram
68
- - JSON handling patterns
69
- - Future migration considerations
70
-
71
- 2. **Verified jq removal** - Confirmed all JSON operations use json.sh/Node.js
72
-
73
- ## Acceptance Criteria
74
- - [x] Decision documented on language strategy - See docs/architecture.md
75
- - [x] Consistent JSON parsing approach - All uses json.sh (Node.js-based)
76
- - [x] Windows compatibility maintained - Git Bash + forge.cmd wrapper
77
- - [x] All tests passing - 80 tests pass
78
- - [N/A] If migrating: at least one component fully migrated - Decided not to migrate
79
-
80
- ## Files Modified
81
- - `docs/architecture.md` - Created (new architectural documentation)
82
-
83
- ## Future Work (Out of Scope)
84
- If full Node.js migration is desired later:
85
- 1. Create `src/` directory structure
86
- 2. Migrate incrementally: config -> agents -> database -> daemon -> CLI
87
- 3. Keep Bash wrappers during transition
88
- 4. See migration path in docs/architecture.md