Skip to content
Back to skills

012 Approve 34ef6190

ASecurity

Approve synthesis findings and create implementation tickets from discovery

  • 9 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 31, 2026
research

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned May 31, 2026

npx -y skills add tools-only/X-Skills --skill 012-approve_34ef6190 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 012 Approve 34ef6190?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 012 Approve 34ef6190
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-012-approve-34ef6190/badge)](https://www.skillsdirectory.com/skills/tools-only-012-approve-34ef6190)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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:

   [... final ticket list with all edits applied ...]

   **Total:** [count] tickets, [sum] story points

   Create these tickets? (Yes / No)
   ```

   **DO NOT CREATE TICKETS** without explicit "Yes" approval.

---

## Phase 3: Ticket Creation

For each approved ticket:

1. **Create ticket in Jira** under the target epic:

   ```
   Creating ticket: [title]
   Epic: {Target_Epic}
   ```

2. **Set ticket fields:**
   - Summary: [Title]
   - Type: Story/Task/Bug/Spike
   - Epic Link: {Target_Epic}
   - Story Points: [estimated]
   - Priority: [from synthesis]
   - Labels: `from-discovery`, `{Discovery_Epic_Key}`

3. **Populate description using template:**

```markdown
## Source
- Discovery Epic: [{Discovery_Epic_Key}]({url})
- Synthesis Document: [{Synthesis_Doc}]({url})
- Based on Findings: [F1, F2, ...]

## Context
[Why this ticket was created based on discovery findings]

## Summary
[What this ticket accomplishes]

## Acceptance Criteria
- [ ] [Criterion from synthesis]
- [ ] [Criterion from synthesis]

## Notes from Discovery
- [Relevant insights that inform implementation]
- [Constraints or considerations discovered]

## Decisions Made
- D1: [Decision question] → [Resolution chosen]

---
*This ticket was generated from discovery synthesis. See source documents for full context.*
```

4. **Link tickets:**
   - Link to discovery epic as "discovered by"
   - Link dependencies between tickets (using Jira issue links)
   - Link to any relevant existing tickets

5. **Track created tickets:**

   Maintain mapping: `{ T1: "CC-123", T2: "CC-124", ... }`

6. **FAILURE CONDITION - Ticket Creation Fails:**

   If any ticket creation fails:

   ```
   ## Ticket Creation Error

   Failed to create ticket: [title]
   Error: [error message]

   **Tickets Created So Far:**
   - CC-123: [title]
   - CC-124: [title]

   **Remaining Tickets:**
   - [title] (failed)
   - [title] (pending)

   Options:
   A) Retry failed ticket
   B) Skip failed ticket and continue
   C) Stop and save progress

   What would you like to do? [A/B/C]
   ```

---

## Phase 4: Update & Output

1. **Update synthesis document in Confluence:**

   Add/update Section 10: Approved Tickets:

   ```markdown
   ### 10. Approved Tickets

   **Approval Date:** [timestamp]
   **Approved By:** [user]
   **Decisions Resolved:** [count]

   #### Tickets Created

   | Jira Key | Title | Type | Epic | Points |
   |----------|-------|------|------|--------|
   | [CC-123](url) | [title] | Story | CC-62 | 5 |
   | [CC-124](url) | [title] | Task | CC-62 | 3 |

   **Total:** [count] tickets, [sum] story points

   #### Decision Resolutions

   | Decision | Question | Resolution | Resolved By |
   |----------|----------|------------|-------------|
   | D1 | [question] | Option B | [user] |

   #### Changes from Original Proposal

   - Added: [list any added tickets]
   - Removed: [list any removed tickets]
   - Modified: [list any modified tickets]
   ```

2. **Update JSON approval status** in Section 9:

   ```json
   {
     "approval_status": "approved",
     "approved_by": "[user]",
     "approved_date": "[timestamp]",
     "created_tickets": {
       "T1": "CC-123",
       "T2": "CC-124"
     }
   }
   ```

3. **Update discovery epic** with:
   - Link to synthesis document
   - Summary of tickets created

---

## Output

**When complete, you MUST provide:**

```
## Synthesis Approved - Tickets Created!

**Synthesis Document:** {Synthesis_URL} (updated)

### Decisions Resolved

| Decision | Resolution |
|----------|------------|
| D1 | [chosen option] |
| D2 | [chosen option] |

### Tickets Created

#### {Epic_Key_1}: {Epic_Title}
| Key | Title | Type | Points |
|-----|-------|------|--------|
| [CC-123](url) | [title] | Story | 5 |
| [CC-124](url) | [title] | Task | 3 |

#### {Epic_Key_2}: {Epic_Title}
| Key | Title | Type | Points |
|-----|-------|------|--------|
| [CC-125](url) | [title] | Spike | 2 |

**Total:** [count] tickets, [sum] story points

### Changes from Original Proposal
- Added: [list or "None"]
- Removed: [list or "None"]
- Modified: [list or "None"]

### Next Steps
1. Review created tickets in Jira
2. Run implementation planning:

/create-implementation-plan {Target_Epic_Overview_Doc}
```

---

## Failure Conditions

| Condition | Action |
|-----------|--------|
| Synthesis URL not accessible | Ask user to verify URL |
| Missing Proposed Tickets section | Ask user to run /synthesize-discovery first |
| Invalid JSON in Proposed Tickets | Report parsing error, ask for manual fix |
| Unresolved blocking decisions | Present decisions for resolution, block ticket creation |
| Synthesis already approved | Offer options: view, append, or cancel |
| Jira ticket creation fails | Report error, offer retry/skip/stop options |
| Confluence update fails | Provide content for manual update |
| Target epic not found | Ask user to verify epic key |

---

## Agent Delegation

**Before ticket creation:**

- **Validation:** Verify target epics exist and are accessible
- **Decision Review:** Ensure all blocking decisions are properly resolved
- **Dependency Check:** Validate ticket dependencies are consistent

**During ticket creation:**

- **Parallel Creation:** Create tickets in parallel where no dependencies exist
- **Link Verification:** Verify all Jira links are created correctly

Files in this skill

  • README.md837 B
  • skill.md11.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.