ACDC Badge Sniper
Beginner help
This skill turns the ACDC badge list into an action plan for your team.
What it does:
- Pulls the latest ACDC data (badges, teams, claims, rankings) into local cache files.
- Matches your project to the best badges and judge categories.
- Gives a short, time-boxed checklist plus evidence to collect.
What you need to provide:
- Your team name (pick from the list during onboarding).
- What you have built so far (2-6 bullets).
- How much time you have left.
- Any constraints (no admin, no external APIs, no server changes, etc.).
Output you will get:
- Top 5 badge targets and top 1-2 judge categories.
- For each target: why it fits, what is missing, checklist, evidence, risks, judge pitch.
- A single “Next 60 minutes” action list.
Quick intake
Ask for missing inputs before producing a plan:
- Team stack (M365, Power Platform, Azure, Fabric, AI/agents, DevOps, Minecraft, etc.)
- What is built now (bullets) and what is feasible next
- Time left or time-box (next 1-3 hours, today, rest of hackathon)
- Constraints (no admin, no internet, no server changes, etc.)
Onboarding flow (team selection)
When the user has not specified a team name yet:
- Load
data/teams.json and present the full list of team names.
- Ask the user to confirm the team name to avoid typos.
- Ask whether to save the selection to
data/team_profile.json.
- If the user declines saving, keep the team name in the current response context only.
CRITICAL: Data Source URL
ACDC_BASE_URL = https://stacdc2026.blob.core.windows.net/acdc/
IMPORTANT: Use this URL exactly as written - do not modify the subdomain stacdc2026.
Required data sync (hackathon mode)
At the start of each run, fetch the latest data from the base URL above and save into the matching cache files:
{ACDC_BASE_URL}metadata.json → data/metadata.json
{ACDC_BASE_URL}claims.json → data/claims.json
{ACDC_BASE_URL}teams.json → data/teams.json
{ACDC_BASE_URL}rankings.json → data/rankings.json
If live fetch fails, ask whether to proceed with the cached copies. If requirements are ambiguous, quote the exact wording (short quotes) and explain a safe interpretation.
Blob cache format
These files use the blob service envelope: { "meta": {...}, "type": "...", "data": {...} }.
Key fields to use:
- metadata.json:
data.badges[] with id, title, description, category, score, visible
- claims.json:
data.claims[] with badgeId, teamId, status, timestamp
- teams.json:
data.teams[] with id, name, shortName
- rankings.json:
data.rankings[] with badgeId, teamId, rank, isDraft, timestamp
Team state (persistent)
Track team identity and claimed badges using these files:
data/team_profile.json for team metadata (name, members, stack, constraints, notes).
data/badges_acquired.json for badges already claimed.
data/teams.json for the official team list (name lookup/validation).
If the files are missing, ask the user for the minimal fields and create them on request. Only update these files when the user explicitly asks to save changes.
badges_acquired.json can be regenerated from rankings/metadata at any time.
Suggested shapes:
- team_profile.json:
{ "team_id": "<string>", "team_name": "<string>", "members": ["<string>"], "stack": ["<string>"], "constraints": ["<string>"], "notes": "<string>" }
- badges_acquired.json:
{ "team_id": "<string>", "badge_ids": [<number>], "badge_titles": ["<string>"], "updated_at": "<iso8601>" }
When data/teams.json exists, use it to validate or suggest the team name and avoid typos.
Scoring and ranking
- If
config.yml exists, use its weights to rank targets.
- Default formula:
score = fit*w_fit + speed*w_speed + impact*w_impact - risk*w_risk.
- Prefer fast wins early, but always include at least one "judge-magnet" category aligned to the project's strongest theme.
Workflow
- Sync blob cache files (metadata/claims/teams/rankings) and parse badges/categories.
- Load team state and already-claimed badges (if available); ask for missing fields.
- Map project features to badges/categories and note gaps or missing evidence.
- Determine already-claimed badges for the selected team by joining:
- rankings.json (
data.rankings[]) filtered by teamId and isDraft == false
- metadata.json (
data.badges[]) by id == badgeId
- Optionally note pending claims from claims.json (
data.claims[]) by teamId and status
- Exclude already-claimed badges/categories from recommendations unless the user asks to revisit them.
- Rank top 5 badge targets and top 1-2 judge categories.
- For each target, provide:
- Why it matches
- What is missing (if anything)
- Step-by-step checklist
- Evidence to collect (demo steps, screenshots, repo notes, links, write-up bullets)
- Dependencies and risks (admin access, approvals, data, settings)
- 30-60 second judge pitch script
- Provide a single "Next 60 minutes" task list.
Output template
Use this structure in responses:
- Snapshot
- Stack, built now, time left, constraints
- Team name (if known)
- Already claimed badges/categories (from rankings)
- Pending claims (if any)
- Top badge targets (ranked)
- Badge:
- Why match
- Missing
- Checklist (time-boxed)
- Evidence to collect
- Dependencies/risks
- Judge pitch (30-60 sec)
- Top judge categories (ranked)
- Category:
- Why match
- Missing
- Checklist (time-boxed)
- Evidence to collect
- Dependencies/risks
- Judge pitch (30-60 sec)
- Next 60 minutes
- Bullet list of concrete actions
Guardrails
- Do not suggest cheating or misleading evidence.
- Do not auto-submit or auto-post to social media.
- Keep guidance aligned with hackathon spirit and rules.
Cross-platform compatibility
This skill is available in multiple formats:
| Platform |
File |
Usage |
| Claude Code |
SKILL.md |
Native skill format (this file) |
| VS Code Copilot |
copilot-instructions.md |
Copy to .github/copilot-instructions.md or paste into Copilot Chat |
| ChatGPT / OpenAI |
openai-system-prompt.md |
Use as system prompt or Custom GPT instructions |
Source: puzzlepart/acdc-26 — distributed by TomeVault.
1---2name: acdc-badge-sniper3description: Plan and rank Arctic Cloud Developer Challenge (ACDC) badges and judge categories based on a team's current build and constraints. Use when asked to map a project to ACDC badges/awards, choose high-ROI targets, produce time-boxed action plans, evidence checklists, dependency/risk flags, and short judge-pitch scripts; must fetch the current badge/category requirements from the official ACDC site. Use when this capability is needed.4---56# ACDC Badge Sniper78## Beginner help910This skill turns the ACDC badge list into an action plan for your team.1112What it does:13- Pulls the latest ACDC data (badges, teams, claims, rankings) into local cache files.14- Matches your project to the best badges and judge categories.15- Gives a short, time-boxed checklist plus evidence to collect.1617What you need to provide:18- Your team name (pick from the list during onboarding).19- What you have built so far (2-6 bullets).20- How much time you have left.21- Any constraints (no admin, no external APIs, no server changes, etc.).2223Output you will get:24- Top 5 badge targets and top 1-2 judge categories.25- For each target: why it fits, what is missing, checklist, evidence, risks, judge pitch.26- A single “Next 60 minutes” action list.2728## Quick intake2930Ask for missing inputs before producing a plan:31- Team stack (M365, Power Platform, Azure, Fabric, AI/agents, DevOps, Minecraft, etc.)32- What is built now (bullets) and what is feasible next33- Time left or time-box (next 1-3 hours, today, rest of hackathon)34- Constraints (no admin, no internet, no server changes, etc.)3536## Onboarding flow (team selection)3738When the user has not specified a team name yet:391. Load `data/teams.json` and present the full list of team names.402. Ask the user to confirm the team name to avoid typos.413. Ask whether to save the selection to `data/team_profile.json`.424. If the user declines saving, keep the team name in the current response context only.4344## CRITICAL: Data Source URL4546```47ACDC_BASE_URL = https://stacdc2026.blob.core.windows.net/acdc/48```4950**IMPORTANT**: Use this URL exactly as written - do not modify the subdomain `stacdc2026`.5152## Required data sync (hackathon mode)5354At the start of each run, fetch the latest data from the base URL above and save into the matching cache files:55- `{ACDC_BASE_URL}metadata.json` → `data/metadata.json`56- `{ACDC_BASE_URL}claims.json` → `data/claims.json`57- `{ACDC_BASE_URL}teams.json` → `data/teams.json`58- `{ACDC_BASE_URL}rankings.json` → `data/rankings.json`5960If live fetch fails, ask whether to proceed with the cached copies. If requirements are ambiguous, quote the exact wording (short quotes) and explain a safe interpretation.6162## Blob cache format6364These files use the blob service envelope: `{ "meta": {...}, "type": "...", "data": {...} }`.65Key fields to use:66- metadata.json: `data.badges[]` with `id`, `title`, `description`, `category`, `score`, `visible`67- claims.json: `data.claims[]` with `badgeId`, `teamId`, `status`, `timestamp`68- teams.json: `data.teams[]` with `id`, `name`, `shortName`69- rankings.json: `data.rankings[]` with `badgeId`, `teamId`, `rank`, `isDraft`, `timestamp`7071## Team state (persistent)7273Track team identity and claimed badges using these files:74- `data/team_profile.json` for team metadata (name, members, stack, constraints, notes).75- `data/badges_acquired.json` for badges already claimed.76- `data/teams.json` for the official team list (name lookup/validation).7778If the files are missing, ask the user for the minimal fields and create them on request. Only update these files when the user explicitly asks to save changes.79`badges_acquired.json` can be regenerated from rankings/metadata at any time.8081Suggested shapes:82- team_profile.json: `{ "team_id": "<string>", "team_name": "<string>", "members": ["<string>"], "stack": ["<string>"], "constraints": ["<string>"], "notes": "<string>" }`83- badges_acquired.json: `{ "team_id": "<string>", "badge_ids": [<number>], "badge_titles": ["<string>"], "updated_at": "<iso8601>" }`8485When `data/teams.json` exists, use it to validate or suggest the team name and avoid typos.8687## Scoring and ranking8889- If `config.yml` exists, use its weights to rank targets.90- Default formula: `score = fit*w_fit + speed*w_speed + impact*w_impact - risk*w_risk`.91- Prefer fast wins early, but always include at least one "judge-magnet" category aligned to the project's strongest theme.9293## Workflow94951. Sync blob cache files (metadata/claims/teams/rankings) and parse badges/categories.962. Load team state and already-claimed badges (if available); ask for missing fields.973. Map project features to badges/categories and note gaps or missing evidence.984. Determine already-claimed badges for the selected team by joining:99 - rankings.json (`data.rankings[]`) filtered by `teamId` and `isDraft == false`100 - metadata.json (`data.badges[]`) by `id == badgeId`101 - Optionally note pending claims from claims.json (`data.claims[]`) by `teamId` and `status`1025. Exclude already-claimed badges/categories from recommendations unless the user asks to revisit them.1036. Rank top 5 badge targets and top 1-2 judge categories.1044. For each target, provide:105 - Why it matches106 - What is missing (if anything)107 - Step-by-step checklist108 - Evidence to collect (demo steps, screenshots, repo notes, links, write-up bullets)109 - Dependencies and risks (admin access, approvals, data, settings)110 - 30-60 second judge pitch script1115. Provide a single "Next 60 minutes" task list.112113## Output template114115Use this structure in responses:1161171) Snapshot118- Stack, built now, time left, constraints119- Team name (if known)120- Already claimed badges/categories (from rankings)121- Pending claims (if any)1221232) Top badge targets (ranked)124- Badge: <name>125 - Why match126 - Missing127 - Checklist (time-boxed)128 - Evidence to collect129 - Dependencies/risks130 - Judge pitch (30-60 sec)1311323) Top judge categories (ranked)133- Category: <name>134 - Why match135 - Missing136 - Checklist (time-boxed)137 - Evidence to collect138 - Dependencies/risks139 - Judge pitch (30-60 sec)1401414) Next 60 minutes142- Bullet list of concrete actions143144## Guardrails145146- Do not suggest cheating or misleading evidence.147- Do not auto-submit or auto-post to social media.148- Keep guidance aligned with hackathon spirit and rules.149150## Cross-platform compatibility151152This skill is available in multiple formats:153154| Platform | File | Usage |155|----------|------|-------|156| Claude Code | `SKILL.md` | Native skill format (this file) |157| VS Code Copilot | `copilot-instructions.md` | Copy to `.github/copilot-instructions.md` or paste into Copilot Chat |158| ChatGPT / OpenAI | `openai-system-prompt.md` | Use as system prompt or Custom GPT instructions |159160---161> Source: [puzzlepart/acdc-26](https://github.com/puzzlepart/acdc-26) — distributed by [TomeVault](https://tomevault.io).162<!-- tomevault:4.0:skill_md:2026-06-19 -->