forge-dev-framework 1.0.1 → 1.2.0
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/forge/README.md +281 -0
- package/.claude/commands/forge/add-phase.md +90 -0
- package/.claude/commands/forge/complete-milestone.md +130 -0
- package/.claude/commands/forge/config.md +115 -0
- package/.claude/commands/forge/convert.md +31 -0
- package/.claude/commands/forge/debug.md +31 -0
- package/.claude/commands/forge/discuss.md +78 -0
- package/.claude/commands/forge/execute.md +85 -0
- package/.claude/commands/forge/generate.md +21 -0
- package/.claude/commands/forge/help.md +18 -0
- package/.claude/commands/forge/init.md +21 -0
- package/.claude/commands/forge/insert-phase.md +99 -0
- package/.claude/commands/forge/new-milestone.md +114 -0
- package/.claude/commands/forge/new-project.md +24 -0
- package/.claude/commands/forge/pause-work.md +111 -0
- package/.claude/commands/forge/plan.md +129 -0
- package/.claude/commands/forge/quick.md +41 -0
- package/.claude/commands/forge/remove-phase.md +92 -0
- package/.claude/commands/forge/resume.md +22 -0
- package/.claude/commands/forge/status.md +87 -0
- package/.claude/commands/forge/team-add.md +24 -0
- package/.claude/commands/forge/team-create.md +22 -0
- package/.claude/commands/forge/team-remove.md +24 -0
- package/.claude/commands/forge/team-start.md +22 -0
- package/.claude/commands/forge/team-view.md +18 -0
- package/.claude/commands/forge/verify.md +95 -0
- package/.claude/hooks/forge-context-cleanup.cjs +79 -0
- package/.claude/hooks/forge-event-guard.cjs +36 -0
- package/.claude/hooks/forge-size-guard.cjs +55 -0
- package/.claude/rules/api-patterns.md +13 -98
- package/.claude/rules/context-efficiency.md +10 -0
- package/.claude/rules/security-baseline.md +18 -204
- package/.claude/rules/testing-standards.md +16 -177
- package/.claude/rules/ui-conventions.md +17 -142
- package/README.md +1 -0
- package/bin/forge.js +5 -3
- package/dist/bin/forge.js +5 -3
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +15 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/convert.d.ts +6 -0
- package/dist/commands/convert.d.ts.map +1 -0
- package/dist/commands/convert.js +132 -0
- package/dist/commands/convert.js.map +1 -0
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +3 -2
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/index.d.ts +4 -4
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +4 -4
- package/dist/commands/index.js.map +1 -1
- package/dist/generators/gsd-converter.d.ts +100 -0
- package/dist/generators/gsd-converter.d.ts.map +1 -0
- package/dist/generators/gsd-converter.js +335 -0
- package/dist/generators/gsd-converter.js.map +1 -0
- package/dist/templates/.claude/rules/api-patterns.md.template +212 -0
- package/dist/templates/.claude/rules/security-baseline.md.template +322 -0
- package/dist/templates/.claude/rules/testing-standards.md.template +280 -0
- package/dist/templates/.claude/rules/ui-conventions.md.template +264 -0
- package/dist/templates/.planning/forge.config.json.template +75 -0
- package/dist/templates/CLAUDE.md.template +161 -0
- package/dist/templates/PLAN.md.template +177 -0
- package/dist/templates/PROJECT.md.template +156 -0
- package/dist/templates/REQUIREMENTS.md.template +221 -0
- package/dist/templates/ROADMAP.md.template +130 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -2
- package/dist/types/index.js.map +1 -1
- package/dist/utils/index.d.ts +5 -5
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +5 -5
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/template-client.d.ts.map +1 -1
- package/dist/utils/template-client.js +3 -2
- package/dist/utils/template-client.js.map +1 -1
- package/package.json +6 -4
- package/dist/git/__tests__/worktree.test.d.ts +0 -5
- package/dist/git/__tests__/worktree.test.d.ts.map +0 -1
- package/dist/git/__tests__/worktree.test.js +0 -121
- package/dist/git/__tests__/worktree.test.js.map +0 -1
- package/dist/git/codeowners.d.ts +0 -101
- package/dist/git/codeowners.d.ts.map +0 -1
- package/dist/git/codeowners.js +0 -216
- package/dist/git/codeowners.js.map +0 -1
- package/dist/git/commit.d.ts +0 -135
- package/dist/git/commit.d.ts.map +0 -1
- package/dist/git/commit.js +0 -223
- package/dist/git/commit.js.map +0 -1
- package/dist/git/hooks/commit-msg.d.ts +0 -8
- package/dist/git/hooks/commit-msg.d.ts.map +0 -1
- package/dist/git/hooks/commit-msg.js +0 -34
- package/dist/git/hooks/commit-msg.js.map +0 -1
- package/dist/git/hooks/pre-commit.d.ts +0 -8
- package/dist/git/hooks/pre-commit.d.ts.map +0 -1
- package/dist/git/hooks/pre-commit.js +0 -34
- package/dist/git/hooks/pre-commit.js.map +0 -1
- package/dist/git/pre-commit-hooks.d.ts +0 -117
- package/dist/git/pre-commit-hooks.d.ts.map +0 -1
- package/dist/git/pre-commit-hooks.js +0 -270
- package/dist/git/pre-commit-hooks.js.map +0 -1
- package/dist/git/wipe-protocol.d.ts +0 -281
- package/dist/git/wipe-protocol.d.ts.map +0 -1
- package/dist/git/wipe-protocol.js +0 -237
- package/dist/git/wipe-protocol.js.map +0 -1
- package/dist/git/worktree.d.ts +0 -69
- package/dist/git/worktree.d.ts.map +0 -1
- package/dist/git/worktree.js +0 -202
- package/dist/git/worktree.js.map +0 -1
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# {{projectName}}
|
|
2
|
+
|
|
3
|
+
> {{tagline}}
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Vision
|
|
8
|
+
|
|
9
|
+
{{vision}}
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Problem Statement
|
|
14
|
+
|
|
15
|
+
{{problemStatement}}
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Solution Overview
|
|
20
|
+
|
|
21
|
+
{{solution}}
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Tech Stack
|
|
26
|
+
|
|
27
|
+
{{#if techStack.backend}}
|
|
28
|
+
### Backend
|
|
29
|
+
- **Language:** {{techStack.backend.language}}
|
|
30
|
+
- **Framework:** {{techStack.backend.framework}}
|
|
31
|
+
- **Runtime:** {{techStack.backend.runtime}}
|
|
32
|
+
{{#if techStack.backend.keyLibraries}}
|
|
33
|
+
- **Key Libraries:** {{techStack.backend.keyLibraries}}
|
|
34
|
+
{{/if}}
|
|
35
|
+
{{/if}}
|
|
36
|
+
|
|
37
|
+
{{#if techStack.frontend}}
|
|
38
|
+
### Frontend
|
|
39
|
+
- **Language:** {{techStack.frontend.language}}
|
|
40
|
+
- **Framework:** {{techStack.frontend.framework}}
|
|
41
|
+
- **Build:** {{techStack.frontend.build}}
|
|
42
|
+
- **Styling:** {{techStack.frontend.styling}}
|
|
43
|
+
{{#if techStack.frontend.stateManagement}}
|
|
44
|
+
- **State Management:** {{techStack.frontend.stateManagement}}
|
|
45
|
+
{{/if}}
|
|
46
|
+
{{/if}}
|
|
47
|
+
|
|
48
|
+
{{#if techStack.database}}
|
|
49
|
+
### Data
|
|
50
|
+
- **Primary:** {{techStack.database.primary}}
|
|
51
|
+
{{#if techStack.database.orm}}
|
|
52
|
+
- **ORM:** {{techStack.database.orm}}
|
|
53
|
+
{{/if}}
|
|
54
|
+
{{#if techStack.database.migrations}}
|
|
55
|
+
- **Migrations:** {{techStack.database.migrations}}
|
|
56
|
+
{{/if}}
|
|
57
|
+
{{/if}}
|
|
58
|
+
|
|
59
|
+
{{#if techStack.infrastructure}}
|
|
60
|
+
### Infrastructure
|
|
61
|
+
- **Hosting:** {{techStack.infrastructure.hosting}}
|
|
62
|
+
- **CI/CD:** {{techStack.infrastructure.cicd}}
|
|
63
|
+
{{#if techStack.infrastructure.monitoring}}
|
|
64
|
+
- **Monitoring:** {{techStack.infrastructure.monitoring}}
|
|
65
|
+
{{/if}}
|
|
66
|
+
{{/if}}
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Architecture Overview
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
{{architectureDiagram}}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### System Boundaries
|
|
77
|
+
{{#each systemBoundaries}}
|
|
78
|
+
- **{{this.name}}:** {{this.description}}
|
|
79
|
+
{{/each}}
|
|
80
|
+
|
|
81
|
+
### Data Flow
|
|
82
|
+
{{#if dataFlow}}
|
|
83
|
+
{{dataFlow}}
|
|
84
|
+
{{/if}}
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Core Features
|
|
89
|
+
|
|
90
|
+
{{#each features}}
|
|
91
|
+
### {{this.name}}
|
|
92
|
+
{{this.description}}
|
|
93
|
+
|
|
94
|
+
{{#if this.acceptanceCriteria}}
|
|
95
|
+
**Acceptance Criteria:**
|
|
96
|
+
{{#each this.acceptanceCriteria}}
|
|
97
|
+
- {{this}}
|
|
98
|
+
{{/each}}
|
|
99
|
+
{{/if}}
|
|
100
|
+
|
|
101
|
+
{{/each}}
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Non-Functional Requirements
|
|
106
|
+
|
|
107
|
+
{{#if nfrs}}
|
|
108
|
+
### Performance
|
|
109
|
+
{{#each nfrs.performance}}
|
|
110
|
+
- {{this}}
|
|
111
|
+
{{/each}}
|
|
112
|
+
|
|
113
|
+
### Security
|
|
114
|
+
{{#each nfrs.security}}
|
|
115
|
+
- {{this}}
|
|
116
|
+
{{/each}}
|
|
117
|
+
|
|
118
|
+
### Scalability
|
|
119
|
+
{{#each nfrs.scalability}}
|
|
120
|
+
- {{this}}
|
|
121
|
+
{{/each}}
|
|
122
|
+
|
|
123
|
+
### Availability
|
|
124
|
+
{{#each nfrs.availability}}
|
|
125
|
+
- {{this}}
|
|
126
|
+
{{/each}}
|
|
127
|
+
{{/if}}
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Success Metrics
|
|
132
|
+
|
|
133
|
+
{{#each successMetrics}}
|
|
134
|
+
- **{{this.name}}:** {{this.description}} (Target: {{this.target}})
|
|
135
|
+
{{/each}}
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Known Constraints
|
|
140
|
+
|
|
141
|
+
{{#each constraints}}
|
|
142
|
+
- **{{this.type}}:** {{this.description}}
|
|
143
|
+
{{/each}}
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Out of Scope (Future Phases)
|
|
148
|
+
|
|
149
|
+
{{#each outOfScope}}
|
|
150
|
+
- {{this}}
|
|
151
|
+
{{/each}}
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
> **Version:** {{version}}
|
|
156
|
+
> **Last Updated:** {{timestamp}}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
# Requirements — {{projectName}}
|
|
2
|
+
|
|
3
|
+
> Version: {{version}} | Phase: {{currentPhase}}
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Functional Requirements
|
|
8
|
+
|
|
9
|
+
{{#each features}}
|
|
10
|
+
### {{@index}}. {{this.name}}
|
|
11
|
+
|
|
12
|
+
{{this.description}}
|
|
13
|
+
|
|
14
|
+
#### User Stories
|
|
15
|
+
{{#each this.userStories}}
|
|
16
|
+
**As a** {{this.role}}
|
|
17
|
+
**I want** {{this.want}}
|
|
18
|
+
**So that** {{this.why}}
|
|
19
|
+
|
|
20
|
+
{{/each}}
|
|
21
|
+
|
|
22
|
+
#### Acceptance Criteria
|
|
23
|
+
{{#each this.acceptanceCriteria}}
|
|
24
|
+
**Given** {{this.given}}
|
|
25
|
+
**When** {{this.when}}
|
|
26
|
+
**Then** {{this.then}}
|
|
27
|
+
|
|
28
|
+
{{/each}}
|
|
29
|
+
|
|
30
|
+
#### Dependencies
|
|
31
|
+
{{#if this.dependencies}}
|
|
32
|
+
- Depends on: {{this.dependencies}}
|
|
33
|
+
{{/if}}
|
|
34
|
+
|
|
35
|
+
{{#if this.apiContracts}}
|
|
36
|
+
**API Contracts:** `{{this.apiContracts}}`
|
|
37
|
+
{{/if}}
|
|
38
|
+
|
|
39
|
+
{{/each}}
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Non-Functional Requirements
|
|
44
|
+
|
|
45
|
+
### Performance
|
|
46
|
+
{{#each nfrs.performance}}
|
|
47
|
+
- {{this}}
|
|
48
|
+
|
|
49
|
+
{{/each}}
|
|
50
|
+
|
|
51
|
+
### Security
|
|
52
|
+
{{#each nfrs.security}}
|
|
53
|
+
- {{this}}
|
|
54
|
+
|
|
55
|
+
{{/each}}
|
|
56
|
+
|
|
57
|
+
### Reliability
|
|
58
|
+
{{#each nfrs.reliability}}
|
|
59
|
+
- {{this}}
|
|
60
|
+
|
|
61
|
+
{{/each}}
|
|
62
|
+
|
|
63
|
+
### Maintainability
|
|
64
|
+
{{#each nfrs.maintainability}}
|
|
65
|
+
- {{this}}
|
|
66
|
+
|
|
67
|
+
{{/each}}
|
|
68
|
+
|
|
69
|
+
### Scalability
|
|
70
|
+
{{#each nfrs.scalability}}
|
|
71
|
+
- {{this}}
|
|
72
|
+
|
|
73
|
+
{{/each}}
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Data Requirements
|
|
78
|
+
|
|
79
|
+
{{#if dataRequirements}}
|
|
80
|
+
### Entities
|
|
81
|
+
{{#each dataRequirements.entities}}
|
|
82
|
+
#### {{this.name}}
|
|
83
|
+
{{#each this.fields}}
|
|
84
|
+
- **{{this.name}}** ({{this.type}}){{#if this.required}} *required*{{/if}}: {{this.description}}
|
|
85
|
+
{{/each}}
|
|
86
|
+
|
|
87
|
+
{{/each}}
|
|
88
|
+
{{/if}}
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## API Requirements
|
|
93
|
+
|
|
94
|
+
{{#if apiRequirements}}
|
|
95
|
+
{{#each apiRequirements}}
|
|
96
|
+
### {{this.name}}
|
|
97
|
+
- **Endpoint:** `{{this.method}} {{this.path}}`
|
|
98
|
+
- **Description:** {{this.description}}
|
|
99
|
+
- **Authentication:** {{this.authentication}}
|
|
100
|
+
- **Rate Limit:** {{this.rateLimit}}
|
|
101
|
+
|
|
102
|
+
{{#if this.request}}
|
|
103
|
+
**Request:**
|
|
104
|
+
```{{this.request.format}}
|
|
105
|
+
{{this.request.schema}}
|
|
106
|
+
```
|
|
107
|
+
{{/if}}
|
|
108
|
+
|
|
109
|
+
{{#if this.response}}
|
|
110
|
+
**Response:**
|
|
111
|
+
```{{this.response.format}}
|
|
112
|
+
{{this.response.schema}}
|
|
113
|
+
```
|
|
114
|
+
{{/if}}
|
|
115
|
+
|
|
116
|
+
{{#if this.errors}}
|
|
117
|
+
**Error Responses:**
|
|
118
|
+
{{#each this.errors}}
|
|
119
|
+
- `{{this.code}}` — {{this.description}}
|
|
120
|
+
{{/each}}
|
|
121
|
+
{{/if}}
|
|
122
|
+
|
|
123
|
+
{{/each}}
|
|
124
|
+
{{/if}}
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## UI/UX Requirements
|
|
129
|
+
|
|
130
|
+
{{#if uiRequirements}}
|
|
131
|
+
### Design Principles
|
|
132
|
+
{{#each uiRequirements.principles}}
|
|
133
|
+
- {{this}}
|
|
134
|
+
{{/each}}
|
|
135
|
+
|
|
136
|
+
### Screen Requirements
|
|
137
|
+
{{#each uiRequirements.screens}}
|
|
138
|
+
#### {{this.name}}
|
|
139
|
+
{{this.description}}
|
|
140
|
+
|
|
141
|
+
**States:**
|
|
142
|
+
{{#each this.states}}
|
|
143
|
+
- {{this.name}}: {{this.description}}
|
|
144
|
+
{{/each}}
|
|
145
|
+
|
|
146
|
+
**Interactions:**
|
|
147
|
+
{{#each this.interactions}}
|
|
148
|
+
- {{this}}
|
|
149
|
+
{{/each}}
|
|
150
|
+
|
|
151
|
+
{{/each}}
|
|
152
|
+
{{/if}}
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Integration Requirements
|
|
157
|
+
|
|
158
|
+
{{#if integrations}}
|
|
159
|
+
{{#each integrations}}
|
|
160
|
+
### {{this.name}}
|
|
161
|
+
- **Type:** {{this.type}}
|
|
162
|
+
- **Purpose:** {{this.purpose}}
|
|
163
|
+
- **Contract:** `{{this.contractPath}}`
|
|
164
|
+
- **SLA:** {{this.sla}}
|
|
165
|
+
|
|
166
|
+
{{/each}}
|
|
167
|
+
{{/if}}
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Testing Requirements
|
|
172
|
+
|
|
173
|
+
{{#if testing}}
|
|
174
|
+
### Test Coverage
|
|
175
|
+
- Minimum: {{testing.coverage}}%
|
|
176
|
+
- Critical paths: 100%
|
|
177
|
+
|
|
178
|
+
### Test Types Required
|
|
179
|
+
{{#each.testing.types}}
|
|
180
|
+
- {{this}}
|
|
181
|
+
{{/each}}
|
|
182
|
+
|
|
183
|
+
### Performance Tests
|
|
184
|
+
{{#if testing.performance}}
|
|
185
|
+
{{testing.performance}}
|
|
186
|
+
{{/if}}
|
|
187
|
+
|
|
188
|
+
### Security Tests
|
|
189
|
+
{{#if testing.security}}
|
|
190
|
+
{{testing.security}}
|
|
191
|
+
{{/if}}
|
|
192
|
+
{{/if}}
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Compliance & Legal
|
|
197
|
+
|
|
198
|
+
{{#if compliance}}
|
|
199
|
+
{{#each compliance}}
|
|
200
|
+
- **{{this.area}}:** {{this.requirement}}
|
|
201
|
+
{{/each}}
|
|
202
|
+
{{/if}}
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Assumptions & Dependencies
|
|
207
|
+
|
|
208
|
+
### Assumptions
|
|
209
|
+
{{#each assumptions}}
|
|
210
|
+
- {{this}}
|
|
211
|
+
{{/each}}
|
|
212
|
+
|
|
213
|
+
### External Dependencies
|
|
214
|
+
{{#each dependencies}}
|
|
215
|
+
- **{{this.name}}** (v{{this.version}}) — {{this.purpose}}
|
|
216
|
+
{{/each}}
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
> **Token Budget:** ~4000 tokens max
|
|
221
|
+
> **Last Updated:** {{timestamp}}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# Roadmap — {{projectName}}
|
|
2
|
+
|
|
3
|
+
> Current Status: {{currentStatus}} | Last Updated: {{timestamp}}
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Project Status
|
|
8
|
+
|
|
9
|
+
{{#if projectStatus}}
|
|
10
|
+
- **Current Milestone:** {{projectStatus.currentMilestone}}
|
|
11
|
+
- **Current Phase:** {{projectStatus.currentPhase}}
|
|
12
|
+
- **Overall Progress:** {{projectStatus.progress}}%
|
|
13
|
+
- **Estimated Completion:** {{projectStatus.estimatedCompletion}}
|
|
14
|
+
{{/if}}
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Milestone Overview
|
|
19
|
+
|
|
20
|
+
{{#each milestones}}
|
|
21
|
+
### {{this.name}}
|
|
22
|
+
{{this.description}}
|
|
23
|
+
|
|
24
|
+
- **Status:** {{this.status}}
|
|
25
|
+
- **Duration:** {{this.duration}}
|
|
26
|
+
- **Dependencies:** {{#if this.dependencies}}{{this.dependencies}}{{else}}None{{/if}}
|
|
27
|
+
- **Deliverables:**
|
|
28
|
+
{{#each this.deliverables}}
|
|
29
|
+
- {{this}}
|
|
30
|
+
{{/each}}
|
|
31
|
+
|
|
32
|
+
{{/each}}
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Phase Breakdown
|
|
37
|
+
|
|
38
|
+
{{#each phases}}
|
|
39
|
+
### Phase {{@index}}: {{this.name}}
|
|
40
|
+
|
|
41
|
+
{{this.description}}
|
|
42
|
+
|
|
43
|
+
**Duration:** {{this.duration}}
|
|
44
|
+
**Dependencies:** {{#if this.dependencies}}{{this.dependencies}}{{else}}None{{/if}}
|
|
45
|
+
|
|
46
|
+
#### Tasks
|
|
47
|
+
{{#each this.tasks}}
|
|
48
|
+
- **[{{this.status}}]** {{this.id}} — {{this.name}} ({{this.owner}})
|
|
49
|
+
{{/each}}
|
|
50
|
+
|
|
51
|
+
#### Deliverables
|
|
52
|
+
{{#each this.deliverables}}
|
|
53
|
+
- {{this}}
|
|
54
|
+
{{/each}}
|
|
55
|
+
|
|
56
|
+
{{#if this.notes}}
|
|
57
|
+
**Notes:**
|
|
58
|
+
{{this.notes}}
|
|
59
|
+
{{/if}}
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
{{/each}}
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Dependency Graph
|
|
68
|
+
|
|
69
|
+
```mermaid
|
|
70
|
+
graph TD
|
|
71
|
+
{{#each dependencyGraph}}
|
|
72
|
+
{{this.from}}[{{this.fromLabel}}] --> {{this.to}}[{{this.toLabel}}]
|
|
73
|
+
{{/each}}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Risk Register
|
|
79
|
+
|
|
80
|
+
{{#if risks}}
|
|
81
|
+
| Risk | Impact | Probability | Mitigation | Owner |
|
|
82
|
+
|------|--------|-------------|------------|-------|
|
|
83
|
+
{{#each risks}}
|
|
84
|
+
| {{this.description}} | {{this.impact}} | {{this.probability}} | {{this.mitigation}} | {{this.owner}} |
|
|
85
|
+
{{/each}}
|
|
86
|
+
{{/if}}
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Upcoming Work
|
|
91
|
+
|
|
92
|
+
### Next Sprint
|
|
93
|
+
{{#if nextSprint}}
|
|
94
|
+
{{#each nextSprint}}
|
|
95
|
+
- **{{this.task}}** — {{this.description}} ({{this.owner}})
|
|
96
|
+
{{/each}}
|
|
97
|
+
{{/if}}
|
|
98
|
+
|
|
99
|
+
### Backlog
|
|
100
|
+
{{#if backlog}}
|
|
101
|
+
{{#each backlog}}
|
|
102
|
+
- **[{{this.priority}}]** {{this.name}} — {{this.description}}
|
|
103
|
+
{{/each}}
|
|
104
|
+
{{/if}}
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Definition of Done
|
|
109
|
+
|
|
110
|
+
A milestone is considered complete when:
|
|
111
|
+
|
|
112
|
+
{{#each definitionOfDone}}
|
|
113
|
+
{{@index}}. {{this}}
|
|
114
|
+
{{/each}}
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Changes & Decisions
|
|
119
|
+
|
|
120
|
+
{{#if changes}}
|
|
121
|
+
### Recent Changes
|
|
122
|
+
{{#each changes}}
|
|
123
|
+
- **[{{this.date}}]** {{this.description}} — *{{this.author}}*
|
|
124
|
+
{{/each}}
|
|
125
|
+
{{/if}}
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
> **Version:** {{version}}
|
|
130
|
+
> **Last Updated:** {{timestamp}}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
package/dist/types/index.js
CHANGED
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* FORGE Utility Exports
|
|
3
3
|
*/
|
|
4
|
-
export * from './config';
|
|
5
|
-
export * from './errors';
|
|
6
|
-
export * from './logger';
|
|
7
|
-
export * from './state-api';
|
|
8
|
-
export * from './template-client';
|
|
4
|
+
export * from './config.js';
|
|
5
|
+
export * from './errors.js';
|
|
6
|
+
export * from './logger.js';
|
|
7
|
+
export * from './state-api.js';
|
|
8
|
+
export * from './template-client.js';
|
|
9
9
|
export type { ForgeConfig, ForgeMode, ForgeDepth, GitStrategy, AgentProfile } from '../types/config.js';
|
|
10
10
|
export type { ForgeState, Task, TaskStatus, Contract, EventPayload, EventType } from '../types/state.js';
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AAGrC,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACxG,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* FORGE Utility Exports
|
|
3
3
|
*/
|
|
4
|
-
export * from './config';
|
|
5
|
-
export * from './errors';
|
|
6
|
-
export * from './logger';
|
|
7
|
-
export * from './state-api';
|
|
8
|
-
export * from './template-client';
|
|
4
|
+
export * from './config.js';
|
|
5
|
+
export * from './errors.js';
|
|
6
|
+
export * from './logger.js';
|
|
7
|
+
export * from './state-api.js';
|
|
8
|
+
export * from './template-client.js';
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-client.d.ts","sourceRoot":"","sources":["../../src/utils/template-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAA6C,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE9I,OAAO,EAA2C,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAGxG;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,oBAAoB;
|
|
1
|
+
{"version":3,"file":"template-client.d.ts","sourceRoot":"","sources":["../../src/utils/template-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAA6C,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE9I,OAAO,EAA2C,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAGxG;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,oBAAoB;IAsBxC;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,gBAAgB,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE;IAIrH;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,EAAE;IAIvD;;OAEG;IACG,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAiBpG;;OAEG;IACG,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBtH;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM;IAM9C;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAY/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;YACW,UAAU;IASxB;;OAEG;YACW,UAAU;IAMxB;;OAEG;YACW,aAAa;CAS5B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAEjF"}
|
|
@@ -20,9 +20,10 @@ export class TemplateClient {
|
|
|
20
20
|
this.projectRoot = config.projectRoot;
|
|
21
21
|
this.interactive = config.interactive ?? true;
|
|
22
22
|
this.outputDir = config.outputDir ?? config.projectRoot;
|
|
23
|
-
// Create template engine
|
|
23
|
+
// Create template engine — resolve templates from package install dir or project root
|
|
24
|
+
const packageTemplatesDir = path.resolve(path.dirname(new URL(import.meta.url).pathname), '..', 'templates');
|
|
24
25
|
this.engine = createTemplateEngine({
|
|
25
|
-
templatesDir: config.templatesDir ??
|
|
26
|
+
templatesDir: config.templatesDir ?? packageTemplatesDir,
|
|
26
27
|
outputDir: this.outputDir,
|
|
27
28
|
tokenLimits: {
|
|
28
29
|
claude: 2000,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-client.js","sourceRoot":"","sources":["../../src/utils/template-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAkF,MAAM,wBAAwB,CAAC;AAC9I,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAyB,MAAM,wBAAwB,CAAC;AACxG,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAYpC;;GAEG;AACH,MAAM,OAAO,cAAc;IACjB,MAAM,CAAiB;IACvB,WAAW,CAAS;IACpB,WAAW,CAAU;IACrB,SAAS,CAAS;IAE1B,YAAY,MAA4B;QACtC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,WAAW,CAAC;QAExD,
|
|
1
|
+
{"version":3,"file":"template-client.js","sourceRoot":"","sources":["../../src/utils/template-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "forge-dev-framework",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Full Orchestration for Rapid Git Engineering - A multi-agent development framework for Claude Code Agent Teams",
|
|
5
5
|
"main": "dist/cli/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -8,16 +8,18 @@
|
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
10
|
"dist/",
|
|
11
|
-
".claude/",
|
|
12
|
-
"
|
|
11
|
+
".claude/commands/",
|
|
12
|
+
".claude/hooks/",
|
|
13
|
+
".claude/rules/",
|
|
13
14
|
"bin/"
|
|
14
15
|
],
|
|
15
16
|
"type": "module",
|
|
16
17
|
"scripts": {
|
|
17
18
|
"prepublishOnly": "npm run build",
|
|
18
|
-
"build": "npm run build:ts && npm run build:bin",
|
|
19
|
+
"build": "npm run build:ts && npm run build:bin && npm run build:templates",
|
|
19
20
|
"build:ts": "tsc",
|
|
20
21
|
"build:bin": "mkdir -p dist/bin && cp bin/forge.js dist/bin/forge.js && chmod +x dist/bin/forge.js",
|
|
22
|
+
"build:templates": "mkdir -p dist/templates && rsync -a src/templates/ dist/templates/",
|
|
21
23
|
"dev": "tsx src/cli/index.ts",
|
|
22
24
|
"start": "node dist/cli/index.js",
|
|
23
25
|
"test": "vitest run",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.test.d.ts","sourceRoot":"","sources":["../../../src/git/__tests__/worktree.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|