@tekyzinc/gsd-t 2.56.13 → 2.56.14
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.
|
@@ -283,31 +283,40 @@ Execute the task above:
|
|
|
283
283
|
A test that would pass on an empty HTML page with the right element IDs is useless.
|
|
284
284
|
Every assertion must prove the FEATURE WORKS, not that the ELEMENT EXISTS.
|
|
285
285
|
7. **Visual Design Verification** (MANDATORY when design-to-code stack rule is active):
|
|
286
|
-
If the task involves UI implementation from a design reference, this step is NOT optional
|
|
286
|
+
If the task involves UI implementation from a design reference, this step is NOT optional.
|
|
287
|
+
**FAIL-BY-DEFAULT**: Every element is UNVERIFIED until you prove it matches. "Looks close" is not
|
|
288
|
+
a verdict. "Appears to match" is not a verdict. Assume NOTHING matches.
|
|
287
289
|
a. **Get the Figma reference screenshot**: If Figma MCP is available, call `get_screenshot` with the
|
|
288
290
|
relevant nodeId and fileKey from `.gsd-t/contracts/design-contract.md`. Save this as the reference.
|
|
289
291
|
If no Figma MCP, use the design image/screenshot provided in the contract.
|
|
290
|
-
b. **
|
|
292
|
+
b. **Build the element inventory**: Before comparing ANYTHING, enumerate every distinct visual
|
|
293
|
+
element in the design — walk top-to-bottom, left-to-right. Every chart, label, icon, heading,
|
|
294
|
+
card, button, spacing boundary, color, and data visualization detail gets its own row.
|
|
295
|
+
Data visualizations expand into multiple rows: chart type, orientation, axis labels, legend
|
|
296
|
+
position, bar/segment colors, data labels, grid lines, center text, tooltip style.
|
|
297
|
+
If a full-page inventory has fewer than 30 elements, you missed items — go back.
|
|
298
|
+
c. **Render the built component in a real browser**: Start the dev server if not running.
|
|
291
299
|
Use Claude Preview, Chrome MCP, or Playwright to open the page at the correct URL.
|
|
292
300
|
Capture screenshots at each target breakpoint:
|
|
293
301
|
- Mobile: 375px width
|
|
294
302
|
- Tablet: 768px width
|
|
295
303
|
- Desktop: 1280px width
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
-
|
|
301
|
-
-
|
|
302
|
-
-
|
|
303
|
-
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
f. **
|
|
310
|
-
and tag `[VISUAL]`.
|
|
304
|
+
d. **Structured element-by-element comparison** (MANDATORY FORMAT — no prose comparisons):
|
|
305
|
+
Produce a table with this exact structure for every element in the inventory:
|
|
306
|
+
`| # | Section | Element | Design (specific) | Implementation (specific) | Verdict |`
|
|
307
|
+
Rules:
|
|
308
|
+
- "Design" column: SPECIFIC values (chart type name, hex color, px size, font weight)
|
|
309
|
+
- "Implementation" column: SPECIFIC observed values from the screenshot — not code assumptions
|
|
310
|
+
- Verdict: only ✅ MATCH or ❌ DEVIATION — never "appears to match" or "need to verify"
|
|
311
|
+
- Data visualizations: chart type, axis orientation, axis labels, legend position, bar colors,
|
|
312
|
+
data label placement, grid lines, center text — each a SEPARATE row
|
|
313
|
+
- NEVER lead with "what's working" — the table IS the comparison, start with row 1
|
|
314
|
+
e. **Fix every ❌ DEVIATION** — fix each row individually, trace to design contract value.
|
|
315
|
+
Re-render after each batch of fixes. Update verdict only after visual re-verification.
|
|
316
|
+
Max 3 fix-and-recheck iterations per component.
|
|
317
|
+
f. **Final table**: After fixes, every row must be ✅ MATCH. Any remaining ❌ → log to
|
|
318
|
+
`.gsd-t/qa-issues.md` with severity CRITICAL and tag `[VISUAL]`. BLOCKS task completion.
|
|
319
|
+
Report: "Verified: {N}/{total} elements match at {breakpoints} breakpoints"
|
|
311
320
|
g. **Log results** in the design contract's Verification Status table.
|
|
312
321
|
h. **If no browser/preview tools available**: This is a CRITICAL blocker, not a warning.
|
|
313
322
|
Log to `.gsd-t/qa-issues.md`: "CRITICAL: No browser tools available for visual verification.
|
|
@@ -679,13 +688,27 @@ Rules:
|
|
|
679
688
|
behavior (state changes, data loaded, navigation works) or just check
|
|
680
689
|
that elements exist? Flag and rewrite any shallow/layout tests.
|
|
681
690
|
8. **Design Fidelity** (if .gsd-t/contracts/design-contract.md exists):
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
691
|
+
FAIL-BY-DEFAULT: assume NOTHING matches. Prove each element individually.
|
|
692
|
+
a. Open every implemented screen in a real browser. Screenshot at mobile
|
|
693
|
+
(375px), tablet (768px), desktop (1280px). Get Figma reference via
|
|
694
|
+
Figma MCP get_screenshot (or design contract images).
|
|
695
|
+
b. Build an element inventory: enumerate every distinct visual element
|
|
696
|
+
in the design top-to-bottom. Every chart, label, icon, heading, card,
|
|
697
|
+
spacing boundary, and color. Data visualizations expand: chart type,
|
|
698
|
+
orientation, axis labels, legend position, bar colors, data labels,
|
|
699
|
+
grid lines, center text — each a separate item.
|
|
700
|
+
c. Produce a structured comparison table (MANDATORY):
|
|
701
|
+
| # | Section | Element | Design (specific) | Implementation (specific) | Verdict |
|
|
702
|
+
Every element gets specific values in both columns (hex colors, chart
|
|
703
|
+
type names, px sizes, font weights — never vague descriptions).
|
|
704
|
+
Only valid verdicts: ✅ MATCH or ❌ DEVIATION.
|
|
705
|
+
NEVER write "appears to match" or "looks correct."
|
|
706
|
+
d. Any ❌ DEVIATION is a CRITICAL bug with full reproduction:
|
|
707
|
+
'Design: horizontal stacked bar with % labels inside bars.
|
|
708
|
+
Build: vertical grouped bar with labels above bars.' — this is a bug.
|
|
709
|
+
'Design: 32px Inter SemiBold. Build: 24px Inter Regular.' — this is a bug.
|
|
710
|
+
e. If the comparison table has fewer than 30 rows for a full page, the
|
|
711
|
+
audit is incomplete — go back and find the missing elements.
|
|
689
712
|
|
|
690
713
|
## Exploratory Testing (if Playwright MCP available)
|
|
691
714
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tekyzinc/gsd-t",
|
|
3
|
-
"version": "2.56.
|
|
3
|
+
"version": "2.56.14",
|
|
4
4
|
"description": "GSD-T: Contract-Driven Development for Claude Code — 51 slash commands with headless CI/CD mode, graph-powered code analysis, real-time agent dashboard, execution intelligence, task telemetry, doc-ripple enforcement, backlog management, impact analysis, test sync, milestone archival, and PRD generation",
|
|
5
5
|
"author": "Tekyz, Inc.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -322,7 +322,7 @@ After QA passes, every code-producing command spawns a **Red Team agent** — an
|
|
|
322
322
|
**Key Red Team rules:**
|
|
323
323
|
- **Inverted incentive**: More bugs found = more value. Zero bugs requires exhaustive proof of thoroughness.
|
|
324
324
|
- **False positive penalty**: Reporting non-bugs destroys credibility. Every bug must be reproduced with proof.
|
|
325
|
-
- **Exhaustive categories**: Contract violations, boundary inputs, state transitions, error paths, missing flows, regression, E2E functional gaps, design fidelity (when design contract exists: render in browser, screenshot,
|
|
325
|
+
- **Exhaustive categories**: Contract violations, boundary inputs, state transitions, error paths, missing flows, regression, E2E functional gaps, design fidelity (when design contract exists: render in browser, screenshot, build element inventory, produce structured comparison table with per-element MATCH/DEVIATION verdicts — never "looks close") — all must be attempted.
|
|
326
326
|
- **VERDICT**: `FAIL` (bugs found — blocks completion) or `GRUDGING PASS` (exhaustive search, nothing found).
|
|
327
327
|
- **Report**: Written to `.gsd-t/red-team-report.md`; bugs also appended to `.gsd-t/qa-issues.md`.
|
|
328
328
|
|
|
@@ -435,6 +435,8 @@ MANDATORY:
|
|
|
435
435
|
|
|
436
436
|
## 15. Visual Verification Loop
|
|
437
437
|
|
|
438
|
+
**FAIL-BY-DEFAULT RULE**: Every visual element starts as UNVERIFIED. You must prove each one matches — not assume it does. "Looks close" is not a verdict. "Appears to match" is not a verdict. The only valid verdicts are MATCH (with proof) or DEVIATION (with specifics). If you catch yourself writing "looks correct" or "appears right" without element-level proof, you are doing it wrong.
|
|
439
|
+
|
|
438
440
|
```
|
|
439
441
|
MANDATORY:
|
|
440
442
|
├── After implementing any design component, you MUST verify it visually.
|
|
@@ -445,38 +447,80 @@ MANDATORY:
|
|
|
445
447
|
│ If no MCP → use design image/screenshot from the design contract
|
|
446
448
|
│ You MUST have a reference image before proceeding
|
|
447
449
|
│
|
|
448
|
-
├── Step 2:
|
|
450
|
+
├── Step 2: BUILD THE ELEMENT INVENTORY
|
|
451
|
+
│ Before ANY comparison, enumerate every distinct visual element in the
|
|
452
|
+
│ design. Walk the design top-to-bottom, left-to-right. For each section:
|
|
453
|
+
│ - Section title text and icon
|
|
454
|
+
│ - Every chart/visualization (type, orientation, labels, legend, series count)
|
|
455
|
+
│ - Every data table (columns, row structure, sort indicators)
|
|
456
|
+
│ - Every KPI/stat card (value, label, icon, trend indicator)
|
|
457
|
+
│ - Every button, toggle, tab, dropdown
|
|
458
|
+
│ - Every text element (headings, body, captions, labels)
|
|
459
|
+
│ - Every spacing boundary (section gaps, card padding, element margins)
|
|
460
|
+
│ - Every color usage (backgrounds, borders, text, chart fills)
|
|
461
|
+
│ Write each element as a row in the comparison table (Step 4).
|
|
462
|
+
│ If the inventory has fewer than 20 elements for a full page, you missed items.
|
|
463
|
+
│
|
|
464
|
+
├── Step 3: RENDER IN A REAL BROWSER + SCREENSHOT
|
|
449
465
|
│ Start the dev server (npm run dev, etc.)
|
|
450
466
|
│ Open the page using Claude Preview, Chrome MCP, or Playwright
|
|
451
467
|
│ You MUST see real rendered output — not just read the code
|
|
452
|
-
│
|
|
453
|
-
|
|
454
|
-
│ Mobile (375px), Tablet (768px), Desktop (1280px) minimum
|
|
468
|
+
│ Capture screenshots at each target breakpoint:
|
|
469
|
+
│ Mobile (375px), Tablet (768px), Desktop (1280px) minimum
|
|
455
470
|
│ Each breakpoint is a separate screenshot
|
|
456
471
|
│
|
|
457
|
-
├── Step 4:
|
|
458
|
-
│
|
|
459
|
-
│
|
|
460
|
-
│
|
|
461
|
-
│
|
|
462
|
-
│
|
|
463
|
-
│
|
|
464
|
-
│
|
|
465
|
-
│
|
|
466
|
-
│
|
|
467
|
-
│
|
|
472
|
+
├── Step 4: STRUCTURED ELEMENT-BY-ELEMENT COMPARISON (MANDATORY FORMAT)
|
|
473
|
+
│ You MUST produce a comparison table with this exact structure.
|
|
474
|
+
│ Every row from the inventory gets its own row. No summarizing, no grouping,
|
|
475
|
+
│ no "appears to match" prose. Each element gets an individual verdict.
|
|
476
|
+
│
|
|
477
|
+
│ | # | Section | Element | Design (specific) | Implementation (specific) | Verdict |
|
|
478
|
+
│ |---|---------|---------|-------------------|--------------------------|---------|
|
|
479
|
+
│ | 1 | Summary | Chart type | Horizontal stacked bar | Vertical grouped bar | ❌ DEVIATION |
|
|
480
|
+
│ | 2 | Summary | Chart colors | #4285F4, #34A853, #FBBC04 | #4285F4, #34A853, #FBBC04 | ✅ MATCH |
|
|
481
|
+
│ | 3 | Summary | Y-axis labels | Tool names, left-aligned | Tool names, left-aligned | ✅ MATCH |
|
|
482
|
+
│ | 4 | Summary | Bar label placement | Inside bar, white text | Above bar, black text | ❌ DEVIATION |
|
|
483
|
+
│ | 5 | KPIs | Font size | 32px semibold | 24px regular | ❌ DEVIATION |
|
|
484
|
+
│ | ... | ... | ... | ... | ... | ... |
|
|
485
|
+
│
|
|
486
|
+
│ Rules for the table:
|
|
487
|
+
│ - "Design" column must have SPECIFIC values (chart type name, hex color,
|
|
488
|
+
│ pixel size, font weight name) — not vague descriptions
|
|
489
|
+
│ - "Implementation" column must have SPECIFIC observed values — not assumptions
|
|
490
|
+
│ from reading code. You must LOOK at the rendered screenshot.
|
|
491
|
+
│ - NEVER write "Appears to match" or "Looks correct" — measure and verify
|
|
492
|
+
│ - NEVER write "Need to verify" — verify it NOW or mark UNVERIFIED
|
|
493
|
+
│ - Data visualizations get MULTIPLE rows: chart type, axis orientation,
|
|
494
|
+
│ axis labels, legend position, bar/line/segment colors, data labels,
|
|
495
|
+
│ grid lines, tooltip style — each is a separate element
|
|
496
|
+
│ - If the table has fewer than 30 rows for a full-page comparison,
|
|
497
|
+
│ you skipped elements. Go back to the inventory.
|
|
498
|
+
│
|
|
499
|
+
│ DATA VISUALIZATION CHECKLIST (expand into table rows):
|
|
500
|
+
│ Chart type: bar/stacked-bar/grouped-bar/horizontal-bar/line/area/donut/pie/scatter
|
|
501
|
+
│ Chart orientation: horizontal vs vertical
|
|
502
|
+
│ Axis labels: present, position, font, values
|
|
503
|
+
│ Axis grid lines: present, style, color
|
|
504
|
+
│ Legend: position (top/bottom/right/inline), format, colors
|
|
505
|
+
│ Data labels: inside bars/above bars/on segments, font, color
|
|
506
|
+
│ Chart colors: exact hex per series/segment
|
|
507
|
+
│ Bar width/spacing: relative proportions
|
|
508
|
+
│ Center text (donut/pie): present, value, font
|
|
509
|
+
│ Tooltip style: if visible in design
|
|
468
510
|
│
|
|
469
511
|
├── Step 5: FIX EVERY DEVIATION
|
|
470
|
-
│
|
|
471
|
-
│
|
|
512
|
+
│ Fix each ❌ row from the table, one by one
|
|
513
|
+
│ Trace each fix to the design contract value
|
|
472
514
|
│ Re-render after each batch of fixes
|
|
515
|
+
│ Update the table: change ❌ to ✅ only after visual re-verification
|
|
473
516
|
│ Maximum 3 fix-and-recheck iterations
|
|
474
517
|
│
|
|
475
518
|
├── Step 6: FINAL VERIFICATION
|
|
476
519
|
│ After fixes, take fresh screenshots at all breakpoints
|
|
477
|
-
│
|
|
478
|
-
│
|
|
479
|
-
│ Task is NOT complete until
|
|
520
|
+
│ Produce a FINAL comparison table — every row must be ✅ MATCH
|
|
521
|
+
│ Any remaining ❌ → CRITICAL finding in .gsd-t/qa-issues.md
|
|
522
|
+
│ Task is NOT complete until every row shows ✅ MATCH
|
|
523
|
+
│ Count: "Verified: {N}/{total} elements match at {breakpoints} breakpoints"
|
|
480
524
|
│
|
|
481
525
|
├── NO BROWSER TOOLS = BLOCKER
|
|
482
526
|
│ If Claude Preview, Chrome MCP, and Playwright are ALL unavailable:
|
|
@@ -487,9 +531,9 @@ MANDATORY:
|
|
|
487
531
|
└── Log all verification results in the design contract Verification Status table
|
|
488
532
|
```
|
|
489
533
|
|
|
490
|
-
**BAD** —
|
|
534
|
+
**BAD** — A vague comparison table with "Appears to match" and "Looks correct" entries. Leading with "What's Working Well" before identifying deviations. Saying "implementation looks very close to the designs" without element-level proof.
|
|
491
535
|
|
|
492
|
-
**GOOD** —
|
|
536
|
+
**GOOD** — 45-row structured comparison table where every element has specific design values vs. specific implementation values. 12 deviations identified: wrong chart type (horizontal stacked bar → vertical grouped bar), wrong font size (32px → 24px), missing data labels inside bars, etc. Each fixed individually with re-render verification. Final table: 45/45 ✅ MATCH.
|
|
493
537
|
|
|
494
538
|
---
|
|
495
539
|
|