Work Plan: Schedule C Accounting Workbook¶
Objective¶
Deliver a production-quality Excel (.xlsx) workbook for single-member LLC
(disregarded entity) bookkeeping and Schedule C preparation, per the Founder's
detailed requirements prompt supplied 2026-07-12, with the specification recorded in
this repository and the implementation built in the devonside-labs implementation
repository.
Scope¶
- Product specification scaffold under
ventures/digital-products/products/schedule-c-workbook/(status: proposed/draft), with the Founder's requirements prompt captured verbatim as the requirements source. - Implementation in
C:\Users\Stuart\repos\devonside-labson a feature branch: modular Python/openpyxl generator, generated.xlsx, implementation note, and validation report. - Validation: structural checks (tables, defined names, validations, no merged cells) plus Excel COM open/recalculate verification where Excel is available.
Out of scope¶
- Marketplace listing, pricing, or commercialization work.
- Approving any document (
status: approved) — human-only per decision-rights. - Changes to other ventures or company-level policy.
- Committing/pushing in either repository (left to the Founder unless requested).
Applicable authority¶
- Root
AGENTS.md;ventures/digital-products/AGENTS.md. - ADR-0014 — implementation code lives in
devonside-labs, not here. - Digital Products standards: workbook-architecture, calculation-and-formula, data-modeling, input-and-validation, configuration, compatibility, financial-product-guardrails (proposed — treated as the working requirement set).
- Product artifact lifecycle (
docs/architecture/product-artifact-lifecycle.md): build normally requires a cleared specification gate. The Founder's direct, detailed build instruction of 2026-07-12 is treated as explicit human authorization to run specification and build in the same task; the pasted requirements prompt serves as the specification source.
Files expected to change¶
devonshire-digital:
- work/active/2026-07-12-schedule-c-workbook.md (this file)
- ventures/digital-products/products/schedule-c-workbook/** (new, from template)
devonside-labs (feature branch feature/schedule-c-workbook):
- products/schedule-c-workbook/** — generator source, generated workbook,
implementation note, validation report.
- docs/ai/roadmap.md, docs/ai/session-history.md (and decisions.md if a
material implementation decision arises).
Assumptions¶
- The Founder's pasted prompt is the authoritative requirement set; where it conflicts with the venture's recommended tab pattern, the prompt's explicit 20-sheet architecture controls (it is a per-product deviation documented in the product spec, which the workbook-architecture standard allows).
- Compatibility baseline: Microsoft 365 desktop (dynamic arrays, LET/FILTER etc.), per the prompt.
- Sample data is synthetic; tax parameter values (mileage rate, limits) are entered as user-editable settings with no representation of currency/accuracy — the workbook is an educational/organizational tool, not tax advice (financial-product guardrails). Tax-rule content requires human review before any release.
- IRS-form line mappings in the workbook are labeled as informational defaults the user must verify against current-year IRS instructions; no filing-year-specific accuracy is claimed.
Risks¶
- High-risk domain (tax/finance): mitigated by disclaimers in the workbook, hypothesis/assumption labeling, and flagging for human review before release.
- Excel structural quirks (tables + defined names + validation) can trigger repair prompts: mitigated by COM-based open/recalc verification.
- Per-record data-quality results table is not fully implementable with static tables + formulas; a per-rule summary design will be used and documented as a deviation in the implementation note.
Validation plan¶
- Run the generator; run a structural validation script over the output.
- Open/recalculate via Excel COM (if available); confirm no repair dialog and read computed pass/fail cells for the built-in expected-impact tests.
- Run
python scripts/check.pyandpython -m unittest discover testsin this repository before completion.
Progress checklist¶
- [x] Baseline grounding (root + venture contracts, standards, ADR-0014, registry)
- [x] Work plan written
- [x] Product spec scaffolded and core docs filled (product.json, brief, source requirements captured; remaining template docs unfilled — see handoff)
- [x] Generator built in devonside-labs (feature/schedule-c-workbook)
- [x] Workbook generated and validated (structural + Excel COM recalc; 16/16 built-in tests pass; no repair prompt; no merged cells)
- [x] Implementation note + validation report written
- [x] devonside-labs docs/ai updated (roadmap, session-history, coding-standards gotchas)
- [x] Repo validation run and reported (scripts/check.py + unittest)
Decisions required (human)¶
- Ratify that this product ("schedule-c-workbook", working name) enters the portfolio; approve the product spec when reviewed.
- Review of all tax-content wording before any release (financial-product guardrails; high-risk domain).
Handoff notes¶
- Nothing is committed in either repository (per session policy). In this
repo: this plan +
ventures/digital-products/products/schedule-c-workbook/(scaffold with filled product.json, product-brief, andassets/source-requirements-2026-07-12.md; other template docs still unfilled). Indevonside-labs, branchfeature/schedule-c-workbook(uncommitted working tree):products/schedule-c-workbook/(generator, dist workbook, implementation note, validation report, README) plusdocs/ai/updates and a.gitignoreline for the recalc artifact. - Human decisions outstanding: review tax-content wording before any release
(financial-product guardrails; high-risk domain — NOT approved); decide
whether to register the product in
portfolio/product-registry.json(scaffold ran without--register); commit/PR in devonside-labs (agent does not merge its own PRs there). - One intentional amber ships in the sample data: DQ-35 fires because Setup's Business Start Date is blank; it demonstrates the rule and clears when the user fills Setup.
- Key technical lesson recorded in devonside-labs
docs/ai/coding-standards.md: openpyxl-generated formulas must be rewritten to Excel storage encoding (_xlfn./_xlpm./ANCHORARRAY/[[#This Row]]) or Excel refuses the file.
Work log¶
- 2026-07-12: Grounded in both repos; confirmed devonside-labs is the venture implementation repo (registry + ADR-0014). Wrote this plan.
- 2026-07-12: Scaffolded product via scripts/create_product.py (not registered); fixed duplicate template document_ids; check.py green.
- 2026-07-12: Built modular openpyxl generator (config / helpers / core / transactions / schedules / reporting / sample data / validators) in devonside-labs. 20 sheets, 52 tables, 76 defined names, 72 table-backed dropdown validations, 40 live DQ rules, 16 automated tests, 25 sample scenarios.
- 2026-07-12: Excel initially refused the file; bisected via COM to four
storage-encoding causes plus one unbalanced parenthesis (Link Check
formula). Added
formula_storage.pytransformer; after fixes Excel opens the file cleanly, full recalc completes, 16/16 tests PASS, and 19 hand-computed Schedule C line values match exactly. - 2026-07-12: Wrote implementation note + validation report; updated devonside-labs docs/ai; ran this repo's check.py and unittest (results in final response).
- 2026-07-13: Follow-up UX/formatting pass on the Founder's request: removed
gridlines, centered header vertical alignment, gave table headers explicit
Dark Blue/near-white contrast (overriding the built-in table style),
removed the 500-row number-format buffer causing Excel's "unused
formatting" compatibility warning, added bordered/spaced sections to the
Read Me tab, and added a collapsible per-tab Contents nav (columns A:C
reserved as a nav margin, grouped via Data > Outline; all tab content
moved from column A to column D to make room). The nav-column shift
required manually re-deriving ~40 same-sheet raw cell/conditional-format
references across the reporting sheets; verified via a real Excel COM
recalculation pass (no repair prompt, 16/16 automated tests pass, zero
formula-error cells) rather than trusting file generation alone. The
Founder asked that the collapsible-nav pattern be treated as a standard
for all future Devonside Labs Excel products, not just this one: recorded
it as a new "Preferred implementation" subsection in this repo's
workbook-navigation-and-ux-standard.md(version bumped 0.1.0 -> 0.2.0), pointing atadd_contents_navin devonside-labs' generator as the reference implementation. Committed and pushed onfeature/schedule-c-workbookin devonside-labs (PR opened, not self-merged); this governance-repo doc change committed directly tomainper this repo's existing commit pattern (docs-first repo, no branch/PR precedent found in recent history). - 2026-07-13 (PR #4,
feature/schedule-c-workbook-ux-polish): Replaced the flat cell-based Contents nav with a hand-tuned gradient design (matched from a manual Excel edit) — centered "Contents" header via Center Across Selection (not a merge, which the workbook's structural validator forbids), active-tab row highlighting, and full-column gradient accents in columns A/C. Split six sheets that held more than one named Excel Table (Vendors/Customers, Inventory/COGS, Vehicles, Home Office, Loans, Sales Tax) so each table gets its own tab; fixed ~21 cells with invisible header/total text (nav's white-on-navy style applied with no background fill behind it). Verified via structural validation + Excel COM recalculation (16/16 tests passing). Merged via PR #4. - 2026-07-14 (PR #5,
feature/schedule-c-readme-and-nav-polish): Read Me layout fix (drops the A:C nav buffer and freeze panes since it carries no Contents nav; content starts at column B instead), row heights now computed from actual Calibri glyph metrics via tkinter instead of a chars-per-line approximation, every sheet's title font bumped 13pt to 16pt, and the nav's light accent color swapped from the Blue-Lighter-80% theme swatch to a literal cream RGB(253,252,247). Merged via PR #5. - 2026-07-14: Reviewed devonside-labs activity across PRs #3-#5 for this
repo's governance updates. Refreshed
workbook-navigation-and-ux-standard.md's "Preferred implementation" section (now stale after PR #4/#5) to describe active-tab highlighting, the Read Me nav exemption, and to point styling specifics (colors/ gradients) at the venture's unresolved visual identity rather than implying they're fixed policy; version 0.2.0 -> 0.3.0. Added two new structural principles toworkbook-architecture-standard.mdgeneralizing lessons the reference implementation already enforces — one Excel Table per tab as a default, and no merged cells anywhere (use Center Across Selection instead), consistent with the existing merged-cells caution in the company-wideaccessibility-standard.md; version 0.1.0 -> 0.2.0. Spot-checked for company-wide (non-digital-products) policy implications: none found — these are Excel-specific UX/structural patterns explicitly scoped to this venture (workbook-visual-design-standard.mdalready states it does not apply to Shelfery or other ventures), and the merged-cells point was already anticipated at the company level. Bumpedproduct.json'slast_updatedto 2026-07-14 to reflect continued iteration; did not touchlifecycle_status(human decision, unchanged). - 2026-07-27: Resolved the open question (tracked in devonside-labs'
docs/ai/open-questions.md) of whether to backfill this product's unfilled governance-repo template documents (product-requirements.md,acceptance-criteria.md,commercialization-plan.md,decisions/). Per the Founder's direct instruction: no — the governance repo defines the venture only; per-product specs live entirely in the implementation repository. Recorded as DD-DIGPROD-ADR-0003; updatedproduct-artifact-lifecycle.md(stage 3),product.json'sstatus_note,context-loading.md, androle-routing.mdto match. Mirror decision recorded in devonside-labs'docs/ai/decisions.md("Product specs live with the product, not in governance-repo templates", 2026-07-27) anddocs/ai/open-questions.md(item removed).python scripts/check.pygreen after these changes.