smartlisa 0.1.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 (155) hide show
  1. package/README.md +77 -0
  2. package/dist/cli.js +6517 -0
  3. package/dist/src/adapters/cli/formatter.d.ts +34 -0
  4. package/dist/src/adapters/cli/formatter.d.ts.map +1 -0
  5. package/dist/src/adapters/cli/formatter.js +254 -0
  6. package/dist/src/adapters/cli/formatter.js.map +1 -0
  7. package/dist/src/adapters/cli/index.d.ts +14 -0
  8. package/dist/src/adapters/cli/index.d.ts.map +1 -0
  9. package/dist/src/adapters/cli/index.js +781 -0
  10. package/dist/src/adapters/cli/index.js.map +1 -0
  11. package/dist/src/adapters/state/__tests__/api.test.d.ts +8 -0
  12. package/dist/src/adapters/state/__tests__/api.test.d.ts.map +1 -0
  13. package/dist/src/adapters/state/__tests__/api.test.js +500 -0
  14. package/dist/src/adapters/state/__tests__/api.test.js.map +1 -0
  15. package/dist/src/adapters/state/__tests__/filesystem.test.d.ts +7 -0
  16. package/dist/src/adapters/state/__tests__/filesystem.test.d.ts.map +1 -0
  17. package/dist/src/adapters/state/__tests__/filesystem.test.js +418 -0
  18. package/dist/src/adapters/state/__tests__/filesystem.test.js.map +1 -0
  19. package/dist/src/adapters/state/api.d.ts +148 -0
  20. package/dist/src/adapters/state/api.d.ts.map +1 -0
  21. package/dist/src/adapters/state/api.js +337 -0
  22. package/dist/src/adapters/state/api.js.map +1 -0
  23. package/dist/src/adapters/state/filesystem.d.ts +80 -0
  24. package/dist/src/adapters/state/filesystem.d.ts.map +1 -0
  25. package/dist/src/adapters/state/filesystem.js +228 -0
  26. package/dist/src/adapters/state/filesystem.js.map +1 -0
  27. package/dist/src/adapters/state/index.d.ts +9 -0
  28. package/dist/src/adapters/state/index.d.ts.map +1 -0
  29. package/dist/src/adapters/state/index.js +10 -0
  30. package/dist/src/adapters/state/index.js.map +1 -0
  31. package/dist/src/adapters/state/types.d.ts +131 -0
  32. package/dist/src/adapters/state/types.d.ts.map +1 -0
  33. package/dist/src/adapters/state/types.js +11 -0
  34. package/dist/src/adapters/state/types.js.map +1 -0
  35. package/dist/src/core/__tests__/context.test.d.ts +12 -0
  36. package/dist/src/core/__tests__/context.test.d.ts.map +1 -0
  37. package/dist/src/core/__tests__/context.test.js +528 -0
  38. package/dist/src/core/__tests__/context.test.js.map +1 -0
  39. package/dist/src/core/__tests__/discover.test.d.ts +2 -0
  40. package/dist/src/core/__tests__/discover.test.d.ts.map +1 -0
  41. package/dist/src/core/__tests__/discover.test.js +667 -0
  42. package/dist/src/core/__tests__/discover.test.js.map +1 -0
  43. package/dist/src/core/__tests__/engine.test.d.ts +2 -0
  44. package/dist/src/core/__tests__/engine.test.d.ts.map +1 -0
  45. package/dist/src/core/__tests__/engine.test.js +444 -0
  46. package/dist/src/core/__tests__/engine.test.js.map +1 -0
  47. package/dist/src/core/__tests__/feedback.test.d.ts +2 -0
  48. package/dist/src/core/__tests__/feedback.test.d.ts.map +1 -0
  49. package/dist/src/core/__tests__/feedback.test.js +351 -0
  50. package/dist/src/core/__tests__/feedback.test.js.map +1 -0
  51. package/dist/src/core/__tests__/plan.test.d.ts +2 -0
  52. package/dist/src/core/__tests__/plan.test.d.ts.map +1 -0
  53. package/dist/src/core/__tests__/plan.test.js +429 -0
  54. package/dist/src/core/__tests__/plan.test.js.map +1 -0
  55. package/dist/src/core/__tests__/schemas.test.d.ts +2 -0
  56. package/dist/src/core/__tests__/schemas.test.d.ts.map +1 -0
  57. package/dist/src/core/__tests__/schemas.test.js +614 -0
  58. package/dist/src/core/__tests__/schemas.test.js.map +1 -0
  59. package/dist/src/core/__tests__/state.test.d.ts +2 -0
  60. package/dist/src/core/__tests__/state.test.d.ts.map +1 -0
  61. package/dist/src/core/__tests__/state.test.js +1107 -0
  62. package/dist/src/core/__tests__/state.test.js.map +1 -0
  63. package/dist/src/core/__tests__/status.test.d.ts +2 -0
  64. package/dist/src/core/__tests__/status.test.d.ts.map +1 -0
  65. package/dist/src/core/__tests__/status.test.js +600 -0
  66. package/dist/src/core/__tests__/status.test.js.map +1 -0
  67. package/dist/src/core/__tests__/test-helpers.d.ts +28 -0
  68. package/dist/src/core/__tests__/test-helpers.d.ts.map +1 -0
  69. package/dist/src/core/__tests__/test-helpers.js +185 -0
  70. package/dist/src/core/__tests__/test-helpers.js.map +1 -0
  71. package/dist/src/core/__tests__/utils.test.d.ts +2 -0
  72. package/dist/src/core/__tests__/utils.test.d.ts.map +1 -0
  73. package/dist/src/core/__tests__/utils.test.js +276 -0
  74. package/dist/src/core/__tests__/utils.test.js.map +1 -0
  75. package/dist/src/core/__tests__/validate.test.d.ts +2 -0
  76. package/dist/src/core/__tests__/validate.test.d.ts.map +1 -0
  77. package/dist/src/core/__tests__/validate.test.js +354 -0
  78. package/dist/src/core/__tests__/validate.test.js.map +1 -0
  79. package/dist/src/core/commands/discover.d.ts +71 -0
  80. package/dist/src/core/commands/discover.d.ts.map +1 -0
  81. package/dist/src/core/commands/discover.js +687 -0
  82. package/dist/src/core/commands/discover.js.map +1 -0
  83. package/dist/src/core/commands/feedback.d.ts +49 -0
  84. package/dist/src/core/commands/feedback.d.ts.map +1 -0
  85. package/dist/src/core/commands/feedback.js +283 -0
  86. package/dist/src/core/commands/feedback.js.map +1 -0
  87. package/dist/src/core/commands/index.d.ts +11 -0
  88. package/dist/src/core/commands/index.d.ts.map +1 -0
  89. package/dist/src/core/commands/index.js +11 -0
  90. package/dist/src/core/commands/index.js.map +1 -0
  91. package/dist/src/core/commands/plan.d.ts +108 -0
  92. package/dist/src/core/commands/plan.d.ts.map +1 -0
  93. package/dist/src/core/commands/plan.js +621 -0
  94. package/dist/src/core/commands/plan.js.map +1 -0
  95. package/dist/src/core/commands/status.d.ts +72 -0
  96. package/dist/src/core/commands/status.d.ts.map +1 -0
  97. package/dist/src/core/commands/status.js +720 -0
  98. package/dist/src/core/commands/status.js.map +1 -0
  99. package/dist/src/core/commands/validate.d.ts +47 -0
  100. package/dist/src/core/commands/validate.d.ts.map +1 -0
  101. package/dist/src/core/commands/validate.js +608 -0
  102. package/dist/src/core/commands/validate.js.map +1 -0
  103. package/dist/src/core/engine.d.ts +294 -0
  104. package/dist/src/core/engine.d.ts.map +1 -0
  105. package/dist/src/core/engine.js +219 -0
  106. package/dist/src/core/engine.js.map +1 -0
  107. package/dist/src/core/index.d.ts +14 -0
  108. package/dist/src/core/index.d.ts.map +1 -0
  109. package/dist/src/core/index.js +18 -0
  110. package/dist/src/core/index.js.map +1 -0
  111. package/dist/src/core/prompts/context-helpers.d.ts +48 -0
  112. package/dist/src/core/prompts/context-helpers.d.ts.map +1 -0
  113. package/dist/src/core/prompts/context-helpers.js +206 -0
  114. package/dist/src/core/prompts/context-helpers.js.map +1 -0
  115. package/dist/src/core/prompts/discovery.d.ts +11 -0
  116. package/dist/src/core/prompts/discovery.d.ts.map +1 -0
  117. package/dist/src/core/prompts/discovery.js +179 -0
  118. package/dist/src/core/prompts/discovery.js.map +1 -0
  119. package/dist/src/core/prompts/feedback.d.ts +38 -0
  120. package/dist/src/core/prompts/feedback.d.ts.map +1 -0
  121. package/dist/src/core/prompts/feedback.js +292 -0
  122. package/dist/src/core/prompts/feedback.js.map +1 -0
  123. package/dist/src/core/prompts/index.d.ts +12 -0
  124. package/dist/src/core/prompts/index.d.ts.map +1 -0
  125. package/dist/src/core/prompts/index.js +12 -0
  126. package/dist/src/core/prompts/index.js.map +1 -0
  127. package/dist/src/core/prompts/planning.d.ts +15 -0
  128. package/dist/src/core/prompts/planning.d.ts.map +1 -0
  129. package/dist/src/core/prompts/planning.js +293 -0
  130. package/dist/src/core/prompts/planning.js.map +1 -0
  131. package/dist/src/core/prompts/status.d.ts +41 -0
  132. package/dist/src/core/prompts/status.d.ts.map +1 -0
  133. package/dist/src/core/prompts/status.js +270 -0
  134. package/dist/src/core/prompts/status.js.map +1 -0
  135. package/dist/src/core/prompts/validate.d.ts +62 -0
  136. package/dist/src/core/prompts/validate.d.ts.map +1 -0
  137. package/dist/src/core/prompts/validate.js +302 -0
  138. package/dist/src/core/prompts/validate.js.map +1 -0
  139. package/dist/src/core/schemas.d.ts +5045 -0
  140. package/dist/src/core/schemas.d.ts.map +1 -0
  141. package/dist/src/core/schemas.js +492 -0
  142. package/dist/src/core/schemas.js.map +1 -0
  143. package/dist/src/core/state.d.ts +156 -0
  144. package/dist/src/core/state.d.ts.map +1 -0
  145. package/dist/src/core/state.js +608 -0
  146. package/dist/src/core/state.js.map +1 -0
  147. package/dist/src/core/types.d.ts +167 -0
  148. package/dist/src/core/types.d.ts.map +1 -0
  149. package/dist/src/core/types.js +102 -0
  150. package/dist/src/core/types.js.map +1 -0
  151. package/dist/src/core/utils.d.ts +39 -0
  152. package/dist/src/core/utils.d.ts.map +1 -0
  153. package/dist/src/core/utils.js +208 -0
  154. package/dist/src/core/utils.js.map +1 -0
  155. package/package.json +77 -0
@@ -0,0 +1,429 @@
1
+ import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
2
+ import { createTestContext, cleanupTestContext, initializeTestProject, setupDiscoveryComplete, setupMilestonesApproved, } from "./test-helpers.js";
3
+ describe("Plan Script Integration", () => {
4
+ let ctx;
5
+ beforeEach(async () => {
6
+ ctx = await createTestContext();
7
+ await initializeTestProject(ctx);
8
+ vi.spyOn(console, "log").mockImplementation(() => { });
9
+ });
10
+ afterEach(async () => {
11
+ vi.restoreAllMocks();
12
+ await cleanupTestContext(ctx);
13
+ });
14
+ describe("Milestones", () => {
15
+ beforeEach(async () => {
16
+ await setupDiscoveryComplete(ctx);
17
+ });
18
+ describe("show milestones", () => {
19
+ it("should show empty milestones for new project", async () => {
20
+ const index = await ctx.state.readMilestoneIndex();
21
+ expect(index?.milestones).toEqual([]);
22
+ });
23
+ it("should show existing milestones", async () => {
24
+ const index = await ctx.state.readMilestoneIndex();
25
+ index.milestones.push({
26
+ id: "M1",
27
+ slug: "foundation",
28
+ name: "Foundation",
29
+ description: "Core infrastructure",
30
+ order: 1,
31
+ epics: [],
32
+ created: new Date().toISOString(),
33
+ updated: new Date().toISOString(),
34
+ });
35
+ await ctx.state.writeMilestoneIndex(index);
36
+ const updated = await ctx.state.readMilestoneIndex();
37
+ expect(updated?.milestones).toHaveLength(1);
38
+ expect(updated?.milestones[0].name).toBe("Foundation");
39
+ });
40
+ });
41
+ describe("add milestone", () => {
42
+ it("should add milestone to index", async () => {
43
+ const index = await ctx.state.readMilestoneIndex();
44
+ const milestone = {
45
+ id: "M1",
46
+ slug: "foundation",
47
+ name: "Foundation",
48
+ description: "Core infrastructure",
49
+ order: 1,
50
+ epics: [],
51
+ created: new Date().toISOString(),
52
+ updated: new Date().toISOString(),
53
+ };
54
+ index.milestones.push(milestone);
55
+ await ctx.state.writeMilestoneIndex(index);
56
+ const updated = await ctx.state.readMilestoneIndex();
57
+ expect(updated?.milestones).toHaveLength(1);
58
+ });
59
+ it("should increment milestone number", async () => {
60
+ const index = await ctx.state.readMilestoneIndex();
61
+ // Add M1
62
+ index.milestones.push({
63
+ id: "M1",
64
+ slug: "foundation",
65
+ name: "Foundation",
66
+ description: "Core",
67
+ order: 1,
68
+ epics: [],
69
+ created: new Date().toISOString(),
70
+ updated: new Date().toISOString(),
71
+ });
72
+ // Add M2
73
+ index.milestones.push({
74
+ id: "M2",
75
+ slug: "core",
76
+ name: "Core",
77
+ description: "Main features",
78
+ order: 2,
79
+ epics: [],
80
+ created: new Date().toISOString(),
81
+ updated: new Date().toISOString(),
82
+ });
83
+ await ctx.state.writeMilestoneIndex(index);
84
+ const updated = await ctx.state.readMilestoneIndex();
85
+ expect(updated?.milestones).toHaveLength(2);
86
+ expect(updated?.milestones[1].id).toBe("M2");
87
+ });
88
+ });
89
+ describe("project status", () => {
90
+ it("should update project status", async () => {
91
+ await ctx.state.updateProject({ status: "active" });
92
+ const project = await ctx.state.readProject();
93
+ expect(project?.status).toBe("active");
94
+ });
95
+ });
96
+ });
97
+ describe("Epics", () => {
98
+ beforeEach(async () => {
99
+ await setupDiscoveryComplete(ctx);
100
+ await setupMilestonesApproved(ctx);
101
+ });
102
+ describe("add epic", () => {
103
+ it("should create epic directory", async () => {
104
+ await ctx.state.createEpicDir("E1", "auth");
105
+ const dirs = await ctx.state.listEpicDirs();
106
+ expect(dirs).toContain("E1-auth");
107
+ });
108
+ it("should create epic metadata", async () => {
109
+ await ctx.state.createEpicDir("E1", "auth");
110
+ const epic = {
111
+ id: "E1",
112
+ slug: "auth",
113
+ name: "Authentication",
114
+ description: "User auth",
115
+ milestone: "M1",
116
+ deferred: false,
117
+ created: new Date().toISOString(),
118
+ updated: new Date().toISOString(),
119
+ artifacts: {
120
+ prd: { status: "pending", version: 1 },
121
+ architecture: { status: "pending", version: 1 },
122
+ stories: { status: "pending", count: 0 },
123
+ },
124
+ dependencies: [],
125
+ stats: { requirements: 0, stories: 0, coverage: 0 },
126
+ };
127
+ await ctx.state.writeEpic(epic);
128
+ const read = await ctx.state.readEpic("E1", "auth");
129
+ expect(read?.name).toBe("Authentication");
130
+ expect(read?.milestone).toBe("M1");
131
+ });
132
+ it("should update milestone with epic reference", async () => {
133
+ await ctx.state.createEpicDir("E1", "auth");
134
+ const index = await ctx.state.readMilestoneIndex();
135
+ index.milestones[0].epics.push("E1");
136
+ await ctx.state.writeMilestoneIndex(index);
137
+ const updated = await ctx.state.readMilestoneIndex();
138
+ expect(updated?.milestones[0].epics).toContain("E1");
139
+ });
140
+ });
141
+ describe("plan epic", () => {
142
+ it("should track artifact status", async () => {
143
+ await ctx.state.createEpicDir("E1", "auth");
144
+ const epic = {
145
+ id: "E1",
146
+ slug: "auth",
147
+ name: "Auth",
148
+ description: "Auth",
149
+ milestone: "M1",
150
+ deferred: false,
151
+ created: new Date().toISOString(),
152
+ updated: new Date().toISOString(),
153
+ artifacts: {
154
+ prd: { status: "in_progress", version: 1 },
155
+ architecture: { status: "pending", version: 1 },
156
+ stories: { status: "pending", count: 0 },
157
+ },
158
+ dependencies: [],
159
+ stats: { requirements: 0, stories: 0, coverage: 0 },
160
+ };
161
+ await ctx.state.writeEpic(epic);
162
+ const read = await ctx.state.readEpic("E1", "auth");
163
+ expect(read?.artifacts.prd.status).toBe("in_progress");
164
+ });
165
+ });
166
+ });
167
+ describe("PRD", () => {
168
+ beforeEach(async () => {
169
+ await setupDiscoveryComplete(ctx);
170
+ await setupMilestonesApproved(ctx);
171
+ await ctx.state.createEpicDir("E1", "auth");
172
+ });
173
+ it("should save PRD content", async () => {
174
+ const prdContent = `# E1: Authentication
175
+
176
+ ## Overview
177
+ User authentication system.
178
+
179
+ ## Requirements
180
+
181
+ ### R1: User Login
182
+ Users can log in.
183
+
184
+ **Acceptance Criteria:**
185
+ - [ ] Login form
186
+ - [ ] Validation
187
+ `;
188
+ await ctx.state.writePrd("E1", "auth", prdContent);
189
+ const read = await ctx.state.readPrd("E1", "auth");
190
+ expect(read).toContain("# E1: Authentication");
191
+ expect(read).toContain("### R1: User Login");
192
+ });
193
+ it("should update epic status after PRD", async () => {
194
+ const epic = await ctx.state.readEpic("E1", "auth");
195
+ if (!epic) {
196
+ const newEpic = {
197
+ id: "E1",
198
+ slug: "auth",
199
+ name: "Auth",
200
+ description: "Auth",
201
+ milestone: "M1",
202
+ deferred: false,
203
+ created: new Date().toISOString(),
204
+ updated: new Date().toISOString(),
205
+ artifacts: {
206
+ prd: { status: "complete", version: 1, last_updated: new Date().toISOString() },
207
+ architecture: { status: "pending", version: 0 },
208
+ stories: { status: "pending", count: 0 },
209
+ },
210
+ dependencies: [],
211
+ stats: { requirements: 2, stories: 0, coverage: 0 },
212
+ };
213
+ await ctx.state.writeEpic(newEpic);
214
+ }
215
+ const updated = await ctx.state.readEpic("E1", "auth");
216
+ expect(updated?.artifacts.prd.status).toBe("complete");
217
+ });
218
+ });
219
+ describe("Architecture", () => {
220
+ beforeEach(async () => {
221
+ await setupDiscoveryComplete(ctx);
222
+ await setupMilestonesApproved(ctx);
223
+ await ctx.state.createEpicDir("E1", "auth");
224
+ });
225
+ it("should save architecture content", async () => {
226
+ const archContent = `# Architecture
227
+
228
+ ## Data Model
229
+ User table.
230
+
231
+ ## API
232
+ POST /auth/login
233
+ `;
234
+ await ctx.state.writeArchitecture("E1", "auth", archContent);
235
+ const read = await ctx.state.readArchitecture("E1", "auth");
236
+ expect(read).toContain("# Architecture");
237
+ expect(read).toContain("POST /auth/login");
238
+ });
239
+ });
240
+ describe("Stories", () => {
241
+ beforeEach(async () => {
242
+ await setupDiscoveryComplete(ctx);
243
+ await setupMilestonesApproved(ctx);
244
+ await ctx.state.createEpicDir("E1", "auth");
245
+ });
246
+ it("should save stories file", async () => {
247
+ const stories = {
248
+ epic_id: "E1",
249
+ stories: [
250
+ {
251
+ id: "E1.S1",
252
+ title: "Login API",
253
+ description: "Create login",
254
+ type: "feature",
255
+ requirements: ["E1.R1"],
256
+ acceptance_criteria: ["Works"],
257
+ dependencies: [],
258
+ status: "todo",
259
+ assignee: null,
260
+ },
261
+ ],
262
+ coverage: { "E1.R1": ["E1.S1"] },
263
+ validation: { coverage_complete: true, all_links_valid: true },
264
+ };
265
+ await ctx.state.writeStories("E1", "auth", stories);
266
+ const read = await ctx.state.readStories("E1", "auth");
267
+ expect(read?.stories).toHaveLength(1);
268
+ expect(read?.stories[0].title).toBe("Login API");
269
+ });
270
+ it("should track coverage mapping", async () => {
271
+ const stories = {
272
+ epic_id: "E1",
273
+ stories: [
274
+ {
275
+ id: "E1.S1",
276
+ title: "Story 1",
277
+ description: "Desc",
278
+ type: "feature",
279
+ requirements: ["E1.R1"],
280
+ acceptance_criteria: [],
281
+ dependencies: [],
282
+ status: "todo",
283
+ assignee: null,
284
+ },
285
+ {
286
+ id: "E1.S2",
287
+ title: "Story 2",
288
+ description: "Desc",
289
+ type: "feature",
290
+ requirements: ["E1.R1", "E1.R2"],
291
+ acceptance_criteria: [],
292
+ dependencies: [],
293
+ status: "todo",
294
+ assignee: null,
295
+ },
296
+ ],
297
+ coverage: {
298
+ "E1.R1": ["E1.S1", "E1.S2"],
299
+ "E1.R2": ["E1.S2"],
300
+ },
301
+ validation: { coverage_complete: true, all_links_valid: true },
302
+ };
303
+ await ctx.state.writeStories("E1", "auth", stories);
304
+ const read = await ctx.state.readStories("E1", "auth");
305
+ expect(read?.coverage["E1.R1"]).toHaveLength(2);
306
+ expect(read?.coverage["E1.R2"]).toHaveLength(1);
307
+ });
308
+ it("should update project stats", async () => {
309
+ const project = await ctx.state.readProject();
310
+ project.stats.stories = 5;
311
+ await ctx.state.writeProject(project);
312
+ const updated = await ctx.state.readProject();
313
+ expect(updated?.stats.stories).toBe(5);
314
+ });
315
+ });
316
+ describe("PRD with Epic Discovery", () => {
317
+ beforeEach(async () => {
318
+ await setupDiscoveryComplete(ctx);
319
+ await setupMilestonesApproved(ctx);
320
+ await ctx.state.createEpicDir("E1", "auth");
321
+ // Create epic
322
+ const epic = {
323
+ id: "E1",
324
+ slug: "auth",
325
+ name: "Authentication",
326
+ description: "User authentication",
327
+ milestone: "M1",
328
+ deferred: false,
329
+ created: new Date().toISOString(),
330
+ updated: new Date().toISOString(),
331
+ artifacts: {
332
+ prd: { status: "pending", version: 0 },
333
+ architecture: { status: "pending", version: 0 },
334
+ stories: { status: "pending", count: 0 },
335
+ },
336
+ dependencies: [],
337
+ stats: { requirements: 0, stories: 0, coverage: 0 },
338
+ };
339
+ await ctx.state.writeEpic(epic);
340
+ });
341
+ it("should read epic discovery when planning", async () => {
342
+ // Create epic discovery
343
+ const discovery = {
344
+ element_type: "epic",
345
+ element_id: "E1",
346
+ problem: "Users need secure authentication",
347
+ scope: ["Login", "Logout", "Password reset"],
348
+ out_of_scope: ["OAuth integration", "2FA"],
349
+ success_criteria: ["Users can log in securely", "Session management works"],
350
+ constraints: [
351
+ { id: "C1", type: "technical", constraint: "Must use JWT tokens", impact: [] },
352
+ ],
353
+ history: [],
354
+ status: "complete",
355
+ source: "user_added",
356
+ created: new Date().toISOString(),
357
+ updated: new Date().toISOString(),
358
+ };
359
+ await ctx.state.writeEpicDiscovery("E1", "auth", discovery);
360
+ // Verify discovery is readable
361
+ const read = await ctx.state.readEpicDiscovery("E1", "auth");
362
+ expect(read).not.toBeNull();
363
+ expect(read?.problem).toBe("Users need secure authentication");
364
+ expect(read?.scope).toHaveLength(3);
365
+ expect(read?.out_of_scope).toHaveLength(2);
366
+ expect(read?.success_criteria).toHaveLength(2);
367
+ expect(read?.constraints).toHaveLength(1);
368
+ });
369
+ it("should have both project and epic context available for PRD", async () => {
370
+ // Create epic discovery
371
+ const epicDiscovery = {
372
+ element_type: "epic",
373
+ element_id: "E1",
374
+ problem: "Users need authentication",
375
+ scope: ["Login"],
376
+ out_of_scope: [],
377
+ success_criteria: ["Users can log in"],
378
+ constraints: [],
379
+ history: [],
380
+ status: "complete",
381
+ source: "user_added",
382
+ created: new Date().toISOString(),
383
+ updated: new Date().toISOString(),
384
+ };
385
+ await ctx.state.writeEpicDiscovery("E1", "auth", epicDiscovery);
386
+ // Read both contexts
387
+ const projectContext = await ctx.state.readDiscoveryContext();
388
+ const epicContext = await ctx.state.readEpicDiscovery("E1", "auth");
389
+ // Both should be available
390
+ expect(projectContext).not.toBeNull();
391
+ expect(projectContext?.problem).toBeDefined();
392
+ expect(epicContext).not.toBeNull();
393
+ expect(epicContext?.problem).toBe("Users need authentication");
394
+ });
395
+ it("should work without epic discovery (backward compatible)", async () => {
396
+ // No epic discovery created
397
+ const epicDiscovery = await ctx.state.readEpicDiscovery("E1", "auth");
398
+ expect(epicDiscovery).toBeNull();
399
+ // Project context should still work
400
+ const projectContext = await ctx.state.readDiscoveryContext();
401
+ expect(projectContext).not.toBeNull();
402
+ // Epic should still be readable
403
+ const epic = await ctx.state.readEpic("E1", "auth");
404
+ expect(epic).not.toBeNull();
405
+ });
406
+ it("should handle skipped discovery status", async () => {
407
+ const discovery = {
408
+ element_type: "epic",
409
+ element_id: "E1",
410
+ scope: [],
411
+ out_of_scope: [],
412
+ success_criteria: [],
413
+ constraints: [],
414
+ history: [],
415
+ status: "skipped",
416
+ source: "user_added",
417
+ created: new Date().toISOString(),
418
+ updated: new Date().toISOString(),
419
+ };
420
+ await ctx.state.writeEpicDiscovery("E1", "auth", discovery);
421
+ const read = await ctx.state.readEpicDiscovery("E1", "auth");
422
+ expect(read?.status).toBe("skipped");
423
+ // Skipped discovery has no context to use
424
+ expect(read?.problem).toBeUndefined();
425
+ expect(read?.scope).toHaveLength(0);
426
+ });
427
+ });
428
+ });
429
+ //# sourceMappingURL=plan.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.test.js","sourceRoot":"","sources":["../../../../src/core/__tests__/plan.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=schemas.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.test.d.ts","sourceRoot":"","sources":["../../../../src/core/__tests__/schemas.test.ts"],"names":[],"mappings":""}