# tsb-mpm Creates, manages, and publishes MPM Technical Services Bulletins (TSBs) for Transit Resellers and Customers. **Version:** 1.1.0 **Author:** Bryan Gilliom / MPM **CoWork Project:** CW-021 — TSB MPM Skill --- ## Overview The tsb-mpm skill is the authoritative workflow for creating, managing, and publishing MPM Technical Services Bulletins — the primary communication channel for configuration, firmware, field service, known-issue, advisory, and security information sent to MPM's Transit Reseller and Customer networks. The skill handles the complete TSB lifecycle: classification, DOCX creation with full MPM brand formatting, Scribe screenshot ingestion with image re-hosting, Drive organization, registry management, short URL generation, PDF export, and branded Gmail draft creation. Output format is branded DOCX (Word document) built with the Node.js `docx` library, matching MPM's Dark Shade/Middle Gold/Dark Gold visual identity. All documents are self-contained — images are embedded, no live external dependencies. Covers 7 platform codes (HARDWARE, RDMC, CMS, INTEGRATION, NETWORK, SERVICE, SECURITY) and 6 type codes (CONFIG, FIRMWARE, FIELD, KNOWN-ISSUE, ADVISORY, SECURITY). --- ## Skills | Skill | What It Does | |---|---| | `tsb-mpm` | Full TSB lifecycle — create from scratch, convert from notes/tickets/transcripts, publish with short URL + PDF + Gmail draft, supersede old bulletins, query registry. Triggers: "create a TSB", "new technical bulletin", "write up a TSB for", "document this issue as a TSB", "publish TSB-2026-CMS-001", "send out the TSB", "release the bulletin", "what TSBs are in draft", "what's the next CMS number", "show me the TSB registry", "update TSB-2026-CONFIG-001", "supersede the old TSB", "turn this ticket into a TSB", "make a TSB from these notes", "draft a TSB from this transcript", "use this Scribe". | --- ## Invocation Modes | Mode | Trigger | What Happens | |---|---|---| | **Mode 1 — New from Scratch** | "Create a TSB for [topic]" | Classifies, assigns ID, optionally ingests Scribe, builds branded DOCX, uploads to Drive, adds registry row | | **Mode 2 — From Existing Content** | "Turn this into a TSB" + notes/ticket/transcript | Extracts content, proposes classification, flags gaps, builds DOCX, uploads, adds registry row | | **Mode 3 — Publish** | "Publish TSB-2026-CMS-001" | Completeness check → header update → short URL → PDF → registry update → Gmail draft | | **Mode 4 — Registry Query** | "What TSBs are in draft?" / "Next RDMC number?" | Reads registry sheet, reports — no doc operations | | **Mode 5 — Supersede** | "Supersede TSB-2026-CONFIG-001 with this" | Creates new TSB, links to old, adds deprecation banner to old doc, updates registry | --- ## DOCX Brand Format | Element | Spec | |---|---| | Font | Arial throughout (no Montserrat/Calibri) | | Page size | US Letter, 1" margins, 9360 DXA content width | | Header banner fill | Dark Shade `#232022` | | Company name / dividers | Middle Gold `#DCBB4F` | | Section header text | Dark Gold `#998643` | | Doc type text in banner | Light Shade `#F5F1EC` | | Footnote / muted text | Light Accent `#849698` | --- ## Setup 1. Install via CoWork Settings → Capabilities → Install Skill → upload `tsb-mpm-v1.1.0.skill` 2. Verify Google Workspace MCP (CW-004) is connected 3. Verify MPM URL Shortener (CW-013) is connected 4. Run: `npm install -g docx` 5. Verify LibreOffice in bash sandbox: `which soffice` 6. Confirm `references/system-config.md` Drive/Sheet IDs are correct --- ## Connection Details | Field | Value | |---|---| | TSB Registry Sheet | `1cFdJp6CKiTVfMBmV-JmbkHkAU709tnzvsYsabEnDnAE`, tab: `TSB Registry` | | TSB Drive Root | `1lsNr7L-t4WFUYEJoynGNMY0ugynFPqr0` | | 2026 Year Folder | `19kY44n0pZ7i3VcKauA3W06uWpY9r38ws` | | Short URL | MPM URL Shortener plugin (CW-013) | | PDF conversion | LibreOffice in bash sandbox | --- ## Requirements - Google Workspace MCP (CW-004) - MPM URL Shortener plugin (CW-013) - `npm install -g docx` - LibreOffice in bash sandbox - `mpm-brand-voice` plugin (CW-001) --- ## Troubleshooting | Symptom | Fix | |---|---| | Registry sheet unreadable | Stop; verify Google Workspace MCP auth; never guess sequence numbers | | Drive folder creation fails | Stop; check Drive permissions | | `docx build fails` | Check `npm install -g docx`; Node ≥ 18 required | | Scribe image download fails | Note failed step numbers; continue; flag at end | | Short URL creation fails | Log warning; continue publish; create manually via mpm.to admin | | PDF conversion fails | Verify: `which soffice` |