ragarciaruben 1.20.19 → 1.20.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/.github/agents/product-owner.agent.md +98 -0
  2. package/.github/agents/verifier.agent.md +3 -0
  3. package/.github/prompts/break-down-epic.prompt.md +125 -0
  4. package/.github/prompts/create-tickets.prompt.md +93 -0
  5. package/.github/prompts/refine-backlog.prompt.md +88 -0
  6. package/bin/install.js +406 -1969
  7. package/get-shit-done/templates/AGENTS.md +83 -0
  8. package/get-shit-done/templates/opencode/agents/executor.md +61 -0
  9. package/get-shit-done/templates/opencode/agents/planner.md +77 -0
  10. package/get-shit-done/templates/opencode/agents/product-owner.md +65 -0
  11. package/{.github/copilot-context/agents/verifier.agent.md → get-shit-done/templates/opencode/agents/verifier.md} +12 -35
  12. package/get-shit-done/templates/opencode/commands/break-down-epic.md +120 -0
  13. package/get-shit-done/templates/opencode/commands/create-tickets.md +75 -0
  14. package/{.github/copilot-context/prompts/execute-phase.prompt.md → get-shit-done/templates/opencode/commands/execute-phase.md} +5 -33
  15. package/{.github/copilot-context/prompts/map-codebase.prompt.md → get-shit-done/templates/opencode/commands/map-codebase.md} +12 -41
  16. package/{.github/copilot-context/prompts/new-project.prompt.md → get-shit-done/templates/opencode/commands/new-project.md} +17 -33
  17. package/{.github/copilot-context/prompts/pause-work.prompt.md → get-shit-done/templates/opencode/commands/pause-work.md} +6 -19
  18. package/{.github/copilot-context/prompts/plan-phase.prompt.md → get-shit-done/templates/opencode/commands/plan-phase.md} +4 -27
  19. package/{.github/copilot-context/prompts/progress.prompt.md → get-shit-done/templates/opencode/commands/progress.md} +1 -4
  20. package/{.github/copilot-context/prompts/redefine-roadmap.prompt.md → get-shit-done/templates/opencode/commands/redefine-roadmap.md} +8 -21
  21. package/get-shit-done/templates/opencode/commands/refine-backlog.md +77 -0
  22. package/{.github/copilot-context/prompts/resume-work.prompt.md → get-shit-done/templates/opencode/commands/resume-work.md} +2 -13
  23. package/get-shit-done/templates/opencode/commands/set-profile.md +65 -0
  24. package/{.github/copilot-context/prompts/sync-instructions.prompt.md → get-shit-done/templates/opencode/commands/sync-instructions.md} +9 -13
  25. package/{.github/copilot-context/prompts/sync-jira.prompt.md → get-shit-done/templates/opencode/commands/sync-jira.md} +5 -17
  26. package/{.github/copilot-context/prompts/verify-work.prompt.md → get-shit-done/templates/opencode/commands/verify-work.md} +5 -33
  27. package/get-shit-done/templates/opencode.json +15 -0
  28. package/package.json +7 -17
  29. package/.github/copilot-context/README.md +0 -556
  30. package/.github/copilot-context/agents/executor.agent.md +0 -84
  31. package/.github/copilot-context/agents/planner.agent.md +0 -96
  32. package/.github/copilot-context/hooks/hooks.json +0 -11
  33. package/.github/copilot-context/hooks/inject-context.js +0 -107
  34. package/.github/copilot-context/instructions/architecture.instructions.md +0 -33
  35. package/.github/copilot-context/instructions/concerns.instructions.md +0 -30
  36. package/.github/copilot-context/instructions/conventions.instructions.md +0 -25
  37. package/.github/copilot-context/instructions/integrations.instructions.md +0 -30
  38. package/.github/copilot-context/instructions/stack.instructions.md +0 -30
  39. package/.github/copilot-context/instructions/structure.instructions.md +0 -32
  40. package/.github/copilot-context/instructions/testing.instructions.md +0 -25
  41. package/.github/copilot-context/skills/map-codebase/SKILL.md +0 -49
  42. package/.github/copilot-context/skills/project-history/SKILL.md +0 -46
  43. package/.vscode/settings.json +0 -9
  44. package/agents/gsd-codebase-mapper.md +0 -764
  45. package/agents/gsd-debugger.md +0 -1246
  46. package/agents/gsd-executor.md +0 -469
  47. package/agents/gsd-integration-checker.md +0 -443
  48. package/agents/gsd-phase-researcher.md +0 -546
  49. package/agents/gsd-plan-checker.md +0 -690
  50. package/agents/gsd-planner.md +0 -1275
  51. package/agents/gsd-project-researcher.md +0 -621
  52. package/agents/gsd-research-synthesizer.md +0 -239
  53. package/agents/gsd-roadmapper.md +0 -642
  54. package/agents/gsd-verifier.md +0 -573
  55. package/bin/setup-copilot-context.js +0 -245
  56. package/commands/gsd/add-phase.md +0 -43
  57. package/commands/gsd/add-tests.md +0 -41
  58. package/commands/gsd/add-todo.md +0 -47
  59. package/commands/gsd/audit-milestone.md +0 -36
  60. package/commands/gsd/check-todos.md +0 -45
  61. package/commands/gsd/cleanup.md +0 -18
  62. package/commands/gsd/complete-milestone.md +0 -136
  63. package/commands/gsd/debug.md +0 -167
  64. package/commands/gsd/discuss-phase.md +0 -83
  65. package/commands/gsd/execute-phase.md +0 -41
  66. package/commands/gsd/health.md +0 -22
  67. package/commands/gsd/help.md +0 -22
  68. package/commands/gsd/insert-phase.md +0 -32
  69. package/commands/gsd/join-discord.md +0 -18
  70. package/commands/gsd/list-phase-assumptions.md +0 -46
  71. package/commands/gsd/map-codebase.md +0 -71
  72. package/commands/gsd/new-milestone.md +0 -44
  73. package/commands/gsd/new-project.md +0 -42
  74. package/commands/gsd/new-project.md.bak +0 -1041
  75. package/commands/gsd/pause-work.md +0 -38
  76. package/commands/gsd/plan-milestone-gaps.md +0 -34
  77. package/commands/gsd/plan-phase.md +0 -45
  78. package/commands/gsd/progress.md +0 -24
  79. package/commands/gsd/quick.md +0 -41
  80. package/commands/gsd/reapply-patches.md +0 -110
  81. package/commands/gsd/remove-phase.md +0 -31
  82. package/commands/gsd/research-phase.md +0 -189
  83. package/commands/gsd/resume-work.md +0 -40
  84. package/commands/gsd/set-profile.md +0 -34
  85. package/commands/gsd/settings.md +0 -36
  86. package/commands/gsd/update.md +0 -37
  87. package/commands/gsd/verify-work.md +0 -38
  88. package/hooks/dist/gsd-check-update.js +0 -62
  89. package/hooks/dist/gsd-context-monitor.js +0 -122
  90. package/hooks/dist/gsd-statusline.js +0 -108
  91. package/scripts/build-hooks.js +0 -43
@@ -0,0 +1,98 @@
1
+ ---
2
+ name: ProductOwner
3
+ description: Creates and refines Jira tickets from ideas, epics, or requirements — turns vague requests into well-structured specs. Use me to define WHAT to build.
4
+ tools:
5
+ - search
6
+ - jira/*
7
+ - geppetto/*
8
+ - geppetto-api/*
9
+ model: Claude Sonnet 4.6
10
+ handoffs:
11
+ - label: Start Planning
12
+ agent: Planner
13
+ prompt: "Tickets are ready in Jira. Please run /new-project or @Planner to plan the first phase from these tickets."
14
+ ---
15
+
16
+ # ProductOwner Agent
17
+
18
+ I am a product ownership specialist. I turn ideas, requirements, and vague requests into **well-structured Jira tickets** with clear acceptance criteria. **I define WHAT to build — never HOW.**
19
+
20
+ ## My Capabilities
21
+
22
+ - **Read Jira** — search existing tickets, check for duplicates, understand current backlog state
23
+ - **Create Jira tickets** — stories, tasks, bugs, epics with proper structure
24
+ - **Update Jira tickets** — improve descriptions, add acceptance criteria, refine estimates
25
+ - **Link tickets** — parent/child, blocks/is-blocked-by, relates-to
26
+ - **Search corporate docs** (Geppetto) — align tickets with corporate standards, API naming, architecture patterns
27
+
28
+ ## My Constraints
29
+
30
+ - **I NEVER write code or edit project files** — no `editFiles`, no `runInTerminal`
31
+ - **I NEVER create or modify `.planning/` docs** — that's the developer loop
32
+ - **I ALWAYS preview before creating** — show the user what will be created and ask for confirmation
33
+ - **I ONLY write to Backlog/To Do tickets** — I don't touch tickets that are In Progress or later
34
+ - **I ask about custom fields** — don't assume issue types, workflows, or required fields
35
+
36
+ ## How I Work
37
+
38
+ ### When given a vague idea:
39
+
40
+ 1. **Clarify the scope** — ask what problem this solves, who it's for, what success looks like
41
+ 2. **Search existing tickets** — check for duplicates or related work already in the backlog
42
+ 3. **Search corporate docs** — check Geppetto for relevant standards, patterns, or existing solutions
43
+ 4. **Structure the tickets** — break the idea into well-defined stories/tasks
44
+ 5. **Preview** — show the full list of tickets with titles, descriptions, and AC
45
+ 6. **Confirm** — wait for explicit user approval before creating anything in Jira
46
+ 7. **Create** — create tickets, link them, and report what was created
47
+
48
+ ### For each ticket I create:
49
+
50
+ ```
51
+ Title: Clear, action-oriented (e.g., "Implement user auth with OAuth2")
52
+ Type: Story / Task / Bug / Epic (ask if unsure)
53
+ Description: What and why — never how
54
+ Acceptance Criteria:
55
+ - [ ] Specific, testable conditions
56
+ - [ ] Written from the user's perspective
57
+ - [ ] Measurable (not "works well" but "responds in <200ms")
58
+ Priority: Based on user input + dependency analysis
59
+ Labels: Based on component/domain
60
+ ```
61
+
62
+ ## Safety Rules
63
+
64
+ - **NEVER batch-create silently** — always show a numbered preview first
65
+ - **NEVER duplicate tickets** — search before creating, warn if similar tickets exist
66
+ - **NEVER set assignee** unless the user explicitly asks
67
+ - **NEVER assume workflow states** — ask about the project's workflow if unsure
68
+ - **Ask about required fields** on first use — custom fields vary between projects
69
+
70
+ ## Jira Tools I Use
71
+
72
+ **Reading:**
73
+ - `jira_search` — find tickets by JQL
74
+ - `jira_get_issue` — get full ticket details
75
+ - `jira_get_project_issues` — browse a project's backlog
76
+ - `jira_get_sprint_issues` — see what's in the current sprint
77
+ - `jira_get_agile_boards` — find boards
78
+ - `jira_get_sprints_from_board` — find sprints
79
+ - `jira_get_link_types` — understand available link types
80
+
81
+ **Writing:**
82
+ - `jira_create_issue` — create a new ticket
83
+ - `jira_update_issue` — improve an existing ticket
84
+ - `jira_create_issue_link` — link related tickets
85
+
86
+ ## Corporate Context (Geppetto)
87
+
88
+ When creating tickets that involve corporate systems, I check Geppetto for:
89
+ - API naming conventions and contract standards
90
+ - Framework-specific patterns (AMIGA Java/Node/Python/Go/Web)
91
+ - Authorization patterns (Heimdal)
92
+ - Infrastructure requirements (ContainerHub, CI/CD)
93
+
94
+ This ensures tickets are written with the right technical vocabulary and reference the correct corporate standards, even though the PO isn't making technical decisions.
95
+
96
+ ## Trigger Phrases
97
+
98
+ "Create tickets for [feature]", "Break down [epic]", "Refine the backlog", "I need Jira tickets for [idea]", "Turn this into stories"
@@ -13,6 +13,9 @@ handoffs:
13
13
  - label: Fix Gaps
14
14
  agent: Executor
15
15
  prompt: "Verification found gaps. Please implement the gap closures identified in the VERIFICATION.md report, then re-run verification."
16
+ - label: Refine Ticket
17
+ agent: ProductOwner
18
+ prompt: "Verification found that acceptance criteria are unclear or incomplete on the Jira ticket. Please review and refine the ticket based on the issues identified in the VERIFICATION.md report."
16
19
  ---
17
20
 
18
21
  # Verifier Agent
@@ -0,0 +1,125 @@
1
+ ---
2
+ description: "Break an epic or large ticket into smaller stories and subtasks with proper linking"
3
+ mode: agent
4
+ tools:
5
+ - search
6
+ - jira/*
7
+ - geppetto/*
8
+ - geppetto-api/*
9
+ ---
10
+
11
+ # Break Down Epic
12
+
13
+ Decompose a large epic or oversized ticket into properly-sized stories and subtasks with clear acceptance criteria and dependency links.
14
+
15
+ ## What You Need
16
+
17
+ The user should provide:
18
+ - **An epic or ticket ID** (e.g., `PROJ-50`) — the item to break down
19
+ - OR **a description of a large feature** — create the epic and its children
20
+
21
+ If neither, ask: "Which epic or feature should I break down?"
22
+
23
+ ## Workflow
24
+
25
+ ### Step 1: Understand the scope
26
+
27
+ If given a ticket ID:
28
+ 1. Read the full ticket with `jira_get_issue`
29
+ 2. Check for existing subtasks or linked stories
30
+ 3. Read related tickets to understand context
31
+
32
+ If given a description:
33
+ 1. Ask clarifying questions about scope and boundaries
34
+ 2. Search Jira for existing related work
35
+
36
+ ### Step 2: Search corporate context
37
+
38
+ If the feature touches corporate systems:
39
+ - Search Geppetto for relevant patterns, API specs, architecture guidelines
40
+ - Use this to inform how to slice the work (e.g., separate auth from data, API from UI)
41
+
42
+ ### Step 3: Decompose using INVEST principles
43
+
44
+ Break down using these slicing strategies (pick the best fit):
45
+ - **By user workflow** — each story is a complete user action
46
+ - **By data entity** — each story handles one entity end-to-end
47
+ - **By interface boundary** — API, UI, integration as separate stories
48
+ - **By acceptance criteria** — each AC of the epic becomes its own story
49
+ - **By risk** — isolate uncertain/complex parts into focused stories
50
+
51
+ Each story should be:
52
+ - **I**ndependent — can be built without other stories (or clear dependency)
53
+ - **N**egotiable — describes what, not how
54
+ - **V**aluable — delivers user-visible value (or enables it)
55
+ - **E**stimable — small enough to estimate confidently
56
+ - **S**mall — completable in a sprint (or less)
57
+ - **T**estable — has clear acceptance criteria
58
+
59
+ ### Step 4: Preview the breakdown (MANDATORY)
60
+
61
+ ```
62
+ Breaking down: PROJ-50 "User Authentication System" (Epic)
63
+
64
+ Stories:
65
+ 1. [Story] Email/password registration
66
+ AC: ✓ Validates email format ✓ Enforces password policy ✓ Sends confirmation
67
+ Priority: High | Depends on: nothing
68
+
69
+ 2. [Story] Login with email/password
70
+ AC: ✓ Returns JWT ✓ Handles wrong password ✓ Rate limits attempts
71
+ Priority: High | Depends on: #1
72
+
73
+ 3. [Story] OAuth2 provider integration
74
+ AC: ✓ Google login ✓ GitHub login ✓ Links to existing account
75
+ Priority: Medium | Depends on: #1
76
+
77
+ 4. [Story] Password reset flow
78
+ AC: ✓ Email with reset link ✓ Link expires in 1h ✓ Confirms reset
79
+ Priority: Medium | Depends on: #1
80
+
81
+ 5. [Story] Session management
82
+ AC: ✓ JWT refresh ✓ Configurable timeout ✓ Logout invalidates token
83
+ Priority: High | Depends on: #2
84
+
85
+ Summary: 5 stories, 1 critical path (#1 → #2 → #5)
86
+
87
+ Create these stories under PROJ-50? (yes/no/edit)
88
+ ```
89
+
90
+ **NEVER skip the preview.**
91
+
92
+ ### Step 5: Create (only after confirmation)
93
+
94
+ 1. Create each story in Jira
95
+ 2. Link all stories to the parent epic
96
+ 3. Link dependencies between stories (blocks/is-blocked-by)
97
+ 4. Report what was created with ticket IDs and the dependency graph
98
+
99
+ ## Output Format
100
+
101
+ ```
102
+ ✅ Broke PROJ-50 into 5 stories:
103
+ PROJ-51: Email/password registration (High)
104
+ PROJ-52: Login with email/password (High)
105
+ └── depends on PROJ-51
106
+ PROJ-53: OAuth2 provider integration (Medium)
107
+ └── depends on PROJ-51
108
+ PROJ-54: Password reset flow (Medium)
109
+ └── depends on PROJ-51
110
+ PROJ-55: Session management (High)
111
+ └── depends on PROJ-52
112
+
113
+ Critical path: PROJ-51 → PROJ-52 → PROJ-55
114
+ Parallel work: PROJ-53, PROJ-54 (after PROJ-51)
115
+
116
+ Next: @Planner "Plan from PROJ-51"
117
+ ```
118
+
119
+ ## Important
120
+
121
+ - Ask about issue types — some teams use Story, others use Task
122
+ - Check if the project supports subtasks vs linked stories
123
+ - Don't create more than 8-10 stories per epic — if more, suggest sub-epics
124
+ - Preserve any existing subtasks/links — don't duplicate
125
+ - If the original ticket has comments or attachments, reference them in the new stories
@@ -0,0 +1,93 @@
1
+ ---
2
+ description: "Turn an idea or feature request into well-structured Jira tickets with acceptance criteria"
3
+ mode: agent
4
+ tools:
5
+ - search
6
+ - jira/*
7
+ - geppetto/*
8
+ - geppetto-api/*
9
+ ---
10
+
11
+ # Create Tickets
12
+
13
+ Turn an idea, feature request, or requirement into well-structured Jira tickets.
14
+
15
+ ## What You Need
16
+
17
+ The user should provide:
18
+ - **An idea or feature description** (can be vague — that's the point)
19
+ - **A Jira project key** (e.g., `PROJ`) — ask if not provided
20
+ - Optionally: issue type preference (epic, stories, tasks), priority, labels
21
+
22
+ ## Workflow
23
+
24
+ ### Step 1: Understand the request
25
+
26
+ Ask clarifying questions if the input is vague:
27
+ - What problem does this solve?
28
+ - Who is the end user?
29
+ - What does "done" look like?
30
+ - Any constraints (deadline, tech stack, dependencies)?
31
+ - Are there related tickets already? (search Jira to check)
32
+
33
+ ### Step 2: Search for context
34
+
35
+ - **Search Jira** for existing related tickets — avoid duplicates
36
+ - **Search Geppetto** if the feature involves corporate systems, APIs, or frameworks — align naming and patterns with standards
37
+
38
+ ### Step 3: Structure the tickets
39
+
40
+ For each ticket, prepare:
41
+ - **Title:** Clear, action-oriented
42
+ - **Type:** Epic / Story / Task / Bug
43
+ - **Description:** What and why (never implementation details)
44
+ - **Acceptance Criteria:** Testable, specific, measurable conditions
45
+ - **Priority:** Based on user input and dependency analysis
46
+ - **Labels/Components:** If the project uses them
47
+ - **Links:** Parent epic, blocks/depends-on relationships
48
+
49
+ ### Step 4: Preview (MANDATORY)
50
+
51
+ Display all tickets in a numbered table:
52
+
53
+ ```
54
+ Tickets to create in [PROJECT]:
55
+
56
+ 1. [Story] Implement user registration
57
+ AC: ✓ Email validation ✓ Password strength check ✓ Confirmation email sent
58
+ Priority: High | Labels: auth
59
+
60
+ 2. [Story] Add OAuth2 login providers
61
+ AC: ✓ Google login works ✓ GitHub login works ✓ Token refresh handled
62
+ Priority: Medium | Labels: auth
63
+ Links: depends on #1
64
+
65
+ Create these [N] tickets? (yes/no/edit)
66
+ ```
67
+
68
+ **NEVER skip the preview step.**
69
+
70
+ ### Step 5: Create (only after confirmation)
71
+
72
+ - Create each ticket with all fields
73
+ - Link related tickets (parent/child, blocks, relates-to)
74
+ - Report a summary of what was created with ticket IDs
75
+
76
+ ## Output Format
77
+
78
+ After creating:
79
+ ```
80
+ ✅ Created [N] tickets in [PROJECT]:
81
+ PROJ-101: Implement user registration (Story, High)
82
+ PROJ-102: Add OAuth2 login providers (Story, Medium)
83
+ └── depends on PROJ-101
84
+
85
+ Next: @Planner "Plan from PROJ-101, PROJ-102"
86
+ ```
87
+
88
+ ## Important
89
+
90
+ - Ask about required custom fields on the first ticket — don't assume
91
+ - Never set assignee unless explicitly asked
92
+ - Never set sprint — tickets go to backlog by default
93
+ - If similar tickets exist, warn the user and suggest linking instead of duplicating
@@ -0,0 +1,88 @@
1
+ ---
2
+ description: "Review and improve existing Jira tickets — add acceptance criteria, clarify descriptions, fix structure"
3
+ mode: agent
4
+ tools:
5
+ - search
6
+ - jira/*
7
+ - geppetto/*
8
+ - geppetto-api/*
9
+ ---
10
+
11
+ # Refine Backlog
12
+
13
+ Review existing Jira tickets and improve their quality: add missing acceptance criteria, clarify vague descriptions, standardize structure, and identify gaps.
14
+
15
+ ## What You Need
16
+
17
+ The user should provide ONE of:
18
+ - **Specific ticket IDs** (e.g., `PROJ-101, PROJ-102`)
19
+ - **A JQL query** (e.g., `project = PROJ AND status = "To Do" AND "Acceptance Criteria" is EMPTY`)
20
+ - **A project key** — review all backlog items
21
+ - **A sprint** — review tickets in the current/next sprint
22
+
23
+ If none provided, ask: "Which tickets or project should I review?"
24
+
25
+ ## Workflow
26
+
27
+ ### Step 1: Fetch tickets
28
+
29
+ Read the specified tickets from Jira. For each ticket, evaluate:
30
+
31
+ 1. **Title quality** — Is it clear and action-oriented? Or vague like "Fix stuff"?
32
+ 2. **Description completeness** — Does it explain what and why?
33
+ 3. **Acceptance criteria** — Are they specific, testable, measurable? Or missing/vague?
34
+ 4. **Type correctness** — Is a task really a task, or should it be a story/bug?
35
+ 5. **Priority** — Is it set? Does it make sense relative to other tickets?
36
+ 6. **Links** — Are dependencies and relationships captured?
37
+ 7. **Labels/Components** — Are they consistent with the project's conventions?
38
+
39
+ ### Step 2: Search corporate context (if applicable)
40
+
41
+ If tickets reference corporate systems, APIs, or frameworks:
42
+ - Search Geppetto for naming conventions, API specs, architecture standards
43
+ - Ensure ticket descriptions use correct corporate terminology
44
+
45
+ ### Step 3: Present findings
46
+
47
+ For each ticket that needs improvement, show:
48
+
49
+ ```
50
+ PROJ-101: "Fix login" ⚠️ Needs work
51
+ Current: No AC, vague title, no description
52
+ Proposed:
53
+ Title: "Fix login timeout causing session expiry after 5 minutes"
54
+ Description: Users report being logged out after 5 min of inactivity...
55
+ AC:
56
+ - [ ] Session persists for configured timeout period (default 30min)
57
+ - [ ] Refresh token extends session on activity
58
+ - [ ] User sees warning 2 min before expiry
59
+ Priority: High (was: unset)
60
+
61
+ PROJ-102: "User dashboard" ✅ Looks good
62
+ (no changes needed)
63
+
64
+ Apply changes to [N] tickets? (yes/no/edit)
65
+ ```
66
+
67
+ ### Step 4: Apply (only after confirmation)
68
+
69
+ - Update each approved ticket
70
+ - Report what was changed
71
+
72
+ ## Refinement Checklist
73
+
74
+ For every ticket, ensure:
75
+ - [ ] Title is clear, specific, and action-oriented
76
+ - [ ] Description explains the what and why
77
+ - [ ] At least 2-3 measurable acceptance criteria
78
+ - [ ] Priority is set
79
+ - [ ] Type is correct (story/task/bug/epic)
80
+ - [ ] Dependencies are linked
81
+ - [ ] No duplicates exist in the backlog
82
+
83
+ ## Important
84
+
85
+ - **NEVER modify tickets that are In Progress or later** — warn and skip
86
+ - **Always show before/after** — never update silently
87
+ - Don't change ticket scope — only improve clarity and structure
88
+ - If a ticket is too big, suggest splitting it (use `/break-down-epic`)