AgentSkillsCN

acdc-badge-sniper

根据团队当前的构建情况与限制条件,规划并排序北极云开发者挑战(ACDC)的徽章与评审类别。适用于被要求将项目映射至 ACDC 徽章/奖项、选择高 ROI 目标、制定限时行动计划、证据清单、依赖/风险标记,以及简短的评审答辩脚本时使用;必须从 ACDC 官方网站获取当前徽章/类别要求。

SKILL.md
--- frontmatter
name: acdc-badge-sniper
description: 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.

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:

  1. Load data/teams.json and present the full list of team names.
  2. Ask the user to confirm the team name to avoid typos.
  3. Ask whether to save the selection to data/team_profile.json.
  4. If the user declines saving, keep the team name in the current response context only.

CRITICAL: Data Source URL

code
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.jsondata/metadata.json
  • {ACDC_BASE_URL}claims.jsondata/claims.json
  • {ACDC_BASE_URL}teams.jsondata/teams.json
  • {ACDC_BASE_URL}rankings.jsondata/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

  1. Sync blob cache files (metadata/claims/teams/rankings) and parse badges/categories.
  2. Load team state and already-claimed badges (if available); ask for missing fields.
  3. Map project features to badges/categories and note gaps or missing evidence.
  4. 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
  5. Exclude already-claimed badges/categories from recommendations unless the user asks to revisit them.
  6. Rank top 5 badge targets and top 1-2 judge categories.
  7. 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
  8. Provide a single "Next 60 minutes" task list.

Output template

Use this structure in responses:

  1. Snapshot
  • Stack, built now, time left, constraints
  • Team name (if known)
  • Already claimed badges/categories (from rankings)
  • Pending claims (if any)
  1. Top badge targets (ranked)
  • Badge: <name>
    • Why match
    • Missing
    • Checklist (time-boxed)
    • Evidence to collect
    • Dependencies/risks
    • Judge pitch (30-60 sec)
  1. Top judge categories (ranked)
  • Category: <name>
    • Why match
    • Missing
    • Checklist (time-boxed)
    • Evidence to collect
    • Dependencies/risks
    • Judge pitch (30-60 sec)
  1. 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:

PlatformFileUsage
Claude CodeSKILL.mdNative skill format (this file)
VS Code Copilotcopilot-instructions.mdCopy to .github/copilot-instructions.md or paste into Copilot Chat
ChatGPT / OpenAIopenai-system-prompt.mdUse as system prompt or Custom GPT instructions