parsoFish

demo-agent

"The declaration carrier and display identity for the develop flow's `integrate` node — the INTEGRATE band (spec §5 item 4). The band is an orchestrator verb: it derives the demo bundle and the PR body from the acceptance criteria, the merge gate's own evidence and the diff, then renders and captures. No model is spawned on any path — see 'What this is, honestly' below."

parsoFish 5 Updated 1mo ago
GitHub

Install

npx skillscat add parsofish/forge-studio/demo-agent

Install via the SkillsCat registry.

SKILL.md

demo-agent skill

What this is, honestly

This SKILL.md is not a running agent. It is the declaration carrier and
display identity the integrate-band guard needs to exist as a first-class citizen
of the platform (a composition.guards entry, a studio/catalog.yaml display
row, a real roster member forge studio lint can validate) — nothing more. It
is the same shape `skills/contract-check/SKILL.md`
already has for the onboard-preflight band.

The develop flow's integrate node carries agent: "demo-agent" (ADR-039 declared
dispatch); at runtime execAgent
(`packages/factory/phases/executor-table.ts`)
resolves the declared integrate-band guard and routes the node to execIntegrate, which
runs the band directly, orchestrator-side. No agent is spawned, no prompt is
assembled, and no budget is drawn.

What the band does instead

The band is spec §5 item 4's integrate step. In order:

  1. boundary commit — commit stragglers so the gate and the bundle see the
    real branch tip;
  2. sync invariant — push/sync the integrated branch;
  3. empty-branch guard — a dev loop that produced nothing opens no PR;
  4. merge-boundary gate — the full suite on the integrated tip, failing LOUD
    on a project-config error (no agent can fix a config it cannot see);
  5. derive (`derive-demo-model.ts`,
    `derive-pr-body.ts`) — the
    demo.json, the DEMO.md and .forge/pr-description.md are built from the
    work items' acceptance criteria, the gate evidence those gates just produced,
    and the diff;
  6. capture where the class says so — the class → gate-profile table's
    capture column selects checkpoint capture, plan output, or neither.

Why the author was deleted

The demo used to be authored by a model here, validated afterwards, and retried
with the errors pasted back into the prompt. Everything it wrote was already
known to the orchestrator, so the authoring bought nothing and cost a spawn, two
retries, a token-overlap coverage heuristic and a fix-proposal loop. Deriving the
same artifacts is reproducible and cannot fail validation, so all of that went
with it.

One thing is deliberately NOT derived: the per-criterion verdict. An
orchestrator that scored the criteria it also built the evidence for would be
grading its own work. That verdict belongs to the read-only review agent.

The name

The band's spec word is integrate, and as of forge-8vfn.6.10.18 (operator
item 85) the STATION identity matches it: the flow node id, the band guard,
resume_from, the requeue API field and the --resume-from CLI flag are all
integrate now. Two things deliberately did NOT move: this skill's own slug
(demo-agent — a name, not the station) and the demo ARTIFACT concept
(demo.json, DEMO.md, demo capture) the band still produces — those are
about the demo, not the station that runs it.