@sun-asterisk/sungen 2.6.7 → 2.6.10

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 (96) hide show
  1. package/dist/cli/commands/dashboard.d.ts +2 -1
  2. package/dist/cli/commands/dashboard.d.ts.map +1 -1
  3. package/dist/cli/commands/dashboard.js +9 -9
  4. package/dist/cli/commands/dashboard.js.map +1 -1
  5. package/dist/cli/commands/delivery.d.ts.map +1 -1
  6. package/dist/cli/commands/delivery.js +33 -0
  7. package/dist/cli/commands/delivery.js.map +1 -1
  8. package/dist/cli/index.js +1 -1
  9. package/dist/cli/index.js.map +1 -1
  10. package/dist/dashboard/history-store.d.ts +13 -9
  11. package/dist/dashboard/history-store.d.ts.map +1 -1
  12. package/dist/dashboard/history-store.js +19 -28
  13. package/dist/dashboard/history-store.js.map +1 -1
  14. package/dist/dashboard/html-renderer.d.ts +1 -1
  15. package/dist/dashboard/html-renderer.d.ts.map +1 -1
  16. package/dist/dashboard/html-renderer.js +2 -2
  17. package/dist/dashboard/html-renderer.js.map +1 -1
  18. package/dist/dashboard/snapshot-builder.d.ts.map +1 -1
  19. package/dist/dashboard/snapshot-builder.js +38 -2
  20. package/dist/dashboard/snapshot-builder.js.map +1 -1
  21. package/dist/dashboard/templates/index.html +142 -221
  22. package/dist/exporters/csv-exporter.d.ts +4 -0
  23. package/dist/exporters/csv-exporter.d.ts.map +1 -1
  24. package/dist/exporters/csv-exporter.js +35 -26
  25. package/dist/exporters/csv-exporter.js.map +1 -1
  26. package/dist/exporters/feature-parser.d.ts.map +1 -1
  27. package/dist/exporters/feature-parser.js +16 -4
  28. package/dist/exporters/feature-parser.js.map +1 -1
  29. package/dist/exporters/json-exporter.d.ts.map +1 -1
  30. package/dist/exporters/json-exporter.js +28 -20
  31. package/dist/exporters/json-exporter.js.map +1 -1
  32. package/dist/exporters/playwright-report-parser.d.ts.map +1 -1
  33. package/dist/exporters/playwright-report-parser.js +22 -5
  34. package/dist/exporters/playwright-report-parser.js.map +1 -1
  35. package/dist/exporters/scenario-merger.d.ts +23 -1
  36. package/dist/exporters/scenario-merger.d.ts.map +1 -1
  37. package/dist/exporters/scenario-merger.js +39 -0
  38. package/dist/exporters/scenario-merger.js.map +1 -1
  39. package/dist/exporters/step-formatter.d.ts +31 -3
  40. package/dist/exporters/step-formatter.d.ts.map +1 -1
  41. package/dist/exporters/step-formatter.js +52 -19
  42. package/dist/exporters/step-formatter.js.map +1 -1
  43. package/dist/exporters/sun-logo.d.ts +10 -0
  44. package/dist/exporters/sun-logo.d.ts.map +1 -0
  45. package/dist/exporters/sun-logo.js +13 -0
  46. package/dist/exporters/sun-logo.js.map +1 -0
  47. package/dist/exporters/test-data-resolver.d.ts +13 -5
  48. package/dist/exporters/test-data-resolver.d.ts.map +1 -1
  49. package/dist/exporters/test-data-resolver.js +36 -14
  50. package/dist/exporters/test-data-resolver.js.map +1 -1
  51. package/dist/exporters/types.d.ts +16 -0
  52. package/dist/exporters/types.d.ts.map +1 -1
  53. package/dist/exporters/xlsx-exporter.d.ts.map +1 -1
  54. package/dist/exporters/xlsx-exporter.js +169 -99
  55. package/dist/exporters/xlsx-exporter.js.map +1 -1
  56. package/dist/orchestrator/templates/ai-instructions/claude-cmd-create-test.md +1 -1
  57. package/dist/orchestrator/templates/ai-instructions/claude-skill-tc-generation.md +154 -67
  58. package/dist/orchestrator/templates/ai-instructions/claude-skill-test-design-techniques.md +39 -0
  59. package/dist/orchestrator/templates/ai-instructions/copilot-cmd-create-test.md +1 -1
  60. package/dist/orchestrator/templates/ai-instructions/github-skill-sungen-tc-generation.md +134 -61
  61. package/dist/orchestrator/templates/ai-instructions/github-skill-sungen-test-design-techniques.md +39 -0
  62. package/dist/orchestrator/templates/playwright.config.d.ts.map +1 -1
  63. package/dist/orchestrator/templates/playwright.config.js +2 -0
  64. package/dist/orchestrator/templates/playwright.config.js.map +1 -1
  65. package/dist/orchestrator/templates/playwright.config.ts +2 -0
  66. package/dist/orchestrator/templates/specs-base.d.ts.map +1 -1
  67. package/dist/orchestrator/templates/specs-base.js +1 -5
  68. package/dist/orchestrator/templates/specs-base.js.map +1 -1
  69. package/dist/orchestrator/templates/specs-base.ts +1 -5
  70. package/package.json +1 -1
  71. package/src/cli/commands/dashboard.ts +9 -9
  72. package/src/cli/commands/delivery.ts +30 -0
  73. package/src/cli/index.ts +1 -1
  74. package/src/dashboard/history-store.ts +22 -28
  75. package/src/dashboard/html-renderer.ts +6 -2
  76. package/src/dashboard/snapshot-builder.ts +36 -2
  77. package/src/dashboard/templates/index.html +142 -221
  78. package/src/dashboard/types.ts +1 -1
  79. package/src/exporters/csv-exporter.ts +44 -27
  80. package/src/exporters/feature-parser.ts +27 -8
  81. package/src/exporters/json-exporter.ts +31 -21
  82. package/src/exporters/playwright-report-parser.ts +23 -5
  83. package/src/exporters/scenario-merger.ts +65 -1
  84. package/src/exporters/step-formatter.ts +48 -23
  85. package/src/exporters/sun-logo.ts +10 -0
  86. package/src/exporters/test-data-resolver.ts +37 -13
  87. package/src/exporters/types.ts +18 -1
  88. package/src/exporters/xlsx-exporter.ts +176 -101
  89. package/src/orchestrator/templates/ai-instructions/claude-cmd-create-test.md +1 -1
  90. package/src/orchestrator/templates/ai-instructions/claude-skill-tc-generation.md +154 -67
  91. package/src/orchestrator/templates/ai-instructions/claude-skill-test-design-techniques.md +39 -0
  92. package/src/orchestrator/templates/ai-instructions/copilot-cmd-create-test.md +1 -1
  93. package/src/orchestrator/templates/ai-instructions/github-skill-sungen-tc-generation.md +134 -61
  94. package/src/orchestrator/templates/ai-instructions/github-skill-sungen-test-design-techniques.md +39 -0
  95. package/src/orchestrator/templates/playwright.config.ts +2 -0
  96. package/src/orchestrator/templates/specs-base.ts +1 -5
@@ -52,11 +52,12 @@ const fs = __importStar(require("fs"));
52
52
  const path = __importStar(require("path"));
53
53
  const exceljs_1 = __importDefault(require("exceljs"));
54
54
  const package_info_1 = require("./package-info");
55
+ const sun_logo_1 = require("./sun-logo");
55
56
  const COL_COUNT = 16;
56
- const HEADER_FILL = 'FF1F4E78'; // deep blue band
57
- const HEADER_FONT = 'FFFFFFFF';
57
+ const HEADER_FILL = 'FFD9D2E9'; // lavender matches the summary-header band on row 6
58
+ const HEADER_FONT = 'FF000000'; // black text reads better on the light lavender
58
59
  const META_FILL = 'FFDCE6F1'; // soft blue for meta rows
59
- const CATEGORY_FILL = 'FFFFF2CC'; // soft yellow for group dividers
60
+ const CATEGORY_FILL = 'FFD9D2E9'; // same lavender for group dividers (Accessing / GUI / Function)
60
61
  const BORDER_COLOR = 'FFBFBFBF';
61
62
  function applyBorder(cell) {
62
63
  cell.border = {
@@ -77,103 +78,172 @@ function renderXlsx(summary, rows, specLink) {
77
78
  const d = new Date();
78
79
  return `${String(d.getDate()).padStart(2, '0')}/${String(d.getMonth() + 1).padStart(2, '0')}/${d.getFullYear()}`;
79
80
  })();
80
- const total = summary.total || 1;
81
- const pct = (n) => `${Math.round((n / total) * 100)}%`;
82
- // -- Column widths (matches CSV column order) --
81
+ // -- Column widths matching template_report.xlsx (Sample sheet) --
83
82
  ws.columns = [
84
- { width: 18 }, // TC ID
85
- { width: 42 }, // Category 1
86
- { width: 14 }, // Category 2
87
- { width: 26 }, // Category 3
88
- { width: 14 }, // Category 4
89
- { width: 36 }, // Pre-condition
90
- { width: 30 }, // Test Data
91
- { width: 46 }, // Steps
92
- { width: 52 }, // Expected results
93
- { width: 10 }, // Priority
94
- { width: 14 }, // Testcase type
95
- { width: 14 }, // Test Result
96
- { width: 14 }, // Executed Date
97
- { width: 16 }, // Test Executor
98
- { width: 38 }, // Test Environment
99
- { width: 40 }, // Note
83
+ { width: 6.38 }, // A — TC ID
84
+ { width: 12.5 }, // B — Screen/Function
85
+ { width: 15.38 }, // C — Big item
86
+ { width: 16.25 }, // D — Medium item
87
+ { width: 17 }, // E — Test Object
88
+ { width: 25.5 }, // F — Pre-condition
89
+ { width: 24.88 }, // G — Test Data
90
+ { width: 24.88 }, // H — Steps
91
+ { width: 41 }, // I — Expected results
92
+ { width: 12 }, // J — Priority
93
+ { width: 13.5 }, // K — Testcase type
94
+ { width: 15.88 }, // L — Test Result
95
+ { width: 13.5 }, // M — Executed Date
96
+ { width: 16.5 }, // N — Test Executor
97
+ { width: 23 }, // O — Test Environment
98
+ { width: 29 }, // P — Note
100
99
  ];
101
- // -- Top metadata band (rows 1-4) --
100
+ // -- Top metadata band (rows 1-4) — 1:1 with template_report.xlsx --
101
+ const TIMES = 'Times New Roman';
102
+ const ARIAL_FONT = 'Arial';
103
+ const BLACK = { argb: 'FF000000' };
104
+ const WHITE = { argb: 'FFFFFFFF' };
105
+ const LAVENDER = { argb: 'FFD9D2E9' };
106
+ const thinBlack = { style: 'thin', color: BLACK };
107
+ const allBordersBlack = { top: thinBlack, left: thinBlack, bottom: thinBlack, right: thinBlack };
108
+ // Ensure rows 1..8 exist before merging.
109
+ for (let r = 1; r <= 8; r++)
110
+ ws.getRow(r);
111
+ ws.mergeCells('A1:C3');
112
+ ws.mergeCells('D1:F3');
113
+ ws.mergeCells('G1:H1');
114
+ ws.mergeCells('G2:H2');
115
+ ws.mergeCells('G3:H3');
116
+ ws.mergeCells('A4:F4');
117
+ ws.mergeCells('G4:H4');
118
+ // A1 (logo band, merged A1:C3) — give it bordering + embed the Sun* logo.
119
+ const a1 = ws.getCell('A1');
120
+ a1.alignment = { horizontal: 'center', vertical: 'middle' };
121
+ a1.border = allBordersBlack;
122
+ // Embed Sun* logo using a oneCellAnchor + explicit pixel `ext`, exactly
123
+ // like the template. tl is offset into the merged band so the logo lands
124
+ // centred in A1:C3 instead of pinned to the top-left corner.
125
+ try {
126
+ const imageId = wb.addImage({
127
+ buffer: Buffer.from(sun_logo_1.SUN_LOGO_PNG_BASE64, 'base64'),
128
+ extension: 'png',
129
+ });
130
+ // A1:C3 ≈ 240 × 60 px. For a 90×50 logo centred horizontally / vertically:
131
+ // left margin = (240 − 90)/2 ≈ 75 px → 9525 EMU/px → 714375 EMU
132
+ // top margin = (60 − 50)/2 ≈ 5 px → 47625 EMU
133
+ // ExcelJS's fractional `col`/`row` clamps to a small EMU range, so we
134
+ // bypass it and write `native*` fields directly (the underlying XML uses
135
+ // the same field names).
136
+ ws.addImage(imageId, {
137
+ tl: { nativeCol: 0, nativeColOff: 714375, nativeRow: 0, nativeRowOff: 47625 },
138
+ ext: { width: 90, height: 50 },
139
+ editAs: 'oneCell',
140
+ });
141
+ }
142
+ catch { /* logo is decorative — never block export */ }
143
+ // D1 (TESTCASE title)
102
144
  const titleLabel = `${summary.screen.toUpperCase()} TESTCASE`;
103
- const titleRow = ws.addRow(['', '', '', titleLabel, '', '', 'No: BM-2-901-13']);
104
- titleRow.getCell(4).font = { bold: true, size: 16 };
105
- titleRow.getCell(4).alignment = { horizontal: 'center', vertical: 'middle' };
106
- ws.mergeCells(titleRow.number, 4, titleRow.number, 6);
107
- titleRow.getCell(7).font = { bold: true };
108
- titleRow.height = 22;
109
- const versionRow = ws.addRow(['', '', '', '', '', '', `Version: ${(0, package_info_1.getPackageVersion)()}`]);
110
- versionRow.getCell(7).font = { bold: true };
111
- const dateRow = ws.addRow(['', '', '', '', '', '', `Issue Date: ${issueDate}`]);
112
- dateRow.getCell(7).font = { bold: true };
113
- const companyRow = ws.addRow([
114
- 'SUN ASTERISK VIETNAM CO., LTD',
115
- '',
116
- '',
117
- '',
118
- '',
119
- '',
120
- 'ISO/IEC 27001:2022 & ISO 9001:2015',
121
- ]);
122
- companyRow.getCell(1).font = { bold: true };
123
- companyRow.getCell(7).font = { bold: true };
124
- ws.addRow([]); // spacer
125
- // -- Summary band --
126
- const summaryHeader = ws.addRow([
127
- '',
128
- '',
129
- 'Total TCs',
130
- 'Passed',
131
- 'Failed',
132
- 'Pending',
133
- 'N/A',
134
- 'Remaining',
135
- ]);
136
- for (let i = 3; i <= 8; i++) {
137
- const c = summaryHeader.getCell(i);
138
- c.font = { bold: true, color: { argb: HEADER_FONT } };
139
- c.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: HEADER_FILL } };
140
- c.alignment = { horizontal: 'center', vertical: 'middle' };
141
- applyBorder(c);
145
+ const d1 = ws.getCell('D1');
146
+ d1.value = titleLabel;
147
+ d1.font = { bold: true, size: 18, name: TIMES };
148
+ d1.alignment = { horizontal: 'center', vertical: 'middle', wrapText: true };
149
+ d1.border = allBordersBlack;
150
+ // G1 — No: BM-2-901-13
151
+ const g1 = ws.getCell('G1');
152
+ g1.value = 'No: BM-2-901-13';
153
+ g1.font = { size: 12, name: TIMES };
154
+ g1.alignment = { vertical: 'middle' };
155
+ g1.border = { top: thinBlack, left: thinBlack, right: thinBlack };
156
+ // G2 Version
157
+ const g2 = ws.getCell('G2');
158
+ g2.value = `Version: ${(0, package_info_1.getPackageVersion)()}`;
159
+ g2.font = { size: 12, name: TIMES };
160
+ g2.alignment = { vertical: 'middle' };
161
+ g2.border = { left: thinBlack, right: thinBlack };
162
+ // G3 Issue Date
163
+ const g3 = ws.getCell('G3');
164
+ g3.value = `Issue Date: ${issueDate}`;
165
+ g3.font = { size: 12, name: TIMES };
166
+ g3.alignment = { vertical: 'middle' };
167
+ g3.border = { left: thinBlack, right: thinBlack, bottom: thinBlack };
168
+ // A4 SUN ASTERISK VIETNAM CO., LTD
169
+ const a4 = ws.getCell('A4');
170
+ a4.value = 'SUN ASTERISK VIETNAM CO., LTD';
171
+ a4.font = { bold: true, size: 10, name: TIMES };
172
+ a4.alignment = { vertical: 'middle' };
173
+ a4.border = allBordersBlack;
174
+ // G4 — ISO/IEC ...
175
+ const g4 = ws.getCell('G4');
176
+ g4.value = 'ISO/IEC 27001:2022 & ISO 9001:2015';
177
+ g4.font = { bold: true, size: 10, name: TIMES };
178
+ g4.alignment = { horizontal: 'right', vertical: 'middle', wrapText: true };
179
+ g4.border = allBordersBlack;
180
+ // -- Row 5: spacer (height 12) --
181
+ ws.getRow(5).height = 12;
182
+ // -- Row 6: Summary headers (cols C..H), lavender fill --
183
+ const sumLabels = {
184
+ C: 'Total TCs', D: 'Passed', E: 'Failed', F: 'Pending', G: 'N/A', H: 'Remaining',
185
+ };
186
+ for (const [col, label] of Object.entries(sumLabels)) {
187
+ const c = ws.getCell(`${col}6`);
188
+ c.value = label;
189
+ c.font = { bold: true, size: 10, color: BLACK, name: ARIAL_FONT };
190
+ c.fill = { type: 'pattern', pattern: 'solid', fgColor: LAVENDER };
191
+ c.alignment = { horizontal: 'center', vertical: 'top' };
192
+ c.border = allBordersBlack;
142
193
  }
143
- const summaryCounts = ws.addRow([
144
- '',
145
- '',
146
- summary.total,
147
- summary.passed,
148
- summary.failed,
149
- summary.pending,
150
- summary.na,
151
- summary.pending + summary.na,
152
- ]);
153
- for (let i = 3; i <= 8; i++) {
154
- const c = summaryCounts.getCell(i);
155
- c.font = { bold: true };
156
- c.alignment = { horizontal: 'center' };
157
- c.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: META_FILL } };
158
- applyBorder(c);
194
+ ws.getRow(6).height = 12;
195
+ // -- Row 7: Counts (cols C..H), live formulas referencing the data area --
196
+ // Data table starts at row 15 (col header at row 14, divider at row 14? actually
197
+ // header at row 13 + divider at 14 + first data at 15). The formulas read col L
198
+ // (Test Result) for status counts, col A (TC ID) for total via COUNTA.
199
+ const COUNT_RANGE_END = 10000;
200
+ const r7Values = {
201
+ C: { formula: `COUNTA(A15:A${COUNT_RANGE_END})`, result: summary.total },
202
+ D: { formula: `COUNTIF(L15:L${COUNT_RANGE_END},"Passed")`, result: summary.passed },
203
+ E: { formula: `COUNTIF(L15:L${COUNT_RANGE_END},"Failed")`, result: summary.failed },
204
+ F: { formula: `COUNTIF(L15:L${COUNT_RANGE_END},"Pending")`, result: summary.pending },
205
+ G: { formula: `COUNTIF(L15:L${COUNT_RANGE_END},"N/A")`, result: summary.na },
206
+ H: { formula: 'C7-D7-G7', result: summary.failed + summary.pending },
207
+ };
208
+ for (const [col, val] of Object.entries(r7Values)) {
209
+ const c = ws.getCell(`${col}7`);
210
+ c.value = val;
211
+ c.font = { size: 10, color: BLACK, name: ARIAL_FONT };
212
+ c.fill = { type: 'pattern', pattern: 'solid', fgColor: WHITE };
213
+ c.alignment = { horizontal: 'center', vertical: 'top' };
214
+ c.border = allBordersBlack;
215
+ if (col === 'H')
216
+ c.numFmt = '#,##0';
159
217
  }
160
- const summaryPct = ws.addRow([
161
- '',
162
- '',
163
- '',
164
- pct(summary.passed),
165
- pct(summary.failed),
166
- pct(summary.pending),
167
- pct(summary.na),
168
- pct(summary.pending + summary.na),
169
- ]);
170
- for (let i = 4; i <= 8; i++) {
171
- const c = summaryPct.getCell(i);
172
- c.alignment = { horizontal: 'center' };
173
- c.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: META_FILL } };
174
- applyBorder(c);
218
+ ws.getRow(7).height = 12;
219
+ // C8 has no value in the template but still needs a border so the band
220
+ // visually closes underneath "Total TCs".
221
+ const c8 = ws.getCell('C8');
222
+ c8.font = { size: 10, color: BLACK, name: ARIAL_FONT };
223
+ c8.fill = { type: 'pattern', pattern: 'solid', fgColor: WHITE };
224
+ c8.alignment = { horizontal: 'center', vertical: 'top' };
225
+ c8.border = allBordersBlack;
226
+ // -- Row 8: Percentages (cols D..H), formula = count / (Total − N/A) --
227
+ const r8Values = {
228
+ D: { formula: 'IFERROR(D7/(C7-G7),0)', result: summary.passed / Math.max(1, summary.total - summary.na) },
229
+ E: { formula: 'IFERROR(E7/(C7-G7),0)', result: summary.failed / Math.max(1, summary.total - summary.na) },
230
+ F: { formula: 'IFERROR(F7/(C7-G7),0)', result: summary.pending / Math.max(1, summary.total - summary.na) },
231
+ G: { formula: 'IFERROR(G7/(C7-G7),0)', result: summary.na / Math.max(1, summary.total - summary.na) },
232
+ H: { formula: 'IFERROR(H7/(C7-G7),0)', result: (summary.failed + summary.pending) / Math.max(1, summary.total - summary.na) },
233
+ };
234
+ for (const [col, val] of Object.entries(r8Values)) {
235
+ const c = ws.getCell(`${col}8`);
236
+ c.value = val;
237
+ c.font = { size: 10, color: BLACK, name: ARIAL_FONT };
238
+ c.fill = { type: 'pattern', pattern: 'solid', fgColor: WHITE };
239
+ c.alignment = { horizontal: 'center', vertical: 'top' };
240
+ c.border = allBordersBlack;
241
+ c.numFmt = '0%';
175
242
  }
176
- ws.addRow([]); // spacer
243
+ ws.getRow(8).height = 12;
244
+ // After rows 1-8 are populated, append a blank row 9 spacer.
245
+ while (ws.rowCount < 9)
246
+ ws.addRow([]);
177
247
  const specRow = ws.addRow(['Spec/Design link:', specLink]);
178
248
  specRow.getCell(1).font = { bold: true };
179
249
  specRow.getCell(2).font = { color: { argb: 'FF1F4E78' }, underline: true };
@@ -183,10 +253,10 @@ function renderXlsx(summary, rows, specLink) {
183
253
  // -- Column header row (bold, filled, wrapped) --
184
254
  const headerRow = ws.addRow([
185
255
  'TC ID*',
186
- '{Category 1}',
187
- '{Category 2}',
188
- '{Category 3}',
189
- '{Category 4}',
256
+ 'Screen/Function',
257
+ 'Big item',
258
+ 'Medium item',
259
+ 'Test Object',
190
260
  'Pre-condition',
191
261
  'Test Data',
192
262
  'Steps*',
@@ -232,10 +302,10 @@ function renderXlsx(summary, rows, specLink) {
232
302
  for (const r of groupRows) {
233
303
  const row = ws.addRow([
234
304
  r.tcId,
235
- r.category1,
236
305
  '',
237
306
  '',
238
307
  '',
308
+ r.category1,
239
309
  r.precondition,
240
310
  r.testData,
241
311
  r.steps,
@@ -1 +1 @@
1
- {"version":3,"file":"xlsx-exporter.js","sourceRoot":"","sources":["../../src/exporters/xlsx-exporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xlsx-exporter.js","sourceRoot":"","sources":["../../src/exporters/xlsx-exporter.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,7 @@ Parse **name** from `$ARGUMENTS`. If missing, ask the user.
51
51
 
52
52
  Summarize what you found in requirements and present to the user.
53
53
 
54
- 4. Follow the `sungen-tc-generation` skill for section identification, viewpoint generation, and output format. **For flows**, use the "Flow Test Generation" section in the skill. When requirements exist, use the "Requirements-Driven Generation" strategy.
54
+ 4. Follow the `sungen-tc-generation` skill for section identification, viewpoint generation, and output format. **For flows**, use the "Flow Test Generation" section in the skill. When requirements exist, use the "Requirements-Driven Generation" strategy. **For Tier 1**, apply the **Lightweight Guard** — verify required fields, validation rules, business rules, security checks, and key state transitions all have TCs after generation. **For Tier 2+**, **MUST** apply the full **Mapping Contract** — walk every `spec.md` section top-to-bottom and produce the indicated TCs per Table 1; handle `test-viewpoint.md` per Table 2. Do not silently skip sections.
55
55
  5. Generate or update `.feature` + `test-data.yaml` following `sungen-gherkin-syntax` and `sungen-tc-generation` skills. **For flows**: use `[Screen:Element]` namespace format, namespace test-data by phase, add `@flow` tag.
56
56
  6. Show summary, then use `AskUserQuestion` to offer next steps based on which tier was just generated:
57
57