Hand-off
Hand-off
Version 1. 2026-09-23. Update this file at the end of each pass.
Received
The operating plan and weighted scorecard were adopted as version 1. They are live at /framework and /scorecard.
State
- Tax-position register: headers only. No client positions.
- Deadline calendar: federal individual defaults for the 2026 calendar. Each row is
confirmuntil the CPA says it applies to this filer. State dates are absent on purpose. - Categorization rules: proposed keywords only. The user has not confirmed them.
- Savings scan: keyword candidates only. Nothing is marked Ready for CPA.
- QuickBooks: not connected. The service does not yet have the client id, client secret, or token key.
- Database: the CPA service does not yet have
DATABASE_URL, so books, memberships, and live document overrides are unavailable. Scorecard and framework do not need it. - NodeDough bridge: the read path is implemented and waits on the database connection. The budgeting app links here and can request
/api/bridge/summaryafter sign-in. - Sign-in: shared cookie on
.nodedough.comis implemented in both apps. It reaches the budgeting host when that host is running this revision.
Do next
1. Confirm this hand-off against /api/os/manifest. 2. Ask the user for YYYY-MM-DD_GL_YTD.csv, or connect QuickBooks after the missing settings are placed on the CPA service. 3. Apply confirmed categorization rules. Do not invent a second mapping file. 4. Produce register rows with risk labels and missing-substantiation lists. Leave mixed-use rows in Needs Facts. 5. Refresh the calendar when the user names entities and states. 6. Leave a residual-risk section in the next hand-off.
Do not
- Post to the books or to QuickBooks.
- Mark a candidate Ready for CPA without an explicit user confirmation.
- Re-score the scorecard without a finished package.
- Put secrets, EINs, or tokens in
cpa/content/.
Residual risk and open items
No source ledger has been reviewed. No tax position exists. Federal dates may not apply to this filer. QuickBooks and the database are not connected, so there are no live stats yet.