# Adom ERP Suite — Complete Feature Tree

> 95 database tables · 340+ API endpoints · 94 routes (87 web + 7 portal) · 20 detail pages · 3 apps

---

## Authentication & Onboarding

### Login (`/login`)
- Adom-branded SSO login page
- Keycloak OIDC redirect ("Continue with SSO" button)
- Dark theme with inline Adom logo
- OIDC callback handler (`/api/auth/callback`) — code exchange, cookie-based session
- Auth middleware — redirects unauthenticated requests to `/login`

### Onboarding Wizard (first-run flow)
- **Step 1 — Company Setup** (`/setup`) — Company name, industry, address, timezone, currency
- **Step 2 — Chart of Accounts** (`/accounts`) — "Use Standard Template" (US GAAP) or "Import from CSV"
- **Step 3 — Invite Team** (`/team`) — Email invites with role assignment (Admin/Controller/Accountant/Clerk/Viewer)
- **Step 4 — Complete** (`/complete`) — Animated checkmark, "Go to Dashboard" button
- 4-step progress bar (teal completed, border upcoming)

---

## App Shell (all authenticated pages)

### Global Navigation Bar
- Inline Adom SVG logo (white on dark, black on light) — links to dashboard
- Dynamic breadcrumb trail (set per-page via `BreadcrumbProvider`)
- Search trigger button (`⌘K` shortcut label)
- Notification bell with unread count badge + dropdown panel (mark read, mark all read, view all)
- Theme toggle (dark/light with sun/moon SVG icons)
- User avatar menu with dropdown

### Module Sidebar
- 9 modules: Finance, Supply Chain, Manufacturing, HCM, CRM, Startup, Reports, Admin
- Monochrome SVG icons per module
- Expandable sub-navigation for active module
- Active state: teal accent color + accent-muted background + left border

### Command Palette (`⌘K`)
- Modal overlay with search input
- 8 navigation items: Finance, Supply Chain, HCM, CRM, Manufacturing
- 3 quick actions: New Journal Entry, New Purchase Order, New Sales Invoice
- Keyboard navigation (arrow keys + Enter)
- Escape to close
- Category grouping (Navigate / Quick Actions)

---

## Dashboard (`/dashboard`)

- **KPI Cards** (4-column grid)
  - Revenue (MTD) — JetBrains Mono `$0`
  - Outstanding AP
  - Outstanding AR
  - Cash Balance
- **Pending Actions** section — shows onboarding prompt when empty

---

## Finance Module

### General Ledger (`/finance/gl`)
- Table: Entry #, Date, Description, Debit, Credit, Status, Actions
- 5 mock entries (JE-00001 through JE-00005)
- Status badges: Draft (gray), Pending (yellow), Approved (teal), Posted (green), Voided (red)
- Filters: status dropdown, date range pickers, search
- "New Entry" teal button
- "View" button per row

### Journal Entry Detail (`/finance/gl/[id]`)
- Header: entry number, status badge, date, description
- Lines table: Line #, Account, Description, Debit, Credit
- Footer: Total Debit / Total Credit (bold JetBrains Mono)
- Action buttons by status: Submit (draft), Approve (pending), Post (approved), Void (draft/pending)

### Chart of Accounts (`/finance/accounts`)
- Tree view with expand/collapse chevrons
- Columns: Code (mono), Name, Type (color-coded badge), Postable, Balance
- Account type colors: asset=blue, liability=orange, equity=purple, revenue=green, expense=red
- 12 mock accounts (1000 Cash through 6200 Utilities)

### Vendors (`/finance/ap/vendors`)
- Table: Vendor #, Name, Payment Terms, Email, Phone, Status
- 5 mock vendors (Office Depot, AWS, WeWork, Gusto Payroll, Adobe)
- Search + Active/Inactive toggle filter
- "New Vendor" button, pagination

### Vendor Detail (`/finance/ap/vendors/[id]`)
- Info grid: Legal Name, Tax ID (masked), Payment Terms, Email, Phone, Website
- Address block
- Edit button, Deactivate button (with confirm dialog)

### Purchase Invoices (`/finance/ap/invoices`)
- Table: Invoice #, Vendor, Invoice Date, Due Date, Total, Amount Due, Status
- 4 mock invoices
- Filters: status, vendor, date range
- "New Invoice" button

### Purchase Invoice Detail (`/finance/ap/invoices/[id]`)
- Header: invoice number, vendor, dates, status
- Lines table: #, Description, GL Account, Qty, Unit Price, Tax, Line Total
- Footer: Subtotal, Tax Total, Grand Total
- Actions: Submit, Approve, Void (with confirm)

### Customers (`/finance/ar/customers`)
- Table: Customer #, Name, Payment Terms, Credit Limit, Email, Status
- 5 mock customers (Acme Corp, TechStart Inc, Global Solutions, Bright Ideas, NextGen AI)
- Search + status filter

### Customer Detail (`/finance/ar/customers/[id]`)
- Info grid + credit limit display
- Edit button, Deactivate button (with confirm)

### Sales Invoices (`/finance/ar/invoices`)
- Table: Invoice #, Customer, Invoice Date, Due Date, Total, Paid, Due, Status
- 4 mock invoices
- "Record Payment" inline form with amount input

### Sales Invoice Detail (`/finance/ar/invoices/[id]`)
- Payment progress bar (amountPaid / total)
- Actions: Submit, Approve, Void, Apply Payment

### Fixed Assets (`/finance/assets`)
- Placeholder page — asset register, depreciation schedules

### Budgets (`/finance/budgets`)
- Placeholder page — budget planning, variance analysis

---

## Supply Chain Module

### Items (`/supply-chain/items`)
- Table: SKU (mono), Name, Category, UOM, Std Cost, Stock On Hand, Status
- 8 mock items (enclosures, PCBs, power supplies, cables, hardware, displays, ICs)
- Search + category/status filters
- "New Item" button

### Item Detail (`/supply-chain/items/[id]`)
- Info grid: SKU, Name, Category, UOM, Weight, Dimensions, Barcode
- Costing section (standard cost, last purchase price)
- Replenishment settings (reorder point, qty, safety stock, lead time)
- Stock levels table by location
- Deactivate action

### Purchase Orders (`/supply-chain/purchase-orders`)
- Table: PO #, Vendor, Order Date, Expected Date, Total, Status
- 4 mock POs with statuses (draft, approved, sent, partially received)
- Filters: search, status

### Purchase Order Detail (`/supply-chain/purchase-orders/[id]`)
- Header: vendor, dates, ship-to location
- Lines table: Item, Qty, Unit Price, Tax, Total, Received
- Totals footer (Subtotal, Tax, Shipping, Grand Total)
- Actions by status: Submit, Approve, Send, Close, Cancel

### Inventory (`/supply-chain/inventory`)
- **3 KPI Cards**: Total Items, Total Inventory Value, Below Reorder Point (warning)
- Stock table: SKU, Item, Location, On Hand, Reserved, Available, On Order
- **Adjust Inventory** inline form (item, location, qty, reason)
- **Transfer Inventory** inline form (item, from/to location, qty)
- 6 mock stock records across 2 warehouses

### Sales Orders (`/supply-chain/sales-orders`)
- Table: SO #, Customer, Order Date, Requested Delivery, Total, Status
- 4 mock SOs
- Actions: Confirm (reserves inventory), Process, Cancel (releases inventory), Close

### Sales Order Detail (`/supply-chain/sales-orders/[id]`)
- Lines: Item, Qty, Unit Price, Discount%, Tax, Total, Shipped
- Action buttons by status

### Shipments (`/supply-chain/shipments`)
- Table: Shipment #, SO #, Carrier, Status, Tracking, Shipped Date
- 3 mock shipments (FedEx, UPS, DHL) with tracking numbers
- Actions: Pick, Pack, Ship, Deliver

### Shipment Detail (`/supply-chain/shipments/[id]`)
- Tracking info section
- Lines: Item, Qty, From Location
- Action buttons by status

---

## HCM & Payroll Module

### Employee Directory (`/hcm/employees`)
- Table: Emp # (mono), Name, Department, Job Title, Type, Status
- 8 mock employees (Sarah Chen, Marcus Johnson, Emily Rodriguez, etc.)
- Search + department dropdown filter
- "Add Employee" button
- Status badges: Active (green), On Leave (yellow)

### Employee Detail (`/hcm/employees/[id]`)
- 4-card info grid: Personal Details, Employment Details, Compensation (salary in mono), Emergency Contact
- Direct reports table
- Edit button, Terminate button

### Leave Management (`/hcm/leave`)
- **Pending Requests** table (for managers): Employee, Type, Dates, Hours, Status
  - Approve/Reject buttons per request
- **My Leave Balances** cards:
  - Annual: 160h entitled / 32h used / 128h available
  - Sick: 64h entitled / 8h used / 56h available
  - Personal: 24h entitled / 0h used / 24h available
  - Visual progress bars (teal fill, warning color above 80%)
- "Request Leave" button

### Payroll (`/hcm/payroll`)
- Table: Run # (mono), Period, Pay Date, Employees, Gross, Net, Status
- 3 mock payroll runs (PR-00001 through PR-00003)
- "New Payroll Run" button

### Payroll Run Detail (`/hcm/payroll/[id]`)
- **4 KPI Cards**: Total Gross, Total Deductions, Total Net, Employer Cost
- Payslips table: Employee, Gross, Deductions, Net, Employer Cost
- Totals footer row
- Actions by status: Calculate (draft), Approve (calculated), Process (approved), Void

### Benefits (`/hcm/benefits`)
- Tab switcher: Plans / Enrollment Summary
- **Plans table**: Code, Name, Type (badge), Employee Cost, Employer Cost, Status
- 4 mock plans: HEALTH-PPO, DENTAL-BASIC, VISION-STD, 401K-MATCH
- **Enrollment Summary** cards: plan name, enrolled count, total monthly cost

---

## CRM Module

### CRM Accounts (`/crm/accounts`)
- Table: Account # (mono), Name, Stage, Industry, Owner, Score, Last Activity
- 6 mock accounts at various stages (prospect, lead, qualified, customer)
- Search + stage filter

### Account Detail (`/crm/accounts/[id]`)
- Info grid + tags display
- Contact list, opportunities table, recent activities timeline

### Sales Pipeline — Kanban (`/crm/pipeline`)
- **3 KPI Cards**: Total Pipeline ($1,425,000), Weighted Value ($687,500), Avg Deal Size ($178,125)
- **5 Kanban columns**: Prospecting (3), Qualification (2), Needs Analysis (0), Proposal (2), Negotiation (1)
- Deal cards: name, account, amount (mono), probability %, close date
- Colored top borders per stage
- 8 mock opportunities

### Opportunity Detail (`/crm/opportunities/[id]`)
- Header: name, stage badge, amount (mono)
- Info grid: Account, Contact, Source, Expected Close, Probability
- Activity timeline
- Actions: Advance Stage, Close Won, Close Lost

### Quotes (`/crm/quotes`)
- Table: Quote # (mono), Account, Status, Total, Valid Until
- 4 mock quotes (draft, sent, accepted, expired)

### Quote Detail (`/crm/quotes/[id]`)
- Lines table: Description, Qty, Unit Price, Discount%, Tax, Total
- Totals footer (Subtotal, Discount, Tax, Grand Total)
- Actions: Send, Accept, Reject, Convert to Sales Order

### Activities (`/crm/activities`)
- **Type filter tabs**: All, Calls, Emails, Meetings, Tasks, Notes, Demos, Follow-ups
- **Upcoming section** at top
- Activity cards: type icon (monochrome SVG), subject, related account/contact, due date, completion status
- 8 mock activities
- "New Activity" button

### Support Tickets (`/crm/tickets`)
- Table: Ticket # (mono), Subject, Account, Priority, Status, Assigned To, Created
- Priority badges: low (gray), normal (blue), high (orange), critical (red)
- 5 mock tickets
- Filters: status, priority, search

### Ticket Detail (`/crm/tickets/[id]`)
- Header + status/priority badges
- Comments thread (internal comments have dashed border)
- Add comment form with "Internal Note" toggle
- Actions: Resolve, Close, Reopen, Assign

---

## Manufacturing Module

### Bills of Materials (`/manufacturing/bom`)
- Table: BOM # (mono), Name, Finished Item, Revision, Status
- 3 mock BOMs
- "New BOM" button

### BOM Detail (`/manufacturing/bom/[id]`)
- Components table: #, Component (with SKU), Qty, UOM, Scrap%, Phantom
- **Cost Rollup** section: Material Cost, Labor Cost, Overhead Cost, Total Cost (accent-colored)
- Actions: Cost Rollup, Activate (draft), Obsolete (active)

### Work Orders (`/manufacturing/work-orders`)
- Table: WO # (mono), Item, Qty, Completed, Status, Priority, Planned Start, Planned End
- Priority badges (low/normal/high/urgent)
- 4 mock work orders at various stages

### Work Order Detail (`/manufacturing/work-orders/[id]`)
- Status + priority badges in header
- **Progress bar** (quantityCompleted / quantity, teal fill)
- **Operations table**: Step, Name, Work Center, Status, Planned Time, Actual Time
- **Materials table**: Item, Planned, Consumed, Scrapped
- **Cost comparison table**: Planned vs Actual vs Variance (red/green coloring)
- Actions by status: Release, Start, Complete, Cancel, Close

### Quality Inspections (`/manufacturing/quality`)
- Table: Inspection # (mono), Item, WO, Sample Size, Passed (green), Failed (red), Status
- 3 mock inspections

### MRP Planning (`/manufacturing/mrp`)
- "Run MRP" button
- Latest run summary card: Run #, Date, Recommendations count, Actioned count
- **Recommendations table**: Item (with SKU), Type badge (WO/PO), Qty, Required Date, Reason, Actioned
- "Action" button per unactioned recommendation
- 5 mock recommendations

---

## Reporting & Analytics Module

### Analytics Dashboard (`/reporting`)
- **6 KPI Cards** with trend arrows (up/down SVG):
  - Revenue: $125,000.00 (+12.5%)
  - Gross Margin: 68.0% (+2.3%)
  - Orders: 847 (+8.1%)
  - Avg Order Value: $147.58 (-1.2%)
  - On-Time Delivery: 94.2% (+0.8%)
  - Customer Churn: 2.1% (-0.3%)
- **6 Chart Placeholders**: Revenue Trend, Expenses by Category, Order Fulfillment Rate, Top Products, Cash Flow Analysis, Inventory Turnover

### Report Library (`/reporting/reports`)
- Reports grouped by category: Finance, Supply Chain, Manufacturing, HCM, CRM
- Category badges (teal/purple/orange/blue/green)
- Each report card: name, description, "Run" and "Save" buttons
- Search bar
- 32 buttons total (Run + Save per report)

### Report Viewer (`/reporting/reports/[id]`)
- Header with export buttons (PDF, CSV, XLSX)
- Dynamic filter bar from report definition
- Sortable column headers
- Pagination
- Execution metadata (rows returned, time taken)

### Dashboards (`/reporting/dashboards`)
- Dashboard cards: name, description, owner, widget count, "Default" badge
- "Create Dashboard" button
- 2 mock dashboards

### Dashboard Builder (`/reporting/dashboards/[id]`)
- Widget grid with type badges (KPI, Chart, Table, Gauge)
- Widget placeholder content (large numbers, bar charts, table rows)
- "Add Widget" button
- Edit/Remove icons per widget

### Scheduled Reports (`/reporting/scheduled`)
- Table: Name, Report, Frequency, Format, Recipients (pill badges), Next Run, Last Run, Active toggle
- Frequency badges (Daily=teal, Weekly=blue, Monthly=purple)
- Active toggle switch with optimistic update
- "Schedule Report" button
- 3 mock scheduled reports

---

## Startup Module

### Cap Table (`/startup/equity`)
- **Ownership Summary** with CSS conic-gradient pie chart
  - Founders 55%, Employees 15%, Investors 30%
  - Total Shares: 10,000,000
  - Latest Valuation: $20,000,000.00
- **Shareholders Table**: Name, Type (badge), Shares, % Ownership, Vested, Unvested
  - 5 shareholders: Alex Rivera CEO, Jordan Lee CTO, Employee Option Pool, Sequoia Capital, Y Combinator
- **Fundraising Rounds Table**: Name, Pre-Money Valuation, Amount Raised, Price/Share, Status
  - Seed Round ($5M pre-money, $2M raised, Closed)
  - Series A ($15M pre-money, $5M raised, Closed)
- "View Grants" + "New Round" buttons

### Equity Grants (`/startup/equity/grants`)
- Table: Grantee, Type (option/rsa/rsu), Shares, Strike Price, Vesting (progress bar), Status
- Purple vesting progress bars
- 5 mock grants
- "New Grant" button

### Expense Management (`/startup/expenses`)
- My Expenses / All Expenses toggle
- Pending approval queue (yellow highlight)
- Table: Report # (mono), Employee, Date, Total, Status
- Actions: Submit, Approve, Reject, Reimburse
- 4 mock expense reports

### SaaS Vendor Spend (`/startup/saas-spend`)
- **4 KPI Cards**: Total Monthly Spend, Total Annual Spend, Active Subscriptions, Avg Utilization %
- **Upcoming Renewals** warning section (next 30 days)
- Table: Vendor, Product, Category (badge), Monthly Cost, Annual Cost, Seats (used/total), Renewal Date, Status
- Category badges: engineering=teal, sales=green, marketing=purple, hr=blue
- 8 mock subscriptions (GitHub, Slack, AWS, HubSpot, Figma, Notion, Zoom, Datadog)
- "Add Subscription" button

### OKR Tracking (`/startup/okrs`)
- Company-wide progress bar at top (avg of all objectives)
- Period filter (Q1-Q4) + Level filter (Company/Team/Individual)
- **Expandable objective cards**:
  - Title, owner, progress bar (green on_track / yellow at_risk / red behind)
  - Nested key results: title, current/target value, unit, mini progress bar
- 3 mock objectives with 2-3 key results each
- "New Objective" button

### R&D Tax Credits (`/startup/rd-credits`)
- **3 KPI Cards**: Qualifying Hours (YTD), Qualifying Wages, Estimated Credit (at 20% rate)
- **Activities Table**: Name, Category (badge), Description, Qualifying (checkmark)
- **Time Entries Table**: Employee, Activity, Date, Hours, Description
- 4 mock activities + 6 mock time entries
- "New Activity" + "Log Time" buttons

### SaaS Metrics (`/startup/metrics`)
- Description: "Key subscription business metrics. These would pull from a billing integration (e.g. Stripe) in production."
- **8 KPI Cards**: MRR ($0.00), ARR ($0.00), MoM Growth (0.0%), Net Revenue Retention (0.0%), Churn Rate (0.0%), LTV ($0.00), CAC ($0.00), LTV:CAC Ratio (0.0x)
- **4 Chart Placeholders** (dashed border, elevated bg):
  - MRR Over Time (Line Chart)
  - Revenue by Plan (Bar Chart)
  - Churn Cohort (Heatmap)
  - Customer Growth (Line Chart)

### Burn Rate & Runway (`/startup/burn`)
- **6 KPI Cards**: Cash on Hand, Monthly Burn Rate, Gross Burn, Net Burn, Months of Runway, Last Fundraise
- **Runway Projection** chart placeholder (declining dashed line with red $0 threshold)
- **Monthly Breakdown Table**: Month (Jan-May 2026), Revenue, Payroll, SaaS, Rent, Other, Net Burn
- **Fundraising Milestones** timeline: Pre-Seed, Seed, Series A (with "Planning" badges)

---

## Admin Module

### Administration Hub (`/admin`)
- 6 admin cards (each with monochrome SVG icon, title, description):
  - Tenant Settings, User Management, Organizations, API Keys, Webhooks, Audit Log

### Tenant Settings (`/admin/settings`)
- Form: Company Name, Logo URL, Timezone dropdown, Default Currency dropdown, Locale dropdown
- "Save Settings" teal button
- Error banner for API failures

### User Management (`/admin/users`)
- Table: Name, Email, Roles (teal badge chips), Status, Last Login (mono)
- 6 mock users with roles (Admin, Controller, Accountant, etc.)
- Search + status filter
- "Invite User" button

### User Detail (`/admin/users/[id]`)
- Info grid + roles list with remove buttons
- "Add Role" button
- Deactivate action

### Organizations (`/admin/organizations`)
- Table: Name, Code (mono), Address, Users Count
- "New Organization" button

### API Keys (`/admin/api-keys`)
- Table: Name, Key (masked `••••xxxx` in mono), Created (mono), Expires, Status
- "Generate Key" button (one-time reveal)
- Revoke action per key

### Webhooks (`/admin/webhooks`)
- Table: URL (mono), Events (badge chips), Active toggle, Last Triggered (mono)
- "Add Webhook" button
- Edit/Delete actions

### Audit Log (`/admin/audit-log`)
- Table: Timestamp (mono), User, Action (color-coded badge), Entity, Details
- 10 mock audit entries
- Filters: Entity Type, User, Action, Date From, Date To

---

## Workflows Module

### My Approvals (`/workflows`)
- **Pending Approvals** cards:
  - Entity type badge, entity reference, current step
  - Requested by, time waiting
  - Approve / Reject buttons
- **Recent Activity** timeline with colored dots and time-ago

### Workflow Definitions (`/workflows/definitions`)
- Table: Name, Entity Type, Steps, Status, Instances Count
- "New Workflow" button

### Workflow Definition Detail (`/workflows/definitions/[id]`)
- **Visual step pipeline**: numbered boxes connected by SVG arrows
  - Each step: name, approver role/user
- Activate/Deactivate toggle
- Instance history table

---

## Customer/Employee Portal (`apps/portal` — port 3002)

### Portal Home (`/`)
- Link cards to all sections with monochrome SVG icons

### Customer Section
- **My Orders** (`/orders`) — Order #, Date, Status, Total
- **My Invoices** (`/invoices`) — Invoice #, Date, Due Date, Total, Paid, Due, Status + "Pay Now" button
- **My Tickets** (`/tickets`) — Ticket list + new ticket form (subject, description, priority)
- **My Profile** (`/profile`) — Read-only info grid

### Employee Section
- **My Pay Stubs** (`/pay-stubs`) — Pay Period, Gross, Deductions, Net + click-to-view detail
- **My Leave** (`/leave`) — Balance cards + request form + request history
- **My Benefits** — View enrolled plans

---

## Backend-Only Features (API endpoints, no dedicated UI page)

### Finance
- Tax Codes CRUD + tax calculation (basis points)
- Fixed Assets depreciation (straight-line, declining balance, batch runs)
- Period Close wizard (3-point checklist, balance carry-forward, lock/reopen)
- Account Balance projection (BullMQ job on JE post)

### Supply Chain
- Goods Receipts (3-way PO matching, stock movements on confirm)
- Carriers CRUD (tracking URL templates)
- Cycle Counts (auto-populate from inventory, variance calc, auto-adjustment)

### HCM
- Departments CRUD + tree hierarchy
- Job Titles CRUD + salary bands
- Attendance clock-in/out + monthly summaries
- Leave balance initialization + carry-over

### CRM
- Contacts CRUD + DNC flags
- Campaigns (bulk member add, conversion tracking, metrics)
- Quote-to-Sales-Order conversion

### Manufacturing
- Work Centers CRUD
- Routings + routing steps
- Material consumption tracking
- Quality checkpoints

### Reporting
- Report Definitions CRUD + seed system reports (8 built-in)
- KPI snapshots (historical value capture)
- Report execution logging (timing, row count)

### Platform
- WebSocket gateway (Socket.IO + Redis pub/sub)
- BullMQ job queues (6 priority levels)
- OPA authorization guard + `@RequirePermission` decorator
- Notification service (DB + WebSocket emit)
- Workflow engine (definition → instance → transition lifecycle)

### Field Service
- Service Orders (schedule → dispatch → start → complete with signature)
- Technician GPS location tracking
- Service territories (GeoJSON polygons)
- Service order photos (before/after)

### Startup
- Equity grants (exercise, cancel, vesting tracking)
- Liquidation waterfall analysis
- Cap table aggregation
- Expense report line items + receipt URLs
- OKR progress auto-calculation
- R&D credit summary (qualifying hours × wage rate × 20%)

---

## Infrastructure & Tooling

### Database
- 8 schema files: platform, finance, supply-chain, hcm, crm, manufacturing, reporting, startup, field-service
- 95 tables with proper indexes, multi-tenant row-level isolation (`tenant_id` on every table)
- Drizzle ORM with type-safe schema definitions

### i18n
- 3 locales: en-US, fr-CA, es-US
- ~100 translation keys per locale (common, nav, finance, scm, hcm, crm)
- `next-intl` configured for incremental adoption

### Storybook
- 6 story files: Tokens, Buttons, Cards, Tables, Forms, StatusBadge
- Adom brand showcase (color palette, typography scale, spacing)
- Accessibility addon (`@storybook/addon-a11y`)

### Seed Data
- Demo tenant: Acme Corporation
- 40 GL accounts (US GAAP standard COA)
- 12 fiscal periods (FY 2026)
- 3 tax codes, 8 departments, 11 job titles
- 10 employees, 20 items, 5 vendors, 5 customers
- 5 CRM accounts, 4 benefit plans
- 30 leave balances (10 employees × 3 types)

### CI/CD
- GitHub Actions workflow with brand-audit job
- Turbo build orchestration
- TypeScript strict-mode typecheck across all packages

### Docker Compose
- PostgreSQL 16, Redis 7, Elasticsearch 8.17, MinIO, Keycloak 25, Mailpit
