# mightypancake/aoc-2025 architecture

> Architecture diagram of the GitHub repository mightypancake/aoc-2025, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mightypancake/aoc-2025
- Repository: https://github.com/mightypancake/aoc-2025

## Overview

This repository is a set of Advent of Code 2025 solutions in Goose, with scripts supporting the solve-and-check workflow. The documented path is: fetch puzzle inputs and examples, edit a day’s solution, then run it against available inputs and compare results with expected outputs. The graph shows all twelve day solution files and the shared workflow capabilities. Source excerpts were unavailable, so relationships are limited to those explicitly documented in the README.

Main entry points: [`scripts/run.sh`](https://github.com/mightypancake/aoc-2025/blob/main/scripts/run.sh) (Run and check), [`scripts/fetch.sh`](https://github.com/mightypancake/aoc-2025/blob/main/scripts/fetch.sh) (Fetch inputs), [`scripts/problem.sh`](https://github.com/mightypancake/aoc-2025/blob/main/scripts/problem.sh) (Show puzzle), [`day01/in`](https://github.com/mightypancake/aoc-2025/tree/main/day01/in) (Day inputs)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_solutions["Daily solutions"]
  node_day01["Day 01<br/>[solution.goose]"]
  node_day02["Day 02<br/>[solution.goose]"]
  node_day03["Day 03<br/>[solution.goose]"]
  node_day04["Day 04<br/>[solution.goose]"]
  node_day05["Day 05<br/>[solution.goose]"]
  node_day06["Day 06<br/>[solution.goose]"]
  node_day07["Day 07<br/>[solution.goose]"]
  node_day08["Day 08<br/>[solution.goose]"]
  node_day09["Day 09<br/>[solution.goose]"]
  node_day10["Day 10<br/>[solution.goose]"]
  node_day11["Day 11<br/>[solution.goose]"]
  node_day12["Day 12<br/>[solution.goose]"]
end

subgraph group_workflow["Solve workflow"]
  node_fetch["Fetch inputs<br/>[fetch.sh]"]
  node_problem["Show puzzle<br/>[problem.sh]"]
  node_runner["Run and check<br/>[run.sh]"]
end

subgraph group_data["Puzzle data"]
  node_inputs["Day inputs"]
  node_expected["Expected outputs"]
end

node_user(("Solver"))
node_aoc["Advent of Code"]

node_user -->|"requests inputs"| node_fetch
node_fetch -->|"fetches puzzle data"| node_aoc
node_fetch -->|"stores input and example"| node_inputs
node_user -->|"requests puzzle text"| node_problem
node_problem -->|"fetches puzzle text"| node_aoc
node_user -->|"runs a day"| node_runner
node_runner -->|"reads instances"| node_inputs
node_runner -->|"checks answers"| node_expected
node_runner -->|"runs solution"| node_day01
node_runner -->|"runs solution"| node_day02
node_runner -->|"runs solution"| node_day03
node_runner -->|"runs solution"| node_day04
node_runner -->|"runs solution"| node_day05
node_runner -->|"runs solution"| node_day06
node_runner -->|"runs solution"| node_day07
node_runner -->|"runs solution"| node_day08
node_runner -->|"runs solution"| node_day09
node_runner -->|"runs solution"| node_day10
node_runner -->|"runs solution"| node_day11
node_runner -->|"runs solution"| node_day12

click node_day01 "https://github.com/mightypancake/aoc-2025/blob/main/day01/solution.goose"
click node_day02 "https://github.com/mightypancake/aoc-2025/blob/main/day02/solution.goose"
click node_day03 "https://github.com/mightypancake/aoc-2025/blob/main/day03/solution.goose"
click node_day04 "https://github.com/mightypancake/aoc-2025/blob/main/day04/solution.goose"
click node_day05 "https://github.com/mightypancake/aoc-2025/blob/main/day05/solution.goose"
click node_day06 "https://github.com/mightypancake/aoc-2025/blob/main/day06/solution.goose"
click node_day07 "https://github.com/mightypancake/aoc-2025/blob/main/day07/solution.goose"
click node_day08 "https://github.com/mightypancake/aoc-2025/blob/main/day08/solution.goose"
click node_day09 "https://github.com/mightypancake/aoc-2025/blob/main/day09/solution.goose"
click node_day10 "https://github.com/mightypancake/aoc-2025/blob/main/day10/solution.goose"
click node_day11 "https://github.com/mightypancake/aoc-2025/blob/main/day11/solution.goose"
click node_day12 "https://github.com/mightypancake/aoc-2025/blob/main/day12/solution.goose"
click node_fetch "https://github.com/mightypancake/aoc-2025/blob/main/scripts/fetch.sh"
click node_problem "https://github.com/mightypancake/aoc-2025/blob/main/scripts/problem.sh"
click node_runner "https://github.com/mightypancake/aoc-2025/blob/main/scripts/run.sh"
click node_inputs "https://github.com/mightypancake/aoc-2025/tree/main/day01/in"
click node_expected "https://github.com/mightypancake/aoc-2025/tree/main/day01/out"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_day01,node_day02,node_day03,node_day04,node_day05,node_day06,node_day07,node_day08,node_day09,node_day10,node_day11,node_day12 toneBlue
class node_fetch,node_problem,node_runner toneAmber
class node_inputs,node_expected toneMint
class node_user,node_aoc toneIndigo
```

## Components

### Daily solutions

- [Day 01](https://github.com/mightypancake/aoc-2025/blob/main/day01/solution.goose): `day01/solution.goose`
- [Day 02](https://github.com/mightypancake/aoc-2025/blob/main/day02/solution.goose): `day02/solution.goose`
- [Day 03](https://github.com/mightypancake/aoc-2025/blob/main/day03/solution.goose): `day03/solution.goose`
- [Day 04](https://github.com/mightypancake/aoc-2025/blob/main/day04/solution.goose): `day04/solution.goose`
- [Day 05](https://github.com/mightypancake/aoc-2025/blob/main/day05/solution.goose): `day05/solution.goose`
- [Day 06](https://github.com/mightypancake/aoc-2025/blob/main/day06/solution.goose): `day06/solution.goose`
- [Day 07](https://github.com/mightypancake/aoc-2025/blob/main/day07/solution.goose): `day07/solution.goose`
- [Day 08](https://github.com/mightypancake/aoc-2025/blob/main/day08/solution.goose): `day08/solution.goose`
- [Day 09](https://github.com/mightypancake/aoc-2025/blob/main/day09/solution.goose): `day09/solution.goose`
- [Day 10](https://github.com/mightypancake/aoc-2025/blob/main/day10/solution.goose): `day10/solution.goose`
- [Day 11](https://github.com/mightypancake/aoc-2025/blob/main/day11/solution.goose): `day11/solution.goose`
- [Day 12](https://github.com/mightypancake/aoc-2025/blob/main/day12/solution.goose): `day12/solution.goose`

### Solve workflow

- [Fetch inputs](https://github.com/mightypancake/aoc-2025/blob/main/scripts/fetch.sh): `scripts/fetch.sh`
- [Show puzzle](https://github.com/mightypancake/aoc-2025/blob/main/scripts/problem.sh): `scripts/problem.sh`
- [Run and check](https://github.com/mightypancake/aoc-2025/blob/main/scripts/run.sh): `scripts/run.sh`

### Puzzle data

- [Day inputs](https://github.com/mightypancake/aoc-2025/tree/main/day01/in): `day01/in`
- [Expected outputs](https://github.com/mightypancake/aoc-2025/tree/main/day01/out): `day01/out`

### Other components

- **Solver**
- **Advent of Code**

## Connections

- Solver → Fetch inputs: requests inputs (evidence: `README.md`)
- Fetch inputs → Advent of Code: fetches puzzle data (evidence: `README.md`)
- Fetch inputs → Day inputs: stores input and example (evidence: `README.md`)
- Solver → Show puzzle: requests puzzle text (evidence: `README.md`)
- Show puzzle → Advent of Code: fetches puzzle text (evidence: `README.md`)
- Solver → Run and check: runs a day (evidence: `README.md`)
- Run and check → Day inputs: reads instances (evidence: `README.md`)
- Run and check → Expected outputs: checks answers (evidence: `README.md`)
- Run and check → Day 01: runs solution (evidence: `README.md`)
- Run and check → Day 02: runs solution (evidence: `README.md`)
- Run and check → Day 03: runs solution (evidence: `README.md`)
- Run and check → Day 04: runs solution (evidence: `README.md`)
- Run and check → Day 05: runs solution (evidence: `README.md`)
- Run and check → Day 06: runs solution (evidence: `README.md`)
- Run and check → Day 07: runs solution (evidence: `README.md`)
- Run and check → Day 08: runs solution (evidence: `README.md`)
- Run and check → Day 09: runs solution (evidence: `README.md`)
- Run and check → Day 10: runs solution (evidence: `README.md`)
- Run and check → Day 11: runs solution (evidence: `README.md`)
- Run and check → Day 12: runs solution (evidence: `README.md`)
