@tekyzinc/gsd-t 2.65.10 → 2.66.11
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 +10 -0
- package/package.json +1 -1
- package/templates/page-contract.md +11 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to GSD-T are documented here. Updated with each release.
|
|
4
4
|
|
|
5
|
+
## [2.66.10] - 2026-04-05
|
|
6
|
+
|
|
7
|
+
### Changed (page-contract template)
|
|
8
|
+
- **Composes Elements (direct)** split into two sub-lists: "Existing element contracts used directly" vs "Inline stubs (promotion candidates)". Closes gap P8 from page-tier run 3.
|
|
9
|
+
- **Route guards stub convention** — if a guard is declared but not yet wired, prefix with `(stub)` and link the milestone that will wire it. Closes gap P9.
|
|
10
|
+
- **Skip link `tabindex="-1"` note** — `<main>` must be programmatically focusable for skip-link navigation. Closes gap P10.
|
|
11
|
+
|
|
12
|
+
### Milestone
|
|
13
|
+
- **Hierarchical contract system CONVERGED** — 3×3 matrix complete: element/widget/page tiers × 3 convergence runs each × 50/50 score. 11 of 14 gaps resolved across v2.59.10–v2.66.10; remaining 3 are widget-template refinements, non-blocking.
|
|
14
|
+
|
|
5
15
|
## [2.65.10] - 2026-04-05
|
|
6
16
|
|
|
7
17
|
### Changed (page-contract template)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tekyzinc/gsd-t",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.66.11",
|
|
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",
|
|
@@ -112,7 +112,7 @@ Widget contracts that have multiple fixture variants expose them as named sub-fi
|
|
|
112
112
|
## Routing & Navigation
|
|
113
113
|
|
|
114
114
|
- **Route**: {/dashboard/overview}
|
|
115
|
-
- **Guards**: {requires authentication, role: user|admin}
|
|
115
|
+
- **Guards**: {requires authentication, role: user|admin} — if the guard is declared but not yet wired, prefix with `(stub)` and link the authentication milestone that will wire it (e.g., `(stub) requires-auth — milestone M4`).
|
|
116
116
|
- **Breadcrumbs**: {Home > Dashboard > Overview}
|
|
117
117
|
- **Nav active state**: {highlights "Dashboard" in nav-sidebar}
|
|
118
118
|
|
|
@@ -150,7 +150,7 @@ Widget contracts that have multiple fixture variants expose them as named sub-fi
|
|
|
150
150
|
## Accessibility
|
|
151
151
|
|
|
152
152
|
- **Landmarks**: `<header>`, `<nav>`, `<main>`, per-widget `<section role="region">`
|
|
153
|
-
- **Skip link**: "Skip to main content" at top, focuses `<main>` on activation
|
|
153
|
+
- **Skip link**: "Skip to main content" at top, focuses `<main>` on activation. If the skip link targets `<main>`, `<main>` MUST have `tabindex="-1"` to be programmatically focusable via hash-link navigation.
|
|
154
154
|
- **Keyboard order**: header → sidebar → widgets in visual reading order
|
|
155
155
|
- **Page title**: Set via `<title>` per route
|
|
156
156
|
|
|
@@ -196,4 +196,12 @@ Page-level verification runs AFTER all widgets pass their own verification. Page
|
|
|
196
196
|
|
|
197
197
|
## Composes Elements (direct, not via widgets)
|
|
198
198
|
|
|
199
|
-
|
|
199
|
+
Split into two lists:
|
|
200
|
+
|
|
201
|
+
**Existing element contracts used directly:**
|
|
202
|
+
- {e.g., `button-primary` — FAB}
|
|
203
|
+
|
|
204
|
+
**Inline stubs (promotion candidates):**
|
|
205
|
+
- {e.g., `page-topbar` — used by: dashboard-shell-page. Promote when ≥2 pages use it.}
|
|
206
|
+
|
|
207
|
+
The first list is atoms that already have their own contracts and are composed into this page without a wrapping widget. The second list is atoms that DON'T have contracts yet but should be extracted once ≥2 pages use them. Keep them distinct.
|