/approve-synthesis
Approve synthesis findings and create implementation tickets from discovery
$ npx -y skills add Jeffallan/claude-skills --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/approve-synthesis
Context preview
What this command does when you run it.
Approve synthesis findings and create implementation tickets from discovery
Command definition
approve-synthesis.mdname: approve-synthesis
description: Approve synthesis findings and create implementation tickets from discovery
argument-hint: <synthesis-url> [--decision=<id>:<value>...]
Approve Discovery Synthesis
**Arguments:** $ARGUMENTS
---
Argument Parsing
Parse the arguments to extract:
- `{Synthesis_URL}` - Confluence synthesis document URL (required)
- `{Decisions}` - Optional pre-provided decision resolutions (via `--decision=D1:OptionB`)
**Examples:**
- `/approve-synthesis https://confluence/synthesis-doc` → Review and approve interactively
- `/approve-synthesis https://confluence/synthesis-doc --decision=D1:B --decision=D2:Y` → Pre-resolve decisions
---
Workflow Chain
/create-epic-discovery <epic-key> → Discovery Document
↓
[Manual research, interviews, experiments]
↓
/synthesize-discovery <doc-urls...> → Synthesis Document
↓
/approve-synthesis <synthesis-url> → Creates Jira Tickets (YOU ARE HERE)
↓
/create-implementation-plan <overview-doc> → Implementation planning continues---
Phase 0: Context Retrieval
1. **Fetch the synthesis document** from `{Synthesis_URL}`
2. **Extract from synthesis document:**
- Discovery Epic link
- Target implementation epics
- Proposed tickets JSON (from Section 9, between `<!-- PROPOSED_TICKETS_START -->` and `<!-- PROPOSED_TICKETS_END -->` markers)
- Blocking decisions and their status
- Approval status
3. **FAILURE CONDITION - Invalid Synthesis Document:**
If synthesis document cannot be fetched or lacks required sections:
**STOP and prompt the user:**
I was unable to retrieve the synthesis document or it is missing required data.
URL: {Synthesis_URL}
Issue: [document not found / missing Proposed Tickets section / invalid JSON]
Please verify:
1. The URL is correct and accessible
2. The document was created by /synthesize-discovery
3. The "Proposed Tickets Data" section (Section 9) exists**DO NOT PROCEED** until valid document is provided.
4. **FAILURE CONDITION - Already Approved:**
If synthesis is already approved (`approval_status: "approved"`):
**STOP and report:**
This synthesis has already been approved.
Approved By: [user]
Approved Date: [date]
Tickets Created: [list]
Options:
A) View the created tickets
B) Create additional tickets (will append to existing)
C) Cancel
**DO NOT PROCEED** without user choice.
5. **MANDATORY CHECKPOINT - Synthesis Overview:**
## Synthesis Document Retrieved
**Discovery Epic:** {Discovery_Epic_Key}
**Synthesis Date:** [date]
**Sources Analyzed:** [count]
**Proposed Tickets:** [count] tickets, [sum] story points
**Target Epics:** [list epic keys]
**Blocking Decisions:** [count] pending / [count] total
Ready to review? (Yes / No)**DO NOT PROCEED** without confirmation.
---
Phase 1: Decision Resolution
1. **Check for unresolved blocking decisions:**
Parse the `blocking_decisions` array from the JSON data.
2. **Apply any pre-provided decisions** from `--decision` arguments:
For each `--decision=ID:Value`:
- Validate the decision ID exists
- Validate the value is a valid option
- Mark as resolved
3. **FAILURE CONDITION - Unresolved Blocking Decisions:**
If any blocking decisions remain unresolved:
**STOP and present each decision:**
## Blocking Decisions Require Resolution
The following decisions must be resolved before tickets can be created:
### Decision D1: [Decision Question]
**Options:**
A) [Option A description]
B) [Option B description]
C) [Option C description]
**Recommendation:** [Option from synthesis]
**Rationale:** [Why this was recommended]
**Blocks Tickets:** T1, T3, T5
Please select an option: [A/B/C]
---
### Decision D2: [Decision Question]
...
**DO NOT PROCEED** until all decisions are resolved.
4. **Record decision resolutions:**
For each resolved decision:
- Record the chosen option
- Record resolver (user)
- Record timestamp
- Update affected tickets if decision changes scope
---
Phase 2: Ticket Review & Editing
1. **Present proposed tickets for review:**
## Proposed Tickets for Approval
All blocking decisions have been resolved. Review the tickets below.
### Epic: {Epic_Key_1} - {Epic_Title}
| # | ID | Title | Type | Points | Priority | Dependencies |
|---|-----|-------|------|--------|----------|--------------|
| 1 | T1 | [title] | Story | 5 | High | None |
| 2 | T2 | [title] | Task | 3 | Med | T1 |
### Epic: {Epic_Key_2} - {Epic_Title}
| # | ID | Title | Type | Points | Priority | Dependencies |
|---|-----|-------|------|--------|----------|--------------|
| 1 | T3 | [title] | Spike | 2 | High | None |
**Total:** [count] tickets, [sum] story points
---
**Options:**
- **Approve** - Create all tickets as shown
- **Edit** - Modify tickets before creation
- **Cancel** - Exit without creating tickets
What would you like to do? [Approve / Edit / Cancel]2. **If Edit selected:**
## Edit Proposed Tickets
Available actions:
- **Add:** Add a new ticket (e.g., "Add Story 'Implement caching' to CC-62")
- **Remove:** Remove a ticket (e.g., "Remove T3")
- **Modify:** Change ticket details (e.g., "Modify T1 points to 8" or "Modify T2 priority to High")
- **Done:** Finish editing and review again
Current tickets:
[... ticket list ...]
Enter your changes (or "Done" to finish):
**Editing loop:**
- Parse user input for add/remove/modify commands
- Apply changes to proposed tickets
- Show updated list after each change
- Repeat until user says "Done"
- Return to approval checkpoint
3. **MANDATORY CHECKPOINT - Final Ticket Approval:**
## Final Ticket Approval
The following tickets will be created in Jira:
Read more
name: approve-synthesis description: Approve synthesis findings and create implementation tickets from discovery argument-hint: <synthesis-url> [--decision=<id>:<value>...]
Approve Discovery Synthesis
**Arguments:** $ARGUMENTS
---
Argument Parsing
Parse the arguments to extract:
- `{Synthesis_URL}` - Confluence synthesis document URL (required)
- `{Decisions}` - Optional pre-provided decision resolutions (via `--decision=D1:OptionB`)
**Examples:**
- `/approve-synthesis https://confluence/synthesis-doc` → Review and approve interactively
- `/approve-synthesis https://confluence/synthesis-doc --decision=D1:B --decision=D2:Y` → Pre-resolve decisions
---
Workflow Chain
/create-epic-discovery <epic-key> → Discovery Document
↓
[Manual research, interviews, experiments]
↓
/synthesize-discovery <doc-urls...> → Synthesis Document
↓
/approve-synthesis <synthesis-url> → Creates Jira Tickets (YOU ARE HERE)
↓
/create-implementation-plan <overview-doc> → Implementation planning continues---
Phase 0: Context Retrieval
1. **Fetch the synthesis document** from `{Synthesis_URL}`
2. **Extract from synthesis document:**
- Discovery Epic link
- Target implementation epics
- Proposed tickets JSON (from Section 9, between `<!-- PROPOSED_TICKETS_START -->` and `<!-- PROPOSED_TICKETS_END -->` markers)
- Blocking decisions and their status
- Approval status
3. **FAILURE CONDITION - Invalid Synthesis Document:**
If synthesis document cannot be fetched or lacks required sections:
**STOP and prompt the user:**
I was unable to retrieve the synthesis document or it is missing required data.
URL: {Synthesis_URL}
Issue: [document not found / missing Proposed Tickets section / invalid JSON]
Please verify:
1. The URL is correct and accessible
2. The document was created by /synthesize-discovery
3. The "Proposed Tickets Data" section (Section 9) exists**DO NOT PROCEED** until valid document is provided.
4. **FAILURE CONDITION - Already Approved:**
If synthesis is already approved (`approval_status: "approved"`):
**STOP and report:**
This synthesis has already been approved. Approved By: [user] Approved Date: [date] Tickets Created: [list] Options: A) View the created tickets B) Create additional tickets (will append to existing) C) Cancel
**DO NOT PROCEED** without user choice.
5. **MANDATORY CHECKPOINT - Synthesis Overview:**
## Synthesis Document Retrieved
**Discovery Epic:** {Discovery_Epic_Key}
**Synthesis Date:** [date]
**Sources Analyzed:** [count]
**Proposed Tickets:** [count] tickets, [sum] story points
**Target Epics:** [list epic keys]
**Blocking Decisions:** [count] pending / [count] total
Ready to review? (Yes / No)**DO NOT PROCEED** without confirmation.
---
Phase 1: Decision Resolution
1. **Check for unresolved blocking decisions:**
Parse the `blocking_decisions` array from the JSON data.
2. **Apply any pre-provided decisions** from `--decision` arguments:
For each `--decision=ID:Value`:
- Validate the decision ID exists
- Validate the value is a valid option
- Mark as resolved
3. **FAILURE CONDITION - Unresolved Blocking Decisions:**
If any blocking decisions remain unresolved:
**STOP and present each decision:**
## Blocking Decisions Require Resolution The following decisions must be resolved before tickets can be created: ### Decision D1: [Decision Question] **Options:** A) [Option A description] B) [Option B description] C) [Option C description] **Recommendation:** [Option from synthesis] **Rationale:** [Why this was recommended] **Blocks Tickets:** T1, T3, T5 Please select an option: [A/B/C] --- ### Decision D2: [Decision Question] ...
**DO NOT PROCEED** until all decisions are resolved.
4. **Record decision resolutions:**
For each resolved decision:
- Record the chosen option
- Record resolver (user)
- Record timestamp
- Update affected tickets if decision changes scope
---
Phase 2: Ticket Review & Editing
1. **Present proposed tickets for review:**
## Proposed Tickets for Approval
All blocking decisions have been resolved. Review the tickets below.
### Epic: {Epic_Key_1} - {Epic_Title}
| # | ID | Title | Type | Points | Priority | Dependencies |
|---|-----|-------|------|--------|----------|--------------|
| 1 | T1 | [title] | Story | 5 | High | None |
| 2 | T2 | [title] | Task | 3 | Med | T1 |
### Epic: {Epic_Key_2} - {Epic_Title}
| # | ID | Title | Type | Points | Priority | Dependencies |
|---|-----|-------|------|--------|----------|--------------|
| 1 | T3 | [title] | Spike | 2 | High | None |
**Total:** [count] tickets, [sum] story points
---
**Options:**
- **Approve** - Create all tickets as shown
- **Edit** - Modify tickets before creation
- **Cancel** - Exit without creating tickets
What would you like to do? [Approve / Edit / Cancel]2. **If Edit selected:**
## Edit Proposed Tickets Available actions: - **Add:** Add a new ticket (e.g., "Add Story 'Implement caching' to CC-62") - **Remove:** Remove a ticket (e.g., "Remove T3") - **Modify:** Change ticket details (e.g., "Modify T1 points to 8" or "Modify T2 priority to High") - **Done:** Finish editing and review again Current tickets: [... ticket list ...] Enter your changes (or "Done" to finish):
**Editing loop:**
- Parse user input for add/remove/modify commands
- Apply changes to proposed tickets
- Show updated list after each change
- Repeat until user says "Done"
- Return to approval checkpoint
3. **MANDATORY CHECKPOINT - Final Ticket Approval:**
## Final Ticket Approval The following tickets will be created in Jira:
66 Specialized Skills for Full-Stack Developers. Transform Claude Code into your expert pair programmer.
Repo: Jeffallan/claude-skills
Other commands on fullstack-dev-skills.
- /COMMAND
Surface and validate Claude's hidden assumptions about the project for user confirmation
Open command - /assumption-classification
Reference for: Common Ground Load when: Classifying assumptions, determining type or tier
Open command - /file-management
Reference for: Common Ground Load when: Storage operations, project identification, file format
Open command - /reasoning-graph
Reference for: Common Ground Load when: Using --graph flag, generating mermaid diagrams
Open command - /create-epic-discovery
Create a discovery document for research/customer discovery epics
Open command - /synthesize-discovery
Synthesize discovery findings into a consolidated analysis document with proposed tickets
Open command

