Collection of engineering calculation projects (Python + Typst), each with input, calc script, tests, results, and generated PDF where available.
1.8 KiB
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.jsonvalue 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.typto 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 checkedPs/Pu. The suite reconciles them.