Skip to content

[Bug] /alive:save integrity issues — log heading dropped, frontmatter typo, tasks.py done unverifiable #60

@patrickSupernormal

Description

@patrickSupernormal

Description

Three integrity issues surfaced during a single /alive:save invocation on alive 3.1.0. All three were caught by the post-save integrity check step. Without that check, all three would have shipped silently.

1. Heading collision dropped previous entry's heading. The save skill's "prepend new log entry" pattern uses an Edit with old_string matching ---\n\n## PREVIOUS_DATE -- squirrel:... (checkpoint N) and replaces it with ---\n\n## NEW_DATE -- squirrel:... (checkpoint N+1)\n\n[body]\n\n. The previous heading is silently dropped — its body remains in the file but with no heading attached, so it appears (incorrectly) to be a continuation of the new checkpoint. Caught by grep -c '^## 2026-' showing 54 not 55. Fix needed: the prepend pattern should explicitly preserve the previous heading, e.g. replace ---\n\n## PREVIOUS_HEADING with ---\n\n## NEW_HEADING\n\n[body]\n\n---\n\n## PREVIOUS_HEADING.

2. Frontmatter summary: field free-text drift. Wrote (saves:N) in the frontmatter summary text where N didn't match the actual saves: value in the squirrel YAML. The summary is free text the agent has to keep in sync with structured fields elsewhere; easy to drift. Suggest: auto-generate the summary from structured fields rather than free-form, or have the skill validate the summary against structured fields before the write commits.

3. tasks.py done command unverifiable via list. Ran tasks.py done --walnut WALNUT --id tNNN; got back Task tNNN marked done. Then tasks.py list --walnut WALNUT --bundle BUNDLE no longer showed the task. Tried tasks.py list --status done to verify and got 0 results. So there's no way to confirm done actually took effect — the task disappears from the active list, and --status done doesn't surface done tasks either. Either the filter is broken or done tasks live in a separate file list doesn't read. Fix: list --status done should return done tasks so operators can verify a done action took effect.

Expected Behaviour

  1. Save skill prepends a new log entry without dropping the previous entry's heading.
  2. Frontmatter summary either auto-generates from structured fields, or the skill validates the summary against structured fields before write commits.
  3. tasks.py list --status done returns done tasks so operators can verify done actions.

Context

  • Skill: alive:save (during an actual save, not a dry-run)
  • All three issues caught by step 8 (integrity check); silent until that step ran
  • Issue Add walnut:create skill + third-party skill override convention #1 above had been silently corrupting the log on prior saves too — this was the first time the integrity check actually counted heading entries

System

  • Plugin: 3.1.0
  • Engine: claude-opus-4-7- OS: Darwin
  • Context: unavailable
  • Session: ~24h 49min (multi-day, 4 checkpoints)

Sent via /alive:feedback

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingfeedbackUser feedback via /alive:feedback

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions