| name | milestone-manager |
| description | Manage milestones for release planning via Fractary CLI |
| model | haiku |
Milestone Manager Skill
You support listing milestones and assigning issues to milestones. You are used for release planning and sprint management.
list-milestones Parameters
working_directory(optional): Project directory path
Example Request
{
"operation": "list-milestones",
"parameters": {}
}
assign-milestone Parameters
issue_id(required): Issue identifiermilestone(required): Milestone name or ID (or empty to remove)working_directory(optional): Project directory path
Example Request
{
"operation": "assign-milestone",
"parameters": {
"issue_id": "123",
"milestone": "v2.0"
}
}
NOTE: create-milestone and update-milestone operations require direct API access. Use gh api for these operations until CLI support is added.
List Milestones
fractary work milestone list --json
Assign Milestone to Issue
fractary work milestone set <issue_number> --milestone "v2.0" --json
CLI Response Format
Success (list-milestones):
{
"status": "success",
"data": {
"milestones": [
{
"id": "5",
"number": 5,
"title": "v2.0 Release",
"description": "Second major release",
"due_date": "2025-03-01",
"state": "open",
"open_issues": 10,
"closed_issues": 5,
"url": "https://github.com/owner/repo/milestone/5"
}
],
"count": 1
}
}
Success (assign-milestone):
{
"status": "success",
"data": {
"issue_id": "123",
"milestone": "v2.0 Release",
"milestone_id": "5"
}
}
Execution Pattern
# List milestones
result=$(fractary work milestone list --json 2>&1)
cli_status=$(echo "$result" | jq -r '.status')
if [ "$cli_status" = "success" ]; then
milestones=$(echo "$result" | jq '.data.milestones')
fi
# Assign milestone
result=$(fractary work milestone set "$ISSUE_ID" --milestone "$MILESTONE" --json 2>&1)
Success (list-milestones):
{
"status": "success",
"operation": "list-milestones",
"result": {
"milestones": [
{
"id": "5",
"title": "v2.0 Release",
"description": "Second major release",
"due_date": "2025-03-01",
"state": "open",
"url": "https://github.com/owner/repo/milestone/5",
"platform": "github"
}
],
"count": 1
}
}
Success (assign-milestone):
{
"status": "success",
"operation": "assign-milestone",
"result": {
"issue_id": "123",
"milestone": "v2.0 Release",
"milestone_id": "5",
"platform": "github"
}
}
Error:
{
"status": "error",
"operation": "assign-milestone",
"code": "NOT_FOUND",
"message": "Milestone 'v3.0' not found"
}
Missing Required Parameters
- Validate before CLI invocation
- Return error with code "VALIDATION_ERROR"
Milestone Not Found
- CLI returns error code "NOT_FOUND"
- Return error with message
Issue Not Found
- CLI returns error code "NOT_FOUND"
- Return error with message
Authentication Failed
- CLI returns error code "AUTH_FAILED"
- Return error suggesting checking token
CLI Not Found
- Check if
fractarycommand exists - Return error suggesting:
npm install -g @fractary/cli
Start/End Message Format
Start Message (list-milestones)
🎯 STARTING: Milestone Manager (list-milestones)
───────────────────────────────────────
End Message (list-milestones)
✅ COMPLETED: Milestone Manager (list-milestones)
Found 3 milestones
───────────────────────────────────────
Start Message (assign-milestone)
🎯 STARTING: Milestone Manager (assign-milestone)
Issue: #123
Milestone: v2.0
───────────────────────────────────────
End Message (assign-milestone)
✅ COMPLETED: Milestone Manager (assign-milestone)
Assigned: Issue #123 → milestone "v2.0 Release"
───────────────────────────────────────
Dependencies
@fractary/cli >= 0.3.0- Fractary CLI with work modulejq- JSON parsing- work-manager agent for routing
Migration Notes
Previous implementation: Used handler scripts (handler-work-tracker-github, etc.) Current implementation: Uses Fractary CLI directly
Available Operations
- ✅
list-milestones-fractary work milestone list - ✅
assign-milestone-fractary work milestone set
Not Yet Available via CLI
- Create milestone - Use
gh apidirectly - Update milestone - Use
gh apidirectly
Platform Notes
GitHub
- Milestones identified by number (not name)
- Supports title, description, due date, state (open/closed)
Jira (Future)
- Uses versions or sprints depending on project type
Linear (Future)
- Uses cycles for sprint planning