storkit: done 374_story_web_ui_implements_all_bot_commands_as_slash_commands

This commit is contained in:
dave
2026-03-23 18:35:56 +00:00
parent 1a3b69301a
commit f10ea1ecf2
3 changed files with 30 additions and 50 deletions

View File

@@ -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<String, String>`, 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

View File

@@ -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

View File

@@ -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 <number> shows story triage dump
- [ ] /assign <number> <model> — pre-assign a model to a story
- [ ] /start <number> — start a coder on a story; /start <number> opus for specific model
- [ ] /show <number> — display full text of a work item
- [ ] /move <number> <stage> — move a work item to a pipeline stage
- [ ] /delete <number> — 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 <number> — 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