@tekyzinc/gsd-t 2.61.10 → 2.62.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.
- package/CHANGELOG.md +6 -0
- package/package.json +1 -1
- package/templates/widget-contract.md +30 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to GSD-T are documented here. Updated with each release.
|
|
4
4
|
|
|
5
|
+
## [2.62.10] - 2026-04-05
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- **Widget-contract Test Fixture section (MANDATORY)** — `templates/widget-contract.md` now requires a `## Test Fixture` section at widget scope, with the same `__fixture_source__` / `__figma_template__` requirements as element contracts. Widget fixtures reference element sub-fixtures via `$ref:{element-name}#/fixture` rather than re-inlining element values — enforces the widget↔element boundary in the fixture layer. Closes gap W4 from widget-tier convergence run 1. Also adds a widget-level Verification Harness subsection.
|
|
9
|
+
- **Widget fixture boundary rule**: widget fixture fields MUST NOT duplicate element visual-spec fields (colors, font sizes, padding, radii) — those live in the element contract. A field name matching an element slot (segments, centerValue, xLabels) belongs in the element fixture.
|
|
10
|
+
|
|
5
11
|
## [2.61.10] - 2026-04-05
|
|
6
12
|
|
|
7
13
|
### Added
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tekyzinc/gsd-t",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.62.10",
|
|
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",
|
|
@@ -85,6 +85,36 @@ Every widget is a card with consistent chrome. Missing chrome is the #1 cause of
|
|
|
85
85
|
| legend | `data.map(d => ({label: d.category, value: d.value, color: d.color}))` |
|
|
86
86
|
| filter | `{ value: timeRange, options: ['7d','30d','90d','1y'], onChange: onFilterChange }` |
|
|
87
87
|
|
|
88
|
+
## Test Fixture (MANDATORY)
|
|
89
|
+
|
|
90
|
+
Widget-scope fixture used by the Verification Harness. MUST include:
|
|
91
|
+
- Top-level widget chrome fields (title, subtitle, filter value, etc.)
|
|
92
|
+
- Body data for each composed element
|
|
93
|
+
|
|
94
|
+
Prefer referencing the element's own fixture rather than re-inlining its values:
|
|
95
|
+
|
|
96
|
+
```json
|
|
97
|
+
{
|
|
98
|
+
"__fixture_source__": "extracted-from-figma | flat-contract | requirements | engineered-stub",
|
|
99
|
+
"__figma_template__": "{Figma node URL or null}",
|
|
100
|
+
"title": "Most Popular Tools",
|
|
101
|
+
"subtitle": "Which tools members interact with most.",
|
|
102
|
+
"filterValue": "Members",
|
|
103
|
+
"chart_fixture": "$ref:chart-donut#/fixture",
|
|
104
|
+
"legend_fixture": "$ref:legend-vertical-right#/fixture"
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Rules:**
|
|
109
|
+
- `__fixture_source__` and `__figma_template__` are REQUIRED (same Fixture Resolution Order as element contracts).
|
|
110
|
+
- Element sub-fixtures should be referenced by `$ref:{element-name}#/fixture` when the widget uses the element's canonical fixture unchanged. Inline only when the widget supplies widget-specific data (e.g., a story-specific dataset).
|
|
111
|
+
- Widget fixture MUST NOT contain visual spec fields that belong to an element (colors, font sizes, padding, radii). Those live in the element contract.
|
|
112
|
+
- **Boundary check**: if a field name matches a slot in the element's fixture (segments, centerValue, xLabels, etc.), it belongs in the element fixture, not the widget fixture.
|
|
113
|
+
|
|
114
|
+
## Verification Harness
|
|
115
|
+
|
|
116
|
+
The widget harness page (`/design-system/{widget-name}`) renders ONE widget instance on a blank page — no app chrome, no navigation. The widget IS the harness. Render the widget with the Test Fixture above; do not wrap it in a page-level layout.
|
|
117
|
+
|
|
88
118
|
## States
|
|
89
119
|
|
|
90
120
|
| State | Widget Behavior |
|