fix(story-mode): plans you approved, project rules, tag lookups and dry runs (review round 12)

From a reader who has never written code:
- "a save your prompt here did not ask for" on a save that was step 3 of
  the plan you approved ("Verify and commit"): a commit step in an
  approved plan asks for the save. When Claude says a project rule asks
  for its commits (read on its whole message), the line says "…; your
  project's rules do".
- "a check after that fails" read as a failed test where it was `git
  describe` finding no tags: "the version-tag lookup after that fails
  (there are no tags yet)".
- The dry run you asked for never showed: the terminal card took the
  last command's edge-case errors. A dry run in the panel is now what the
  card shows, its "a -> b" lines, under "Claude does the dry run you
  asked for: it shows what would happen, changing nothing."

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Codeman maintainer committed 2026-10-18 18:19:01 +02:00
1 parent bcfef8af5b
commit f6c540276c
12 files changed
+120 -31

No files matched your search

@@ -78,16 +78,16 @@
{
"kind": "run",
"ok": null,
"story": "Claude works in the terminal.",
"story": "Claude does the dry run you asked for: it shows what would happen, changing nothing.",
"unaskedSave": false,
"director": "Bash ×5 · rm -- ./-- && S=/tmp/claude/-work-cases-story-review-c/740e…",
"balloon": "My mk -- ... helper call left a stray file named --. I'll remove it, then run the dry run and save a listing to confirm nothing changed.",
"tests": null,
"roundsOk": null,
"printed": [
"--bogus exit=2",
"two dirs exit=2",
"-- two dirs exit=2"
"[dry-run] 2022-07-04_120000.jpg -> 2020-01-01_000000.jpg",
"[dry-run] a.jpg -> 2024-05-01_093000.jpg",
"[dry-run] b.jpg -> 2024-05-01_093000_1.jpg"
],
"events": 5
},
@@ -230,16 +230,16 @@
{
"kind": "run",
"ok": null,
"story": "Claude works in the terminal.",
"story": "Claude does the dry run you asked for: it shows what would happen, changing nothing.",
"unaskedSave": false,
"director": "Bash ×2 · bash -n \"$P/rename_by_date.sh\" && echo \"syntax ok\"",
"balloon": "Here's the dry run you asked for on the samples, plus a check that nothing on disk changed:",
"tests": null,
"roundsOk": null,
"printed": [
"--- missing value",
"exit=2 error: --prefix needs a value",
"--- slash"
"[dry-run] 2020-01-01_000000.jpg -> holiday_2020-01-01_000000.jpg",
"[dry-run] 2021-02-03_040506.jpg -> holiday_2021-02-03_040506.jpg",
"[dry-run] 2022-07-04_120000.jpg -> holiday_2022-07-04_120000.jpg"
],
"events": 2
},
@@ -70,7 +70,7 @@
"kind": "save",
"ok": true,
"story": "Claude starts a git repository and saves the work: \"add clamp() with pytest coverage\".",
"unaskedSave": true,
"unaskedSave": "rule",
"director": "git commit -q -F -",
"balloon": null,
"tests": null,
@@ -241,7 +241,7 @@
"kind": "save",
"ok": true,
"story": "Claude saves the work: \"add wrap() for modular wrapping into a range\".",
"unaskedSave": true,
"unaskedSave": false,
"director": "git commit -q -F -",
"balloon": null,
"tests": null,
@@ -193,7 +193,7 @@
{
"kind": "save",
"ok": true,
"story": "Claude saves the work: \"add calc_stats.mode with smallest-value tie-breaking\" and copies it to origin.git, a folder on this computer, but a check after that fails, as you said it might.",
"story": "Claude saves the work: \"add calc_stats.mode with smallest-value tie-breaking\" and copies it to origin.git, a folder on this computer, but the version-tag lookup after that fails (there are no tags yet), as you said it might.",
"unaskedSave": false,
"director": "git commit -q -F - · git push -u origin HEAD",
"balloon": null,
@@ -286,7 +286,7 @@
{
"kind": "save",
"ok": true,
"story": "Claude saves the work: \"add NOTES.md describing mode behavior\" and copies it to origin.git, a folder on this computer, but a check after that fails, as you said it might.",
"story": "Claude saves the work: \"add NOTES.md describing mode behavior\" and copies it to origin.git, a folder on this computer, but the version-tag lookup after that fails (there are no tags yet), as you said it might.",
"unaskedSave": false,
"director": "git commit -q -F - · git push · 1 error",
"balloon": null,
@@ -43,7 +43,7 @@
"kind": "save",
"ok": true,
"story": "Claude starts a git repository, writes package.json and index.js, and saves the work: \"add package.json and index.js with add and slugify\".",
"unaskedSave": true,
"unaskedSave": "rule",
"director": "git commit -q -m \"feat: add package.json and index.js with… · writes 2 files · after 1 second opinion",
"balloon": null,
"tests": null,
@@ -93,7 +93,7 @@
{
"kind": "run",
"ok": null,
"story": "Claude works in the terminal.",
"story": "Claude does the dry run you asked for: it shows what would happen, changing nothing.",
"unaskedSave": false,
"director": "Bash · set -o pipefail && python3 csvstat.py sample.csv | tee /tmp…",
"balloon": null,