diff --git a/.storkit/work/1_backlog/421_story_timer_command_for_deferred_agent_start.md b/.storkit/work/1_backlog/421_story_timer_command_for_deferred_agent_start.md deleted file mode 100644 index b6281a34..00000000 --- a/.storkit/work/1_backlog/421_story_timer_command_for_deferred_agent_start.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -name: "Timer command for deferred agent start" ---- - -# Story 421: Timer command for deferred agent start - -## User Story - -As a ..., I want ..., so that ... - -## Acceptance Criteria - -- [ ] Bot command `timer ` schedules a one-shot deferred start for the given story at the next occurrence of that time (server-local timezone) -- [ ] Bot command `timer list` shows all pending timers with story ID and scheduled time -- [ ] Bot command `timer cancel ` removes the pending timer for that story -- [ ] Timers are persisted to .storkit/timers.json so they survive server restarts -- [ ] A 30s tick loop (tokio task, same pattern as watchdog) checks for due timers and calls start_agent when triggered -- [ ] When a timer fires, the story must already be in current — timer does not move stories between stages -- [ ] Fired timers are removed after execution (one-shot, not recurring) -- [ ] Multiple timers for the same time are supported and respect agent slot contention via auto-assign - -## Out of Scope - -- TBD diff --git a/.storkit/work/1_backlog/422_story_unblock_command_to_reset_blocked_stories.md b/.storkit/work/1_backlog/422_story_unblock_command_to_reset_blocked_stories.md new file mode 100644 index 00000000..66e4bef1 --- /dev/null +++ b/.storkit/work/1_backlog/422_story_unblock_command_to_reset_blocked_stories.md @@ -0,0 +1,22 @@ +--- +name: "Unblock command to reset blocked stories" +--- + +# Story 422: Unblock command to reset blocked stories + +## User Story + +As a ..., I want ..., so that ... + +## Acceptance Criteria + +- [ ] Bot command `unblock ` clears blocked flag and resets retry_count to 0 on the story front matter +- [ ] Replies with confirmation including story ID and name +- [ ] Returns clear error if story is not found or not blocked +- [ ] Works from all transports (Matrix, WhatsApp, Slack) +- [ ] Exposed as an MCP tool so agents can unblock stories programmatically +- [ ] Works as a slash command in the web UI + +## Out of Scope + +- TBD