@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 +5 -0
- package/commands/gsd-t-execute.md +27 -15
- package/commands/gsd-t-quick.md +5 -2
- package/package.json +1 -1
- package/templates/stacks/design-to-code.md +28 -9
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
|
|
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
|
|
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
|
|
702
|
-
Use the
|
|
703
|
-
|
|
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
|
|
714
|
+
If no Figma MCP → use reference images from the design contract.
|
|
707
715
|
|
|
708
716
|
COMPARISON APPROACH:
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
-
|
|
712
|
-
-
|
|
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
|
-
|
|
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
|
|
734
|
-
|
|
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
|
-
|
|
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,
|
package/commands/gsd-t-quick.md
CHANGED
|
@@ -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
|
|
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.
|
|
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.
|
|
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
|
|
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
|
-
│
|
|
69
|
-
│
|
|
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
|
|
499
|
-
|
|
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
|
|
502
|
-
|
|
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
|
|
526
|
+
| Element | Figma (get_design_context) | Built | MATCH/DEVIATION |
|
|
508
527
|
7. Fix deviations → re-verify → artifact gate enforces completion
|
|
509
528
|
```
|
|
510
529
|
|