Skip to content

Cut all 30 Hacking Legends cards - #8

Merged
ralyodio merged 2 commits into
masterfrom
hacking-legends-full-deck
Aug 17, 2026
Merged

Cut all 30 Hacking Legends cards#8
ralyodio merged 2 commits into
masterfrom
hacking-legends-full-deck

Conversation

@ralyodio

Copy link
Copy Markdown
Contributor

Completes the Hacking Legends deck. Two commits: the 30 portraits, then the 60 published card faces.

What ran

pnpm hacking all over the full roster, on gpt-image-2:

Stage Result
portraits 27 generated, 3 already present
render 30 done, 0 failed
enhance 54 done, 6 already present, 0 failed
publish 60 faces at 500x745, 30 cards linked

/hacking-legends now shows the finished deck instead of placeholders.

Portraits are committed this time

assets/portraits/hacking-legends/ held nothing but a .gitkeep on master, because generated art lands in the gitignored assets/portraits-art/. That made the set impossible to review on GitHub, so all 30 portraits are committed here (47MB, in line with Series One's 95MB at ~2MB each).

Anything in that directory now wins over regeneration. To redraw a portrait, delete that file and re-run pnpm hacking portraits.

Bug fix: publish was not idempotent

writeArtPaths() cleared current immediately after inserting, so pre-existing front/back lines sitting after status: stopped matching the drop-check and survived alongside the newly inserted pair. Cards 1, 5 and 12 — the three from the sample run — came out with duplicate object keys. Cards with no prior art were unaffected, which is why the sample run looked fine.

Fixed by keeping current set and tracking inserts in a separate Set. Verified by re-running publish twice: 30 fronts and 30 backs both times.

Checks

  • pnpm hacking validate — passed, 30 on the roster. The 20 warnings are pre-existing draft/candidate copy status, not art.
  • pnpm build — clean, all 8 routes.

Still your call

  • The 120 stat numbers in hacking.ts are my editorial ratings, not sourced facts.
  • Likeness is approximate. gpt-image-2 draws a plausible period-accurate figure rather than a photographic match. Closer faces would mean feeding reference images to the edit endpoint.
  • 20 cards are still draft/candidate on copy.

🤖 Generated with Claude Code

ralyodio and others added 2 commits August 17, 2026 01:00
Generated with gpt-image-2 via `pnpm hacking portraits`. Committed so the
Series Two art can be reviewed on GitHub before the card faces are cut.

Sizes match the Series One convention (~1.5MB per portrait).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Runs the full pipeline over the Series Two roster: 54 enhance passes on top
of the 6 faces the sample run already produced, then publish at 500x745.
All 30 cards now carry `front`/`back` paths, so /hacking-legends shows the
finished deck instead of placeholders.

Also fixes an idempotency bug in `writeArtPaths()`. It cleared `current`
immediately after inserting, so pre-existing `front`/`back` lines sitting
after `status:` no longer matched the drop-check and survived alongside the
newly inserted pair. Cards 1, 5 and 12 -- the three from the sample run --
came out with duplicate keys. Republishing is now safe to repeat.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

ThreatCrush Security Scan

1 finding(s)

MEDIUM: 1

Severity Rule Location
MEDIUM js-credential-logged scripts/migrate.mjs:16

Snippets are redacted; ThreatCrush never prints matched credential material.

@ralyodio
ralyodio merged commit 2f70530 into master Aug 17, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant