Files
mpm-documentation-kit/_STANDARDS/templates/TAP/build.py
T
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.1 KiB
Python
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.
"""TEMPLATE — Technical Action Plan (TAP). Copy this folder to <PROJECT>/source/ and fill it in.
A planned engagement with a customer or OEM partner: scope, staffing, logistics, procedures, success
criteria. Marked CONFIDENTIAL automatically. 5–12 pages.
See MPM_Document_Standard.md §9.6. Reference: TAP-GIL-M37-01 (GILLIG).
Order: masthead → document-control table → confidentiality notice → 1 Purpose & scope (what changed)
→ 2 Background & register → 3 Information required (Action required) → 4 Personnel
→ 5 Kit → 6 Timeline → 7 Procedures by group → 8 Open items → 9 Acceptance criteria
→ 10 Reporting → 11 Contacts → approval → Revision history
Sections are numbered in the heading text ("3. Information required …"; "7.1 Group A …").
"""
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="TAP-MPM-SUBJ-01", rev="0.1", date="2026-11-06",
customer=None, subject="Product",
footer="Customer · NDA",
title="Customer On-Site Service Engagement",
lede="What is being resolved, for which products, where.",
meta=[("Customer", "Customer · Partner"), ("Engagement", "Dates")],
slug="Customer_Subject_Action-Plan",
history=[("0.1", "2026-11-06", "Initial draft.")],
)
doc.add(
doc.kv([("Supersedes / references", "Prior plans, bulletins, RMAs"), ("Distribution", "Customer | Partner"),
("Affected products", "Product names and part numbers"), ("Field technician", "Name, role"),
("Technical oversight", "Jason Stedwell, Director of Technical Services"), ("Engagement site", "Facility, City, ST")]),
doc.note("Proprietary &amp; confidential", "Provided exclusively to the named recipients under the existing NDA. "
"Reproduction or disclosure to any third party without written consent from MPM is prohibited.", tone="warn"),
doc.section("1. Purpose and scope", new_page=True),
doc.p("What this plan covers and the shared objective."),
doc.note("What changed in this revision", "Only from 1.1 on: the scope change in one paragraph."),
doc.section("2. Background and known-issue summary"),
doc.table([("Reject #", "m"), ("Issue", ""), ("Group", ""), ("Status", "")], [["00000", "Reported issue", "A", "On-site"]],
caption="Known-issue register.", cls="tight"),
doc.section("3. Information required prior to engagement"),
doc.special("Action required", "Customer response needed to finalize the visit",
doc.table([("#", "q"), ("Information needed", ""), ("Why it matters", "")], [["1", "Units staged", "Work starts on arrival"]], cls="tight")),
doc.section("4. Personnel"), doc.p("Who is on site, who oversees, who coordinates."),
doc.section("7. Procedures by group"), doc.sub("7.1 Group A"), doc.steps(["Step.", "Step."]),
doc.section("9. Acceptance criteria"), doc.bullets(["Pass criterion."], check=True),
doc.approval("Jason Stedwell", "Director of Technical Services, Message Point Media | Irondale, AL", "2026-11-06"),
)
doc.build()