Weekly control tower
Skill afelipeg/Anthropic-Skills-for-enterprise-marketing-os/skills/weekly-control-tower
30 connected Claude Skills for enterprise marketing ops. Install in-house to replace fragmented tools or reclaim outsourced operations. Marketing & Comms [working & non-working media]· CRM & Growth · Shopper & Trade · RGM · Finance.
npx -y skills add afelipeg/Anthropic-Skills-for-enterprise-marketing-os --skill weekly-control-towerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Produces weekly agency control-tower reviews covering delivery status, campaign performance, CRM activity, media pacing, blockers, SLA risk, FTE load, margin drift, and executive decisions. Use for weekly business reviews, status meetings, client control, or internal leadership updates based on MCP data access from platforms AND/OR reports uploaded (CSV, Excel, PDF). Also trigger when someone says "weekly review", "WBR", "status update", "how is the account doing?", "what happened this week?", "client health check", "control tower", or when any upstream skill flags ongoing monitoring. Even casual phrasing like "give me the weekly", "what moved?", "any blockers?", or "prep for the status call" should activate this skill.
SKILL.md
10.7 KB, ~2.4k tokens by cl100k_base, as published. Nobody here has run it
Weekly Control Tower
Produce a weekly operating view of client health, delivery risk, campaign performance, margin drift, and decisions needed — aggregating data from MCP-connected platforms, uploaded reports, and upstream OS skills into a C-level one-pager readable both top-down (business objectives → metrics) and bottom-up (deliverables → business impact).
How This Skill Orchestrates
The control tower is the operational intelligence layer of the OS. It runs weekly (or on-demand) and aggregates everything:
- Data ingestion (Claude + MCP + uploads): Pull KPIs from connected platforms (Supermetrics, Plinth, Adobe, Google Drive), read uploaded CSVs/PDFs, and collect manual inputs from the user
- Script execution (
scripts/control_tower_engine.py): Process KPIs through z-score anomaly detection, score client health across 6 weighted dimensions, calculate WoW deltas, aggregate blockers - Reference lookup (
references/kpi_cascade.md): Apply the top-down/bottom-up KPI cascade framework to structure the output for C-level consumption - Upstream context (Claude): Pull margin data from
margin-simulation, capacity fromfte-capacity-sizing, scope changes fromscope-audit, launch status fromcampaign-launch-qa - Visual output (Visualizer): Render the control tower dashboard and the C-level one-pager as inline widgets
Model decision: Z-score anomaly detection (governance layer) — correct for sparse weekly data (4-8 points). No ML/DL models — insufficient data for time-series forecasting or classification. Read references/kpi_cascade.md → "Anomaly Detection Methodology" for the rationale.
Quick Reference
| Resource | Purpose | Usage |
|---|---|---|
scripts/control_tower_engine.py | Core engine — KPI ingestion, z-score anomaly detection (±2σ on 4-week trailing window), 6-dimension health scoring (0-100), WoW delta calculation, blocker aggregation, next-week priority builder | python control_tower_engine.py --input weekly_data.json --output review.json |
references/kpi_cascade.md | KPI cascade hierarchy (L1 business → L4 SOW), C-level one-pager template, data source integration guide, anomaly methodology, health scoring model | Read for the one-pager structure and KPI definitions |
How to Use the Script
Build a weekly data JSON from MCP data, uploads, and user inputs, then run:
import sys
sys.path.insert(0, "<skill-path>/scripts")
from control_tower_engine import ControlTowerEngine
config = {
"client_name": "AcmeAuto MX",
"week_label": "W17 2026",
"kpis": [
{"name": "ROAS", "category": "financial", "current_value": 3.8,
"target_value": 4.0, "previous_values": [4.1, 3.9, 4.2, 4.0],
"unit": "x", "higher_is_better": True, "source": "supermetrics"},
{"name": "CPA", "category": "financial", "current_value": 32,
"target_value": 30, "previous_values": [28, 29, 31, 30],
"unit": "$", "higher_is_better": False, "source": "supermetrics"},
],
"workstreams": [
{"name": "Q3 campaign launch", "status": "on_track", "progress_pct": 75,
"next_milestone": "Creative approval by W18"},
],
"blockers": [
{"description": "Client hasn't approved media plan", "layer": "media",
"severity": "high", "owner": "Account Director", "days_open": 5},
],
"decisions": [
{"description": "Approve budget reallocation from TikTok to Meta",
"urgency": "urgent", "owner": "CMO", "deadline": "W18"},
],
"margin_current": 28, "margin_baseline": 32,
"team_utilization": 78, "ai_automation": 65,
}
engine = ControlTowerEngine(config)
result = engine.run()
Data collection workflow: Before running the script, Claude should:
- Check for connected MCP servers (Supermetrics, Plinth, Google Drive) and pull available data
- Check for uploaded files (CSV, Excel, PDF) and extract KPIs
- Ask the user for any manual inputs (client sentiment, blockers, decisions)
- Pull context from upstream skills used earlier in the conversation
- Assemble the config JSON from all sources, then run the engine
Trigger Conditions
Activate this skill when:
- It's time for the weekly business review or status meeting
- The user asks for a client health check or performance update
- The user uploads a performance report and wants a summary
- Campaign data is available (MCP or uploaded) and the user wants insights
- Upstream skills have flagged ongoing monitoring needs
- The user asks "what happened this week?" or "any blockers?"
Control Tower Process
Step 1 — Summarize Active Workstreams
List all active workstreams with status (on track / at risk / off track), progress %, and next milestone. Pull from project management context or user input.
Step 2 — Review Delivery Status
Check deliverables completed vs. scoped, SLA compliance, revision rounds used. This is the L4 (SOW soft metrics) layer of the KPI cascade.
Step 3 — Review Media Pacing
Check budget spend vs. plan, impression delivery, CPM/CPC trends, platform-level performance. Flag any pacing issues (over-delivery or under-delivery). Pull from Supermetrics/Plinth MCP or uploaded reports.
Step 4 — Review CRM / Website / App Signals
Check email performance (open rate, CTR, deliverability), journey completions, website traffic and conversion, app engagement. Pull from SFMC/AJO MCP or uploaded data.
Step 5 — Identify Blockers
Aggregate blockers from all sources: upstream skills, user input, performance anomalies. Classify by severity and assign owners.
Step 6 — Identify Scope Changes
Count scope changes this week. Check if any triggered a change order. Flag margin impact.
Step 7 — Identify Margin or FTE Pressure
Pull current margin from margin-simulation context. Calculate margin drift (current vs. baseline). Check team utilization from fte-capacity-sizing. Flag if utilization > 85% or margin < target.
Step 8 — Define Decisions Needed
Based on all findings, produce a decisions list with urgency, owner, and deadline. Decisions should be actionable and specific — not "review performance" but "approve budget reallocation of $5K from TikTok to Meta based on ROAS delta."
Step 9 — Produce C-Level One-Pager
This is the final output. Read references/kpi_cascade.md → "C-Level One-Pager Template" for the exact structure. The one-pager must:
- Be readable top-down (CEO asks "are we on track?") AND bottom-up (ops asks "what did we do?")
- Connect every metric to the client's business objectives
- Show the KPI cascade: Business objectives → Business KPIs → Marketing KPIs → SOW metrics
- Flag anomalies detected by the z-score engine
- List decisions needed with owners and deadlines
- Include next 7 days priorities
Output Format
Produce the control tower in THREE forms: (1) inline visual dashboard (Visualizer), (2) C-level one-pager artifact (Visualizer), and (3) structured markdown report.
Visual Dashboard (Primary)
Render the control tower dashboard as an inline HTML widget:
- A header with client name, week label, health score (large metric), status badge, and trend arrow
- A 6-dimension health grid — one card per dimension showing score, status color, and key metric
- A KPI ticker — key metrics in a row with WoW delta arrows and anomaly flags
- A blockers section — each blocker as a row with severity badge, owner, and days open
- A decisions section — each decision with urgency badge and owner
- An action footer with
sendPrompt()buttons linking to downstream skills
C-Level One-Pager (Secondary Artifact)
After the dashboard, render a second inline widget following the template from references/kpi_cascade.md. This is the artifact the account lead presents in the status meeting — clean, one-page, top-down/bottom-up readable.
Markdown Report (Tertiary)
## 📡 WEEKLY CONTROL TOWER — [Client] — [Week]
### Executive summary
[2-3 sentences: health score, trend, top blocker, key decision needed]
### What moved this week
[Bullet list of key deliveries and actions]
### What is blocked
[Table: blocker | layer | severity | owner | days open]
### What is at risk
[Anomalies detected + risk flags]
### KPI movement
[Table: KPI | current | target | WoW Δ | status]
### Scope / margin risk
[Margin current vs. baseline, scope changes count, drift commentary]
### Decisions needed
[Numbered list: decision | urgency | owner | deadline]
### Next 7 days
[Priority actions for the coming week]
Examples
Example 1 — Healthy account: User: "Weekly review for AcmeAuto MX. ROAS is 4.2x (target 4.0), all deliverables on time, no blockers." → Health: 88% (On track, improving). 0 anomalies. 0 blockers. One-pager shows all green.
Example 2 — Account under pressure: User uploads a CSV with this week's media data. CPA spiked from $28 to $45 (z=2.8). Budget pacing at 120%. Client escalation about creative quality. → Health: 52% (At risk, declining). 1 negative anomaly (CPA spike). 2 blockers. Decision: pause low-performing campaign and reallocate budget.
Example 3 — MCP-driven review: User: "Pull this week's data from Supermetrics and Plinth, then give me the weekly for ACME Corp." → Claude uses Supermetrics MCP to pull ad platform data, Plinth MCP for media intelligence, assembles config, runs engine. Health: 71% (At risk, stable).
Skill Chaining
| Direction | Skill | Connection |
|---|---|---|
| Upstream | margin-simulation | Provides margin current + baseline for drift |
| Upstream | fte-capacity-sizing | Provides team utilization + AI automation rate |
| Upstream | scope-audit | Provides scope change count |
| Upstream | campaign-launch-qa | Provides campaign readiness status |
| Downstream | change-order-generator | If scope changes need formalizing |
| Downstream | executive-growth-memo | For a more detailed leadership summary |
| Downstream | margin-simulation | If margin drift requires re-simulation |