Skip to content

M6: tombstone-flavored personality for command confirmations - #23

Merged
rwrife merged 1 commit into
mainfrom
issue-6-personality-polish
Jul 7, 2026
Merged

M6: tombstone-flavored personality for command confirmations#23
rwrife merged 1 commit into
mainfrom
issue-6-personality-polish

Conversation

@rwrife

@rwrife rwrife commented Jul 6, 2026

Copy link
Copy Markdown
Owner

Refs #6 (M6 — Polish + personality + ship v0.1.0)

What & why

M6's first acceptance criterion asks for "tombstone-flavored personality in user-facing messages (tasteful, not noisy)." The render layer (ls, --morgue, reap, doctor) already had that voice, but the direct command confirmation lines were still clinical. This brings them in line.

Changes

  • sp newcreated scratch <id> (name) — living on borrowed time, expires in ~7d (new pure helpers lifespanNote / humanCountdown).
  • sp open… — back on the slab
  • sp rmburied scratch <id> (name) in the morgue — not gone, just resting; restore with \sp resurrect ``
  • sp resurrect… — it claws its way out of the morgue and is live again
  • sp promote… — it escapes the reaper and joins the working tree
  • internal/cli/personality_test.go pins the new flavor and guards the stable substrings other tests/scripts depend on (created scratch, morgue, live again, promoted scratch).
  • README sp rm example refreshed to match.

Guarantees

  • Every confirmation still leads with its existing anchor; no --json/scripting output touched (personality lives only on human confirmation lines).
  • go build, go vet, gofmt -l, and the full go test ./... suite are all green.

Sample

created scratch 86318dcd (demo) — living on borrowed time, expires in ~6d
opened scratch a7e3191a (quick) — back on the slab
buried scratch a7e3191a (quick) in the morgue — not gone, just resting; restore with `sp resurrect a7e3191a`
resurrected scratch a7e3191a (quick) — it claws its way out of the morgue and is live again
promoted scratch a7e3191a (quick) → quick.md — it escapes the reaper and joins the working tree

Deliberately NOT in this PR

The remaining M6 item — tagging and publishing the v0.1.0 release (which triggers the GoReleaser release workflow and publishes artifacts) — is a maintainer action and is intentionally left for a human to cut, not automated here. #6 stays open until that ships.

M6 polish: bring the direct command confirmation lines (new/open/rm/resurrect/promote) up to the same tasteful tombstone voice the render layer already has, without disturbing the stable output anchors tests and scripts rely on.

- sp new now notes the scratch's 'borrowed time' + a compact expiry countdown
- sp open: 'back on the slab'; sp rm: 'buried in the morgue, not gone, just resting'
- sp resurrect: 'claws its way out of the morgue'; sp promote: 'escapes the reaper'
- new helpers lifespanNote/humanCountdown are pure + unit-tested
- personality_test.go pins the flavor and guards the anchors (created scratch / morgue / live again / promoted scratch)
- README rm example refreshed to match

Anchors preserved; build/vet/gofmt/tests all green.
@rwrife rwrife mentioned this pull request Jul 6, 2026
7 tasks
@rwrife
rwrife merged commit cf54bfd into main Jul 7, 2026
1 check passed
@rwrife
rwrife deleted the issue-6-personality-polish branch July 7, 2026 09:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant