Skip to content

feat: add real-sky-poster skill#313

Merged
WalksWithASwagger merged 1 commit into
mainfrom
feature/skill-real-sky-poster
Jul 12, 2026
Merged

feat: add real-sky-poster skill#313
WalksWithASwagger merged 1 commit into
mainfrom
feature/skill-real-sky-poster

Conversation

@WalksWithASwagger

Copy link
Copy Markdown
Owner

Draft — per skill-smith, skills go through review and are never merged directly.

What

Codifies the pipeline that replaced the invented constellations in the Futureproof launch artwork with the real sky over Vancouver on opening night. Shipped as futureproof-festival#644.

The premise

You cannot generate your way to this. An image model asked for "accurate constellations" produces a fresh set of hallucinated star patterns — the same failure in a new arrangement. Star positions are exact data. The skill ports the data instead of asking a model to imagine it.

Same lesson as the optical-illusion work: when the output must be correct, compute it, don't generate it.

Four stages, and the order is the trick

plate    wipe the invented sky, keep the aurora and the brushwork
upscale  4x the CLEAN PLATE with a local ESRGAN (free, on-device)
render   draw the real stars at target scale — natively, never upscaled
kit      extend the sky for tall formats, set type, export every size

Upscale the plate, then redraw. Upscaling a finished poster gives 4x-blurry stars; this gives 4x sharp ones. It also means the upscaler never sees a fabricated dot it might sharpen into an artifact.

Tall formats grow the canvas upward rather than centre-cropping — cropping a 16:9 painting to a square throws away the left and right edges, which is exactly where the constellations are. Upward is toward the zenith, which is where the figures that couldn't fit the wide frame actually were. The square gains real sky.

Success criteria (the skill opens with these, not with steps)

  • The sky is real: catalogue stars, true magnitudes, true shape and rotation
  • The astronomy gate passes
  • Nothing below the horizon is drawn
  • The artwork is untouched (disturbance() in the low hundreds)
  • Stars are native at every size
  • No crop discards constellations
  • Copy is verbatim, traceable to a source file

Smoke test — offline, no image, no GPU, no network, no spend

python3 tests/skills/real-sky-poster/test_sky.py

Standard library only, sub-second. It attacks the one claim that matters — these are the real stars in the real places — rather than exercising plumbing:

  • Polaris altitude == observer latitude, at four latitudes including the equator. True anywhere on Earth; first thing to break if the reduction is wrong.
  • Polaris invisible from Sydney. A pipeline that will cheerfully draw an invisible constellation is the exact bug this skill exists to fix.
  • Gnomonic projection preserves true proportions, on a relative tolerance — the projection deliberately stretches a few percent away from the tangent point, which is what keeps lines straight and rotation true. (My first version of this test asserted an absolute tolerance and failed; the test was wrong, not the code.)
  • The Futureproof night reproduces — including Orion not yet risen and Pegasus behind the viewer. Both were deliberately left off the poster; this proves they had to be.

Honest about its limits

Star shape and rotation are computed. Placement on the canvas is composed to fit the art. The skill says so in as many words rather than overclaiming — and tells the agent to say so too.

Boundary

Ships code and geometry only, per rafiki's tool-only rule. Profiles reference artwork by path and never embed it; ESRGAN weights and fonts are fetched, not committed. ruff check . passes repo-wide.

Review, please

  • Are the auto-trigger phrases right? "the constellations are wrong/fake/bullshit" is deliberately literal — it's how this actually got asked.
  • Is profiles/ the right shape for generalising to other posters, or over-engineered for a thing that may only ever run on one?
  • tests/skills/ is a new convention in this repo — worth keeping?

🤖 Generated with Claude Code

https://claude.ai/code/session_014TEQRB683SJV2zYBYoLFBK

Codifies the pipeline that replaced the invented constellations in the
Futureproof launch artwork with the real sky over Vancouver on opening night
(WalksWithASwagger/futureproof-festival#644).

The premise is that you cannot generate your way to this. An image model asked
for "accurate constellations" produces a fresh set of hallucinated star
patterns -- the same failure in a new arrangement. Star positions are exact
data, so the skill ports the data instead of asking a model to imagine it.

Four stages, and the order is the trick:

  plate    wipe the invented sky, keep the aurora and the brushwork
  upscale  4x the CLEAN PLATE with a local ESRGAN (free, on-device)
  render   draw the real stars at target scale -- natively, never upscaled
  kit      extend the sky for tall formats, set type, export every size

Upscaling the plate and redrawing gives sharp stars at any size; upscaling a
finished poster gives blurry ones. Tall formats grow the canvas upward rather
than centre-cropping, because cropping a 16:9 painting to a square throws away
the left and right edges -- exactly where the constellations are. Upward is
toward the zenith, which is where the figures that could not fit the wide frame
actually were.

Astronomy is standard-library only so it can be proven with no image, no GPU and
no network. The smoke test attacks the one claim that matters -- that these are
the real stars in the real places -- rather than exercising plumbing:

  - Polaris altitude equals observer latitude, at four latitudes
  - Polaris is invisible from Sydney (below the horizon means below the horizon)
  - the gnomonic projection preserves true angular proportions
  - the Futureproof night reproduces, including Orion not yet risen and Pegasus
    behind the viewer -- both deliberately left off the poster

Honest about its limits: star shape and rotation are computed, but placement on
the canvas is composed to fit the art, and the skill says so rather than
overclaiming.

Keeps the public-repo boundary: ships code and geometry only. Profiles reference
artwork by path and never embed it; weights and fonts are fetched, not committed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014TEQRB683SJV2zYBYoLFBK
@github-actions

Copy link
Copy Markdown

Agentic Traceability

Verdict: needs-human

Checks:

  • Linked GitHub issue present: no
  • Branch naming matches contract: no
  • PR title prefix matches contract: yes
  • PR body includes Linear line when required: yes
  • Linear keys found: none

Next actions:

  • Add Closes #<issue> or Refs #<issue> to the PR body so GitHub remains the execution truth.
  • Use codex/issue-<number>-<slug> for GitHub-only work outside the active Linear delivery lane.

@github-actions github-actions Bot added the needs-human Agentic automation stopped for human judgment. label Jul 12, 2026
@WalksWithASwagger WalksWithASwagger marked this pull request as ready for review July 12, 2026 06:44
@WalksWithASwagger WalksWithASwagger merged commit 3b7bfb6 into main Jul 12, 2026
5 checks passed
@WalksWithASwagger WalksWithASwagger deleted the feature/skill-real-sky-poster branch July 12, 2026 06:44
@github-actions

Copy link
Copy Markdown

Agentic Traceability

Verdict: needs-human

Checks:

  • Linked GitHub issue present: no
  • Branch naming matches contract: no
  • PR title prefix matches contract: yes
  • PR body includes Linear line when required: yes
  • Linear keys found: none

Next actions:

  • Add Closes #<issue> or Refs #<issue> to the PR body so GitHub remains the execution truth.
  • Use codex/issue-<number>-<slug> for GitHub-only work outside the active Linear delivery lane.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-human Agentic automation stopped for human judgment.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant