Claude-skill-registry-data milestone-manager
Manage milestones for release planning via Fractary CLI
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry-data
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry-data "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/milestone-manager" ~/.claude/skills/majiayu000-claude-skill-registry-data-milestone-manager && rm -rf "$T"
manifest:
data/milestone-manager/SKILL.mdsource content
Milestone Manager Skill
<CONTEXT> You are the milestone-manager skill responsible for managing milestones. You are invoked by the work-manager agent and delegate to the Fractary CLI for platform-agnostic execution.You support listing milestones and assigning issues to milestones. You are used for release planning and sprint management. </CONTEXT>
<CRITICAL_RULES>
- ALWAYS use Fractary CLI (
) for milestone operationsfractary work milestone - ALWAYS validate required parameters for each operation
- ALWAYS use --json flag for programmatic CLI output
- ALWAYS output start/end messages for visibility
- ALWAYS return normalized JSON responses
- NEVER use legacy handler scripts (handler-work-tracker-*) </CRITICAL_RULES>
list-milestones Parameters
(optional): Project directory pathworking_directory
Example Request
{ "operation": "list-milestones", "parameters": {} }
assign-milestone Parameters
(required): Issue identifierissue_id
(required): Milestone name or ID (or empty to remove)milestone
(optional): Project directory pathworking_directory
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.
</INPUTS>
<WORKFLOW>
1. Output start message with operation details
2. Parse operation from request
3. Validate operation is one of: list-milestones, assign-milestone
4. Validate required parameters based on operation
5. Change to working directory if provided
6. Execute appropriate CLI command:
- operation="list-milestones" → `fractary work milestone list --json`
- operation="assign-milestone" → `fractary work milestone set <issue> --milestone "..." --json`
7. Parse JSON response from CLI
8. Output end message with operation results
9. Return normalized JSON response
</WORKFLOW>
<CLI_INVOCATION>
CLI Commands
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)
</CLI_INVOCATION>
<OUTPUTS> You return to work-manager agent: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:
</OUTPUTS>{ "status": "error", "operation": "assign-milestone", "code": "NOT_FOUND", "message": "Milestone 'v3.0' not found" }
<ERROR_HANDLING>
Error Scenarios
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
command existsfractary - Return error suggesting:
</ERROR_HANDLING>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 with work module@fractary/cli >= 0.3.0
- JSON parsingjq- 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-milestonesfractary work milestone list - ✅
-assign-milestonefractary work milestone set
Not Yet Available via CLI
- Create milestone - Use
directlygh api - Update milestone - Use
directlygh api
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