forge-cc 0.1.40 → 1.0.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 (72) hide show
  1. package/README.md +454 -338
  2. package/dist/cli.js +194 -906
  3. package/dist/cli.js.map +1 -1
  4. package/dist/config/loader.d.ts +1 -1
  5. package/dist/config/loader.js +49 -56
  6. package/dist/config/loader.js.map +1 -1
  7. package/dist/config/schema.d.ts +37 -125
  8. package/dist/config/schema.js +13 -28
  9. package/dist/config/schema.js.map +1 -1
  10. package/dist/doctor.d.ts +10 -0
  11. package/dist/doctor.js +148 -0
  12. package/dist/doctor.js.map +1 -0
  13. package/dist/gates/index.d.ts +14 -12
  14. package/dist/gates/index.js +53 -105
  15. package/dist/gates/index.js.map +1 -1
  16. package/dist/gates/lint-gate.d.ts +2 -2
  17. package/dist/gates/lint-gate.js +60 -66
  18. package/dist/gates/lint-gate.js.map +1 -1
  19. package/dist/gates/tests-gate.d.ts +2 -4
  20. package/dist/gates/tests-gate.js +75 -203
  21. package/dist/gates/tests-gate.js.map +1 -1
  22. package/dist/gates/types-gate.d.ts +2 -2
  23. package/dist/gates/types-gate.js +53 -59
  24. package/dist/gates/types-gate.js.map +1 -1
  25. package/dist/go/linear-sync-cli.js +13 -4
  26. package/dist/go/linear-sync-cli.js.map +1 -1
  27. package/dist/go/linear-sync.d.ts +1 -0
  28. package/dist/go/linear-sync.js +67 -4
  29. package/dist/go/linear-sync.js.map +1 -1
  30. package/dist/linear/client.d.ts +34 -105
  31. package/dist/linear/client.js +85 -365
  32. package/dist/linear/client.js.map +1 -1
  33. package/dist/linear/issues.d.ts +3 -1
  34. package/dist/linear/issues.js +14 -2
  35. package/dist/linear/issues.js.map +1 -1
  36. package/dist/linear/projects.js +3 -2
  37. package/dist/linear/projects.js.map +1 -1
  38. package/dist/linear/sync.d.ts +15 -0
  39. package/dist/linear/sync.js +102 -0
  40. package/dist/linear/sync.js.map +1 -0
  41. package/dist/runner/loop.d.ts +4 -0
  42. package/dist/runner/loop.js +168 -0
  43. package/dist/runner/loop.js.map +1 -0
  44. package/dist/runner/prompt.d.ts +14 -0
  45. package/dist/runner/prompt.js +59 -0
  46. package/dist/runner/prompt.js.map +1 -0
  47. package/dist/runner/update.d.ts +1 -0
  48. package/dist/runner/update.js +72 -0
  49. package/dist/runner/update.js.map +1 -0
  50. package/dist/server.d.ts +6 -2
  51. package/dist/server.js +43 -101
  52. package/dist/server.js.map +1 -1
  53. package/dist/setup.d.ts +5 -0
  54. package/dist/setup.js +208 -0
  55. package/dist/setup.js.map +1 -0
  56. package/dist/state/cache.d.ts +3 -0
  57. package/dist/state/cache.js +23 -0
  58. package/dist/state/cache.js.map +1 -0
  59. package/dist/state/status.d.ts +66 -0
  60. package/dist/state/status.js +96 -0
  61. package/dist/state/status.js.map +1 -0
  62. package/dist/types.d.ts +46 -114
  63. package/dist/worktree/manager.d.ts +6 -103
  64. package/dist/worktree/manager.js +25 -296
  65. package/dist/worktree/manager.js.map +1 -1
  66. package/hooks/pre-commit-verify.js +109 -109
  67. package/package.json +3 -2
  68. package/skills/forge-go.md +583 -575
  69. package/skills/forge-setup.md +149 -388
  70. package/skills/forge-spec.md +367 -342
  71. package/skills/forge-triage.md +179 -133
  72. package/skills/forge-update.md +87 -93
@@ -14,7 +14,7 @@
14
14
  */
15
15
  import { LinearClient, LinearClientError } from "../linear/client.js";
16
16
  import { transitionProject } from "../linear/projects.js";
17
- import { transitionMilestoneIssues } from "../linear/issues.js";
17
+ import { transitionMilestoneIssues, resolveStateId } from "../linear/issues.js";
18
18
  import { findMilestoneByName } from "../linear/milestones.js";
19
19
  // ---------------------------------------------------------------------------
20
20
  // Safe Wrapper
@@ -99,8 +99,34 @@ export async function syncMilestoneStart(options) {
99
99
  projectUpdated,
100
100
  };
101
101
  }
102
+ // Derive teamId from options or from milestone issues
103
+ let teamId = options.teamId;
104
+ if (!teamId) {
105
+ const milestoneIssues = await client.listIssues({
106
+ projectId: options.projectId,
107
+ milestoneId: milestone.id,
108
+ });
109
+ teamId = milestoneIssues[0]?.teamId;
110
+ }
111
+ if (!teamId) {
112
+ console.warn(`[linear-sync] No teamId available — cannot resolve state UUIDs. Skipping issue transitions.`);
113
+ // Still try to transition the project
114
+ let projectUpdated = false;
115
+ try {
116
+ await transitionProject(client, options.projectId, "In Progress");
117
+ projectUpdated = true;
118
+ }
119
+ catch {
120
+ // Project may already be In Progress or beyond — that's fine
121
+ }
122
+ return {
123
+ linearMilestoneId: milestone.id,
124
+ issuesUpdated: 0,
125
+ projectUpdated,
126
+ };
127
+ }
102
128
  // Transition milestone issues to In Progress
103
- const { updated } = await transitionMilestoneIssues(client, options.projectId, milestone.id, "In Progress");
129
+ const { updated } = await transitionMilestoneIssues(client, options.projectId, milestone.id, "In Progress", teamId);
104
130
  // Transition project to In Progress
105
131
  let projectUpdated = false;
106
132
  try {
@@ -169,11 +195,34 @@ export async function syncMilestoneComplete(options) {
169
195
  const allIssues = await client.listIssues({
170
196
  projectId: options.projectId,
171
197
  });
198
+ // Resolve state UUIDs per team (state IDs are team-scoped)
199
+ const stateIdByTeam = new Map();
200
+ if (options.teamId) {
201
+ try {
202
+ const id = await resolveStateId(client, options.teamId, "In Review");
203
+ stateIdByTeam.set(options.teamId, id);
204
+ }
205
+ catch {
206
+ // State resolution failed for this team
207
+ }
208
+ }
209
+ for (const issue of allIssues) {
210
+ if (issue.teamId && !stateIdByTeam.has(issue.teamId)) {
211
+ try {
212
+ const id = await resolveStateId(client, issue.teamId, "In Review");
213
+ stateIdByTeam.set(issue.teamId, id);
214
+ }
215
+ catch {
216
+ // State resolution failed for this team — will fall back to name
217
+ }
218
+ }
219
+ }
172
220
  let updatedCount = 0;
173
221
  for (const issue of allIssues) {
174
222
  if (issue.state !== "In Review" && issue.state !== "Done") {
175
223
  try {
176
- await client.updateIssue(issue.id, { state: "In Review" });
224
+ const issueStateId = issue.teamId ? stateIdByTeam.get(issue.teamId) : undefined;
225
+ await client.updateIssue(issue.id, issueStateId ? { stateId: issueStateId } : { state: "In Review" });
177
226
  updatedCount++;
178
227
  }
179
228
  catch {
@@ -285,11 +334,25 @@ export async function syncProjectDone(options) {
285
334
  const allIssues = await client.listIssues({
286
335
  projectId: options.projectId,
287
336
  });
337
+ // Resolve state UUIDs per team (state IDs are team-scoped)
338
+ const stateIdByTeam = new Map();
339
+ for (const issue of allIssues) {
340
+ if (issue.teamId && !stateIdByTeam.has(issue.teamId)) {
341
+ try {
342
+ const id = await resolveStateId(client, issue.teamId, "Done");
343
+ stateIdByTeam.set(issue.teamId, id);
344
+ }
345
+ catch {
346
+ // State resolution failed for this team — will fall back to name
347
+ }
348
+ }
349
+ }
288
350
  let updatedCount = 0;
289
351
  for (const issue of allIssues) {
290
352
  if (issue.state !== "Done" && issue.state !== "Canceled") {
291
353
  try {
292
- await client.updateIssue(issue.id, { state: "Done" });
354
+ const issueStateId = issue.teamId ? stateIdByTeam.get(issue.teamId) : undefined;
355
+ await client.updateIssue(issue.id, issueStateId ? { stateId: issueStateId } : { state: "Done" });
293
356
  updatedCount++;
294
357
  }
295
358
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"linear-sync.js","sourceRoot":"","sources":["../../src/go/linear-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linear-sync.js","sourceRoot":"","sources":["../../src/go/linear-sync.ts"],"names":[],"mappings":"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"}
@@ -1,108 +1,37 @@
1
+ export interface ForgeLinearClientOptions {
2
+ apiKey: string;
3
+ teamId?: string;
4
+ }
1
5
  /**
2
- * Typed wrapper around the Linear GraphQL API.
3
- * Used by lifecycle modules (projects.ts, milestones.ts, issues.ts)
4
- * and the execution engine for programmatic Linear management.
6
+ * Thin wrapper around @linear/sdk's LinearClient, scoped to a team.
7
+ * All public methods degrade gracefully on API errors (warn, don't crash).
5
8
  */
6
- export interface LinearProject {
7
- id: string;
8
- name: string;
9
- description?: string;
10
- state: string;
11
- url: string;
12
- }
13
- export interface LinearMilestone {
14
- id: string;
15
- name: string;
16
- description?: string;
17
- progress: number;
18
- sortOrder: number;
19
- }
20
- export interface LinearIssue {
21
- id: string;
22
- identifier: string;
23
- title: string;
24
- description?: string;
25
- state: string;
26
- projectId?: string;
27
- milestoneId?: string;
28
- url: string;
29
- }
30
- export interface LinearTeam {
31
- id: string;
32
- name: string;
33
- key: string;
34
- }
35
- export interface CreateProjectInput {
36
- name: string;
37
- description?: string;
38
- teamIds: string[];
39
- state?: string;
40
- }
41
- export interface UpdateProjectInput {
42
- name?: string;
43
- description?: string;
44
- state?: string;
45
- }
46
- export interface CreateMilestoneInput {
47
- projectId: string;
48
- name: string;
49
- description?: string;
50
- targetDate?: string;
51
- }
52
- export interface CreateIssueInput {
53
- title: string;
54
- description?: string;
55
- teamId: string;
56
- projectId?: string;
57
- milestoneId?: string;
58
- priority?: number;
59
- state?: string;
60
- }
61
- export interface UpdateIssueInput {
62
- title?: string;
63
- description?: string;
64
- state?: string;
65
- milestoneId?: string;
66
- priority?: number;
67
- }
68
- export declare class LinearClientError extends Error {
69
- readonly statusCode?: number | undefined;
70
- readonly errors?: Array<{
71
- message: string;
72
- }> | undefined;
73
- constructor(message: string, statusCode?: number | undefined, errors?: Array<{
74
- message: string;
75
- }> | undefined);
76
- }
77
- export declare class LinearClient {
78
- private readonly apiKey;
79
- constructor(apiKey?: string);
80
- listProjects(opts?: {
81
- query?: string;
82
- state?: string;
83
- }): Promise<LinearProject[]>;
84
- createProject(input: CreateProjectInput): Promise<LinearProject>;
85
- updateProject(id: string, input: UpdateProjectInput): Promise<LinearProject>;
86
- listMilestones(projectId: string): Promise<LinearMilestone[]>;
87
- createMilestone(input: CreateMilestoneInput): Promise<LinearMilestone>;
88
- listIssues(opts?: {
89
- projectId?: string;
90
- milestoneId?: string;
91
- state?: string;
92
- }): Promise<LinearIssue[]>;
93
- createIssue(input: CreateIssueInput): Promise<LinearIssue>;
94
- updateIssue(id: string, input: UpdateIssueInput): Promise<LinearIssue>;
95
- createComment(issueId: string, body: string): Promise<void>;
96
- listTeams(): Promise<LinearTeam[]>;
97
- /**
98
- * Execute a GraphQL request against the Linear API with retry + backoff.
99
- */
100
- private request;
101
- /**
102
- * Auto-paginate a connection query. The query MUST accept `$after: String`
103
- * and the root field must return `{ pageInfo { hasNextPage endCursor } nodes { ... } }`.
104
- */
105
- private paginate;
106
- /** Normalize a raw issue node from GraphQL into our flat LinearIssue shape. */
107
- private mapIssue;
9
+ export declare class ForgeLinearClient {
10
+ private readonly client;
11
+ private readonly teamId;
12
+ constructor(opts: ForgeLinearClientOptions);
13
+ /** Resolve a workflow state UUID by its display name for a given team. */
14
+ resolveStateId(teamId: string, stateName: string): Promise<string>;
15
+ /** Update an issue's workflow state. */
16
+ updateIssueState(issueId: string, stateId: string): Promise<void>;
17
+ /** Update a project's status (state name in Linear projects). */
18
+ updateProjectState(projectId: string, stateId: string): Promise<void>;
19
+ /** List all teams visible to the authenticated user. */
20
+ listTeams(): Promise<Array<{
21
+ id: string;
22
+ name: string;
23
+ key: string;
24
+ }>>;
25
+ /** List issues belonging to a project. Returns identifier (e.g. "MSIG-123") and title. */
26
+ listIssuesByProject(projectId: string): Promise<Array<{
27
+ id: string;
28
+ identifier: string;
29
+ title: string;
30
+ }>>;
31
+ /** List projects filtered by team. */
32
+ listProjects(teamId: string): Promise<Array<{
33
+ id: string;
34
+ name: string;
35
+ state: string;
36
+ }>>;
108
37
  }