forge-cc 0.1.21 → 0.1.23
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/README.md +5 -6
- package/dist/state/prd-status.d.ts +3 -0
- package/dist/state/prd-status.js +1 -0
- package/dist/state/prd-status.js.map +1 -1
- package/package.json +1 -1
- package/skills/forge-go.md +15 -17
- package/skills/forge-setup.md +1 -11
- package/skills/forge-spec.md +2 -1
package/README.md
CHANGED
|
@@ -52,7 +52,6 @@ Four commands take you from raw idea to production-ready, merged code.
|
|
|
52
52
|
│ ┌────────────────┐ │
|
|
53
53
|
│ │ VERIFY + PR │ │
|
|
54
54
|
│ │ + CODE REVIEW │ │
|
|
55
|
-
│ │ + AUTO-MERGE │ │
|
|
56
55
|
│ └────────────────┘ │
|
|
57
56
|
│ │
|
|
58
57
|
└──────────────────────────────────────────────────────────────────────────────────┘
|
|
@@ -96,7 +95,7 @@ This is the engine. Each milestone is executed by an autonomous agent team:
|
|
|
96
95
|
└─ Parallel builder agents execute independent tasks
|
|
97
96
|
```
|
|
98
97
|
|
|
99
|
-
After the final wave passes all gates + review, forge creates the PR, waits for Codex review comments, spawns fix agents for any findings
|
|
98
|
+
After the final wave passes all gates + review, forge creates the PR, waits for Codex review comments, and spawns fix agents for any findings. The PR is left for the user to merge.
|
|
100
99
|
|
|
101
100
|
### `npx forge run` -- Auto-Chain Everything
|
|
102
101
|
|
|
@@ -145,9 +144,9 @@ Forge manages your Linear project lifecycle end-to-end. Every state transition h
|
|
|
145
144
|
```
|
|
146
145
|
Linear State: Backlog ──► Planned ──► In Progress ──► In Review ──► Done
|
|
147
146
|
│ │ │ │ │
|
|
148
|
-
Forge Action: triage /forge:spec /forge:go PR created
|
|
149
|
-
creates generates PRD, executes after final
|
|
150
|
-
projects syncs milestones milestone verification
|
|
147
|
+
Forge Action: triage /forge:spec /forge:go PR created user merges
|
|
148
|
+
creates generates PRD, executes after final when ready
|
|
149
|
+
projects syncs milestones milestone verification
|
|
151
150
|
```
|
|
152
151
|
|
|
153
152
|
Set `FORGE_LINEAR_API_KEY` in your environment to enable. Forge creates projects, milestones, and issues during spec, transitions them through states during execution, and marks them done when the PR merges.
|
|
@@ -260,7 +259,7 @@ Expose gates as MCP tools for programmatic access:
|
|
|
260
259
|
| Without forge | With forge |
|
|
261
260
|
|--------------|-----------|
|
|
262
261
|
| Agent writes code, you review everything | Agent teams build, verify, review, and fix their own code |
|
|
263
|
-
| Manual git branching, PRs, merges | Automatic branches, worktrees,
|
|
262
|
+
| Manual git branching, PRs, merges | Automatic branches, worktrees, and PRs |
|
|
264
263
|
| "Tests pass" = done | 8 gates including visual regression, PRD compliance, and AI code review |
|
|
265
264
|
| One agent, one task, serial | Parallel agent teams with wave-based execution |
|
|
266
265
|
| Context rot across long sessions | Fresh session per milestone, no degradation |
|
|
@@ -14,6 +14,7 @@ export declare const PRDStatusSchema: z.ZodObject<{
|
|
|
14
14
|
slug: z.ZodString;
|
|
15
15
|
branch: z.ZodString;
|
|
16
16
|
createdAt: z.ZodString;
|
|
17
|
+
linearProjectId: z.ZodOptional<z.ZodString>;
|
|
17
18
|
milestones: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
18
19
|
status: z.ZodEnum<["pending", "in_progress", "complete"]>;
|
|
19
20
|
date: z.ZodOptional<z.ZodString>;
|
|
@@ -33,6 +34,7 @@ export declare const PRDStatusSchema: z.ZodObject<{
|
|
|
33
34
|
status: "pending" | "in_progress" | "complete";
|
|
34
35
|
date?: string | undefined;
|
|
35
36
|
}>;
|
|
37
|
+
linearProjectId?: string | undefined;
|
|
36
38
|
}, {
|
|
37
39
|
project: string;
|
|
38
40
|
slug: string;
|
|
@@ -42,6 +44,7 @@ export declare const PRDStatusSchema: z.ZodObject<{
|
|
|
42
44
|
status: "pending" | "in_progress" | "complete";
|
|
43
45
|
date?: string | undefined;
|
|
44
46
|
}>;
|
|
47
|
+
linearProjectId?: string | undefined;
|
|
45
48
|
}>;
|
|
46
49
|
export type PRDStatus = z.infer<typeof PRDStatusSchema>;
|
|
47
50
|
export type MilestoneStatus = z.infer<typeof MilestoneStatusSchema>;
|
package/dist/state/prd-status.js
CHANGED
|
@@ -13,6 +13,7 @@ export const PRDStatusSchema = z.object({
|
|
|
13
13
|
slug: z.string(),
|
|
14
14
|
branch: z.string(),
|
|
15
15
|
createdAt: z.string(),
|
|
16
|
+
linearProjectId: z.string().optional(),
|
|
16
17
|
milestones: z.record(z.string(), MilestoneStatusSchema),
|
|
17
18
|
});
|
|
18
19
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prd-status.js","sourceRoot":"","sources":["../../src/state/prd-status.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prd-status.js","sourceRoot":"","sources":["../../src/state/prd-status.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/skills/forge-go.md
CHANGED
|
@@ -343,7 +343,11 @@ Update the PRD status file:
|
|
|
343
343
|
|
|
344
344
|
### Step 7 — Linear Sync (If Configured)
|
|
345
345
|
|
|
346
|
-
|
|
346
|
+
Check for the Linear project ID in this priority order:
|
|
347
|
+
1. `linearProjectId` field in `.planning/status/<slug>.json` (written by `/forge:spec`)
|
|
348
|
+
2. `linearProject` field in `.forge.json` (manual fallback)
|
|
349
|
+
|
|
350
|
+
If a Linear project ID is found:
|
|
347
351
|
|
|
348
352
|
1. Transition issues for the completed milestone to appropriate state:
|
|
349
353
|
- If this was the **last milestone**: move issues to "In Review"
|
|
@@ -353,7 +357,7 @@ If the project has a `linearProject` configured in `.forge.json` or the PRD:
|
|
|
353
357
|
- Transition the project to "In Review"
|
|
354
358
|
- Create a PR (see Step 8)
|
|
355
359
|
|
|
356
|
-
If Linear is
|
|
360
|
+
If no Linear project ID is found in either location, skip this step silently.
|
|
357
361
|
|
|
358
362
|
### Step 8 — Route Next
|
|
359
363
|
|
|
@@ -425,24 +429,12 @@ After `gh pr create` succeeds, poll for Codex review comments:
|
|
|
425
429
|
|
|
426
430
|
5. **Timeout:** If no Codex comments appear after 8 minutes, proceed — Codex may not be configured for this repository.
|
|
427
431
|
|
|
428
|
-
**Merge and cleanup:**
|
|
429
|
-
|
|
430
|
-
After Codex review completes (or times out with no comments), merge the PR and clean up:
|
|
431
|
-
|
|
432
|
-
```bash
|
|
433
|
-
gh pr merge --squash --delete-branch
|
|
434
|
-
git checkout main
|
|
435
|
-
git pull origin main
|
|
436
|
-
```
|
|
437
|
-
|
|
438
|
-
This merges the PR, deletes the remote branch, switches back to main, and pulls the merged result.
|
|
439
|
-
|
|
440
432
|
Then shut down the agent team and print:
|
|
441
433
|
|
|
442
434
|
```
|
|
443
435
|
## All Milestones Complete!
|
|
444
436
|
|
|
445
|
-
**PR
|
|
437
|
+
**PR:** {PR URL}
|
|
446
438
|
|
|
447
439
|
- {N} milestones completed
|
|
448
440
|
- {total files} files created/modified
|
|
@@ -452,6 +444,8 @@ Then shut down the agent team and print:
|
|
|
452
444
|
The PR is ready for review.
|
|
453
445
|
```
|
|
454
446
|
|
|
447
|
+
**IMPORTANT:** Do NOT merge the PR automatically. Merging is a hard-to-reverse action that requires explicit user confirmation. Always stop here and let the user decide when to merge.
|
|
448
|
+
|
|
455
449
|
```
|
|
456
450
|
Send shutdown_request to all team members via SendMessage.
|
|
457
451
|
Wait for shutdown confirmations.
|
|
@@ -503,14 +497,18 @@ If no `dependsOn` fields are present, milestones execute sequentially (backward
|
|
|
503
497
|
|
|
504
498
|
### Step 9 — Linear Issue Start (On Milestone Begin)
|
|
505
499
|
|
|
506
|
-
At the START of milestone execution (between Step 2 and Step 3),
|
|
500
|
+
At the START of milestone execution (between Step 2 and Step 3), check for the Linear project ID using the same priority as Step 7:
|
|
501
|
+
1. `linearProjectId` field in `.planning/status/<slug>.json`
|
|
502
|
+
2. `linearProject` field in `.forge.json`
|
|
503
|
+
|
|
504
|
+
If a Linear project ID is found:
|
|
507
505
|
|
|
508
506
|
1. Find issues associated with this milestone in Linear.
|
|
509
507
|
2. Transition them to "In Progress".
|
|
510
508
|
3. Transition the project to "In Progress" (if not already).
|
|
511
509
|
4. Add a brief comment: "Starting execution via forge:go."
|
|
512
510
|
|
|
513
|
-
If Linear is
|
|
511
|
+
If no Linear project ID is found, skip silently.
|
|
514
512
|
|
|
515
513
|
## Edge Cases
|
|
516
514
|
|
package/skills/forge-setup.md
CHANGED
|
@@ -314,17 +314,7 @@ After `gh pr create` succeeds, poll for Codex review comments:
|
|
|
314
314
|
|
|
315
315
|
4. **Timeout:** If no comments appear after 8 minutes, proceed — Codex may not be configured for this repository.
|
|
316
316
|
|
|
317
|
-
**
|
|
318
|
-
|
|
319
|
-
After Codex review completes (or times out with no comments), merge the PR and clean up:
|
|
320
|
-
|
|
321
|
-
```bash
|
|
322
|
-
gh pr merge --squash --delete-branch
|
|
323
|
-
git checkout main
|
|
324
|
-
git pull origin main
|
|
325
|
-
```
|
|
326
|
-
|
|
327
|
-
This merges the PR, deletes the remote branch, switches back to main, and pulls the merged result. The `--delete-branch` flag handles remote cleanup; git will also remove the local tracking branch on pull.
|
|
317
|
+
**IMPORTANT:** Do NOT merge the PR automatically. Merging is a hard-to-reverse action that requires explicit user confirmation. Always stop here and let the user decide when to merge.
|
|
328
318
|
|
|
329
319
|
### Step 11 — Summary
|
|
330
320
|
|
package/skills/forge-spec.md
CHANGED
|
@@ -201,13 +201,14 @@ Write the final PRD to `.planning/prds/{project-slug}.md`.
|
|
|
201
201
|
|
|
202
202
|
After writing the PRD file, also:
|
|
203
203
|
|
|
204
|
-
1. **Create status file:** Write `.planning/status/<slug>.json` with all milestones set to "pending":
|
|
204
|
+
1. **Create status file:** Write `.planning/status/<slug>.json` with all milestones set to "pending". Include `linearProjectId` from the project selected in Step 1 (this is the Linear project UUID — required for `/forge:go` to sync issue status automatically):
|
|
205
205
|
```json
|
|
206
206
|
{
|
|
207
207
|
"project": "{project name}",
|
|
208
208
|
"slug": "{slug}",
|
|
209
209
|
"branch": "feat/{slug}",
|
|
210
210
|
"createdAt": "{today}",
|
|
211
|
+
"linearProjectId": "{Linear project UUID from Step 1}",
|
|
211
212
|
"milestones": {
|
|
212
213
|
"1": { "status": "pending" },
|
|
213
214
|
"2": { "status": "pending" },
|