Skip to content

Userflows

End-to-end manual-test playbooks, one MD per flow, for all four BreezyCorp products. Each playbook is self-contained: it lists the actor, prerequisites (seed data references), step-by-step click path, the API contracts it exercises, and the DB / mailpit / S3 verifications you should expect at every step.

Use these whenever you are:

  • onboarding to the codebase and want to walk a single feature without reading the whole testing guide
  • writing or reviewing an integration test and need a canonical trace
  • triaging a bug — match the failure to a flow and follow the verification points
  • demoing a specific capability to a stakeholder

One-shot setup of every dependency the playbooks expect: _shared/00-environment-setup.md. Run that once per machine; everything else assumes it.

Source-of-truth SOPs

The flows are derived directly from the SOPs and trace each numbered step back to a section anchor:

If a playbook diverges from the SOP, the playbook is wrong — file a ticket against the playbook, not the SOP.


Payroll

Anchor client: ACME (clientCode: ACME) — already seeded with a closed 2026-03 prior cycle and an open 2026-04 INTAKE_IN_PROGRESS cycle. GLOBEX is used for the approval-side flow because it is seeded mid-CLIENT_REVIEW.

#FlowSOP stepFile
P-01Initiate cycle (request data)§6 / Step 1.0 (S0 → S1)payroll/01-initiate-cycle.md
P-02Client intake — Yes-changes path§6 / Step 2.0 (S1 → S4)payroll/02-client-intake-changes.md
P-03Client intake — Zero-change fast path§6 / Step 2.0 (one-click)payroll/03-zero-change-fast-path.md
P-04Validation & completeness§6 / Step 3.0 (S4 → S7)payroll/04-validation.md
P-05Request info from client (issue resolution loop)§7 / Exception Handlingpayroll/05-request-info-from-client.md
P-06Internal review & override approvals§6 / Step 4.0 (S7 → S8)payroll/06-internal-review.md
P-07Generate Infotech export§6 / Step 5.0 (S8 → S10)payroll/07-generate-export.md
P-08Upload payroll output (optional)§6 / Step 6.0payroll/08-upload-output.md
P-09Request client approval§6 / Step 6.0payroll/09-request-approval.md
P-10Client approval decision (approve / revision / query)§6 / Step 6.0 (S10 → S14)payroll/10-client-approval.md
P-11Finalize, close, archive§6 / Step 7.0 (S14 → S16)payroll/11-finalize-close.md
P-12Reminder escalation (day 2 / 5 / 7)§6 / Step 2.0 (timeline)payroll/12-reminder-escalation.md

Walk down P-01 → P-11 in order for the end-to-end story.

Bookkeeping

Anchor client: ZENITH (clientCode: ZENITH) — bookkeeping-only, Xero platform, SGD base, materiality SGD 50. Seeded with a draft April 2026 batch (4 entries spanning every status × confidence combination) and a UOB statement with 1 EXACT + 2 PROPOSED + 3 UNRECONCILED matches.

#FlowSOP stepFile
B-01Onboard a new bookkeeping client (cold path)§2 + §4bookkeeping/01-onboard-client.md
B-02Configure ingestion channels (WhatsApp / Google Drive)§3bookkeeping/02-ingestion-channels.md
B-03Ingest a document — manual upload path§3 + §4.1bookkeeping/03-ingest-document-manual.md
B-04Ingest a document — WhatsApp / folder paths§3.2 + §3.3bookkeeping/04-ingest-document-channels.md
B-05Review a journal batch (approve / edit / reject / escalate)§4.5bookkeeping/05-review-journal-batch.md
B-06Generate upload file (Xero / QBO / Zoho / Tally)§4.4bookkeeping/06-generate-upload-file.md
B-07Upload bank statement & parse§5.1bookkeeping/07-bank-statement.md
B-08Run reconciliation matcher§5.2bookkeeping/08-reconciliation-run.md
B-09Confirm proposed matches§5.2bookkeeping/09-confirm-matches.md
B-10Dispatch unreconciled items to client§5.3.1bookkeeping/10-dispatch-unreconciled.md
B-11Client portal — respond to unreconciled items§5.3.2 / §5.3.3 / §5.3.4bookkeeping/11-client-portal-unreconciled.md
B-12Reviewer exception queue (NO_SUPPORTING above materiality)§5.3.4 + Exception Handlingbookkeeping/12-exception-queue.md
B-13Complete reconciliation & generate report§5.4bookkeeping/13-complete-reconciliation.md
B-14Annual bookkeeping batch flow§6bookkeeping/14-annual-bookkeeping.md
B-15Audit export (immutable trail)§8bookkeeping/15-audit-export.md

Walk down B-01 → B-15 in order for the end-to-end story.

Financial Statements

Anchor client: AURORA (clientCode: AURORA) — financial-statements-only, SFRS for Small Entities, SGD base. Seeded with one FY2024 engagement in TB_MAPPED: 13 trial-balance rows already mapped to SFRS taxonomy keys, one persisted FsGeneratedStatement (v1, balanced), and five mandatory disclosure responses pre-filled (DISC-001 / DISC-002 / DISC-003).

The Phase 0 cross-cutting state + the constitution / status machine / export gate foundations are in place; the operational surfaces (TB upload → mapping → statements → notes → DOCX) light up as the Phase 1 service layer ships. Until then, the 00-manual-testing.md playbook drives every layer through Prisma Studio / Node REPL.

#FlowSOP stepFile
FS-00Manual testing — Phase 0 / Phase 1 foundations(cross-cutting)financial-statements/00-manual-testing.md
FS-01Create FS engagement§6 / Step 1.0financial-statements/01-create-engagement.md
FS-02Upload trial balance§6 / Step 2.0financial-statements/02-upload-trial-balance.md
FS-03Auto-suggest and confirm SFRS taxonomy mappings§6 / Step 3.0financial-statements/03-auto-suggest-mapping.md
FS-04Generate statements (BS / P&L / SOCE / Cash Flow)§6 / Step 4.0financial-statements/04-generate-statements.md
FS-05Disclosure interrogation§6 / Step 5.0financial-statements/05-disclosure-interrogation.md
FS-06Generate notes & Directors Report (Claude, single 16K call)§6 / Step 6.0financial-statements/06-generate-notes.md
FS-07Export publication-ready DOCX§6 / Step 7.0financial-statements/07-export-docx.md
FS-08Client portal sign-off (optional)§6 / Step 8.0financial-statements/08-client-review.md
FS-09Archive engagement§6 / Step 9.0financial-statements/09-archive.md

Walk down FS-01 → FS-09 in order for the end-to-end story.

XBRL Filing

Anchor client: STELLAR (clientCode: STELLAR) — XBRL-only, FULL_XBRL entry point, NON_LISTED_COMPANY_FULL entity type, SFRS accounting standard, taxonomy acra_2026_v1. Seeded with two filings designed to exercise the export-gate failure paths:

  • One filing in MAPPING_IN_PROGRESS — 5 line items, 3 confirmed, 2 unconfirmed → gate raises UNCONFIRMED_TAG_MAPPING.
  • One filing in VALIDATION_FAILED — 5 line items all confirmed, validation run with 1 ERROR + 1 WARNING + 1 INFO → gate raises VALIDATION_ERROR_PRESENT.

The Phase 0 cross-cutting state + the constitution (1871 elements, 144 rules, mapping library) / status machine / export gate / five non-negotiable cursorrules foundations are in place; the operational surfaces (document ingestion → mapping confirmation → validation → BizFinx export → mark filed) light up as the Phase 2 service layer ships. Until then, the 00-manual-testing.md playbook (shared with FS) drives every layer through Prisma Studio / Node REPL.

#FlowSOP stepFile
X-01Create XBRL filing§6 / Step 1.0xbrl/01-create-filing.md
X-02Upload source document (DOCX / PDF)§6 / Step 2.0xbrl/02-upload-source-document.md
X-02bPull line items from a Financial Statements engagement§6 / Step 2.0 (cross-product, Phase 3)xbrl/02b-pull-from-fs-engagement.md
X-03Confirm tag mappings (Rule 3 gate)§6 / Step 3.0xbrl/03-confirm-mappings.md
X-04Run 144-rule validation (Rule 2 gate)§6 / Step 4.0xbrl/04-run-validation.md
X-05Export BizFinx XLSX and XBRL XML (gated)§6 / Step 5.0xbrl/05-export.md
X-06Client portal sign-off (optional, UEN-confirmed)§6 / Step 6.0xbrl/06-client-signoff.md
X-07Mark filed with ACRA (XBRL_REVIEWER / PLATFORM_ADMIN only)§6 / Step 7.0xbrl/07-mark-filed.md
X-08Archive filing§6 / Step 8.0xbrl/08-archive.md

Walk down X-01 → X-08 in order for the end-to-end story.

Immigration

Singapore MOM work / visit pass applications. One AgentRun of IMM.PREPARE_APPLICATION per application, on the tenant spine — there is no anchor seed client; provision a LIVE employer entity + applicant Party under any tenant, or use the SG smoke group entity. The workflow pauses at a client FORM step (AWAITING_CLIENT) and ends at a tier-4 human submission gate; the platform never auto-files with MOM.

#FlowSOP stepFile
IMM-01Operator intake (start a pass application)§8 / Step 1immigration/01-operator-intake.md
IMM-02Client form and documents (portal)§4 / Step 3immigration/02-client-form-and-documents.md
IMM-03Eligibility and operator review§5 / Steps 4–5immigration/03-eligibility-and-review.md
IMM-04Tier-4 submission and acknowledgement§6 / Step 6immigration/04-tier4-submission-and-acknowledgement.md
IMM-05Renewal tracking§7 / Step 7immigration/05-renewal-tracking.md

Walk down IMM-01 → IMM-05 in order for the end-to-end story.


Conventions used in every playbook

Each file follows the same shape so you can scan one and skim the rest:

# <flow id> · <flow title>

> SOP: <link + section>
> Actors: <Staff / Client roles>
> Pre-state: <required cycle / batch state>
> Post-state: <expected outcome>

## 0. Prerequisites
- Seed data references (which client, which IDs)
- Other flows that must have run first

## 1. Steps
- Numbered click path with API endpoint, request body shape, expected response

## 2. Verification
- DB rows / state transitions
- Mailpit subjects + recipients
- S3 / MinIO objects
- Audit log entries

## 3. Negative & edge cases
- Bad-state attempts, validation failures, idempotency checks

When a flow has multiple branches (e.g. happy path vs. revision-requested), each branch lives under its own H2 in the same file.

Naming

  • Roles use SOP terminology (CR / PE / POL for payroll, Reviewer / Senior Accountant for bookkeeping) but cross-reference the codebase role enum (PAYROLL_EXECUTIVE, BOOKKEEPER, etc.) when calling out RBAC checks.
  • "Staff user" / "Ops user" for internal actors. "Client user" / "Client contact" for external actors. Never "internal user".
  • All dates are absolute (2026-04-25), never relative.

Internal use only — BreezyCorp