Skip to content

v1.0.3 Anchor Backfill

📜 Historical snapshot — not current docs

Captured an earlier point in Dazzle's development during Dazzle's autonomous-improvement cycles. It records the framework as it was then and the gap being worked at the time; it may not describe current behaviour. Start from the documentation home, or see Project Evolution for how these fit together.

One-shot data migration to add ## Anchor sections to the 35 ux-architect component contracts at ~/.claude/skills/ux-architect/components/. The v1.0.3 fitness contract walker uses these anchors to navigate bundle.page to the right URL before observing each component.

URL Pattern Reference

Derived from src/dazzle_http/runtime/route_generator.py, src/dazzle_page/runtime/page_routes.py, and src/dazzle_page/converters/template_compiler.py:

Route type Pattern
Workspace landing /app/workspaces/{workspace_name}
Entity list /app/{entity_name.lower().replace("_", "-")}
Entity detail /app/{entity_slug}/{id}
Entity create /app/{entity_slug}/create
Entity edit /app/{entity_slug}/{id}/edit
Review queue /app/{entity_slug}/review
Login /login

Canonical Examples

Example app Workspace name Key entities (→ slugs)
contact_manager contacts Contact → contact
ops_dashboard command_center System → system, Alert → alert
support_tickets ticket_queue Ticket → ticket, User → user
fieldtest_hub engineering_dashboard IssueReport → issue-report, Device → device
simple_task task_board Task → task

Anchor Decisions

Contract Canonical Example Anchor URL Notes
app-shell ops_dashboard /app/workspaces/command_center App shell chrome visible on workspace landing
auth-page (public — no example app) /login Login is the canonical auth page
base-layout ops_dashboard /app/workspaces/command_center Base layout present on every authenticated page; workspace landing is representative
card ops_dashboard /app/workspaces/command_center Cards used heavily in workspace region display
command-palette ops_dashboard /app/workspaces/command_center Command palette triggerable from workspace landing
confirm-dialog contact_manager /app/contact Confirm dialog triggered by delete actions on list views
dashboard-grid ops_dashboard /app/workspaces/command_center Dashboard grid IS the command_center workspace layout
data-table contact_manager /app/contact Contact list is the primary data-table surface
detail-view contact_manager /app/contact/1 Contact detail route; placeholder ID 1
filter-bar contact_manager /app/contact Filter bar rendered on contact list (has filter: is_favorite)
form-chrome simple_task /app/task/create Task create form in simple_task is a clean form-chrome example
form-field support_tickets /app/ticket/create Ticket create has varied field types (text, enum, ref)
form-validation support_tickets /app/ticket/create Validation exercised on ticket create (invariants: resolved requires resolution)
form-wizard contact_manager /app/contact/create Contact create form; form-wizard used for multi-section forms
modal contact_manager /app/contact Modals triggered from list actions in contact_manager
pagination contact_manager /app/contact Contact list has pagination controls
popover ops_dashboard /app/workspaces/command_center Popovers used in workspace region headers; command_center best host
region-wrapper ops_dashboard /app/workspaces/command_center Region wrapper is the workspace region chrome
related-displays contact_manager /app/contact/1 Related displays appear on contact detail view
report-e2e-journey (internal diagnostic — no example app) /static/reports/e2e-journey.html Static HTML report served at this path
review-queue support_tickets /app/ticket No review-mode surface exists in support_tickets DSL; ticket list is best proxy. UNCERTAIN — see notes.
search-input contact_manager /app/contact Contact list has search: first_name, last_name, email, company
slide-over contact_manager /app/contact Slide-over used for detail preview from list views
toast simple_task /app/task/create Toasts fire on form submission success; task create is representative
widget-colorpicker fieldtest_hub /app/issue-report/create IssueReport create has rich input; best proxy for widget-heavy form (no color field in current DSL — uncertain)
widget-combobox contact_manager /app/contact/create Contact create form uses ref fields rendered as comboboxes
widget-datepicker support_tickets /app/ticket/create Ticket create has no explicit date field but form-field contract exercises datepicker; UNCERTAIN
widget-file support_tickets /app/ticket/create Support_tickets mapped as canonical; no file field in ticket DSL (photo_url is a str). UNCERTAIN — fallback to create form.
widget-harness-set (static test page — no example app) /static/test-event-widgets.html Static harness served at this path
widget-money support_tickets /app/ticket/create Support_tickets mapped as canonical; no money field in ticket DSL. UNCERTAIN — fallback to create form.
widget-multiselect contact_manager /app/contact/create Contact create is best representative form
widget-richtext fieldtest_hub /app/issue-report/create IssueReport create has description: text required and steps_to_reproduce: text which render as richtext widgets
widget-search-select contact_manager /app/contact/create Contact create uses ref fields
widget-slider fieldtest_hub /app/issue-report/create IssueReport create is the fieldtest_hub create form; no numeric range field in DSL. UNCERTAIN.
widget-tags contact_manager /app/contact/create Contact create is best representative form

Uncertain Anchors

The following contracts were mapped to a canonical example app in the backlog, but the example's DSL does not contain the specific field type that exercises the widget. The walker will land on a create form where the widget could appear (if seed data or the form definition happens to include it), but observation may fall back to about:blank behavior if the widget is not present at that URL.

Contract Uncertainty Best-guess rationale
review-queue No mode: review surface exists in any example app's DSL Ticket list (/app/ticket) is the closest proxy; the review-queue concept is a specialisation of the ticket flow
widget-colorpicker No color field in fieldtest_hub DSL IssueReport create is a rich form; Pickr may be present in other widget harness contexts
widget-datepicker support_tickets Ticket create has no explicit date field (resolved_at exists but is set via state machine) Ticket create is a reasonable form surface; Flatpickr may appear for datetime fields
widget-file support_tickets Ticket has photo_url: str(500) — a plain text field, not a file upload Best-guess fallback to ticket create; actual widget may not render here
widget-money No money/decimal field named as such in support_tickets Ticket create is the best-guess fallback
widget-slider No numeric range field in fieldtest_hub IssueReport DSL IssueReport create is the form surface; slider may not render

Parser Verification

Confirmed: the anchor parser in src/dazzle/agent/missions/_shared.py:515-525 takes the first non-blank line of the ## Anchor section. All 35 contract files place the URL path on the first non-blank line after ## Anchor.

Test Results

tests/unit/fitness/test_contract_parser.py   4 passed
tests/unit/fitness/                         99 passed