Collection of engineering calculation projects (Python + Typst), each with input, calc script, tests, results, and generated PDF where available.
4.1 KiB
Task 004 — Documentation refresh: README.md + codemap.md
Goal
Index the new concentric footing calculation in the shared documentation so the next engineer can discover and compile it without reading source.
Background
Depends on footing.typ existing. This task is typst-builder-local (documentation only). Conventions per PROJECT_STATE.md: compile with --root ., hybrid pattern, no modification to existing calcs.
Files to Modify
README.md— the shared worksheets readme that lists calcs. At present this file lives atcalcs/wood-joist/README.mdwhich serves as the de-facto worksheets README (it documents all sheets). Also check forREADME.mdatworksheets/root if it exists. Update whichever exists; if both exist update both with same concentric-footing entry. If onlycalcs/wood-joist/README.mdexists, that is the file to edit.codemap.md— update atworksheets/codemap.md(and copy tocalcs/concentric-footing/codemap.mdif the per-calc map is expected). Regenerate the whole map rather than editing in place per codemap rules.
Implementation
1. README.md
Add a new section ## Concentric footing after the Wood joist section, following the same style. Include:
- One-sentence description: "Square concentric spread footing under axial load per ACI 318-19 — soil bearing, one-way/two-way shear, flexure, minimum steel, concrete bearing."
- Compile commands:
python calcs/concentric-footing/calc.py typst compile --root . calcs/concentric-footing/footing.typ calcs/concentric-footing/generated/footing.pdf python -m pytest calcs/concentric-footing/test_concentric_footing.py - Stdout variant:
andpython calcs/concentric-footing/calc.py --input calcs/concentric-footing/input.yaml --stdout--outputnote. - Note on load derivation:
input.yamlsupplies checkedPs/Pu(Pint quantities) and footing geometry/materials;footing.typderivesPs/Puinline fromDLr=10psf, LLr=20psf, Br=18.9ft, Lr=27.5ft, column 14in×14ft @145pcfand reconciles via<concentric-footing-loads>query; bearing plate widthbp=6ingovernsA1. - Update the top index code block to add line:
calcs/concentric-footing/ YAML quantities → Pint → JSON → Typst (ACI 318-19) - Ensure the 5-step New calculation list remains unchanged.
If editing worksheets/README.md vs calcs/wood-joist/README.md, keep both in sync; prefer editing the file that actually exists and then copying the change to the other if both are present.
2. codemap.md
Regenerate at worksheets/codemap.md (and also write copy to calcs/concentric-footing/codemap.md if needed for per-calc root check):
- Re-run classification for all 37+ files including the new
calcs/concentric-footing/calc.py [logic],input.yaml [config],footing.typ [logic],test_concentric_footing.py [test],results.json [state],generated/footing.pdf [doc],CONCENTRIC-FOOTING.pdf [doc]. - The layout section must now show
calcs/concentric-footing/expanded with its 5 planned + 3 reference entries. - Hot Spots must now include
calcs/concentric-footing/calc.pyas single source of truth. - Conventions section must mention the new sheet's hybrid Pint pattern and Typst load derivation.
- Timestamp updated to now, Files indexed incremented.
Do not write summaries from imagination; if uncertain read first 20 lines.
Acceptance Criteria
README.mdcontains a new## Concentric footingsection with compile, stdout, and load-derivation notes; top index code block lists the new calc.codemap.mdatworksheets/codemap.mdexists, is well-formed markdown with header, layout, hot spots, conventions; it listscalcs/concentric-footing/and its files.python -m pytest calcs/concentric-footing/test_concentric_footing.py -vstill passes (12 tests).- No existing calc logic files modified; only docs/maps changed.
Tests
python -m pytest calcs/concentric-footing/test_concentric_footing.py -v
typst compile --root . calcs/concentric-footing/footing.typ calcs/concentric-footing/generated/footing.pdf
Both succeed; PDF still compiles.
Dependencies
Task 003 must be DONE.