Files
Codeman/test/fixtures/story-corpus/python-cli-fix-loop.expected.json
T
Codeman maintainer b98deebafc feat(story-mode): a plain Simple caption on every panel
Story Mode gets a third reading level for someone who has never seen a
terminal (a parent, a manager). Every panel now carries caption.simple:
one short sentence in everyday words, with no file name, command, tool
name, flag or jargon. The sentences are templates only, so nothing from
the transcript (a path, a commit message, a branch) can reach them, and
they are written from the same facts as the story caption: a failed
check never reads as a pass, a failure you asked for says so, and a
check that fails after one passed is a failure again.

The final panel's simple caption is a plain summary: how the turn ended
and roughly how long it took, how many files changed, whether the checks
pass, whether the work is saved (only claimed "not saved" where saving
is in play: you asked for it, or the turn used git), and what the reader
must not miss (a problem left, a note, a question for them).

test/story-plain-words.ts is the guard: the corpus test runs it over
every panel of every page of the eleven sessions, and the unit tests
cover the honest endings (failed check, catch, note, question, stopped,
not done, to be continued, done for now) and the guard itself. The
corpus expectations only gain "simple" lines.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-19 05:17:31 +02:00

110 lines
3.9 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[
{
"prompt": "Build a small Python command-line tool wcount.py in this folder that prints the line, word and chara",
"origin": "human",
"complete": true,
"interrupted": false,
"durationMs": 192853,
"toolCalls": 11,
"filesChanged": 3,
"added": 219,
"removed": 0,
"helpers": 0,
"helpersRunning": 0,
"finishedLater": 0,
"openNote": false,
"asks": false,
"panels": [
{
"kind": "mission",
"ok": null,
"story": "You give Claude a job.",
"simple": "You give Claude a job.",
"unaskedSave": false,
"director": "Prompt · 52 words",
"balloon": "Build a small Python command-line tool wcount.py in this folder that prints the line, word and character counts of the files given as arguments, like wc, with a --json flag that prints the counts as JSON, plus pytest tests in test_wcount.py; run pytest and fix anything that fails until all tests pass.",
"tests": null,
"roundsOk": null,
"printed": null,
"events": 1
},
{
"kind": "investigate",
"ok": null,
"story": "Claude looks around the project.",
"simple": "Claude looks around the project.",
"unaskedSave": false,
"director": "Bash ×2 · ls -la && git log --oneline -5 2>&1; git branch -a; python3… · 1 error",
"balloon": null,
"tests": null,
"roundsOk": null,
"printed": null,
"events": 2
},
{
"kind": "loop",
"ok": true,
"story": "Fix and test, 2 rounds: a test fails and Claude fixes it, then a formatting check fails and Claude fixes that; everything passes. Claude starts a git repository and saves the work in 4 commits along the way.",
"simple": "Some checks fail at first; Claude fixes them until all pass. It also saves the work.",
"unaskedSave": true,
"director": "3 checks · 5 edits · +217 · last: ok · after 1 second opinion",
"balloon": "All 19 tests pass, ruff check is clean, and the output matches real wc column for column.",
"tests": {
"passed": 19,
"failed": 0
},
"roundsOk": [
false,
false,
true
],
"printed": null,
"events": 8
},
{
"kind": "save",
"ok": true,
"story": "Claude writes .gitignore and saves the work: \"ignore Python and pytest caches\".",
"simple": "Claude writes a file, then saves the work.",
"unaskedSave": false,
"director": "git commit -q -m \"chore: ignore Python and pytest caches · writes 1 file",
"balloon": null,
"tests": null,
"roundsOk": null,
"printed": null,
"events": 1
},
{
"kind": "run",
"ok": null,
"story": "Claude works in the terminal.",
"simple": "Claude runs some steps on the computer.",
"unaskedSave": false,
"director": "Bash · python3 wcount.py nope nope2; echo \"exit=$?\"; wc nope nope2… · after 1 second opinion",
"balloon": null,
"tests": null,
"roundsOk": null,
"printed": [
"wcount: nope: No such file or directory",
"wcount: nope2: No such file or directory",
"0 0 0 total"
],
"events": 2
},
{
"kind": "complete",
"ok": null,
"story": "Done in 3 minutes.",
"simple": "Done in about 3 minutes. 3 files changed. The checks pass. The work is saved.",
"unaskedSave": false,
"director": "turn_duration · 3 min 13 s · 11 tool calls · 3 files changed",
"balloon": "I built wcount.py and test_wcount.py. All 19 tests pass (19 passed in 0.46s) and ruff check . is clean. What failed and how I fixed it: one test failed on the first run.",
"tests": null,
"roundsOk": null,
"printed": null,
"events": 0
}
]
}
]