huskies: merge 880

This commit is contained in:
dave
2026-04-29 21:41:44 +00:00
parent 4d24b5b661
commit 7e2f122d36
16 changed files with 508 additions and 40 deletions
+4 -1
View File
@@ -101,7 +101,10 @@ mod tests {
assert!(names.contains(&"mesh_status"));
assert!(names.contains(&"run_check"));
assert!(names.contains(&"cleanup_worktrees"));
assert_eq!(tools.len(), 69);
assert!(names.contains(&"create_epic"));
assert!(names.contains(&"list_epics"));
assert!(names.contains(&"show_epic"));
assert_eq!(tools.len(), 72);
}
#[test]
@@ -242,6 +242,10 @@ pub(super) fn story_tools() -> Vec<Value> {
"type": "string",
"description": "Set or change the 'agent' YAML front matter field"
},
"epic": {
"type": "string",
"description": "Set or change the 'epic' field — the numeric epic ID this item belongs to (e.g. '880'). Agents spawned for this item will have the epic context prepended to their system prompt."
},
"front_matter": {
"type": "object",
"description": "Arbitrary YAML front matter key-value pairs to set or update. Values may be strings, booleans, integers, numbers, or arrays (e.g. [490, 491]).",
@@ -369,6 +373,59 @@ pub(super) fn story_tools() -> Vec<Value> {
"properties": {}
}
}),
json!({
"name": "create_epic",
"description": "Create an epic: a shared-context container for chains of related stories. Epics are not pipeline-driven but inject their goal and context into agent prompts for all member work items. Returns the epic_id.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Human-readable epic name"
},
"goal": {
"type": "string",
"description": "What this epic aims to achieve"
},
"motivation": {
"type": "string",
"description": "Optional: why this epic matters"
},
"key_files": {
"type": "string",
"description": "Optional: key files or modules relevant to this epic"
},
"success_criteria": {
"type": "array",
"items": { "type": "string" },
"description": "Optional: list of high-level success criteria for the epic"
}
},
"required": ["name", "goal"]
}
}),
json!({
"name": "list_epics",
"description": "List all epics with their member work item counts and n/m done rollup.",
"inputSchema": {
"type": "object",
"properties": {}
}
}),
json!({
"name": "show_epic",
"description": "Show details for a single epic: its content and all member work items with their pipeline stages.",
"inputSchema": {
"type": "object",
"properties": {
"epic_id": {
"type": "string",
"description": "Epic identifier (e.g. '880')"
}
},
"required": ["epic_id"]
}
}),
json!({
"name": "close_bug",
"description": "Archive a bug from work/2_current/ or work/1_backlog/ to work/5_done/ and auto-commit to master.",