Ops Gtm logo

Ops Gtm

Organization
Lifecycle-Innovations-Limited
ops-gtm

OPS on-demand: This skill should be used when the user asks to "go to market", "GTM plan", or…

Overview

PublisherLifecycle-Innovations-Limited
Repositoryclaude-ops
Skill nameops-gtm
Stars
543
Forks
64
Bundled files
1
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by Lifecycle-Innovations-Limited on GitHub. Read the source before you install it.

Installation

Install the Ops Gtm AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/Lifecycle-Innovations-Limited/claude-ops/tree/main/claude-ops/skills/ops-gtm
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Lifecycle-Innovations-Limited/claude-ops.git /tmp/claude-ops
mkdir -p .claude/skills
cp -r /tmp/claude-ops/claude-ops/skills/ops-gtm .claude/skills/ops-gtm
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Ops Gtm in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Ops Gtm on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Ops Gtm is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

OPS ► GTM COMMAND CENTER

Load ops-rules before acting. Public repo (no personal data). Outbound: one draft → one approval → one send. If AskUserQuestion / Workflow are missing, follow Rule 10 in ops-rules (Hermes: numbered options / two-turn Telegram card; delegate_task).

Strategy layer that sits on top of /marketing. /marketing runs campaigns; /gtm decides what to run, across paid, unpaid, sales, and AI-automation channels, and then hands the executable pieces to /marketing via the Skill tool.

Runtime Context

Before executing, load available context:

  1. Preferences: Read ${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json

    • timezone — timestamp all output correctly
    • gtm_default_project, gtm_default_audience, gtm_brand_voice — project-level defaults when set
    • gtm_monthly_budget, gtm_stage (pre-launch|beta|ga|scale) — used to tune channel recommendations
  2. Cached plans: List ${CLAUDE_PLUGIN_DATA_DIR}/gtm/*.md to surface recent plans. Never overwrite a prior plan file — always append a new dated file.

  3. Daemon health: Read ${CLAUDE_PLUGIN_DATA_DIR}/daemon-health.json. If action_needed is not null, surface it before running any long planning flow.

  4. Repo auto-scan (background): For the current working directory, in parallel and with run_in_background: true:

    • git remote -v → infer project slug and org
    • cat README.md (or README.*) → product description, ICP hints
    • Glob package.json, pyproject.toml, Cargo.toml, go.mod → tech stack
    • Glob .planning/**/*.md and docs/**/*.md → prior briefs, positioning notes
    • Resolve: project name, one-line pitch, primary tech, existing channels hinted in the repo
  5. /marketing credential probe (read-only): Do NOT re-resolve API keys in this skill. Instead, when the user asks to launch something, delegate to /marketing via the Skill tool — /marketing owns the credential resolution chain (userConfig → env vars → Doppler → Dashlane → Keychain → gcloud ADC).

Agent Teams support

If CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 is set, use Agent Teams for the plan sub-command so the four research agents share context and report progress in real-time:

TeamCreate("gtm-research-team")
Agent(team_name="gtm-research-team", name="paid-research",       prompt="Research paid acquisition channels that fit ${PROJECT_TYPE} at ${STAGE} with $${MONTHLY_BUDGET}/mo. Return a ranked list with fit signals, expected CAC, and which /marketing sub-command (if any) executes each channel.")
Agent(team_name="gtm-research-team", name="unpaid-research",     prompt="Research organic channels (SEO, content, community, PR, partnerships, referrals, lifecycle email) for ${PROJECT_TYPE} at ${STAGE}. Return ranked list with effort estimate, time-to-signal, and /marketing sub-command mapping.")
Agent(team_name="gtm-research-team", name="sales-research",      prompt="Design a sales motion for ${PROJECT_TYPE}: outbound vs inbound vs PLG vs channel. Propose a 30/60/90 plan with concrete activities and target metrics.")
Agent(team_name="gtm-research-team", name="automation-research", prompt="Propose AI-automation recipes: lead enrichment, personalized outreach, content ops, lifecycle copy, support deflection, lead scoring. For each, list trigger, model/tool stack, and where it plugs into /marketing.")

If the flag is NOT set, use standard fire-and-forget subagents with the same four prompts.


Sub-command Routing

Route $ARGUMENTS to the correct section below:

InputAction
(empty), planFull GTM plan across all four avenues
paidPaid acquisition deep-dive (Meta, Google, LinkedIn, TikTok, affiliates, sponsorships)
unpaidOrganic deep-dive (SEO, content, community, PR, partnerships, referrals, lifecycle email)
salesSales motion (outbound, inbound, PLG, channel / partner)
automationAI-automation playbook for GTM
launch30/60/90 launch calendar + pre-flight checklist
briefOne-page positioning brief (ICP, value prop, messaging pillars)
setupConfigure default project, audience, budget tier, brand voice

Arguments are free-form — treat /gtm plan for my-project $2k/mo pre-launch as equivalent to plan with intake values pre-filled.


Project Intake

Before producing any plan section, make sure the following are known. Source them in this order — only ask the user for what's still missing.

  1. Auto-scan the repo (step 4 of Runtime Context).
  2. Read prefs for gtm_default_* keys.
  3. Parse free-text in $ARGUMENTS for budget, stage, and project name.
  4. AskUserQuestion for gaps — respect Rule 1 (max 4 options per call; batch if needed).

Use these four questions in order, skipping any already known:

  • Project type — [B2B SaaS, B2C product, Marketplace, Dev tool / API]
  • Stage — [Pre-launch, Beta / early access, GA (live), Scale (growth)]
  • Primary goal (next 90 days) — [Awareness, Signups / leads, Revenue, Retention / expansion]
  • Monthly budget tier — [<$1k, $1k–5k, $5k–25k, $25k+]

If a Rule-1 batch overflows (e.g. more than 4 project types needed), paginate with [More options...] as the 4th slot.

Per Rule 3, never silently skip an intake question — if the user hits Escape, offer [Paste manually] / [Use default] / [Skip this only].


Channel / Avenue Catalog

See references/catalog.md.

plan — full GTM plan (default)

  1. Intake per Project Intake section.

  2. Spawn the four research agents (Agent Teams if flag set, else fire-and-forget).

  3. Assemble the plan in this order:

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
     GTM PLAN — [project]  ([stage], [goal], $[budget]/mo)
     [timestamp]
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
     POSITIONING
      ICP:            [one sentence]
      Value prop:     [one sentence]
      Messaging:      [3 pillars, comma-separated]
    
     PAID (next 30 days)
      1. [Channel]  $[X]/mo  Expected CAC: $[X]  Execute: /marketing ads
      2. [Channel]  $[X]/mo  Expected CAC: $[X]  Execute: manual
    
     UNPAID (next 90 days)
      1. [Channel]  Effort: [L/M/H]  Signal in: [X wks]  Execute: /marketing seo
      2. [Channel]  ...
    
     SALES
      Motion:         [Outbound / Inbound / PLG / Channel]
      30/60/90:       [one line summary]
    
     AUTOMATION (AI-powered)
      1. [Recipe]     Plugs into: /marketing email
      2. [Recipe]     Plugs into: outbound
    
     KPIs
      North star:     [metric + target]
      Leading:        [3 leading indicators]
    
     BUDGET ROLLUP
      Paid:           $[X]/mo
      Tools/SaaS:     $[X]/mo
      Total:          $[X]/mo
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  4. Persist the plan to ${CLAUDE_PLUGIN_DATA_DIR}/gtm/<project-slug>-$(date +%Y-%m-%d).md (create the directory if missing). Never overwrite — if the file exists, append -v2, -v3.

  5. Handoff prompt — end with an AskUserQuestion (≤4 options per Rule 1):

    • [Launch via /marketing] — hand top executable items to /marketing
    • [Save only] — keep the plan file, take no action
    • [Refine plan] — re-run with adjusted intake
    • [Schedule follow-up] — revisit in 7/30 days (delegate to /ops cron if available)

On [Launch via /marketing], iterate through plan items whose execution path starts with /marketing and invoke them one at a time via the Skill tool:

Skill("ops-marketing", args="campaigns")
Skill("ops-marketing", args="ads")
Skill("ops-marketing", args="email")

Never silently skip an item (Rule 3) — for each, ask [Launch, Skip, Edit first].

Per Rule 5, do NOT auto-launch anything that spends money or sends to real recipients without explicit per-item confirmation. The plan recommends; /marketing executes; the user approves each paid or outbound action.


paid — paid acquisition deep-dive

Same intake, but only spawn the paid-research agent. Render just the PAID block, with up to 5 channel rows and for each:

  • Expected CAC range (cite source or reasoning)
  • Creative angle suggestion
  • Starting budget
  • Attribution setup note (how /marketing attribution will measure it)
  • Execute: line pointing to the /marketing sub-command or manual

End with the same handoff prompt as plan, scoped to paid channels.


unpaid — organic deep-dive

Spawn unpaid-research only. For each recommended channel output:

  • Why it fits (fit signals from intake)
  • First-30-days concrete actions (3 bullets)
  • Time-to-signal
  • Measurement: which /marketing sub-command tracks it (/marketing seo, /marketing email, /marketing instagram) or manual + tool
  • Lifecycle email is first-class here — recommend specific Klaviyo flows and note that /marketing email can scaffold them

sales — sales motion

Spawn sales-research only. Produce:

  1. Motion pick with one-paragraph rationale (Outbound / Inbound / PLG / Channel — Rule 1: these are the exact 4 options if you need the user to choose).
  2. ICP slice — which segment to hit first, sized from intake.
  3. 30/60/90 plan — week-by-week activities (e.g. week 1: build list of 500 accounts; week 2: 200 outbound opens; …).
  4. Tooling — CRM, enrichment, sequencer; note when AI automation from the automation section fits.
  5. Handoff — offer [Automate outreach via /gtm automation, Skip, Edit motion].

automation — AI automation playbook

Spawn automation-research only. Render each recipe with:

  • Trigger condition (what event fires it)
  • Model / tool stack (default to Claude + the ops tool listed in the catalog)
  • Integration point — specifically, which /marketing sub-command or external system it reads from and writes to
  • Risk flags (PII, cost, brand-voice drift) and the guardrails that mitigate them
  • Starter prompt / pseudo-code snippet so the user can copy-paste

End with AskUserQuestion offering [Scaffold recipe now, Save only, Pick different recipe].


launch — 30/60/90 launch calendar

Used at stage = pre-launch or beta. Produces a week-by-week calendar of launch activities across all four avenues.

Required pre-flight checklist (render and check what's ready vs open):

☐ Positioning brief  →  /gtm brief
☐ Landing page live  →  manual
☐ Analytics wired    →  /marketing setup (GA4 + GSC)
☐ Email capture live →  /marketing email  (Klaviyo list)
☐ Ad accounts ready  →  /marketing setup (Meta, Google)
☐ Social handles claimed   →  manual
☐ Product Hunt / HN plan   →  this skill, below
☐ Press / creator list     →  manual

Launch-day playbook: render hourly timeline for T-7d through T+14d, with concrete actions and the /marketing command (or manual step) for each.


brief — one-page positioning brief

Fast path — does NOT spawn the four research agents. Just intake + a single call to write the brief. Fields: ICP, Pain, Value prop, 3 messaging pillars, Proof points, Anti-positioning (who it's NOT for). Save to ${CLAUDE_PLUGIN_DATA_DIR}/gtm/<project-slug>-brief-$(date +%Y-%m-%d).md.

This is the cheapest entry point — recommend running /gtm brief before /gtm plan when the project's positioning isn't already written down.


setup

Configure GTM defaults so subsequent runs skip the intake questions. Per Rule 4, run every Bash call with run_in_background: true unless the result is needed for the very next decision.

Auto-scan (background) first:

bash
# Existing prefs
jq -r '{project: .gtm_default_project, audience: .gtm_default_audience, voice: .gtm_brand_voice, budget: .gtm_monthly_budget, stage: .gtm_stage}' "$PREFS_PATH" 2>/dev/null

# Repo signals
git -C "$PWD" remote get-url origin 2>/dev/null
head -50 README.md 2>/dev/null
ls .planning/ 2>/dev/null

Then prompt for what's missing (≤4 options per Rule 1), in this order:

  1. Default project name — free-text, pre-filled from git remote slug
  2. Project type — [B2B SaaS, B2C product, Marketplace, Dev tool / API]
  3. Stage — [Pre-launch, Beta, GA, Scale]
  4. Monthly budget tier — [<$1k, $1k–5k, $5k–25k, $25k+]
  5. Brand voice — [Playful, Professional, Technical, Bold]

Save to $PREFS_PATH as gtm_default_project, gtm_project_type, gtm_stage, gtm_monthly_budget, gtm_brand_voice. Never write API keys here — GTM does not own any credentials (/marketing does).

Finish with a smoke test: run /gtm brief in background and report ✓ setup complete — try /gtm plan or ✗ [error].


Plugin Rules compliance (required reading)

All behavior above respects claude-ops/CLAUDE.md:

  • Rule 0 — public repo: every example above uses your-project, you@example.com, <YOUR_TOKEN>. Never save user-specific data outside $PREFS_PATH or ${CLAUDE_PLUGIN_DATA_DIR}/gtm/.
  • Rule 1 — ≤4 options per AskUserQuestion: every prompt in this file lists exactly ≤4. Paginate with [More options...] if a dynamic list grows past 4.
  • Rule 3 — never auto-skip: on launch handoff, every plan item gets an explicit [Launch, Skip, Edit first] prompt. No silent skipping.
  • Rule 4 — background by default during setup: all Bash calls in the setup flow use run_in_background: true.
  • Rule 5 — destructive actions need explicit confirmation: /gtm never spends money or sends messages directly — it delegates to /marketing, which owns per-action confirmation. Recommendations are just that.

Why this skill is thin

/gtm deliberately does NOT re-implement channel APIs. Credential resolution, curl calls, daemon data, and dashboards all live in /marketing. This skill is a strategy-and-handoff layer. If a capability belongs to a channel API, add it to /marketing; if it belongs to planning, it goes here.

Additional resources

Channel catalogue: references/catalog.md. CLI detail lives in the /marketing skill, which owns credential resolution and the channel API calls.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Ops Gtm AI skill do?

OPS on-demand: This skill should be used when the user asks to "go to market", "GTM plan", or…

Why use Ops Gtm on TypingMind?

Because you install it once and use it with any model. Ops Gtm is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Ops Gtm in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Lifecycle-Innovations-Limited/claude-ops/tree/main/claude-ops/skills/ops-gtm. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Ops Gtm?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Ops Gtm?

As many as you like. As long as a model supports skills, you can use Ops Gtm with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Ops Gtm AI skill free?

Yes. It is published on GitHub by Lifecycle-Innovations-Limited under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇