Files
troupe-standup/wizard-work/quill/quickstart-transcript.md
T

6.5 KiB

QUICKSTART.md — execution transcript

Every step id referenced by QUICKSTART.md, with the exact command that was run, its exit code, and its raw output. Measured 2026-10-30 on the host that runs hermes v0.22.5, from /tmp unless stated. Profile names q110demo, q110demo2, q110demo3 are throwaway probes: each was deleted afterwards and no q110demo* profile remains (ls -d ~/.hermes/profiles/q110demo* → no such file, rc 2).

Format read by wizard-work/volt/q110_check.py: a ### S<n> — title heading, then cmd:, rc:, status: lines. status is one of TESTED (rc must be 0), EXPECTED-FAIL (rc must be nonzero), UNTESTED (rc is the observed failure).

S1 — toolchain versions

cmd: bash --version | head -1; python3 -V; git --version; hermes --version rc: 0 status: TESTED out: GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu) Python 3.14.9 git version 2.43.0 Hermes Agent v0.22.5 (2026.9.24) · stable · local bf0203a794a0

S2 — clone the pipe (the URL the rewritten doc gives)

cmd: git clone -q https://forge.alexanderwhitestone.com/git/stackchain/troupe-standup.git lib rc: 0 status: TESTED out: real 0m31.490s 300851899 bytes on disk (du -sb lib) git -C lib rev-parse HEAD -> 85cc9e6963 85cc9e6 2026-10-30 06:02:25 +0000 volt: bound the tool_map drift CHECK (...) landing re-check: git ls-remote --heads -> rc 0, main = 85cc9e69638d…, branch-head = 9dd32f4d59bc… (tree reachable unauthenticated)

S3 — create the profile

cmd: hermes profile create q110demo3 --clone --no-alias rc: 0 status: TESTED out: Profile 'q110demo3' created at /root/.hermes/profiles/q110demo3 Cloned config, .env, SOUL.md, and skills from volt. (an earlier run of the same command, timed: real 0m13.351s) landing re-check (no --clone): rc 0, real 0m16.371s, 58 bundled skills; hermes profile delete -y q110probe rc 0 and the path is gone (timings vary run to run; the rc does not)

S4 — set provider, base_url, model

cmd: hermes -p q110demo3 config set model.provider deepseek; hermes -p q110demo3 config set model.base_url https://api.deepseek.com/v1; hermes -p q110demo3 config set model.default deepseek-flash rc: 0 status: TESTED out: ✓ Set model.provider = deepseek in /root/.hermes/profiles/q110demo3/config.yaml ✓ Set model.base_url = https://api.deepseek.com/v1 in /root/.hermes/profiles/q110demo3/config.yaml ✓ Set model.default = deepseek-flash in /root/.hermes/profiles/q110demo3/config.yaml

S5 — read the model back

cmd: hermes -p q110demo3 config get model.default rc: 0 status: TESTED out: deepseek-flash

S6 — first job

cmd: hermes -p q110demo3 chat -q "Reply with exactly: PONG" -Q rc: 0 status: TESTED out: PONG session_id: local-e0f1e5f4d155fed44e2c52377b2807bf637956ca9304fadf679eace06ac4e359 real 0m9.964s landing re-check on the volt profile: PONG, rc 0, real 0m13.845s, session_id local-fc6bfcd10385fa4eb3f397a925fb5ad6906543083f2d362d5e5531abde7f2bbb

S7 — negative control: an invented model id

cmd: hermes -p q110demo3 config set model.default deepseek-nonexistent-probe; hermes -p q110demo3 chat -q "Reply with exactly: PONG" -Q rc: 1 status: EXPECTED-FAIL out: DeepSeek rejected this request as malformed, so the model didn't answer. ... Provider said: HTTP 400: The supported API model names are deepseek-flash, deepseek-v4-pro, but you passed deepseek-nonexistent-probe. (request_id: 7fc43101-260f-4ae7-8f95-ecb097189797)

S8 — delete the throwaway profile

cmd: hermes profile delete -y q110demo3 rc: 0 status: TESTED out: ✓ Removed /root/.hermes/profiles/q110demo3 Profile 'q110demo3' deleted. ls -d /root/.hermes/profiles/q110demo3 -> No such file or directory ls /root/.local/bin/q110demo3 -> No such file or directory

S9 — the old clone URL is dead

cmd: curl -sS -o /dev/null -w "%{http_code} %{url_effective}\n" -L https://github.com/stackchain/library.git rc: 0 status: TESTED out: 404 https://github.com/stackchain/library api.github.com/repos/stackchain/library -> also 404 landing re-check 2026-10-30: 404 https://github.com/stackchain/library

S10 — the old first-job command does not exist

cmd: hermes run "echo hello world" rc: 2 status: EXPECTED-FAIL out: hermes: 'run' is not a hermes command. Run hermes --help to see all commands. landing re-check: rc 2, same two lines

S11 — a bare HERMES_HOME directory is not a profile

cmd: HERMES_HOME=/h2 hermes chat -q "Reply with exactly: PONG" -Q rc: 1 status: EXPECTED-FAIL out: Hermes couldn't start the model connection: Gateway could not start: the gateway exited with status 0 before it could serve:. Your message was not sent. real 0m10.666s (repeated 0m11.746s with the parent's session env stripped, and 0m12.812s from /tmp on the live profile home: same reading)

S12 — HERMES_HOME exported hides a freshly created profile

cmd: HERMES_HOME=/h2 hermes -p q110demo2 chat -q "Reply with exactly: PONG" -Q rc: 1 status: EXPECTED-FAIL out: Error: Profile 'q110demo2' does not exist. Create it with: hermes profile create q110demo2

S13 — the one-shot form Hermes documents

cmd: hermes --help rc: 0 status: TESTED out: usage: hermes [-h] [--version] [-z PROMPT] [--usage-file PATH] [-m MODEL] (the same invocation lists chat, and hermes chat --help documents -q/--query with --oneshot) landing re-check: -z PROMPT 1 match in hermes --help; --no-alias 2 matches in hermes profile create --help

S14 — the cloned repo has no profiles/ directory

cmd: ls -d profiles (cwd = the clone from S2) rc: 2 status: EXPECTED-FAIL out: ls: cannot access 'profiles': No such file or directory landing re-check: same reading from /root/troupe-standup (rc 2)

S15 — a fresh HERMES_HOME blocks in dependency preparation (landing re-measure)

cmd: HERMES_HOME=/tmp/q110h2 timeout 25 hermes -p q110nope config get model.default; HERMES_HOME=/tmp/q110h2 timeout 100 hermes chat -q "PONG" -Q rc: 124 status: UNTESTED out: hermes: preparing dependencies for this data root (the checkout's updates belong to /root/.hermes)... → Installing Python dependencies… (both commands, plus -p volt config get, printed that first line and did not finish: 25 s, 25 s, 100 s, each killed by timeout → rc 124) Not a pass and not a refusal: the lookup message S11/S12 record was never reached at landing, so this step is recorded as unreachable, not as measured.