go-htmx-gsd #1

Merged
arthur merged 558 commits from go-htmx-gsd into main 2026-05-23 15:16:44 +00:00
4 changed files with 44 additions and 31 deletions
Showing only changes of commit 45a914f4ea - Show all commits

View file

@ -42,10 +42,19 @@
5. All existing templates compile and unit tests pass with no regressions
Plans:
**Wave 1**
- [ ] 13-01-PLAN.md — Token vocabulary + enum/helper foundation (base.css, auth.css extraction, variants.go, helpers.go)
**Wave 2** *(blocked on Wave 1 completion)*
- [ ] 13-02-PLAN.md — Migrate existing components to go-backend API (button multi-class, badge pill, card typed API, template hardcodes)
**Wave 3** *(blocked on Wave 2 completion)*
- [ ] 13-03-PLAN.md — Port form-input components: input, textarea, select, form-field (CSS + templ + tests)
**Wave 4** *(blocked on Wave 3 completion)*
- [ ] 13-04-PLAN.md — Port surface components: modal, empty-state, table, icon-button, space + tailwind.input.css manifest
**Wave 5** *(blocked on Wave 4 completion)*
- [ ] 13-05-PLAN.md — Catalog route (build-tag gated) + visual sign-off checkpoint
**User-in-loop:** Review the catalog page before proceeding to per-view application phases. Confirm token choices (brand color, radius, shadow levels) match what you want the product to look like.

View file

@ -2,14 +2,15 @@
gsd_state_version: 1.0
milestone: v3.0
milestone_name: Design System & Visual Polish
status: Defining requirements
last_updated: "2026-05-16T10:41:32.081Z"
last_activity: 2026-05-16 — v2.0 milestone archived; v3.0 remains active
status: executing
last_updated: "2026-05-16T11:28:01.799Z"
last_activity: 2026-05-16 -- Phase 13 planning complete
progress:
total_phases: 5
completed_phases: 0
total_plans: 0
total_plans: 5
completed_plans: 0
percent: 0
---
# STATE
@ -29,8 +30,8 @@ See: `.planning/PROJECT.md` (updated 2026-05-16)
Phase: Not started (defining requirements)
Plan: —
Status: Defining requirements
Last activity: 2026-05-16 — v2.0 milestone archived; v3.0 remains active
Status: Ready to execute
Last activity: 2026-05-16 -- Phase 13 planning complete
## Previous Milestone Status

View file

@ -620,7 +620,7 @@ The planner should structure waves to ensure CSS is available before catalog tes
---
## Open Questions
## Open Questions (RESOLVED)
1. **Ghost button — which size rules apply?**
- What we know: `ButtonVariantGhost` is a new variant not in go-backend's button.css. The size rules (`ui-button-sm`, `ui-button-md`, `ui-button-lg`) are defined as standalone classes in go-backend and apply to ALL variants.

View file

@ -2,8 +2,8 @@
phase: 13
slug: design-system-foundation
status: draft
nyquist_compliant: false
wave_0_complete: false
nyquist_compliant: true
wave_0_complete: true
created: 2026-05-16
---
@ -17,18 +17,18 @@ created: 2026-05-16
| Property | Value |
|----------|-------|
| **Framework** | {pytest 7.x / jest 29.x / vitest / go test / other} |
| **Config file** | {path or "none — Wave 0 installs"} |
| **Quick run command** | `{quick command}` |
| **Full suite command** | `{full command}` |
| **Framework** | go test |
| **Config file** | backend/go.mod |
| **Quick run command** | `cd backend && go test ./internal/web/ui/... -count=1` |
| **Full suite command** | `cd backend && just test` |
| **Estimated runtime** | ~13 seconds |
---
## Sampling Rate
- **After every task commit:** Run `{quick run command}`
- **After every plan wave:** Run `{full suite command}`
- **After every task commit:** Run `cd backend && go test ./internal/web/ui/... -count=1`
- **After every plan wave:** Run `cd backend && just test`
- **Before `/gsd-verify-work`:** Full suite must be green
- **Max feedback latency:** 13 seconds
@ -38,7 +38,15 @@ created: 2026-05-16
| Task ID | Plan | Wave | Requirement | Threat Ref | Secure Behavior | Test Type | Automated Command | File Exists | Status |
|---------|------|------|-------------|------------|-----------------|-----------|-------------------|-------------|--------|
| 13-01-01 | 01 | 1 | REQ-{XX} | T-13-01 / — | {expected secure behavior or "N/A"} | unit | `{command}` | ✅ / ❌ W0 | ⬜ pending |
| 13-01-01 | 01 | 1 | DS-01 | T-13-01 / — | N/A (CSS tokens, no user data) | unit | `cd backend && go test ./internal/web/ui/... -count=1` | ✅ | ⬜ pending |
| 13-01-02 | 01 | 1 | DS-01, DS-02, DS-05 | T-13-01 / — | N/A (enum helpers, no user input) | unit | `cd backend && go test ./internal/web/ui/... -count=1` | ✅ | ⬜ pending |
| 13-02-01 | 02 | 2 | DS-02 | T-13-01 / — | N/A (class assembly, no user data) | unit | `cd backend && go test ./internal/web/ui/... -count=1 && go build ./...` | ✅ | ⬜ pending |
| 13-02-02 | 02 | 2 | DS-04, DS-05 | T-13-01 / — | N/A (component CSS, no user input) | unit | `cd backend && go test ./internal/web/ui/... -count=1` | ✅ | ⬜ pending |
| 13-03-01 | 03 | 3 | DS-03 | T-13-01 / — | N/A (form components, no server-side processing) | unit | `cd backend && go test ./internal/web/ui/... -count=1` | ✅ | ⬜ pending |
| 13-03-02 | 03 | 3 | DS-03 | T-13-01 / — | N/A (select helpers, no SQL) | unit | `cd backend && go test ./internal/web/ui/... -count=1` | ✅ | ⬜ pending |
| 13-04-01 | 04 | 4 | DS-06, DS-07, DS-08 | T-13-01 / — | N/A (display components) | unit | `cd backend && go test ./internal/web/ui/... -count=1` | ✅ | ⬜ pending |
| 13-04-02 | 04 | 4 | DS-09 | T-13-01 / — | N/A (icon components) | unit | `cd backend && go test ./internal/web/ui/... -count=1 && go build ./...` | ✅ | ⬜ pending |
| 13-05-01 | 05 | 5 | DS-01DS-09 | T-13-01 / T-13-02 | Catalog only accessible in dev build; no user data exposed | unit+manual | `cd backend && go build ./... && go build -tags catalog ./... && just test && grep 'RegisterCatalogRoute' internal/web/router.go && grep '^//go:build catalog' internal/web/catalog_route_catalog.go` | ✅ | ⬜ pending |
*Status: ⬜ pending · ✅ green · ❌ red · ⚠️ flaky*
@ -46,11 +54,7 @@ created: 2026-05-16
## Wave 0 Requirements
- [ ] `{tests/test_file.py}` — stubs for REQ-{XX}
- [ ] `{tests/conftest.py}` — shared fixtures
- [ ] `{framework install}` — if no framework detected
*If none: "Existing infrastructure covers all phase requirements."*
Existing infrastructure covers all phase requirements. The `go test` framework and `just` targets are already configured in `backend/`. No Wave 0 setup needed.
---
@ -58,19 +62,18 @@ created: 2026-05-16
| Behavior | Requirement | Why Manual | Test Instructions |
|----------|-------------|------------|-------------------|
| {behavior} | REQ-{XX} | {reason} | {steps} |
*If none: "All phase behaviors have automated verification."*
| Visual catalog renders all components correctly in browser | DS-01DS-09 | Visual inspection required | Run `cd backend && go run -tags catalog .` then visit `/ui-catalog`; confirm all component sections render with correct styling |
| Token choices (brand color, radius, shadow) match product intent | DS-01 | Design decision confirmation | Compare `/ui-catalog` rendering against UI-SPEC color contract (#804eec brand-purple, white surfaces) |
---
## Validation Sign-Off
- [ ] All tasks have `<automated>` verify or Wave 0 dependencies
- [ ] Sampling continuity: no 3 consecutive tasks without automated verify
- [ ] Wave 0 covers all MISSING references
- [ ] No watch-mode flags
- [ ] Feedback latency < 13s
- [ ] `nyquist_compliant: true` set in frontmatter
- [x] All tasks have `<automated>` verify or Wave 0 dependencies
- [x] Sampling continuity: no 3 consecutive tasks without automated verify
- [x] Wave 0 covers all MISSING references (none needed)
- [x] No watch-mode flags
- [x] Feedback latency < 13s
- [x] `nyquist_compliant: true` set in frontmatter
**Approval:** {pending / approved YYYY-MM-DD}
**Approval:** approved 2026-05-16