vibe-forge 0.8.1 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/commands/configure-vcs.md +102 -102
- package/.claude/commands/forge.md +218 -218
- package/.claude/hooks/worker-loop.js +220 -217
- package/.claude/settings.json +89 -89
- package/README.md +149 -191
- package/agents/aegis/personality.md +303 -303
- package/agents/anvil/personality.md +278 -278
- package/agents/architect/personality.md +260 -260
- package/agents/crucible/personality.md +362 -362
- package/agents/crucible-x/personality.md +210 -210
- package/agents/ember/personality.md +293 -293
- package/agents/flux/personality.md +248 -248
- package/agents/furnace/personality.md +342 -342
- package/agents/herald/personality.md +249 -249
- package/agents/oracle/personality.md +284 -284
- package/agents/pixel/personality.md +140 -140
- package/agents/planning-hub/personality.md +473 -473
- package/agents/scribe/personality.md +253 -253
- package/agents/slag/personality.md +268 -268
- package/agents/temper/personality.md +270 -270
- package/bin/cli.js +372 -372
- package/bin/forge-daemon.sh +477 -477
- package/bin/forge-setup.sh +662 -661
- package/bin/forge-spawn.sh +164 -164
- package/bin/forge.sh +566 -566
- package/docs/commands.md +8 -8
- package/package.json +77 -77
- package/{bin → src}/lib/agents.sh +177 -177
- package/{bin → src}/lib/check-aliases.js +50 -50
- package/{bin → src}/lib/colors.sh +45 -44
- package/{bin → src}/lib/config.sh +347 -347
- package/{bin → src}/lib/constants.sh +241 -241
- package/{bin → src}/lib/daemon/budgets.sh +107 -107
- package/{bin → src}/lib/daemon/dependencies.sh +146 -146
- package/{bin → src}/lib/daemon/display.sh +128 -128
- package/{bin → src}/lib/daemon/notifications.sh +273 -273
- package/{bin → src}/lib/daemon/routing.sh +93 -93
- package/{bin → src}/lib/daemon/state.sh +163 -163
- package/{bin → src}/lib/daemon/sync.sh +103 -103
- package/{bin → src}/lib/database.sh +357 -357
- package/{bin → src}/lib/frontmatter.js +106 -106
- package/{bin → src}/lib/heimdall-setup.js +113 -113
- package/{bin → src}/lib/heimdall.js +265 -265
- package/src/lib/index.sh +25 -0
- package/{bin → src}/lib/json.sh +264 -264
- package/{bin → src}/lib/terminal.js +452 -452
- package/{bin → src}/lib/util.sh +126 -126
- package/{bin → src}/lib/vcs.js +349 -349
- package/{context → templates}/project-context-template.md +122 -122
- package/config/task-template.md +0 -159
- 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}
|
package/config/task-template.md
DELETED
|
@@ -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]
|