← Files Marketing CouncilARCHIVED FILE
skills/customer-research/references/skill-spec.json
6.22 KB · Oct 2, 2026 · 00:31 UTC
{
"name": "customer-research",
"purpose": "Design research that reveals customer progress, switching triggers, language, and decision criteria",
"baseline_failures": [
"leading interview questions",
"inventing customer language",
"confusing stated preference with observed behavior"
],
"activation": {
"positive": [
"Help me make the customer evidence using the evidence we have",
"Review our customer evidence and tell me what decision to make next",
"Build a rigorous customer evidence for this marketing problem"
],
"implicit": [
"We have conflicting signals and need a decision about customer evidence",
"I have data but I am not sure what it means for customer evidence",
"Challenge my assumptions before we finalize customer evidence"
],
"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": [
"research brief",
"interview guide and sample logic",
"synthesized decision evidence"
],
"execution": {
"primary_agent": "audience-strategist",
"counterweight_agent": "marketing-skeptic",
"primary_hook": "customer-language-check",
"evidence_hook": "evidence-gate",
"binding_source": "../../routing/skill-execution-bindings.json"
},
"invariants": [
"Do not finalize customer evidence 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 customer evidence and the decision owner for customer-research.",
"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 customer evidence is stated as one explicit decision question."
},
{
"id": "evidence",
"action": "Collect and classify the minimum evidence needed for customer evidence: interview transcripts, behavioral/customer data, existing research.",
"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 customer evidence 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 customer evidence 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 customer evidence 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 customer evidence, return the missing evidence, safest provisional interpretation, and the next smallest research action instead of guessing.",
"completion_conditions": [
"The customer evidence 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: 561807c832c38b050da3512a07f24aad3dc75e7a1f0ad90fe3a81487650891d7