01CONFIGURE
Loading live contribution data…
Faint circles around towers. Hide them if the graph looks busy.
The workflow generates both. Your README swaps them with <picture>.
Battle stats get appended after the title.
02SHIP IT
GitHub caches README images and does not run scripts inside them. This workflow rebuilds the battle once a day from your current contribution graph and writes it to an output branch.
Save this file in the profile repository named after your username at .github/workflows/lane-defense.yml. Push it, then run it once from the Actions tab. Later runs use the schedule.
After the first workflow run, paste this into your profile README.md. The <picture> element selects the matching theme. GitHub may cache a new image for a few minutes.
Download the current render if you want a fixed image. These files do not update on their own.
Chrome and Edge can encode one full loop of this preview as a silent H.264 file. The file matches the current theme, title, seed, and range rings.
The game
Simulated, then baked
The sim runs once, at generation time. Every laser flash and every death becomes a CSS keyframe. The SVG that ships contains no code, only choreography.
Deterministic
Same grid, same level, same seed: the identical battle, in both themes. Rotation comes from the cron changing the seed each day, not from dice at view time.
Balanced to your graph
Days at contribution level 3 or 4 become towers. A sparse graph promotes level-2 days until there are at least eight; a dense one gets thinned, and enemy HP scales with the tower count. Level 1 is winnable everywhere. Level 3 is not.
Nothing to host
The workflow runs on GitHub's runners and commits to your own repo. This page is static files on GitHub Pages. Live grid previews come from grubersjoe's contributions API; when it's unreachable, previews fall back to a sample grid.
01CHECK RECENT COMMITS
Choose how many public, non-merge commits to inspect. The preview uses GitHub's public commit search without a token, so repeated loads may hit a rate limit. The scheduled workflow uses the repository token.
The first preview uses sample commit dates. Load a username for live data.
GitHub returns at most 1,000 search results.
Use an IANA timezone such as Europe/Istanbul.
The report finds the busiest window of this length.
The workflow writes both theme variants.
Only commit dates are analyzed. Commit messages are not sent to an LLM.
02ADD IT TO YOUR PROFILE
Add the workflow to your profile repository and run it once. It updates the report every day and keeps the generated SVGs on the output branch.
AWORKFLOW
Save this as .github/workflows/coding-habits.yml. The selected sample size, timezone, window, and title are included.
BREADME
After the workflow finishes, paste this into README.md.
01PICK YOUR SHELF
Search AniList, choose up to six titles, and switch layouts in the sidebar. The browser converts each cover to a data URI because GitHub blocks remote images nested inside an SVG.
AniList search. Up to six items.
02GENERATE IT
Anime lists usually change less often than activity data, so this section produces a Node script instead of a scheduled workflow. Run it again when you edit the shelf.