$npx -y skills add sendaifun/solana-new --skill colosseum-copilotSearch and analyze 5,400+ Solana hackathon projects using Colosseum Copilot. Find similar projects, discover winner patterns, identify gaps, and explore ML clusters. Use when a user says "colosseum copilot", "hackathon projects", "winner patterns", "gap analysis hackathon", "simi
| 1 | ## Preamble (run first) |
| 2 | |
| 3 | ```bash |
| 4 | _TEL_TIER=$(cat ~/.superstack/config.json 2>/dev/null | grep -o '"telemetryTier": *"[^"]*"' | head -1 | sed 's/.*"telemetryTier": *"//;s/"$//' || echo "anonymous") |
| 5 | _TEL_TIER="${_TEL_TIER:-anonymous}" |
| 6 | _TEL_PROMPTED=$([ -f ~/.superstack/.telemetry-prompted ] && echo "yes" || echo "no") |
| 7 | _TEL_START=$(date +%s) |
| 8 | _SESSION_ID="$$-$(date +%s)" |
| 9 | mkdir -p ~/.superstack |
| 10 | echo "TELEMETRY: $_TEL_TIER" |
| 11 | echo "TEL_PROMPTED: $_TEL_PROMPTED" |
| 12 | if [ "$_TEL_TIER" != "off" ]; then |
| 13 | _TEL_EVENT='{"skill":"colosseum-copilot","phase":"idea","event":"started","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'"}' |
| 14 | echo "$_TEL_EVENT" >> ~/.superstack/telemetry.jsonl 2>/dev/null || true |
| 15 | _CONVEX_URL=$(cat ~/.superstack/config.json 2>/dev/null | grep -o '"convexUrl":"[^"]*"' | head -1 | cut -d'"' -f4 || echo "") |
| 16 | [ -n "$_CONVEX_URL" ] && curl -s -X POST "$_CONVEX_URL/api/mutation" -H "Content-Type: application/json" -d '{"path":"telemetry:track","args":{"skill":"colosseum-copilot","phase":"idea","status":"success","version":"0.2.0","platform":"'$(uname -s)-$(uname -m)'","timestamp":'$(date +%s)000'}}' >/dev/null 2>&1 & |
| 17 | true |
| 18 | fi |
| 19 | ``` |
| 20 | |
| 21 | If `TEL_PROMPTED` is `no`: Before starting the skill workflow, ask the user about telemetry. |
| 22 | Use AskUserQuestion: |
| 23 | |
| 24 | > Help superstack get better! We track which skills get used and how long they take — |
| 25 | > no code, no file paths, no PII. Change anytime in `~/.superstack/config.json`. |
| 26 | |
| 27 | Options: |
| 28 | - A) Sure, help superstack improve (anonymous) |
| 29 | - B) No thanks |
| 30 | |
| 31 | If A: run this bash: |
| 32 | ```bash |
| 33 | echo '{"telemetryTier":"anonymous"}' > ~/.superstack/config.json |
| 34 | _TEL_TIER="anonymous" |
| 35 | touch ~/.superstack/.telemetry-prompted |
| 36 | ``` |
| 37 | |
| 38 | If B: run this bash: |
| 39 | ```bash |
| 40 | echo '{"telemetryTier":"off"}' > ~/.superstack/config.json |
| 41 | _TEL_TIER="off" |
| 42 | touch ~/.superstack/.telemetry-prompted |
| 43 | ``` |
| 44 | |
| 45 | This only happens once. If `TEL_PROMPTED` is `yes`, skip this entirely and proceed to the skill workflow. |
| 46 | |
| 47 | > **Wrong skill?** See [SKILL_ROUTER.md](../../SKILL_ROUTER.md) for all available skills. |
| 48 | |
| 49 | # Colosseum Copilot |
| 50 | |
| 51 | ## Overview |
| 52 | |
| 53 | Search and analyze Colosseum's database of 5,400+ Solana hackathon projects. Discover what winners do differently, find similar projects to your idea, explore ML-derived clusters, and access research archives — all powered by the Colosseum Copilot API. |
| 54 | |
| 55 | ## Token Setup |
| 56 | |
| 57 | Before using this skill, check if the user has a Colosseum Copilot token configured. |
| 58 | |
| 59 | ```bash |
| 60 | _COPILOT_TOKEN="${COLOSSEUM_COPILOT_PAT:-$(cat ~/.superstack/config.json 2>/dev/null | grep -o '"copilotToken":"[^"]*"' | head -1 | cut -d'"' -f4 || echo "")}" |
| 61 | if [ -n "$_COPILOT_TOKEN" ]; then |
| 62 | echo "TOKEN_STATUS: configured" |
| 63 | else |
| 64 | echo "TOKEN_STATUS: missing" |
| 65 | fi |
| 66 | ``` |
| 67 | |
| 68 | ### If TOKEN_STATUS is "missing" |
| 69 | |
| 70 | Ask the user with AskUserQuestion: |
| 71 | |
| 72 | > **Colosseum Copilot** gives you access to 5,400+ Solana hackathon projects, winner patterns, and gap analysis. |
| 73 | > |
| 74 | > To use it, you need a free Personal Access Token from Colosseum. |
| 75 | > |
| 76 | > 1. Sign up at **https://arena.colosseum.org/copilot** |
| 77 | > 2. Copy your Personal Access Token (PAT) |
| 78 | |
| 79 | Options: |
| 80 | - A) I have a token — let me paste it |
| 81 | - B) Skip for now |
| 82 | |
| 83 | If A: Ask for the token, then save it: |
| 84 | ```bash |
| 85 | # Replace TOKEN_VALUE with the actual token the user provides |
| 86 | cat ~/.superstack/config.json 2>/dev/null | python3 -c " |
| 87 | import sys, json |
| 88 | try: |
| 89 | config = json.load(sys.stdin) |
| 90 | except: |
| 91 | config = {} |
| 92 | config['copilotToken'] = 'TOKEN_VALUE' |
| 93 | config['copilotTokenSetAt'] = '$(date -u +%Y-%m-%dT%H:%M:%SZ)' |
| 94 | config['copilotPrompted'] = True |
| 95 | print(json.dumps(config, indent=2)) |
| 96 | " > ~/.superstack/config.json.tmp && mv ~/.superstack/config.json.tmp ~/.superstack/config.json |
| 97 | echo "Token saved to ~/.superstack/config.json" |
| 98 | ``` |
| 99 | |
| 100 | Then verify: |
| 101 | ```bash |
| 102 | curl -s -H "Authorization: Bearer TOKEN_VALUE" -H "Content-Type: application/json" https://copilot.colosseum.com/api/v1/status |
| 103 | ``` |
| 104 | |
| 105 | If `{"authenticated": true}`, proceed. Otherwise, tell the user the token is invalid and ask them to check it. |
| 106 | |
| 107 | If B: Tell the user they can set it later via: |
| 108 | - `superstack copilot --token <pat>` (CLI command) |
| 109 | - Or set `COLOSSEUM_COPILOT_PAT` environment variable |
| 110 | - Or run `/colosseum-copilot` again |
| 111 | |
| 112 | Then end the skill — the remaining workflow requires a valid token. |
| 113 | |
| 114 | ### If TOKEN_STATUS is "configured" |
| 115 | |
| 116 | Verify the token is still valid: |
| 117 | ```bash |
| 118 | curl -s -H "Authorization: Bearer $_COPILOT_TOKEN" -H "Content-Type: application/json" https://copilot.colosseum.com/api/v1/status |
| 119 | ``` |
| 120 | |
| 121 | If not authenticated, tell the user their token has expired and walk them through the setup above. |
| 122 | |
| 123 | ## Workflow |
| 124 | |
| 125 | Read [references/copilot-api-guide.md](references/copilot-api-guide.md) for the full API |