Typing work pause lands you on main with a paused branch on the stack. The confirmation said: “Resume with: work-resume.” That’s it. No mention that you could start something new from here.

And if you typed work with exactly one paused branch on the stack, it auto-resumed. No question. Just resumed.

So pause was effectively: commit your WIP, switch to main, immediately reverse. That’s not pause — that’s an elaborate roundtrip with extra steps.

The fix is small. Stack=1 now shows the same picker as stack=2+:

You have 1 paused branch:
  1. issue-108-some-work  #108  paused 3 hours ago

Resume it, or start something new? (1 / new)

And work-pause’s confirmation now ends with: “You’re on main — type work to resume this branch or start new work.”

We also updated work-start’s detection block, which had a comment explicitly saying stack=1 auto-routes to work-resume. That comment was the specification for the broken behaviour — it had to go too.

Worth having tests. The lifecycle skills are markdown, not executable code, so the tests are content assertions — we check that the routing table has no separate “1 entry” row, that the confirmation mentions main and new work, that work-start no longer claims auto-resume. Fourteen tests in tests/test_work_lifecycle.py, locking the routing rules in place.

One thing caught me during test writing: assert "automatically" not in skill_text matched the frontmatter description: field, not the routing table I was targeting. The word appeared in both. Had to scope the assertion to pipe-delimited rows only. Related: **word** automatically doesn’t match "word automatically" — markdown bold survives as raw characters in the string. Both are now garden entries.

Alongside the fix, cleared two pieces of clutter: the quarkus-flow stub (a one-paragraph file pointing at a garden entry — the actual content had moved out long ago) and sync-local from marketplace.json (it’s dev-only, shouldn’t be advertised to marketplace users). 29 skills now.


<
Previous Post
Delegation API debt from #245
>
Next Post
Names that mean something