99 lines
5.2 KiB
Markdown
99 lines
5.2 KiB
Markdown
# project-timeline-site-creator
|
||
|
||
CoWork skill — provisions MPM Agile Dashboard project timelines and exports Gantt chart images for SOW embedding.
|
||
|
||
**Version:** 1.0.0
|
||
**Author:** Bryan Gilliom
|
||
**Repo:** https://git.mpm.to/mpm/project-timeline-site-creator
|
||
**CoWork Project:** CW-017 — project-timeline-site-creator
|
||
|
||
---
|
||
|
||
## Overview
|
||
|
||
`project-timeline-site-creator` is a CoWork skill that provisions a live project timeline instance in the MPM Agile Dashboard (`agile.apps.mpmedia.tv`) and exports four PNG Gantt/timeline chart images sized for embedding in a Statement of Work document. It operates in two modes: **programmatic** (called by the larger SOW generator skill with a full project context object, no questions asked) and **interactive** (called manually by a PM, runs a structured 6–8 question interview to collect project details before provisioning). Phase structures, durations, and scaling rules are driven by an externally editable Markdown template file (`MPM_Timeline_Templates.md`) stored in the PM 2.0 Resources folder on Google Drive, allowing the PM team to maintain templates without touching skill code.
|
||
|
||
---
|
||
|
||
## Skills
|
||
|
||
| Skill | What It Does |
|
||
|---|---|
|
||
| `project-timeline-site-creator` | Provisions a new Agile Dashboard project timeline (or updates an existing one for change orders), applies project-type templates and variant modifiers, exports four chart PNGs (timeline, gantt, milestone, phase_table), captures a version snapshot, and returns shareable team and customer URLs. Trigger phrases: "create the Gantt chart", "set up the project timeline", "provision the dashboard", "generate the timeline for [customer]", "create timeline", "build the project schedule". Also triggered programmatically by the SOW generator skill via `project_context` object. |
|
||
|
||
---
|
||
|
||
## Tools Reference
|
||
|
||
This is a skill-only project — no MCP server component. The skill orchestrates calls to two external MCP servers:
|
||
|
||
| MCP Server | Tools Used |
|
||
|---|---|
|
||
| **agile-dashboard** (`agile.apps.mpmedia.tv/mcp`) | `list_projects`, `get_project`, `create_project`, `update_project`, `list_phases`, `create_phase`, `update_phase`, `delete_phase`, `list_milestones`, `create_milestone`, `update_milestone`, `delete_milestone`, `get_settings`, `set_setting`, `export_image`, `list_versions`, `get_version`, `get_subsite_url` |
|
||
| **Google Workspace MCP** | `get_drive_file_content` / `read_file_content` — reads `MPM_Timeline_Templates.md` from Drive at runtime |
|
||
|
||
---
|
||
|
||
## Setup Instructions
|
||
|
||
**Step-by-step:**
|
||
1. Ensure the Agile Dashboard MCP is connected in CoWork with the bearer token from LaunchPad secrets.
|
||
2. Ensure the Google Workspace MCP is connected (required for template file access).
|
||
3. Confirm `MPM_Timeline_Templates.md` exists in the PM 2.0 Resources folder on Google Drive (folder ID: `1Uy-2CDQFLOHcnU5DRRt_Alz6UibDQd5z`).
|
||
4. The skill is invoked by name or trigger phrase — no additional installation required for CoWork users.
|
||
5. For programmatic use from the SOW generator skill, pass a `project_context` JSON object (see Notes for Calling Skills in SKILL.md).
|
||
|
||
### Setup Checklist
|
||
- [ ] Agile Dashboard MCP connected (`agile.apps.mpmedia.tv/mcp`, Bearer token)
|
||
- [ ] Google Workspace MCP connected
|
||
- [ ] `MPM_Timeline_Templates.md` present in PM 2.0 Resources Drive folder
|
||
- [ ] Test run: call skill manually, verify project appears at `agile.apps.mpmedia.tv`
|
||
|
||
---
|
||
|
||
## Connection Details
|
||
|
||
| Field | Value |
|
||
|---|---|
|
||
| Agile Dashboard URL | https://agile.apps.mpmedia.tv/ |
|
||
| MCP Endpoint | https://agile.apps.mpmedia.tv/mcp |
|
||
| Auth Method | Bearer token (LaunchPad secret) |
|
||
| Transport | HTTP/SSE (MCP protocol) |
|
||
| Template File | Google Drive — PM 2.0 Resources / MPM_Timeline_Templates.md |
|
||
| Template Drive Folder ID | 1Uy-2CDQFLOHcnU5DRRt_Alz6UibDQd5z |
|
||
|
||
---
|
||
|
||
## Workflow Notes
|
||
|
||
**Dual-mode detection:** Complete `project_context` → programmatic (skip interview). Any missing required field → interactive (6–8 question interview).
|
||
|
||
**Template system:** Reads `MPM_Timeline_Templates.md` fresh from Drive on every run. Three templates: `onboard`, `wayside`, `off-grid-solar`.
|
||
|
||
**Variant modifiers:** in-stock hardware (Phase 4: 7–21 days vs 60–120), new construction, reseller install owner (adds Partner Oversight phase), hard deadline risk check.
|
||
|
||
**Version pinning:** Customer SOW URL is always version-pinned at signing timestamp.
|
||
|
||
**Change order flow:** Skip Steps 1–4, apply targeted updates, re-export, new snapshot.
|
||
|
||
---
|
||
|
||
## Requirements
|
||
|
||
- Agile Dashboard MCP server at `agile.apps.mpmedia.tv` (MPM LaunchPad)
|
||
- Google Workspace MCP (Drive template access)
|
||
- `MPM_Timeline_Templates.md` in PM 2.0 Resources Drive folder
|
||
|
||
---
|
||
|
||
## Troubleshooting
|
||
|
||
| Symptom | Fix |
|
||
|---|---|
|
||
| "Unable to load the timeline template file" | Confirm file exists in Drive folder `1Uy-2CDQFLOHcnU5DRRt_Alz6UibDQd5z` and GWS MCP is connected |
|
||
| Project slug already exists | Skill asks to overwrite or append `-2` |
|
||
| `export_image` returns empty | Playwright sidecar may need restart; check `/healthz` |
|
||
| ETag 412 on update | Auto-retry handled by MCP; concurrent edit conflict if persists |
|
||
| 401 Bearer token rejected | Token rotated in LaunchPad — update MCP connection config |
|
||
| Wrong phase durations | Check `MPM_Timeline_Templates.md` scaling table in Drive |
|