storkit: done 374_story_web_ui_implements_all_bot_commands_as_slash_commands
This commit is contained in:
@@ -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
|
|
||||||
@@ -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
|
|
||||||
@@ -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
|
||||||
Reference in New Issue
Block a user