diff --git a/.storkit/work/1_backlog/377_bug_update_story_mcp_tool_writes_front_matter_values_as_yaml_strings_instead_of_native_types.md b/.storkit/work/1_backlog/377_bug_update_story_mcp_tool_writes_front_matter_values_as_yaml_strings_instead_of_native_types.md deleted file mode 100644 index b26dca2..0000000 --- a/.storkit/work/1_backlog/377_bug_update_story_mcp_tool_writes_front_matter_values_as_yaml_strings_instead_of_native_types.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -name: "update_story MCP tool writes front matter values as YAML strings instead of native types" ---- - -# Bug 377: update_story MCP tool writes front matter values as YAML strings instead of native types - -## Description - -The `update_story` MCP tool accepts `front_matter` as a `Map`, so all values are written as quoted YAML strings. Fields like `retry_count` (expected `u32`) and `blocked` (expected `bool`) end up as `"0"` and `"false"` in the YAML. This causes `parse_front_matter()` to fail because serde_yaml cannot deserialize a quoted string into `u32` or `bool`. When parsing fails, the story `name` comes back as `None`, so the status command shows no title for the story. - -## How to Reproduce - -1. Call `update_story` with `front_matter: {"blocked": "false", "retry_count": "0"}` -2. Read the story file — front matter contains `blocked: "false"` and `retry_count: "0"` (quoted strings) -3. Call `get_pipeline_status` or the bot `status` command -4. The story shows with no title/name - -## Actual Result - -Front matter values are written as quoted YAML strings. `parse_front_matter()` fails to deserialize `"false"` as `bool` and `"0"` as `u32`, returning an error. The story name is lost and the status command shows no title. - -## Expected Result - -The `update_story` tool should write `blocked` and `retry_count` as native YAML types (unquoted `false` and `0`), or `parse_front_matter()` should accept both string and native representations. The story name should always be displayed correctly in the status command. - -## Acceptance Criteria - -- [ ] update_story with front_matter {"blocked": "false"} writes `blocked: false` (unquoted) in the YAML -- [ ] update_story with front_matter {"retry_count": "0"} writes `retry_count: 0` (unquoted) in the YAML -- [ ] Story name is displayed correctly in the status command after update_story modifies front matter fields diff --git a/.storkit/work/1_backlog/378_story_status_command_shows_work_item_type_story_bug_spike_refactor_next_to_each_item.md b/.storkit/work/1_backlog/378_story_status_command_shows_work_item_type_story_bug_spike_refactor_next_to_each_item.md deleted file mode 100644 index c0bb4e1..0000000 --- a/.storkit/work/1_backlog/378_story_status_command_shows_work_item_type_story_bug_spike_refactor_next_to_each_item.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: "Status command shows work item type (story, bug, spike, refactor) next to each item" ---- - -# Story 378: Status command shows work item type (story, bug, spike, refactor) next to each item - -## User Story - -As a user viewing the pipeline status, I want to see the type of each work item (story, bug, spike, refactor) so that I can quickly understand what kind of work is in progress without having to open individual files. - -## Acceptance Criteria - -- [ ] The status command displays the work item type (story, bug, spike, refactor) as a label next to each item — e.g. "375 [bug] — Default project.toml contains Rust-specific setup commands" -- [ ] The type is extracted from the story_id filename convention ({id}_{type}_{slug}) -- [ ] All known types are supported: story, bug, spike, refactor -- [ ] Unknown or missing types are omitted gracefully (no crash, no placeholder) - -## Out of Scope - -- TBD diff --git a/.storkit/work/5_done/374_story_web_ui_implements_all_bot_commands_as_slash_commands.md b/.storkit/work/5_done/374_story_web_ui_implements_all_bot_commands_as_slash_commands.md new file mode 100644 index 0000000..668a527 --- /dev/null +++ b/.storkit/work/5_done/374_story_web_ui_implements_all_bot_commands_as_slash_commands.md @@ -0,0 +1,30 @@ +--- +name: "Web UI implements all bot commands as slash commands" +--- + +# Story 374: Web UI implements all bot commands as slash commands + +## User Story + +As a user working in the storkit web UI, I want to type slash commands (e.g. `/status`, `/start 42`, `/cost`) in the chat input to trigger the same deterministic bot commands available in Matrix, so that I can manage my project entirely from the browser without needing a chat bot. + +## Acceptance Criteria + +- [ ] /status — shows pipeline status and agent availability; /status shows story triage dump +- [ ] /assign — pre-assign a model to a story +- [ ] /start — start a coder on a story; /start opus for specific model +- [ ] /show — display full text of a work item +- [ ] /move — move a work item to a pipeline stage +- [ ] /delete — remove a work item from the pipeline +- [ ] /cost — show token spend (24h total, top stories, by agent type, all-time) +- [ ] /git — show git status (branch, uncommitted changes, ahead/behind) +- [ ] /overview — show implementation summary for a merged story +- [ ] /rebuild — rebuild the server binary and restart +- [ ] /reset — clear the current Claude Code session +- [ ] /help — list all available slash commands +- [ ] Slash commands are handled at the frontend/backend level without LLM invocation +- [ ] Unrecognised slash commands show a helpful error message + +## Out of Scope + +- TBD