Files

61 lines
3.7 KiB
Python
Raw Permalink Normal View History

2026-11-09 11:51:56 -06:00
"""TEMPLATE — Site Survey (SVY). Copy this folder to <PROJECT>/source/ and fill it in. Photos go in img/.
A record of what exists on site and what it means for design. 4–12 pages.
See MPM_Document_Standard.md §9.5. Reference: SVY-SOR-MON-01 (SORTA Monument Square).
Order: masthead → control table (kv) → About this document (dark) → Status note
→ PART 1 Summary of Findings (customer) → PART 2 Engineering Detail (MPM internal)
→ To verify list → Appendix A Photo log → Appendix B Field notes (verbatim) → Revision history
Rules: dimensions as recorded in the field (convert, never round away the original); anything not
measured is TBC or a To-verify item; photos are numbered figures and every one is in the photo log.
"""
import sys, pathlib
HERE = pathlib.Path(__file__).resolve().parent
sys.path.insert(0, str(next(p / "_STANDARDS" for p in HERE.parents if (p / "_STANDARDS").is_dir())))
from mpmdoc import Doc, verify
doc = Doc(
number="SVY-MPM-SITE-01", rev="0.1", date="2026-11-06",
customer=None, subject="Site name",
title="Site Name Wayside Signage",
lede="What was surveyed, for which project, and when the field visit took place.",
meta=[("Survey date", "Nov 6, 2026"), ("Surveyor", "Jason Stedwell · MPM")],
slug="Customer_Site_Site-Survey",
classification="internal", # internal until Part 2 is split out for the customer
history=[("0.1", "2026-11-06", "Preliminary draft from field notes and photographs.")],
)
doc.add(
doc.kv([("Prepared for", "Customer, City, ST"), ("Prepared by", "Message Point Media (MPM): name, role"),
("Basis", "N pages of field notes · N site photographs · drawings received (or none)")]),
doc.dark("About this document", [
"<b>Part 1, Summary of Findings</b>, is written for the customer.",
"<b>Part 2, Engineering Detail</b>, is MPM-internal.",
"<b>Appendices</b> hold the photo log and a verbatim transcription of the field notes.",
]),
doc.note("Status of this revision", f"Preliminary draft. Items marked {verify()} are points of record to confirm with the customer."),
doc.part("Part 1", "Summary of Findings"),
doc.section("1.1 Purpose"), doc.p("Why the survey was done, in rider/agency terms."),
doc.section("1.2 Scope"), doc.p("What was in and out of scope, and why."),
doc.section("1.3 What we found"),
doc.table([("Stops", ""), ("Structure", ""), ("Existing mount", ""), ("Governing clearance", "")],
[["A, B", "Steel column", "Side / cantilever", "Member <b>870 mm</b> from mount"]], caption="Families found on site."),
doc.p("<b>Lead with the conclusion.</b> One bold sentence per finding, then what it means for the design."),
doc.part("Part 2", "Engineering Detail", internal=True),
doc.section("2.1 Survey record"),
doc.kv([("Survey date / time", "From photo EXIF"), ("Site name", f"As recorded {verify()}")]),
doc.section("2.2 Observations and design constraints"),
doc.sub("Field observations"), doc.bullets(["What was seen or measured, with the value in bold."]),
doc.sub("Design constraints and implications"), doc.bullets(["What the observation forces in the design."]),
doc.note("To verify with the customer before release", ["Every point of record still open, with its section number."], tone="verify"),
doc.part("Appendix A", "Photo Log"),
doc.table([("#", "q"), ("Time", "m"), ("File ID", "m"), ("Subject", "")], [["1", "08:46:17", "D2C5E8C7", "What the photo shows"]], cls="tight"),
doc.part("Appendix B", "Field Notes: Verbatim Transcription"),
doc.transcript("Notebook heading", ["Spelling and abbreviations preserved.", "• bullet as written"]),
)
doc.build()