{"id":18274,"plugin_id":"plugins_6a8366789d3081919bf20654f87e082b","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:14:45.849Z","digest":"981c62594469a5c27050a22b9e6107ea23ab3b59383b5db7bac976bcda1732f4","against":null,"payload":{"description":"Use when the user needs to design research that reveals customer progress, switching triggers, language, and decision criteria; route here only when this decision boundary is the clear owner.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":301},{"relative_path":"evals/activation.yml","size_in_bytes":1452},{"relative_path":"evals/behavior.yml","size_in_bytes":485},{"relative_path":"evals/pressure.yml","size_in_bytes":343},{"relative_path":"evals/regression.yml","size_in_bytes":252},{"relative_path":"references/decision-model.md","size_in_bytes":641},{"relative_path":"references/failure-modes.md","size_in_bytes":280},{"relative_path":"references/output-contract.md","size_in_bytes":646},{"relative_path":"references/skill-spec.json","size_in_bytes":6368}],"name":"customer-research","skill_md_contents":"---\nname: customer-research\ndescription: Use when the user needs to design research that reveals customer progress, switching triggers, language, and decision criteria; route here only when this decision boundary is the clear owner.\n---\n\n# Customer Research\n\n## Job\n\nDesign research that reveals customer progress, switching triggers, language, and decision criteria\n\nOwn this request only when **customer evidence** is the clear decision boundary. If ownership is ambiguous or several functions compete, route to `marketing-council`. If the user explicitly asks for dependent work across functions, use `../../scripts/dynamic_router.py` to build a bounded DAG.\n\n## Operating contract\n\n1. Read `references/skill-spec.json` first for activation, invariants, workflow freedom, evidence rules, handoffs, and completion conditions.\n2. Use `references/decision-model.md` when framing or challenging the decision.\n3. Check `references/failure-modes.md` before finalizing a recommendation.\n4. Render the response against `references/output-contract.md`.\n5. Use packaged shared references or current external research only when they are load-bearing. Never present inference as evidence.\n\n## Evidence discipline\n\nClassify material claims as fact, inference, assumption, or unknown. Prefer supplied primary evidence. Verify current platform, policy, product, pricing, or market claims when freshness affects the recommendation. Do not fabricate research, tool calls, metrics, customer language, or causal proof.\n\n## Routing\n\n- Focused request: stay inside this Skill.\n- Ambiguous or cross-functional ownership: hand to `marketing-council`.\n- Explicit dependency chain: use `../../scripts/dynamic_router.py`.\n- After Skill ownership is known, theory/agent selection may use `../../scripts/neural_router.py`; neural nodes never replace Skill routing.\n\n## Execution connections\n\n- Primary specialist: `../../agents/audience-strategist.md`\n- Skeptical counterweight: `../../agents/marketing-skeptic.md`\n- Domain challenge gate: `../../hooks/customer-language-check.md`\n- Evidence gate: `../../hooks/evidence-gate.md`\n- Keep these as decision inputs, not automatic authority. The Skill owns the final evidence-bound synthesis.\n\n\n## Neural connections\n\n- Owning Skill: `customer-research`\n- Decision boundary: `customer evidence`\n- Neural graph: `../../neural/graph.json`\n- Neural router: `../../scripts/neural_router.py`\n- Theory and specialist selection happens only after Skill ownership; neural nodes never replace Skill routing.\n- Use the local `references/skill-spec.json` evidence policy and invariants to reject neural recommendations that are unsupported by the request evidence.\n\n## Completion gate\n\nComplete only when the decision is explicit, evidence and inference are separated, a credible alternative was considered, outputs are rendered, material uncertainty is stated, and measurement plus reversal evidence are defined.\n\nLocal behavioral evaluations live in `evals/activation.yml`, `evals/behavior.yml`, `evals/pressure.yml`, and `evals/regression.yml`.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}