@specforge/canary-cli 0.2.2 → 0.2.4

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 (45) hide show
  1. package/dist/tools/index.d.ts.map +1 -1
  2. package/dist/tools/index.js +2 -130
  3. package/dist/tools/index.js.map +1 -1
  4. package/dist/validation/index.d.ts.map +1 -1
  5. package/dist/validation/index.js +0 -9
  6. package/dist/validation/index.js.map +1 -1
  7. package/node_modules/@specforge/api-types/dist/mcp/lifecycle-envelope.d.ts.map +1 -1
  8. package/node_modules/@specforge/api-types/dist/runtime/epic-record.d.ts +1 -1
  9. package/node_modules/@specforge/api-types/dist/runtime/epic-record.d.ts.map +1 -1
  10. package/node_modules/@specforge/api-types/dist/runtime/project.d.ts +0 -1
  11. package/node_modules/@specforge/api-types/dist/runtime/project.d.ts.map +1 -1
  12. package/node_modules/@specforge/api-types/dist/runtime/ticket-record.d.ts +1 -1
  13. package/node_modules/@specforge/api-types/dist/runtime/ticket-record.d.ts.map +1 -1
  14. package/node_modules/@specforge/api-types/dist/stores/i-project-store.d.ts +0 -2
  15. package/node_modules/@specforge/api-types/dist/stores/i-project-store.d.ts.map +1 -1
  16. package/node_modules/@specforge/api-types/package.json +1 -1
  17. package/node_modules/@specforge/session-types/dist/runtime/enums.d.ts +1 -1
  18. package/node_modules/@specforge/session-types/dist/runtime/enums.d.ts.map +1 -1
  19. package/node_modules/@specforge/session-types/dist/runtime/enums.js +1 -2
  20. package/node_modules/@specforge/session-types/dist/runtime/enums.js.map +1 -1
  21. package/node_modules/@specforge/session-types/dist/runtime/implementation-session-aggregate.d.ts +57 -1
  22. package/node_modules/@specforge/session-types/dist/runtime/implementation-session-aggregate.d.ts.map +1 -1
  23. package/node_modules/@specforge/session-types/dist/runtime/implementation-session-aggregate.js +25 -1
  24. package/node_modules/@specforge/session-types/dist/runtime/implementation-session-aggregate.js.map +1 -1
  25. package/node_modules/@specforge/session-types/dist/schema/work-session-action.d.ts +3 -0
  26. package/node_modules/@specforge/session-types/dist/schema/work-session-action.d.ts.map +1 -1
  27. package/node_modules/@specforge/session-types/dist/schema/work-session-action.js +5 -0
  28. package/node_modules/@specforge/session-types/dist/schema/work-session-action.js.map +1 -1
  29. package/node_modules/@specforge/session-types/dist/schema/work-session.d.ts +18 -0
  30. package/node_modules/@specforge/session-types/dist/schema/work-session.d.ts.map +1 -1
  31. package/node_modules/@specforge/session-types/dist/schema/work-session.js +14 -0
  32. package/node_modules/@specforge/session-types/dist/schema/work-session.js.map +1 -1
  33. package/node_modules/@specforge/session-types/package.json +1 -1
  34. package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.d.ts +7 -1
  35. package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.d.ts.map +1 -1
  36. package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.js +7 -1
  37. package/node_modules/@specforge/spec-types/dist/schema/planning/planning-type.js.map +1 -1
  38. package/node_modules/@specforge/spec-types/dist/schema/specification.d.ts +1 -1
  39. package/node_modules/@specforge/spec-types/dist/schema/specification.d.ts.map +1 -1
  40. package/node_modules/@specforge/spec-types/dist/schema/specification.js +1 -2
  41. package/node_modules/@specforge/spec-types/dist/schema/specification.js.map +1 -1
  42. package/node_modules/@specforge/spec-types/package.json +1 -1
  43. package/package.json +6 -6
  44. package/src/cli/templates/skills/specforge-orchestrator.md +1 -1
  45. package/src/cli/templates/skills/specforge-worker.md +1 -1
@@ -117,6 +117,20 @@ export declare const WorkSessionSchema: z.ZodObject<{
117
117
  * with the real stores in M19.
118
118
  */
119
119
  coherenceScore: z.ZodOptional<z.ZodNumber>;
120
+ /**
121
+ * Close-to-start elapsed (ML.1.3). Stamped ONCE at CWS finalize from
122
+ * `completedAt − startedAt` — the total wall-clock the session was open, NOT
123
+ * per-step time tracking (that is MP). `durationMs` is the exact elapsed in
124
+ * milliseconds; `actualMinutes` is that rounded to whole minutes (floored at 1
125
+ * for any positive elapsed) and is copied onto `Ticket.actualMinutes` on
126
+ * completion (the count-propagator folds it via the WorkSession stream, and the
127
+ * CWS success write-plan sets it directly). The live Amplify columns already
128
+ * exist (`resource.ts` `WorkSession.actualMinutes: a.integer()` /
129
+ * `durationMs: a.integer()`); the TS surface had no field — mirrored here so the
130
+ * typed write round-trips. Absent until the session completes.
131
+ */
132
+ actualMinutes: z.ZodOptional<z.ZodNumber>;
133
+ durationMs: z.ZodOptional<z.ZodNumber>;
120
134
  }, "strip", z.ZodTypeAny, {
121
135
  status: "active" | "paused" | "completed" | "failed" | "aborted";
122
136
  id: string;
@@ -126,6 +140,7 @@ export declare const WorkSessionSchema: z.ZodObject<{
126
140
  implementationSessionId: string;
127
141
  specificationId?: string | undefined;
128
142
  completedAt?: string | undefined;
143
+ durationMs?: number | undefined;
129
144
  branch?: string | undefined;
130
145
  commitSha?: string | undefined;
131
146
  worktreePath?: string | undefined;
@@ -149,6 +164,7 @@ export declare const WorkSessionSchema: z.ZodObject<{
149
164
  deletions: z.ZodOptional<z.ZodNumber>;
150
165
  }, z.ZodTypeAny, "passthrough"> | undefined;
151
166
  coherenceScore?: number | undefined;
167
+ actualMinutes?: number | undefined;
152
168
  }, {
153
169
  status: "active" | "paused" | "completed" | "failed" | "aborted";
154
170
  id: string;
@@ -158,6 +174,7 @@ export declare const WorkSessionSchema: z.ZodObject<{
158
174
  implementationSessionId: string;
159
175
  specificationId?: string | undefined;
160
176
  completedAt?: string | undefined;
177
+ durationMs?: number | undefined;
161
178
  branch?: string | undefined;
162
179
  commitSha?: string | undefined;
163
180
  worktreePath?: string | undefined;
@@ -181,5 +198,6 @@ export declare const WorkSessionSchema: z.ZodObject<{
181
198
  deletions: z.ZodOptional<z.ZodNumber>;
182
199
  }, z.ZodTypeAny, "passthrough"> | undefined;
183
200
  coherenceScore?: number | undefined;
201
+ actualMinutes?: number | undefined;
184
202
  }>;
185
203
  //# sourceMappingURL=work-session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"work-session.d.ts","sourceRoot":"","sources":["../../src/schema/work-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;IAK5B;;;;;;;OAOG;;IAGH;;;;;OAKG;;;;;IAOH;;;;;;;OAOG;;;IAIH;;;;;;;;;OASG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIH;;;;;;;;OAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEH,CAAC"}
1
+ {"version":3,"file":"work-session.d.ts","sourceRoot":"","sources":["../../src/schema/work-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;IAK5B;;;;;;;OAOG;;IAGH;;;;;OAKG;;;;;IAOH;;;;;;;OAOG;;;IAIH;;;;;;;;;OASG;;IAGH;;;;;;OAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIH;;;;;;;;OAQG;;IAGH;;;;;;;;;;;OAWG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGH,CAAC"}
@@ -68,5 +68,19 @@ export const WorkSessionSchema = z.object({
68
68
  * with the real stores in M19.
69
69
  */
70
70
  coherenceScore: z.number().optional(),
71
+ /**
72
+ * Close-to-start elapsed (ML.1.3). Stamped ONCE at CWS finalize from
73
+ * `completedAt − startedAt` — the total wall-clock the session was open, NOT
74
+ * per-step time tracking (that is MP). `durationMs` is the exact elapsed in
75
+ * milliseconds; `actualMinutes` is that rounded to whole minutes (floored at 1
76
+ * for any positive elapsed) and is copied onto `Ticket.actualMinutes` on
77
+ * completion (the count-propagator folds it via the WorkSession stream, and the
78
+ * CWS success write-plan sets it directly). The live Amplify columns already
79
+ * exist (`resource.ts` `WorkSession.actualMinutes: a.integer()` /
80
+ * `durationMs: a.integer()`); the TS surface had no field — mirrored here so the
81
+ * typed write round-trips. Absent until the session completes.
82
+ */
83
+ actualMinutes: z.number().int().nonnegative().optional(),
84
+ durationMs: z.number().int().nonnegative().optional(),
71
85
  });
72
86
  //# sourceMappingURL=work-session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"work-session.js","sourceRoot":"","sources":["../../src/schema/work-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IAErB;;;;;;;OAOG;IACH,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEtC;;;;;OAKG;IACH,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE;IAEnC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAE7C;;;;;;;OAOG;IACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE7B;;;;;;;;;OASG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAElC;;;;;;OAMG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IAE/C;;;;;;;;OAQG;IACH,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC"}
1
+ {"version":3,"file":"work-session.js","sourceRoot":"","sources":["../../src/schema/work-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IAErB;;;;;;;OAOG;IACH,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEtC;;;;;OAKG;IACH,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE;IAEnC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAE7C;;;;;;;OAOG;IACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE7B;;;;;;;;;OASG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAElC;;;;;;OAMG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IAE/C;;;;;;;;OAQG;IACH,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAErC;;;;;;;;;;;OAWG;IACH,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACxD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@specforge/session-types",
3
- "version": "0.4.4",
3
+ "version": "0.4.10",
4
4
  "description": "Session type definitions for SpecForge work/planning/review sessions.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -5,7 +5,13 @@ import { z } from 'zod';
5
5
  * canonical home lives here so the ME.14.2 APS enum write-guard (lifecycle) and the
6
6
  * validator enum-parity guard share one source and can never drift from the AppSync
7
7
  * model. Poisoning this field breaks the gate's own ListEpics read.
8
+ *
9
+ * ML.1.9 (B10) — the `review` lifecycle was torn down at M27, so `review` is retired
10
+ * from this canonical set. Dropping it here flows automatically to the validator
11
+ * enum-parity guard, the lifecycle APS enum write-guard, and the `ticket_general_actions`
12
+ * typed planningType field (an out-of-enum `review` is now denied). Kept in lockstep with
13
+ * the Amplify model (`resource.ts` Epic/Ticket `planningType`) so parity never drifts.
8
14
  */
9
- export declare const PlanningTypeEnum: z.ZodEnum<["planning", "on_flight", "review"]>;
15
+ export declare const PlanningTypeEnum: z.ZodEnum<["planning", "on_flight"]>;
10
16
  export type PlanningType = z.infer<typeof PlanningTypeEnum>;
11
17
  //# sourceMappingURL=planning-type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"planning-type.d.ts","sourceRoot":"","sources":["../../../src/schema/planning/planning-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,gDAA8C,CAAC;AAC5E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"planning-type.d.ts","sourceRoot":"","sources":["../../../src/schema/planning/planning-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,sCAAoC,CAAC;AAClE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -5,6 +5,12 @@ import { z } from 'zod';
5
5
  * canonical home lives here so the ME.14.2 APS enum write-guard (lifecycle) and the
6
6
  * validator enum-parity guard share one source and can never drift from the AppSync
7
7
  * model. Poisoning this field breaks the gate's own ListEpics read.
8
+ *
9
+ * ML.1.9 (B10) — the `review` lifecycle was torn down at M27, so `review` is retired
10
+ * from this canonical set. Dropping it here flows automatically to the validator
11
+ * enum-parity guard, the lifecycle APS enum write-guard, and the `ticket_general_actions`
12
+ * typed planningType field (an out-of-enum `review` is now denied). Kept in lockstep with
13
+ * the Amplify model (`resource.ts` Epic/Ticket `planningType`) so parity never drifts.
8
14
  */
9
- export const PlanningTypeEnum = z.enum(['planning', 'on_flight', 'review']);
15
+ export const PlanningTypeEnum = z.enum(['planning', 'on_flight']);
10
16
  //# sourceMappingURL=planning-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"planning-type.js","sourceRoot":"","sources":["../../../src/schema/planning/planning-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"planning-type.js","sourceRoot":"","sources":["../../../src/schema/planning/planning-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- export declare const SpecStatusEnum: z.ZodEnum<["draft", "planning", "ready", "in_progress", "ready_for_review", "in_review", "reviewed", "done"]>;
2
+ export declare const SpecStatusEnum: z.ZodEnum<["draft", "planning", "ready", "in_progress", "done"]>;
3
3
  export type SpecificationStatus = z.infer<typeof SpecStatusEnum>;
4
4
  export declare const SpecificationSchema: z.ZodObject<{
5
5
  schemaVersion: z.ZodLiteral<"1.1">;
@@ -1 +1 @@
1
- {"version":3,"file":"specification.d.ts","sourceRoot":"","sources":["../../src/schema/specification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB,eAAO,MAAM,cAAc,+GAGzB,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEjE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkC9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"specification.d.ts","sourceRoot":"","sources":["../../src/schema/specification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB,eAAO,MAAM,cAAc,kEAEzB,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEjE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkC9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -9,8 +9,7 @@ import { GoalSchema, RequirementSchema, NonFunctionalRequirementSchema, Guardrai
9
9
  // getSpecFull read. Named `SpecificationStatus` to avoid clashing with session-types'
10
10
  // `SpecStatus`. The public SpecificationSchema keeps `status` loose (products narrow).
11
11
  export const SpecStatusEnum = z.enum([
12
- 'draft', 'planning', 'ready', 'in_progress',
13
- 'ready_for_review', 'in_review', 'reviewed', 'done',
12
+ 'draft', 'planning', 'ready', 'in_progress', 'done',
14
13
  ]);
15
14
  export const SpecificationSchema = z.object({
16
15
  schemaVersion: z.literal('1.1'),
@@ -1 +1 @@
1
- {"version":3,"file":"specification.js","sourceRoot":"","sources":["../../src/schema/specification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,8BAA8B,EAC9B,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,sFAAsF;AACtF,sFAAsF;AACtF,oFAAoF;AACpF,sFAAsF;AACtF,uFAAuF;AACvF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;IACnC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa;IAC3C,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM;CACpD,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAElC,0DAA0D;IAC1D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAElB,6BAA6B;IAC7B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,KAAK,EAAE,WAAW;IAElB,gCAAgC;IAChC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IACvC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC;IACtD,yBAAyB,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC;IAClE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;IACvD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAEpC,qBAAqB;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEjC,WAAW;IACX,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;IAC1B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAEpC,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,QAAQ,EAAE;IAC1E,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACzC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC"}
1
+ {"version":3,"file":"specification.js","sourceRoot":"","sources":["../../src/schema/specification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,8BAA8B,EAC9B,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,sFAAsF;AACtF,sFAAsF;AACtF,oFAAoF;AACpF,sFAAsF;AACtF,uFAAuF;AACvF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;IACnC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM;CACpD,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAElC,0DAA0D;IAC1D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAElB,6BAA6B;IAC7B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,KAAK,EAAE,WAAW;IAElB,gCAAgC;IAChC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IACvC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC;IACtD,yBAAyB,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC;IAClE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;IACvD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAEpC,qBAAqB;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEjC,WAAW;IACX,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;IAC1B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAEpC,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,QAAQ,EAAE;IAC1E,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACzC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@specforge/spec-types",
3
- "version": "0.4.4",
3
+ "version": "0.4.10",
4
4
  "description": "Public OpenSpec v1.1 schema — types, Zod schemas, JSON Schema. Future OSS as @openspec/types.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@specforge/canary-cli",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "MCP server for SpecForge - AI agent integration",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -18,10 +18,10 @@
18
18
  "minimatch": "^10.1.1",
19
19
  "ora": "^8.2.0",
20
20
  "zod": "^3.22.0",
21
- "@specforge/api-types": "0.4.4",
22
- "@specforge/session-types": "0.4.4",
21
+ "@specforge/session-types": "0.4.10",
22
+ "@specforge/api-types": "0.4.11",
23
23
  "@specforge/report-types": "0.4.3",
24
- "@specforge/spec-types": "0.4.4"
24
+ "@specforge/spec-types": "0.4.10"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/inquirer": "^9.0.9",
@@ -33,7 +33,7 @@
33
33
  "tsx": "^4.7.0",
34
34
  "typescript": "^5.0.0",
35
35
  "vitest": "4.0.18",
36
- "@specforge/lifecycle": "0.3.4"
36
+ "@specforge/lifecycle": "0.3.10"
37
37
  },
38
38
  "engines": {
39
39
  "node": ">=18.0.0"
@@ -61,7 +61,7 @@
61
61
  "@specforge/session-types",
62
62
  "@specforge/report-types"
63
63
  ],
64
- "gitHead": "bac7ced560a0eb16301cf6a733ec2c37af2612e9",
64
+ "gitHead": "b62f0655247ad7e0ebc61414832dec2e59c371f1",
65
65
  "scripts": {
66
66
  "build": "tsup && tsc --emitDeclarationOnly --outDir dist",
67
67
  "typecheck": "tsc --noEmit",
@@ -411,4 +411,4 @@ When `.specforge.json` has monorepo configuration:
411
411
  - **Epic:** `todo` | `in_progress` | `completed`
412
412
  - **Specification:** `draft` | `planning` | `ready` | `in_progress` | `completed`
413
413
 
414
- Note: There is no `in_review` status. Tickets go directly from `active` to `done`.
414
+ Note: There is no in-review status. Tickets go directly from `active` to `done`.
@@ -404,7 +404,7 @@ If you cannot complete the ticket after reasonable attempts:
404
404
  ## Status Values
405
405
 
406
406
  - **Ticket:** `pending` | `ready` | `active` | `done` | `blocked`
407
- - There is no `in_review` status. Tickets go directly from `active` to `done`.
407
+ - There is no in-review status. Tickets go directly from `active` to `done`.
408
408
  - `pending` means dependencies are not met. `ready` means all dependencies satisfied.
409
409
  - `blocked` is a first-class status set by a `blocking` discovery; resolving it returns the ticket to `pending`.
410
410
  - `start_work_session` transitions `ready` → `active`.