Files

63 lines
3.0 KiB
Python
Raw Permalink Normal View History

2026-11-09 11:51:56 -06:00
"""TEMPLATE — Standard Operating Procedure (SOP). Copy this folder to <PROJECT>/source/ and fill it in.
A repeatable task for MPM staff (setup, onboarding, process). Marked INTERNAL USE automatically.
2–6 pages. See MPM_Document_Standard.md §9.2. Reference: SOP-IT-UNIFI-01 (UniFi Talk).
Order (do not reorder):
masthead (automatic) → Before you start → Process at a glance (who does each part)
→ Walkthrough (doc.step per step, screenshots in img/) → special cases (doc.special)
→ Setup checklist → Troubleshooting → Need help? → Revision history (automatic)
Screenshots: crop to the relevant part, mark the control to tap with a gold box, save as JPG in img/.
They are captioned but not numbered. Name on-screen controls with ui('Label').
"""
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, ui
doc = Doc(
number="SOP-IT-SUBJ-01", rev="0.1", date="2026-11-06", # CUST = department: IT, ENG, OPS, QA
customer=None, subject="System",
kicker="End-user walkthrough · System",
title="Do the Thing with the App",
lede="One sentence: what the reader will have done and be able to do at the end.",
meta=[("Audience", "All MPM staff"), ("Time needed", "About 10 minutes")],
slug="MPM_System_Task",
history=[("0.1", "2026-11-06", "Initial draft.")],
)
PHONE, SIDE = "92px", "20%" # one phone screenshot beside a step
doc.add(
doc.before_you_start([
"<b>What has already been done for you</b>, and by whom.",
"What to have in hand before you start.",
"Anything that expires or needs a special case (point to it by name).",
]),
doc.section("Process at a glance"),
doc.glance([
("Account<br>created", "IT", "✓", True), # done by someone else: tick + greyed tile
("Open<br>email", "You"), ("Install<br>app", "You"), ("Sign in", "You"),
]),
doc.section("Walkthrough", new_page=True),
doc.step(1, "Your inbox", "Open the invitation email", doc.steps([
f"Open the email from <b>Vendor</b> and tap {ui('Get Started')}.",
"Continue to Step 2.",
]) + doc.note("Good to know", "One short fact that prevents a support call."),
doc.shot("img/placeholder.jpg", "Caption: what to look for", PHONE), side=SIDE),
doc.special("Some staff only", "Outside the U.S.? Do this first",
"<p>Who this applies to and how they'll know.</p>"
+ doc.steps([f"Tap {ui('VPN')}.", "Leave it on for your whole shift."])),
doc.checklist("Setup checklist", ["Email opened and link tapped", "App shows my name", "Test completed"], cols=1),
doc.section("Troubleshooting"),
doc.table([("Problem", "", "28%"), ("What to do", "")],
[["<b>Email is missing</b>", "Check Spam/Junk. If it isn't there, ask IT to resend it."]]),
doc.note("Need help?", "Contact MPM IT."),
)
doc.build()