Harborlight Ferry Operations
Status: Partial.
Your muse
Build Harborlight, a complete operations suite for the made-up Saltmere Ferry Cooperative, an invented island ferry company. All people, boats, routes and numbers are made up. This is a big, multi-part product, so please split the work across subagents, one per part, and take as long as the quality needs. Do the whole thing, not a sketch. Parts: 1. Public booking site: timetable for 6 invented routes, seat and vehicle booking, fares by season, booking lookup by code, and a cancel flow. 2. Dispatcher console: a live board of 8 boats, drag to reassign crews, delay and weather notices that update the public site, and a day replay. 3. Crew app: shift calendar, swap requests with approval, hours limits with warnings, safety checklists before each sailing. 4. Maintenance tracker: parts inventory, work orders, boat downtime calendar that blocks bookings when a boat is out, and overdue alerts. 5. Finance reports: revenue by route and season, fuel cost per crossing, refunds, CSV export, and charts. 6. Passenger assistant: a chat helper on the public site that answers from the timetable and notices using saved data, and hands off to a person. 7. Admin: roles for dispatcher, crew, mechanic and finance, an audit log of every change, and seed data with at least 90 days of made-up history. Every part must share one real database and work end to end: a booking made on the public site must show on the dispatcher board, a boat taken out for maintenance must block new bookings and notify affected passengers, and finance must see refunds. Write automated tests for every part and run them. Test all the cross-part flows in a browser and fix what fails before finishing. Make the look distinctive and calm, like a harbor at dawn, on phones and desktops.
Done. Milestone 1 done.
npm run verifyexits 0: 16 tests pass, 7 of 7 requirements (R1–R7) pass, manifest valid.Checks ran
No change: scope remains R1–R14 with the last verify fully green (26 passed, 14/14). Waiting on the milestone 3 brief; goal stays active.
Checks ran, try 2
The first assertion passed — it's the post-reload one failing. The downtime isn't surviving reload. Probing localStorage across reload.
Checks found problems, try 3
Smoke test, Requirements
Typecheck clean. Now adding chart markup to the three sections.
Checks found problems, try 4
Requirements
Big round: R22–R35 tests plus missing UI (tests panel, edit/delete). Let me survey the existing code.
Checks found problems, try 5
Smoke test, Requirements
Checks found problems, try 6
Public booking, dispatch board, crew calendar, maintenance and finance all show working data with demo labels.

The plan: Harborlight Ferry Operations
Calm harbor operations for bookings, boats, crew and money.
- Open Harborlight public home and view timetable for the 6 invented routes
- Pick a route, date and season to see sailings and fares
- Select seats and vehicle space and enter passenger names
- Confirm booking and receive a lookup code
See the full plan
Who it's for
Saltmere Ferry Cooperative staff and island passengers using invented demo data.
How it works
- Open Harborlight public home and view timetable for the 6 invented routes.
- Pick a route, date and season to see sailings and fares.
- Select seats and vehicle space and enter passenger names.
- Confirm booking and receive a lookup code.
- Look up the booking by code to verify details.
- Open dispatcher board and see the new booking on its sailing and boat.
- Publish a delay or weather notice and see it update the public site.
- Take a boat out in maintenance and see bookings blocked and affected passengers flagged.
- Cancel the test booking and see the refund appear in finance.
- Open finance to view revenue by route and season with charts and CSV.
- Ask the passenger chat a timetable question and get an answer with sources.
- Open crew calendar, request a swap, run a safety checklist and view admin audit log.
Screens
- Public home and timetable. Browse 6 routes, sailings, season fares and active notices.
- Booking flow. Choose seats and vehicle space, enter names and pay fare to get a code.
- Booking lookup and cancel. Find a booking by code, view status and cancel with refund.
- Dispatcher live board. See 8 boats and sailings with drag to reassign crew.
- Notices composer. Publish delay and weather notices to the public site.
- Day replay. Step through a past or live day of sailings and events.
- Crew shift calendar. View personal shifts and hours totals with warnings.
- Swap inbox. Request swaps and approve or decline as dispatcher.
- Safety checklist. Complete pre sailing checks before departure.
- Parts inventory. Track stock, low levels and parts use per order.
- Work orders. Create and progress maintenance jobs per boat.
- Downtime calendar. Take boats out, block bookings and flag affected passengers.
- Finance overview. View revenue by route and season, fuel cost and refunds with charts.
- Export and reports. Download CSV and review chart totals that match tables.
- Passenger chat. Ask timetable and notice questions and request a human handoff.
- Admin roles. Manage users across dispatcher, crew, mechanic and finance roles.
- Audit log and seed. Review every change and load or reset 90 days of demo history.
What goes in
- Text: Route, date, party size, seats and vehicle details for booking search.
- Text (optional): Booking code for lookup and cancel, 6 to 10 characters.
- Text (optional): Crew shift, swap, checklist, work order and notice text entered by staff.
What comes out
- Text: Booking confirmation with lookup code, fare breakdown and cancel option.
- Text: Dispatcher board, crew calendar, downtime calendar, finance charts and CSV text.
- Text: Chat answers grounded in saved timetable and notices plus handoff ticket when stuck.
Models
Model Used for Why Muse Wonder Answer passenger questions from saved timetable and notices, draft delay and weather notices, and summarize finance and safety checks. The chat helper, notices, and report summaries need reasoning over saved text and timetables. Limits
- All data is saved in this browser in one shared store and stays after reload but is not shared between devices or users.
- No real payments, email, SMS or maps. Cancellations create refund records and in app passenger notices, not money movement or messages.
- Passenger handoff creates a staff ticket queue for dispatchers, not a live call to a person.
- Boat downtime blocks new bookings in the app but does not contact external systems.
- Built as one web app with seven sections, not seven separate services. Test panel runs in app checks.
From your inspo
Text only note asks for Harborlight, a complete 7 part operations suite for the invented Saltmere Ferry Cooperative with shared data and tests.
Takes
- Full ferry operations job covering booking, dispatch, crew, maintenance, finance, help chat and admin
- End to end flows where bookings, downtime and refunds update every part
- Calm harbor at dawn mood carried in copy and made images
Cost per run: about $0.04 (est.). One booking plus chat run uses about 4k input tokens at $4 per million and 800 output tokens at $20 per million, about $0.032. Rounded total $0.04 per run.
What you asked for 20 of 40 checked and working
- R1: Public site shows a timetable for 6 invented Saltmere routes with sailing times and boat assignments. Works Timetable shows Saltmere Loop sailings with times and assigned boats and fares.
- R2: Public site books seats and vehicle space together with capacity checks and saved bookings that persist after reload. Works Confirmation HBR-HG6SSA shows 2 adults plus 1 car with capacity counts.
- R3: Public site prices every sailing by season fare tables for passengers and vehicles. Works Winter and Peak tables price adults, child, car and bike per sailing.
- R4: Public site finds any booking by its lookup code. Works Lookup shows booking HBR-JCFM7R with route, boat and party.
- R5: Public site cancels by code with refund rules and keeps the cancelled record for finance. Works Cancelled HBR-HMDGRN keeps record and shows $39.6 refund for finance.
- R6: Dispatcher shows a live board of 8 invented boats with sailings, crew and status. Works Fleet list shows all 8 boats with crew, bookings and In service status.
- R7: Dispatcher reassigns crews by drag and drop between boats and sailings and logs each move. Works Crew move log records Ada Marsh move with form for reassignment.
- R8: Dispatcher publishes delay and weather notices that immediately update the public site timetable and sailing banners. Works Fog delay notice appears in banner and on 09:15 sailing.
- R9: Dispatcher offers a day replay that steps through sailings, notices and crew moves for a chosen day. Works Replay for 2026-11-02 steps through events with Previous and Next.
- R10: Crew app shows a personal shift calendar with sign in by role. Works Shifts for Ben Tiller show week calendar after sign in by role.
- R11: Crew app handles swap requests with approval by a dispatcher and notifies both crew members in app. Works Swap inbox shows approved request and notification for Ben Tiller.
- R12: Crew app enforces hours limits with warnings before overtime and blocks over limit approvals. Works Dispatcher view blocks over limit approval at 48 hours over 40 limit.
- R13: Crew app requires a safety checklist before each sailing and blocks departure until it passes. Works Checklist shows Departure blocked until pass and Cleared for departure.
- R14: Maintenance tracks parts inventory with stock counts and low stock flags. Works Parts list shows counts with Low stock and In stock flags.
- R15: Maintenance manages work orders per boat with status, mechanic, parts used and due dates. Works Work order shows boat, mechanic, parts used, due date and status.
- R16: Maintenance downtime calendar takes a boat out and blocks new bookings on its sailings while flagging affected passengers in app. Works Downtime shows Harbor Lark out with flagged booking HBR-4K9HX5 and refund.
- R17: Maintenance raises overdue alerts for past due work orders and inspections. Works Overdue alerts list past due work order and hull inspections.
- R18: Finance reports revenue by route and season with filters and totals. Not met "R18: finance reports revenue by route and season" did not pass.
- R19: Finance shows fuel cost per crossing per sailing and boat. Works Fuel view lists crossings, litres and cost per boat with fleet total.
- R20: Finance lists refunds from cancels and downtime and ties each refund to its booking code. Works Refunds list ties HBR-89VMYH and HBR-PAZWRE to amounts and reasons.
- R21: Finance exports report rows as CSV text for download. Works Download revenue CSV button states CSV holds exactly the rows in view.
- R22: Finance shows charts for revenue, fuel cost and refunds that match the table totals. Not met No test is titled with this id.
- R23: Passenger assistant chat on the public site answers only from saved timetable and notices with cited sailing or notice. Not met No test is titled with this id.
- R24: Passenger assistant hands off to a person by creating a staff ticket with the chat transcript. Not met No test is titled with this id.
- R25: Admin manages roles for dispatcher, crew, mechanic and finance and gates each section by role. Not met No test is titled with this id.
- R26: Admin keeps an audit log of every change with who, what and when and it cannot be edited. Not met No test is titled with this id.
- R27: Admin loads seed data with at least 90 days of made up history for boats, sailings, bookings, crew, maintenance and finance. Not met No test is titled with this id.
- R28: All parts share one real database in this browser so a public booking shows on the dispatcher board and finance sees refunds. Not met No test is titled with this id.
- R29: Product includes an in app automated tests panel that runs checks for every part and shows pass or fail. Not met No test is titled with this id.
- R30: Product includes cross part checks for booking to board, downtime block and notify, and cancel to refund, with fixes verified before finish. Not met No test is titled with this id.
- R31: Product uses a distinctive and calm harbor at dawn style that works on phones and desktops. Not met No test is titled with this id.
- R32: Top navigation moves between booking, dispatch, crew, maintenance, finance, chat and admin with role gating and clear empty and error states. Not met No test is titled with this id.
- R33: Staff can edit and delete draft notices, swaps, work orders and parts, with deletes confirmed and logged and data kept after reload. Not met No test is titled with this id.
- R34: Product presents as one complete operations suite for the invented Saltmere Ferry Cooperative island ferry company with shared navigation and one shared database. Not met No test is titled with this id.
- R35: Every screen labels all people, boats, routes and numbers as made-up demo data with no real persons, vessels or prices. Not met No test is titled with this id.
- R36: The big multi-part product is delivered as a whole finished suite, not a sketch, with each of the seven parts built to the same quality bar as if the work were split across subagents one per part. Not met No test is titled with this id.
- R37: Dispatcher console shows the live board of 8 boats with crew, status and sailings and keeps board edits in saved data. Not met No test is titled with this id.
- R38: Passenger assistant acts as a chat helper on the public site and saves handoff tickets for staff. Not met No test is titled with this id.
- R39: A boat taken out for maintenance blocks new bookings on its sailings and flags affected passengers for rebooking or refund. Not met No test is titled with this id.
- R40: Builder must write automated tests for every part and test all cross-part flows in a browser and fix what fails before finishing, and show results in app. Not met No test is titled with this id.
Recorded demo Big final round. Let me inspect the pieces I need to build on.
Shipped as partial.
The main page works, and some checks still fail for a documented reason. The limits are on the product page.