← Files Marketing CouncilARCHIVED FILE

skills/marketing-measurement/references/skill-spec.json

6.28 KB · Oct 2, 2026 · 00:31 UTC

↓ Download file

{
  "name": "marketing-measurement",
  "purpose": "Build a measurement architecture linking business outcomes, leading indicators, and attribution limits",
  "baseline_failures": [
    "dashboard as strategy",
    "platform attribution as truth",
    "optimizing proxy metrics blindly"
  ],
  "activation": {
    "positive": [
      "Help me make the measurement architecture using the evidence we have",
      "Review our measurement architecture and tell me what decision to make next",
      "Build a rigorous measurement architecture for this marketing problem"
    ],
    "implicit": [
      "We have conflicting signals and need a decision about measurement architecture",
      "I have data but I am not sure what it means for measurement architecture",
      "Challenge my assumptions before we finalize measurement architecture"
    ],
    "negative": [
      "Write polished copy only; the strategy and decision are already approved",
      "Summarize the supplied material without making a marketing decision"
    ],
    "collisions": [
      "The brief spans several marketing functions and no single function clearly owns the next decision"
    ]
  },
  "outputs": [
    "measurement tree",
    "KPI definitions",
    "interpretation guardrails"
  ],
  "execution": {
    "primary_agent": "measurement-strategist",
    "counterweight_agent": "marketing-skeptic",
    "primary_hook": "closed-loop-bias-check",
    "evidence_hook": "evidence-gate",
    "binding_source": "../../routing/skill-execution-bindings.json"
  },
  "invariants": [
    "Do not finalize measurement architecture without separating evidence from inference.",
    "Do not invent customer, market, platform, product, policy, or performance facts.",
    "State material uncertainty and reversal evidence instead of hiding it behind confident prose."
  ],
  "non_goals": [
    "Generic brainstorming without a decision boundary",
    "Pure copy polishing or formatting after the strategy is already approved",
    "Cross-functional orchestration when another focused skill clearly owns the work"
  ],
  "workflow": [
    {
      "id": "frame",
      "action": "Frame the measurement architecture and the decision owner for marketing-measurement.",
      "why": "Prevents solving an adjacent problem or drifting into tactics.",
      "freedom": "low",
      "evidence_required": "User objective, constraints, and the decision that must change.",
      "completion": "The measurement architecture is stated as one explicit decision question."
    },
    {
      "id": "evidence",
      "action": "Collect and classify the minimum evidence needed for measurement architecture: business outcomes, data availability, measurement biases.",
      "why": "Separates known facts from inference and unsupported assumptions.",
      "freedom": "medium",
      "evidence_required": "Primary supplied evidence first; current external sources only when freshness matters.",
      "completion": "Evidence is tagged as fact, inference, assumption, or unknown and material gaps are visible."
    },
    {
      "id": "diagnose",
      "action": "Test competing explanations for the measurement architecture instead of accepting the first plausible story.",
      "why": "Reduces confirmation bias and premature prescription.",
      "freedom": "high",
      "evidence_required": "At least one credible alternative explanation or counterweight.",
      "completion": "A primary explanation is selected and at least one alternative is rejected with reasons."
    },
    {
      "id": "decide",
      "action": "Produce the measurement architecture with explicit trade-offs, risks, and what would reverse it.",
      "why": "Turns analysis into an accountable marketing decision.",
      "freedom": "medium",
      "evidence_required": "Decision criteria tied to the evidence ledger.",
      "completion": "The recommended decision, rejected alternative, risks, and reversal evidence are explicit."
    },
    {
      "id": "measure",
      "action": "Define how the measurement architecture will be observed, challenged, and handed off.",
      "why": "Prevents recommendation theater and orphaned strategy.",
      "freedom": "medium",
      "evidence_required": "Observable outcome, leading signal, and next owner.",
      "completion": "Measurement, confidence, next handoff, and stop/escalation condition are stated."
    }
  ],
  "capabilities": {
    "required": [
      "reason over supplied context",
      "read packaged references"
    ],
    "optional": [
      "current web research when freshness is material",
      "deterministic calculation or parsing when available"
    ],
    "not_allowed": [
      "fabricate tool execution",
      "fabricate evidence",
      "perform irreversible external actions without authorization"
    ]
  },
  "evidence_policy": {
    "priority": [
      "user-provided primary evidence",
      "authoritative first-party sources",
      "reputable independent evidence"
    ],
    "freshness": "Verify current platform, policy, pricing, market, and product claims when they materially affect the decision.",
    "status_labels": [
      "fact",
      "inference",
      "assumption",
      "unknown"
    ]
  },
  "failure_behavior": "If evidence is insufficient for a defensible measurement architecture, return the missing evidence, safest provisional interpretation, and the next smallest research action instead of guessing.",
  "completion_conditions": [
    "The measurement architecture is explicit and answers the user’s decision question.",
    "Evidence and inference are distinguishable.",
    "At least one credible alternative or counterweight was considered.",
    "Outputs, measurement, confidence, and reversal evidence are present.",
    "Any required handoff is named and bounded."
  ],
  "handoffs": {
    "fallback": "marketing-council",
    "dynamic_router": "../../scripts/dynamic_router.py",
    "skill_router": "../../scripts/skill_router.py",
    "neural_router": "../../scripts/neural_router.py",
    "rule": "Use the dynamic router only when the request explicitly establishes multiple dependent decision boundaries; use Council when ownership is ambiguous."
  },
  "host_targets": [
    "ChatGPT",
    "Codex",
    "Claude Code",
    "generic Agent Skills hosts"
  ],
  "eval_files": [
    "evals/activation.yml",
    "evals/behavior.yml",
    "evals/pressure.yml",
    "evals/regression.yml"
  ]
}

SHA-256: 7c1a26e325eb06c91c905a613f7512adbaef6b120665bfdfe5d44713d3ecfb5d