One command for Claude Code, Cursor, Codex, Windsurf and other agents — installs from the upstream repo (current HEAD; it ships 25 skills — pick competitive-landscape when prompted).
Drop the mirrored SKILL.md into your skills directory. Global (all projects):
Or scoped to the current project:
Companion files (3) are hosted on this domain too, so relative links resolve. For the full offline bundle use the CLI or Git tab.
The skill is mirrored as plain markdown — tell your agent:
Or have the skills CLI generate a one-shot prompt (pipe it straight into your agent):
Or pull the raw file into a terminal session:
Copy the skill directory with all companion files straight from GitHub:
Skill contents
Preamble (run first)
_TEL_TIER=$(cat ~/.superstack/config.json 2>/dev/null | grep -o '"telemetryTier": *"[^"]*"' | head -1 | sed 's/.*"telemetryTier": *"//;s/"$//' || echo "anonymous")
_TEL_TIER="${_TEL_TIER:-anonymous}"
_TEL_PROMPTED=$([ -f ~/.superstack/.telemetry-prompted ] && echo "yes" || echo "no")
_TEL_START=$(date +%s)
_SESSION_ID="$$-$(date +%s)"
mkdir -p ~/.superstack
echo "TELEMETRY: $_TEL_TIER"
echo "TEL_PROMPTED: $_TEL_PROMPTED"
if [ "$_TEL_TIER" != "off" ]; then
_TEL_EVENT='{"skill":"competitive-landscape","phase":"idea","event":"started","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'"}'
echo "$_TEL_EVENT" >> ~/.superstack/telemetry.jsonl 2>/dev/null || true
_CONVEX_URL=$(cat ~/.superstack/config.json 2>/dev/null | grep -o '"convexUrl":"[^"]*"' | head -1 | cut -d'"' -f4 || echo "")
[ -n "$_CONVEX_URL" ] && curl -s -X POST "$_CONVEX_URL/api/mutation" -H "Content-Type: application/json" -d '{"path":"telemetry:track","args":{"skill":"competitive-landscape","phase":"idea","status":"success","version":"0.2.0","platform":"'$(uname -s)-$(uname -m)'","timestamp":'$(date +%s)000'}}' >/dev/null 2>&1 &
true
fi
If TEL_PROMPTED is no: Before starting the skill workflow, ask the user about telemetry.
Use AskUserQuestion:
Help superstack get better! We track which skills get used and how long they take — no code, no file paths, no PII. Change anytime in
~/.superstack/config.json.
Options:
- A) Sure, help superstack improve (anonymous)
- B) No thanks
If A: run this bash:
echo '{"telemetryTier":"anonymous"}' > ~/.superstack/config.json
_TEL_TIER="anonymous"
touch ~/.superstack/.telemetry-prompted
If B: run this bash:
echo '{"telemetryTier":"off"}' > ~/.superstack/config.json
_TEL_TIER="off"
touch ~/.superstack/.telemetry-prompted
This only happens once. If TEL_PROMPTED is yes, skip this entirely and proceed to the skill workflow.
Wrong skill? See SKILL_ROUTER.md for all available skills.
Competitive Landscape
Overview
Map every relevant competitor, substitute, and adjacent project for a given crypto product idea. Produce a landscape matrix showing where the opportunities and dangers are.
Workflow
- Check for
.superstack/idea-context.mdin the workspace. If found, use the chosen idea’s domain. If not, ask the user what space to analyze. - Read references/landscape-mapping.md for the mapping methodology.
- Search the solana-new ecosystem catalogs as described in references/ecosystem-catalog-guide.md.
- Assess defensibility using references/moat-analysis.md.
- Do fresh web research: crypto Twitter, GitHub, DeFiLlama, app directories.
- Produce a landscape HTML artifact with the full competitive matrix.
Non-Negotiables
- Always search the solana-new catalogs first — if a tool already exists, the user needs to know.
- Include dead/failed projects, not just live ones. Failures reveal landmines.
- Distinguish between “competitors” (same problem, same user) and “substitutes” (same problem, different approach).
- Include at least one non-crypto substitute if applicable.
- Do not declare “no competition” unless you’ve exhausted all search paths.
- Rate crowdedness honestly: empty / sparse / moderate / crowded / saturated.
- Always write a local HTML artifact.
Phase Handoff
This skill is Phase 1 (Idea) in the Idea → Build → Launch journey. After mapping the landscape:
- Write/update
.superstack/idea-context.md(create if missing) with alandscapefield containing:direct_competitors: array of { name, url, status, strength, weakness }substitutes: array of { name, approach, why_users_stay }dead_projects: array of { name, why_failed }crowdedness: “empty” | “sparse” | “moderate” | “crowded” | “saturated”moat_type: identified moat categorydifferentiation: recommended angle
- See
../../../data/specs/phase-handoff.mdfor the full JSON contract.
Quick Start
# Ask about competitors for your specific idea:
# "Who are my competitors for agent payments on Solana?"
# "Map the competitive landscape for DeFi lending"
# "What exists in the Solana staking space?"
# The skill will search:
# - 106 repos in cli/data/clonable-repos.json
# - 77 skills in cli/data/solana-skills.json
# - 36 MCPs in cli/data/solana-mcps.json
# - DefiLlama, GitHub, and crypto Twitter
Decision Points
- Saturated market? If crowdedness = “saturated” (>5 direct competitors), look for underserved angle or niche.
- Which data sources? Use DefiLlama for TVL/protocol data. Use GitHub for development activity. Use Twitter/X for community sentiment.
- Dead project found? Check WHY it died — technical failure, market timing, or team issues. The idea might still be valid.
- Hackathon projects? If the user wants to search 6,000+ Solana hackathon submissions for similar projects or winner patterns, suggest
/colosseum-copilot. Requires a free PAT — only mention if the user asks or opts in.
Resources
references/
Telemetry (run last)
After the skill workflow completes (success, error, or abort), log the telemetry event.
Determine the outcome from the workflow result: success if completed normally, error
if it failed, abort if the user interrupted.
Run this bash:
_TEL_END=$(date +%s)
_TEL_DUR=$(( _TEL_END - ${_TEL_START:-$_TEL_END} ))
_TEL_TIER=$(cat ~/.superstack/config.json 2>/dev/null | grep -o '"telemetryTier": *"[^"]*"' | head -1 | sed 's/.*"telemetryTier": *"//;s/"$//' || echo "anonymous")
if [ "$_TEL_TIER" != "off" ]; then
echo '{"skill":"competitive-landscape","phase":"idea","event":"completed","outcome":"OUTCOME","duration_s":"'"$_TEL_DUR"'","session":"'"$_SESSION_ID"'","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","platform":"'$(uname -s)-$(uname -m)'"}' >> ~/.superstack/telemetry.jsonl 2>/dev/null || true
true
fi
Replace OUTCOME with success/error/abort based on the workflow result.