feat: initial release v1.0.0 (CW-031)
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
# mpm-project-kickoff
|
||||
|
||||
CoWork skill that runs MPM's internal project kickoff the moment a purchase order lands. It verifies the PO against the Odoo Sales Order, fills in missing line costs and writes them back to Odoo, pulls the end-agency contacts, builds the internal kickoff deck and a three-tab project budget, copies the project folder, files the PO/SOW, and opens the project's GChat space.
|
||||
|
||||
**Version:** 1.0.0
|
||||
**Author:** Andy Gilliom
|
||||
**Repo:** https://git.mpm.to/mpm/mpm-project-kickoff
|
||||
**CoWork Project:** CW-031 — MPM Project Kickoff
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
When MPM gets a PO (usually from a reseller such as TripSpark, Vontas, Avail or Passio), the user drops the PO and the quotation into a CoWork chat and calls the skill. It reads both documents, finds the matching Odoo Sales Order through the `odoo-mpm` MCP (CW-003), and catalogues every PO-versus-SO discrepancy by severity. Lines with no cost are filled in: warranty is priced from its MSRP, and the user supplies the rest. Those costs are written back to the Odoo order lines, and user-entered costs also go to the product variant, but only after the user approves a table of the changes. The skill then builds two deliverables:
|
||||
|
||||
- a branded **internal kickoff deck** (Google Slides, built from the Kickoff Deck.pptx template)
|
||||
- a **project budget** (Google Sheet: Summary / Project Budget / Actuals), whose hardware costs use the Hardware Calculator's formulas
|
||||
|
||||
Next it recreates the **Test Project Folder System** for the project in the PROJECT MANAGMENT shared drive through the Google Drive MCP. The deck, budget, PO and SOW are filed into that folder, and a GChat space is created with the PM of record. Chat is handled by the MPM Google Workspace MCP when it's connected, or by Claude in Chrome otherwise.
|
||||
|
||||
---
|
||||
|
||||
## Skills
|
||||
|
||||
| Skill | What It Does |
|
||||
|---|---|
|
||||
| `mpm-project-kickoff` | End-to-end internal kickoff from a PO + quotation. Triggers on: "we got the PO", "kick off this project", "set up the project", "kickoff deck", "project budget for S0xxxx", "new project folder", or a PO/quotation dropped into chat. |
|
||||
|
||||
---
|
||||
|
||||
## Components
|
||||
|
||||
| Path | Purpose |
|
||||
|---|---|
|
||||
| `SKILL.md` | The full 11-step workflow, Odoo field map, guardrails, and the three scripts embedded as appendices (the skill runs from SKILL.md alone). |
|
||||
| `scripts/build_budget.py` | Builds the three-tab budget workbook. Every cost is a live formula: rate tables by HS column (8471 / 8528 / Steel / Other), calculator-driven hardware unit costs, and Actuals inputs with variance. |
|
||||
| `scripts/build_deck.py` | Builds the internal kickoff deck from `Kickoff Deck.pptx` (cover + dark-panel content layout). Text and tables share a slide while they fit, and long content continues onto extra slides. |
|
||||
| `scripts/read_calculator.py` | Extracts budget rates and per-SKU factory cost / gross KG / HS column from `Hardware Calculator.xlsx` into `calc.json`. |
|
||||
|
||||
---
|
||||
|
||||
## Workflow (11 steps)
|
||||
|
||||
1. **Project-team inputs.** Mounting, promised timelines, hardware and software customizations, and "anything else", asked in one message and pre-filled from the PO/quote. Anything unanswered becomes a placeholder for the kickoff.
|
||||
2. **PO ↔ SO verification.** Line-by-line comparison, totals, parties, terms, execution (signed/numbered), and cross-border checks, catalogued High/Medium/Low.
|
||||
3. **Every line has a cost.**
|
||||
- Warranty cost = MSRP × 0.7569, written to the SO line only.
|
||||
- Other $0 lines use the variant's `standard_price` as the default, or the user's input.
|
||||
- Approved costs are written back to Odoo.
|
||||
4. **End-agency contacts.** Taken from the delivery address or, when that's the reseller, from the PO ship-to, quote name or opportunity.
|
||||
5. **Internal kickoff deck.** About 9 slides, rendered and checked before upload.
|
||||
6. **Project budget.**
|
||||
- Project Budget tab: the Hardware Calculator's rates.
|
||||
- Actuals tab: today's HS-code tariffs, or the destination country's duties when hardware ships direct to a non-US customer.
|
||||
7. **Folder copy.** A server-side recreation of Test Project Folder System through the Drive MCP (a local copy fails on cloud-only files).
|
||||
8. **Uploads.** `device_commit_files` straight into the new folder, then Chrome **File → Save as Google Sheets / Slides**.
|
||||
9. **Filing.**
|
||||
- Work order with an SOW → Contract Documents.
|
||||
- PO → Purchase & Change Orders.
|
||||
- A single PDF with both → both folders.
|
||||
10. **GChat space.** PM of record from `crm.lead.x_studio_project_manager` (or ask). The first message links the folder, budget and deck.
|
||||
11. **Wrap-up.** Links, discrepancy counts, Odoo changes, open items, and MCP-improvement notes.
|
||||
|
||||
A **test mode** prefixes the folder, file and space names with `Skilltest-` and labels the GChat message as a test.
|
||||
|
||||
---
|
||||
|
||||
## Setup Instructions
|
||||
|
||||
1. Install the skill (Save skill on the proposal card, or install the `.skill` from the CW-031 Drive folder).
|
||||
2. Connect the **odoo-mpm** plugin (CW-003) with your personal Odoo API key.
|
||||
3. Connect **Google Drive** (a claude.ai connector) and link your computer so the PROJECT MANAGMENT and SALES/Product Cost Information shared drives are available as connected folders.
|
||||
4. Enable **Claude in Chrome** (for the Google-native conversion and GChat steps), or reconnect the **MPM Google Workspace MCP** (CW-004) if it has Chat and convert tools.
|
||||
5. The scripts need `openpyxl` and `python-pptx` (already present in the CoWork sandbox). LibreOffice is used for the recalculation and render checks.
|
||||
|
||||
### Setup Checklist
|
||||
- [ ] Skill installed
|
||||
- [ ] odoo-mpm connected and authenticated
|
||||
- [ ] Google Drive connector connected
|
||||
- [ ] Computer linked with PROJECT MANAGMENT + Product Cost Information folders
|
||||
- [ ] Claude in Chrome available (or Workspace MCP with Chat tools)
|
||||
|
||||
---
|
||||
|
||||
## Connection Details
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| Odoo | mpmedia.odoo.com via `odoo-mpm` MCP |
|
||||
| Folder template | Shared drives › PROJECT MANAGMENT › Test Project Folder System (`1ZxrBJUxL75oRtqSE3qgqSNhtGxwcTQ9K`) |
|
||||
| Hardware Calculator | Shared drives › SALES › Product Cost Information › Hardware Calculator.xlsx |
|
||||
| Deck template | Test Project Folder System › Meeting Notes › Kickoff Deck.pptx |
|
||||
| PM of record field | `crm.lead.x_studio_project_manager` |
|
||||
|
||||
---
|
||||
|
||||
## Workflow Notes
|
||||
|
||||
- **Odoo writes need approval.** The skill never confirms, cancels or locks orders.
|
||||
- **The template folder is never modified.** All work goes into the new copy.
|
||||
- **Budget rates:** the Project Budget tab uses the Hardware Calculator's rates. The Actuals tab uses rates researched on the day, with sources cited in the sheet.
|
||||
- **Known calculator issue:** `MNT-Post-EX37sw-CNTLVR` sits in the 8528 rate column, but its HS code is 7308.90.6000 steel. The skill trusts the HS code and flags it.
|
||||
- **Email domains:** MPM uses `mpmedia.tv`, `messagepoint.tv` and `messagepoint.media`. All are valid, so don't flag them.
|
||||
|
||||
---
|
||||
|
||||
## Requirements
|
||||
|
||||
- odoo-mpm plugin (CW-003)
|
||||
- Google Drive connector
|
||||
- Claude in Chrome, or MPM Google Workspace MCP (CW-004)
|
||||
- Linked computer with Google Drive for Desktop
|
||||
- Python 3 with `openpyxl`, `python-pptx`; LibreOffice (headless)
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
| Symptom | Fix |
|
||||
|---|---|
|
||||
| `cp -R` of the template fails with "Resource deadlock avoided" | Expected for cloud-only Drive files. Use the Drive MCP recreate/copy walk described in SKILL.md. |
|
||||
| New project folder doesn't show up in `device_bash ls` | Drive for Desktop hasn't caught up yet. `device_commit_files` to the full Mac path still works right away. |
|
||||
| Deck tables overflow or split oddly | Keep table headings under ~40 characters and put text blocks before tables. Re-render and check every slide. |
|
||||
| Budget total doesn't match the PO | Check for optional lines (qty 0 under "Optional Products") and the per-line `discount_pct`. |
|
||||
| GChat step can't run | Reconnect the MPM Google Workspace MCP or enable Claude in Chrome. Otherwise the skill hands over the space name, members and message to paste. |
|
||||
Reference in New Issue
Block a user