ワンクリックで
capp-create-a-ticket
Create well-structured Jira tickets through adaptive interview. Captures goals, constraints, and acceptance criteria without prescribing implementation. Use when creating new work items for the CaPP team.
メニュー
Create well-structured Jira tickets through adaptive interview. Captures goals, constraints, and acceptance criteria without prescribing implementation. Use when creating new work items for the CaPP team.
Import a skill from exactly one GitHub file URL, raw GitHub URL, or single-file gist URL into ~/.agents/skills/. Use when the user wants to add a skill from GitHub content.
Address all review comments on a GitHub pull request. Fixes code, pushes back with evidence, resolves threads after completion, and updates AGENTS.md only when specifically requested. Use after receiving PR review feedback.
Tidy up CaPP git worktrees whose PRs are merged or closed without merging. Scans for directories matching the `<repo>_<TICKET-ID>` worktree convention (e.g. `twinkl-sanity-cms_CAPP-1234`), looks up each worktree's PR via `gh`, classifies by state, flags closed-unmerged PRs, and removes worktrees only after explicit user confirmation. Use when the user asks to clean up worktrees, prune CAPP worktrees, or tidy `~/Development`.
Implement a Jira ticket by iteratively completing subtasks using TDD. Creates a feature branch, one commit per subtask, and a draft PR. Also handles small well-defined bugs without subtasks. Use when ready to start coding.
Diagnose and fix GitHub Actions CI failures on a pull request. Fixes code issues, validates locally using identified check tiers, and pushes focused fixes. Use when CI is failing on a PR.
Centralised CAPP Jira metadata — cloud ID, field IDs, transition IDs, issue type IDs, link types. Invoke before any Jira MCP call to skip redundant discovery API calls and ensure consistent field references.
| name | capp-create-a-ticket |
| description | Create well-structured Jira tickets through adaptive interview. Captures goals, constraints, and acceptance criteria without prescribing implementation. Use when creating new work items for the CaPP team. |
You are helping an Engineering Manager or Product Manager create a well-structured Jira ticket. Your goal is to capture the right level of detail — enough context for a developer to understand and pick up the work, without prescribing implementation.
This is the first step in the CaPP development workflow. The ticket may sit for days or weeks before a developer picks it up, so do not reference next steps or downstream skills.
For small bugs or tasks, the lightweight workflow may be capp-create-a-ticket -> capp-do-work -> capp-self-review. Standard feature work should continue through PRD and subtask planning.
Expect a user request, bug report, feature idea, or rough work description. The user may also provide links to designs, Confluence pages, existing tickets, customer reports, or affected systems.
Create one or more Jira tickets with:
Ask the user what they need. Adapt your interview style:
Gather the following through conversation:
Required:
Prompt for (don't demand):
CAPP-387) or an epic name (e.g. "CMS BAU")Watch for:
Before creating any Jira issues, invoke capp-get-jira-info to load hardcoded CAPP Jira metadata (cloud ID, project key/ID, issue type IDs, link types). Use these values directly instead of discovering them via API.
Project: Default to CAPP (project ID 14798). Ask if a different project is needed.
Ticket structure:
## TL;DR
[One-line summary of the change]
## Design Links
[Figma links, mockups — if any were mentioned]
## Links
[Confluence pages, related tickets, external references]
## Problem
[What needs to change and why]
## Acceptance Criteria
- [ ] [Measurable outcome 1]
- [ ] [Measurable outcome 2]
## Affected Users
[Who is impacted by this change]
## CMS Impact
[Does this involve Sanity CMS? Schema changes? Content changes? "None" if not applicable]
## Constraints
[Deadlines, dependencies, technical limitations, out of scope items]
## Open Questions
[Unresolved details or assumptions that the developer should be aware of]
If the work should be multiple tickets:
If the user confirms the ticket should be in a sprint:
Otherwise leave it in the backlog.
Ask whether the ticket should belong to an epic. The user may provide either an epic key (e.g. CAPP-387) or an epic name (e.g. "CMS BAU").
If the user provides an epic key:
If the user provides an epic name:
project = <projectKey> AND issuetype = Epic AND summary ~ "<epic name>"Assigning the epic:
Assign the ticket to the epic using Jira hierarchy metadata — do NOT use issue links (Relates, Blocks, etc.) for epic membership.
parent field when creating the issue.parent is unavailable or rejected, inspect Jira field metadata for the Epic Link custom field and use that instead.Scope splitting: If the request is split into multiple tickets, ask whether the selected epic applies to all tickets or only specific ones.
CaPP Jira is expected to support this workflow. Use values from capp-get-jira-info (cloud ID, issue type IDs, link types, field IDs) to skip redundant discovery calls. Always pass contentFormat: "markdown" when writing description content.
If a field, issue type, priority, sprint, or link operation fails, follow the fallback protocol in capp-get-jira-info — perform live discovery once, continue if unambiguous, and report the mismatch. If the developer is unavailable and context would otherwise be lost, add a Jira comment with the information instead of overwriting the description.