@tekyzinc/gsd-t 2.56.13 → 2.56.15
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,46 @@ 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. **
|
|
291
|
-
|
|
292
|
-
|
|
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. **Open side-by-side browser sessions for direct visual comparison**:
|
|
299
|
+
Start the dev server if not running. Open TWO views simultaneously:
|
|
300
|
+
- **View 1 — Built frontend**: Use Claude Preview, Chrome MCP, or Playwright to open the
|
|
301
|
+
implemented page at the correct URL. Navigate to the exact route/component being verified.
|
|
302
|
+
- **View 2 — Original design**: If Figma URL → open the Figma page in another browser tab.
|
|
303
|
+
If design image file → open the image in a browser tab (`file://` path or HTML wrapper).
|
|
304
|
+
If Figma MCP screenshot → open that screenshot image.
|
|
305
|
+
Walk through each component with both views visible. Compare element-by-element at matching
|
|
306
|
+
zoom levels. Capture screenshot pairs (design + implementation) at each target breakpoint:
|
|
293
307
|
- Mobile: 375px width
|
|
294
308
|
- Tablet: 768px width
|
|
295
309
|
- Desktop: 1280px width
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
-
|
|
301
|
-
-
|
|
302
|
-
-
|
|
303
|
-
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
f. **
|
|
310
|
-
and tag `[VISUAL]`.
|
|
310
|
+
d. **Structured element-by-element comparison** (MANDATORY FORMAT — no prose comparisons):
|
|
311
|
+
Produce a table with this exact structure for every element in the inventory:
|
|
312
|
+
`| # | Section | Element | Design (specific) | Implementation (specific) | Verdict |`
|
|
313
|
+
Rules:
|
|
314
|
+
- "Design" column: SPECIFIC values (chart type name, hex color, px size, font weight)
|
|
315
|
+
- "Implementation" column: SPECIFIC observed values from the screenshot — not code assumptions
|
|
316
|
+
- Verdict: only ✅ MATCH or ❌ DEVIATION — never "appears to match" or "need to verify"
|
|
317
|
+
- Data visualizations: chart type, axis orientation, axis labels, legend position, bar colors,
|
|
318
|
+
data label placement, grid lines, center text — each a SEPARATE row
|
|
319
|
+
- NEVER lead with "what's working" — the table IS the comparison, start with row 1
|
|
320
|
+
e. **Fix every ❌ DEVIATION** — fix each row individually, trace to design contract value.
|
|
321
|
+
Re-render after each batch of fixes. Update verdict only after visual re-verification.
|
|
322
|
+
Max 3 fix-and-recheck iterations per component.
|
|
323
|
+
f. **Final table**: After fixes, every row must be ✅ MATCH. Any remaining ❌ → log to
|
|
324
|
+
`.gsd-t/qa-issues.md` with severity CRITICAL and tag `[VISUAL]`. BLOCKS task completion.
|
|
325
|
+
Report: "Verified: {N}/{total} elements match at {breakpoints} breakpoints"
|
|
311
326
|
g. **Log results** in the design contract's Verification Status table.
|
|
312
327
|
h. **If no browser/preview tools available**: This is a CRITICAL blocker, not a warning.
|
|
313
328
|
Log to `.gsd-t/qa-issues.md`: "CRITICAL: No browser tools available for visual verification.
|
|
@@ -679,13 +694,27 @@ Rules:
|
|
|
679
694
|
behavior (state changes, data loaded, navigation works) or just check
|
|
680
695
|
that elements exist? Flag and rewrite any shallow/layout tests.
|
|
681
696
|
8. **Design Fidelity** (if .gsd-t/contracts/design-contract.md exists):
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
697
|
+
FAIL-BY-DEFAULT: assume NOTHING matches. Prove each element individually.
|
|
698
|
+
a. Open every implemented screen in a real browser. Screenshot at mobile
|
|
699
|
+
(375px), tablet (768px), desktop (1280px). Get Figma reference via
|
|
700
|
+
Figma MCP get_screenshot (or design contract images).
|
|
701
|
+
b. Build an element inventory: enumerate every distinct visual element
|
|
702
|
+
in the design top-to-bottom. Every chart, label, icon, heading, card,
|
|
703
|
+
spacing boundary, and color. Data visualizations expand: chart type,
|
|
704
|
+
orientation, axis labels, legend position, bar colors, data labels,
|
|
705
|
+
grid lines, center text — each a separate item.
|
|
706
|
+
c. Produce a structured comparison table (MANDATORY):
|
|
707
|
+
| # | Section | Element | Design (specific) | Implementation (specific) | Verdict |
|
|
708
|
+
Every element gets specific values in both columns (hex colors, chart
|
|
709
|
+
type names, px sizes, font weights — never vague descriptions).
|
|
710
|
+
Only valid verdicts: ✅ MATCH or ❌ DEVIATION.
|
|
711
|
+
NEVER write "appears to match" or "looks correct."
|
|
712
|
+
d. Any ❌ DEVIATION is a CRITICAL bug with full reproduction:
|
|
713
|
+
'Design: horizontal stacked bar with % labels inside bars.
|
|
714
|
+
Build: vertical grouped bar with labels above bars.' — this is a bug.
|
|
715
|
+
'Design: 32px Inter SemiBold. Build: 24px Inter Regular.' — this is a bug.
|
|
716
|
+
e. If the comparison table has fewer than 30 rows for a full page, the
|
|
717
|
+
audit is incomplete — go back and find the missing elements.
|
|
689
718
|
|
|
690
719
|
## Exploratory Testing (if Playwright MCP available)
|
|
691
720
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tekyzinc/gsd-t",
|
|
3
|
-
"version": "2.56.
|
|
3
|
+
"version": "2.56.15",
|
|
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,98 @@ 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: OPEN SIDE-BY-SIDE BROWSER SESSIONS
|
|
449
465
|
│ Start the dev server (npm run dev, etc.)
|
|
450
|
-
│ Open
|
|
451
|
-
│
|
|
466
|
+
│ Open TWO browser views simultaneously for direct visual comparison:
|
|
467
|
+
│
|
|
468
|
+
│ VIEW 1 — BUILT FRONTEND:
|
|
469
|
+
│ Open the implemented page using Claude Preview, Chrome MCP, or Playwright
|
|
470
|
+
│ Navigate to the exact route/component being verified
|
|
471
|
+
│ You MUST see real rendered output — not just read the code
|
|
472
|
+
│
|
|
473
|
+
│ VIEW 2 — ORIGINAL DESIGN REFERENCE:
|
|
474
|
+
│ If Figma URL available → open the Figma page in a browser tab/window
|
|
475
|
+
│ Use the Figma URL from the design contract Source Reference field
|
|
476
|
+
│ Navigate to the specific frame/component being compared
|
|
477
|
+
│ If design image file → open the image in a browser tab/window
|
|
478
|
+
│ Use: file://{absolute-path-to-image} or render in an HTML page
|
|
479
|
+
│ If Figma MCP screenshot was captured → open that screenshot image
|
|
480
|
+
│
|
|
481
|
+
│ COMPARISON APPROACH:
|
|
482
|
+
│ With both views open, walk through each component/section:
|
|
483
|
+
│ - Position views side-by-side (or switch between tabs)
|
|
484
|
+
│ - Compare each element visually at the same zoom level
|
|
485
|
+
│ - Screenshot BOTH views at matching viewport sizes
|
|
486
|
+
│ Capture implementation screenshots at each target breakpoint:
|
|
487
|
+
│ Mobile (375px), Tablet (768px), Desktop (1280px) minimum
|
|
488
|
+
│ Each breakpoint is a separate screenshot pair (design + implementation)
|
|
489
|
+
│
|
|
490
|
+
├── Step 4: STRUCTURED ELEMENT-BY-ELEMENT COMPARISON (MANDATORY FORMAT)
|
|
491
|
+
│ You MUST produce a comparison table with this exact structure.
|
|
492
|
+
│ Every row from the inventory gets its own row. No summarizing, no grouping,
|
|
493
|
+
│ no "appears to match" prose. Each element gets an individual verdict.
|
|
494
|
+
│
|
|
495
|
+
│ | # | Section | Element | Design (specific) | Implementation (specific) | Verdict |
|
|
496
|
+
│ |---|---------|---------|-------------------|--------------------------|---------|
|
|
497
|
+
│ | 1 | Summary | Chart type | Horizontal stacked bar | Vertical grouped bar | ❌ DEVIATION |
|
|
498
|
+
│ | 2 | Summary | Chart colors | #4285F4, #34A853, #FBBC04 | #4285F4, #34A853, #FBBC04 | ✅ MATCH |
|
|
499
|
+
│ | 3 | Summary | Y-axis labels | Tool names, left-aligned | Tool names, left-aligned | ✅ MATCH |
|
|
500
|
+
│ | 4 | Summary | Bar label placement | Inside bar, white text | Above bar, black text | ❌ DEVIATION |
|
|
501
|
+
│ | 5 | KPIs | Font size | 32px semibold | 24px regular | ❌ DEVIATION |
|
|
502
|
+
│ | ... | ... | ... | ... | ... | ... |
|
|
452
503
|
│
|
|
453
|
-
|
|
454
|
-
│
|
|
455
|
-
│
|
|
504
|
+
│ Rules for the table:
|
|
505
|
+
│ - "Design" column must have SPECIFIC values (chart type name, hex color,
|
|
506
|
+
│ pixel size, font weight name) — not vague descriptions
|
|
507
|
+
│ - "Implementation" column must have SPECIFIC observed values — not assumptions
|
|
508
|
+
│ from reading code. You must LOOK at the rendered screenshot.
|
|
509
|
+
│ - NEVER write "Appears to match" or "Looks correct" — measure and verify
|
|
510
|
+
│ - NEVER write "Need to verify" — verify it NOW or mark UNVERIFIED
|
|
511
|
+
│ - Data visualizations get MULTIPLE rows: chart type, axis orientation,
|
|
512
|
+
│ axis labels, legend position, bar/line/segment colors, data labels,
|
|
513
|
+
│ grid lines, tooltip style — each is a separate element
|
|
514
|
+
│ - If the table has fewer than 30 rows for a full-page comparison,
|
|
515
|
+
│ you skipped elements. Go back to the inventory.
|
|
456
516
|
│
|
|
457
|
-
|
|
458
|
-
│
|
|
459
|
-
│
|
|
460
|
-
│
|
|
461
|
-
│
|
|
462
|
-
│
|
|
463
|
-
│
|
|
464
|
-
│
|
|
465
|
-
│
|
|
466
|
-
│
|
|
467
|
-
│
|
|
517
|
+
│ DATA VISUALIZATION CHECKLIST (expand into table rows):
|
|
518
|
+
│ Chart type: bar/stacked-bar/grouped-bar/horizontal-bar/line/area/donut/pie/scatter
|
|
519
|
+
│ Chart orientation: horizontal vs vertical
|
|
520
|
+
│ Axis labels: present, position, font, values
|
|
521
|
+
│ Axis grid lines: present, style, color
|
|
522
|
+
│ Legend: position (top/bottom/right/inline), format, colors
|
|
523
|
+
│ Data labels: inside bars/above bars/on segments, font, color
|
|
524
|
+
│ Chart colors: exact hex per series/segment
|
|
525
|
+
│ Bar width/spacing: relative proportions
|
|
526
|
+
│ Center text (donut/pie): present, value, font
|
|
527
|
+
│ Tooltip style: if visible in design
|
|
468
528
|
│
|
|
469
529
|
├── Step 5: FIX EVERY DEVIATION
|
|
470
|
-
│
|
|
471
|
-
│
|
|
530
|
+
│ Fix each ❌ row from the table, one by one
|
|
531
|
+
│ Trace each fix to the design contract value
|
|
472
532
|
│ Re-render after each batch of fixes
|
|
533
|
+
│ Update the table: change ❌ to ✅ only after visual re-verification
|
|
473
534
|
│ Maximum 3 fix-and-recheck iterations
|
|
474
535
|
│
|
|
475
536
|
├── Step 6: FINAL VERIFICATION
|
|
476
537
|
│ After fixes, take fresh screenshots at all breakpoints
|
|
477
|
-
│
|
|
478
|
-
│
|
|
479
|
-
│ Task is NOT complete until
|
|
538
|
+
│ Produce a FINAL comparison table — every row must be ✅ MATCH
|
|
539
|
+
│ Any remaining ❌ → CRITICAL finding in .gsd-t/qa-issues.md
|
|
540
|
+
│ Task is NOT complete until every row shows ✅ MATCH
|
|
541
|
+
│ Count: "Verified: {N}/{total} elements match at {breakpoints} breakpoints"
|
|
480
542
|
│
|
|
481
543
|
├── NO BROWSER TOOLS = BLOCKER
|
|
482
544
|
│ If Claude Preview, Chrome MCP, and Playwright are ALL unavailable:
|
|
@@ -487,9 +549,9 @@ MANDATORY:
|
|
|
487
549
|
└── Log all verification results in the design contract Verification Status table
|
|
488
550
|
```
|
|
489
551
|
|
|
490
|
-
**BAD** —
|
|
552
|
+
**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
553
|
|
|
492
|
-
**GOOD** —
|
|
554
|
+
**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
555
|
|
|
494
556
|
---
|
|
495
557
|
|