agentsclimarketplace

Gtm reverse engineer

Skill ndpvt-web/gtm-reverse-engineer

Claude Code skill for competitor GTM analysis — modular channel teardowns and copy/adapt/skip playbooks for any company

Install
npx -y skills add ndpvt-web/gtm-reverse-engineer

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 16 days oldThe repository was created 16 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Reverse-engineer any company's public go-to-market into an evidence-graded, multi-file playbook (copy / adapt / skip). Use whenever the user wants competitor GTM teardown, growth forensics, channel analysis (Instagram, X/Twitter, LinkedIn, ads, Reddit/community, SEO, jobs, pricing), "how did X grow", unicorn/breakout GTM playbook, modular GTM research, or to install a 90-day motion plan from public signals. Trigger even if they say "spy on their GTM", "tear down their acquisition", or name a single channel (ads only, X only, community only). Prefer this skill over ad-hoc web search when a structured pack or playbook is desired.

SKILL.md

10.6 KB, as published. Nobody here has run it

GTM Reverse Engineer

General, company-agnostic skill. Nothing about a specific brand is hardcoded in runtime logic. The target company is always supplied by the user (or clarified before run).

Defaults (override if user already chose otherwise)

SettingDefault
Skill idgtm-reverse-engineer
Output root./outputs/gtm-playbook-<slug>/ under current workspace
Depthstandard unless user says quick/max/full
Modulesuser-selected; if user says "full" / "in-depth" / "everything" → all modules
Collectorsauto-detect (see below); never require Kimi or any browser bridge
Extra vs base researchChannel Completeness Contracts on every gather + scorecard

If product choices are still ambiguous after reading the user message, ask before spending a large run. Do not invent the target company.

When this skill triggers

  • Competitor / company GTM, growth, acquisition, positioning teardown
  • Single-channel asks: "only Instagram", "only X", "only ads", "only community"
  • Full playbook / 90-day copy plan / what not to copy
  • Modular or full-depth GTM research workflows

Non-goals / honesty fence

  • Not insider or "stolen secrets." Public and user-session-visible signals only.
  • Not audited financials. Company-claimed ARR/users/valuation stay labeled.
  • Not equal depth for every company. Thin public exhaust → thin pack + explicit coverage.
  • Do not hardcode example companies as the run target. Examples in docs are illustrations only.

Required inputs

  1. Target (required): company name and/or website URL.
  2. Modules (required unless full): list or preset (full, quick, or explicit module ids).
  3. Optional: geo focus, B2B vs B2C emphasis, output directory, depth (quick | standard | max).

If target is missing or ambiguous (multiple entities share the name), stop and disambiguate (entity lock) before gather.

Module catalog (v1)

Compose any subset. full enables all gather modules + analyze bundle + verify + playbook.

Module idPurpose
entityCompany lock, founders/team surface, timeline anchors
press_fundingPress, launches, funding claims (graded)
product_pricingSite, pricing, packaging, enterprise/affiliates pages
jobsCareers/jobs as GTM org proxy
social_xX/Twitter official + founders (archives/web first)
social_linkedinLinkedIn company (+ founders if reachable)
social_instagramInstagram official
adsMeta/Google ad library and paid creative angles
communityReddit/community sentiment and objections
seo_distributionSEO content, PH, affiliates, distribution surfaces
youtube_interviewsTalks/interviews index + transcripts when available
analyzeAnalysis suite (scoped to enabled evidence)
verifyAdversarial review + claim audit + confidence/gaps
playbookCopyable playbook chapters (scoped)

Presets (resolved by scripts/init_run.py into concrete module ids):

  • quickentity, product_pricing, press_funding, analyze, verify
  • standard → all gather modules + analyze, verify, playbook
  • full / max → same module set as standard; depth controls effort/browser willingness, not a different module list

Scorecard is not a module. After any gather, always run completeness rollup (phase), then optional analyze slices.

Depth vs modules: modules = what runs; depth = how hard (query volume, browser enrich only if confirmed).

Read references/modules.md for per-module outputs, done-when, and analyze scope.

Pipeline (always) — load order

0. Parse args → resolve modules (init_run.py) → output paths
1. Detect collectors (detect_collectors.py) — browser_enrich_possible defaults false
2. Entity lock (serial; stop if ambiguous)
3. Gather enabled modules in parallel (each returns completeness_contract)
4. Orchestrator rollup COMPLETENESS-SCORECARD + RUN-CONFIG contracts
5. validate_run.py --phase post_gather  (block on FAIL)
6. Analyze (only dimensions supported by evidence)
7. Verify if enabled (claim audit + adversarial)
8. Playbook if enabled (only if module enabled)
9. validate_run.py --phase final; index + confidence map + gaps

For large multi-module runs, prefer Claude Code Workflow orchestration (dynamic-workflow patterns): phase, parallel, pipeline, structured agent returns. Pass modules_resolved, not preset strings. For single-module asks, inline agents are enough — Completeness Contracts remain mandatory.

Collector auto-detect (never hardcode Kimi)

Run scripts/detect_collectors.py (or follow references/collector-matrix.md) at start of every run.

Priority order for raw collection:

  1. Always: web search skill (if present), curl/HTTP fetch, public APIs/archives
  2. If present: YouTube transcript scripts/skills
  3. If browser bridge available (chrome-session-bridge / Capy browser bridge online): optional logged-in enrich for login-walled surfaces
  4. If Kimi webbridge skill + daemon/extension available: optional; one session per agent, max 2 tabs; never default bulk
  5. If nothing beyond web: proceed web-only; document limits in completeness contracts

Rules:

  • Detection must be runtime, not baked into module lists as "requires Kimi."
  • If user is not logged in and wall blocks, set contract blockers to include login_wall and list login_required_surfaces — do not invent engagement.
  • Never open mass tabs. Prefer one tab reused per browser agent.
  • Omit browser tools from prompts when browser_enrich_possible is false.

Channel Completeness Contracts (mandatory)

Every gather agent (including entity and single-module/inline runs) MUST emit a full canonical contract. Schema + enums: references/completeness-contracts.md.

All required keys: module, channel, method (web|archive|browser|mixed), claimed_complete (default false), items_captured, date_span, sample_note, what_was_not_covered, grade_of_collection, login_required_surfaces, blockers.

Rollup: orchestrator writes 00-meta/COMPLETENESS-SCORECARD.md and RUN-CONFIG.completeness_contracts after gather. Missing contract for an enabled gather module = QA fail (scripts/validate_run.py).

Analyze/playbook must not imply full channel history/census when claimed_complete is false.

Evidence grades

  • A primary (official site/app, official social, filings, careers, primary founder post/transcript)
  • B strong secondary with attribution
  • C pattern from multiple weaker signals (list them)
  • D single weak source — never playbook foundation
  • UNKNOWN missing — do not invent

Company-claimed metrics: always label. See references/evidence-grades.md.

Output tree (generic)

outputs/gtm-playbook-<slug>/
  00-meta/     README, SOURCE-INDEX, CONFIDENCE-MAP, GAPS, COMPLETENESS-SCORECARD, RUN-CONFIG
  01-entity/   COMPANY-LOCK, ...
  02-raw-evidence/<module>/...
  03-analysis/...
  04-playbook/...   (if enabled)
  05-verification/... (if enabled)

<slug> from target domain or normalized company name. Init via scripts/init_run.py when available.

Templates: references/output-tree.md.

RUN-CONFIG.json

Written by init_run.py at start (update at end). Important fields:

{
  "target_input": "<user string>",
  "entity_locked": null,
  "slug": null,
  "modules_preset": "standard",
  "modules_resolved": ["entity", "…"],
  "gather_modules": ["entity", "…"],
  "synthesis_modules": ["analyze", "verify", "playbook"],
  "depth": "standard",
  "collectors_detected": {},
  "output_dir": "",
  "started_at": "",
  "completed_at": null,
  "completeness_contracts": []
}

No default target company field. Never set target to an example output path.

Modular execution examples

User: "only X GTM for https://example.com"
→ modules: entity, social_x; completeness rollup phase; light analyze slice (social scorecard only); skip full playbook unless asked.

User: "Instagram ads only"
→ modules: entity, social_instagram, ads (IG-relevant), completeness contracts, ads/social scorecards.

User: "full in-depth GTM playbook for Acme"
→ all modules; Workflow recommended; verify + full playbook.

Workflow templates

  • workflows/README.md — how to compose
  • workflows/modular-gather.md — gather agent prompt patterns (parameterized)
  • workflows/full-run.md — full depth phase map
  • Do not ship company-specific JS. Any Workflow script must take args: { target, modules, outputDir, depth, collectors }.

QA expectations while using this skill

Before final handoff:

  1. Entity lock file exists and matches user target
  2. Every enabled gather module has a completeness contract
  3. No invented metrics
  4. SOURCE-INDEX lists sources
  5. GAPS-AND-UNKNOWNS honest
  6. If playbook enabled: recommendations cite grades

References to load as needed

FileWhen
references/modules.mdModule plan / dependencies
references/completeness-contracts.mdEvery gather
references/collector-matrix.mdStart of run
references/output-tree.mdInit outputs
references/evidence-grades.mdAnalysis / verify / playbook
references/playbook-chapters.mdPlaybook module
references/agent-prompt-templates.mdSpawning subagents
references/guardrails.mdBrowser/safety

Scripts

ScriptPurpose
scripts/detect_collectors.pyPrint JSON of available collectors
scripts/init_run.pyExpand presets, create tree + RUN-CONFIG
scripts/validate_run.pyFail-closed QA (`--phase post_gather

Anti-patterns

  • Hardcoding a demo company’s handles as defaults
  • Requiring Kimi/browser to run at all
  • One tab per post / mass navigation
  • Claiming complete social history without contract proof
  • Turning company-claimed ARR into playbook foundation

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.