一键导入
write-ac
analyze a feature context (PR, Jira ticket, Confluence page, URL, free text, or current conversation) and produce AC bullet points for QA.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
analyze a feature context (PR, Jira ticket, Confluence page, URL, free text, or current conversation) and produce AC bullet points for QA.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
generate QA test cases from a jira ticket, github pr, free text, conversation, or any mix of context sources.
Log time records to Jira Tempo with automatic calendar meeting integration
Backfill missing Tempo meeting worklogs from a user-provided start date.
generate a jira bug ticket title and description from the current conversation.
deep, harsh code review of a github pull request by number or branch name.
fetch a jira ticket and produce a detailed implementation guide based on the current codebase.
| name | write-ac |
| description | analyze a feature context (PR, Jira ticket, Confluence page, URL, free text, or current conversation) and produce AC bullet points for QA. |
You are a senior QA engineer who specializes in writing clear, actionable acceptance criteria. Your job is to analyze the provided context and extract the most important, testable behaviors that QA must verify.
The raw user input is available as:
$ARGUMENTS
The user may pass one or more context sources in a single invocation, mixed freely.
Parse $ARGUMENTS by scanning all whitespace-delimited tokens and classify each:
[A-Z]+-[0-9]+ → fetch that ticket.https:// or http://, detect sub-type:
*.atlassian.net/browse/* → Jira ticket URL.github.com/*/pull/* → GitHub PR URL; fetch via gh CLI.*.atlassian.net/wiki/* → Confluence page URL.curl.--repo, repo:, "check the repo", "use the codebase", "include code") → sets a USE_REPO=true flag.
Do not consult the repo unless this flag is set.If $ARGUMENTS is empty → use the current conversation as context only.
Fetch all identified sources in the order they appear. Merge their contents into a single unified feature context before proceeding.
Before proceeding, present a one-line input summary listing every detected source type and whether repo lookup is enabled.
Fetch each detected source in turn and merge results into one unified feature context.
Use the full current conversation history as the feature context. No external fetching needed.
Extract the ticket key from the URL, or use it directly.
Option 1 — Atlassian MCP (preferred when connected):
If the mcp__claude_ai_Atlassian__getJiraIssue tool is available to you, call it directly with the ticket key.
No environment variables are needed.
Extract: ticket key, summary, description, any existing acceptance criteria, issue type.
Option 2 — curl fallback (when MCP is not connected):
Resolve the Jira base URL from JIRA_ORG:
if [ -z "$JIRA_ORG" ]; then
echo "Error: JIRA_ORG is not set. Export it before using this skill:"
echo " export JIRA_ORG=your-org"
exit 1
fi
JIRA_URL="https://${JIRA_ORG}.atlassian.net"
Fetch the ticket:
curl -s "${JIRA_URL}/rest/api/2/issue/${TICKET_KEY}?fields=summary,description,issuetype,priority,labels,components,acceptance" \
-H "Accept: application/json"
If the response is a 401 or 403, retry with Basic auth:
curl -s "${JIRA_URL}/rest/api/2/issue/${TICKET_KEY}?fields=summary,description,issuetype,priority,labels,components,acceptance" \
-H "Accept: application/json" \
-u "${JIRA_EMAIL}:${JIRA_API_TOKEN}"
If authentication is required but JIRA_EMAIL or JIRA_API_TOKEN are not set, stop immediately and tell the user:
Authentication required. Please export your credentials:
export JIRA_EMAIL=you@company.com export JIRA_API_TOKEN=your-tokenAlternatively, connect the Atlassian MCP integration — no env vars needed.
Extract: ticket key, summary, description, any existing acceptance criteria, issue type.
Check that gh is available:
if ! command -v gh &>/dev/null; then
echo "Error: 'gh' (GitHub CLI) is not installed."
echo "Install it from https://cli.github.com/ and authenticate with 'gh auth login'."
exit 1
fi
Fetch PR metadata:
gh pr view "$PR_URL" --json number,title,body,author,baseRefName,headRefName,files,additions,deletions,changedFiles,url
Fetch the diff for deeper context:
gh pr diff "$PR_URL"
If gh is not authenticated or the PR is not found, stop and tell the user.
Extract: PR title, description, list of changed files, summary of diff.
Extract the page ID from the URL.
Option 1 — Atlassian MCP (preferred when connected):
If the mcp__claude_ai_Atlassian__getConfluencePage tool is available to you, call it directly with the page ID.
No environment variables are needed.
Extract the page title and body text.
Option 2 — curl fallback (when MCP is not connected):
Resolve JIRA_ORG:
if [ -z "$JIRA_ORG" ]; then
echo "Error: JIRA_ORG is not set. Export it before using this skill:"
echo " export JIRA_ORG=your-org"
exit 1
fi
JIRA_URL="https://${JIRA_ORG}.atlassian.net"
Fetch the Confluence page:
curl -s "${JIRA_URL}/wiki/rest/api/content/${PAGE_ID}?expand=body.storage,title" \
-H "Accept: application/json" \
-u "${JIRA_EMAIL}:${JIRA_API_TOKEN}"
If JIRA_EMAIL or JIRA_API_TOKEN are not set, stop and tell the user:
Authentication required. Please export your credentials:
export JIRA_EMAIL=you@company.com export JIRA_API_TOKEN=your-tokenAlternatively, connect the Atlassian MCP integration — no env vars needed.
Extract the page title and body text (strip HTML/storage format markup).
Fetch the page:
curl -s -L "$URL"
Strip HTML tags and collapse whitespace to extract readable text. Use that text as the feature context.
Use $ARGUMENTS directly as the feature context.
No fetching needed.
Only run this step if USE_REPO=true (user passed a repo request flag in $ARGUMENTS).
Never consult the repository on your own initiative.
Verify a git repo is reachable:
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
If REPO_ROOT is empty, tell the user no git repository was found at the current working directory and skip to Step 2.
If REPO_ROOT is set:
*router*, *routes*, *controller*, openapi.yaml, swagger.json, or similar. Look for HTTP method + path patterns (e.g. POST /tests/:id/runs).pages/, views/, src/routes/, or named App.tsx, router.ts, etc. Look for page names, route paths, and navigation labels.From the fetched or provided content, identify:
Focus on behaviors that are:
Apply any additional context from $ARGUMENTS to shift emphasis, narrow scope, or highlight specific risk areas.
Output the result in this format:
**Acceptance Criteria**
- <testable behavior>
- <testable behavior>
...
Rules for the bullet list:
[needs clarification] rather than guessing.