@tekyzinc/gsd-t 2.69.12 → 2.69.13

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  All notable changes to GSD-T are documented here. Updated with each release.
4
4
 
5
+ ## [2.69.13] - 2026-04-05
6
+
7
+ ### Fixed (design-to-code pipeline — extraction + verification)
8
+ - **Mandate `get_design_context` everywhere in the pipeline** — initial build (design-to-code.md sections 1-2), verification agent (gsd-t-execute.md Step 5.25), quick verification (gsd-t-quick.md Step 5.25), and Red Team design fidelity check all now explicitly require `get_design_context` per widget node for Figma data extraction. `get_screenshot` is prohibited for extraction and restricted to visual-only comparison of built output. This closes the gap where agents chose `get_screenshot` (pixels) over `get_design_context` (structured code/tokens) at every stage.
9
+
5
10
  ## [2.69.12] - 2026-04-05
6
11
 
7
12
  ### Fixed (gsd-t-design-audit, gsd-t-design-decompose)
@@ -662,10 +662,16 @@ wrong.
662
662
  ## Step 1: Get the Design Reference
663
663
 
664
664
  Read .gsd-t/contracts/design-contract.md for the source reference.
665
- - If Figma MCP available → call get_screenshot with nodeId + fileKey from the contract
665
+ - If Figma MCP available → call `get_metadata` to enumerate widget/component nodes,
666
+ then call `get_design_context` per widget node to extract structured data
667
+ (code, component properties, design tokens, text content, layout values).
668
+ ⚠ Do NOT use `get_screenshot` for Figma data extraction — it returns pixels
669
+ you cannot extract exact values from. `get_design_context` returns structured
670
+ code and tokens. Use `get_design_context` for extraction, `get_screenshot`
671
+ ONLY if you need a visual reference image for side-by-side comparison.
666
672
  - If design image files → locate them from the contract's Source Reference field
667
673
  - If no MCP and no images → log CRITICAL blocker to .gsd-t/qa-issues.md and STOP
668
- You MUST have a reference image before proceeding.
674
+ You MUST have structured design data (or reference images) before proceeding.
669
675
 
670
676
  ## Step 2: Build the Element Inventory
671
677
 
@@ -697,22 +703,27 @@ VIEW 1 — BUILT FRONTEND:
697
703
  Navigate to the exact route/component being verified.
698
704
  You MUST see real rendered output — not just read the code.
699
705
 
700
- VIEW 2 — ORIGINAL DESIGN REFERENCE:
701
- If Figma URL available → open the Figma page in a browser tab/window.
702
- Use the Figma URL from the design contract Source Reference field.
703
- Navigate to the specific frame/component being compared.
706
+ VIEW 2 — ORIGINAL DESIGN REFERENCE (structured data, not just images):
707
+ If Figma MCP available → you already have `get_design_context` data from Step 1.
708
+ Use the STRUCTURED DATA (component properties, text content, layout values,
709
+ colors, spacing) as the authoritative design reference — not screenshots.
710
+ Optionally open the Figma URL in a browser for visual context, but extract
711
+ values from `get_design_context` responses, not from visual inspection.
704
712
  If design image file → open the image in a browser tab/window.
705
713
  Use: file://{absolute-path-to-image} or render in an HTML page.
706
- If Figma MCP screenshot was captured open that screenshot image.
714
+ If no Figma MCP use reference images from the design contract.
707
715
 
708
716
  COMPARISON APPROACH:
709
- With both views open, walk through each component/section:
710
- - Position views side-by-side (or switch between tabs)
711
- - Compare each element visually at the same zoom level
712
- - Screenshot BOTH views at matching viewport sizes
717
+ For each widget/component, compare the BUILT DOM/styles against the
718
+ STRUCTURED values from `get_design_context`:
719
+ - Chart type: does the built component match the Figma node's structure?
720
+ - Text content: do titles, labels, legends match `get_design_context` text?
721
+ - Layout: do spacing, alignment, sizing match the structured properties?
722
+ - Colors: do fills, strokes, text colors match the exact hex values?
713
723
  Capture implementation screenshots at each target breakpoint:
714
724
  Mobile (375px), Tablet (768px), Desktop (1280px) minimum.
715
- Each breakpoint is a separate screenshot pair (design + implementation).
725
+ Compare screenshots against Figma for overall visual impression,
726
+ but use `get_design_context` data for the authoritative value comparison.
716
727
 
717
728
  If Claude Preview, Chrome MCP, and Playwright are ALL unavailable:
718
729
  This is a CRITICAL blocker. Log to .gsd-t/qa-issues.md:
@@ -730,8 +741,9 @@ the inventory gets its own row. No summarizing, no grouping, no prose.
730
741
  | 2 | Summary | Chart colors | #4285F4, #34A853, #FBBC04 | #4285F4, #34A853, #FBBC04 | ✅ MATCH |
731
742
 
732
743
  Rules:
733
- - 'Design' column: SPECIFIC values (chart type name, hex color, px size, font weight)
734
- - 'Implementation' column: SPECIFIC observed values from the SCREENSHOT not code assumptions
744
+ - 'Design' column: SPECIFIC values from `get_design_context` structured data
745
+ (chart type name, hex color, px size, font weight, text content)
746
+ - 'Implementation' column: SPECIFIC observed values from the built page DOM/styles
735
747
  - Verdict: only ✅ MATCH or ❌ DEVIATION — never 'appears to match' or 'need to verify'
736
748
  - NEVER write 'Appears to match' or 'Looks correct' — measure and verify
737
749
  - If the table has fewer than 30 rows for a full-page comparison, you skipped elements
@@ -837,7 +849,7 @@ Rules:
837
849
  FAIL-BY-DEFAULT: assume NOTHING matches. Prove each element individually.
838
850
  a. Open every implemented screen in a real browser. Screenshot at mobile
839
851
  (375px), tablet (768px), desktop (1280px). Get Figma reference via
840
- Figma MCP get_screenshot (or design contract images).
852
+ `get_design_context` per widget node (structured data NOT `get_screenshot`).
841
853
  b. Build an element inventory: enumerate every distinct visual element
842
854
  in the design top-to-bottom. Every chart, label, icon, heading, card,
843
855
  spacing boundary, and color. Data visualizations expand: chart type,
@@ -266,9 +266,12 @@ rendered UI. If any is missing → CRITICAL DEVIATION (wrong data). Wrong data
266
266
  cannot be redeemed by visual polish.
267
267
 
268
268
  1. Read .gsd-t/contracts/design-contract.md (flat) OR .gsd-t/contracts/design/ (hierarchical) for design source reference + Test Fixtures
269
- 2. Get design reference (Figma MCP screenshot, or design images from contract)
269
+ 2. Get Figma structured data via `get_metadata` (enumerate nodes) then `get_design_context`
270
+ per widget node. ⚠ Do NOT use `get_screenshot` for Figma extraction — it returns pixels,
271
+ not properties. `get_design_context` returns structured code and tokens.
272
+ If no Figma MCP → use design images from contract as fallback.
270
273
  3. Start dev server, open the built frontend in browser (Claude Preview/Chrome MCP/Playwright)
271
- 4. Open the original design reference in a second browser view
274
+ 4. Compare built page values against `get_design_context` structured data
272
275
  5. Build element inventory (30+ elements for a full page): every chart, label,
273
276
  icon, heading, card, button, spacing, color — each a separate row
274
277
  6. Produce structured comparison table:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tekyzinc/gsd-t",
3
- "version": "2.69.12",
3
+ "version": "2.69.13",
4
4
  "description": "GSD-T: Contract-Driven Development for Claude Code — 54 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",
@@ -42,7 +42,13 @@ MANDATORY:
42
42
  ├── NEVER write CSS or layout code without a design reference
43
43
  ├── Identify the source type: Figma file, image, screenshot, prototype URL
44
44
  ├── If source is a Figma URL/file → check if Figma MCP is available
45
- │ YES → Use Figma MCP to extract component data, styles, and layout
45
+ │ YES → Use Figma MCP `get_design_context` per widget/component node
46
+ │ `get_design_context` returns structured code, component properties,
47
+ │ and design tokens — this is what you extract values from.
48
+ │ ⚠ NEVER use `get_screenshot` for extraction — it returns pixels,
49
+ │ not properties. You cannot reliably extract exact spacing, colors,
50
+ │ or text from an image. `get_screenshot` is only for verification
51
+ │ (comparing built output to design visually).
46
52
  │ NO → Inform user: "Figma MCP recommended for precise extraction"
47
53
  │ Fallback: use image analysis (Claude's multimodal vision)
48
54
  ├── If source is an image/screenshot → use visual analysis to extract values
@@ -62,11 +68,17 @@ MANDATORY:
62
68
  MANDATORY:
63
69
  ├── Before extraction, detect available tools:
64
70
  │ Figma MCP → precise token extraction from Figma files
71
+ │ `get_design_context` → structured code + tokens (USE THIS for extraction)
72
+ │ `get_metadata` → node tree enumeration (USE THIS to find widget nodes)
73
+ │ `get_screenshot` → visual image only (NEVER use for extraction —
74
+ │ only for post-build verification comparisons)
65
75
  │ Claude Preview → render + screenshot for verification loop
66
76
  │ Chrome MCP → alternative render + screenshot for verification
67
77
  ├── If Figma MCP is available and source is Figma:
68
- Use MCP to get exact colors, spacing, typography, component structure
69
- MCP values are authoritative override visual estimates
78
+ Call `get_metadata` to enumerate the page's widget/component nodes
79
+ Call `get_design_context` per widget node to extract structured data
80
+ │ Extract exact colors, spacing, typography, component structure from the response
81
+ │ MCP `get_design_context` values are authoritative — override visual estimates
70
82
  ├── If no Figma MCP but source is Figma:
71
83
  │ Recommend setup: "For precise extraction, install the Figma MCP server.
72
84
  │ Remote (recommended): https://mcp.figma.com/mcp
@@ -495,16 +507,23 @@ SEPARATION OF CONCERNS:
495
507
 
496
508
  └── DESIGN VERIFICATION AGENT (Step 5.25 of gsd-t-execute):
497
509
  1. Open browser → screenshot built page at each breakpoint
498
- 2. Get Figma screenshot (via MCP get_screenshot or saved reference image)
499
- 3. SIDE-BY-SIDE comparison: built screenshot vs Figma screenshot
510
+ 2. Get Figma STRUCTURED DATA via `get_design_context` per widget node
511
+ Do NOT use `get_screenshot` for Figma data — it returns pixels
512
+ you can't extract exact values from. `get_design_context` returns
513
+ structured code, component properties, and design tokens.
514
+ Use `get_metadata` first to enumerate widget nodes, then
515
+ `get_design_context` on each widget node individually.
516
+ 3. STRUCTURED comparison: built page values vs Figma `get_design_context` values
500
517
  4. For EACH widget/section on the page:
501
- a. What chart type does the FIGMA show? (look at the Figma screenshot)
502
- b. What chart type did the CODE build? (look at the built screenshot)
518
+ a. What does `get_design_context` say this Figma node contains?
519
+ (chart type, text content, layout properties, colors)
520
+ b. What did the CODE actually build? (inspect built page DOM/styles)
503
521
  c. Do they match? Not "does code match contract" — does CODE match FIGMA?
504
522
  5. Check every text label: does the built screen show the same titles,
505
- subtitles, column headers, legend items, KPI values as the Figma?
523
+ subtitles, column headers, legend items, KPI values as the Figma
524
+ `get_design_context` response?
506
525
  6. Produce structured comparison table (30+ rows):
507
- | Element | Figma Shows | Built Shows | MATCH/DEVIATION |
526
+ | Element | Figma (get_design_context) | Built | MATCH/DEVIATION |
508
527
  7. Fix deviations → re-verify → artifact gate enforces completion
509
528
  ```
510
529