mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-11-14 02:29:33 +01:00
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>
110 lines
3.9 KiB
JSON
110 lines
3.9 KiB
JSON
[
|
||
{
|
||
"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
|
||
}
|
||
]
|
||
}
|
||
]
|