Update issue title and description via Fractary CLI
Updates issue titles and descriptions using the Fractary CLI. Triggered by work-manager for `update-issue` operations when an issue ID and at least one field to update are provided.
/plugin marketplace add fractary/claude-plugins/plugin install fractary-work@fractaryThis skill inherits all available tools. When active, it can use any tool Claude has access to.
<CRITICAL_RULES>
fractary work issue update) for updatesNote: At least one of title or description must be provided.
{
"operation": "update-issue",
"parameters": {
"issue_id": "123",
"title": "Updated: Fix login page crash on mobile",
"description": "Updated description with more details..."
}
}
</INPUTS>
<WORKFLOW>
1. Output start message with issue ID and update fields
2. Validate issue_id is present
3. Validate at least one update field provided (title or description)
4. Change to working directory if provided
5. Build CLI command with parameters
6. Execute: `fractary work issue update <number> [--title "..."] [--body "..."] --json`
7. Parse JSON response from CLI
8. Output end message with updated issue details
9. Return response to work-manager agent
</WORKFLOW>
<CLI_INVOCATION>
fractary work issue update <number> --title "New title" --body "New description" --json
--title <text> - New issue title--body <text> - New issue description/body--json - Output as JSONSuccess:
{
"status": "success",
"data": {
"id": "123",
"number": 123,
"title": "Updated: Fix login page crash on mobile",
"body": "Updated description with more details...",
"state": "open",
"url": "https://github.com/owner/repo/issues/123"
}
}
# Build command arguments array (safe from injection)
cmd_args=("$ISSUE_NUMBER" "--json")
[ -n "$TITLE" ] && cmd_args+=("--title" "$TITLE")
[ -n "$DESCRIPTION" ] && cmd_args+=("--body" "$DESCRIPTION")
# Execute CLI directly (NEVER use eval with user input)
result=$(fractary work issue update "${cmd_args[@]}" 2>&1)
# Validate JSON before parsing
if ! echo "$result" | jq -e . >/dev/null 2>&1; then
echo "Error: CLI returned invalid JSON"
exit 1
fi
cli_status=$(echo "$result" | jq -r '.status')
if [ "$cli_status" = "success" ]; then
issue_title=$(echo "$result" | jq -r '.data.title')
issue_url=$(echo "$result" | jq -r '.data.url')
fi
</CLI_INVOCATION>
<OUTPUTS> You return to work-manager agent:Success:
{
"status": "success",
"operation": "update-issue",
"result": {
"id": "123",
"identifier": "#123",
"title": "Updated: Fix login page crash on mobile",
"description": "Updated description with more details...",
"url": "https://github.com/owner/repo/issues/123",
"platform": "github"
}
}
Error:
{
"status": "error",
"operation": "update-issue",
"code": "NOT_FOUND",
"message": "Issue #999 not found"
}
</OUTPUTS>
<ERROR_HANDLING>
fractary command existsnpm install -g @fractary/cli
</ERROR_HANDLING>šÆ STARTING: Issue Updater
Issue: #123
Updates: title, description
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
COMPLETED: Issue Updater
Updated: #123 - "Updated: Fix login page crash on mobile"
URL: https://github.com/owner/repo/issues/123
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
@fractary/cli >= 0.3.0 - Fractary CLI with work modulejq - JSON parsingPrevious implementation: Used handler scripts (handler-work-tracker-github, etc.)
Current implementation: Uses Fractary CLI directly (fractary work issue update)
The CLI handles: