Skip to content

build plan

Caesar autonomous build plan (Sales → Purchases → Accountant → Reports → Documents)

Section titled “Caesar autonomous build plan (Sales → Purchases → Accountant → Reports → Documents)”

Mandate (2026-06-19): build the rest of Caesar autonomously, one sub-menu at a time, following the loop below for EVERY sub-menu. No stopping for review — the user reviews everything at the end. Do NOT make mistakes. Senior-designer quality.

All work goes in the single app shell: products/caesar/screens/dashboard.html. Scope filter = finance-walkthrough-2026-06-18.md (KEEP/DROP). Teardown contracts: sales-teardown.md, purchases-teardown.md (create), accountant-teardown.md (create).

  1. Capture from the demo (click EVERYTHING). Foreground the Zoho demo tab; if it shows “Please wait…” splash, wait 10–20s (it’s slow). The list route often differs from the sidebar label — click the sidebar sub-item to get the real #/... route (e.g. Estimates = #/quotes). Then click every clickable thing and record it:
    • List: columns, the view dropdown (all filter options), the list hamburger (sort/import/export/refresh), bulk bar (select a row → primary + more menu), per-row kebab, sort behavior, pagination.
    • Detail: every header action button, the More menu, status-dependent actions (open records of different statuses), tabs/sections (Comments & History, etc.), the document layout + totals, any modals (Record Payment, etc.).
    • Form (/new): every header field, the line-item table columns, totals, notes/terms, every footer button + splitbutton options.
    • Record into the relevant *-teardown.md.
  2. Build list + detail + form (and modals) in the shell, fully dynamic, wired to the sidebar sub-item (data-screen onclick="open*()") + breadcrumb (CRUMB_TRAILS + crumbNav).
  3. Deep cross-reference: re-click the demo for that sub-menu, diff vs the build, fix every miss.
  4. Revalidate in preview: every control works (filters/sort/bulk/tabs/menus/forms/modals), no console errors, screenshot the key screens.
  5. Mark the task done, go to the next sub-menu. When all sub-menus in a menu are done, move to the next menu.
  • Cards = white (--surface) on the grey page; never grey-on-grey or white-on-white (transparent wrappers / white-card wraps as needed). No strokes, no shadows.
  • 24px gap between a detail header/toolbar and the next section (banner/tiles).
  • Every control interactive — dropdowns, view filters, sortable columns, bulk, tabs, row kebab, forms (validate + persist), modals (apply real changes). Toast for unbuilt destinations, never a dead click.
  • No empty pages — real data or real empty-states with an action.
  • No em dashes in copy (commas/periods or middot ·). 600 weight for titles/names/buttons; 700 only for KPI/display digits.
  • Canonical components only — grep components/index.html first; reuse existing app classes (.tbl, .tbl-card, .sum-card, .est-doc, .li-table, .est-form-totals, .dd, .dlg, .bulk-bar, .est-banner, .est-hist-item, stBadge, HAMBURGER_H, openModal/closeModal/dlgHead, fv, parseDate). Top-center alert-toast.
  • USD only. Brand green #01E46F dark text. General Sans. 4px grid.
  • Double-entry integrity is the domain non-negotiable: every invoice/bill/payment posts a debit + credit (surface a Journal link on posting docs, like Invoices).
  • Completed/paid state = subtle (small green check / muted), not flooded green.
  • Reference is the Nigerian Zoho edition semantics (VAT 7.5% + WHT) where it matters; demo hit is the Canada edition.

Sales ✓ COMPLETE (Customers · Estimates · Invoices · Payments Received · Recurring Invoices · Credit Notes)

Section titled “Sales ✓ COMPLETE (Customers · Estimates · Invoices · Payments Received · Recurring Invoices · Credit Notes)”
  • Payments Received (#/paymentsreceived)
  • Recurring Invoices (#/recurringinvoices)
  • Credit Notes (#/creditnotes)
  • Vendors (#/vendors)
  • Bills (#/bills, posting, per-line Account, Record Payment)
  • Payments Made (#/paymentsmade)
  • Expenses (#/expenses; built from established structure — demo bridge was timing out — re-verify later)
  • Recurring Bills + Recurring Expenses (#/recbills, Type Bill/Expense)
  • Vendor Credits (#/vendorcredits, Apply to Bills)
  • Chart of Accounts (#/accountant/chartofaccounts)
  • Manual Journals (double-entry + balance check + audit trail)
  • Bulk Updates (#/accountant/bulkupdateaccounts)
  • Currency Adjustments (#/accountant/bcyadjustment/list, CBN rate)

Reports ✓ COMPLETE (Reports Center + rendered P&L/Balance Sheet/Trial Balance/AR-AP Aging/Sales-by-Customer/etc.)

Section titled “Reports ✓ COMPLETE (Reports Center + rendered P&L/Balance Sheet/Trial Balance/AR-AP Aging/Sales-by-Customer/etc.)”
  • Reports (#/reports)
  • Documents (#/documents, folder nav + seeded file list)

✅ RUN COMPLETE — all of Sales · Purchases · Accountant · Reports · Documents built, each verified in preview with no console errors. Awaiting user review.

Section titled “✅ RUN COMPLETE — all of Sales · Purchases · Accountant · Reports · Documents built, each verified in preview with no console errors. Awaiting user review.”

Outstanding (flagged, not in this run): Expenses to be re-verified against the live demo (demo bridge was timing out during that batch); Banking adds (manual transfer / file upload / CBN FX), Users & Roles, and the Caesar-native BRD layer remain for a future pass.

NOT in this run (flag to user, don’t silently build)

Section titled “NOT in this run (flag to user, don’t silently build)”

Banking adds (manual transfer / file upload / CBN FX), Users & Roles, the Caesar-native BRD layer (entity tree, segment spine, command centre, fixed-asset register), and the CFO-confirmation divergences. Dropped entirely: Items/Inventory, Time Tracking/Projects, Account Watchlist, Getting Started, standalone Tax Returns, portals/gateways.

  • Working demo tab id drifts — re-list tabs; pass tab_id explicitly to execute_javascript. Foreground the tab (Ember only renders the active tab).
  • Portal dropdowns: single .click() the button.dropdown-toggle, then read the sibling .dropdown-menu after a setTimeout → window.__cap.
  • If the demo is down, fall back to zoho.com/books/api/v3/<entity>/ (exact fields/statuses/actions) + Help docs, and say so.