Claude-skill-registry aoc

Solve Advent of Code puzzles, algorithm challenges, and competitive programming problems. Activate when user provides AoC problem context/input, mentions solving puzzles/challenges, asks about algorithm selection (BFS, DFS, DP, etc.), or needs help with parsing structured input.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/aoc" ~/.claude/skills/majiayu000-claude-skill-registry-aoc && rm -rf "$T"
manifest: skills/data/aoc/SKILL.md
source content

Advent of Code Solver

Language-agnostic problem-solving with TDD and correctness-first approach.

Workflow

1. READ      → Study problem + examples (examples are your spec)
2. PARSE     → Extract data structures from input
3. TEST      → Write tests from example input/output
4. IMPLEMENT → Minimal code to pass
5. RUN       → Execute on real input
6. ADAPT     → Refactor for Part 2

Solution Architecture

parse(input) → data structure
part1(data)  → answer
part2(data)  → answer

Parse once. Solve both parts. Test each function independently.

Algorithm Selection

ScenarioAlgorithm
Unweighted shortest pathBFS
Path existence / exhaustiveDFS
Weighted shortest pathDijkstra
Weighted + good heuristicA*
"After N iterations..." (huge N)Cycle detection
"Find minimum X such that..."Binary search
"Count ways..." / "Min/max..."Dynamic programming
Connected regionsFlood fill

Deep dive: See algorithms.md

Input Patterns

FormatApproach
Numbers in textRegex
-?\d+
Grid of chars2D array or dict by coords
Blank-line groupsSplit on
\n\n
first
Key-value pairsParse into map/dict
Instructions/opcodesPattern match each line

Grids: Use

(row, col)
with row↓. Sparse dict for infinite/sparse grids. Directions:
UP=(-1,0), DOWN=(1,0), LEFT=(0,-1), RIGHT=(0,1)

Deep dive: See parsing.md

Part 2 Patterns

  1. Scale up → Optimize algorithm
  2. Add dimensions → 2D → 3D/4D
  3. Many iterations → Find cycle, skip ahead
  4. Reverse question → "Find X" → "Given X, find Y"
  5. Add constraints → New rules or edge cases

Debugging

  • Print intermediate state at each step
  • Compare with example walkthrough
  • Add assertions for every assumption
  • Test parsing separately from logic
  • Binary search on input size to isolate failures

Complexity Targets

Input SizeTarget
n ≤ 20O(2^n) OK
n ≤ 500O(n³) OK
n ≤ 10,000O(n²) OK
n ≤ 1,000,000O(n log n)
n > 1,000,000O(n) or O(log n)

Research Tools

# gh search code for algorithm implementations
gh search code "heapq.heappush" --language=python   # Dijkstra/priority queue
gh search code "collections.deque" --language=python # BFS patterns
gh search code "fn dijkstra" --language=rust

References

  • algorithms.md - Graph traversal, DP, cycle detection, search
  • parsing.md - Input formats, grids, coordinates, hex grids
  • reference.md - Data structures, optimization, anti-patterns