2 Commits
Author SHA1 Message Date
Claude 433bcca8a2 Stop publishing the repo as a plugin marketplace, and refresh the run skill
Three small things.

Removed `.claude-plugin/marketplace.json`. It is the file `/plugin
marketplace add` reads, so without it this repo no longer offers itself as a
marketplace — which is the odd part of an Angular app carrying one. The
caveman plugin's own files stay, so it can be listed from a marketplace of its
own later; only the listing is gone.

That left four documents asserting an install path that no longer exists,
including a README section handing out `/plugin marketplace add` and
`/plugin install` commands that would now fail. All four now say what is
actually true. `.junie/plans/nasa-star-map.md` still describes the repo as
containing only a marketplace, and is left alone: it records what was here
before the app was written, and is not a claim about the present.

The run skill's numbers had drifted a release behind — 496 tests in 28 files
against a real 527 in 31, and a build timed at 9s that now takes 12. Measured
rather than guessed. The pinned Playwright version it names was correct.

It also gains the Pages build, which is not a plain `npm run build`: the base
href and the 404.html copy are both required for a project site, and the
artifact root is `dist/star-map/browser` rather than its parent. Plus the
matching gotcha, since a Pages build served at `/` looks broken in a way that
tells you nothing about whether it would work.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WaySiNst4HhDXBHnMy8p5G
2026-08-07 14:02:12 +00:00
Claude c5ec752961 Give the repository a way to actually run itself
Nothing in the repo explains how to launch this app in a headless container, and three separate
things stop it from starting — none of them discoverable without hitting each in turn.

The container's default node is v22.22.2, one patch below the floor `engines` declares. A
satisfying build sits at /opt/node (v22.23.2), but PATH finds /opt/node22 first, and the names
invert what you would guess. `ng serve` reports only the version and exits.

The pinned Playwright wants a Chromium revision this image does not carry, under a directory
layout the older build does not use, so `npm run e2e` cannot launch a browser at all until the
expected path is shimmed. Downloads are blocked, so `playwright install` is not the answer.

And the scene is software-rasterized here: entering a system takes a camera flight that has to be
waited on rather than slept through, a single canvas click lands before picking is wired, and a
screenshot taken the moment a DOM assertion passes catches a half-drawn frame.

driver.mjs handles all of it — picks a node satisfying `engines`, owns the dev server, drives the
camera to each scale, and either screenshots or dumps the HUD's labels as JSON for checking a
change without eyeballing a picture. SKILL.md documents only commands that were run here, and
records the traps in Gotchas, including that no `pkill -f` is safe for stopping the server: it
matches your own command line and kills the shell.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WaySiNst4HhDXBHnMy8p5G
2026-08-05 15:45:03 +00:00