Skip to content

feat(host): add LacoWiki migration wireframes browser - #125

Closed
antosubash wants to merge 7 commits into
mainfrom
claude/implement-lacowiki-wireframes-et5me
Closed

feat(host): add LacoWiki migration wireframes browser#125
antosubash wants to merge 7 commits into
mainfrom
claude/implement-lacowiki-wireframes-et5me

Conversation

@antosubash

Copy link
Copy Markdown
Owner

Summary

Ports the LacoWiki design handoff bundle (from claude.ai/design) into this codebase as a single Inertia page at /lacowiki/wireframes. The page reproduces the three-tab review tool from the original LacoWiki Wireframes.html prototype:

  • Overview — design direction + scope across 8 migration modules
  • Design system — color, typography, spacing, components, spatial UI primitives
  • Wireframes — 15 mid-fi frames covering marketing/auth, dashboard, datasets, legends, sampling (incl. 7-strategy parameter card matrix), validation (single-sample focused, plus campaign creation), reports (list + confusion matrix), and account settings

What landed

  • host/client_app/pages/LacoWikiWireframes.tsx — Inertia page entry, tabs + topbar
  • host/client_app/lib/lacowiki/ — primitives, chrome, design system, overview, and wireframe screens (one file per module group, all under the 300-line cap)
  • host/client_app/lib/lacowiki/styles.css — CSS tokens + components, all scoped under .lw-app so the wireframes' raw 1px-line aesthetic doesn't leak into the rest of the host UI
  • host/routes.py — adds the GET /lacowiki/wireframes route
  • biome.json — adds an override for host/client_app/lib/lacowiki/** and the page that disables noArrayIndexKey, useJsxKeyInIterable, noSvgWithoutTitle, useValidAnchor, noStaticElementInteractions, etc., which are idiomatic in mid-fidelity wireframes

The tweaks panel (sketchiness toggle, density, accent hue) from the original prototype was intentionally dropped — it's a design-tool affordance, not part of the deliverable. Defaults are normal density, teal accent.

Test plan

  • make ci-check-file-size — no files exceed 300 lines
  • make ci-python-lint / make ci-python-typecheck — green
  • make ci-js-lint / make ci-js-typecheck — green
  • npx vite build — emits LacoWikiWireframes-*.js chunk (~75 kB / 15 kB gzip)
  • uv run pytest host/tests — existing host route tests still pass
  • Manual: run make dev and open /lacowiki/wireframes, confirm all three tabs render (not exercised in this session — please spot-check before merging)

https://claude.ai/code/session_01AnJvhmDHXftJPBCL29eyhC


Generated by Claude Code

Port the LacoWiki design handoff (claude.ai/design) into a single Inertia
page at /lacowiki/wireframes — three tabs (Overview, Design system,
Wireframes) covering all eight migration modules and the focused
single-sample validation layout.

Self-contained under host/client_app/lib/lacowiki/* with all rules scoped
to .lw-app so the wireframes' raw 1px-line aesthetic doesn't leak into
the rest of the host UI. Adds a biome override for the same paths to
permit the array-index keys, anchor-as-button, and untitled SVGs that
are idiomatic in mid-fidelity wireframes.

https://claude.ai/code/session_01AnJvhmDHXftJPBCL29eyhC
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented May 5, 2026

Copy link
Copy Markdown

Deploying simple-module-python with  Cloudflare Pages  Cloudflare Pages

Latest commit: d7ff15e
Status: ✅  Deploy successful!
Preview URL: https://7858e937.simple-module-python.pages.dev
Branch Preview URL: https://claude-implement-lacowiki-wi.simple-module-python.pages.dev

View logs

claude and others added 6 commits May 5, 2026 21:04
Biome's formatter pushed wf/datasets.tsx to 325 lines after the initial
commit, breaking the 300-line cap. Extract WfDatasetDetail into
wf/dataset-detail.tsx (147 lines) and re-export from datasets.tsx.

https://claude.ai/code/session_01AnJvhmDHXftJPBCL29eyhC
The earlier split kept the dataset list table (which uses Pill for
status badges) in datasets.tsx but accidentally dropped Pill from the
import after the formatter rewrote the import line.

https://claude.ai/code/session_01AnJvhmDHXftJPBCL29eyhC
Move the LacoWiki UI out of the host into a real plugin module so the
host is just a shell.

- Shared lacowiki primitives, chrome, design-system blocks, and
  styles.css move from host/client_app/lib/lacowiki/* to
  packages/ui/src/lacowiki/* and are exposed via subpath exports
  (./lacowiki/*, ./lacowiki/wf/*, ./lacowiki/styles.css).

- New modules/lacowiki/ plugin owns its own Inertia pages
  (Home/Datasets/Legends/Sampling/Validation/Reports/Account), view
  endpoints under /lacowiki/*, sidebar menu entries, and locale dir.
  Registered in host/pyproject.toml + root pyproject.toml.

- Host loses the /lacowiki/wireframes route and the
  LacoWikiWireframes.tsx page; only the public landing remains.

- Smoke test: each /lacowiki/* page returns 200 via the authenticated
  client. Plus all existing checks (file-size cap, biome, ruff, ty,
  vite build, tsc) still pass.

https://claude.ai/code/session_01AnJvhmDHXftJPBCL29eyhC
The lacowiki module is registered as an npm workspace but the lockfile
hadn't been refreshed yet, so 'npm ci' in CI was failing. Run 'npm
install' to register it.

https://claude.ai/code/session_01AnJvhmDHXftJPBCL29eyhC
Drop the new lacowiki module and instead update the existing modules'
pages with the wireframe design language. Per user feedback: don't
duplicate existing modules, restyle the pages we already have.

- packages/ui/src/styles/globals.css — switch to Inter for UI / display,
  pin primary scale to teal-cyan (oklch hue 200) to match the LacoWiki
  accent, drop gradient backgrounds, soften shadow tokens, and tighten
  --radius. Charts now draw from the LacoWiki land-cover palette.

- host/templates/index.html — load Inter + JetBrains Mono instead of
  DM Sans + Outfit so the new --font tokens resolve to real fonts.

- packages/ui/src/layouts/AuthCardShell.tsx — replace the minimal
  centered card with a two-column shell: form on the left, quiet map
  placeholder on the right. Login/Register/ForgotPassword/ResetPassword/
  AcceptInvite/VerifyEmail all drop their nested Card wrappers and
  render directly inside the shell so the brand mark and layout don't
  get duplicated.

- modules/dashboard/dashboard/pages/Home.tsx — replace gradient stat
  cards with restrained 1px-bordered tiles, mono uppercase labels,
  tabular-num values, and split system info into a health checklist
  column plus a flat module-chip list.

- modules/users/users/pages/Profile.tsx — section nav + avatar block +
  two-column field grid, modeled on the WfAccount frame.

- host/client_app/pages/Landing.tsx — light hero with map preview +
  accuracy callout and a feature row, replacing the dark gradient hero.
  Keeps existing i18n keys.

- modules/lacowiki — removed in full (the previous "single-module"
  approach is gone). biome.json scope trimmed accordingly. Existing
  pages benefit from the global token updates without further per-page
  rewrites.

https://claude.ai/code/session_01AnJvhmDHXftJPBCL29eyhC
@antosubash
antosubash marked this pull request as ready for review May 6, 2026 10:52
@antosubash antosubash closed this May 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants