forge-dev-framework 1.1.0 → 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.
Files changed (107) hide show
  1. package/.claude/commands/forge/README.md +156 -189
  2. package/.claude/commands/forge/add-phase.md +4 -3
  3. package/.claude/commands/forge/complete-milestone.md +1 -1
  4. package/.claude/commands/forge/convert.md +31 -0
  5. package/.claude/commands/forge/debug.md +12 -154
  6. package/.claude/commands/forge/discuss.md +60 -107
  7. package/.claude/commands/forge/execute.md +67 -142
  8. package/.claude/commands/forge/generate.md +8 -107
  9. package/.claude/commands/forge/help.md +9 -114
  10. package/.claude/commands/forge/init.md +10 -74
  11. package/.claude/commands/forge/insert-phase.md +4 -3
  12. package/.claude/commands/forge/new-milestone.md +1 -1
  13. package/.claude/commands/forge/new-project.md +12 -91
  14. package/.claude/commands/forge/pause-work.md +2 -2
  15. package/.claude/commands/forge/plan.md +114 -129
  16. package/.claude/commands/forge/quick.md +17 -106
  17. package/.claude/commands/forge/remove-phase.md +3 -2
  18. package/.claude/commands/forge/resume.md +22 -0
  19. package/.claude/commands/forge/team-add.md +24 -0
  20. package/.claude/commands/forge/team-create.md +22 -0
  21. package/.claude/commands/forge/team-remove.md +24 -0
  22. package/.claude/commands/forge/team-start.md +22 -0
  23. package/.claude/commands/forge/team-view.md +18 -0
  24. package/.claude/commands/forge/verify.md +68 -147
  25. package/.claude/hooks/forge-context-cleanup.cjs +79 -0
  26. package/.claude/hooks/forge-event-guard.cjs +36 -0
  27. package/.claude/hooks/forge-size-guard.cjs +55 -0
  28. package/.claude/rules/api-patterns.md +13 -98
  29. package/.claude/rules/context-efficiency.md +10 -0
  30. package/.claude/rules/security-baseline.md +18 -204
  31. package/.claude/rules/testing-standards.md +16 -177
  32. package/.claude/rules/ui-conventions.md +17 -142
  33. package/bin/forge.js +5 -3
  34. package/dist/bin/forge.js +5 -3
  35. package/dist/cli/index.d.ts.map +1 -1
  36. package/dist/cli/index.js +15 -1
  37. package/dist/cli/index.js.map +1 -1
  38. package/dist/commands/convert.d.ts +6 -0
  39. package/dist/commands/convert.d.ts.map +1 -0
  40. package/dist/commands/convert.js +132 -0
  41. package/dist/commands/convert.js.map +1 -0
  42. package/dist/commands/generate.d.ts.map +1 -1
  43. package/dist/commands/generate.js +3 -2
  44. package/dist/commands/generate.js.map +1 -1
  45. package/dist/commands/index.d.ts +4 -4
  46. package/dist/commands/index.d.ts.map +1 -1
  47. package/dist/commands/index.js +4 -4
  48. package/dist/commands/index.js.map +1 -1
  49. package/dist/generators/gsd-converter.d.ts +100 -0
  50. package/dist/generators/gsd-converter.d.ts.map +1 -0
  51. package/dist/generators/gsd-converter.js +335 -0
  52. package/dist/generators/gsd-converter.js.map +1 -0
  53. package/dist/templates/.claude/rules/api-patterns.md.template +212 -0
  54. package/dist/templates/.claude/rules/security-baseline.md.template +322 -0
  55. package/dist/templates/.claude/rules/testing-standards.md.template +280 -0
  56. package/dist/templates/.claude/rules/ui-conventions.md.template +264 -0
  57. package/dist/templates/.planning/forge.config.json.template +75 -0
  58. package/dist/templates/CLAUDE.md.template +161 -0
  59. package/dist/templates/PLAN.md.template +177 -0
  60. package/dist/templates/PROJECT.md.template +156 -0
  61. package/dist/templates/REQUIREMENTS.md.template +221 -0
  62. package/dist/templates/ROADMAP.md.template +130 -0
  63. package/dist/types/index.d.ts +2 -2
  64. package/dist/types/index.d.ts.map +1 -1
  65. package/dist/types/index.js +2 -2
  66. package/dist/types/index.js.map +1 -1
  67. package/dist/utils/index.d.ts +5 -5
  68. package/dist/utils/index.d.ts.map +1 -1
  69. package/dist/utils/index.js +5 -5
  70. package/dist/utils/index.js.map +1 -1
  71. package/dist/utils/template-client.d.ts.map +1 -1
  72. package/dist/utils/template-client.js +3 -2
  73. package/dist/utils/template-client.js.map +1 -1
  74. package/package.json +6 -4
  75. package/.claude/commands/forge/resume-work.md +0 -122
  76. package/dist/git/__tests__/worktree.test.d.ts +0 -5
  77. package/dist/git/__tests__/worktree.test.d.ts.map +0 -1
  78. package/dist/git/__tests__/worktree.test.js +0 -121
  79. package/dist/git/__tests__/worktree.test.js.map +0 -1
  80. package/dist/git/codeowners.d.ts +0 -101
  81. package/dist/git/codeowners.d.ts.map +0 -1
  82. package/dist/git/codeowners.js +0 -216
  83. package/dist/git/codeowners.js.map +0 -1
  84. package/dist/git/commit.d.ts +0 -135
  85. package/dist/git/commit.d.ts.map +0 -1
  86. package/dist/git/commit.js +0 -223
  87. package/dist/git/commit.js.map +0 -1
  88. package/dist/git/hooks/commit-msg.d.ts +0 -8
  89. package/dist/git/hooks/commit-msg.d.ts.map +0 -1
  90. package/dist/git/hooks/commit-msg.js +0 -34
  91. package/dist/git/hooks/commit-msg.js.map +0 -1
  92. package/dist/git/hooks/pre-commit.d.ts +0 -8
  93. package/dist/git/hooks/pre-commit.d.ts.map +0 -1
  94. package/dist/git/hooks/pre-commit.js +0 -34
  95. package/dist/git/hooks/pre-commit.js.map +0 -1
  96. package/dist/git/pre-commit-hooks.d.ts +0 -117
  97. package/dist/git/pre-commit-hooks.d.ts.map +0 -1
  98. package/dist/git/pre-commit-hooks.js +0 -270
  99. package/dist/git/pre-commit-hooks.js.map +0 -1
  100. package/dist/git/wipe-protocol.d.ts +0 -281
  101. package/dist/git/wipe-protocol.d.ts.map +0 -1
  102. package/dist/git/wipe-protocol.js +0 -237
  103. package/dist/git/wipe-protocol.js.map +0 -1
  104. package/dist/git/worktree.d.ts +0 -69
  105. package/dist/git/worktree.d.ts.map +0 -1
  106. package/dist/git/worktree.js +0 -202
  107. package/dist/git/worktree.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gsd-converter.js","sourceRoot":"","sources":["../../src/generators/gsd-converter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,212 @@
1
+ # API Design Patterns — {{projectName}}
2
+
3
+ > **Scope:** Backend API development | **Loaded On-Demand**
4
+
5
+ ---
6
+
7
+ ## RESTful Conventions
8
+
9
+ ### URL Structure
10
+ {{#if apiUrlStructure}}
11
+ {{apiUrlStructure}}
12
+ {{else}}
13
+ - Use kebab-case for resource names: `/api/v1/user-profiles`
14
+ - Use plural for collections: `/api/v1/users` (not `/api/v1/user`)
15
+ - Nest resources logically: `/api/v1/users/{userId}/posts`
16
+ {{/if}}
17
+
18
+ ### HTTP Methods
19
+ {{#if httpMethods}}
20
+ {{#each httpMethods}}
21
+ - **{{this.method}}** {{this.usage}}
22
+ {{/each}}
23
+ {{else}}
24
+ - **GET** — Retrieve resources (no side effects)
25
+ - **POST** — Create new resources
26
+ - **PATCH** — Partial updates (preferred over PUT)
27
+ - **PUT** — Full replacement (rarely used)
28
+ - **DELETE** — Resource deletion
29
+ {{/if}}
30
+
31
+ ### Response Format
32
+ {{#if responseFormat}}
33
+ {{responseFormat}}
34
+ {{else}}
35
+ Always return consistent JSON structure:
36
+
37
+ ```json
38
+ {
39
+ "data": { ... },
40
+ "meta": {
41
+ "page": 1,
42
+ "perPage": 20,
43
+ "total": 100
44
+ },
45
+ "errors": null
46
+ }
47
+ ```
48
+ {{/if}}
49
+
50
+ ---
51
+
52
+ ## Error Handling
53
+
54
+ ### Error Response Structure
55
+ ```json
56
+ {
57
+ "error": {
58
+ "code": "VALIDATION_FAILED",
59
+ "message": "User-friendly message",
60
+ "details": [
61
+ {
62
+ "field": "email",
63
+ "message": "Invalid email format"
64
+ }
65
+ ],
66
+ "requestId": "req_abc123"
67
+ }
68
+ }
69
+ ```
70
+
71
+ ### HTTP Status Codes
72
+ {{#if errorCodes}}
73
+ {{#each errorCodes}}
74
+ - **{{this.code}}** — {{this.description}}
75
+ {{/each}}
76
+ {{else}}
77
+ - **200** — Success
78
+ - **201** — Created
79
+ - **204** — No Content
80
+ - **400** — Bad Request (validation errors)
81
+ - **401** — Unauthorized (not logged in)
82
+ - **403** — Forbidden (logged in, no permission)
83
+ - **404** — Not Found
84
+ - **409** — Conflict (duplicate, state mismatch)
85
+ - **422** — Unprocessable Entity
86
+ - **429** — Too Many Requests (rate limit)
87
+ - **500** — Internal Server Error
88
+ - **503** — Service Unavailable
89
+ {{/if}}
90
+
91
+ ### Error Codes Naming
92
+ {{#if errorNaming}}
93
+ Use {{errorNaming}}
94
+ {{else}}
95
+ Use SCREAMING_SNAKE_CASE for error codes:
96
+ - `VALIDATION_FAILED`
97
+ - `AUTHENTICATION_REQUIRED`
98
+ - `RATE_LIMIT_EXCEEDED`
99
+ - `RESOURCE_NOT_FOUND`
100
+ {{/if}}
101
+
102
+ ---
103
+
104
+ ## Authentication & Authorization
105
+
106
+ {{#if authPatterns}}
107
+ {{authPatterns}}
108
+ {{else}}
109
+ ### Authentication
110
+ - Use JWT tokens with httpOnly cookies
111
+ - Include `expiresIn` claim
112
+ - Refresh token endpoint: `POST /api/v1/auth/refresh`
113
+
114
+ ### Authorization
115
+ - Check permissions at route level
116
+ - Use role-based access control (RBAC)
117
+ - Return 403 for permission errors (not 401)
118
+ {{/if}}
119
+
120
+ ---
121
+
122
+ ## Pagination
123
+
124
+ ### Standard Pagination
125
+ {{#if pagination}}
126
+ {{pagination}}
127
+ {{else}}
128
+ Default: page-based pagination
129
+ ```
130
+ GET /api/v1/users?page=1&perPage=20
131
+ ```
132
+
133
+ Response:
134
+ ```json
135
+ {
136
+ "data": [...],
137
+ "meta": {
138
+ "page": 1,
139
+ "perPage": 20,
140
+ "totalPages": 5,
141
+ "total": 100
142
+ }
143
+ }
144
+ ```
145
+ {{/if}}
146
+
147
+ ---
148
+
149
+ ## Rate Limiting
150
+
151
+ {{#if rateLimiting}}
152
+ {{rateLimiting}}
153
+ {{else}}
154
+ - Standard: 100 requests/minute per IP
155
+ - Authenticated: 1000 requests/minute per user
156
+ - Headers returned:
157
+ - `X-RateLimit-Limit`
158
+ - `X-RateLimit-Remaining`
159
+ - `X-RateLimit-Reset`
160
+ {{/if}}
161
+
162
+ ---
163
+
164
+ ## Versioning
165
+
166
+ {{#if apiVersioning}}
167
+ {{apiVersioning}}
168
+ {{else}}
169
+ - URL-based versioning: `/api/v1/`, `/api/v2/`
170
+ - Maintain backward compatibility for at least one major version
171
+ - Document deprecation timeline
172
+ {{/if}}
173
+
174
+ ---
175
+
176
+ ## Validation
177
+
178
+ {{#if validationRules}}
179
+ {{validationRules}}
180
+ {{else}}
181
+ ### Request Validation
182
+ - Validate all inputs at handler boundary
183
+ - Return detailed field-level errors
184
+ - Use Zod or similar schema validation
185
+
186
+ ### Response Validation
187
+ - Validate contracts against OpenAPI schema
188
+ - Type-safe client generation from OpenAPI
189
+ {{/if}}
190
+
191
+ ---
192
+
193
+ ## OpenAPI Contract Requirements
194
+
195
+ {{#if openApiRequirements}}
196
+ {{openApiRequirements}}
197
+ {{else}}
198
+ Every API must have:
199
+ 1. OpenAPI 3.1 spec in `/contracts/`
200
+ 2. All endpoints documented with:
201
+ - Summary and description
202
+ - Request/response schemas
203
+ - Error responses
204
+ - Authentication requirements
205
+ 3. Auto-generated TypeScript types
206
+ 4. Example requests/responses
207
+ {{/if}}
208
+
209
+ ---
210
+
211
+ > **Token Budget:** ~1000 tokens max
212
+ > **Loaded On-Demand** — Only when working on API code
@@ -0,0 +1,322 @@
1
+ # Security Baseline — {{projectName}}
2
+
3
+ > **Scope:** Security requirements and practices | **Loaded On-Demand**
4
+
5
+ ---
6
+
7
+ ## Security Principles
8
+
9
+ {{#if securityPrinciples}}
10
+ {{#each securityPrinciples}}
11
+ - {{this}}
12
+ {{/each}}
13
+ {{else}}
14
+ - **Never trust user input** — Validate, sanitize, verify
15
+ - **Defense in depth** — Multiple layers of security
16
+ - **Least privilege** — Minimal access required
17
+ - **Fail secure** — Error states don't expose data
18
+ - **Security by design** — Built in, not bolted on
19
+ {{/if}}
20
+
21
+ ---
22
+
23
+ ## Authentication
24
+
25
+ ### Password Requirements
26
+ {{#if passwordPolicy}}
27
+ {{passwordPolicy}}
28
+ {{else}}
29
+ - Minimum 12 characters
30
+ - Require: uppercase, lowercase, number, special char
31
+ - Check against common password lists
32
+ - No personal information (name, email)
33
+ {{/if}}
34
+
35
+ ### Session Management
36
+ {{#if sessionManagement}}
37
+ {{sessionManagement}}
38
+ {{else}}
39
+ - JWT tokens with short expiration (15 minutes)
40
+ - Refresh tokens with longer expiration (7 days)
41
+ - httpOnly, secure, SameSite cookies
42
+ - Invalidate on logout
43
+ - Rotate tokens periodically
44
+ {{/if}}
45
+
46
+ ### Multi-Factor Authentication
47
+ {{#if mfa}}
48
+ {{mfa}}
49
+ {{else}}
50
+ - Require MFA for admin accounts
51
+ - Support TOTP (Google Authenticator)
52
+ - Backup codes for recovery
53
+ {{/if}}
54
+
55
+ ---
56
+
57
+ ## Authorization
58
+
59
+ ### Access Control
60
+ {{#if accessControl}}
61
+ {{accessControl}}
62
+ {{else}}
63
+ - Role-Based Access Control (RBAC)
64
+ - Check permissions at every layer (API, service, data)
65
+ - Default deny: explicit allow only
66
+ - Audit all authorization decisions
67
+ {{/if}}
68
+
69
+ ### Role Hierarchy
70
+ {{#if roles}}
71
+ {{#each roles}}
72
+ - **{{this.name}}:** {{this.description}}
73
+ {{/each}}
74
+ {{else}}
75
+ - **guest** — Unauthenticated access
76
+ - **user** — Authenticated, basic access
77
+ - **admin** — Full system access
78
+ - **superadmin** — Emergency access, audit only
79
+ {{/if}}
80
+
81
+ ---
82
+
83
+ ## Input Validation
84
+
85
+ ### Validation Rules
86
+ {{#if inputValidation}}
87
+ {{inputValidation}}
88
+ {{else}}
89
+ - Validate all inputs at API boundary
90
+ - Use schema validation (Zod/Joi/Yup)
91
+ - Whitelist allowed values (don't blacklist)
92
+ - Sanitize HTML (DOMPurify)
93
+ - Truncate excessively long inputs
94
+ {{/if}}
95
+
96
+ ### SQL Injection Prevention
97
+ {{#if sqlPrevention}}
98
+ {{sqlPrevention}}
99
+ {{else}}
100
+ - Use parameterized queries only
101
+ - Never concatenate SQL strings
102
+ - Use ORM-provided query builders
103
+ - Enable query logging in development
104
+ {{/if}}
105
+
106
+ ### XSS Prevention
107
+ {{#if xssPrevention}}
108
+ {{xssPrevention}}
109
+ {{else}}
110
+ - Escape all user-generated content
111
+ - Use CSP headers (Content-Security-Policy)
112
+ - Set `httpOnly` cookies
113
+ - Validate and sanitize file uploads
114
+ {{/if}}
115
+
116
+ ---
117
+
118
+ ## Data Protection
119
+
120
+ ### Encryption at Rest
121
+ {{#if encryptionAtRest}}
122
+ {{encryptionAtRest}}
123
+ {{else}}
124
+ - Database: {{encryption.db}}
125
+ - File storage: {{encryption.files}}
126
+ - Secrets: {{encryption.secrets}}
127
+ - Backup: {{encryption.backup}}
128
+ {{/if}}
129
+
130
+ ### Encryption in Transit
131
+ {{#if encryptionInTransit}}
132
+ {{encryptionInTransit}}
133
+ {{else}}
134
+ - HTTPS only (TLS 1.3+)
135
+ - HSTS headers enabled
136
+ - Secure cipher suites only
137
+ {{/if}}
138
+
139
+ ### PII Handling
140
+ {{#if piiHandling}}
141
+ {{piiHandling}}
142
+ {{else}}
143
+ - Identify all PII in code (comment: # PII)
144
+ - Encrypt sensitive fields in database
145
+ - Log PII only when necessary
146
+ - Mask PII in logs (email: u***@example.com)
147
+ {{/if}}
148
+
149
+ ---
150
+
151
+ ## API Security
152
+
153
+ ### Rate Limiting
154
+ {{#if rateLimiting}}
155
+ {{rateLimiting}}
156
+ {{else}}
157
+ - Per-IP limits for anonymous: 100/min
158
+ - Per-user limits: 1000/min
159
+ - Per-endpoint limits for expensive operations
160
+ - Track with Redis, expire after window
161
+ {{/if}}
162
+
163
+ ### API Key Management
164
+ {{#if apiKeyManagement}}
165
+ {{apiKeyManagement}}
166
+ {{else}}
167
+ - Rotate API keys quarterly
168
+ - Include key owner in key metadata
169
+ - Revoke immediately on leak
170
+ - Monitor usage patterns
171
+ {{/if}}
172
+
173
+ ### CORS Configuration
174
+ {{#if cors}}
175
+ {{cors}}
176
+ {{else}}
177
+ - Whitelist allowed origins only
178
+ - Don't use `*` in production
179
+ - Expose only necessary headers
180
+ - Max age: 1 hour
181
+ {{/if}}
182
+
183
+ ---
184
+
185
+ ## Dependencies
186
+
187
+ ### Supply Chain Security
188
+ {{#if supplyChain}}
189
+ {{supplyChain}}
190
+ {{else}}
191
+ - Lock dependency versions
192
+ - Run `npm audit` in CI
193
+ - Use Dependabot or Renovate
194
+ - Review PR from dependabots
195
+ - Pin action versions in GitHub Actions
196
+ {{/if}}
197
+
198
+ ### Vulnerability Scanning
199
+ {{#if vulnScanning}}
200
+ {{vulnScanning}}
201
+ {{else}}
202
+ - SAST: {{sastTool}} in CI
203
+ - SCA: {{scaTool}} for dependencies
204
+ - DAST: {{dastTool}} on staging
205
+ - Container scan: {{containerScanTool}}
206
+ {{/if}}
207
+
208
+ ---
209
+
210
+ ## Secrets Management
211
+
212
+ ### Secrets Policy
213
+ {{#if secretsPolicy}}
214
+ {{secretsPolicy}}
215
+ {{else}}
216
+ - Never commit secrets to git
217
+ - Use environment variables or vault
218
+ - Rotate secrets quarterly
219
+ - Different secrets per environment
220
+ {{/if}}
221
+
222
+ ### Secrets Storage
223
+ {{#if secretsStorage}}
224
+ {{secretsStorage}}
225
+ {{else}}
226
+ - Development: `.env` (gitignored)
227
+ - Production: {{secretsManager}}
228
+ - CI/CD: {{ciSecrets}}
229
+ {{/if}}
230
+
231
+ ---
232
+
233
+ ## Logging & Monitoring
234
+
235
+ ### Security Logging
236
+ {{#if securityLogging}}
237
+ {{securityLogging}}
238
+ {{else}}
239
+ Log all security events:
240
+ - Failed authentication
241
+ - Authorization failures
242
+ - Rate limit violations
243
+ - Admin actions
244
+ - Data exports
245
+ - Configuration changes
246
+
247
+ Include:
248
+ - Timestamp
249
+ - User ID (if available)
250
+ - IP address
251
+ - Action
252
+ - Result
253
+ {{/if}}
254
+
255
+ ### Alerting
256
+ {{#if alerting}}
257
+ {{alerting}}
258
+ {{else}}
259
+ Alert on:
260
+ - > 10 failed auth attempts / 5 min / IP
261
+ - > 100 failed auth attempts / 5 min globally
262
+ - New admin account created
263
+ - Database backup accessed
264
+ - Unusual data export volume
265
+ {{/if}}
266
+
267
+ ---
268
+
269
+ ## Compliance
270
+
271
+ {{#if compliance}}
272
+ {{#each compliance}}
273
+ ### {{this.framework}}
274
+ {{this.requirements}}
275
+ {{/each}}
276
+ {{/if}}
277
+
278
+ ---
279
+
280
+ ## Security Checklist
281
+
282
+ Before deploying:
283
+ {{#if deploymentChecklist}}
284
+ {{#each deploymentChecklist}}
285
+ - [ ] {{this}}
286
+ {{/each}}
287
+ {{else}}
288
+ - [ ] All dependencies audited
289
+ - [ ] No secrets in code
290
+ - [ ] HTTPS enabled
291
+ - [ ] CORS configured
292
+ - [ ] Rate limiting enabled
293
+ - [ ] Input validation on all endpoints
294
+ - [ ] Authentication required for sensitive operations
295
+ - [ ] Authorization checks on all endpoints
296
+ - [ ] Security headers configured
297
+ - [ ] Logging enabled
298
+ - [ ] Error handling doesn't leak info
299
+ - [ ] File upload validation
300
+ - [ ] Database encryption enabled
301
+ {{/if}}
302
+
303
+ ---
304
+
305
+ ## Incident Response
306
+
307
+ {{#if incidentResponse}}
308
+ {{incidentResponse}}
309
+ {{else}}
310
+ ### Breach Response
311
+ 1. **Detect** — Monitoring/alerts fire
312
+ 2. **Contain** — Isolate affected systems
313
+ 3. **Investigate** — Determine scope and impact
314
+ 4. **Remediate** — Patch vulnerabilities
315
+ 5. **Recover** — Restore from backups if needed
316
+ 6. **Post-mortem** — Document and improve
317
+ {{/if}}
318
+
319
+ ---
320
+
321
+ > **Token Budget:** ~1000 tokens max
322
+ > **Loaded On-Demand** — Only when working on security