@zigrivers/scaffold 3.17.0 → 3.18.1

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 (63) hide show
  1. package/dist/cli/commands/next.d.ts.map +1 -1
  2. package/dist/cli/commands/next.js +3 -1
  3. package/dist/cli/commands/next.js.map +1 -1
  4. package/dist/cli/commands/next.test.js +47 -9
  5. package/dist/cli/commands/next.test.js.map +1 -1
  6. package/dist/cli/commands/run.d.ts.map +1 -1
  7. package/dist/cli/commands/run.js +6 -3
  8. package/dist/cli/commands/run.js.map +1 -1
  9. package/dist/cli/commands/run.test.js +80 -6
  10. package/dist/cli/commands/run.test.js.map +1 -1
  11. package/dist/cli/commands/status.d.ts.map +1 -1
  12. package/dist/cli/commands/status.js +3 -1
  13. package/dist/cli/commands/status.js.map +1 -1
  14. package/dist/cli/commands/status.test.js +17 -6
  15. package/dist/cli/commands/status.test.js.map +1 -1
  16. package/dist/core/assembly/cross-reads.d.ts +4 -1
  17. package/dist/core/assembly/cross-reads.d.ts.map +1 -1
  18. package/dist/core/assembly/cross-reads.js +8 -3
  19. package/dist/core/assembly/cross-reads.js.map +1 -1
  20. package/dist/core/assembly/cross-reads.test.js +114 -0
  21. package/dist/core/assembly/cross-reads.test.js.map +1 -1
  22. package/dist/core/assembly/overlay-loader-structural.test.js +59 -0
  23. package/dist/core/assembly/overlay-loader-structural.test.js.map +1 -1
  24. package/dist/core/assembly/overlay-loader.d.ts +3 -1
  25. package/dist/core/assembly/overlay-loader.d.ts.map +1 -1
  26. package/dist/core/assembly/overlay-loader.js +61 -5
  27. package/dist/core/assembly/overlay-loader.js.map +1 -1
  28. package/dist/core/assembly/overlay-loader.test.js +204 -1
  29. package/dist/core/assembly/overlay-loader.test.js.map +1 -1
  30. package/dist/core/assembly/overlay-resolver.d.ts +8 -1
  31. package/dist/core/assembly/overlay-resolver.d.ts.map +1 -1
  32. package/dist/core/assembly/overlay-resolver.js +32 -1
  33. package/dist/core/assembly/overlay-resolver.js.map +1 -1
  34. package/dist/core/assembly/overlay-resolver.test.js +135 -17
  35. package/dist/core/assembly/overlay-resolver.test.js.map +1 -1
  36. package/dist/core/assembly/overlay-state-resolver.d.ts +6 -2
  37. package/dist/core/assembly/overlay-state-resolver.d.ts.map +1 -1
  38. package/dist/core/assembly/overlay-state-resolver.js +11 -6
  39. package/dist/core/assembly/overlay-state-resolver.js.map +1 -1
  40. package/dist/core/assembly/overlay-state-resolver.test.js +72 -13
  41. package/dist/core/assembly/overlay-state-resolver.test.js.map +1 -1
  42. package/dist/core/dependency/graph.test.js +19 -0
  43. package/dist/core/dependency/graph.test.js.map +1 -1
  44. package/dist/core/pipeline/resolver.d.ts.map +1 -1
  45. package/dist/core/pipeline/resolver.js +3 -1
  46. package/dist/core/pipeline/resolver.js.map +1 -1
  47. package/dist/core/pipeline/resolver.test.js +51 -1
  48. package/dist/core/pipeline/resolver.test.js.map +1 -1
  49. package/dist/e2e/cross-service-references.test.js +42 -0
  50. package/dist/e2e/cross-service-references.test.js.map +1 -1
  51. package/dist/types/config.d.ts +8 -0
  52. package/dist/types/config.d.ts.map +1 -1
  53. package/dist/types/config.test.js +49 -0
  54. package/dist/types/config.test.js.map +1 -1
  55. package/dist/types/dependency.d.ts +5 -1
  56. package/dist/types/dependency.d.ts.map +1 -1
  57. package/dist/utils/errors.d.ts +2 -0
  58. package/dist/utils/errors.d.ts.map +1 -1
  59. package/dist/utils/errors.js +16 -0
  60. package/dist/utils/errors.js.map +1 -1
  61. package/dist/utils/errors.test.js +27 -1
  62. package/dist/utils/errors.test.js.map +1 -1
  63. package/package.json +1 -1
@@ -9,6 +9,7 @@ function makeOverlay(overrides = {}) {
9
9
  knowledgeOverrides: {},
10
10
  readsOverrides: {},
11
11
  dependencyOverrides: {},
12
+ crossReadsOverrides: {},
12
13
  ...overrides,
13
14
  };
14
15
  }
@@ -25,7 +26,7 @@ describe('applyOverlay', () => {
25
26
  'game-design-document': { enabled: true },
26
27
  },
27
28
  });
28
- const result = applyOverlay(steps, {}, {}, {}, overlay);
29
+ const result = applyOverlay(steps, {}, {}, {}, {}, overlay);
29
30
  expect(result.steps['design-system']).toEqual({ enabled: false });
30
31
  expect(result.steps['game-design-document']).toEqual({ enabled: true });
31
32
  expect(result.steps['create-prd']).toEqual({ enabled: true });
@@ -39,7 +40,7 @@ describe('applyOverlay', () => {
39
40
  'step-a': { enabled: false },
40
41
  },
41
42
  });
42
- const result = applyOverlay(steps, {}, {}, {}, overlay);
43
+ const result = applyOverlay(steps, {}, {}, {}, {}, overlay);
43
44
  expect(result.steps['step-a']).toEqual({ enabled: false, conditional: 'if-needed' });
44
45
  });
45
46
  it('preserves conditional field from overlay', () => {
@@ -51,7 +52,7 @@ describe('applyOverlay', () => {
51
52
  'optional-step': { enabled: true, conditional: 'if-needed' },
52
53
  },
53
54
  });
54
- const result = applyOverlay(steps, {}, {}, {}, overlay);
55
+ const result = applyOverlay(steps, {}, {}, {}, {}, overlay);
55
56
  expect(result.steps['optional-step']).toEqual({ enabled: true, conditional: 'if-needed' });
56
57
  });
57
58
  });
@@ -65,7 +66,7 @@ describe('applyOverlay', () => {
65
66
  'tech-stack': { append: ['game-engine-selection'] },
66
67
  },
67
68
  });
68
- const result = applyOverlay({}, knowledgeMap, {}, {}, overlay);
69
+ const result = applyOverlay({}, knowledgeMap, {}, {}, {}, overlay);
69
70
  expect(result.knowledge['tech-stack']).toEqual([
70
71
  'tech-stack-selection',
71
72
  'game-engine-selection',
@@ -80,7 +81,7 @@ describe('applyOverlay', () => {
80
81
  'tech-stack': { append: ['game-engine-selection'] },
81
82
  },
82
83
  });
83
- const result = applyOverlay({}, knowledgeMap, {}, {}, overlay);
84
+ const result = applyOverlay({}, knowledgeMap, {}, {}, {}, overlay);
84
85
  expect(result.knowledge['tech-stack']).toEqual([
85
86
  'tech-stack-selection',
86
87
  'game-engine-selection',
@@ -97,7 +98,7 @@ describe('applyOverlay', () => {
97
98
  'story-tests': { replace: { 'ux-spec': 'game-ui-spec' } },
98
99
  },
99
100
  });
100
- const result = applyOverlay({}, {}, readsMap, {}, overlay);
101
+ const result = applyOverlay({}, {}, readsMap, {}, {}, overlay);
101
102
  expect(result.reads['story-tests']).toEqual(['game-ui-spec', 'user-stories']);
102
103
  });
103
104
  it('appends new reads entries', () => {
@@ -109,7 +110,7 @@ describe('applyOverlay', () => {
109
110
  'story-tests': { append: ['game-mechanics'] },
110
111
  },
111
112
  });
112
- const result = applyOverlay({}, {}, readsMap, {}, overlay);
113
+ const result = applyOverlay({}, {}, readsMap, {}, {}, overlay);
113
114
  expect(result.reads['story-tests']).toEqual(['ux-spec', 'game-mechanics']);
114
115
  });
115
116
  it('deduplicates after replace and append', () => {
@@ -124,7 +125,7 @@ describe('applyOverlay', () => {
124
125
  },
125
126
  },
126
127
  });
127
- const result = applyOverlay({}, {}, readsMap, {}, overlay);
128
+ const result = applyOverlay({}, {}, readsMap, {}, {}, overlay);
128
129
  // user-stories should appear only once
129
130
  expect(result.reads['story-tests']).toEqual(['user-stories']);
130
131
  });
@@ -139,7 +140,7 @@ describe('applyOverlay', () => {
139
140
  'user-stories': { append: ['review-gdd'] },
140
141
  },
141
142
  });
142
- const result = applyOverlay({}, {}, {}, dependencyMap, overlay);
143
+ const result = applyOverlay({}, {}, {}, dependencyMap, {}, overlay);
143
144
  expect(result.dependencies['user-stories']).toEqual(['review-prd', 'review-gdd']);
144
145
  });
145
146
  it('replaces dependencies', () => {
@@ -151,7 +152,7 @@ describe('applyOverlay', () => {
151
152
  'user-stories': { replace: { 'review-prd': 'review-gdd' } },
152
153
  },
153
154
  });
154
- const result = applyOverlay({}, {}, {}, dependencyMap, overlay);
155
+ const result = applyOverlay({}, {}, {}, dependencyMap, {}, overlay);
155
156
  expect(result.dependencies['user-stories']).toEqual(['review-gdd']);
156
157
  });
157
158
  it('deduplicates after replace and append', () => {
@@ -166,7 +167,7 @@ describe('applyOverlay', () => {
166
167
  },
167
168
  },
168
169
  });
169
- const result = applyOverlay({}, {}, {}, dependencyMap, overlay);
170
+ const result = applyOverlay({}, {}, {}, dependencyMap, {}, overlay);
170
171
  expect(result.dependencies['user-stories']).toEqual(['review-gdd']);
171
172
  });
172
173
  });
@@ -177,7 +178,7 @@ describe('applyOverlay', () => {
177
178
  const reads = { 'story-tests': ['ux-spec'] };
178
179
  const deps = { 'user-stories': ['review-prd'] };
179
180
  const overlay = makeOverlay();
180
- const result = applyOverlay(steps, knowledge, reads, deps, overlay);
181
+ const result = applyOverlay(steps, knowledge, reads, deps, {}, overlay);
181
182
  expect(result.steps).toEqual(steps);
182
183
  expect(result.knowledge).toEqual(knowledge);
183
184
  expect(result.reads).toEqual(reads);
@@ -190,7 +191,7 @@ describe('applyOverlay', () => {
190
191
  const overlay = makeOverlay({
191
192
  stepOverrides: { 'totally-new-step': { enabled: true } },
192
193
  });
193
- const result = applyOverlay(steps, {}, {}, {}, overlay);
194
+ const result = applyOverlay(steps, {}, {}, {}, {}, overlay);
194
195
  expect(result.steps['totally-new-step']).toEqual({ enabled: true });
195
196
  expect(result.steps['create-prd']).toEqual({ enabled: true });
196
197
  });
@@ -200,7 +201,7 @@ describe('applyOverlay', () => {
200
201
  'new-step': { append: ['new-knowledge'] },
201
202
  },
202
203
  });
203
- const result = applyOverlay({}, {}, {}, {}, overlay);
204
+ const result = applyOverlay({}, {}, {}, {}, {}, overlay);
204
205
  expect(result.knowledge['new-step']).toEqual(['new-knowledge']);
205
206
  });
206
207
  it('silently adds reads for unknown steps', () => {
@@ -209,7 +210,7 @@ describe('applyOverlay', () => {
209
210
  'new-step': { append: ['some-doc'] },
210
211
  },
211
212
  });
212
- const result = applyOverlay({}, {}, {}, {}, overlay);
213
+ const result = applyOverlay({}, {}, {}, {}, {}, overlay);
213
214
  expect(result.reads['new-step']).toEqual(['some-doc']);
214
215
  });
215
216
  it('silently adds dependencies for unknown steps', () => {
@@ -218,7 +219,7 @@ describe('applyOverlay', () => {
218
219
  'new-step': { append: ['some-dep'] },
219
220
  },
220
221
  });
221
- const result = applyOverlay({}, {}, {}, {}, overlay);
222
+ const result = applyOverlay({}, {}, {}, {}, {}, overlay);
222
223
  expect(result.dependencies['new-step']).toEqual(['some-dep']);
223
224
  });
224
225
  });
@@ -234,7 +235,7 @@ describe('applyOverlay', () => {
234
235
  readsOverrides: { 'story-tests': { append: ['new-read'] } },
235
236
  dependencyOverrides: { 'user-stories': { append: ['new-dep'] } },
236
237
  });
237
- applyOverlay(steps, knowledge, reads, deps, overlay);
238
+ applyOverlay(steps, knowledge, reads, deps, {}, overlay);
238
239
  // Original inputs should be unchanged
239
240
  expect(steps).toEqual({ 'create-prd': { enabled: true } });
240
241
  expect(knowledge).toEqual({ 'tech-stack': ['tech-stack-selection'] });
@@ -243,4 +244,121 @@ describe('applyOverlay', () => {
243
244
  });
244
245
  });
245
246
  });
247
+ describe('applyOverlay crossReads (Wave 3c+1)', () => {
248
+ function baseOverlay() {
249
+ return {
250
+ name: 'test',
251
+ description: 'desc',
252
+ stepOverrides: {},
253
+ knowledgeOverrides: {},
254
+ readsOverrides: {},
255
+ dependencyOverrides: {},
256
+ crossReadsOverrides: {},
257
+ };
258
+ }
259
+ it('appends to empty crossReadsMap[step]', () => {
260
+ const result = applyOverlay({}, {}, {}, {}, {}, // empty crossReadsMap
261
+ {
262
+ ...baseOverlay(),
263
+ crossReadsOverrides: {
264
+ 'system-architecture': {
265
+ append: [{ service: 'billing', step: 'api-contracts' }],
266
+ },
267
+ },
268
+ });
269
+ expect(result.crossReads['system-architecture']).toEqual([
270
+ { service: 'billing', step: 'api-contracts' },
271
+ ]);
272
+ });
273
+ it('appends to existing frontmatter crossReads (preserves originals + adds new)', () => {
274
+ const result = applyOverlay({}, {}, {}, {}, {
275
+ 'system-architecture': [{ service: 'shared-lib', step: 'api-contracts' }],
276
+ }, {
277
+ ...baseOverlay(),
278
+ crossReadsOverrides: {
279
+ 'system-architecture': {
280
+ append: [{ service: 'billing', step: 'api-contracts' }],
281
+ },
282
+ },
283
+ });
284
+ expect(result.crossReads['system-architecture']).toEqual([
285
+ { service: 'shared-lib', step: 'api-contracts' },
286
+ { service: 'billing', step: 'api-contracts' },
287
+ ]);
288
+ });
289
+ it('dedupes by service:step pair (preserving first occurrence)', () => {
290
+ const result = applyOverlay({}, {}, {}, {}, {
291
+ 'system-architecture': [{ service: 'shared-lib', step: 'api-contracts' }],
292
+ }, {
293
+ ...baseOverlay(),
294
+ crossReadsOverrides: {
295
+ 'system-architecture': {
296
+ append: [
297
+ { service: 'shared-lib', step: 'api-contracts' }, // duplicate of frontmatter
298
+ { service: 'billing', step: 'api-contracts' }, // new
299
+ ],
300
+ },
301
+ },
302
+ });
303
+ expect(result.crossReads['system-architecture']).toEqual([
304
+ { service: 'shared-lib', step: 'api-contracts' }, // first occurrence
305
+ { service: 'billing', step: 'api-contracts' },
306
+ ]);
307
+ });
308
+ it('first-occurrence dedup: interleaved duplicates preserve insertion order', () => {
309
+ // frontmatter: [A]
310
+ // append: [B, A-dup, C] (A-dup comes after B in the merged list)
311
+ // First-occurrence result: [A, B, C] — A kept from frontmatter (earliest)
312
+ // Last-occurrence result would be: [B, A, C] — different order
313
+ // This test distinguishes the two dedup strategies by ordering.
314
+ const result = applyOverlay({}, {}, {}, {}, {
315
+ 'system-architecture': [{ service: 'shared-lib', step: 'api-contracts' }],
316
+ }, {
317
+ ...baseOverlay(),
318
+ crossReadsOverrides: {
319
+ 'system-architecture': {
320
+ append: [
321
+ { service: 'billing', step: 'api-contracts' },
322
+ { service: 'shared-lib', step: 'api-contracts' }, // dup of frontmatter's A
323
+ { service: 'inventory', step: 'domain-modeling' },
324
+ ],
325
+ },
326
+ },
327
+ });
328
+ // Must be [A, B, C], not [B, A, C]
329
+ expect(result.crossReads['system-architecture']).toEqual([
330
+ { service: 'shared-lib', step: 'api-contracts' }, // A — first, from frontmatter
331
+ { service: 'billing', step: 'api-contracts' }, // B
332
+ { service: 'inventory', step: 'domain-modeling' }, // C
333
+ ]);
334
+ });
335
+ it('result entries are deep copies — mutating result does not affect inputs', () => {
336
+ const frontmatterEntry = { service: 'shared-lib', step: 'api-contracts' };
337
+ const frontmatterMap = { 'system-architecture': [frontmatterEntry] };
338
+ const appendEntry = { service: 'billing', step: 'api-contracts' };
339
+ const result = applyOverlay({}, {}, {}, {}, frontmatterMap, {
340
+ ...baseOverlay(),
341
+ crossReadsOverrides: {
342
+ 'system-architecture': { append: [appendEntry] },
343
+ },
344
+ });
345
+ // Mutate the returned entries
346
+ result.crossReads['system-architecture'][0].service = 'mutated';
347
+ result.crossReads['system-architecture'][1].service = 'mutated';
348
+ // Inputs must be untouched (deep-copy guarantee)
349
+ expect(frontmatterEntry.service).toBe('shared-lib');
350
+ expect(appendEntry.service).toBe('billing');
351
+ });
352
+ it('applies overrides across multiple steps without cross-contamination', () => {
353
+ const result = applyOverlay({}, {}, {}, {}, {}, {
354
+ ...baseOverlay(),
355
+ crossReadsOverrides: {
356
+ 'system-architecture': { append: [{ service: 'a', step: 'x' }] },
357
+ 'api-contracts': { append: [{ service: 'b', step: 'y' }] },
358
+ },
359
+ });
360
+ expect(result.crossReads['system-architecture']).toEqual([{ service: 'a', step: 'x' }]);
361
+ expect(result.crossReads['api-contracts']).toEqual([{ service: 'b', step: 'y' }]);
362
+ });
363
+ });
246
364
  //# sourceMappingURL=overlay-resolver.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"overlay-resolver.test.js","sourceRoot":"","sources":["../../../src/core/assembly/overlay-resolver.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGpD,SAAS,WAAW,CAAC,YAAsC,EAAE;IAC3D,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE,MAAM;QACnB,aAAa,EAAE,EAAE;QACjB,kBAAkB,EAAE,EAAE;QACtB,cAAc,EAAE,EAAE;QAClB,mBAAmB,EAAE,EAAE;QACvB,GAAG,SAAS;KACb,CAAA;AACH,CAAC;AAED,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,KAAK,GAAwC;gBACjD,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;gBAClC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;aAChC,CAAA;YACD,MAAM,OAAO,GAAG,WAAW,CAAC;gBAC1B,aAAa,EAAE;oBACb,eAAe,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;oBACnC,sBAAsB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;iBAC1C;aACF,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;YAEvD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;YACjE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;YACvE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;YAC/E,MAAM,KAAK,GAAwC;gBACjD,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE;aACtD,CAAA;YACD,MAAM,OAAO,GAAG,WAAW,CAAC;gBAC1B,aAAa,EAAE;oBACb,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;iBAC7B;aACF,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;YAEvD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAA;QACtF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,KAAK,GAAwC;gBACjD,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;aAChC,CAAA;YACD,MAAM,OAAO,GAAG,WAAW,CAAC;gBAC1B,aAAa,EAAE;oBACb,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE;iBAC7D;aACF,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;YAEvD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAA;QAC5F,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,YAAY,GAA6B;gBAC7C,YAAY,EAAE,CAAC,sBAAsB,CAAC;aACvC,CAAA;YACD,MAAM,OAAO,GAAG,WAAW,CAAC;gBAC1B,kBAAkB,EAAE;oBAClB,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,uBAAuB,CAAC,EAAE;iBACpD;aACF,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;YAE9D,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC7C,sBAAsB;gBACtB,uBAAuB;aACxB,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,YAAY,GAA6B;gBAC7C,YAAY,EAAE,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;aAChE,CAAA;YACD,MAAM,OAAO,GAAG,WAAW,CAAC;gBAC1B,kBAAkB,EAAE;oBAClB,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,uBAAuB,CAAC,EAAE;iBACpD;aACF,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;YAE9D,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC7C,sBAAsB;gBACtB,uBAAuB;aACxB,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,QAAQ,GAA6B;gBACzC,aAAa,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC;aAC3C,CAAA;YACD,MAAM,OAAO,GAAG,WAAW,CAAC;gBAC1B,cAAc,EAAE;oBACd,aAAa,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE;iBAC1D;aACF,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;YAE1D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAA;QAC/E,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,QAAQ,GAA6B;gBACzC,aAAa,EAAE,CAAC,SAAS,CAAC;aAC3B,CAAA;YACD,MAAM,OAAO,GAAG,WAAW,CAAC;gBAC1B,cAAc,EAAE;oBACd,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,EAAE;iBAC9C;aACF,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;YAE1D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAA;QAC5E,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,QAAQ,GAA6B;gBACzC,aAAa,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC;aAC3C,CAAA;YACD,MAAM,OAAO,GAAG,WAAW,CAAC;gBAC1B,cAAc,EAAE;oBACd,aAAa,EAAE;wBACb,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,EAAG,gDAAgD;wBACzF,MAAM,EAAE,CAAC,cAAc,CAAC,EAAoB,wBAAwB;qBACrE;iBACF;aACF,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;YAE1D,uCAAuC;YACvC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAA;QAC/D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,aAAa,GAA6B;gBAC9C,cAAc,EAAE,CAAC,YAAY,CAAC;aAC/B,CAAA;YACD,MAAM,OAAO,GAAG,WAAW,CAAC;gBAC1B,mBAAmB,EAAE;oBACnB,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE;iBAC3C;aACF,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;YAE/D,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAA;QACnF,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC/B,MAAM,aAAa,GAA6B;gBAC9C,cAAc,EAAE,CAAC,YAAY,CAAC;aAC/B,CAAA;YACD,MAAM,OAAO,GAAG,WAAW,CAAC;gBAC1B,mBAAmB,EAAE;oBACnB,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE;iBAC5D;aACF,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;YAE/D,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAA;QACrE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,aAAa,GAA6B;gBAC9C,cAAc,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;aAC7C,CAAA;YACD,MAAM,OAAO,GAAG,WAAW,CAAC;gBAC1B,mBAAmB,EAAE;oBACnB,cAAc,EAAE;wBACd,OAAO,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE;wBACvC,MAAM,EAAE,CAAC,YAAY,CAAC;qBACvB;iBACF;aACF,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;YAE/D,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAA;QACrE,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,KAAK,GAAG,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAA;YACjD,MAAM,SAAS,GAAG,EAAE,YAAY,EAAE,CAAC,sBAAsB,CAAC,EAAE,CAAA;YAC5D,MAAM,KAAK,GAAG,EAAE,aAAa,EAAE,CAAC,SAAS,CAAC,EAAE,CAAA;YAC5C,MAAM,IAAI,GAAG,EAAE,cAAc,EAAE,CAAC,YAAY,CAAC,EAAE,CAAA;YAC/C,MAAM,OAAO,GAAG,WAAW,EAAE,CAAA;YAE7B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;YAEnE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YAC3C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,KAAK,GAAG,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAA;YACjD,MAAM,OAAO,GAAG,WAAW,CAAC;gBAC1B,aAAa,EAAE,EAAE,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;aACzD,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;YAEvD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;YACnE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,OAAO,GAAG,WAAW,CAAC;gBAC1B,kBAAkB,EAAE;oBAClB,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,eAAe,CAAC,EAAE;iBAC1C;aACF,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;YAEpD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAA;QACjE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,OAAO,GAAG,WAAW,CAAC;gBAC1B,cAAc,EAAE;oBACd,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE;iBACrC;aACF,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;YAEpD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;QACxD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,OAAO,GAAG,WAAW,CAAC;gBAC1B,mBAAmB,EAAE;oBACnB,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE;iBACrC;aACF,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;YAEpD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;QAC/D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,KAAK,GAAG,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAA;YACjD,MAAM,SAAS,GAAG,EAAE,YAAY,EAAE,CAAC,sBAAsB,CAAC,EAAE,CAAA;YAC5D,MAAM,KAAK,GAAG,EAAE,aAAa,EAAE,CAAC,SAAS,CAAC,EAAE,CAAA;YAC5C,MAAM,IAAI,GAAG,EAAE,cAAc,EAAE,CAAC,YAAY,CAAC,EAAE,CAAA;YAC/C,MAAM,OAAO,GAAG,WAAW,CAAC;gBAC1B,aAAa,EAAE,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;gBACnD,kBAAkB,EAAE,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE;gBAC/D,cAAc,EAAE,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE;gBAC3D,mBAAmB,EAAE,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;aACjE,CAAC,CAAA;YAEF,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;YAEpD,sCAAsC;YACtC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;YAC1D,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAA;YACrE,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;YACrD,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QAC1D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"overlay-resolver.test.js","sourceRoot":"","sources":["../../../src/core/assembly/overlay-resolver.test.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,12 @@ export interface OverlayState {
6
6
  knowledge: Record<string, string[]>;
7
7
  reads: Record<string, string[]>;
8
8
  dependencies: Record<string, string[]>;
9
- /** Wave 3c — populated from frontmatter.crossReads; overlay-level overrides are post-release. */
10
- crossReads?: Record<string, Array<{
9
+ /**
10
+ * Cross-reads for each step (keyed by step slug). Populated via overlay-first
11
+ * merge: `frontmatter.crossReads ∪ overlay.cross-reads-overrides` (spec §3.2).
12
+ * Consumers can read `overlay.crossReads[slug]` as authoritative.
13
+ */
14
+ crossReads: Record<string, Array<{
11
15
  service: string;
12
16
  step: string;
13
17
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"overlay-state-resolver.d.ts","sourceRoot":"","sources":["../../../src/core/assembly/overlay-state-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAIhE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAC1C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAC/B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACtC,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;CACtE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,MAAM,EAAE,cAAc,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,qBAAqB,CAAA;KAAE,CAAC,CAAA;IAChE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAChD,MAAM,EAAE,aAAa,CAAA;CACtB,GAAG,YAAY,CA4If"}
1
+ {"version":3,"file":"overlay-state-resolver.d.ts","sourceRoot":"","sources":["../../../src/core/assembly/overlay-state-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAIhE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAC1C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAC/B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACtC;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;CACrE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,MAAM,EAAE,cAAc,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,qBAAqB,CAAA;KAAE,CAAC,CAAA;IAChE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAChD,MAAM,EAAE,aAAa,CAAA;CACtB,GAAG,YAAY,CAmJf"}
@@ -15,20 +15,19 @@ export function resolveOverlayState(options) {
15
15
  const knowledgeMap = {};
16
16
  const readsMap = {};
17
17
  const dependencyMap = {};
18
- // Wave 3c: crossReads is an OVERLAY-OVERRIDE seam (empty until the follow-on
19
- // 'crossReads-overrides' feature lands). Consumers read frontmatter via the
20
- // overlay-first fallback: `overlay.crossReads?.[slug] ?? frontmatter.crossReads`.
21
18
  const crossReadsMap = {};
22
19
  for (const [name, mp] of metaPrompts) {
23
20
  knowledgeMap[name] = [...(mp.frontmatter.knowledgeBase ?? [])];
24
21
  readsMap[name] = [...(mp.frontmatter.reads ?? [])];
25
22
  dependencyMap[name] = [...(mp.frontmatter.dependencies ?? [])];
23
+ crossReadsMap[name] = [...(mp.frontmatter.crossReads ?? [])];
26
24
  }
27
25
  // Start with preset defaults
28
26
  let overlaySteps = { ...presetSteps };
29
27
  let overlayKnowledge = knowledgeMap;
30
28
  let overlayReads = readsMap;
31
29
  let overlayDependencies = dependencyMap;
30
+ let overlayCrossReads = crossReadsMap;
32
31
  // Load and apply project-type overlay if configured
33
32
  const projectType = config.project?.projectType;
34
33
  if (projectType) {
@@ -48,11 +47,16 @@ export function resolveOverlayState(options) {
48
47
  }
49
48
  }
50
49
  if (overlay) {
51
- const merged = applyOverlay(overlaySteps, knowledgeMap, readsMap, dependencyMap, overlay);
50
+ // Use the tracked overlay* working variables uniformly (parity with the
51
+ // structural-overlay pass below). At this point the working vars are
52
+ // reference-identical to the frontmatter maps, so behavior is unchanged;
53
+ // the symmetry avoids a footgun if a future pre-pass mutates the vars.
54
+ const merged = applyOverlay(overlaySteps, overlayKnowledge, overlayReads, overlayDependencies, overlayCrossReads, overlay);
52
55
  overlaySteps = merged.steps;
53
56
  overlayKnowledge = merged.knowledge;
54
57
  overlayReads = merged.reads;
55
58
  overlayDependencies = merged.dependencies;
59
+ overlayCrossReads = merged.crossReads;
56
60
  }
57
61
  }
58
62
  // Generic domain sub-overlay: types with a 'domain' config field get sub-overlay injection
@@ -113,11 +117,12 @@ export function resolveOverlayState(options) {
113
117
  output.warn(`Structural overlay targets unknown step "${step}"`);
114
118
  }
115
119
  }
116
- const merged = applyOverlay(overlaySteps, overlayKnowledge, overlayReads, overlayDependencies, msOverlay);
120
+ const merged = applyOverlay(overlaySteps, overlayKnowledge, overlayReads, overlayDependencies, overlayCrossReads, msOverlay);
117
121
  overlaySteps = merged.steps;
118
122
  overlayKnowledge = merged.knowledge;
119
123
  overlayReads = merged.reads;
120
124
  overlayDependencies = merged.dependencies;
125
+ overlayCrossReads = merged.crossReads;
121
126
  }
122
127
  }
123
128
  }
@@ -126,7 +131,7 @@ export function resolveOverlayState(options) {
126
131
  knowledge: overlayKnowledge,
127
132
  reads: overlayReads,
128
133
  dependencies: overlayDependencies,
129
- crossReads: crossReadsMap,
134
+ crossReads: overlayCrossReads,
130
135
  };
131
136
  }
132
137
  //# sourceMappingURL=overlay-state-resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"overlay-state-resolver.js","sourceRoot":"","sources":["../../../src/core/assembly/overlay-state-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlay-state-resolver.js","sourceRoot":"","sources":["../../../src/core/assembly/overlay-state-resolver.ts"],"names":[],"mappings":"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"}
@@ -557,10 +557,10 @@ step-overrides:
557
557
  });
558
558
  });
559
559
  describe('crossReads on OverlayState (Wave 3c)', () => {
560
- // Per spec §2.1, crossReads is an OVERLAY-OVERRIDE seam (empty until the
561
- // follow-on 'crossReads-overrides' feature lands). Consumers use the
562
- // overlay-first fallback: `overlay.crossReads?.[slug] ?? frontmatter.crossReads`.
563
- it('returns crossReads as empty object even when frontmatter has crossReads', () => {
560
+ // With Wave 3c+1, resolveOverlayState populates OverlayState.crossReads from
561
+ // frontmatter merged with any overlay cross-reads-overrides. Consumers should
562
+ // read `overlay.crossReads?.[slug]` as authoritative.
563
+ it('returns crossReads populated from frontmatter when no overlay overrides configured', () => {
564
564
  const metaPrompts = new Map([
565
565
  ['system-architecture', {
566
566
  frontmatter: makeFrontmatter({
@@ -579,21 +579,80 @@ describe('crossReads on OverlayState (Wave 3c)', () => {
579
579
  presetSteps: {},
580
580
  output: makeOutput(),
581
581
  });
582
- // The overlay map is empty; consumers fall back to frontmatter.crossReads.
583
- expect(result.crossReads).toEqual({});
582
+ expect(result.crossReads['system-architecture']).toEqual([
583
+ { service: 'shared-lib', step: 'api-contracts' },
584
+ ]);
584
585
  });
585
- it('returns crossReads as empty object when no step has crossReads', () => {
586
+ it('returns crossReads keyed per-step with empty arrays when no step has crossReads', () => {
586
587
  const metaPrompts = new Map([
587
588
  ['some-step', { frontmatter: makeFrontmatter({ name: 'some-step' }) }],
588
589
  ]);
589
590
  const result = resolveOverlayState({
590
- config: makeConfig(),
591
- methodologyDir: '/nonexistent',
592
- metaPrompts,
593
- presetSteps: {},
594
- output: makeOutput(),
591
+ config: makeConfig(), methodologyDir: '/nonexistent', metaPrompts, presetSteps: {}, output: makeOutput(),
595
592
  });
596
- expect(result.crossReads).toEqual({});
593
+ expect(result.crossReads['some-step']).toEqual([]);
594
+ });
595
+ it('threads crossReadsMap through BOTH project-type (pass 1) and structural (pass 2) passes', () => {
596
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'cross-reads-both-'));
597
+ try {
598
+ // Pass-1 overlay (project-type: backend) — no cross-reads-overrides (forbidden per §4.1)
599
+ fs.writeFileSync(path.join(tmpDir, 'backend-overlay.yml'), `
600
+ name: backend
601
+ description: pass-1 overlay
602
+ project-type: backend
603
+ step-overrides:
604
+ system-architecture: { enabled: true }
605
+ `);
606
+ // Pass-2 overlay (structural multi-service) — owns cross-reads-overrides
607
+ fs.writeFileSync(path.join(tmpDir, 'multi-service-overlay.yml'), `
608
+ name: multi-service
609
+ description: pass-2 overlay
610
+ step-overrides:
611
+ system-architecture: { enabled: true }
612
+ cross-reads-overrides:
613
+ system-architecture:
614
+ append:
615
+ - service: billing
616
+ step: api-contracts
617
+ `);
618
+ const metaPrompts = new Map([
619
+ ['system-architecture', {
620
+ frontmatter: makeFrontmatter({
621
+ name: 'system-architecture',
622
+ phase: 'architecture', order: 700,
623
+ outputs: ['docs/arch.md'],
624
+ // Frontmatter entry MUST survive both passes. Pass 1 is a no-op for
625
+ // cross-reads (§4.1), pass 2 appends. A bug that zeroes the map
626
+ // before pass 2 would drop this entry.
627
+ crossReads: [{ service: 'shared-lib', step: 'api-contracts' }],
628
+ }),
629
+ }],
630
+ ]);
631
+ const result = resolveOverlayState({
632
+ config: makeConfig({
633
+ project: {
634
+ projectType: 'backend', // triggers pass 1
635
+ services: [{
636
+ name: 'api', projectType: 'backend',
637
+ backendConfig: { apiStyle: 'rest' },
638
+ }],
639
+ },
640
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
641
+ }),
642
+ methodologyDir: tmpDir,
643
+ metaPrompts,
644
+ presetSteps: {},
645
+ output: makeOutput(),
646
+ });
647
+ // Frontmatter entry (preserved through pass 1) + overlay append from pass 2
648
+ expect(result.crossReads['system-architecture']).toEqual([
649
+ { service: 'shared-lib', step: 'api-contracts' }, // from frontmatter
650
+ { service: 'billing', step: 'api-contracts' }, // from structural overlay
651
+ ]);
652
+ }
653
+ finally {
654
+ fs.rmSync(tmpDir, { recursive: true, force: true });
655
+ }
597
656
  });
598
657
  });
599
658
  //# sourceMappingURL=overlay-state-resolver.test.js.map