@tekyzinc/gsd-t 2.68.12 → 2.68.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,14 @@
2
2
 
3
3
  All notable changes to GSD-T are documented here. Updated with each release.
4
4
 
5
+ ## [2.68.13] - 2026-04-05
6
+
7
+ ### Added (element-contract template)
8
+ - **Chart-type-specific mandatory Visual Spec properties** — bar charts must now specify: `bar_width`, `bar_gap`, `bar_group_gap`, `corner_radius`, `label_position`, `label_min_width`, `segment_order`, `orientation`. Circular charts: `outer_diameter`, `inner_diameter`, `segment_order`, `start_angle`, `label_position`, `center_content`. Line/area: `stroke_width`, `point_radius`, `curve_type`, `fill_opacity`. Progress/gauge: `track_width`, `fill_width`, `track_color`. These are the exact properties that distinguish "matches the design" from "looks close."
9
+
10
+ ### Why
11
+ BDS comparison showed bars with wrong width, wrong gap between groups, labels positioned outside instead of inside, wrong segment stacking order. The element contract's Visual Spec was free-form (`{dimension_1}`) — the agent could skip bar_width, segment_order, and label_position entirely. Chart-type-specific mandatory fields close this gap.
12
+
5
13
  ## [2.68.12] - 2026-04-05
6
14
 
7
15
  ### Fixed (design-chart-taxonomy template)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tekyzinc/gsd-t",
3
- "version": "2.68.12",
3
+ "version": "2.68.13",
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",
@@ -28,6 +28,49 @@ Atomic visual unit. One contract per visual variant (e.g., `chart-bar-stacked-ho
28
28
 
29
29
  *List every measurable visual property: dimensions, spacing, radii, borders, shadows, opacity. Reference design tokens rather than raw values where possible (`tokens.spacing.4` instead of `16px`).*
30
30
 
31
+ ### Chart-Type-Specific Mandatory Properties
32
+
33
+ The free-form table above is necessary but not sufficient. For chart elements, the following properties are **MANDATORY** based on chart category — extract exact values from Figma MCP `get_design_context` or measure from the screenshot. Missing any of these is how "looks off" happens.
34
+
35
+ **Bar charts** (`chart-bar-*`):
36
+ | Property | Description | Example |
37
+ |----------|-------------|---------|
38
+ | `bar_width` | Width of each bar (px or % of available space) | `32px` / `60%` |
39
+ | `bar_gap` | Gap between bars within a group (grouped only) | `4px` |
40
+ | `bar_group_gap` | Gap between category groups | `24px` |
41
+ | `corner_radius` | Rounding on bar ends (top for vertical, right for horizontal) | `4px top` / `0` |
42
+ | `label_position` | Where percentage/value labels appear | `inside-center` / `outside-right` / `above` |
43
+ | `label_min_width` | Minimum bar width to show label (hide if smaller) | `40px` |
44
+ | `segment_order` | For stacked: order of series from bottom/left to top/right | `[NM, MT, OK, TX, IL]` |
45
+ | `orientation` | Explicit confirmation of horizontal vs vertical | `vertical` |
46
+
47
+ **Circular charts** (`chart-donut`, `chart-pie`, `chart-radial-bar`):
48
+ | Property | Description | Example |
49
+ |----------|-------------|---------|
50
+ | `outer_diameter` | Total diameter of the chart | `180px` |
51
+ | `inner_diameter` | Hole diameter (donut only, 0 for pie) | `100px` |
52
+ | `segment_order` | Clockwise order of segments from 12 o'clock | `[Steps, Broker, Video, Quick, Plan]` |
53
+ | `start_angle` | Where first segment starts | `12 o'clock (0°)` |
54
+ | `label_position` | Where percentage labels appear | `outside-radial` / `inside-segment` / `none` |
55
+ | `center_content` | What's displayed in the center hole (donut) | `"485" + "Total Interactions"` |
56
+
57
+ **Line / area charts** (`chart-line-*`, `chart-area-*`):
58
+ | Property | Description | Example |
59
+ |----------|-------------|---------|
60
+ | `stroke_width` | Line thickness | `2px` |
61
+ | `point_radius` | Data point dot radius (0 = no dots) | `4px` |
62
+ | `curve_type` | Linear, bezier, step | `linear` |
63
+ | `fill_opacity` | For area charts: opacity of fill below line | `0.3` |
64
+
65
+ **Progress / gauge** (`chart-progress-ring`, `chart-progress-bar`):
66
+ | Property | Description | Example |
67
+ |----------|-------------|---------|
68
+ | `track_width` | Width of background track | `12px` |
69
+ | `fill_width` | Width of progress fill (same as track or thinner) | `12px` |
70
+ | `track_color` | Background track color | `#e2e8f0` |
71
+
72
+ **If your element is a chart and you haven't filled the mandatory properties above, STOP. Go back to Figma and extract them.** These properties are the difference between a chart that "looks close" and one that matches.
73
+
31
74
  ## Labels / Text (if applicable)
32
75
 
33
76
  | Property | Value |