Terminal demo: three roles, one artifact, one prompt #324
Labels
No labels
burndown-2026-08
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/devrel
role/eval
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/sysadmin
role/tpm
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agent-compose#324
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Shoot plan for a short terminal demo showing that role selection changes what an agent attends to. Filed so the design survives the session.
Shape
Same artifact, same prompt, three roles. A values question makes roles converge on "the important thing". Pointing all three at one concrete artifact makes them diverge on what they look at, which is the actual claim of the system.
Cast
Chosen for zero shared personalities, so the divergence is structural rather than tonal, and for color separation on screen.
sysadmin- Olaf (he) - protective + grounded -#009895frontend- Delphi (she) - playful + imaginative -#e583f7tpm- Saiya (they) - decisive + outward -#e36966Prompt
Pasted identically into all three sessions.
Expected split
Olaf goes to what happens when it fails on a host. Delphi goes to whether a human can read it. Saiya goes to whether it is worth changing at all this week. If they converge, the demo has found a real problem and that is worth knowing too.
Sequencing
Issue #322 gates this. The demo runs
catalog roleson camera, and that command currently prints the personality meld under the labelboundary:. Shoot after the label fix lands.Issue #323 does not gate this.
Production method
Recording this live is the wrong shape. It puts timing, retakes, and lucidity on the critical path for a demo whose content is entirely deterministic. Two tools remove that.
VHS (charmbracelet/vhs, v0.11.0, 2026-03) for the CLI beats. A
.tapefile renders to GIF, MP4, or WebM with no live session at all. Timing is a number in a text file, so a wrong pause is an edit rather than a retake.asciinema (v3.2.1, 2026-06) for anything involving a live agent session, recorded with
-i 2so every pause over two seconds clamps to two seconds on playback. The cast is plain text with per-event timings and stays editable afterwards.Both are in brew core at current upstream versions, along with
aggfor cast-to-GIF.Why the split
VHS drives a headless terminal on fixed sleeps. That suits
catalog rolesandcompose --explain, which are instant and deterministic. It does not suit the three role sessions: responses run 30 to 90 seconds and vary, so the correctSleepcannot be known in advance, and every tape iteration would re-run three real inference sessions.asciinema rec -i 2, recorded once, edited later if at allReduced scope, if the full version stalls
VHS only. Record the three identity cards and their
--explainoutput, and carry the three actual answers as text in the accompanying post. It loses the side-by-side reveal and it needs nothing from a human but a tape file.Starter tape
Verified against the installed
v2.44.0: thepersonalities:label from #322 is live on this host, so the gating work in the issue body is done and the tape above renders correct output today.Tooling installed and the tapes render
vhs 0.11.0,asciinema 3.2.1,agg 1.9.0installed on the MacBook. Rendered both tapes end to end and inspected the frames rather than trusting exit 0.Finding:
catalog rolesis too wide to filmLongest line is 196 characters. At any readable font size that is a 2400px-wide image, giving a 6.7:1 letterbox strip. Narrower and every line wraps mid-word.
This is not a CLI defect. The line is built to be grepped, and it is good at that. It just does not survive being turned into a picture. Recording it means choosing between an unusable aspect ratio and visible wrapping.
describeis the better shotThe bundle decision tree carries the same story in a vertical shape, and the ✓/✗ column is the actual selection logic rather than a description of it.
Three of these side by side is the demo. Same command, three bundles, and the block changes.
Full
describeoutput runs past a screen and its longest line is 325 characters, so it needs bothheadandcut. Two beats worth stealing from further down the output:✗ 143 skills excluded - role provider is scoped to role(s) sysadmin, not selected rolecontext budgetsection, which puts token counts against each providerWorking tape
Renders correctly against
v2.44.0today. Run from~/.agent-compose/bundles.The right edge truncates mid-word at 72. Dropping to
cut -c1-46gives a clean block but loses the(roster:core)provenance column and clips the bundle header. Unresolved, and it is one number either way.Second tape, if the wide strip is wanted anyway
No wrapping at 2400px. Aspect ratio is 6.7:1, so it suits a README banner and not a social post.
Not verified
Whether
compose --explainfilms well. It converges the host, so I did not run it. Its expanded personality block from #323 has short lines and a vertical shape, which suggests it is the best-shaped surface of the three, and that is inference rather than a measurement.