LevPro sd-app Full Port — closing log
LevPro sd-app Full Port — closing log
Section titled “LevPro sd-app Full Port — closing log”Closes sdc-sdapp-full-levpro-port (opened 2026-08-29, closed 2026-09-01, 18 rounds). Full history: git log -p on the task file; pre-round-14 detail archived in monorepo b1f8b1f and earlier commits.
What shipped
Section titled “What shipped”Ported Talbot’s VB6 LevPro desktop app to sd-app (SvelteKit PWA), full parity + upgrades, across 3 strategies (interest-only, term-loan, RRSP Catch-Up):
- Full UI port — complete input sets, historical/monthly toggles, Investor-Info Loan-Amount⇄Annual-Investment/Payment toggles, 7 investment-type presets (6 + Custom Mix), auto-recompute (no Calculate buttons).
- Math engine — sd-math, VB6-derived golden fixtures, M5-audited, 260 tests.
- On-screen charts —
ComparisonBarChart,MultiLineChart, upgraded past LevPro’s primitive dual-axis originals. - Bilingual EN/FR — 231/231 keys, LevPro’s own French recovered from an encoded cipher and verified against the BMO-translated source.
- Licensing — Stripe Checkout subscription (Talbot’s delegated pick), entitlement gate, all 3 screens.
- W1 Setup + taxation — curated per-province profiles + Advanced override; 20/26
frmProgramSetup.frmcontrols mapped, 6 unmapped with recorded reasons. - W2 Provincial coverage — all 13 provinces/territories, QC’s limited-deductibility flags; a regression test asserts no tax-rate field ever ships in the payload (never invent financial data).
- W3 PDF parity + Print Options — diffed against
Sample Printout.pdf; found and fixed 4 real defects (missing Assumptions block, suppressed0values, missing Notes lines, no signature block) that 18 self-referential tests had missed. Print Options panel ships all 4 LevPro checkboxes + the “Prepared for” field.packages/pdf-reportscarved out post-parity. - W4 Welcome/About/Account — 54 controls inventoried; company-name persistence wired through to PDFs.
Final green bar: 260 sd-math + 110 sd-api + 5 pdf-reports + 41 sd-app vitest, pnpm check 0 errors, pnpm build clean, lint clean.
Durable artifacts
Section titled “Durable artifacts”| What | Where |
|---|---|
| App plan, archive map, workstream gates | apps/sd-app/ROADMAP.md |
| ADRs 0001–0005 | apps/sd-app/docs/adr/ |
| Review guide | apps/sd-app/docs/Review-LevPro.md |
| Port audit + LevPro reference screenshots | apps/sd-app/docs/audit/, docs/reference/ |
| Key commits | monorepo c79c1ff, 6dc9549, aadfa9a, 2ed33fe, ceac92b |
Process fixes this task drove (now in AGENTS.md / SMTM)
Section titled “Process fixes this task drove (now in AGENTS.md / SMTM)”- SMTM v5.7 Continuation Gate (
/task-completeStep 4c) — no task closes without a named/verified successor or an explicit terminal reason. Direct fix for this task’s own round-7/8 breakage (successor thread dropped twice). /task-continuePath to Completion block (Step 6b) — every round ends with an exact next command, not just a list of decisions.- Review-guide check —
/task-completenow verifies a review guide exists and is current before closing; caughtReview-LevPro.mdgenuinely stale mid-task (listed shipped features as “not built”). /task-compactskill — built and tested on this file (105,899 → 18,475 bytes, −82.6%), now a 4th option on the creep gate.GlobalDevRules.md§3.10 — dev artifact placement (KB = context + pointers, repo = the artifacts).GlobalDevRules.md§3.12 (new, this close) — archive-as-spec beats screenshot-elicitation for legacy-app ports; concurrent-subagent handoff-file protocol.- AGENTS.md (this close) — self-referential test suites can’t catch spec-fidelity defects; Word 97
.docextraction via latin-1 regex scrape.
Do not redo
Section titled “Do not redo”- Encoded language files trap —
Latest Release\english.txt/french.txtareEncodeLanguageFiles.exeoutput, not readable strings. Real plain-text sources:Translation for LevPro 4.0.txt,Languages\french-before BMO Translator.txt(both CR-only line endings,tr '\r' '\n'). - Word 97
.doclayout specs failmarkitdown— latin-1 printable-run regex scrape instead (see AGENTS.md). - Don’t rebuild a
_WorkingOn/Projects/SD-App/scaffold — archived 2026-08-27; the repo (apps/sd-app/ROADMAP.md/STATUS.md) is the SSOT. - Don’t ship a per-province marginal-tax-rate table — no authoritative source; LevPro itself made the advisor enter it. ADR-0002.
- Computer-use / driving the live LevPro app was evaluated and rejected — the
.frmVB6 source is strictly more precise than reading pixels. - The ~$110 Console API credits are a separate pool from Claude Code’s Pro-subscription billing — never consumed by this work regardless of session length.
Still open (moved to the successor task)
Section titled “Still open (moved to the successor task)”SDC/IT/Tasks/sdc-sdapp-deploy-miniapp.md now carries: Cloudflare Pages + Stripe account creation (Talbot-only), SDC/Risks review of W1’s Advanced tax override (gates production), ADR-0005 confirmation, ADR-0002’s D2 reading confirmation, and the frmPrintOptions.frm radio-group question.