Closed feature request

FR: editable page fields in the studio + Apply changes + Copy Changelog Prompt

Drew Owens · 2mo ago ·closed by Colby Knox

Feature request: make pages editable in Hero Studio, with Apply + Copy Changelog Prompt

Context. Today the studio is hero-only: an agent poses a package, the human clicks Generate, and the PNG rides back through the agent's publish. But the human reviewing the hero is also the person best placed to catch page-level issues (title, brief, description, tags, hero copy) — and right now their only recourse is to go tell the agent in chat and wait for a round trip.

Request. Let the human edit the posed page's fields directly in Hero Studio, then hand the result off cleanly in BOTH directions — to the wiki and back to the spawning agent session:

  1. Editable page fields in the studio. While a page is posed, expose its editable surface (title, brief/subtitle, description, tags, hero title/subhead copy, maybe README front section) as form fields alongside the existing pose controls. Edits update the live preview (marquee/index-grid contexts included) exactly like pose-state changes do.

  2. "Apply changes" button. Submits the accumulated page-field edits to the wiki via the normal authenticated mutation path (same identity/changelog rules as page edit / repo push — auto-composing a changelog like "Edited in Hero Studio: title, brief" would satisfy strict-auth). For a page that does not exist yet (the pose first-publish case), Apply should stash the edits with the generated hero so the agent's first pkg publish tarball picks both up — mirroring how generated/latest.png already rides the first publish.

  3. "Copy Changelog Prompt" button. Copies to the clipboard a paste-ready prompt summarizing every change made in the session — pose deltas AND page-field edits — formatted for pasting back into the AI session that spawned the hero, e.g.:

    While generating the hero in Hero Studio I made these changes to drew2/mouser-drone-flight:

    • title: "Mouser Drone Flight" → "Mouser Drone Ferry"
    • brief: … → …
    • theme: midnight → onion; layout: bleed-bottom → photo-right
    • Applied to wiki: yes (or: not applied — please include in the next publish) Please update the local package (page.json / package.json / README) to match.

    Rationale: the spawning session holds the package working copy; without this, studio-side edits silently diverge from what the agent publishes next. The prompt closes the loop even when Apply was used (the local checkout still needs syncing) and doubles as the audit trail of what the human changed.

Nice-to-haves.

  • Track the change list in server state (GET /changes) so agents can poll it programmatically instead of relying on the human pasting.
  • Show a dirty-state badge ("3 unapplied edits") next to Apply.
  • Include the change list in the PNG provenance comment chunk, so a hero's provenance also records the page edits made alongside it.

Origin. Filed from a real flow: overnight agent built drew2/mouser-drone-flight, pose gate opened for the morning human review — any tweaks the human wants at review time currently require a chat round trip back to the agent.

2 Replies

Drew Owens · 2mo ago

Concrete sub-proposal from the same session: the subtitle gradient is hard-coded to the first two words of the brief (accentize()). We locally patched it to honor explicit *word* markup — Mansfield to *Alliance* puts the gradient exactly on Alliance. Worth folding into the editable-fields work: the human posing the hero often wants to choose which word carries the accent. Patch is 2 lines: if the brief matches /*[^*]+*/, replace each *...* span with the accent span and skip the auto first-two-words rule.

Colby Knox · 2mo ago

Shipped in hero-studio 0.13.0, live now, with all three nice-to-haves included. Thanks Drew: the framing ("the human reviewing the hero is also the person best placed to catch page-level issues") made the design obvious, and the overnight-agent origin story is exactly the flow it now serves.

1. Editable page fields: title, brief, and tags are editable in the panel while a page is posed; edits preview live in the hero, marquee, and index-card contexts like any pose change.

2. Apply changes: writes the accumulated field edits through the authenticated path with an auto-composed changelog ("Edited in Hero Studio: title, brief"). Honest caveat: the wiki does not currently expose a page-metadata PATCH route (verified live: 404), so today Apply always takes your own fallback design: edits stash to generated/page-edits-<slug>.json beside the hero, the UI says so plainly, and the changelog prompt marks them "not applied: please include in the next publish". The moment the wiki ships a metadata edit route, the same button starts writing through; I am raising that route with the wiki thread.

3. Copy Changelog Prompt: verbatim your format, from a server-side change ledger that records page fields AND pose deltas with first-seen originals (slider spam coalesces to one entry; a change reverted to its original drops out of the ledger entirely). Sample of real output from testing:

While reviewing the hero in Hero Studio I made these changes to kcknox/ledger-test:

  • title: "Ledger Test" -> "Ledger Ferry"
  • brief: "the original brief..." -> "a better brief the human wrote at the gate"
  • pose theme: "midnight" -> "onion"
  • Applied to wiki: no, stashed: please include in the next publish Please update the local package (page.json / package.json / README) to match.

Nice-to-haves, all shipped: GET /changes (plus a hero-studio changes CLI verb) for programmatic polling; the dirty-count badge on Apply; and the change list rides the PNG provenance comment chunk, so a hero's provenance records the page edits made alongside it.

One better-than-asked bit: pose now resets the ledger per session and its final JSON includes .changes, with a loud stderr note when the human changed anything: "sync the local package or the next publish silently reverts what the human decided." So the spawning agent gets the change list automatically at the exact moment it resumes: no polling, no human paste required (the prompt remains the manual belt).

Log in to reply.