Blocked by #1 — wait for PR #2 (test/lint foundation) to merge so this branch starts on a main that has CI gates in place.
Goal: make the app easy for multiple agents to edit.
Owned files
src/App.jsx
src/main.jsx
new src/pages/*
new src/layouts/*
new src/features/*
Tasks
Move landing screen out of App.jsx.
Move buyer screen out of App.jsx.
Move seller screen out of App.jsx.
Add a small app shell.
Keep behavior the same.
Acceptance criteria
User can still pick buyer/seller.
Seller generator still works.
Buyer placeholder still renders.
npm run lint, npm test, and npm run build all pass.
GitHub Actions runs all three.
Branch / PR rules
Branch name: agent/002-app-structure
Branch from main after Issue 001: Test and lint foundation #1 has merged.
Do not touch unrelated files (no package.json, no vite.config.js, no styling overhauls — those are later issues).
Do not commit secrets.
One PR, must pass CI, must be reviewed before merge.
Suggested split (non-binding)
src/main.jsx keeps createRoot only.
src/layouts/AppShell.jsx — header/footer chrome shared across pages.
src/pages/LandingPage.jsx — buyer/seller picker.
src/pages/SellerPage.jsx — current seller flow.
src/pages/BuyerPage.jsx — current "Coming Soon" placeholder.
src/App.jsx — route table only (state machine on userType is fine for MVP — no router library required).
Routing strategy is intentionally left to the implementer; the goal is clean file boundaries, not the choice between react-router and a state-machine.
Out of scope (deferred to later issues)
Visual redesign / green palette → Issue 003.
Replacing the seller form with chat → Issue 004.
Building a real buyer flow → Issue 007.
See docs/HAGGLY_V2_AGENT_PLAN.md for the full plan and assignment prompt.
Blocked by #1 — wait for PR #2 (test/lint foundation) to merge so this branch starts on a
mainthat has CI gates in place.Goal: make the app easy for multiple agents to edit.
Owned files
src/App.jsxsrc/main.jsxsrc/pages/*src/layouts/*src/features/*Tasks
App.jsx.App.jsx.App.jsx.Acceptance criteria
npm run lint,npm test, andnpm run buildall pass.Branch / PR rules
agent/002-app-structuremainafter Issue 001: Test and lint foundation #1 has merged.package.json, novite.config.js, no styling overhauls — those are later issues).Suggested split (non-binding)
src/main.jsxkeepscreateRootonly.src/layouts/AppShell.jsx— header/footer chrome shared across pages.src/pages/LandingPage.jsx— buyer/seller picker.src/pages/SellerPage.jsx— current seller flow.src/pages/BuyerPage.jsx— current "Coming Soon" placeholder.src/App.jsx— route table only (state machine onuserTypeis fine for MVP — no router library required).Routing strategy is intentionally left to the implementer; the goal is clean file boundaries, not the choice between react-router and a state-machine.
Out of scope (deferred to later issues)
See
docs/HAGGLY_V2_AGENT_PLAN.mdfor the full plan and assignment prompt.