feat: add mpm-sow-drafter SKILL.md
This commit is contained in:
@@ -0,0 +1,252 @@
|
|||||||
|
---
|
||||||
|
name: mpm-sow-drafter
|
||||||
|
description: "Draft Statements of Work (SOWs) for Message Point Media digital signage projects — LCD Wayside, Mobile Bus Retrofits, Solar Wayside, LED Wayside, or combinations. Use this skill whenever the user uploads or references MPM/Message Point Media quotations, sales orders, or project pricing files (Odoo S00### quotes) and asks for a statement of work, SOW, scope of work, project scope document, or contract scope — even if they don't explicitly say 'SOW'. Also trigger for phrasings like 'draft a scope', 'write up the project for [transit agency name]', 'turn this quote into an SOW', 'scope document for this deployment', or 'SOW for the Vontas/Avail/TripSpark/IDIS project'. Specialized for MPM's transit-agency reseller model (Vontas, TripSpark, Avail, IDIS, etc.) with DBE installation, MPTV licensing, EX/M/LX/K-series hardware, TransitPoint middleware, and MPM's standard payment milestones, trip-charge travel policy, and responsibility splits between reseller, end-client, and MPM."
|
||||||
|
---
|
||||||
|
|
||||||
|
# MPM Statement of Work Drafter
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
This skill drafts Statements of Work for Message Point Media (MPM) digital signage projects. MPM sells through resellers (Vontas, TripSpark, Avail, IDIS, and others) into transit agencies. Every project has three parties — MPM (implementer), the reseller (commercial customer), and the end-client transit agency — and the SOW has to split responsibilities cleanly across all three.
|
||||||
|
|
||||||
|
The skill's job is to take MPM pricing files (Odoo quotations / sales orders) plus a handful of answers from the user and produce a brand-consistent .docx SOW that follows MPM's template, includes the right conditional sections for the project type(s), and leaves no grey areas about what's in and out of scope.
|
||||||
|
|
||||||
|
## When this skill runs, work through these phases in order
|
||||||
|
|
||||||
|
1. **Parse the pricing files** to inventory what's actually in the project
|
||||||
|
2. **Classify project type(s)** — LCD Wayside, Mobile Bus Retrofit, Solar Wayside, LED Wayside, or a combination
|
||||||
|
3. **Ask clarifying questions** about anything that can't be cleanly inferred
|
||||||
|
4. **Generate the SOW .docx** using the template as a starting point, conditionally including or removing sections based on the project
|
||||||
|
|
||||||
|
Don't skip phase 3. Guessing at connectivity, training format, pilot inclusion, or site-survey scope creates the exact grey areas this skill is supposed to prevent.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 1: Parse the pricing files
|
||||||
|
|
||||||
|
Pricing files are MPM Odoo quotation/sales order PDFs. They follow a consistent structure: header with invoicing + shipping addresses (the shipping address is usually the end-client; the invoicing address is usually the reseller), a quote/order number (`S00###`), a set of line-item categories, and a total.
|
||||||
|
|
||||||
|
### Product code patterns
|
||||||
|
|
||||||
|
Every line has a bracketed SKU like `[DSP-EX55-Dual-G1]` or `[LIC-MPTV-Pro-Base]`. The prefix tells you the category:
|
||||||
|
|
||||||
|
| Prefix | Category | What it signals for the SOW |
|
||||||
|
|---|---|---|
|
||||||
|
| `DSP-EX…` | Outdoor LCD display/kiosk (EX-series) | LCD Wayside project |
|
||||||
|
| `DSP-LX…` | Outdoor LED display (LX-series modular LED) | LED Wayside project |
|
||||||
|
| `DSP-M…` / `M37sw`, `M…` (no DSP prefix sometimes) | Vehicle-rated mobile display | Mobile Bus Retrofit project |
|
||||||
|
| `EX KVD`, `EX49KV`, `EX55KVD` | Interactive kiosk (K = kiosk, V = vertical, D = dual-sided, T = touch) | LCD Wayside w/ kiosk component |
|
||||||
|
| `MP-LX210`, `MP185`, `MP190` | Signage controller | Paired with a display; not a separate project element |
|
||||||
|
| `KIT-MNT-M-…` | Mobile mounting kit (bus-specific; e.g. `-GLG` = Gillig) | Mobile retrofit — note the bus model |
|
||||||
|
| `CBL-DC-…` | DC power cable for mobile | Mobile retrofit |
|
||||||
|
| `MNT-E-MountingBudget` | Outdoor custom mounting budget | Wayside (indicates site survey probably needed) |
|
||||||
|
| `ACC-ADA-…` | ADA push-button switchbox | Accessibility feature for wayside displays |
|
||||||
|
| `ACC-GS` | Graffiti shield | Anti-vandal wayside protection |
|
||||||
|
| `Kit-M-IoT-Stop` | Stop request module | Mobile or wayside with passenger-actionable request |
|
||||||
|
| `SVC-PROV` | Initial display provisioning/configuration | Pre-ship factory config |
|
||||||
|
| `PS-OS-T1/T2/T3` | Onsite professional services labor | Onsite work — hours >= 24 usually means install-adjacent |
|
||||||
|
| `PS-RS-T1/T2/T3` / `PS-Des-T1/T2` | Remote/design professional services | Design, planning, sw install |
|
||||||
|
| `PS-PM-T1/T2` | Project management | Every project has this |
|
||||||
|
| `PS-Tr-OS` | Onsite training | User opted for onsite training delivery |
|
||||||
|
| `PS-Tr-RS` or no training line | Remote training or unspecified | ASK about training delivery |
|
||||||
|
| `PS-Dev-T1` | Custom development | Usually API integration (e.g., Vontas API) |
|
||||||
|
| `PS-Travel` | Travel + per-diem budget (trip charge) | Implies onsite visits — count the units = number of trips |
|
||||||
|
| `DBE-Inst-M-Single` | DBE installation, mobile, per-unit | Per-bus installation cost |
|
||||||
|
| `DBE-Inst-S` / `DBE-Inst-M-L` / `DBE Installation (Kiosk / Outdoor Large / Outdoor Small)` | DBE installation, wayside | Per-site installation cost |
|
||||||
|
| `DBE-Dispatch` | DBE dispatch mobilization fee | Triggers for any DBE-installed project |
|
||||||
|
| `LIC-MPTV-Pro-Base` | MPTV Professional license (per-display, annual) | Standard annual licensing |
|
||||||
|
| `LIC-Transitpoint` | TransitPoint middleware license | GTFS/middleware data services included |
|
||||||
|
| `OnSign License` | OnSign light license | Typically internal/admin screens |
|
||||||
|
| `Warranty (One/Three/Five Year)` | Extended warranty | Note term; 1-year is factory default (no cost) |
|
||||||
|
| `PKG-OutboundShip` | Estimated outbound shipping | Budget only; actual billed on final invoice |
|
||||||
|
| `Powder Coating` | Custom finish for kiosks | Cosmetic customization, not scope-critical |
|
||||||
|
|
||||||
|
Anything starting with `[PS-` is professional services and always needs a line-item inventory even when quantities look small.
|
||||||
|
|
||||||
|
### What to extract from every pricing file
|
||||||
|
|
||||||
|
From each quote/order PDF, pull at minimum:
|
||||||
|
- **Quote/order number** (S00###) and date
|
||||||
|
- **Reseller** (from invoicing address, if distinct from shipping) and **End-Client / Agency** (from shipping address, or from the quote title)
|
||||||
|
- **Salesperson** (on the quote)
|
||||||
|
- **Full line-item inventory** grouped by category (Hardware, Professional Services, Installation, Licenses, Warranty, Travel, Shipping)
|
||||||
|
- **Quantities** — especially display quantities (drives deployment size) and travel units (drives site-visit count)
|
||||||
|
- **Totals** per category and grand total
|
||||||
|
|
||||||
|
If multiple pricing files are supplied for one project, combine their line items — they typically reflect phases or separate sites under one overall scope. Ask the user whether to combine or treat as alternates if it's ambiguous.
|
||||||
|
|
||||||
|
### Quick sanity check
|
||||||
|
|
||||||
|
Look for contradictions before moving on:
|
||||||
|
- A quote with onsite hours but no `PS-Travel` line -> ask whether travel is baked in or missing
|
||||||
|
- A quote with displays but no `LIC-MPTV-Pro-Base` -> ask whether licensing is covered under a separate agreement
|
||||||
|
- A quote with installation DBE lines but no mounting budget -> flag; mounting is usually separate from labor
|
||||||
|
- Warranty shown as `0.00` for "One Year Factory" is normal — that's the included factory warranty, not an omission
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 2: Classify project type(s)
|
||||||
|
|
||||||
|
Project types are driven by the display SKUs, not by what anyone calls the project. A single project can span multiple types.
|
||||||
|
|
||||||
|
| If the quote contains… | The project includes… |
|
||||||
|
|---|---|
|
||||||
|
| Any `DSP-EX…` (outdoor fixed or kiosk) | LCD Wayside |
|
||||||
|
| Any `DSP-LX…` | LED Wayside |
|
||||||
|
| Any `DSP-M…` / mobile-rated display + mobile mounting kit (`KIT-MNT-M-…`) + DC power cable | Mobile Bus Retrofit |
|
||||||
|
| Solar-related SKUs (solar panel, battery, off-grid power controller) | Solar Wayside |
|
||||||
|
| Only licensing / consulting / design lines, no hardware | Licensing-only or Consulting-only engagement |
|
||||||
|
|
||||||
|
Tell the user what you've classified the project as and get confirmation before moving on.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 3: Ask clarifying questions
|
||||||
|
|
||||||
|
**This phase is mandatory.** Don't skip it. Group related questions when possible — don't interrogate the user one question at a time. Use the AskUserQuestion tool for multiple-choice variables.
|
||||||
|
|
||||||
|
### Always ask (every project)
|
||||||
|
|
||||||
|
- **Site Survey inclusion.** Is a formal site survey phase in scope?
|
||||||
|
- **Training delivery format.** How is training delivered?
|
||||||
|
- **Training audience tracks.** Which tracks apply? (multi-select)
|
||||||
|
|
||||||
|
### Conditional asks
|
||||||
|
|
||||||
|
**Pilot Installation** — skip for <10 displays total; ask for 10+ units:
|
||||||
|
- Is a pilot installation planned before the bulk rollout?
|
||||||
|
|
||||||
|
**Connectivity** — for every hardware project:
|
||||||
|
- How is each display connected to the internet?
|
||||||
|
- **Follow-up if cellular**: Who provides and pays for the data plan? (This is the #1 source of downstream confusion — do not skip.)
|
||||||
|
|
||||||
|
**Bus fleet details** — for Mobile Bus Retrofit:
|
||||||
|
- How many buses total, and what models/OEMs?
|
||||||
|
- Are the buses in-service during retrofit, or staged in yard?
|
||||||
|
|
||||||
|
**Mounting** — for Wayside with `MNT-E-MountingBudget`:
|
||||||
|
- Is custom mounting engineering required, or standard mounts?
|
||||||
|
|
||||||
|
**Site access / permitting** — for Wayside at public sites:
|
||||||
|
- Who is handling any required permitting?
|
||||||
|
|
||||||
|
**Middleware** — if `LIC-Transitpoint` NOT on quote but displays are:
|
||||||
|
- Will displays pull from a native API or is TransitPoint middleware needed?
|
||||||
|
|
||||||
|
**API integrations** — if `PS-Dev-T1` on quote:
|
||||||
|
- What specifically is being developed?
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 4: Generate the SOW .docx
|
||||||
|
|
||||||
|
### Starting point
|
||||||
|
|
||||||
|
The assets directory contains `sow_template.docx` — Bryan Gilliom's CEO-draft template. Don't rebuild it from scratch. Copy the template and edit it in place.
|
||||||
|
|
||||||
|
Reference `references/section_map.md` for the full list of template sections and which project types keep/drop/modify each one.
|
||||||
|
|
||||||
|
### Sections to add to every SOW (not in base template)
|
||||||
|
|
||||||
|
Read `references/section_content.md` for the exact boilerplate language and fill-in patterns:
|
||||||
|
|
||||||
|
1. **Executive Summary** — 1 paragraph naming reseller, end-client, project type(s), display counts, and key deliverables
|
||||||
|
2. **Hardware Inventory Table** — full line-item list from the pricing files, grouped by category
|
||||||
|
3. **Project-Specific Assumptions** — standard assumptions plus project-specific ones (connectivity, bus list, pilot, etc.)
|
||||||
|
4. **Exclusions** — explicit list of what's NOT in scope
|
||||||
|
5. **Responsibility Matrix (RACI)** — from `references/raci_patterns.md`
|
||||||
|
6. **Documentation Deliverables** — standard MPM project docs
|
||||||
|
|
||||||
|
### Payment Milestones — use this exact wording (overrides template)
|
||||||
|
|
||||||
|
Replace section 6 "Payment Milestones" with:
|
||||||
|
|
||||||
|
- **Production Deposit — 25% of Hardware and Warranty**: Due at contract execution and prior to the start of production.
|
||||||
|
- **Equipment Delivery — 75% of Hardware and Warranty**: Due upon delivery of the equipment to the client's designated receiving location.
|
||||||
|
- **Go-Live — 100% of Recurring Licenses**: Due at Go-Live, defined as the point at which licenses are activated and assigned to production displays.
|
||||||
|
- **System Acceptance — 100% of Professional Services**: Due upon successful System Acceptance (burn-in complete; SAT passed or transition to Support).
|
||||||
|
|
||||||
|
#### Payment Milestone Summary Table
|
||||||
|
|
||||||
|
| Milestone | Trigger Event | Payment Due |
|
||||||
|
|---|---|---|
|
||||||
|
| Production Deposit | Contract execution | 25% of Hardware + Warranty |
|
||||||
|
| Equipment Delivery | Delivery confirmation / signed BOL | 75% of Hardware + Warranty |
|
||||||
|
| Go-Live | Activation report; bulk license assignment complete | 100% of Recurring Licenses |
|
||||||
|
| System Acceptance | Signed System Acceptance OR commencement of S&M agreement | 100% of Professional Services |
|
||||||
|
|
||||||
|
### Conditional sections
|
||||||
|
|
||||||
|
| Section | Include when | Skip when |
|
||||||
|
|---|---|---|
|
||||||
|
| Bus Fleet Inventory table | Mobile Bus Retrofit | Wayside-only |
|
||||||
|
| Site Survey phase | User confirmed site survey in scope | Survey done or not needed |
|
||||||
|
| Pilot Installation phase | User confirmed pilot (10+ unit projects) | <10 units OR no pilot |
|
||||||
|
| Mounting Engineering note | `MNT-E-MountingBudget` on quote | Standard mounts only |
|
||||||
|
| ADA Switchbox deployment note | `ACC-ADA-…` SKU present | No ADA switches |
|
||||||
|
| TransitPoint/Middleware section | `LIC-Transitpoint` on quote | No middleware — use "Native API Only" paragraph |
|
||||||
|
| Custom Development scope paragraph | `PS-Dev-T1` present | No dev line items |
|
||||||
|
| Connectivity — Cellular Data Plan clause | Cellular with third-party-provided plan | Ethernet/WiFi only |
|
||||||
|
| Extended Warranty terms | 3-year or 5-year warranty on quote | 1-year factory only |
|
||||||
|
|
||||||
|
### Documentation Deliverables (standard across all MPM projects)
|
||||||
|
|
||||||
|
- **Kickoff**: Client Questionnaire, Pre-Sales Discovery Summary, RFP Response (if applicable)
|
||||||
|
- **Scope Finalization**: Final SOW, Communications Plan & Team Organization document
|
||||||
|
- **Design & Planning**: Project Timeline Estimate, Installation Design or Retrofit Plan, Infrastructure Readiness Form, Content/Design Mockups
|
||||||
|
- **Deployment**: Site Survey Report (if in scope), Installation Completion Reports, Provisioning Records, As-Built Documentation
|
||||||
|
- **Stabilization**: Burn-in Test Results, Training Completion Records
|
||||||
|
- **Go-Live**: System Acceptance Document, Handoff-to-Support Record, Final Asset Inventory
|
||||||
|
|
||||||
|
### Responsibility Matrix
|
||||||
|
|
||||||
|
Read `references/raci_patterns.md` for the full RACI table. Critical splits:
|
||||||
|
- **Permitting**: End-Client (R/A), MPM (C — liaison only)
|
||||||
|
- **Network/connectivity**: End-Client (R/A), MPM (C)
|
||||||
|
- **Cellular data plan**: Per user's Phase 3 answer
|
||||||
|
- **Hardware manufacturing and pre-ship config**: MPM (R/A)
|
||||||
|
- **Physical installation**: MPM-subcontracted DBE
|
||||||
|
- **Acceptance testing**: End-Client (R/A), MPM (C)
|
||||||
|
- **Post-Go-Live support**: Out of scope — separate S&M Agreement
|
||||||
|
|
||||||
|
### Exclusions list
|
||||||
|
|
||||||
|
Always include at minimum:
|
||||||
|
- Permitting, inspections, and municipal approval fees
|
||||||
|
- Professional structural/civil engineering
|
||||||
|
- ADA compliance certification (MPM provides guidance only)
|
||||||
|
- Network infrastructure beyond final drop at display location
|
||||||
|
- Cellular data plans (unless included per Phase 3 answer)
|
||||||
|
- Middleware not listed in Appendix A
|
||||||
|
- Content creation beyond scoped design services
|
||||||
|
- Post-acceptance support, retraining, maintenance (requires separate S&M Agreement)
|
||||||
|
- Any hardware, software, or service not itemized on the referenced quote(s)
|
||||||
|
|
||||||
|
### Brand conventions
|
||||||
|
|
||||||
|
- **Font**: Arial throughout
|
||||||
|
- **Tone**: Professional, third-person, declarative. "Message Point Media" on first reference, "MPM" afterward.
|
||||||
|
- **Headings**: Follow the template's numbering (1, 1.1, 1.1.1…) — don't renumber
|
||||||
|
- **Knowledgebase URLs**: Use `[Knowledgebase Link — To Be Inserted]` as a placeholder
|
||||||
|
|
||||||
|
### Final validation
|
||||||
|
|
||||||
|
Before delivering:
|
||||||
|
1. Validate the .docx is well-formed
|
||||||
|
2. Check for self-contradictions (cellular scope vs. connectivity section)
|
||||||
|
3. Confirm Exclusions don't contradict Scope or Assumptions
|
||||||
|
4. Ensure every line item from pricing files appears in the Hardware/Services Inventory
|
||||||
|
5. Save as `SOW_<Agency>_<ProjectName>_Draft.docx`
|
||||||
|
6. Use `present_files` to share with user
|
||||||
|
|
||||||
|
Tell the user to review Assumptions, Exclusions, and the Responsibility Matrix particularly — those are the highest-risk sections for scope disputes.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Reference files
|
||||||
|
|
||||||
|
- `references/section_map.md` — Full mapping of template sections to project types (keep/drop/modify)
|
||||||
|
- `references/section_content.md` — Boilerplate language and fill-in patterns for generated sections
|
||||||
|
- `references/raci_patterns.md` — Standard RACI splits across MPM / Reseller / End-Client
|
||||||
|
- `references/product_codes.md` — Extended product code reference with SOW-implication notes
|
||||||
|
- `assets/sow_template.docx` — Bryan Gilliom CEO-draft template; starting point for every generated SOW
|
||||||
Reference in New Issue
Block a user