Files
Jason StedwellandClaude Opus 5.5 5b52636003 MPM Documentation Kit v1.3 (CW-034)
MPM Document Standard 1.3, mpmdoc build engine, templates for TN, INS, SOP,
BOM, SVY, TAP, DWG, TSB, PRO, SOW and WO (Chinese editions for TN and DWG),
glossary, MPM fonts and logos, and the mpm-technical-documents plugin 1.3.0.
Worked examples ship in the kit zip on Drive only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NWatTMmqmGatgHjDZvWs5b
2026-11-09 11:51:56 -06:00

53 lines
3.4 KiB
Python
Raw Permalink 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.
"""TEMPLATE — Field Work Order (WO). Copy this folder to <PROJECT>/source/ and fill it in.
A dispatch ticket for one job at one site, for MPM technicians or a subcontract installer. It says where,
when, what to do, what to bring and what to send back; the technician fills in the completion record and
both parties sign. Marked INTERNAL USE (it carries contacts and access details). 1–3 pages.
See MPM_Document_Standard.md §9.11.
Order: masthead (Scheduled · Assigned to) → status pill → parties (Site · Site contact · MPM dispatch)
→ job details (kv) → Safety → Work to be performed → Parts and materials → Return with this work order
→ Completion record → signatures → Revision history
Status pill: Dispatched (gold) · On site (ink) · Complete (green) · On hold (red).
The signed, completed copy is scanned into the project's _INPUTS/ (never edited); this PDF stays as issued.
Issue at 1.0; a re-dispatch with changed scope or date is 1.1.
"""
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
doc = Doc(
number="WO-MPM-SITE-01", rev="1.0", date="2026-11-06", customer="Agency", subject="Site",
title="Install: Site Name, Sign Type",
lede="One line: the job, the site, the outcome.",
meta=[("Scheduled", "Nov 10, 2026 · 8:00 AM"), ("Assigned to", "Technician · Company")],
slug="Customer_Site_Work-Order",
history=[("1.0", "2026-11-06", "Issued.")],
)
doc.add(
doc.pill("Dispatched", "gold"),
doc.parties([("Site", {"name": "Stop or facility name", "address": "Street, City, ST", "coordinates": "00.00000, -00.00000"}),
("Site contact", {"name": "Name", "contact": "Role, agency", "phone": "000-000-0000"}),
("MPM dispatch", {"name": "Jason Stedwell", "contact": "Director of Technical Services", "phone": "000-000-0000"})]),
doc.kv([("Customer / project", "Agency · project name"), ("Installer", "MPM, or subcontractor company and lead"),
("Access", "Hours, badge, escort, keys, lift or traffic control"),
("Reference documents", "INS-…, DWG-…, SVY-… (bring or have on a device)")]),
doc.note("Safety", "PPE, work at height, traffic control, lockout at the breaker before opening any enclosure.", tone="warn"),
doc.section("Work to be performed"),
doc.bullets(["Confirm the mounting point matches the drawing.", "Mount the sign; torque fasteners to spec.",
"Terminate power and network; confirm the sign reports online on MP.TV."], check=True),
doc.bom([("Parts and materials", [("Sign assembly", "Model, size", 1, "ea", "PN-0000"), ("Mounting kit", "Per drawing", 1, "kit", "PN-0000")],
"Parts")], checks=("Staged", "Used")),
doc.section("Return with this work order"),
doc.bullets(["Photos: before, mounted, wired, powered with content.", "Serial number of every unit installed or removed.",
"Any difference from the drawing, measured."], check=True),
doc.fields([("Arrival", "Date and time"), ("Departure", "Date and time"), ("Serial(s) installed", ""), ("Serial(s) removed", ""),
("Online on MP.TV", "Time confirmed"), ("Issues or deviations", "")], cols=2, title="Completion record"),
doc.signatures([("Technician", "Name · company · date"), ("Site contact", "Name · date")]),
)
doc.build()