Ticket splitter
Skill cat2000/domain-knowledge-ops/.cursor/skills/ticket-splitter
Agent skills for Cursor: Confluence/Jira → domain briefs → story risk & INVEST splits and test case Design. Offline DEMO-1 — no Atlassian needed to try.
npx -y skills add cat2000/domain-knowledge-ops --skill ticket-splitterAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 24 days oldThe repository was created 24 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when splitting one Jira story into INVEST-testable backlog items with clear scope and done_when. Triggers: @ticket-splitter, Jira key, pasted requirement, team=, brief, or after @requirement-risk on the same key. Anchors to domain briefs; does not write curated.
SKILL.md
6.3 KB, as published. Nobody here has run it
ticket-splitter (INVEST backlog slices)
First principles
Artifact: iteration-ready commitments — each item has a boundary (scope) and an observable completion face (done_when). Not a task list or “dev vs QA” role split.
Quality: done_when must say what done looks like and how it is seen (user behavior / system-observable state / contract). “Dev done”, “ready for QA” are not completion faces. Title = 3-second headline (one primary outcome). scope bullets = one idea each (P11/P12).
Wiki @generate-knowledge-from-wiki | This skill | |
|---|---|---|
| Cost of error | Pollutes library briefs | Planning meeting rewrites a few items |
| Who stops bad output | Human confirms modules | Scripts block fake testability / missing structure |
| Loop | Prep → confirm → compose → gate | Draft → gate → fix failures only → gate |
Corollaries
- Do not wait for human confirm in the loop.
- Borrow wiki’s script-verified explicit form, not confirm/continue ritual.
- Scripts do not decide “how many slices”.
- Substance:
ticket_system.md; presentation:references/presentation.md.
When to use
- Planning: cut one Jira story into executable backlog items
- Need observable
scope/done_when - Optional domain briefs under
curated/by-root/<root_id>/
When not
| Scenario | Use |
|---|---|
| Risk only | @requirement-risk |
| Refresh wiki / write briefs | @generate-knowledge-from-wiki / @distill-domain-knowledge |
| Sprint bulk into briefs | @add-knowledge-from-jira |
| Requirement unreadable | State blockers; do not interrogate endlessly |
How to invoke
@ticket-splitter DEMO-1 team=demo(offline demo)@ticket-splitter PROJ-123@ticket-splitter team=<key> PROJ-123@ticket-splitter PROJ-123+ code paths (R2.5 anchors)@ticket-splitter PROJ-123 brief- Or pasted requirement text
Offline DEMO-*: ../_shared/offline-demo.md.
| Param | Values | Default |
|---|---|---|
team | key/alias in team-roots.json | attribution / Agile Team |
brief | short-mode words in message | full items |
Preconditions & failures
- Offline
DEMO-*: no credentials - Real keys:
.envAtlassian/Jira credentials + network;fetch_jira_attachments.pyas needed - No credentials → paste text or
DEMO-1 - No brief → still emit; note missing anchors
- Gate fail → fix and re-run; do not claim done without pass
Decision tree
Jira key?
├─ DEMO-* / offline → fixtures/offline-demo; skip network
├─ real key → attachments via MCP or fetch script
├─ Resolve team/root
├─ primary slug → S7 locale brief (`*-domain-brief.md` / `*-领域知识定稿.md` per locale); else S6 source-brief / work draft (noted)
├─ Jira says “dev only, test elsewhere”? → do not invent test rows; note in narrative
├─ brief mode? → Scope + split overview + correction note (still gated)
├─ Draft → .jira_attachments/<KEY>/split_draft.md when KEY present
└─ Gate: validate_ticket_split.py [--brief] → fix → deliver
Responsibility
| Layer | Agent | Script |
|---|---|---|
| Evidence | Which briefs / code anchors | Fetch issue & attachments |
| Generate | Split + presentation | No prose authorship |
| Gate | Fix from report | validate_ticket_split.py |
| Semantic review | Only if user asks for principles | None |
Gate rules
- Full and
briefmust pass validator before delivery. - Fake testability (
done_when= “dev done / ready for QA” with no observable state) → fail. - Need Scope +
## Split overview(or locale equivalent the validator accepts); full items need title/scope/done_when/deps/confidence. - P11 title anti-patterns and P12 welded scope bullets → fail when detectable.
- On fail, fix only reported issues.
- Standards:
ticket_system.md+ presentation; scripts verify only. - Never write
curated/or run distill check.
Presentation & domain library
references/presentation.md· P10:../_shared/presentation-p10.md../../contracts/jira-issue-domain-knowledge-context.md- Anchor
scope/done_whento S7 locale briefs when present (R2.5); if only S6 / work draft exists, note “not S7” and still constrain to that evidence.
Unlike @add-knowledge-from-jira, this skill outputs iteration backlog items, not library merges.
Agent checklist
- Load Jira + domain evidence; fetch attachments if needed.
- Split per
ticket_system; constrain with briefs; write correction narrative when needed. - Presentation + P11/P12 self-check; attach risk
R-00Nwhen same-session risk exists (P7). validate_ticket_split.py; fix until pass; deliver in chat.- Do not default-wait for human confirm.
Done when
- Validator exit 0 (or explicitly marked failed)
- Scope + split overview present
- Full items have observable
done_when; no fake-testability ban words - Titles/scope pass P11/P12 intent
- Risk
R-00Nlinked when applicable - Not split primarily as “dev vs test” for the same outcome
Forbidden
- Write
curated// run distill check - Items that contradict explicit brief out-of-scope
- Invent subsystem names absent from briefs
- Skip gate or wait for confirm unless ungated draft requested
- Copy wiki confirm→continue as the split main flow
- Weld multi-concern scope into one bullet; empty verbs as fake coverage
Handoff to @ticket-test-design
After a usable split (or instead of split when AC are already clear), testers may @ticket-test-design <same KEY> to produce must/should/later cases proving AC / done_when.
Examples
@ticket-splitter DEMO-1 team=demo
→ offline → draft → validate → deliver
@requirement-risk PROJ-1 then @ticket-splitter PROJ-1
→ no confirm wait; link R-00N; note open MUST assumptions