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.