一键导入
x-assess-ticket
Assess the current state of a Jira ticket and produce a summary for development work
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Assess the current state of a Jira ticket and produce a summary for development work
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Create a new Jira ticket with user-approved summary and description
Load full context for modifying Claude Code configuration, settings, hooks, MCP servers, skills, or the wrapper script on this machine
Convert an existing instruction file (scenario, agent, command) into a proper Claude Code skill
Claim a Jira ticket and set up tracking (administrative only - NO technical work)
Audit project-local Claude Code permissions and migrate appropriate ones to user scope
Expert code review of the most recent commit
| name | x-assess-ticket |
| description | Assess the current state of a Jira ticket and produce a summary for development work |
| argument-hint | ["ticket-number"] |
| model | opus |
| disable-model-invocation | true |
| allowed-tools | Bash(jira-*), Bash(jira issue *), Bash(ticket-*), Bash(git log*), Bash(ls*), Bash(mkdir*), Bash(date*), Read, Glob, Grep, Write, mcp__google-sheets__* |
You are assessing the current state of a Jira ticket to determine what's been done and what needs to happen next. Your output enables development work by a secondary agent without Jira access.
Ticket argument: $ARGUMENTS (if just a number, prepend "CLASS-")
Scripts available — all live in this skill's scripts/ directory. Because
that directory is not on $PATH, every script below must be called with its
full absolute path:
/home/buddy/.claude/skills/x-assess-ticket/scripts/<script-name>
| Script | Purpose |
|---|---|
jira-ticket-info <TICKET> | Quick summary (status, assignee, etc.) |
jira-ticket-detail <TICKET> | Full details (description, comments, links, attachments) |
jira-download-attachments <TICKET> [DIR] | Downloads all attachments to directory |
jira-set-user-field <TICKET> <FIELD-ID> <ACCOUNT-ID> | Set a user-type custom field via REST API |
ticket-config <KEY> | Read local config values (e.g. account-id, sheets-id) |
Test jira CLI access:
/home/buddy/.claude/skills/x-assess-ticket/scripts/jira-ticket-info $TICKET
If this fails with authentication errors, inform user to check their Jira credentials and stop.
If the ticket status from step 1 is "On Deck", transition it to "In Progress" and set Development Owner — replicating the "Begin Development" Jira automation:
jira issue move $TICKET "In Progress"
account_id=$(/home/buddy/.claude/skills/x-assess-ticket/scripts/ticket-config account-id)
/home/buddy/.claude/skills/x-assess-ticket/scripts/jira-set-user-field $TICKET customfield_10157 "$account_id"
If the move or edit fails, warn the user but continue with the assessment — these are non-blocking.
If the ticket is already "In Progress" or any other status, skip this step.
Run /home/buddy/.claude/skills/x-assess-ticket/scripts/jira-ticket-detail $TICKET to get the full picture: description, comments, linked issues, and attachments.
Pay special attention to comments - they often contain:
ls -la aidoc/ticket-docs/$TICKET/ 2>/dev/null || echo "No existing directory"
If directory exists, read any existing summary files to understand prior session work.
If not, create it:
mkdir -p aidoc/ticket-docs/$TICKET
git log --oneline --grep="$TICKET"
Note any commits, especially:
If attachments exist and appear relevant (especially images, mockups, CSVs):
/home/buddy/.claude/skills/x-assess-ticket/scripts/jira-download-attachments $TICKET aidoc/ticket-docs/$TICKET/
Images and mockups are high priority - they often contain essential context for UI work or bug reproduction.
Based on ticket content, comments, and git history, identify repository files that are relevant. Sources:
Analyze all gathered information to determine what needs to happen:
Create: aidoc/ticket-docs/$TICKET/summary=YYYYMMDD-<next-step>.md
Where <next-step> is a kebab-case description of the primary action (e.g., fix-totals, implement-sorting, address-qa-feedback).
Use this template:
# $TICKET: <Summary>
**Generated**: YYYY-MM-DD
**Status**: <from Jira>
**URL**: https://archeredu.atlassian.net/browse/$TICKET
## Overview
<2-3 sentences on what this ticket is about>
## Current State
<Where things stand - work done? Reverted? Awaiting QA?>
## Requirements
### Original
<Acceptance criteria from description>
### Updates
<Modifications from comments - who requested, when>
## Technical Context
### Relevant Files
- `path/to/file.ext` - <why relevant>
### Previous Commits
<Commits referencing this ticket, if any>
### Technical Analysis
<Root cause or implementation notes from comments>
## Attachments
<List downloaded files with descriptions>
## Linked Tickets
<Summarize relevant info - secondary agent can't access Jira>
## Next Steps
<Clear, actionable description>
1. <First step>
2. <Second step>
## Testing Checklist
<Testing requirements from ticket/comments>
---
[Created and submitted by AI: Claude]
After writing the summary file, update the Google Sheets todo list to close the assessment task and create the next task.
Get configuration:
/home/buddy/.claude/skills/x-assess-ticket/scripts/ticket-config sheets-id
Calculate work date (sheet's "today"): The sheet's concept of "today" is shifted by -6 hours (times before 6 AM count as the previous day):
date -d "6 hours ago" '+%-m/%-d/%Y'
Primary method (search from bottom of RawData):
mcp__google-sheets__find_empty_row with sheetName: "RawData" → row Nmcp__google-sheets__read_range with range RawData!A{N-20}:J{N} (last 20 rows)Fallback (if not found in last 20 rows):
mcp__google-sheets__read_range with range OpenItems!A2:J500RawData!A{N-100}:A{N} and search for that ID to get the actual RawData row numberUpdate the found row on RawData (not OpenItems):
Use mcp__google-sheets__write_range to write just those two cells.
mcp__google-sheets__read_range with range RawData!A{N-1}:A{N-1}mcp__google-sheets__write_range:
RawData!A{N}:J{N}[["ID", "", "Task", "Work", "WORK_DATE", "DUE_DATE", "", "", "TICKET", "Implement Claude's plan and review results"]]RawData Columns (10 total, A-J):
| A | B | C | D | E | F | G | H | I | J |
|---|---|---|---|---|---|---|---|---|---|
| ID | Priority | List | Context | Added | Due | Completed | Project | Job | Description |
Then proceed to Completion.
After ALL steps are complete (including the sheet update), report:
Then STOP.
[Created and submitted by AI: Claude]