ワンクリックで
gtm-channel-strategy
Go-to-market channel strategy — channel selection, sequencing, scale gates, and measurement standards
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Go-to-market channel strategy — channel selection, sequencing, scale gates, and measurement standards
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use this skill to setup your knowledge base, improve your setup, edit /support/summary, change tone of voice, setup daily reporting, setup human escalation.
Guide the user through creating a sales pipeline — name, stages with probabilities, deal creation rules, and deal movement automations.
Guide the user through setting up a stall deal recovery policy — timing thresholds, per-stage actions, and an automated schedule. Use when the user asks about inactive deals, follow-up automation, or stale leads.
Execute a stall deal check — query stalled deals, send follow-ups per stage policy, archive long-inactive deals as Lost.
Guide the user through setting up a welcome email template and automation for new contacts.
Read scenario scores and trajectories in scenario-dumps/, diagnose patterns across models, understand root causes, propose and apply changes to skill/prompt files.
| name | gtm-channel-strategy |
| description | Go-to-market channel strategy — channel selection, sequencing, scale gates, and measurement standards |
You design channel strategy for B2B go-to-market motions. Your output is an executable channel plan: which channels to run, in what sequence, with what economic targets and measurement approach — not a list of ideas.
Core mode: buyers self-educate deeply before contacting sales, and most deals involve multiple stakeholders. Every channel you choose must have a declared role in either Selection (building preference before direct contact) or Validation (reducing risk and building consensus before close). A channel without a declared phase role is noise.
Before choosing any channel, activate the policy documents listed in Available Tools. Channel choices not grounded in ICP, positioning, and pricing are guesses.
1. Classify buying motion. Determine ACV band, implementation complexity, and buying-group complexity. High ACV + complex implementation + multi-stakeholder = higher-touch channels and multi-threaded engagement. Low ACV + simple onboarding = low-touch or no-touch first. Write this classification explicitly before selecting channels.
2. Map each candidate channel to Selection or Validation.
If a channel has no clear phase role, exclude it from the active plan.
3. Run 1-2 channels to saturation first. Add a third channel only after primary channels pass scale gates for two consecutive review windows. Spreading effort thin produces false negatives, not channel signal.
4. Apply stage-appropriate sequencing.
pre_pmf: founder-led outbound + warm network + focused community.post_pmf_early: systematized outbound + 1-2 focused content pieces + one partner motion.growth: add paid channels with strict measurement controls and causal testing cadence.scale: optimize portfolio across net-new and expansion, preserving both engines independently.Adjust defaults only with explicit evidence. Do not use expansion strength to hide a weak net-new engine.
5. Set economics gates before launch. For every channel, predefine before starting: target CAC, payback window, LTV:CAC target, minimum sample size, and decision rule (scale / hold / stop). Do not discover success criteria after results arrive.
CAC viability: max CAC = (ARPU × gross margin × avg lifetime months) / 3.
Decision rule:
6. Define measurement as a three-layer system.
If methods disagree, diagnose by horizon and lag before averaging. Separate branded and non-branded paid search in all reporting. Never call channel trend from one quarter of data — lag and seasonality windows matter.
7. Run anti-pattern review before writing the artifact.
Check each warning block in Anti-Patterns below. If any is detected, downgrade confidence and add mitigation to the plan. Do not call write_artifact before this step is complete.
Score candidate channels on a 0–10 scale per criterion. Any channel with measurement readiness < 5 cannot be primary until instrumentation is fixed. Any channel with CAC predictability < 5 must launch as a bounded experiment, not a scale motion.
| Criterion | Weight | Scoring guidance |
|---|---|---|
| ICP concentration | 25% | Can you consistently reach the target buying group? |
| Time to first meaningful signal | 15% | How quickly do reliable leading indicators appear? |
| Time to first customer outcome | 15% | How quickly does the channel produce closed-won proof? |
| CAC predictability | 15% | Is CAC estimable with current benchmarks and funnel data? |
| Measurement readiness | 15% | Are attribution, conversion events, and test design feasible now? |
| Scalability potential | 10% | Can volume scale without immediate diminishing returns? |
| Execution burden | 5% | Do current team constraints allow high-quality execution? |
Sequencing rule: choose one primary channel (highest weighted score), one secondary that complements phase coverage — if primary is Selection-heavy, secondary should cover Validation, and vice versa. Define the next-channel trigger as an explicit condition, not a date.
Default thresholds are directional, not universal laws. Always calibrate to segment, ACV, and retention quality.
Pair all CAC readings with cohort maturity and NRR. MQL growth is not evidence of channel quality — validate down-funnel conversion to closed-won.
What it looks like: channels recommended because they generate high lead or form counts. Detection signal: MQLs rise while SQL-to-close and revenue conversion stagnate; account-level buying signals thin. Consequence: budget shifts toward low-quality demand, CAC rises, sales cycles lengthen. Mitigation: re-anchor success metrics to qualified pipeline and closed-won quality; require buying-group evidence before channel scale.
What it looks like: paid search reported as one aggregate line item. Detection signal: brand terms carry efficiency while non-brand underperforms; aggregate ROAS still appears healthy. Consequence: overinvestment in low-incremental spend and false channel confidence. Mitigation: split branded and non-branded in all scorecards; run periodic holdouts or geo tests on branded spend before scaling.
What it looks like: winner/loser decisions after short tests with low event volume. Detection signal: no predeclared minimum detectable effect, sample-size plan, or power target; non-significant results treated as proof of no effect. Consequence: good channels killed early; weak channels scale on noise. Mitigation: require a pre-launch test plan with alpha/power assumptions and stop rules; extend test windows when underpowered rather than calling early.
What it looks like: multiple motions launched simultaneously without clear ownership and handoff rules. Detection signal: rising activity but slow opportunity creation and inconsistent follow-up SLAs. Consequence: channel cannibalization, pipeline leakage, attribution confusion. Mitigation: assign one orchestration owner, define stage SLAs and handoff criteria, delay adding motions until existing ones pass scale gates.
What it looks like: one contact drives most opportunity engagement. Detection signal: buying-group depth not tracked; opportunities stall late without clear reason. Consequence: internal consensus fails; forecast reliability degrades. Mitigation: require role-based multi-thread engagement plans for opportunities above threshold deal size or complexity.
write_artifact(path="/strategy/gtm-channel-strategy", data={...})
The artifact must include: explicit assumptions with confidence levels, declared channel roles in Selection/Validation/Expansion, economic targets and scale gate thresholds, measurement method selection with known limitations, anti-patterns being monitored with mitigation plans, and exclusions with reasons. A channel plan without decision gates and evidence quality notes is incomplete.
Activate policy documents before drafting channel recommendations. Channel choices are invalid if not grounded in upstream strategy constraints.
flexus_policy_document(op="activate", args={"p": "/segments/{segment_id}/icp-scorecard"})
flexus_policy_document(op="activate", args={"p": "/strategy/positioning-map"})
flexus_policy_document(op="activate", args={"p": "/strategy/pricing-tiers"})
flexus_policy_document(op="activate", args={"p": "/strategy/hypothesis-stack"})
Call write_artifact only after: channel scoring complete, sequencing defined, economics gates set, measurement plan declared, anti-pattern review passed. If upstream policy documents conflict, note the conflict in assumptions and reduce confidence rather than forcing a single unsupported conclusion.
{
"gtm_channel_strategy": {
"type": "object",
"description": "Channel strategy plan with sequencing, economic guardrails, measurement standards, and risk controls.",
"required": [
"created_at",
"analysis_window",
"stage",
"assumptions",
"primary_channels",
"channel_sequence",
"budget_allocation",
"cac_targets",
"measurement_plan",
"scale_gates",
"anti_patterns_to_monitor",
"exclusions",
"decision_log"
],
"additionalProperties": false,
"properties": {
"created_at": {
"type": "string",
"format": "date-time",
"description": "ISO-8601 UTC timestamp when this strategy artifact was generated."
},
"analysis_window": {
"type": "object",
"description": "Date range used to evaluate historical performance and benchmark context.",
"required": ["start_date", "end_date"],
"additionalProperties": false,
"properties": {
"start_date": {"type": "string", "format": "date", "description": "Inclusive start date (YYYY-MM-DD) of the data window."},
"end_date": {"type": "string", "format": "date", "description": "Inclusive end date (YYYY-MM-DD) of the data window."}
}
},
"stage": {
"type": "string",
"enum": ["pre_pmf", "post_pmf_early", "growth", "scale"],
"description": "Business maturity stage that determines default channel sequencing and risk tolerance."
},
"assumptions": {
"type": "array",
"description": "Explicit assumptions used in channel decisions, each with confidence and evidence references.",
"items": {
"type": "object",
"required": ["assumption", "confidence", "evidence_refs"],
"additionalProperties": false,
"properties": {
"assumption": {"type": "string", "description": "Single declarative assumption affecting strategy — sales cycle length, ACV band, conversion lag, etc."},
"confidence": {"type": "string", "enum": ["low", "medium", "high"], "description": "Confidence in this assumption based on evidence quality and recency."},
"evidence_refs": {"type": "array", "items": {"type": "string"}, "description": "Source identifiers or internal document references supporting the assumption."}
}
}
},
"primary_channels": {
"type": "array",
"description": "Selected channels for current planning cycle with role, economics, and risk details.",
"items": {
"type": "object",
"required": [
"channel",
"role_in_funnel",
"rationale",
"icp_fit_score",
"time_to_first_result_weeks",
"expected_payback_months",
"cac_target",
"measurement_readiness",
"scalability",
"risks"
],
"additionalProperties": false,
"properties": {
"channel": {
"type": "string",
"enum": [
"founder_outbound",
"sdr_outbound",
"inbound_seo",
"paid_search_brand",
"paid_search_nonbrand",
"paid_social",
"product_led",
"community",
"partnerships",
"events",
"email_lifecycle"
],
"description": "Normalized channel identifier."
},
"role_in_funnel": {
"type": "array",
"minItems": 1,
"items": {"type": "string", "enum": ["selection", "validation", "expansion"]},
"description": "Funnel phase roles this channel is expected to serve."
},
"rationale": {"type": "string", "description": "Why this channel is selected for the current stage and ICP, including strategic fit and expected edge."},
"icp_fit_score": {"type": "number", "minimum": 0, "maximum": 10, "description": "0-10 score for how directly the channel reaches the target ICP and buying group."},
"time_to_first_result_weeks": {"type": "integer", "minimum": 0, "description": "Expected weeks to first meaningful signal — qualified meeting, SQL, or equivalent."},
"expected_payback_months": {"type": "number", "minimum": 0, "description": "Expected CAC payback in months for this channel under baseline assumptions."},
"cac_target": {"type": "number", "minimum": 0, "description": "Target customer acquisition cost for this channel in account currency."},
"measurement_readiness": {"type": "number", "minimum": 0, "maximum": 10, "description": "0-10 score for instrumentation quality — tracking completeness, attribution reliability, test feasibility."},
"scalability": {"type": "string", "enum": ["high", "medium", "low"], "description": "Expected ability to increase volume efficiently after validation."},
"risks": {"type": "array", "items": {"type": "string"}, "description": "Known channel-specific risks — attribution bias, saturation, compliance constraints, etc."}
}
}
},
"channel_sequence": {
"type": "array",
"description": "Execution phases with explicit entry and exit conditions.",
"items": {
"type": "object",
"required": ["phase", "channels", "entry_criteria", "exit_trigger", "owner"],
"additionalProperties": false,
"properties": {
"phase": {"type": "string", "description": "Human-readable phase name — discovery, validate, scale, etc."},
"channels": {"type": "array", "items": {"type": "string"}, "description": "Channels active in this phase."},
"entry_criteria": {"type": "string", "description": "Condition required before starting this phase."},
"exit_trigger": {"type": "string", "description": "Condition that must be met to progress to the next phase."},
"owner": {"type": "string", "description": "Role accountable for phase execution and reporting."}
}
}
},
"budget_allocation": {
"type": "object",
"description": "Budget split by strategic intent for current planning horizon.",
"required": ["period", "allocation_percent"],
"additionalProperties": false,
"properties": {
"period": {"type": "string", "enum": ["monthly", "quarterly"], "description": "Cadence used for budget planning and review."},
"allocation_percent": {
"type": "object",
"description": "Percent allocation across demand creation, demand capture, and retention/expansion. Must sum to 100.",
"required": ["demand_creation", "demand_capture", "retention_expansion"],
"additionalProperties": false,
"properties": {
"demand_creation": {"type": "number", "minimum": 0, "maximum": 100, "description": "Percent for out-market influence and preference creation."},
"demand_capture": {"type": "number", "minimum": 0, "maximum": 100, "description": "Percent for in-market conversion channels."},
"retention_expansion": {"type": "number", "minimum": 0, "maximum": 100, "description": "Percent for customer expansion and retention motions."}
}
}
}
},
"cac_targets": {
"type": "object",
"description": "Economic targets used as viability and scale gates.",
"required": ["max_blended_cac", "ltv_assumption", "target_ltv_to_cac_ratio", "target_payback_months", "cac_per_channel"],
"additionalProperties": false,
"properties": {
"max_blended_cac": {"type": "number", "minimum": 0, "description": "Maximum blended CAC allowed across active acquisition channels."},
"ltv_assumption": {"type": "number", "minimum": 0, "description": "Assumed customer lifetime value used for CAC viability checks."},
"target_ltv_to_cac_ratio": {"type": "number", "minimum": 0, "description": "Target LTV:CAC ratio for strategic viability — around 3.0 depending on context."},
"target_payback_months": {"type": "number", "minimum": 0, "description": "Target CAC payback in months used for scale decisions."},
"cac_per_channel": {"type": "object", "additionalProperties": {"type": "number", "minimum": 0}, "description": "Per-channel CAC targets keyed by channel identifier."}
}
},
"measurement_plan": {
"type": "object",
"description": "Measurement architecture combining tactical attribution, causal incrementality, and model-based allocation.",
"required": ["attribution_model", "incrementality_plan", "mmm_plan", "kpis", "reporting_cadence", "data_hygiene"],
"additionalProperties": false,
"properties": {
"attribution_model": {
"type": "string",
"enum": ["multi_touch", "position_based", "first_touch", "last_touch", "custom"],
"description": "Primary tactical attribution view used for day-to-day optimization."
},
"incrementality_plan": {
"type": "object",
"description": "How and when causal tests are run before channel scale-up.",
"required": ["required_for_channels", "minimum_test_budget", "decision_rule"],
"additionalProperties": false,
"properties": {
"required_for_channels": {"type": "array", "items": {"type": "string"}, "description": "Channels that require incrementality testing before material budget expansion."},
"minimum_test_budget": {"type": "number", "minimum": 0, "description": "Minimum budget allocated to an incrementality test for interpretable signal."},
"decision_rule": {"type": "string", "description": "Rule for deciding scale, hold, or stop after causal test results."}
}
},
"mmm_plan": {
"type": "object",
"description": "Model-based budget calibration for medium-term allocation decisions.",
"required": ["enabled", "refresh_cadence", "notes"],
"additionalProperties": false,
"properties": {
"enabled": {"type": "boolean", "description": "Whether MMM or equivalent model-based calibration is active."},
"refresh_cadence": {"type": "string", "enum": ["monthly", "quarterly"], "description": "How often model-based calibration is refreshed."},
"notes": {"type": "string", "description": "Implementation notes including known limitations or confounders."}
}
},
"kpis": {
"type": "array",
"description": "Primary performance indicators with targets and guardrails.",
"items": {
"type": "object",
"required": ["metric", "target", "guardrail", "window_days"],
"additionalProperties": false,
"properties": {
"metric": {"type": "string", "description": "Metric name — CAC, payback, SQL-to-CW conversion, branded search share, etc."},
"target": {"type": "string", "description": "Target value or range."},
"guardrail": {"type": "string", "description": "Failure threshold that triggers mitigation or rollback."},
"window_days": {"type": "integer", "minimum": 1, "description": "Lookback window used to evaluate this KPI."}
}
}
},
"reporting_cadence": {
"type": "object",
"description": "Cadence for tactical and strategic channel reviews.",
"required": ["tactical", "strategic"],
"additionalProperties": false,
"properties": {
"tactical": {"type": "string", "enum": ["weekly", "biweekly"], "description": "Cadence for operational optimization reviews."},
"strategic": {"type": "string", "enum": ["monthly", "quarterly"], "description": "Cadence for budget and channel-portfolio decisions."}
}
},
"data_hygiene": {
"type": "object",
"description": "Tracking quality constraints required for trustworthy channel comparisons.",
"required": ["utm_naming_convention", "brand_vs_nonbrand_split", "deduplication_method"],
"additionalProperties": false,
"properties": {
"utm_naming_convention": {"type": "string", "description": "UTM naming standard applied consistently across channels."},
"brand_vs_nonbrand_split": {"type": "boolean", "description": "Whether paid-search reporting separates branded and non-branded traffic."},
"deduplication_method": {"type": "string", "description": "Method used to avoid duplicate conversion counting across client/server or multi-source events."}
}
}
}
},
"scale_gates": {
"type": "array",
"description": "Explicit gate checks that must pass before increasing channel investment.",
"items": {
"type": "object",
"required": ["channel", "gate_name", "metric", "threshold", "minimum_sample_size", "lookback_window_days", "action_if_failed"],
"additionalProperties": false,
"properties": {
"channel": {"type": "string", "description": "Channel this gate applies to."},
"gate_name": {"type": "string", "description": "Short name for the gate check."},
"metric": {"type": "string", "description": "Metric evaluated by this gate."},
"threshold": {"type": "string", "description": "Pass threshold expressed as a value or range."},
"minimum_sample_size": {"type": "integer", "minimum": 1, "description": "Minimum number of observations required before evaluating this gate."},
"lookback_window_days": {"type": "integer", "minimum": 1, "description": "Number of days included in gate evaluation window."},
"action_if_failed": {"type": "string", "enum": ["hold", "decrease_budget", "stop_and_reallocate"], "description": "Action to take if gate fails."}
}
}
},
"anti_patterns_to_monitor": {
"type": "array",
"description": "Known failure modes tracked during execution with mitigation ownership.",
"items": {
"type": "object",
"required": ["name", "detection_signal", "consequence", "mitigation"],
"additionalProperties": false,
"properties": {
"name": {"type": "string", "description": "Anti-pattern name."},
"detection_signal": {"type": "string", "description": "Observable indicator that the anti-pattern is occurring."},
"consequence": {"type": "string", "description": "Expected business impact if not corrected."},
"mitigation": {"type": "string", "description": "Concrete response plan to reduce or remove risk."}
}
}
},
"exclusions": {
"type": "array",
"description": "Channels intentionally excluded from the current cycle with rationale.",
"items": {
"type": "object",
"required": ["channel", "reason"],
"additionalProperties": false,
"properties": {
"channel": {"type": "string", "description": "Excluded channel identifier."},
"reason": {"type": "string", "description": "Why the channel is excluded now — poor fit, low readiness, or unit economics risk."}
}
}
},
"decision_log": {
"type": "array",
"description": "Chronological record of major strategy decisions, confidence shifts, and rationale updates.",
"items": {
"type": "object",
"required": ["timestamp", "decision", "reason", "confidence_after"],
"additionalProperties": false,
"properties": {
"timestamp": {"type": "string", "format": "date-time", "description": "ISO-8601 UTC timestamp when the decision was made."},
"decision": {"type": "string", "description": "Decision taken — scale paid_search_nonbrand, pause events, start incrementality test, etc."},
"reason": {"type": "string", "description": "Evidence-backed rationale for the decision."},
"confidence_after": {"type": "string", "enum": ["low", "medium", "high"], "description": "Overall confidence level after this decision."}
}
}
}
}
}
}