calcs/wood-joist/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

29 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Tasks: Wood Joist Analysis
Ordered, dependency-ordered plan. Each task has a spec in `tasks/NNN_name.md`.
| # | Task | Files | Status | Depends on |
|---|---|---|---|---|
| 001 | Numerical core: `calc.py` + `input.yaml` + `results.json` | calcs/wood-joist/calc.py, calcs/wood-joist/input.yaml, calcs/wood-joist/results.json | DONE | — |
| 002 | Numerical lock: `test_wood_joist.py` (compute() only) | calcs/wood-joist/test_wood_joist.py | DONE | 001 |
| 003 | Presentation: `beam.typ` + compile + Typst metadata test | calcs/wood-joist/beam.typ, calcs/wood-joist/generated/wood-joist.pdf, calcs/wood-joist/test_wood_joist.py (append) | DONE | 001, 002 |
| 004 | Documentation refresh: `README.md` + `codemap.md` | README.md, codemap.md | DONE | 003 |
| 005 | Reviewer pass on the whole calculation | review notes only | DONE | 004 |
| 006 | `check_service` + move load determination to Typst | lib/sheet.typ, calcs/wood-joist/input.yaml, calcs/wood-joist/calc.py, calcs/wood-joist/beam.typ, calcs/wood-joist/results.json | DONE | 001–005 |
| 007 | Test updates + Typst load-demand reconciliation | calcs/wood-joist/test_wood_joist.py | DONE | 006 |
| 008 | Docs refresh (`README.md` + `codemap.md`) + reviewer pass | README.md, codemap.md | DONE | 006, 007 |
## Notes
- Task 001 is the numerical single source of truth; it pins every `results.json`
value name and the exact equations. Tasks 002–005 depend on that contract.
- The Typst metadata test (steel-beam query pattern) lives with Task 003 because
it needs `beam.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.
- Tasks 006–008 implement the user-approved "move load determination to Typst"
change. Task 006 changes the shared `lib/sheet.typ` (additive `check_service`
only) and the wood-joist contract; Task 007 adapts the tests and adds the
`<wood-joist-loads>` reconciliation test; Task 008 refreshes docs and runs the
reviewer pass verifying deterministic benchmark evidence. The Pompano Beach
benchmark values must stay identical.