vibe-forge 0.8.1 → 0.8.3

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 (51) hide show
  1. package/.claude/commands/configure-vcs.md +102 -102
  2. package/.claude/commands/forge.md +218 -218
  3. package/.claude/hooks/worker-loop.js +220 -217
  4. package/.claude/settings.json +89 -89
  5. package/README.md +149 -191
  6. package/agents/aegis/personality.md +303 -303
  7. package/agents/anvil/personality.md +278 -278
  8. package/agents/architect/personality.md +260 -260
  9. package/agents/crucible/personality.md +362 -362
  10. package/agents/crucible-x/personality.md +210 -210
  11. package/agents/ember/personality.md +293 -293
  12. package/agents/flux/personality.md +248 -248
  13. package/agents/furnace/personality.md +342 -342
  14. package/agents/herald/personality.md +249 -249
  15. package/agents/oracle/personality.md +284 -284
  16. package/agents/pixel/personality.md +140 -140
  17. package/agents/planning-hub/personality.md +473 -473
  18. package/agents/scribe/personality.md +253 -253
  19. package/agents/slag/personality.md +268 -268
  20. package/agents/temper/personality.md +270 -270
  21. package/bin/cli.js +372 -372
  22. package/bin/forge-daemon.sh +477 -477
  23. package/bin/forge-setup.sh +662 -661
  24. package/bin/forge-spawn.sh +164 -164
  25. package/bin/forge.sh +566 -566
  26. package/docs/commands.md +8 -8
  27. package/package.json +77 -77
  28. package/{bin → src}/lib/agents.sh +177 -177
  29. package/{bin → src}/lib/check-aliases.js +50 -50
  30. package/{bin → src}/lib/colors.sh +45 -44
  31. package/{bin → src}/lib/config.sh +347 -347
  32. package/{bin → src}/lib/constants.sh +241 -241
  33. package/{bin → src}/lib/daemon/budgets.sh +107 -107
  34. package/{bin → src}/lib/daemon/dependencies.sh +146 -146
  35. package/{bin → src}/lib/daemon/display.sh +128 -128
  36. package/{bin → src}/lib/daemon/notifications.sh +273 -273
  37. package/{bin → src}/lib/daemon/routing.sh +93 -93
  38. package/{bin → src}/lib/daemon/state.sh +163 -163
  39. package/{bin → src}/lib/daemon/sync.sh +103 -103
  40. package/{bin → src}/lib/database.sh +357 -357
  41. package/{bin → src}/lib/frontmatter.js +106 -106
  42. package/{bin → src}/lib/heimdall-setup.js +113 -113
  43. package/{bin → src}/lib/heimdall.js +265 -265
  44. package/src/lib/index.sh +25 -0
  45. package/{bin → src}/lib/json.sh +264 -264
  46. package/{bin → src}/lib/terminal.js +452 -452
  47. package/{bin → src}/lib/util.sh +126 -126
  48. package/{bin → src}/lib/vcs.js +349 -349
  49. package/{context → templates}/project-context-template.md +122 -122
  50. package/config/task-template.md +0 -159
  51. package/config/templates/handoff-template.md +0 -40
@@ -1,122 +1,122 @@
1
- # Project Context
2
-
3
- **This file is the single source of truth for all Vibe Forge agents.**
4
-
5
- Every agent loads this file at session start. Update this when architecture or conventions change.
6
-
7
- ---
8
-
9
- ## Project Identity
10
-
11
- - **Name:** {PROJECT_NAME}
12
- - **Description:** {ONE_LINE_DESCRIPTION}
13
- - **Repository:** {REPO_URL}
14
-
15
- ---
16
-
17
- ## Tech Stack
18
-
19
- ### Frontend
20
- - Framework: {React/Vue/Svelte/etc}
21
- - Styling: {Tailwind/CSS Modules/Styled Components/etc}
22
- - State: {Redux/Zustand/Context/etc}
23
- - Build: {Vite/Webpack/etc}
24
-
25
- ### Backend
26
- - Runtime: {Node/Deno/Bun/etc}
27
- - Framework: {Express/Fastify/Hono/etc}
28
- - Database: {PostgreSQL/MongoDB/SQLite/etc}
29
- - ORM: {Prisma/Drizzle/TypeORM/etc}
30
-
31
- ### Testing
32
- - Unit: {Vitest/Jest/etc}
33
- - E2E: {Playwright/Cypress/etc}
34
- - Coverage target: {80%/etc}
35
-
36
- ---
37
-
38
- ## File Structure
39
-
40
- ```
41
- {PROJECT_ROOT}/
42
- ├── src/
43
- │ ├── components/ # React components (Anvil's domain)
44
- │ ├── pages/ # Page components
45
- │ ├── api/ # API routes (Furnace's domain)
46
- │ ├── services/ # Business logic
47
- │ ├── models/ # Data models
48
- │ ├── utils/ # Shared utilities
49
- │ └── types/ # TypeScript types
50
- ├── tests/ # Test files (Crucible's domain)
51
- ├── docs/ # Documentation (Scribe's domain)
52
- └── ...
53
- ```
54
-
55
- ---
56
-
57
- ## Coding Standards
58
-
59
- ### Naming
60
- - Components: PascalCase (`UserProfile.tsx`)
61
- - Functions: camelCase (`getUserById`)
62
- - Constants: SCREAMING_SNAKE (`MAX_RETRIES`)
63
- - Files: kebab-case for non-components (`auth-service.ts`)
64
-
65
- ### Patterns
66
- - {Pattern 1: e.g., "Use custom hooks for shared logic"}
67
- - {Pattern 2: e.g., "Services return Result<T, E> types"}
68
- - {Pattern 3: e.g., "API routes follow REST conventions"}
69
-
70
- ### Forbidden
71
- - {Anti-pattern 1: e.g., "No any types"}
72
- - {Anti-pattern 2: e.g., "No console.log in production code"}
73
- - {Anti-pattern 3: e.g., "No direct DOM manipulation in React"}
74
-
75
- ---
76
-
77
- ## Key Decisions
78
-
79
- ### Architecture
80
- - {Decision 1: e.g., "Monorepo with Turborepo"}
81
- - {Decision 2: e.g., "Feature-based folder structure"}
82
-
83
- ### Why We Chose X
84
- - {Rationale for major tech choice}
85
-
86
- ---
87
-
88
- ## Environment
89
-
90
- ### Local Development
91
- ```bash
92
- {SETUP_COMMANDS}
93
- ```
94
-
95
- ### Environment Variables
96
- - `DATABASE_URL` - Database connection string
97
- - `API_KEY` - External API key
98
- - {etc}
99
-
100
- ---
101
-
102
- ## Agent-Specific Notes
103
-
104
- ### Anvil (Frontend)
105
- - Component library: {Shadcn/Radix/etc}
106
- - Design system: {Link to Figma/Storybook}
107
-
108
- ### Furnace (Backend)
109
- - API base path: `/api/v1`
110
- - Auth method: {JWT/Session/etc}
111
-
112
- ### Crucible (Testing)
113
- - Run tests: `npm test`
114
- - Coverage: `npm run test:coverage`
115
-
116
- ---
117
-
118
- ## Links
119
-
120
- - Design: {Figma URL}
121
- - API Docs: {Swagger/OpenAPI URL}
122
- - Deployment: {Vercel/AWS/etc dashboard}
1
+ # Project Context
2
+
3
+ **This file is the single source of truth for all Vibe Forge agents.**
4
+
5
+ Every agent loads this file at session start. Update this when architecture or conventions change.
6
+
7
+ ---
8
+
9
+ ## Project Identity
10
+
11
+ - **Name:** {PROJECT_NAME}
12
+ - **Description:** {ONE_LINE_DESCRIPTION}
13
+ - **Repository:** {REPO_URL}
14
+
15
+ ---
16
+
17
+ ## Tech Stack
18
+
19
+ ### Frontend
20
+ - Framework: {React/Vue/Svelte/etc}
21
+ - Styling: {Tailwind/CSS Modules/Styled Components/etc}
22
+ - State: {Redux/Zustand/Context/etc}
23
+ - Build: {Vite/Webpack/etc}
24
+
25
+ ### Backend
26
+ - Runtime: {Node/Deno/Bun/etc}
27
+ - Framework: {Express/Fastify/Hono/etc}
28
+ - Database: {PostgreSQL/MongoDB/SQLite/etc}
29
+ - ORM: {Prisma/Drizzle/TypeORM/etc}
30
+
31
+ ### Testing
32
+ - Unit: {Vitest/Jest/etc}
33
+ - E2E: {Playwright/Cypress/etc}
34
+ - Coverage target: {80%/etc}
35
+
36
+ ---
37
+
38
+ ## File Structure
39
+
40
+ ```
41
+ {PROJECT_ROOT}/
42
+ ├── src/
43
+ │ ├── components/ # React components (Anvil's domain)
44
+ │ ├── pages/ # Page components
45
+ │ ├── api/ # API routes (Furnace's domain)
46
+ │ ├── services/ # Business logic
47
+ │ ├── models/ # Data models
48
+ │ ├── utils/ # Shared utilities
49
+ │ └── types/ # TypeScript types
50
+ ├── tests/ # Test files (Crucible's domain)
51
+ ├── docs/ # Documentation (Scribe's domain)
52
+ └── ...
53
+ ```
54
+
55
+ ---
56
+
57
+ ## Coding Standards
58
+
59
+ ### Naming
60
+ - Components: PascalCase (`UserProfile.tsx`)
61
+ - Functions: camelCase (`getUserById`)
62
+ - Constants: SCREAMING_SNAKE (`MAX_RETRIES`)
63
+ - Files: kebab-case for non-components (`auth-service.ts`)
64
+
65
+ ### Patterns
66
+ - {Pattern 1: e.g., "Use custom hooks for shared logic"}
67
+ - {Pattern 2: e.g., "Services return Result<T, E> types"}
68
+ - {Pattern 3: e.g., "API routes follow REST conventions"}
69
+
70
+ ### Forbidden
71
+ - {Anti-pattern 1: e.g., "No any types"}
72
+ - {Anti-pattern 2: e.g., "No console.log in production code"}
73
+ - {Anti-pattern 3: e.g., "No direct DOM manipulation in React"}
74
+
75
+ ---
76
+
77
+ ## Key Decisions
78
+
79
+ ### Architecture
80
+ - {Decision 1: e.g., "Monorepo with Turborepo"}
81
+ - {Decision 2: e.g., "Feature-based folder structure"}
82
+
83
+ ### Why We Chose X
84
+ - {Rationale for major tech choice}
85
+
86
+ ---
87
+
88
+ ## Environment
89
+
90
+ ### Local Development
91
+ ```bash
92
+ {SETUP_COMMANDS}
93
+ ```
94
+
95
+ ### Environment Variables
96
+ - `DATABASE_URL` - Database connection string
97
+ - `API_KEY` - External API key
98
+ - {etc}
99
+
100
+ ---
101
+
102
+ ## Agent-Specific Notes
103
+
104
+ ### Anvil (Frontend)
105
+ - Component library: {Shadcn/Radix/etc}
106
+ - Design system: {Link to Figma/Storybook}
107
+
108
+ ### Furnace (Backend)
109
+ - API base path: `/api/v1`
110
+ - Auth method: {JWT/Session/etc}
111
+
112
+ ### Crucible (Testing)
113
+ - Run tests: `npm test`
114
+ - Coverage: `npm run test:coverage`
115
+
116
+ ---
117
+
118
+ ## Links
119
+
120
+ - Design: {Figma URL}
121
+ - API Docs: {Swagger/OpenAPI URL}
122
+ - Deployment: {Vercel/AWS/etc dashboard}
@@ -1,159 +0,0 @@
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
- ```
@@ -1,40 +0,0 @@
1
- ---
2
- task_id: {{TASK_ID}}
3
- agent: {{AGENT}}
4
- handoff_reason: context_limit | task_too_large | blocked | shift_change
5
- created: {{ISO_TIMESTAMP}}
6
- status: pending
7
- ---
8
-
9
- # Session Handoff: {{TASK_ID}}
10
-
11
- ## What Was Done
12
-
13
- - [ ] List completed subtasks or acceptance criteria
14
-
15
- ## What Remains
16
-
17
- - [ ] List remaining subtasks or acceptance criteria
18
-
19
- ## Current State
20
-
21
- Describe the exact state of the work so the next agent can resume:
22
-
23
- - **Last file touched:** `path/to/file.ts`
24
- - **Pattern being used:** (e.g., "React Hook Form with Zod validation")
25
- - **Branch:** `task/TASK-XXX-description`
26
- - **Commits so far:** (list or count)
27
-
28
- ## Key Context
29
-
30
- Anything the next agent needs to know that isn't in the task file:
31
-
32
- - Decisions made during this session
33
- - Gotchas discovered
34
- - Dependencies or blockers encountered
35
-
36
- ## Resume Instructions
37
-
38
- 1. Read this handoff file
39
- 2. Check out branch `task/TASK-XXX-description`
40
- 3. Continue from [specific file/function/line]