calcs/concentric-footing/TASKS.md
smillmorel d5ac3fca7e Add structural calculation worksheets
Collection of engineering calculation projects (Python + Typst), each with
input, calc script, tests, results, and generated PDF where available.
2026-09-21 12:19:20 -04:00

1.8 KiB

Tasks: Concentric Footing Analysis

Ordered, dependency-ordered plan. Each task has a spec in tasks/: 001_calc_and_input.md, 002_numerical_tests.md, 003_typst_sheet.md, 004_docs_refresh.md, 005_review.md.

# Task Files Status Depends on
001 Numerical core: calc.py + input.yaml + results.json calcs/concentric-footing/calc.py, calcs/concentric-footing/input.yaml, calcs/concentric-footing/results.json DONE —
002 Numerical lock: test_concentric_footing.py (compute() only) calcs/concentric-footing/test_concentric_footing.py DONE 001
003 Presentation: footing.typ + compile + Typst metadata tests calcs/concentric-footing/footing.typ, calcs/concentric-footing/generated/footing.pdf, calcs/concentric-footing/test_concentric_footing.py (append) DONE 001, 002
004 Documentation refresh: README.md + codemap.md README.md (at worksheets/calcs/wood-joist/README.md and/or worksheets root), codemap.md DONE 003
005 Reviewer pass on the whole calculation review notes only DONE 004

Notes

  • Task 001 is the numerical single source of truth; it pins every results.json value name and the exact ACI 318-19 equations. Tasks 002-005 depend on that contract.
  • The Typst metadata tests (soil/structural reconciliation) live with Task 003 because they need footing.typ to exist; Task 002 is purely numerical to keep the dependency graph acyclic.
  • generated/ may not exist yet; Task 003 creates it before compiling.
  • All tasks use hybrid Pint pattern: quoted quantity strings in YAML, quantity() conversion in Python, values+checks contract, presentation-only Typst.
  • Load determination is derived in Typst (DLr, LLr, Br, Lr, Ar, column weight) and emitted as <concentric-footing-loads>; Python reads checked Ps/Pu. The suite reconciles them.