app
Hero Studio
Public Made by Adomby adom
The hero-image lab with a human gate: `hero-studio pose <owner/slug>` opens the studio in front of the human, posed for their package, and blocks until they click Generate, producing the provenance-stamped 2000x1250 PNG the registry's hero gate requires. The image carries the title and artwork; the exported image also bakes the type pill (top right) and full wiki slug (bottom right); the page shows the hero bare, and only the homepage marquee overlays its own dynamic info. Every hero wears its P
← Commit history
Publish 0.21.4
5 files changed
+12−6
SKILL.md+1−1@@ -568,7 +568,7 @@ Tests: `npm run test:brand` (node test/brand.mjs) runs every status, the can_edit refusal, the confirm push body, and the four provenance fields against a stub registry, so nothing here is verified by writing to a real owner's guide.-`npm run test:render` (node test/render-view.mjs) starts a real server, opens+`npm test` runs every suite, starting with `npm run test:syntax` (node --check over every shipped script, public/js included; a page script that fails to parse leaves the surface blank and compose rendering the generic mock, hero-studio#59). `npm run test:render` (node test/render-view.mjs) starts a real server, opens a surface at one width and the render view at another, and asserts the render view POSTs no state, reaches networkidle2, and that a renderer's error line is reported instead of Node's version footer (hero-studio#57). The render view
install.shpackage.json+5−2@@ -2,7 +2,7 @@ "slug": "hero-studio", "title": "Hero Studio", "type": "app",- "version": "0.21.3",+ "version": "0.21.4", "description": "The hero-image lab with a human gate: `hero-studio pose <owner/slug>` opens the studio in front of the human, posed for their package, and blocks until they click Generate, producing the provenance-stamped 2000x1250 PNG the registry's hero gate requires. The image carries the title and artwork; the exported image also bakes the type pill (top right) and full wiki slug (bottom right); the page shows the hero bare, and only the homepage marquee overlays its own dynamic info. Every hero wears its PAGE OWNER's brand guide (<owner>/brand): colors, type, logo and background themes, Adom's included; an unresolved guide holds unbranded rather than borrowing Adom's look. Placement is fixed for all. The floating app window is the showcase: it auto-loads a real screenshot from the package's wiki page (screenshots/, docs/), takes a manual import, or a full-hero import (the human-ratified re-stamp path for existing heroes). The pose gate opens in verification mode: per-item checklist (title, subtitle, showcase, type match) and a Generate that unlocks only fully confirmed. Includes showcase bleeds, brand tile themes, gradient angles, pixel-faithful wiki marquee and index-card previews, and a component-hero mode with a photo/raytrace/phong fallback ladder.", "license": "MIT", "tags": [@@ -66,7 +66,10 @@ "uninstall": "./uninstall.sh", "test:brand": "node test/brand.mjs", "test:render": "node test/render-view.mjs",- "test:renderer": "node test/renderer.mjs"+ "test:renderer": "node test/renderer.mjs",+ "test:syntax": "node test/syntax.mjs",+ "test": "node test/syntax.mjs && node test/brand.mjs && node test/render-view.mjs && node test/renderer.mjs",+ "prepublishOnly": "node test/syntax.mjs" }, "needs_sudo": false, "hero": {
page.json+5−2@@ -2,7 +2,7 @@ "slug": "hero-studio", "title": "Hero Studio", "type": "app",- "version": "0.21.3",+ "version": "0.21.4", "description": "The hero-image lab with a human gate: `hero-studio pose <owner/slug>` opens the studio in front of the human, posed for their package, and blocks until they click Generate, producing the provenance-stamped 2000x1250 PNG the registry's hero gate requires. The image carries the title and artwork; the exported image also bakes the type pill (top right) and full wiki slug (bottom right); the page shows the hero bare, and only the homepage marquee overlays its own dynamic info. Every hero wears its PAGE OWNER's brand guide (<owner>/brand): colors, type, logo and background themes, Adom's included; an unresolved guide holds unbranded rather than borrowing Adom's look. Placement is fixed for all. The floating app window is the showcase: it auto-loads a real screenshot from the package's wiki page (screenshots/, docs/), takes a manual import, or a full-hero import (the human-ratified re-stamp path for existing heroes). The pose gate opens in verification mode: per-item checklist (title, subtitle, showcase, type match) and a Generate that unlocks only fully confirmed. Includes showcase bleeds, brand tile themes, gradient angles, pixel-faithful wiki marquee and index-card previews, and a component-hero mode with a photo/raytrace/phong fallback ladder.", "license": "MIT", "tags": [@@ -66,7 +66,10 @@ "uninstall": "./uninstall.sh", "test:brand": "node test/brand.mjs", "test:render": "node test/render-view.mjs",- "test:renderer": "node test/renderer.mjs"+ "test:renderer": "node test/renderer.mjs",+ "test:syntax": "node test/syntax.mjs",+ "test": "node test/syntax.mjs && node test/brand.mjs && node test/render-view.mjs && node test/renderer.mjs",+ "prepublishOnly": "node test/syntax.mjs" }, "needs_sudo": false, "hero": {
public/js/app.js+1−1@@ -257,7 +257,7 @@ function renderRendererLine() { if (rs) { if (rs.local.ok) txt = 'renderer: local headless Chrome in this container'; else if (rs.pup.ok) txt = 'renderer: host browser via pup (local ' + rs.local.why + '; for full fidelity: ' + rs.local.fix + ')';- else txt = 'RENDERER NOT READY, Generate will fail: ' + rs.local.why + '; pup fallback: ' + rs.pup.why + '. Fix: ' + (rs.local.fix || 'hero-studio doctor') + ';+ else txt = 'RENDERER NOT READY, Generate will fail: ' + rs.local.why + '; pup fallback: ' + rs.pup.why + '. Fix: ' + (rs.local.fix || 'hero-studio doctor'); if (rs.onDisk) txt += ' | hero-studio ' + rs.onDisk + ' is installed on disk; this studio runs ' + rs.running + ': restart it to pick up the update'; } // the classic panel line always says what will render