docs: build-your-first-harness — animated scaffold + dev:web shots, stills re-cut for lloyal-ai - #55
Open
kazimali07 wants to merge 3 commits into
Open
Conversation
Every still on this page was a v0.7.1 screenshot, so the banner read harness.dev and the ready screen said "Add apps:". Re-recorded against lloyal-ai@1.0.4 and re-cut all seven stills out of the new recording. Adds two GIFs of real runs: the whole `npx lloyal-ai@latest new` wizard at the top of section 1, and `npm run dev:web` in place of still 07. Both are genuine PTY recordings; the only post-processing is timing. Alt text now names lloyal-ai instead of harness.dev. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
guides-theme.css defines .flow-caption for exactly this element, but no figcaption on the page carried the class, so all eight captions rendered as near-black text on the #0a0d18 figure background. Markup-only; the rule already exists and matched nothing before. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The first cut of this GIF was a 35 s prefix of the recording and stopped at "fetching qwen3.5-4b — 17%", so the reader never saw the host actually come up. Re-cut from the same take: the fetch counter is thinned to its genuine 0/10/.../100% ticks and the GIF now ends on [serve] hello-harness serving on ws://127.0.0.1:8787 — up to 4 browser session(s) over one resident model. Still timing-only. 731 of the 742 progress events are dropped and 11 kept; each is a pure carriage-return rewrite of the same line, so nothing is left torn and no text is edited or invented. Everything before the first tick and after 100% is kept verbatim in order. Note this compresses the apparent fetch duration: the real fetch took about 153 s. 48 frames, 14.7 s, 77 KB. Still 07 re-cut to the final frame. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Every still on Build your first harness was a v0.7.1 screenshot: the banner said
harness.dev, the ready screen saidAdd apps:, and five alt texts named a CLI that no longer exists. This re-shoots the section againstlloyal-ai@1.0.4.What's in it
Two GIFs of real runs.
build-your-first-harness-new.gif— the wholenpx lloyal-ai@latest newwizard, from the typed command tohello-harness is ready.Sits at the top of section 1, before "Name the application". 324 KB, 286 frames, 33.7 s, loops forever.build-your-first-harness-dev-web.gif—cd hello-harness && npm run dev:web, from the shell prompt through Vite coming up athttp://localhost:5173/, the model fetch running to 100 %, and the host reporting[serve] hello-harness serving on ws://127.0.0.1:8787 — up to 4 browser session(s) over one resident model.Replaces still 07 in "Begin a Session"; the caption is unchanged. 77 KB, 48 frames, 14.7 s.The seven stills, re-cut from the new recordings at the same wizard moments they always showed. Same filenames. They're 1652×1058 now rather than ~1614×1006 — the CSS is
width:100%; height:auto, so nothing shifts — and about 11 MB smaller in total, because the originals were screenshots over a desktop wallpaper and these are flat terminal renders.Alt text:
harness.dev→lloyal-ai, five places. That was the only remainingharness.devon the page; the code block already saidnpx lloyal-ai new. Count goes 5 → 0.How it was recorded
Same rig as the homepage scaffold GIF: a Python PTY driver runs
bash --norc --noprofile -iin a 100×27 pty, types the command, and walks the wizard's real prompts confirming its own defaults. Scaffold andnpm installran to real completion — 166 MB ofnode_moduleson disk,✓ Dependencies installedon screen. Rendered withagg1.9.0 in JetBrains Mono, background#0a0d18so the GIF edges disappear into.flow-shot.lloyal-ai@1.0.4, Node v24.18.0, Vite 7.3.6, macOS 26.5.2 on an 8 GB MacBook Air.The only post-processing is timing. The polish pass caps any single idle gap at 1.2 s and drops the fixed macOS bash-deprecation nag. It never edits or invents output text — 2 gaps clamped on the wizard take, 1 on the dev:web take. Every pixel in both GIFs and all seven stills came off a real terminal.
One extra step on the dev:web GIF. The real run took 163 seconds, nearly all of it a percentage counter, which is a hopeless loop on a docs page. So the fetch line is thinned to its genuine decade ticks: of 742 progress events, 11 are kept (0, 10, 20 … 100 %) and 731 dropped. Each of the 742 is a pure carriage-return rewrite of the same single line carrying no other text, so dropping intermediates leaves no torn screen state. Everything before the first tick and everything after 100 % is kept verbatim, in order, at its original spacing.
Worth being plain about the trade: this compresses the apparent duration of the fetch. On screen it runs 0→100 % in about 4 seconds; the real fetch took roughly 153 s for 2.6 GB. Nothing is edited or invented and the order is exactly as recorded, but the GIF isn't evidence about download speed. The untouched full-length cast is in the source bundle. The run itself finished cleanly — no OOM, no hang.
(There's no digest-verification line in the GIF because the CLI doesn't print one; the counter hits 100 % and the serving line follows.)
Two things to look at
one reduce. The Targets prompt at 1.0.4 prints— one reducewhere it should say— one required, apparently collateral from the app→ability rename inside the CLI. It's genuine output, so it's in the GIF and in still 02 verbatim. Fixing it is a CLI patch plus a re-record, not an edit to these assets.Cache headers.
build.mjswrites/assets/* → Cache-Control: public, max-age=31536000, immutable, and the stills keep their old filenames. Anyone who has already loaded the guide will keep seeing theharness.devversions. Worth a CDN purge on deploy, or say the word and I'll add a-v2suffix.Second commit is separable
.flow-captionis defined inguides-theme.cssfor exactly this element, but nofigcaptionon the page carried the class, so all eight captions were rendering as near-black text on the#0a0d18figure background — effectively invisible. The second commit adds the class. Markup only, no CSS change. Drop it if you'd rather handle contrast separately.Still 07 is re-cut to the GIF's final frame — fetch at 100 %, host serving on
ws://127.0.0.1:8787— and is updated in the repo even though the page shows the GIF there. If you'd prefer stills only, pointing the<img src>back at-07.pngis a one-line revert and you keep the payoff frame.🤖 Generated with Claude Code