@sun-asterisk/sungen 3.2.16-beta.1 → 3.2.16-beta.11

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 (146) hide show
  1. package/dist/cli/commands/audit.d.ts.map +1 -1
  2. package/dist/cli/commands/audit.js +6 -0
  3. package/dist/cli/commands/audit.js.map +1 -1
  4. package/dist/cli/commands/delivery.d.ts.map +1 -1
  5. package/dist/cli/commands/delivery.js +67 -20
  6. package/dist/cli/commands/delivery.js.map +1 -1
  7. package/dist/exporters/feature-parser.d.ts +16 -1
  8. package/dist/exporters/feature-parser.d.ts.map +1 -1
  9. package/dist/exporters/feature-parser.js +21 -2
  10. package/dist/exporters/feature-parser.js.map +1 -1
  11. package/dist/exporters/matrix/build.d.ts +27 -2
  12. package/dist/exporters/matrix/build.d.ts.map +1 -1
  13. package/dist/exporters/matrix/build.js +277 -47
  14. package/dist/exporters/matrix/build.js.map +1 -1
  15. package/dist/exporters/matrix/export.d.ts +7 -4
  16. package/dist/exporters/matrix/export.d.ts.map +1 -1
  17. package/dist/exporters/matrix/export.js +22 -6
  18. package/dist/exporters/matrix/export.js.map +1 -1
  19. package/dist/exporters/matrix/gates.d.ts.map +1 -1
  20. package/dist/exporters/matrix/gates.js +112 -3
  21. package/dist/exporters/matrix/gates.js.map +1 -1
  22. package/dist/exporters/matrix/map-loader.d.ts.map +1 -1
  23. package/dist/exporters/matrix/map-loader.js +20 -0
  24. package/dist/exporters/matrix/map-loader.js.map +1 -1
  25. package/dist/exporters/matrix/render-csv.d.ts +3 -2
  26. package/dist/exporters/matrix/render-csv.d.ts.map +1 -1
  27. package/dist/exporters/matrix/render-csv.js +53 -30
  28. package/dist/exporters/matrix/render-csv.js.map +1 -1
  29. package/dist/exporters/matrix/render-xlsx.d.ts +32 -8
  30. package/dist/exporters/matrix/render-xlsx.d.ts.map +1 -1
  31. package/dist/exporters/matrix/render-xlsx.js +215 -83
  32. package/dist/exporters/matrix/render-xlsx.js.map +1 -1
  33. package/dist/exporters/matrix/types.d.ts +53 -7
  34. package/dist/exporters/matrix/types.d.ts.map +1 -1
  35. package/dist/exporters/matrix/types.js +2 -2
  36. package/dist/exporters/matrix/types.js.map +1 -1
  37. package/dist/exporters/matrix/wording.d.ts +61 -0
  38. package/dist/exporters/matrix/wording.d.ts.map +1 -0
  39. package/dist/exporters/matrix/wording.js +221 -0
  40. package/dist/exporters/matrix/wording.js.map +1 -0
  41. package/dist/exporters/scenario-merger.d.ts.map +1 -1
  42. package/dist/exporters/scenario-merger.js +2 -1
  43. package/dist/exporters/scenario-merger.js.map +1 -1
  44. package/dist/exporters/spec-parser.d.ts.map +1 -1
  45. package/dist/exporters/spec-parser.js +2 -1
  46. package/dist/exporters/spec-parser.js.map +1 -1
  47. package/dist/harness/audit.d.ts +6 -0
  48. package/dist/harness/audit.d.ts.map +1 -1
  49. package/dist/harness/audit.js +80 -15
  50. package/dist/harness/audit.js.map +1 -1
  51. package/dist/harness/blindspot.d.ts.map +1 -1
  52. package/dist/harness/blindspot.js +2 -1
  53. package/dist/harness/blindspot.js.map +1 -1
  54. package/dist/harness/capability-plan.d.ts.map +1 -1
  55. package/dist/harness/capability-plan.js +3 -2
  56. package/dist/harness/capability-plan.js.map +1 -1
  57. package/dist/harness/feedback.d.ts.map +1 -1
  58. package/dist/harness/feedback.js +3 -2
  59. package/dist/harness/feedback.js.map +1 -1
  60. package/dist/harness/flow-check.d.ts.map +1 -1
  61. package/dist/harness/flow-check.js +2 -1
  62. package/dist/harness/flow-check.js.map +1 -1
  63. package/dist/harness/flow-plan.d.ts.map +1 -1
  64. package/dist/harness/flow-plan.js +3 -2
  65. package/dist/harness/flow-plan.js.map +1 -1
  66. package/dist/harness/intent.d.ts.map +1 -1
  67. package/dist/harness/intent.js +2 -1
  68. package/dist/harness/intent.js.map +1 -1
  69. package/dist/harness/journey.d.ts.map +1 -1
  70. package/dist/harness/journey.js +3 -2
  71. package/dist/harness/journey.js.map +1 -1
  72. package/dist/harness/ledger.d.ts.map +1 -1
  73. package/dist/harness/ledger.js +3 -2
  74. package/dist/harness/ledger.js.map +1 -1
  75. package/dist/harness/manifest.d.ts.map +1 -1
  76. package/dist/harness/manifest.js +4 -3
  77. package/dist/harness/manifest.js.map +1 -1
  78. package/dist/harness/parse.d.ts.map +1 -1
  79. package/dist/harness/parse.js +16 -3
  80. package/dist/harness/parse.js.map +1 -1
  81. package/dist/harness/quality-gates.d.ts.map +1 -1
  82. package/dist/harness/quality-gates.js +2 -1
  83. package/dist/harness/quality-gates.js.map +1 -1
  84. package/dist/harness/read-text.d.ts +22 -0
  85. package/dist/harness/read-text.d.ts.map +1 -0
  86. package/dist/harness/read-text.js +64 -0
  87. package/dist/harness/read-text.js.map +1 -0
  88. package/dist/harness/script-check.d.ts.map +1 -1
  89. package/dist/harness/script-check.js +3 -2
  90. package/dist/harness/script-check.js.map +1 -1
  91. package/dist/harness/sensors.d.ts +13 -1
  92. package/dist/harness/sensors.d.ts.map +1 -1
  93. package/dist/harness/sensors.js +63 -20
  94. package/dist/harness/sensors.js.map +1 -1
  95. package/dist/harness/spec-coverage.d.ts +5 -0
  96. package/dist/harness/spec-coverage.d.ts.map +1 -1
  97. package/dist/harness/spec-coverage.js +17 -7
  98. package/dist/harness/spec-coverage.js.map +1 -1
  99. package/dist/harness/trace.d.ts.map +1 -1
  100. package/dist/harness/trace.js +4 -3
  101. package/dist/harness/trace.js.map +1 -1
  102. package/dist/harness/viewpoint-ledger.d.ts.map +1 -1
  103. package/dist/harness/viewpoint-ledger.js +2 -1
  104. package/dist/harness/viewpoint-ledger.js.map +1 -1
  105. package/dist/orchestrator/templates/ai-src/commands/create-test.md +9 -0
  106. package/dist/orchestrator/templates/ai-src/commands/delivery.md +103 -18
  107. package/dist/orchestrator/templates/ai-src/skills/sungen-delivery/SKILL.md +77 -11
  108. package/dist/orchestrator/templates/ai-src/skills/sungen-gherkin-syntax/SKILL.md +1 -0
  109. package/dist/orchestrator/templates/ai-src/skills/sungen-tc-generation/SKILL.md +22 -0
  110. package/package.json +4 -4
  111. package/src/cli/commands/audit.ts +5 -0
  112. package/src/cli/commands/delivery.ts +68 -22
  113. package/src/exporters/feature-parser.ts +21 -2
  114. package/src/exporters/matrix/build.ts +281 -43
  115. package/src/exporters/matrix/export.ts +31 -6
  116. package/src/exporters/matrix/gates.ts +119 -3
  117. package/src/exporters/matrix/map-loader.ts +22 -1
  118. package/src/exporters/matrix/render-csv.ts +53 -30
  119. package/src/exporters/matrix/render-xlsx.ts +216 -85
  120. package/src/exporters/matrix/types.ts +58 -8
  121. package/src/exporters/matrix/wording.ts +221 -0
  122. package/src/exporters/scenario-merger.ts +2 -1
  123. package/src/exporters/spec-parser.ts +2 -1
  124. package/src/harness/audit.ts +84 -16
  125. package/src/harness/blindspot.ts +2 -1
  126. package/src/harness/capability-plan.ts +3 -2
  127. package/src/harness/feedback.ts +3 -2
  128. package/src/harness/flow-check.ts +2 -1
  129. package/src/harness/flow-plan.ts +3 -2
  130. package/src/harness/intent.ts +2 -1
  131. package/src/harness/journey.ts +3 -2
  132. package/src/harness/ledger.ts +3 -2
  133. package/src/harness/manifest.ts +4 -3
  134. package/src/harness/parse.ts +17 -3
  135. package/src/harness/quality-gates.ts +2 -1
  136. package/src/harness/read-text.ts +28 -0
  137. package/src/harness/script-check.ts +3 -2
  138. package/src/harness/sensors.ts +55 -8
  139. package/src/harness/spec-coverage.ts +22 -7
  140. package/src/harness/trace.ts +4 -3
  141. package/src/harness/viewpoint-ledger.ts +2 -1
  142. package/src/orchestrator/templates/ai-src/commands/create-test.md +9 -0
  143. package/src/orchestrator/templates/ai-src/commands/delivery.md +103 -18
  144. package/src/orchestrator/templates/ai-src/skills/sungen-delivery/SKILL.md +77 -11
  145. package/src/orchestrator/templates/ai-src/skills/sungen-gherkin-syntax/SKILL.md +1 -0
  146. package/src/orchestrator/templates/ai-src/skills/sungen-tc-generation/SKILL.md +22 -0
@@ -3,14 +3,21 @@
3
3
  * Render the Test Case & Coverage Matrix workbook.
4
4
  *
5
5
  * Sheets:
6
- * 1. Testcases — one parent row per delivery item, variant sub-rows grouped with
7
- * Excel outline (expanded for execution; the level-1 outline button collapses
8
- * to the customer/review view same sheet, one model, two views).
9
- * 2. Coverage target × category grid (items + variants, `—` marks the gaps),
10
- * dispositions, and the generation manifest.
6
+ * 1. Testcases — one parent row per delivery item; EVERY item (including
7
+ * single-variant ones) carries variant sub-rows on Excel outline level 1 —
8
+ * the sub-row is where source traceability (VP-id), test data, and the
9
+ * manual result/evidence entry live (review B-05/B-06). Collapse outline
10
+ * level 1 for the customer/review view; expand to execute.
11
+ * 2. Coverage — requirement coverage (id ↔ items ↔ status), the target ×
12
+ * category grid (explicit `—` gaps), dispositions, and the manifest.
11
13
  *
12
- * Every sheet keeps the company ISO masthead (renderReportHeaderBand). A draft
13
- * matrix (unapproved groups / review findings) carries a red DRAFT banner.
14
+ * Manual-execution support: variant Result cells carry a dropdown
15
+ * (Passed/Failed/Blocked/Pending/N/A) and the parent Result is a live Excel
16
+ * formula derived from its children — a parent can never contradict its
17
+ * variants, even after QA edits results by hand (review B-06).
18
+ *
19
+ * Every sheet keeps the company ISO masthead. A draft matrix (unapproved
20
+ * groups / review findings) carries a red DRAFT banner.
14
21
  */
15
22
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
23
  if (k2 === undefined) k2 = k;
@@ -46,14 +53,18 @@ var __importStar = (this && this.__importStar) || (function () {
46
53
  };
47
54
  })();
48
55
  Object.defineProperty(exports, "__esModule", { value: true });
56
+ exports.itemModeLabel = itemModeLabel;
57
+ exports.itemResultLabel = itemResultLabel;
58
+ exports.coverageSummary = coverageSummary;
49
59
  exports.renderMatrixXlsx = renderMatrixXlsx;
50
60
  const ExcelJS = __importStar(require("exceljs"));
51
61
  const xlsx_report_builder_1 = require("../xlsx-report-builder");
52
- const playwright_report_parser_1 = require("../playwright-report-parser");
62
+ const build_1 = require("./build");
53
63
  const CATEGORY_ORDER = ['normal', 'abnormal', 'security', 'nfr'];
54
64
  const SOFT_BLUE = { argb: 'FFDCE6F1' };
55
65
  const DRAFT_RED = { argb: 'FFC00000' };
56
66
  const GAP_FILL = { argb: 'FFFCE4EC' };
67
+ const RESULT_STATES = 'Passed,Failed,Blocked,Pending,N/A';
57
68
  function headerCell(c, label) {
58
69
  c.value = label;
59
70
  c.font = { bold: true, size: 10, color: xlsx_report_builder_1.BLACK, name: xlsx_report_builder_1.ARIAL_FONT };
@@ -62,36 +73,80 @@ function headerCell(c, label) {
62
73
  c.border = xlsx_report_builder_1.allBordersBlack;
63
74
  }
64
75
  function dataCell(c, value, opts) {
65
- c.value = value;
76
+ // An empty value stays a genuinely blank cell — never an empty shared string,
77
+ // which some renderers display as its string-table index (review M-03).
78
+ if (value !== '' && value !== undefined && value !== null)
79
+ c.value = value;
66
80
  c.font = { bold: opts?.bold ?? false, size: 10, name: xlsx_report_builder_1.ARIAL_FONT, ...(opts?.color ? { color: opts.color } : {}) };
67
81
  c.alignment = { horizontal: opts?.center ? 'center' : 'left', vertical: 'top', wrapText: true };
68
82
  c.border = xlsx_report_builder_1.allBordersBlack;
69
83
  if (opts?.fill)
70
84
  c.fill = { type: 'pattern', pattern: 'solid', fgColor: opts.fill };
71
85
  }
86
+ /** Mode is a coverage dimension: mixed items show both counts. */
87
+ function itemModeLabel(item) {
88
+ if (item.mode === 'mixed') {
89
+ const auto = item.variants.filter((v) => v.mode === 'auto').length;
90
+ return `Auto ${auto} · Manual ${item.variants.length - auto}`;
91
+ }
92
+ return item.mode === 'manual' ? 'Manual' : 'Auto';
93
+ }
94
+ /**
95
+ * Parent roll-up label. It must NEVER be exactly one of the variant state words
96
+ * (`Passed`/`Failed`/`Blocked`/`Pending`/`N/A`) — the summary band counts the
97
+ * Result column with exact-match COUNTIF over parent AND child rows, so a parent
98
+ * reading plain "Pending" was counted as an extra pending variant (109 instead
99
+ * of 77 on st-login).
100
+ */
72
101
  function itemResultLabel(item) {
73
- const { passed, failed, blocked, notRun } = item.resultCounts;
74
- const total = item.variants.length;
75
- const map = {
76
- passed: `${passed}/${total} Passed`,
77
- failed: `${passed}/${total} Passed · ${failed} Failed`,
78
- blocked: `${blocked} Blocked`,
79
- partial: `${passed}/${total} Passed · ${notRun} not run`,
80
- not_run: 'Pending',
81
- };
82
- return map[item.result];
102
+ const { passed, failed, blocked, na } = item.resultCounts;
103
+ const eff = item.variants.length - na;
104
+ const suffix = na > 0 ? ` · ${na} N/A` : '';
105
+ if (item.result === 'na')
106
+ return 'All N/A';
107
+ if (item.result === 'failed')
108
+ return `${passed}/${eff} Passed · ${failed} Failed${suffix}`;
109
+ if (item.result === 'blocked')
110
+ return `${passed}/${eff} Passed · ${blocked} Blocked${suffix}`;
111
+ return `${passed}/${eff} Passed${suffix}`;
83
112
  }
84
- function variantResultLabel(v) {
85
- if (!v.result)
86
- return 'Pending';
87
- return (0, playwright_report_parser_1.statusToTestResult)(v.result.status);
113
+ /** ISO date (2026-08-04) — unambiguous across locales (review §9). */
114
+ function isoDate(startTime) {
115
+ if (!startTime)
116
+ return '';
117
+ const d = new Date(startTime);
118
+ if (isNaN(d.getTime()))
119
+ return '';
120
+ return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}`;
88
121
  }
89
- function numbered(lines) {
122
+ function numbered(lines, start = 1) {
90
123
  if (lines.length === 0)
91
124
  return '';
92
- if (lines.length === 1)
125
+ if (lines.length === 1 && start === 1)
93
126
  return lines[0];
94
- return lines.map((l, i) => `${i + 1}. ${l}`).join('\n');
127
+ return lines.map((l, i) => `${start + i}. ${l}`).join('\n');
128
+ }
129
+ /**
130
+ * Compact coverage summary for the parent row. A declared `dimensions:` digest
131
+ * wins ("15 variants — required ×3 · format ×9 …"); otherwise a single variant
132
+ * shows its condition and a group falls back to its variant REFS. Concatenating
133
+ * every variant's full title turned this cell into an 800-character paragraph.
134
+ */
135
+ function coverageSummary(item) {
136
+ const n = item.variants.length;
137
+ const head = `${n} variant${n === 1 ? '' : 's'}:`;
138
+ if (item.dimensions)
139
+ return `${head} ${item.dimensions}`;
140
+ if (n === 1)
141
+ return `${head} ${item.variants[0].condition}`;
142
+ return `${head} ${item.variants.map((v) => v.ref).join(' · ')}`;
143
+ }
144
+ /** Expected cell = observable outcomes; the HOW moves under a separate heading. */
145
+ function expectedWithVerification(oracle, verification) {
146
+ const expected = numbered(oracle);
147
+ if (verification.length === 0)
148
+ return expected;
149
+ return `${expected}\nVerification method: ${verification.join(' ')}`;
95
150
  }
96
151
  /** Red DRAFT banner on row 5 when the matrix is not approved for official delivery. */
97
152
  function draftBanner(ws, model) {
@@ -109,15 +164,16 @@ function draftBanner(ws, model) {
109
164
  // ---------------------------------------------------------------------------
110
165
  const MATRIX_HEADERS = [
111
166
  'ID', 'Target', 'Test Intent / Condition', 'Category', 'Priority', 'Precondition',
112
- 'Coverage / Test Data', 'Action / Trigger', 'Expected (Oracle)', 'Mode', 'Trace',
113
- 'Result', 'Executed Date', 'Executor', 'Note\n(Evidence, DefectID)',
167
+ 'Coverage / Test Data', 'Action / Trigger', 'Expected Result', 'Mode', 'Trace',
168
+ 'Result', 'Executed Date', 'Executor', 'Note / Evidence', 'Defect ID',
114
169
  ];
170
+ const RESULT_COL = 13; // column M
115
171
  function addMatrixSheet(wb, model, sungenVersion) {
116
172
  const ws = wb.addWorksheet('Testcases');
117
173
  ws.properties.outlineLevelRow = 1;
118
174
  ws.columns = [
119
175
  { width: 3 }, // A margin
120
- { width: 20 }, // B ID
176
+ { width: 22 }, // B ID
121
177
  { width: 18 }, // C Target
122
178
  { width: 42 }, // D Intent / Condition
123
179
  { width: 11 }, // E Category
@@ -128,26 +184,40 @@ function addMatrixSheet(wb, model, sungenVersion) {
128
184
  { width: 42 }, // J Expected
129
185
  { width: 11 }, // K Mode
130
186
  { width: 13 }, // L Trace
131
- { width: 17 }, // M Result
132
- { width: 13 }, // N Executed
187
+ { width: 22 }, // M Result
188
+ { width: 12 }, // N Executed
133
189
  { width: 13 }, // O Executor
134
- { width: 24 }, // P Note
190
+ { width: 22 }, // P Note / Evidence
191
+ { width: 12 }, // Q Defect ID
135
192
  ];
136
193
  (0, xlsx_report_builder_1.renderReportHeaderBand)(wb, ws, `${model.unit.toUpperCase()} TEST CASE & COVERAGE MATRIX`, sungenVersion, model.formNo);
137
194
  draftBanner(ws, model);
138
- // Summary band (row 6) — items vs variants stay separate metrics by design (I8):
139
- // the ITEM count is reviewer workload, the VARIANT count is execution workload.
140
- const passed = model.items.reduce((a, i) => a + i.resultCounts.passed, 0);
141
- const failed = model.items.reduce((a, i) => a + i.resultCounts.failed, 0);
142
- const notRun = model.items.reduce((a, i) => a + i.resultCounts.notRun + i.resultCounts.blocked, 0);
195
+ // Summary band (row 6) — items vs variants stay separate metrics by design (I8).
196
+ // The execution counters are LIVE formulas over the variant Result cells, so
197
+ // hand-entered results update the totals (review GAP-06). Variant cells hold the
198
+ // exact state words and parent cells NEVER do (itemResultLabel + the roll-up
199
+ // formula always compose a "n/m Passed …" label), so exact-match COUNTIF over
200
+ // the whole column counts variants only.
201
+ const sum = (k) => model.items.reduce((a, i) => a + i.resultCounts[k], 0);
202
+ const passed = sum('passed');
203
+ const failed = sum('failed');
204
+ const blocked = sum('blocked');
205
+ const notRun = sum('notRun');
206
+ const na = sum('na');
207
+ const RANGE = 'M9:M10000';
143
208
  const band = ws.getRow(6);
144
- [
145
- `Delivery items: ${model.manifest.itemCount}`,
146
- `Coverage variants: ${model.manifest.variantCount}`,
147
- `Passed: ${passed}`, `Failed: ${failed}`, `Pending: ${notRun}`,
148
- ].forEach((label, i) => {
209
+ const bandCells = [
210
+ ['items', `Delivery items: ${model.manifest.itemCount}`],
211
+ ['variants', `Coverage variants: ${model.manifest.variantCount}`],
212
+ ['passed', { formula: `"Passed: "&COUNTIF(${RANGE},"Passed")`, result: `Passed: ${passed}` }],
213
+ ['failed', { formula: `"Failed: "&COUNTIF(${RANGE},"Failed")`, result: `Failed: ${failed}` }],
214
+ ['blocked', { formula: `"Blocked: "&COUNTIF(${RANGE},"Blocked")`, result: `Blocked: ${blocked}` }],
215
+ ['pending', { formula: `"Pending: "&COUNTIF(${RANGE},"Pending")`, result: `Pending: ${notRun}` }],
216
+ ['na', { formula: `"N/A: "&COUNTIF(${RANGE},"N/A")`, result: `N/A: ${na}` }],
217
+ ];
218
+ bandCells.forEach(([, v], i) => {
149
219
  const c = band.getCell(2 + i);
150
- dataCell(c, label, { bold: true, fill: SOFT_BLUE, center: true });
220
+ dataCell(c, v, { bold: true, fill: SOFT_BLUE, center: true });
151
221
  });
152
222
  const HEADER_ROW = 8;
153
223
  const hr = ws.getRow(HEADER_ROW);
@@ -155,13 +225,60 @@ function addMatrixSheet(wb, model, sungenVersion) {
155
225
  MATRIX_HEADERS.forEach((label, i) => headerCell(hr.getCell(2 + i), label));
156
226
  let rowIdx = HEADER_ROW + 1;
157
227
  for (const item of model.items) {
158
- // Parent row — the delivery item (the review unit).
159
- const pr = ws.getRow(rowIdx++);
160
- const single = item.variants.length === 1;
161
- const only = single ? item.variants[0] : undefined;
162
- const coverage = single
163
- ? numbered(only.data)
164
- : `${item.variants.length} variants: ${item.variants.map((v) => v.condition).join(' · ')}`;
228
+ const parentRowIdx = rowIdx++;
229
+ // --- Variant sub-rows FIRST (to know their cell range for the parent formula).
230
+ // Every item gets sub-rows — the sub-row is where the source scenario id, the
231
+ // resolved data, and the manual result/evidence entry live (review B-05).
232
+ const firstChild = rowIdx;
233
+ // Delta-only sub-rows (review GAP-01): content identical across the whole
234
+ // item lives ONCE on the parent — a child repeats only what distinguishes it.
235
+ // The child's Expected Result is always kept: it is the precise source
236
+ // oracle (the semantic anchor), not a repetition of the parent's summary.
237
+ for (const v of item.variants) {
238
+ const vr = ws.getRow(rowIdx++);
239
+ vr.outlineLevel = 1;
240
+ const vValues = [
241
+ v.ref,
242
+ '',
243
+ v.condition,
244
+ '', '',
245
+ numbered(item.preconditionDeltas[v.ref] ?? []),
246
+ numbered(v.data),
247
+ // Only the steps after the parent's shared prefix, numbered so the
248
+ // parent's steps + these read as one continuous procedure.
249
+ numbered(item.triggerDeltas[v.ref] ?? [], item.trigger.length + 1),
250
+ expectedWithVerification(v.oracle, v.verification),
251
+ v.mode === 'manual' ? `Manual${v.manualReason ? ` (${v.manualReason})` : ''}` : 'Auto',
252
+ v.traces.join(', '),
253
+ (0, build_1.variantState)(v),
254
+ isoDate(v.result?.startTime),
255
+ '',
256
+ v.result?.error ? String(v.result.error).slice(0, 200) : '',
257
+ '',
258
+ ];
259
+ vValues.forEach((val, i) => dataCell(vr.getCell(2 + i), val, { center: i === 9 }));
260
+ // Manual-execution entry: constrain the Result cell to the known states.
261
+ vr.getCell(2 + 11).dataValidation = {
262
+ type: 'list', allowBlank: true, formulae: [`"${RESULT_STATES}"`],
263
+ };
264
+ }
265
+ const lastChild = rowIdx - 1;
266
+ // --- Parent row: only values that are genuinely COMMON to the whole item
267
+ // (review M-04); everything variant-specific stays on the sub-rows.
268
+ const pr = ws.getRow(parentRowIdx);
269
+ const coverage = coverageSummary(item);
270
+ // Live roll-up derived from the child Result cells — precedence
271
+ // failed → blocked → pending → partial → passed. N/A variants leave the
272
+ // denominator (review GAP-06): eff = n − COUNTIF(N/A); all-N/A → "N/A".
273
+ const rng = `M${firstChild}:M${lastChild}`;
274
+ const n = item.variants.length;
275
+ const EFF = `(${n}-COUNTIF(${rng},"N/A"))`;
276
+ const NA = `IF(COUNTIF(${rng},"N/A")>0," · "&COUNTIF(${rng},"N/A")&" N/A","")`;
277
+ // Mirrors itemResultLabel exactly — and never yields a bare state word.
278
+ const rollUpFormula = `IF(COUNTIF(${rng},"Failed")>0,COUNTIF(${rng},"Passed")&"/"&${EFF}&" Passed · "&COUNTIF(${rng},"Failed")&" Failed"&${NA},` +
279
+ `IF(COUNTIF(${rng},"Blocked")>0,COUNTIF(${rng},"Passed")&"/"&${EFF}&" Passed · "&COUNTIF(${rng},"Blocked")&" Blocked"&${NA},` +
280
+ `IF(${EFF}=0,"All N/A",` +
281
+ `COUNTIF(${rng},"Passed")&"/"&${EFF}&" Passed"&${NA})))`;
165
282
  const values = [
166
283
  item.id,
167
284
  item.target,
@@ -170,61 +287,76 @@ function addMatrixSheet(wb, model, sungenVersion) {
170
287
  item.priority,
171
288
  numbered(item.precondition),
172
289
  coverage,
290
+ // The shared leading steps; each variant's remaining steps sit on its sub-row.
173
291
  numbered(item.trigger),
174
292
  item.oracle,
175
- item.mode === 'manual' ? `Manual${only?.manualReason ? ` (${only.manualReason})` : ''}` : 'Auto',
293
+ itemModeLabel(item),
176
294
  item.traces.join(', '),
177
- itemResultLabel(item),
178
- single ? (0, playwright_report_parser_1.formatExecutedDate)(only.result?.startTime) : '',
295
+ { formula: rollUpFormula, result: itemResultLabel(item) },
296
+ '',
179
297
  '',
180
298
  item.review === 'proposed' ? 'REVIEW REQUIRED' : '',
299
+ '',
181
300
  ];
182
301
  values.forEach((v, i) => dataCell(pr.getCell(2 + i), v, {
183
302
  bold: true,
184
303
  fill: SOFT_BLUE,
185
304
  center: i === 3 || i === 4 || i === 9,
186
- ...(String(values[14]).startsWith('REVIEW') && i === 14 ? { color: DRAFT_RED } : {}),
305
+ ...(i === 14 && item.review === 'proposed' ? { color: DRAFT_RED } : {}),
187
306
  }));
188
- // Variant sub-rows — the execution units (outline level 1; collapse for review).
189
- if (!single) {
190
- for (const v of item.variants) {
191
- const vr = ws.getRow(rowIdx++);
192
- vr.outlineLevel = 1;
193
- const vValues = [
194
- v.ref,
195
- '',
196
- v.condition,
197
- '', '', '',
198
- numbered(v.data),
199
- numbered(v.trigger),
200
- numbered(v.oracle),
201
- v.mode === 'manual' ? `Manual${v.manualReason ? ` (${v.manualReason})` : ''}` : 'Auto',
202
- v.traces.join(', '),
203
- variantResultLabel(v),
204
- (0, playwright_report_parser_1.formatExecutedDate)(v.result?.startTime),
205
- '',
206
- v.result?.error ? String(v.result.error).slice(0, 200) : '',
207
- ];
208
- vValues.forEach((val, i) => dataCell(vr.getCell(2 + i), val, { center: i === 9 }));
209
- }
210
- }
211
307
  }
212
- ws.autoFilter = { from: { row: HEADER_ROW, column: 2 }, to: { row: rowIdx - 1, column: 16 } };
213
- ws.views = [{ state: 'frozen', ySplit: HEADER_ROW }];
308
+ ws.autoFilter = { from: { row: HEADER_ROW, column: 2 }, to: { row: rowIdx - 1, column: 17 } };
309
+ // Freeze the header band AND the ID + Target columns (review §9).
310
+ ws.views = [{ state: 'frozen', xSplit: 3, ySplit: HEADER_ROW }];
311
+ // Print: landscape, fit width only (never squash all rows into one page),
312
+ // repeat the masthead + header rows on every page (review GAP-08).
313
+ ws.pageSetup = {
314
+ orientation: 'landscape',
315
+ fitToPage: true,
316
+ fitToWidth: 1,
317
+ fitToHeight: 0,
318
+ printTitlesRow: '1:8',
319
+ };
214
320
  }
215
321
  // ---------------------------------------------------------------------------
216
- // Sheet 2 — Coverage (overview grid + dispositions + manifest)
322
+ // Sheet 2 — Coverage (requirements + overview grid + dispositions + manifest)
217
323
  // ---------------------------------------------------------------------------
218
324
  function addCoverageSheet(wb, model, sungenVersion) {
219
325
  const ws = wb.addWorksheet('Coverage');
220
326
  ws.columns = [
221
- { width: 3 }, { width: 30 }, { width: 16 }, { width: 16 }, { width: 16 }, { width: 16 },
222
- { width: 16 }, { width: 40 },
327
+ { width: 3 }, { width: 22 }, { width: 18 }, { width: 16 }, { width: 16 }, { width: 16 },
328
+ { width: 16 }, { width: 44 },
223
329
  ];
224
330
  (0, xlsx_report_builder_1.renderReportHeaderBand)(wb, ws, `${model.unit.toUpperCase()} COVERAGE OVERVIEW`, sungenVersion, model.formNo);
225
331
  draftBanner(ws, model);
226
- // --- Target × category grid ---
227
332
  let rowIdx = 7;
333
+ // --- Requirement coverage (review §6): every requirement id gets ONE explicit status.
334
+ if (model.requirements.length > 0) {
335
+ dataCell(ws.getRow(rowIdx).getCell(2), 'Requirement coverage — every id has an explicit status', { bold: true });
336
+ rowIdx += 1;
337
+ const rh = ws.getRow(rowIdx);
338
+ ws.mergeCells(rowIdx, 4, rowIdx, 6);
339
+ headerCell(rh.getCell(2), 'Requirement');
340
+ headerCell(rh.getCell(3), 'Status');
341
+ headerCell(rh.getCell(4), 'Delivery items');
342
+ headerCell(rh.getCell(7), 'Variants');
343
+ headerCell(rh.getCell(8), 'Note');
344
+ rowIdx += 1;
345
+ for (const r of model.requirements) {
346
+ const row = ws.getRow(rowIdx++);
347
+ dataCell(row.getCell(2), r.id, { bold: true });
348
+ dataCell(row.getCell(3), r.status, {
349
+ center: true,
350
+ ...(r.status === 'gap' ? { fill: GAP_FILL, bold: true } : {}),
351
+ });
352
+ ws.mergeCells(rowIdx - 1, 4, rowIdx - 1, 6);
353
+ dataCell(row.getCell(4), r.items.join(', '));
354
+ dataCell(row.getCell(7), r.variantCount > 0 ? String(r.variantCount) : '', { center: true });
355
+ dataCell(row.getCell(8), r.note);
356
+ }
357
+ rowIdx += 1;
358
+ }
359
+ // --- Target × category grid ---
228
360
  dataCell(ws.getRow(rowIdx).getCell(2), 'Coverage matrix — delivery items (coverage variants) per target × category', { bold: true });
229
361
  rowIdx += 1;
230
362
  const gridHeader = ws.getRow(rowIdx++);
@@ -1 +1 @@
1
- {"version":3,"file":"render-xlsx.js","sourceRoot":"","sources":["../../../src/exporters/matrix/render-xlsx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-xlsx.js","sourceRoot":"","sources":["../../../src/exporters/matrix/render-xlsx.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,10 @@ export interface MapGroup {
22
22
  oracle: string;
23
23
  category: MapCategory;
24
24
  review: ReviewState;
25
+ /** Optional short digest of the coverage dimensions this item varies over
26
+ * (e.g. "required ×3 · format ×9 · full-width ×2"). Rendered on the parent row
27
+ * instead of concatenating every variant's title — the compact review view. */
28
+ dimensions?: string;
25
29
  /** Variant refs: `VP-ID` (all @cases rows when the scenario has a dataset) or `VP-ID#label`. */
26
30
  variants: string[];
27
31
  }
@@ -29,6 +33,11 @@ export interface MapDisposition {
29
33
  as: DispositionKind;
30
34
  reason?: string;
31
35
  }
36
+ export type RequirementStatus = 'covered' | 'partially_covered' | 'covered_elsewhere' | 'planned' | 'gap' | 'not_applicable';
37
+ export interface RequirementOverride {
38
+ status: RequirementStatus;
39
+ note?: string;
40
+ }
32
41
  export interface DeliveryMap {
33
42
  version: number;
34
43
  unit: string;
@@ -37,7 +46,12 @@ export interface DeliveryMap {
37
46
  groups: MapGroup[];
38
47
  /** VP-id → intentionally-not-grouped disposition. */
39
48
  dispositions: Record<string, MapDisposition>;
40
- /** VP-id → scenario fingerprint stamped at approval time (drift detector input). */
49
+ /** Requirement-id → reviewed status override (partially_covered / not_applicable / ).
50
+ * Without an override a requirement is `covered` when a variant traces to it, else `gap`. */
51
+ requirements: Record<string, RequirementOverride>;
52
+ /** VP-id → scenario fingerprint stamped at approval time (drift detector input).
53
+ * The reserved key `__map__` holds the fingerprint of the map's own semantic
54
+ * content (groups + dispositions) so edited wording re-opens review (GAP-09). */
41
55
  fingerprints: Record<string, string>;
42
56
  }
43
57
  /** Execution layers a variant verifies on — cross-checked with the verification scope. */
@@ -63,6 +77,9 @@ export interface CoverageVariant {
63
77
  layers: MatrixLayer[];
64
78
  /** @spec:* requirement traces. */
65
79
  traces: string[];
80
+ /** Variables this scenario produces at RUN TIME (`remember … as {{v}}`, capability
81
+ * bindings) — they never exist in test-data, so Gate D must not demand them. */
82
+ runtimeVars: string[];
66
83
  /** Condition summary: differentiating dimension shown on the sub-row. */
67
84
  condition: string;
68
85
  /** Resolved data pairs (test-data values / dataset-row columns), `key: value` lines. */
@@ -75,6 +92,9 @@ export interface CoverageVariant {
75
92
  oracleShape: string[];
76
93
  /** Oracle for display. */
77
94
  oracle: string[];
95
+ /** HOW to check (manual `Oracle:` lines — tools, panes, queries). Rendered as
96
+ * "Verification method" under the expected result, never inside it. */
97
+ verification: string[];
78
98
  /** Precondition profile: auth role + scenario-level Given shapes — signature input. */
79
99
  preconditionProfile: string;
80
100
  /** Human preconditions (auth + own Given steps). */
@@ -86,24 +106,38 @@ export interface CoverageVariant {
86
106
  /** Execution result, when the run report has one for this variant. */
87
107
  result?: PlaywrightResult;
88
108
  }
89
- export type ItemResult = 'passed' | 'failed' | 'blocked' | 'partial' | 'not_run';
109
+ export type ItemResult = 'passed' | 'failed' | 'blocked' | 'partial' | 'not_run' | 'na';
110
+ /** The exact word rendered in a variant's Result cell — the single vocabulary the
111
+ * parent's roll-up formula counts (COUNTIF is exact-match). */
112
+ export type VariantState = 'Passed' | 'Failed' | 'Blocked' | 'Pending' | 'N/A';
90
113
  /** One summarized row in the matrix — a group of variants sharing the signature. */
91
114
  export interface DeliveryItem {
92
115
  id: string;
93
116
  target: string;
94
117
  intent: string;
95
118
  oracle: string;
119
+ /** Short coverage-dimension digest from the map (compact parent view). */
120
+ dimensions?: string;
96
121
  category: MapCategory;
97
122
  review: ReviewState;
123
+ /** Highest priority among the variants (per-variant priorities stay on the sub-rows). */
98
124
  priority: string;
99
- mode: 'auto' | 'manual';
125
+ /** Execution mode is a coverage dimension, not a split — 'mixed' when auto and
126
+ * manual variants share one intent (e.g. account states needing seeded data). */
127
+ mode: 'auto' | 'manual' | 'mixed';
100
128
  layers: MatrixLayer[];
101
129
  /** Union of variant traces (exact per-variant traces stay on the variants). */
102
130
  traces: string[];
131
+ /** Preconditions shared by EVERY variant (the intersection) — written once here. */
103
132
  precondition: string[];
104
- /** Common trigger when all variants share one shape, else '(per variant)'. */
133
+ /** Leading trigger steps shared by every variant written once here; each
134
+ * variant renders only its remaining steps (`triggerDeltas`). */
105
135
  trigger: string[];
106
136
  variants: CoverageVariant[];
137
+ /** variant ref → its precondition lines that are not on the parent. */
138
+ preconditionDeltas: Record<string, string[]>;
139
+ /** variant ref → its trigger steps after the shared prefix. */
140
+ triggerDeltas: Record<string, string[]>;
107
141
  /** Derived roll-up — never entered independently (Gate F). */
108
142
  result: ItemResult;
109
143
  resultCounts: {
@@ -111,6 +145,7 @@ export interface DeliveryItem {
111
145
  failed: number;
112
146
  blocked: number;
113
147
  notRun: number;
148
+ na: number;
114
149
  };
115
150
  }
116
151
  export interface MatrixDisposition {
@@ -119,7 +154,16 @@ export interface MatrixDisposition {
119
154
  as: DispositionKind;
120
155
  reason: string;
121
156
  }
122
- export type GateId = 'A' | 'B' | 'C' | 'D' | 'E' | 'G';
157
+ /** One row of the requirement-coverage table (Coverage sheet). */
158
+ export interface RequirementCoverage {
159
+ id: string;
160
+ status: RequirementStatus;
161
+ /** Delivery items whose variants trace to this requirement. */
162
+ items: string[];
163
+ variantCount: number;
164
+ note: string;
165
+ }
166
+ export type GateId = 'A' | 'B' | 'C' | 'D' | 'E' | 'G' | 'K' | 'R' | 'W';
123
167
  export type FindingSeverity = 'error' | 'review' | 'warning';
124
168
  export interface MatrixFinding {
125
169
  gate: GateId;
@@ -145,9 +189,11 @@ export interface MatrixModel {
145
189
  formNo: string;
146
190
  items: DeliveryItem[];
147
191
  dispositions: MatrixDisposition[];
192
+ /** Requirement coverage — empty when the unit has no requirements/spec.md ids. */
193
+ requirements: RequirementCoverage[];
148
194
  findings: MatrixFinding[];
149
195
  manifest: MatrixManifest;
150
196
  }
151
- /** Complexity warning threshold (rules draft Gate I) — echoed in the manifest. */
152
- export declare const MAX_VARIANTS_PER_ITEM = 12;
197
+ /** Complexity warning threshold (rules draft Gate I; raised for compact grouping) — echoed in the manifest. */
198
+ export declare const MAX_VARIANTS_PER_ITEM = 20;
153
199
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/exporters/matrix/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/exporters/matrix/types.ts"],"names":[],"mappings":"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"}