Run 1 Foundation — Byproducts
Date: 2026-03-19
Discoveries
Section titled “Discoveries”1. button.tsx Dual Presence
Section titled “1. button.tsx Dual Presence”The stock shadcn Button component is present in BOTH:
src/components/canary/primitives/button.tsx— stock shadcn variants (default, destructive, outline, secondary, ghost, link)src/components/canary/atoms/button/button.tsx—ArdaButtonwith Arda-specific variants (primary, secondary, ghost, destructive, outline)
The icon-button atom imports from primitives/button. This is intentional and architecturally sound (atom consumes primitive). However, this creates an implicit question for later runs: when organisms/molecules import Button from the callil branch (@/components/ui/button), which target should they use?
Recommendation for Run 3: The import mapping in primitives.md maps @/components/ui/button → atoms/button. This means organisms using the stock shadcn Button API (with variant="default" etc.) will need to either:
- Switch to
ArdaButtonwith Arda variants, or - Import from
primitives/buttonwhen they need the stock shadcn API
Clarify this in Run 3 organism migration.
2. badge-base.tsx Lives in atoms/badge
Section titled “2. badge-base.tsx Lives in atoms/badge”The stock shadcn Badge component is at src/components/canary/atoms/badge/badge-base.tsx rather than in primitives/. The plan specified the base goes into the atom directory alongside the wrapper. This is consistent: badge.tsx (ArdaBadge wrapper) imports from ./badge-base. No change needed.
3. icon-button and read-only-field Missing index.ts on Branch Entry
Section titled “3. icon-button and read-only-field Missing index.ts on Branch Entry”The worktree’s icon-button directory had no index.ts. The main clone inherited this gap. Both were created in this run.
4. search-input Not Copied in Previous Session
Section titled “4. search-input Not Copied in Previous Session”The search-input atom was present in the callil worktree but was not copied during the pre-session work. Created in this run with all four files (component, test, stories, index.ts).
5. Storybook Build Requires Vendored Deps Install Step
Section titled “5. Storybook Build Requires Vendored Deps Install Step”Running npx storybook build directly fails because react-redux (and 16 other vendored dependencies) are not in node_modules. The npm run build-storybook script correctly runs node tools/install-vendored-deps.js first. Any CI gate using build-storybook must use npm run build-storybook (not npx storybook build).
6. Prettier Print Width Disagreements on Index Files
Section titled “6. Prettier Print Width Disagreements on Index Files”Prettier’s print-width rule triggers on multi-item exports that exceed 80 characters. Three files needed reformatting:
- Long single-line exports need multi-line format
- Multi-line imports that fit on one line need collapsing
Run the lint fix with npm run lint:fix proactively after copying files to avoid repeated lint failures.
TODOs for Later Runs
Section titled “TODOs for Later Runs”| # | Todo | Target Run |
|---|---|---|
| 1 | Clarify Button vs ArdaButton usage in organism migration | Run 3 |
| 2 | Consider moving badge-base.tsx to primitives/ for consistency with button.tsx — or add a note in primitives.md explaining the asymmetry | Run 3 planning |
| 3 | Add missing index.ts files for other atoms that may lack them — audit before Run 3 | Run 3 setup |
| 4 | Remove src/utils.ts if it only exports cn — Run 7 cleanup | Run 7 |
| 5 | After full organism migration (Run 3), verify no @/components/ui/ imports remain anywhere in src/ (not just canary/) | Run 3 exit |
Observations
Section titled “Observations”Partially-Complete State on Branch Entry
Section titled “Partially-Complete State on Branch Entry”Significant work had been done in a prior session: tokens.css, globals.css, all 14 primitives, most atoms, hooks, and cn rewrite were complete. This run completed the remaining gaps (search-input, two index.ts files, sidebar.tsx lint fix, three Prettier fixes, and the primitives.stories.tsx).
CSS Tokens Already Correct
Section titled “CSS Tokens Already Correct”The main clone’s tokens.css already contained all the Arda orange tokens described in the plan (state ramp, sidebar, font vars, control heights, destructive-foreground, dark mode). No changes were needed.
Copyright: © Arda Systems 2025-2026, All rights reserved