Receber por email
← Voltar para o catálogo

landscape-scan

Scan the current market landscape and produce a ground-truth ecosystem snapshot. Chains /last30days for live research, validates with user, and writes brand/landscape.md with a Claims Blacklist that hard-gates all content generation. Use when: "landscape", "ecosystem", "market snapshot", "ground truth", "what's happening", "refresh landscape", "market trends", or before any content campaign to ver

25estrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add MoizIbnYousaf/marketing-cli

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/landscape-scan/svg)](https://www.skillteca.com.br/skills/landscape-scan)
#ai

Skills relacionadas

Ver todas de Marketing →

Alerta por categoria

Receba novas skills de Marketing toda segunda

1 email curto, só com as skills novas de Marketing. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

/landscape-scan -- Ground-Truth Ecosystem Snapshot

Every claim your marketing makes sits on top of an assumption about the market. "We're the first to..." "Nobody else does..." "The market is moving toward..." When these assumptions are wrong, your positioning collapses on contact with reality. Customers who Google your claims and find them false don't come back.

This skill builds a verified ecosystem snapshot that becomes the single source of truth for all downstream content. The Claims Blacklist it produces hard-gates every content skill -- if a claim is blacklisted, no skill writes it. Period.

No SaaS tools needed. Live web research + user validation.

On Activation

  1. Check if brand/ directory exists in the project root.
  2. If it does, read available files in priority order:
  3. competitors.md -- existing competitive intel (primary input)
  4. positioning.md -- current positioning angles and claims
  5. audience.md -- target market and buyer personas
  6. voice-profile.md -- brand personality (for tone of output)
  7. learnings.md -- past marketing learnings and corrections
  8. Apply loaded brand context to focus the landscape scan -- existing competitor

data narrows the research query, positioning data identifies claims to verify.

  1. If brand/ does not exist or is empty, proceed without it -- this skill

works standalone by asking the user foundational questions.

Iteration Detection

Before starting, check whether ./brand/landscape.md already exists.

If landscape.md EXISTS --> Refresh Mode

Do not start from scratch. Instead:

  1. Read the existing landscape file.
  2. Present a summary of the current state:

``` EXISTING LANDSCAPE SNAPSHOT Last updated {date} by /landscape-scan

Ecosystem segments: {N} Claims blacklisted: {N} Market shifts tracked: {N}

Freshness: {days} days old (threshold: 14 days)

What would you like to do?

  1. Full refresh -- re-run /last30days, revalidate everything
  2. Verify claims -- check if blacklisted claims are still invalid
  3. Add new segment -- expand to cover a new market area
  4. Rebuild from scratch -- discard and start over

```

  1. Process the user's choice:
  2. Option 1 --> Re-research with fresh /last30days query, merge with existing data
  3. Option 2 --> Focused validation of Claims Blacklist items only
  4. Option 3 --> Targeted research on a new ecosystem segment, merge into existing file
  5. Option 4 --> Full process from scratch
  1. Before overwriting, show a diff of what changed and ask for confirmation.

If landscape.md DOES NOT EXIST --> Full Scan Mode

Proceed to the full process below.

The Core Job

Map current ecosystem reality so every downstream skill operates on verified ground truth. The output has two critical components:

  1. Ecosystem Snapshot -- what is actually happening in the market right now

(players, trends, shifts, emerging categories, consolidation, funding rounds)

  1. Claims Blacklist -- specific claims your marketing MUST NOT make because

they are verifiably false, outdated, or easily disproven by a customer who spends 30 seconds searching

The Claims Blacklist is not advisory. It is a hard gate. Every content-generating skill reads brand/landscape.md and refuses to write blacklisted claims.

Orchestration Flow

Phase 1: Preflight

  1. Read brand/ context files (see On Activation above).
  2. Detect mode: create vs refresh (see Iteration Detection above).
  3. Determine context level:
  4. L0 -- No brand/ files. Need to ask everything.
  5. L1 -- Have product name/description only.
  6. L2 -- Have competitors.md and/or positioning.md.
  7. L3 -- Have L2 + will run /last30days for live data.
  8. L4 -- Have L3 + existing landscape.md (refresh mode).
  9. If --dry-run is set, report what WOULD happen and exit. Do not make any

network calls or write any files.

Phase 2: Build Research Query

Extract search parameters from available context:

  • Product/Category: from positioning.md primary_gap or user input
  • Competitors: from competitors.md competitor names, or user input
  • Target market: from audience.md primary_persona, or user input
  • Time window: last 30 days (default), or user-specified

Build the research query (see references/query-templates.md for industry-specific templates). The query should cover:

  1. Market movements -- funding, acquisitions, pivots, shutdowns
  2. Product launches -- new entrants, major version releases, feature parity shifts
  3. Pricing changes -- competitors adjusting pricing models or tiers
  4. Narrative shifts -- what the industry press and community are saying
  5. Regulatory/platform changes -- policy shifts that affect the ecosystem

If at L0-L1 (no competitors.md), ask the user:

I need to understand your market before scanning.

1. What does your product do in one sentence?
2. Who are your top 3 competitors? (names or URLs)
3. What category would a customer search for?

Cap at 3 questions. Use answers to build the query.

Phase 3: Run /last30days

Invoke the Skill tool:

Skill: last30days
Args: "{research query from Phase 2}"

The /last30days skill searches across Reddit, X/Twitter, YouTube, Hacker News, and web sources for the last 30 days of activity.

Fallback if /last30days is unavailable:

  1. Use WebSearch tool directly with the research query.
  2. If WebSearch is unavailable, use Exa MCP for web research.
  3. If no web research is available at all, proceed with user knowledge only

and mark every finding as source: user-reported in the output.

  1. Note the limitation: "Landscape based on provided information, not live

research. Verify before making strategic decisions."

Phase 4: Validate with User

Present 3-5 targeted questions using AskUserQuestion. Cap at 5 total -- do not interrogate. Prioritize questions about contradictions and surprises.

Question priority order:

  1. Contradictions -- where research contradicts existing brand/ files

"Research shows {Competitor X} now offers free tier. Your competitors.md says they're premium-only. Which is current?"

  1. Surprises -- findings that might change strategy

"Did you know {Competitor Y} raised $50M last month? Does this change your positioning approach?"

  1. Gaps -- things research couldn't determine

"I couldn't verify whether {claim from positioning.md} is still unique to you. Do any competitors now offer this?"

  1. Scope -- if research surfaced new segments

"Research surfaced {new player/category}. Should I include them in the landscape?"

  1. Blacklist candidates -- potential claims to block

"Your positioning says 'only solution that does X.' Research found 2 competitors now do X. Should I blacklist this claim?"

If there are no contradictions or surprises, reduce to 3 questions max. Never ask questions you can answer from the research.

Phase 5: Synthesize into landscape.md

Write ./brand/landscape.md following the output format below. Every section must be populated -- use "No data available" with a reason if a section cannot be filled. See references/landscape-schema.md for the full schema with examples of each section.

Phase 6: Cross-Reference

After writing landscape.md, compare it against other brand/ files:

  1. vs competitors.md -- flag competitors that have changed positioning,

pricing, or status since competitors.md was written.

  1. vs positioning.md -- flag positioning claims that are now blacklisted

or weakened by market shifts.

  1. vs audience.md -- flag audience assumptions that market shifts may

have invalidated.

Present contradictions to the user:

CROSS-REFERENCE: BRAND FILE CONTRADICTIONS

  competitors.md (updated 45 days ago)
  ├── {Competitor X} pricing changed: was $29/mo, now free tier
  └── New entrant {Y} not listed

  positioning.md (update
Compartilhar X LinkedIn