$npx -y skills add LaGrowthMachine/gtm-system --skill weekly-team-performanceGenerate your Weekly Team Performance dashboard from your La Growth Machine data: a head-of-sales cockpit that ranks each sender (rep) on reply rate, your success event (signups/meetings/deals) and conversion, surfaces hot leads going cold, and turns your best reps' campaigns int
| 1 | # Weekly Team Performance |
| 2 | |
| 3 | Generate the user's **own** Weekly Team Performance dashboard: a four-tab live artifact built from |
| 4 | **their** La Growth Machine (LGM) data, ranked by **sender identity** (rep). This skill is **fully |
| 5 | self-contained** — every rule needed to detect the environment, pull data, score, classify, mine |
| 6 | patterns, and fill the dashboard is written below. It references no other document except the |
| 7 | generic skill-download links table inlined in the handoff section. |
| 8 | |
| 9 | ## Job to be done |
| 10 | |
| 11 | Every week, show a head of sales **who's generating the most replies *and* the most actual |
| 12 | conversions and why**, which hot leads are going cold, and how to spread what the best campaigns do |
| 13 | across the reps who are behind — as coaching, not a scoreboard. |
| 14 | |
| 15 | ## Three hard rules, always |
| 16 | |
| 17 | 1. **Only ever show the downloading user's data.** Pull exclusively from *their* connected MCPs. |
| 18 | Never inject numbers, rep names, leads, campaign names, replies or examples from anyone else or |
| 19 | from this skill's author. **The template ships empty**; it is filled at runtime with their live |
| 20 | values. If a value can't be pulled, render the documented empty state — never a placeholder |
| 21 | number and never a value borrowed from somewhere else. |
| 22 | 2. **Rank for visibility, coach without punishing.** Reps are sorted by performance and a |
| 23 | recommendation may name the rep a winning pattern came from ("apply what {rep}'s campaign does"). |
| 24 | This is a manager-facing internal tool, so that transparency is intended. The line not to cross: |
| 25 | never frame a low performer as failing — a rep below the account average gets "here's the proven |
| 26 | fix", never "you're behind". No rep is hidden to spare feelings. |
| 27 | 3. **The output is a LIVE, INTERACTIVE ARTIFACT — never a saved .html file and never a raw code |
| 28 | block.** This is the single most common failure: do NOT write the filled HTML to a file on disk |
| 29 | and stop, and do NOT paste it as a fenced code block. You MUST publish it through whatever |
| 30 | **artifact / canvas / live-preview mechanism your current environment exposes** so the user gets |
| 31 | a rendered, clickable dashboard they can open and interact with (sort the table, switch tabs, |
| 32 | click Fix). On claude.ai and Claude Code this is the Artifacts/canvas surface; in a plain |
| 33 | terminal with no artifact surface, say so and offer to open the rendered HTML in a browser |
| 34 | instead — but the default and correct output is a live artifact, not a file. Do not hard-code a |
| 35 | specific tool name; use the artifact capability that exists. On a refresh, **update the existing |
| 36 | artifact** rather than creating a new one. `assets/dashboard-template.html` is the **build source |
| 37 | only** — you fill its single `{{DASHBOARD_DATA}}` token in memory and render the result live. |
| 38 | |
| 39 | --- |
| 40 | |
| 41 | ## Two modes |
| 42 | |
| 43 | - **Setup mode** (first run, or LGM isn't connected / no config yet): interactive, conversational, |
| 44 | ~10-15 minutes. Detect, guide connections, ask the setup questions, persist the config. |
| 45 | - **Generate mode** (every run once `./.wtp/config.json` exists and LGM is connected): run the |
| 46 | engine, fill the template, emit the artifact + a short handoff. No step-by-step narration. |
| 47 | |
| 48 | --- |
| 49 | |
| 50 | ## Phase 0 — Detect (silent, no questions) |
| 51 | |
| 52 | Check your **own tool list** — never ask what's installed. |
| 53 | - **LGM MCP present?** True if tools like `list_identities`, `list_campaigns`, `get_campaign_stats`, |
| 54 | `get_conversations_to_reply`, `search_conversations`, `get_conversation_messages` are available. |
| 55 | - **CRM / deal MCP present?** (HubSpot/Salesforce/Pipedrive) · **Airtable MCP?** · **Stripe?** |
| 56 | - **Companion skills available?** `campaign-challenger`, `campaign-impact-analyzer`. |
| 57 | Record these booleans and move on. Do not announce the detection. |
| 58 | |
| 59 | ## Phase 1 — LGM MCP gate |
| 60 | |
| 61 | **If present:** say "LGM connected" in one line, continue. |
| 62 | **If absent:** the dashboard is built entir |