{
  "name": "Agile Ceremonies Suite",
  "slug": "agile-ceremonies-suite",
  "version": "1.0.1",
  "license": "MIT",
  "license_url": "https://opensource.org/licenses/MIT",
  "manifest": {
    "schema_version": "1",
    "toolkit_prompt": "You are an agile facilitation assistant helping Scrum teams run effective ceremonies. When generating content:\n\n1. Focus on outcomes and continuous improvement\n2. Track sprint commitments and actuals objectively\n3. Surface patterns across sprints (velocity trends, recurring blockers)\n4. Keep retrospective observations constructive and action-oriented\n5. Connect action items to owners with clear timelines\n\nMaintain a collaborative, blameless tone. Celebrate wins and frame challenges as opportunities for improvement.",
    "templates": [
      {
        "spec": {
          "$id": "mt-sprint-planning",
          "name": "Sprint Planning",
          "slug": "agile-sprint-planning",
          "description": "Collaborative session to plan the upcoming sprint, select backlog items, and define sprint goals",
          "meeting_duration_seconds": 3600,
          "detail_level": "STANDARD",
          "agenda_items": [
            {
              "item_type": "DISCUSSION",
              "title": "Sprint Goal Definition",
              "description": "What are we trying to achieve this sprint?",
              "content": "**Facilitator Script**\n\n1. Ask the Product Owner: \"What is the single most important outcome we need to achieve this sprint?\"\n2. Write the proposed goal visibly for all to see.\n3. Ask the team: \"Is this goal achievable? What concerns do you have?\"\n4. Refine until consensus: \"Can everyone commit to this goal?\"\n\n**Good Sprint Goals:**\n- Outcome-focused, not task-focused\n- Measurable (how will we know we succeeded?)\n- Provides flexibility in HOW the team achieves it\n\n**Anti-patterns to Avoid:**\n- \"Complete all stories\" (not a goal)\n- Too many goals (pick ONE)\n- Goals the team can't influence",
              "time_allocation_minutes": 10,
              "sequence": "1"
            },
            {
              "item_type": "DISCUSSION",
              "title": "Capacity Review",
              "description": "## 📊 Team Capacity for Sprint\n\n| Team Member | Days Available | Focus Factor | Notes (PTO, training, on-call) |\n|-------------|----------------|--------------|--------------------------------|\n| | /10 | 0.8 | |\n| | /10 | 0.8 | |\n| | /10 | 0.8 | |\n| | /10 | 0.8 | |\n| | /10 | 0.8 | |\n\n---\n\n**Sprint Dates**: [start] — [end]\n**Working Days**: [ ] days\n**Team Capacity**: [ ] person-days × 0.8 = **[ ] effective days**\n\n---\n\n### ⚠️ Known Constraints\n- [ ] On-call rotation: \n- [ ] Company holidays: \n- [ ] External dependencies: ",
              "content": "**Facilitator Script**\n\n1. \"Let's confirm everyone's availability for this sprint.\"\n2. Go around the room: \"Any PTO, appointments, or reduced hours?\"\n3. Calculate total capacity: [team members] × [days] × [focus factor]\n\n**Capacity Calculation:**\n- Standard focus factor: 0.6-0.8 (accounts for meetings, interruptions)\n- Note any on-call rotations or support duties\n- Consider holidays and company events\n\n**Questions to Ask:**\n- \"Any training or professional development planned?\"\n- \"Are there external dependencies that might affect your time?\"\n- \"Any carryover work from last sprint?\"",
              "time_allocation_minutes": 10,
              "sequence": "2"
            },
            {
              "item_type": "DISCUSSION",
              "title": "Backlog Review",
              "description": "Review top-priority items from product backlog",
              "content": "**Facilitator Script**\n\n1. Product Owner presents items in priority order.\n2. For each item, confirm: \"Is this story ready for sprint? Does it have clear acceptance criteria?\"\n3. Check: \"Are there any dependencies or blockers we need to address first?\"\n\n**Definition of Ready Checklist:**\n- [ ] Clear acceptance criteria\n- [ ] Estimated by the team\n- [ ] Small enough to complete in one sprint\n- [ ] No unresolved dependencies\n- [ ] UX/design artifacts available (if applicable)\n\n**If a Story Isn't Ready:**\n- Note what's missing\n- Assign owner to resolve\n- Consider for next sprint instead",
              "time_allocation_minutes": 15,
              "sequence": "3"
            },
            {
              "item_type": "DISCUSSION",
              "title": "Commitment Discussion",
              "description": "## 🎯 Sprint Commitment Tracker\n\n**Sprint Capacity**: [ ] points available\n\n| Priority | Story ID | Title | Points | Commit? | Risk Level |\n|----------|----------|-------|--------|---------|------------|\n| 1 | | | | ☐ Yes ☐ No | 🟢 🟡 🔴 |\n| 2 | | | | ☐ Yes ☐ No | 🟢 🟡 🔴 |\n| 3 | | | | ☐ Yes ☐ No | 🟢 🟡 🔴 |\n| 4 | | | | ☐ Yes ☐ No | 🟢 🟡 🔴 |\n| 5 | | | | ☐ Yes ☐ No | 🟢 🟡 🔴 |\n| 6 | | | | ☐ Yes ☐ No | 🟢 🟡 🔴 |\n\n**Total Committed**: [ ] / [ ] points\n\n---\n\n### ✅ Team Commitment\n\n| Team Member | Commits to Sprint Goal? |\n|-------------|-----------------------|\n| | ☐ Yes ☐ Concerns |\n| | ☐ Yes ☐ Concerns |\n| | ☐ Yes ☐ Concerns |\n\n**Concerns Raised**:\n- ",
              "content": "**Facilitator Script**\n\n1. \"Based on our capacity and the backlog, what can we realistically commit to?\"\n2. Start with highest-priority items, work down.\n3. Ask: \"Does anyone see risks with this commitment?\"\n4. Get explicit commitment: \"Team, can we commit to these [N] stories?\"\n\n**Commitment Guidelines:**\n- Use historical velocity as a guide, not a rule\n- Leave buffer for unexpected work (10-20%)\n- Consider complexity, not just points\n- It's OK to commit to fewer items with confidence\n\n**Red Flags:**\n- \"We'll try to fit this in\" → Push back, make explicit choices\n- Pressure to over-commit → Protect the team's integrity\n- No buffer for bugs/support → Reserve capacity",
              "time_allocation_minutes": 15,
              "sequence": "4"
            },
            {
              "item_type": "DISCUSSION",
              "title": "Task Breakdown",
              "description": "## 📋 Task Breakdown Board\n\n### Story: [Story Title Here]\n\n| Task | Owner | Est. Hours | Status | Dependencies |\n|------|-------|------------|--------|-------------|\n| | | | ⬜ Not Started | |\n| | | | ⬜ Not Started | |\n| | | | ⬜ Not Started | |\n| | | | ⬜ Not Started | |\n\n**Total Hours**: [ ] hrs | **Story Points**: [ ]\n\n---\n\n### Story: [Story Title Here]\n\n| Task | Owner | Est. Hours | Status | Dependencies |\n|------|-------|------------|--------|-------------|\n| | | | ⬜ Not Started | |\n| | | | ⬜ Not Started | |\n| | | | ⬜ Not Started | |\n\n**Total Hours**: [ ] hrs | **Story Points**: [ ]\n\n---\n\n### ⚠️ Blockers & Risks Identified\n- [ ] \n- [ ] ",
              "content": "**Facilitator Script**\n\n1. \"Let's identify the key tasks for our committed stories.\"\n2. For each story: \"What are the 3-5 main tasks needed to complete this?\"\n3. \"Who has the skills/context to work on this?\"\n\n**Task Breakdown Tips:**\n- Keep tasks small (ideally < 1 day)\n- Include testing, documentation, code review\n- Identify tasks that can be parallelized\n- Note any tasks requiring specific expertise\n\n**Don't Over-Plan:**\n- High-level breakdown is sufficient\n- Detailed planning happens during the sprint\n- Trust the team to self-organize",
              "time_allocation_minutes": 8,
              "sequence": "5"
            },
            {
              "item_type": "ADJOURN",
              "title": "Wrap Up",
              "description": "Confirm sprint goal and commitments",
              "content": "**Facilitator Script**\n\n1. Restate the sprint goal: \"Our goal for this sprint is: [goal]\"\n2. Confirm commitment: \"We've committed to [N] stories totaling [X] points.\"\n3. \"Any final questions or concerns before we start the sprint?\"\n4. \"Great! The sprint officially begins now. Let's go!\"\n\n**Post-Planning:**\n- Update sprint board with committed items\n- Schedule any needed follow-up discussions\n- Ensure everyone knows their first task",
              "time_allocation_minutes": 2,
              "sequence": "6"
            }
          ]
        },
        "next_steps": [
          {
            "next_step": {
              "$ref": "ns-sprint-plan"
            },
            "sort_order": 1,
            "autopilot": true
          },
          {
            "next_step": {
              "$ref": "ns-velocity-report"
            },
            "sort_order": 2,
            "autopilot": false
          }
        ]
      },
      {
        "spec": {
          "$id": "mt-daily-standup",
          "name": "Daily Standup",
          "slug": "agile-daily-standup",
          "description": "Quick daily sync to share progress, plans, and blockers",
          "meeting_duration_seconds": 900,
          "detail_level": "BULLET_POINTS",
          "agenda_items": [
            {
              "item_type": "DISCUSSION",
              "title": "Yesterday's Progress",
              "description": "What did each person accomplish?",
              "content": "**Facilitator Script**\n\n1. \"Let's start with [name]. What did you accomplish yesterday?\"\n2. Go around quickly — each person gets ~45 seconds.\n3. Focus on DONE items, not \"I worked on...\"\n\n**Coaching Tips:**\n- Encourage: \"What did you COMPLETE?\"\n- Redirect: \"Let's take that offline\" for detailed discussions\n- Note patterns: Are stories moving across the board?\n\n**Questions if Progress Seems Stuck:**\n- \"Is the story larger than expected?\"\n- \"Do you need to break it down further?\"",
              "time_allocation_minutes": 5,
              "sequence": "1"
            },
            {
              "item_type": "DISCUSSION",
              "title": "Today's Plan",
              "description": "What will each person work on?",
              "content": "**Facilitator Script**\n\n1. \"What will you focus on TODAY?\"\n2. Look for alignment with sprint goal.\n3. Note any planned collaboration or handoffs.\n\n**Listen For:**\n- Clear, specific tasks (not vague \"working on...\")\n- Connection to sprint board items\n- Realistic scope for one day\n\n**Gentle Redirects:**\n- \"Which specific story is that for?\"\n- \"Can you be more specific about what 'done' looks like today?\"",
              "time_allocation_minutes": 5,
              "sequence": "2"
            },
            {
              "item_type": "DISCUSSION",
              "title": "Blockers & Help Needed",
              "description": "What's in the way?",
              "content": "**Facilitator Script**\n\n1. \"Is anything blocking your progress?\"\n2. \"Does anyone need help from the team?\"\n3. Capture blockers visibly — don't solve them here!\n\n**Blocker Handling:**\n- Note the blocker and owner\n- \"Let's discuss after standup\" for solutions\n- Escalate if it's affecting multiple people\n\n**Common Blockers:**\n- Waiting on external team/dependency\n- Need clarification from PO\n- Technical issue needs pairing\n- Access/environment problems\n\n**After Standup:**\n- Assign blocker owners\n- Schedule focused follow-ups\n- Update sprint board with blocked items",
              "time_allocation_minutes": 5,
              "sequence": "3"
            }
          ]
        },
        "next_steps": [
          {
            "next_step": {
              "$ref": "ns-standup-summary"
            },
            "sort_order": 1,
            "autopilot": true
          }
        ]
      },
      {
        "spec": {
          "$id": "mt-sprint-review",
          "name": "Sprint Review",
          "slug": "agile-sprint-review",
          "description": "Demo completed work to stakeholders and gather feedback",
          "meeting_duration_seconds": 2700,
          "detail_level": "STANDARD",
          "agenda_items": [
            {
              "item_type": "DISCUSSION",
              "title": "Sprint Goal Recap",
              "description": "Remind attendees what we set out to achieve",
              "content": "**Facilitator Script**\n\n1. \"Welcome everyone. Let me remind us of our sprint goal: [read goal]\"\n2. \"We committed to [N] stories totaling [X] story points.\"\n3. Set the stage: \"Today we'll show what we accomplished and get your feedback.\"\n\n**Context to Provide:**\n- Sprint duration and dates\n- Team composition (any changes?)\n- Key dependencies or constraints\n\n**Attendee Orientation:**\n- Who is here? (team, stakeholders, product owner)\n- Ground rules: demos are for feedback, not judgment\n- Questions are welcome throughout",
              "time_allocation_minutes": 5,
              "sequence": "1"
            },
            {
              "item_type": "DISCUSSION",
              "title": "Demo Completed Work",
              "description": "Show each completed story/feature",
              "content": "**Facilitator Script**\n\n1. \"[Developer name] will demo [story title].\"\n2. After each demo: \"Questions or feedback on this feature?\"\n3. Note stakeholder reactions and suggestions.\n\n**Demo Best Practices:**\n- Demo in a production-like environment\n- Show real user scenarios, not technical implementations\n- Keep each demo focused (2-4 minutes per story)\n- Use realistic data where possible\n\n**Handling Feedback:**\n- Capture all feedback (positive and constructive)\n- Don't defend or explain away concerns\n- Ask: \"What would make this more useful?\"\n- Note ideas for backlog refinement\n\n**Demo Order:**\n- Start with highest-impact items\n- Group related features together\n- Save technical work for end (if showing at all)",
              "time_allocation_minutes": 25,
              "sequence": "2"
            },
            {
              "item_type": "DISCUSSION",
              "title": "Incomplete Items",
              "description": "What didn't get done and why",
              "content": "**Facilitator Script**\n\n1. \"We had [N] items that weren't completed this sprint.\"\n2. For each: \"[Story] wasn't completed because [reason].\"\n3. \"These will be prioritized for the next sprint.\"\n\n**Framing (Blameless):**\n- Focus on circumstances, not individuals\n- \"The scope was larger than estimated\" not \"John didn't finish\"\n- Be factual and brief\n\n**Common Reasons:**\n- Scope was underestimated\n- Dependencies were blocked\n- Higher-priority work emerged\n- Technical complexity discovered\n\n**What NOT to Do:**\n- Don't apologize excessively\n- Don't make promises you can't keep\n- Don't blame team members publicly",
              "time_allocation_minutes": 5,
              "sequence": "3"
            },
            {
              "item_type": "DISCUSSION",
              "title": "Stakeholder Feedback",
              "description": "Questions, reactions, suggestions",
              "content": "**Facilitator Script**\n\n1. \"Now I'd like to open the floor for questions and feedback.\"\n2. \"What stood out to you today?\"\n3. \"Anything you'd like us to consider for upcoming sprints?\"\n\n**Facilitation Tips:**\n- Give quiet stakeholders space to speak\n- Redirect detailed technical questions to follow-up sessions\n- Capture new feature ideas for the backlog\n- Watch for body language and unspoken concerns\n\n**Key Questions to Ask:**\n- \"Does this meet your expectations?\"\n- \"What would you prioritize next?\"\n- \"Any concerns about the direction we're heading?\"\n\n**Handling Difficult Feedback:**\n- Thank them for the feedback\n- Clarify to ensure understanding\n- Commit to follow up, don't solve on the spot",
              "time_allocation_minutes": 8,
              "sequence": "4"
            },
            {
              "item_type": "ADJOURN",
              "title": "Next Sprint Preview",
              "description": "What's coming up",
              "content": "**Facilitator Script**\n\n1. \"Looking ahead, here's what's on our radar for next sprint:\"\n2. Highlight 2-3 key items from the top of the backlog.\n3. \"We'll finalize commitments in Sprint Planning on [date].\"\n4. \"Thank you everyone for joining today!\"\n\n**Preview Content:**\n- Top-priority backlog items\n- Any known constraints or dependencies\n- Upcoming milestones or deadlines\n\n**Close Out:**\n- Confirm next Sprint Review date/time\n- Share any action items from today's feedback\n- Thank stakeholders for their time and input",
              "time_allocation_minutes": 2,
              "sequence": "5"
            }
          ]
        },
        "next_steps": [
          {
            "next_step": {
              "$ref": "ns-sprint-review-summary"
            },
            "sort_order": 1,
            "autopilot": true
          },
          {
            "next_step": {
              "$ref": "ns-sprint-health"
            },
            "sort_order": 2,
            "autopilot": false
          }
        ],
        "workflow_ref": {
          "$ref": "wf-sprint-closeout"
        }
      },
      {
        "spec": {
          "$id": "mt-retrospective",
          "name": "Retrospective",
          "slug": "agile-retrospective",
          "description": "Team reflection on the sprint to identify improvements",
          "meeting_duration_seconds": 3600,
          "detail_level": "STANDARD",
          "agenda_items": [
            {
              "item_type": "DISCUSSION",
              "title": "Set the Stage",
              "description": "Check-in, establish safety",
              "content": "**Facilitator Script**\n\n1. \"Welcome to our retrospective. What's discussed here stays here.\"\n2. \"Everyone's perspective is valuable — there are no wrong answers.\"\n3. Quick check-in: \"In one word, how are you feeling about this sprint?\"\n\n**Establishing Safety:**\n- Remind team of Vegas Rule (confidentiality)\n- No blame, no judgment — focus on systems and processes\n- Everyone gets equal voice\n\n**Check-In Activities (Pick One):**\n- One-word mood check\n- Thumbs up/down/sideways\n- ESVP (Explorer, Shopper, Vacationer, Prisoner)\n- Happiness meter (1-5)\n\n**Set Expectations:**\n- Length of session and breaks\n- Format we'll use (Start/Stop/Continue)\n- Goal: actionable improvements",
              "time_allocation_minutes": 5,
              "sequence": "1"
            },
            {
              "item_type": "DISCUSSION",
              "title": "Gather Data",
              "description": "## 🟢 START — Things we should begin doing\n\n| Idea | Contributor | Votes |\n|------|-------------|-------|\n| *Add your ideas here...* | [initials] | |\n| | | |\n| | | |\n| | | |\n\n---\n\n## 🔴 STOP — Things we should stop doing\n\n| Idea | Contributor | Votes |\n|------|-------------|-------|\n| *Add your ideas here...* | [initials] | |\n| | | |\n| | | |\n| | | |\n\n---\n\n## 🟡 CONTINUE — Things working well\n\n| Idea | Contributor | Votes |\n|------|-------------|-------|\n| *Add your ideas here...* | [initials] | |\n| | | |\n| | | |\n| | | |\n\n---\n\n## 🎯 Top Items for Discussion\n\n*After voting, move the top 3-5 items here:*\n\n1. \n2. \n3. ",
              "content": "**Facilitator Script**\n\n1. \"Take 5 minutes to write your observations in the shared board.\"\n2. \"Add your initials so we know who contributed each item.\"\n3. \"We'll discuss and vote on the most important items.\"\n\n**Gathering Tips:**\n- Silent writing first (no groupthink)\n- One idea per row — add as many as you'd like\n- Use the Votes column to dot-vote (each person gets 3 votes)\n- Look for themes across categories\n\n**Example Prompts:**\n- START: New practices, tools, or processes\n- STOP: Time wasters, friction points\n- CONTINUE: Wins to celebrate, practices to reinforce",
              "time_allocation_minutes": 15,
              "sequence": "2"
            },
            {
              "item_type": "DISCUSSION",
              "title": "Generate Insights",
              "description": "Why did things go well or poorly?",
              "content": "**Facilitator Script**\n\n1. \"Let's dot-vote: each person gets 3 dots.\"\n2. \"Vote for items you think are most important to discuss.\"\n3. \"Now let's dig into the top-voted items.\"\n\n**Root Cause Analysis:**\n- \"Why did this happen?\" (Ask 5 times)\n- \"What systems or processes contributed?\"\n- \"Is this a symptom of a bigger issue?\"\n\n**Facilitation Questions:**\n- \"What patterns do you see?\"\n- \"Has this happened before? What's different this time?\"\n- \"What's within our control to change?\"\n\n**Avoid:**\n- Blame (focus on process, not people)\n- Solving too quickly (understand first)\n- Skipping over positive items\n\n**Connecting Themes:**\n- Group related issues together\n- Note interdependencies\n- Identify quick wins vs. systemic changes",
              "time_allocation_minutes": 15,
              "sequence": "3"
            },
            {
              "item_type": "DISCUSSION",
              "title": "Decide Actions",
              "description": "## 📋 Action Items\n\n| # | Action | Owner | Due Date | Success Metric | Status |\n|---|--------|-------|----------|----------------|--------|\n| 1 | | @name | Next retro | | ⬜ Not started |\n| 2 | | @name | Next retro | | ⬜ Not started |\n| 3 | | @name | Next retro | | ⬜ Not started |\n\n---\n\n## ✅ Commitment Check\n\n| Team Member | Commits? | Notes |\n|-------------|----------|-------|\n| | ✅ / ❌ | |\n| | ✅ / ❌ | |\n| | ✅ / ❌ | |\n\n---\n\n## 🚀 Tracking\n\n- [ ] Add to sprint backlog\n- [ ] Create Jira/Linear tickets\n- [ ] Review at next standup",
              "content": "**Facilitator Script**\n\n1. \"Based on our top-voted items, what specific actions will we take?\"\n2. \"For each action, we need an owner and a due date.\"\n3. \"Let's limit to 2-3 actions we can actually complete.\"\n\n**SMART Actions:**\n- **S**pecific: Clear, not vague\n- **M**easurable: How will we know it's done?\n- **A**chievable: Within our control\n- **R**elevant: Addresses root cause\n- **T**ime-bound: Due date (usually next retro)\n\n**Good vs Bad Examples:**\n- ✅ \"Add definition of ready checklist to refinement template\"\n- ❌ \"Improve communication\" (too vague)\n\n**Ownership:**\n- Each action needs ONE owner (not \"the team\")\n- Limit to 2-3 actions — better to do 2 well than 5 poorly",
              "time_allocation_minutes": 15,
              "sequence": "4"
            },
            {
              "item_type": "ADJOURN",
              "title": "Close the Retro",
              "description": "Assign owners, appreciation round",
              "content": "**Facilitator Script**\n\n1. \"Let's recap our action items and owners.\"\n2. \"Before we close, let's do an appreciation round.\"\n3. \"Who would you like to thank or recognize?\"\n\n**Recap Actions:**\n- Read each action item\n- Confirm owner and due date\n- Explain how we'll track progress\n\n**Appreciation Round:**\n- \"I'd like to thank [name] for [specific contribution]\"\n- Encourage everyone to participate\n- Can be work-related or personal\n\n**Retrospective on the Retro:**\n- \"Quick check: How was this retro? Thumbs up/down/sideways?\"\n- Note any improvements for next time\n\n**Close Out:**\n- Confirm next retro date\n- Thank everyone for their openness\n- Remind: Actions will be reviewed at next standup\n\n**Post-Retro:**\n- Document insights and actions\n- Share summary with team (not widely)\n- Add actions to team backlog",
              "time_allocation_minutes": 10,
              "sequence": "5"
            }
          ]
        },
        "next_steps": [
          {
            "next_step": {
              "$ref": "ns-retro-insights"
            },
            "sort_order": 1,
            "autopilot": true
          }
        ],
        "workflow_ref": {
          "$ref": "wf-retro-followup"
        }
      },
      {
        "spec": {
          "$id": "mt-backlog-refinement",
          "name": "Backlog Refinement",
          "slug": "agile-backlog-refinement",
          "description": "Groom upcoming backlog items with estimation and clarification",
          "meeting_duration_seconds": 2700,
          "detail_level": "STANDARD",
          "agenda_items": [
            {
              "item_type": "DISCUSSION",
              "title": "Review New Items",
              "description": "Product Owner presents new stories",
              "content": "**Facilitator Script**\n\n1. \"Let's look at the items the Product Owner has prepared for refinement.\"\n2. \"PO, please walk us through the first story.\"\n3. For each story: \"What problem does this solve for the user?\"\n\n**Product Owner Preparation:**\n- Stories should have a clear title and description\n- Acceptance criteria drafted (will be refined)\n- Business value explained\n- Any mockups or designs available\n\n**Definition of Ready Checklist:**\n- [ ] User story follows format: As a [user], I want [goal] so that [benefit]\n- [ ] Acceptance criteria defined\n- [ ] Dependencies identified\n- [ ] No blockers preventing start\n- [ ] Small enough to complete in one sprint\n\n**Questions to Prompt:**\n- \"Who is the user for this story?\"\n- \"What's the expected outcome?\"\n- \"How will we test this?\"",
              "time_allocation_minutes": 10,
              "sequence": "1"
            },
            {
              "item_type": "DISCUSSION",
              "title": "Clarification",
              "description": "Team asks questions, PO provides context",
              "content": "**Facilitator Script**\n\n1. \"What questions do we have about this story?\"\n2. \"Let's make sure we understand the 'why' and the 'what'.\"\n3. \"PO, can you clarify [specific point]?\"\n\n**Good Clarification Questions:**\n- \"What does 'done' look like for this story?\"\n- \"Are there edge cases we should consider?\"\n- \"What's the scope boundary? What's explicitly OUT?\"\n- \"How does this connect to other features?\"\n- \"What happens if [scenario]?\"\n\n**Technical Questions:**\n- \"What systems or services does this touch?\"\n- \"Are there API changes needed?\"\n- \"Do we need any new data or schema changes?\"\n- \"Performance or security considerations?\"\n\n**Refinement Tips:**\n- Update acceptance criteria in real-time\n- Note assumptions and decisions\n- Flag items needing more research\n- Split stories that are too large\n\n**If Story Needs More Work:**\n- Tag it \"needs refinement\"\n- Assign follow-up actions\n- Don't estimate until ready",
              "time_allocation_minutes": 15,
              "sequence": "2"
            },
            {
              "item_type": "DISCUSSION",
              "title": "Estimation",
              "description": "## 🃏 Story Point Voting\n\n### Current Story: [Story Title]\n\n| Team Member | Vote | Confidence | Notes |\n|-------------|------|------------|-------|\n| | | 🟢 🟡 🔴 | |\n| | | 🟢 🟡 🔴 | |\n| | | 🟢 🟡 🔴 | |\n| | | 🟢 🟡 🔴 | |\n| | | 🟢 🟡 🔴 | |\n\n**Consensus**: [ ] points\n\n---\n\n### 📊 Reference Stories\n\n| Points | Reference Story | Why This Size |\n|--------|-----------------|---------------|\n| 1 | | |\n| 3 | | |\n| 5 | | |\n| 8 | | |\n\n---\n\n### ⚡ Quick Estimates (Batch)\n\n| Story ID | Title | Estimate | Notes |\n|----------|-------|----------|-------|\n| | | pts | |\n| | | pts | |\n| | | pts | |",
              "content": "**Facilitator Script**\n\n1. \"Now that we understand the story, let's estimate.\"\n2. \"Everyone ready? Show your cards in 3... 2... 1...\"\n3. \"[Highest] and [lowest], please explain your reasoning.\"\n4. \"Let's vote again after discussion.\"\n\n**Planning Poker Process:**\n1. Ensure everyone understands the story\n2. Each person selects a card privately\n3. All reveal simultaneously\n4. Discuss outliers (highest/lowest explain)\n5. Re-vote if needed until consensus\n\n**Fibonacci Sequence:**\n- **1** = Trivial, very well understood\n- **2** = Small, straightforward\n- **3** = Moderate complexity\n- **5** = Larger, some unknowns\n- **8** = Complex, needs breaking down soon\n- **13** = Very complex, consider splitting\n- **21+** = Too large, must split before sprint\n\n**Facilitation Tips:**\n- Don't anchor (avoid saying \"I think it's a 5\")\n- Reference team's past stories for calibration\n- Uncertainty = higher estimate\n- Consider: development + testing + review\n\n**When Estimates Differ:**\n- Have outliers explain reasoning\n- Often uncovers missing information\n- Re-vote after discussion\n- If still split, go with higher estimate",
              "time_allocation_minutes": 15,
              "sequence": "3"
            },
            {
              "item_type": "ADJOURN",
              "title": "Prioritization",
              "description": "Confirm order of upcoming items",
              "content": "**Facilitator Script**\n\n1. \"PO, based on today's refinement, what's the current priority order?\"\n2. \"Are there any dependencies that affect ordering?\"\n3. \"Let's confirm: [story 1], [story 2], [story 3] are top candidates for next sprint.\"\n4. \"Thank you everyone. See you at Sprint Planning!\"\n\n**Prioritization Factors:**\n- Business value and urgency\n- Dependencies and blockers\n- Risk reduction\n- Technical debt paydown\n- Team capacity and skills\n\n**Backlog Health Check:**\n- Do we have 2 sprints worth of refined stories?\n- Are top items estimated and ready?\n- Any stories aging that should be dropped?\n\n**Close Out:**\n- Confirm which stories are now \"Ready\"\n- Note any follow-up actions needed\n- Remind team of upcoming Sprint Planning date\n- Thank PO and team for their time\n\n**Post-Refinement Actions:**\n- Update story status in backlog tool\n- Attach any artifacts discussed\n- Document decisions and assumptions\n- Schedule follow-ups for unresolved items",
              "time_allocation_minutes": 5,
              "sequence": "4"
            }
          ]
        },
        "next_steps": [
          {
            "next_step": {
              "$ref": "ns-refinement-summary"
            },
            "sort_order": 1,
            "autopilot": true
          }
        ]
      }
    ],
    "next_steps": [
      {
        "spec": {
          "$id": "ns-sprint-plan",
          "name": "Sprint Commitment Document",
          "slug": "agile-sprint-commitment",
          "description": "Generates a formal sprint commitment document with goals, capacity, backlog items, and team sign-off for stakeholder distribution.",
          "icon_name": "file-signature",
          "color": "#3B82F6",
          "type": "ai",
          "ai_prompt": "Generate a formal Sprint Commitment Document suitable for stakeholder distribution and team reference.\n\n---\n\n# Sprint Commitment Document\n\n**Sprint**: [number] | **Team**: [team name]\n**Duration**: [start date] → [end date] ([X] working days)\n**Prepared**: [today's date]\n\n---\n\n## Sprint Goal\n\n> [One clear sentence describing the sprint objective and business value]\n\n**Success Criteria**: [How we will know the goal is achieved]\n\n---\n\n## Team Capacity\n\n| Team Member | Availability | Notes |\n|-------------|--------------|-------|\n| [name] | [%] | [PTO, on-call, etc.] |\n\n**Total Capacity**: [X] story points / [Y] person-days\n**Commitment Buffer**: [10-15% for unplanned work]\n\n---\n\n## Sprint Backlog\n\n### Committed Work\n\n| Priority | ID | Story | Points | Owner | Acceptance Criteria Summary |\n|----------|-----|-------|--------|-------|-----------------------------|\n| 1 | [ticket] | [title] | [pts] | [name] | [key criteria] |\n| 2 | [ticket] | [title] | [pts] | [name] | [key criteria] |\n\n**Total Committed**: [X] points ([Y]% of capacity)\n\n### Stretch Goals (if capacity allows)\n| ID | Story | Points | Notes |\n|----|-------|--------|-------|\n| [ticket] | [title] | [pts] | [context] |\n\n---\n\n## Dependencies & Risks\n\n### External Dependencies\n| Dependency | Owner | Status | Mitigation |\n|------------|-------|--------|------------|\n| [what we need] | [who provides] | [status] | [backup plan] |\n\n### Identified Risks\n| Risk | Likelihood | Impact | Mitigation |\n|------|------------|--------|------------|\n| [risk] | [H/M/L] | [H/M/L] | [plan] |\n\n---\n\n## Agreements & Assumptions\n\n- **Scope Lock**: No new work added after [date] without team agreement\n- **Daily Sync**: [time] [timezone]\n- **Definition of Done applies**: Code reviewed, tested, documented, deployed to staging\n\n---\n\n## Sign-Off\n\n| Role | Name | Committed |\n|------|------|----------|\n| Product Owner | [name] | ☐ |\n| Scrum Master | [name] | ☐ |\n| Dev Lead | [name] | ☐ |\n\n*This document represents the team's commitment. Changes require explicit renegotiation.*"
        },
        "action_buttons": [
          {
            "action_button": {
              "$ref": "ab-copy-clipboard"
            },
            "sort_order": 1
          },
          {
            "action_button": {
              "$ref": "ab-download-pdf"
            },
            "sort_order": 2
          },
          {
            "action_button": {
              "$ref": "ab-email-team"
            },
            "sort_order": 3
          },
          {
            "action_button": {
              "$ref": "ab-send-jira"
            },
            "sort_order": 4
          }
        ],
        "default_action_button": {
          "$ref": "ab-download-pdf"
        }
      },
      {
        "spec": {
          "$id": "ns-standup-summary",
          "name": "Standup Summary",
          "slug": "agile-standup-summary",
          "description": "Creates a compact daily standup summary with progress updates, today's focus areas, blockers, and sprint health status.",
          "icon_name": "waveform-lines",
          "color": "#10B981",
          "type": "ai",
          "ai_prompt": "Summarize today's standup in a compact format:\n\n## Daily Standup — [date]\n\n### Progress\n- [person]: [what they accomplished]\n\n### Today's Focus\n- [person]: [what they're working on]\n\n### Blockers 🚧\n- [blocker with owner and status]\n\n### Action Items\n- [ ] [action with owner]\n\n**Sprint Health**: [On Track / At Risk / Behind] — [brief reasoning]"
        },
        "action_buttons": [
          {
            "action_button": {
              "$ref": "ab-copy-clipboard"
            },
            "sort_order": 1
          },
          {
            "action_button": {
              "$ref": "ab-send-slack"
            },
            "sort_order": 2
          }
        ],
        "default_action_button": {
          "$ref": "ab-copy-clipboard"
        }
      },
      {
        "spec": {
          "$id": "ns-sprint-review-summary",
          "name": "Sprint Review Summary",
          "slug": "agile-sprint-review-summary",
          "description": "Generates a sprint review summary with goal status, completed work, incomplete items, velocity metrics, and stakeholder feedback themes.",
          "icon_name": "chart-line-up",
          "color": "#8B5CF6",
          "type": "ai",
          "ai_prompt": "Generate a sprint review summary:\n\n## Sprint Review — Sprint [number]\n\n### Sprint Goal\n**Goal**: [the sprint goal]\n**Status**: [Achieved / Partially Achieved / Not Achieved]\n\n### Completed Work\n\n| Story | Demo'd By | Stakeholder Feedback |\n|-------|-----------|---------------------|\n| [title] | [person] | [feedback summary] |\n\n### Incomplete Items\n| Story | Reason | Carryover? |\n|-------|--------|------------|\n| [title] | [why not done] | [Yes/No] |\n\n### Velocity\n- **Committed**: [X] points\n- **Completed**: [Y] points\n- **Velocity**: [Y/X]%\n\n### Stakeholder Feedback Themes\n1. [theme with context]\n\n### Action Items from Feedback\n- [ ] [action with owner]"
        },
        "action_buttons": [
          {
            "action_button": {
              "$ref": "ab-copy-clipboard"
            },
            "sort_order": 1
          },
          {
            "action_button": {
              "$ref": "ab-email-team"
            },
            "sort_order": 2
          },
          {
            "action_button": {
              "$ref": "ab-download-pdf"
            },
            "sort_order": 3
          }
        ],
        "default_action_button": {
          "$ref": "ab-copy-clipboard"
        }
      },
      {
        "spec": {
          "$id": "ns-retro-insights",
          "name": "Retrospective Insights",
          "slug": "agile-retro-insights",
          "description": "Synthesizes retrospective discussion into actionable insights with what went well, challenges, decided actions, and team mood assessment.",
          "icon_name": "lightbulb",
          "color": "#F59E0B",
          "type": "ai",
          "ai_prompt": "Synthesize the retrospective discussion:\n\n## Retrospective Insights — Sprint [number]\n\n### What Went Well ✅\n1. [positive with supporting detail]\n2. [positive with supporting detail]\n\n### What Didn't Go Well ❌\n1. [challenge with context]\n2. [challenge with context]\n\n### Key Insights 💡\n- [pattern or root cause identified]\n- [connection to previous sprints if applicable]\n\n### Decided Actions\n| Action | Owner | Due | Priority |\n|--------|-------|-----|----------|\n| [action] | [person] | [date] | [High/Med/Low] |\n\n### Parking Lot (for future discussion)\n- [topic tabled for later]\n\n### Team Mood\n[Overall sentiment: Energized / Neutral / Frustrated] — [brief context]"
        },
        "action_buttons": [
          {
            "action_button": {
              "$ref": "ab-copy-clipboard"
            },
            "sort_order": 1
          },
          {
            "action_button": {
              "$ref": "ab-email-team"
            },
            "sort_order": 2
          }
        ],
        "default_action_button": {
          "$ref": "ab-copy-clipboard"
        }
      },
      {
        "spec": {
          "$id": "ns-velocity-report",
          "name": "Velocity Report",
          "slug": "agile-velocity-report",
          "description": "Generates velocity analysis with current sprint metrics, trend analysis across recent sprints, and commitment recommendations.",
          "icon_name": "chart-line-up",
          "color": "#6366F1",
          "type": "ai",
          "ai_prompt": "Generate a velocity analysis based on sprint data:\n\n## Velocity Report — Sprint [number]\n\n### Current Sprint\n- **Committed**: [X] points\n- **Completed**: [Y] points\n- **Completion Rate**: [Y/X]%\n\n### Trend Analysis\n| Sprint | Committed | Completed | Rate |\n|--------|-----------|-----------|------|\n| [n-2] | [pts] | [pts] | [%] |\n| [n-1] | [pts] | [pts] | [%] |\n| [current] | [pts] | [pts] | [%] |\n\n**Average Velocity** (last 3 sprints): [Z] points\n\n### Observations\n- [trend insight: improving, declining, stable]\n- [capacity utilization notes]\n\n### Recommendations\n- [suggested commitment for next sprint based on data]"
        },
        "action_buttons": [
          {
            "action_button": {
              "$ref": "ab-copy-clipboard"
            },
            "sort_order": 1
          },
          {
            "action_button": {
              "$ref": "ab-download-pdf"
            },
            "sort_order": 2
          }
        ],
        "default_action_button": {
          "$ref": "ab-copy-clipboard"
        }
      },
      {
        "spec": {
          "$id": "ns-sprint-health",
          "name": "Sprint Health Check",
          "slug": "agile-sprint-health",
          "description": "Assesses overall sprint health with goal progress, velocity tracking, blocker count, team morale, and recommendations for the next sprint.",
          "icon_name": "bolt",
          "color": "#059669",
          "type": "ai",
          "ai_prompt": "Assess the overall health of this sprint:\n\n## Sprint Health Check — Sprint [number]\n\n### Overall Status: [🟢 Healthy / 🟡 At Risk / 🔴 Critical]\n\n### Metrics\n\n| Metric | Status | Notes |\n|--------|--------|-------|\n| Goal Progress | [%] | [context] |\n| Velocity Tracking | [On/Behind/Ahead] | [context] |\n| Blocker Count | [X] | [resolved vs active] |\n| Team Morale | [High/Medium/Low] | [based on retro/standups] |\n\n### Risk Summary\n1. [risk with mitigation status]\n\n### Highlights\n- [notable achievements this sprint]\n\n### Recommendations for Next Sprint\n- [actionable suggestion based on this sprint's data]"
        },
        "action_buttons": [
          {
            "action_button": {
              "$ref": "ab-copy-clipboard"
            },
            "sort_order": 1
          },
          {
            "action_button": {
              "$ref": "ab-send-slack"
            },
            "sort_order": 2
          }
        ],
        "default_action_button": {
          "$ref": "ab-copy-clipboard"
        }
      },
      {
        "spec": {
          "$id": "ns-refinement-summary",
          "name": "Refinement Summary",
          "slug": "agile-refinement-summary",
          "description": "Generates a formal backlog refinement summary with refined stories, sprint-ready items, follow-up blockers, and backlog health metrics.",
          "icon_name": "clipboard-check",
          "color": "#8B5CF6",
          "type": "ai",
          "ai_prompt": "Generate a formal Backlog Refinement Summary for the product owner and stakeholders.\n\n---\n\n# Backlog Refinement Summary\n\n**Session Date**: [date]\n**Attendees**: [list participants]\n**Facilitator**: [name]\n\n---\n\n## Stories Refined\n\n| ID | Story Title | Points | Status | Notes |\n|----|-------------|--------|--------|-------|\n| [ticket] | [title] | [pts] | ✅ Ready / 🔄 Needs Work | [key decisions] |\n\n**Total Stories Refined**: [X]\n**Total Points Estimated**: [Y]\n\n---\n\n## Stories Now Ready for Sprint\n\nThe following stories meet the Definition of Ready and can be pulled into upcoming sprints:\n\n1. **[ticket]**: [title] ([pts] pts) — [one-line summary]\n2. **[ticket]**: [title] ([pts] pts) — [one-line summary]\n\n---\n\n## Stories Requiring Follow-Up\n\n| Story | Blocker | Owner | Due |\n|-------|---------|-------|-----|\n| [ticket] | [what's needed] | [person] | [date] |\n\n---\n\n## Key Decisions Made\n\n1. [Decision with rationale]\n2. [Decision with rationale]\n\n---\n\n## Backlog Health\n\n- **Sprint-Ready Stories**: [X] stories ([Y] points)\n- **Recommended Sprint Capacity**: [Z] points\n- **Coverage**: [A] sprints of refined work available\n\n---\n\n*Next refinement session: [date/time]*"
        },
        "action_buttons": [
          {
            "action_button": {
              "$ref": "ab-copy-clipboard"
            },
            "sort_order": 1
          },
          {
            "action_button": {
              "$ref": "ab-email-team"
            },
            "sort_order": 2
          },
          {
            "action_button": {
              "$ref": "ab-send-jira"
            },
            "sort_order": 3
          }
        ],
        "default_action_button": {
          "$ref": "ab-copy-clipboard"
        }
      },
      {
        "spec": {
          "$id": "ns-prd-draft",
          "name": "PRD Draft",
          "slug": "agile-prd-draft",
          "description": "Generates a Product Requirements Document draft from the feature discussion with user stories, requirements, scope, dependencies, and timeline.",
          "icon_name": "file-text",
          "color": "#DC2626",
          "type": "ai",
          "ai_prompt": "Generate a Product Requirements Document (PRD) draft based on this feature discussion meeting.\n\n---\n\n# Product Requirements Document\n\n**Feature Name**: [extracted from discussion]\n**Document Version**: 1.0 (Draft)\n**Author**: [meeting organizer]\n**Date**: [today]\n**Status**: Draft — Pending Review\n\n---\n\n## 1. Overview\n\n### 1.1 Problem Statement\n[What problem are we solving? Extract from discussion.]\n\n### 1.2 Proposed Solution\n[High-level description of what we're building]\n\n### 1.3 Goals & Success Metrics\n\n| Goal | Metric | Target |\n|------|--------|--------|\n| [goal] | [how measured] | [target value] |\n\n---\n\n## 2. User Stories\n\n### Primary User: [persona]\n\n| # | User Story | Priority | Acceptance Criteria |\n|---|------------|----------|--------------------|\n| 1 | As a [user], I want [goal] so that [benefit] | P0/P1/P2 | - [criterion 1]\\n- [criterion 2] |\n\n---\n\n## 3. Requirements\n\n### 3.1 Functional Requirements\n\n| ID | Requirement | Priority | Notes |\n|----|-------------|----------|-------|\n| FR-1 | [requirement] | Must/Should/Could | [context] |\n\n### 3.2 Non-Functional Requirements\n\n| Category | Requirement |\n|----------|-------------|\n| Performance | [e.g., page load < 2s] |\n| Security | [e.g., data encryption] |\n| Accessibility | [e.g., WCAG AA] |\n| Scalability | [e.g., 10K concurrent users] |\n\n---\n\n## 4. Scope\n\n### In Scope\n- [feature/capability included]\n\n### Out of Scope\n- [explicitly excluded for this release]\n\n### Future Considerations\n- [potential future enhancements discussed]\n\n---\n\n## 5. Dependencies & Risks\n\n### Dependencies\n| Dependency | Owner | Status |\n|------------|-------|--------|\n| [what we need] | [team/person] | [status] |\n\n### Risks\n| Risk | Likelihood | Impact | Mitigation |\n|------|------------|--------|------------|\n| [risk] | H/M/L | H/M/L | [plan] |\n\n---\n\n## 6. Timeline (Preliminary)\n\n| Phase | Duration | Notes |\n|-------|----------|-------|\n| Design | [X weeks] | [context] |\n| Development | [Y weeks] | [context] |\n| Testing | [Z weeks] | [context] |\n| Release | [date] | [context] |\n\n---\n\n## 7. Open Questions\n\n1. [Question raised but not resolved]\n2. [Question needing stakeholder input]\n\n---\n\n## 8. Approvals\n\n| Role | Name | Status | Date |\n|------|------|--------|------|\n| Product Owner | [name] | ☐ Pending | |\n| Engineering Lead | [name] | ☐ Pending | |\n| Design Lead | [name] | ☐ Pending | |\n\n---\n\n*This PRD was auto-generated from meeting discussion and requires review and refinement.*"
        },
        "action_buttons": [
          {
            "action_button": {
              "$ref": "ab-download-pdf"
            },
            "sort_order": 1
          },
          {
            "action_button": {
              "$ref": "ab-copy-clipboard"
            },
            "sort_order": 2
          },
          {
            "action_button": {
              "$ref": "ab-email-team"
            },
            "sort_order": 3
          }
        ],
        "default_action_button": {
          "$ref": "ab-download-pdf"
        }
      }
    ],
    "action_buttons": [
      {
        "spec": {
          "$id": "ab-copy-clipboard",
          "name": "Copy to Clipboard",
          "slug": "agile-copy-clipboard",
          "delivery_mechanism": "clipboard",
          "content_format": "plain_text",
          "sort_order": 1
        }
      },
      {
        "spec": {
          "$id": "ab-email-team",
          "name": "Email Team",
          "slug": "agile-email-team",
          "delivery_mechanism": "email",
          "content_format": "rich_text",
          "sort_order": 2
        }
      },
      {
        "spec": {
          "$id": "ab-send-jira",
          "name": "Send to Jira",
          "slug": "agile-send-jira",
          "delivery_mechanism": "integration",
          "content_format": "rich_text",
          "integration_type": "jira",
          "sort_order": 3
        }
      },
      {
        "spec": {
          "$id": "ab-send-slack",
          "name": "Post to Slack",
          "slug": "agile-send-slack",
          "delivery_mechanism": "integration",
          "content_format": "rich_text",
          "integration_type": "slack",
          "sort_order": 4
        }
      },
      {
        "spec": {
          "$id": "ab-download-pdf",
          "name": "Download PDF",
          "slug": "agile-download-pdf",
          "delivery_mechanism": "file_download",
          "content_format": "rich_text",
          "file_format": "pdf",
          "sort_order": 5
        }
      }
    ],
    "shortcuts": [
      {
        "spec": {
          "$id": "sc-capture-decision",
          "name": "Capture Decision",
          "slug": "agile-capture-decision",
          "description": "AI analyzes transcript to identify and formally record a team decision",
          "icon_name": "bullseye",
          "color": "#10B981",
          "surfaces": [
            {
              "surface": "MEETING_RUN",
              "position": 1
            }
          ],
          "prompt": "You are the team facilitator's assistant. Analyze the LAST 3-5 MINUTES of transcript to identify and capture a team decision.\n\n**Your task:**\n1. Identify the decision that was made (look for consensus statements, \"let's go with\", \"we've decided\", voting outcomes, etc.).\n2. Identify WHO proposed the decision and WHO agreed/supported it.\n3. Note any alternatives that were discussed and rejected.\n4. Determine if an owner was assigned for execution.\n\n**Write to the meeting notes (in the current agenda item's collaborative space):**\n\n✅ **DECISION** [{timestamp from transcript}]\n> {The exact decision in clear, actionable language}\n\n**Context**: {Why this decision was made - the problem it solves}\n**Alternatives Rejected**: {Other options discussed, if any}\n**Owner**: {Person responsible, or \"TBD\" if not assigned}\n**Next Steps**: {Any immediate follow-ups mentioned}\n\n**After recording**, confirm: \"Decision captured: '{brief summary}'. {Owner} is responsible for execution.\"\n\nIf no clear decision is found in recent discussion, ask: \"I don't see a clear decision in the last few minutes. Would you like to capture the current topic being discussed, or summarize what was just decided?\""
        }
      },
      {
        "spec": {
          "$id": "sc-action-item",
          "name": "Extract Action",
          "slug": "agile-action-item",
          "description": "AI identifies action items from discussion and creates trackable tasks",
          "icon_name": "square-list",
          "color": "#3B82F6",
          "surfaces": [
            {
              "surface": "MEETING_RUN",
              "position": 2
            }
          ],
          "prompt": "You are the team facilitator's assistant. Analyze the LAST 2-3 MINUTES of transcript to identify and extract action items.\n\n**Your task:**\n1. Listen for commitments: \"I'll do...\", \"Can you...\", \"We need to...\", \"Action item:\", \"TODO:\"\n2. Identify the OWNER (who committed or was assigned).\n3. Extract any mentioned DEADLINE (sprint, date, \"by EOD\", \"next week\").\n4. Determine PRIORITY based on context (urgent language, blockers, dependencies).\n\n**For EACH action item found, write to the meeting notes:**\n\n📋 **ACTION**: {Specific, actionable task description}\n- **Owner**: {Name}\n- **Due**: {Deadline or \"Next sprint\" if not specified}\n- **Priority**: {High 🔴 / Medium 🟡 / Low 🟢}\n- **Context**: {Brief note on why this matters or what it unblocks}\n\n**After recording**, confirm: \"Action captured for {Owner}: '{brief task}' due {deadline}.\"\n\n**If multiple actions were mentioned**, list them all and ask: \"I found {N} action items. Should I capture all of them?\"\n\n**If no clear action is found**, ask: \"What action item would you like to capture? Please specify the task, owner, and deadline.\""
        }
      },
      {
        "spec": {
          "$id": "sc-time-check",
          "name": "Time Check",
          "slug": "agile-time-check",
          "description": "AI calculates actual meeting time status with pacing recommendations",
          "icon_name": "clock-rotate-left",
          "color": "#64748B",
          "surfaces": [
            {
              "surface": "MEETING_RUN",
              "position": 3
            }
          ],
          "prompt": "You are the meeting timekeeper. Calculate the ACTUAL meeting time status using the meeting context.\n\n**Your task:**\n1. Check the meeting START TIME and calculate elapsed minutes.\n2. Identify the CURRENT AGENDA ITEM being discussed.\n3. Look at that item's allocated time vs. how long discussion has been on it.\n4. Check the total scheduled meeting duration.\n5. Calculate remaining time for the entire meeting.\n\n**Provide this update to the team:**\n\n⏱️ **TIME CHECK** (auto-calculated)\n- **Meeting elapsed**: {calculated} minutes\n- **Current item**: {current agenda item title}\n- **Item time used**: {minutes} of {allocated} minutes\n- **Meeting remaining**: {calculated} minutes\n- **Pacing**: {On track ✅ / Suggest wrapping up ⚠️ / Running over 🔴}\n\n**If running over on current item**, suggest: \"Consider time-boxing the remaining discussion or moving this to a parking lot.\"\n\n**If ahead of schedule**, note: \"We have extra time - consider deeper discussion or ending early.\""
        }
      },
      {
        "spec": {
          "$id": "sc-quick-retro",
          "name": "Sprint Insights",
          "slug": "agile-quick-retro",
          "description": "AI generates retrospective insights from the full meeting transcript",
          "icon_name": "lightbulb",
          "color": "#F59E0B",
          "surfaces": [
            {
              "surface": "MEETING_REVIEW",
              "position": 1
            }
          ],
          "prompt": "You are the retrospective facilitator. Analyze the ENTIRE meeting transcript to generate actionable sprint insights.\n\n**Your task:**\n1. Identify patterns in what went well (celebrations, completed work, smooth processes).\n2. Identify patterns in what didn't go well (blockers, frustrations, delays).\n3. Extract specific improvement suggestions that were mentioned.\n4. Note any recurring themes or systemic issues.\n\n**Generate this summary:**\n\n📊 **SPRINT INSIGHTS** (AI-analyzed from discussion)\n\n**🟢 Keep Doing** (What's working)\n• {Most impactful positive practice or outcome}\n• {Second positive, if distinct}\n\n**🔴 Stop Doing** (What's hurting us)\n• {Biggest impediment or pain point}\n• {Second issue, if distinct}\n\n**🟡 Start Doing** (Improvements to try)\n• {Top actionable improvement suggestion}\n• {Second improvement, if mentioned}\n\n**📈 Patterns Noticed**\n{Any recurring themes across multiple discussion points - e.g., \"Communication gaps mentioned 3 times\", \"Testing came up as a bottleneck repeatedly\"}\n\n**Suggested Action Items**\n• {Specific action to address the top issue}\n\n**Deliver this summary** to the meeting participants for review and discussion."
        }
      },
      {
        "spec": {
          "$id": "sc-swot-analysis",
          "name": "SWOT Analysis",
          "slug": "agile-swot",
          "description": "AI extracts SWOT elements from discussion and builds a strategic analysis matrix",
          "icon_name": "chart-line-up",
          "color": "#8B5CF6",
          "surfaces": [
            {
              "surface": "MEETING_RUN",
              "position": 4
            }
          ],
          "prompt": "You are a strategic planning facilitator. Analyze the LAST 5-10 MINUTES of transcript to build a SWOT analysis from the team's discussion.\n\n**Your task:**\n1. Identify **Strengths** mentioned: competitive advantages, resources, capabilities, what's working well internally.\n2. Identify **Weaknesses** mentioned: internal limitations, resource gaps, skill deficiencies, process problems.\n3. Identify **Opportunities** mentioned: external trends, market gaps, partnerships, growth areas.\n4. Identify **Threats** mentioned: competitors, market changes, risks, dependencies, external challenges.\n\n**Navigate to the current agenda item's collaborative space and add or update a SWOT table:**\n\n## 📊 SWOT Analysis (AI-extracted from discussion)\n\n| **STRENGTHS** (Internal +) | **WEAKNESSES** (Internal -) |\n|:---------------------------|:----------------------------|\n| • {strength 1} | • {weakness 1} |\n| • {strength 2} | • {weakness 2} |\n\n| **OPPORTUNITIES** (External +) | **THREATS** (External -) |\n|:-------------------------------|:-------------------------|\n| • {opportunity 1} | • {threat 1} |\n| • {opportunity 2} | • {threat 2} |\n\n**Key Insight**: {One strategic observation connecting these elements, e.g., \"Leverage {strength} to capture {opportunity}\" or \"Address {weakness} before {threat} materializes\"}\n\n**After updating**, confirm: \"SWOT analysis captured with {N} items across 4 quadrants. Key strategic insight: {brief}.\"\n\nIf the discussion hasn't covered all quadrants, note which are missing and prompt: \"We have good coverage on {X} and {Y}. Should we discuss {missing quadrant} before completing the analysis?\""
        }
      },
      {
        "spec": {
          "$id": "sc-raci-matrix",
          "name": "RACI Assignment",
          "slug": "agile-raci",
          "description": "AI builds a RACI matrix from task assignment discussions",
          "icon_name": "user-question",
          "color": "#EC4899",
          "surfaces": [
            {
              "surface": "MEETING_RUN",
              "position": 5
            }
          ],
          "prompt": "You are a project planning facilitator. Analyze the LAST 3-5 MINUTES of transcript to extract role assignments and build a RACI matrix.\n\n**RACI Framework:**\n- **R**esponsible: Does the work (can be multiple people)\n- **A**ccountable: Ultimately answerable, makes final decisions (only ONE person)\n- **C**onsulted: Provides input before decisions (two-way communication)\n- **I**nformed: Kept updated on progress (one-way communication)\n\n**Your task:**\n1. Identify the TASK or DELIVERABLE being discussed.\n2. Listen for assignment language: \"X will handle...\", \"Y owns...\", \"Make sure Z knows...\", \"We need input from...\"\n3. Map each person to their RACI role for this task.\n\n**Navigate to the current agenda item's collaborative space and add or update a RACI table:**\n\n## 📋 RACI Matrix (AI-extracted from discussion)\n\n| Task/Deliverable | Responsible | Accountable | Consulted | Informed |\n|:-----------------|:-----------:|:-----------:|:---------:|:--------:|\n| {task 1} | {names} | {name} | {names} | {names} |\n| {task 2} | {names} | {name} | {names} | {names} |\n\n**Gaps Identified:**\n• {Any tasks without a clear Accountable person}\n• {Any ambiguity in assignments}\n\n**After updating**, confirm: \"RACI captured for {N} task(s). {Name} is accountable for {primary deliverable}.\"\n\n**If roles are unclear**, prompt: \"I heard {Person} will work on this, but who is ultimately accountable for the outcome? And should anyone else be consulted or informed?\""
        }
      },
      {
        "spec": {
          "$id": "sc-priority-matrix",
          "name": "Prioritize (2×2)",
          "slug": "agile-priority-matrix",
          "description": "AI places items on an Impact/Effort matrix based on discussion",
          "icon_name": "square-list",
          "color": "#06B6D4",
          "surfaces": [
            {
              "surface": "MEETING_RUN",
              "position": 6
            }
          ],
          "prompt": "You are a prioritization facilitator. Analyze the LAST 5 MINUTES of transcript to place items on an Impact vs. Effort matrix.\n\n**Matrix Quadrants:**\n- **Quick Wins** (High Impact, Low Effort): Do these first!\n- **Big Bets** (High Impact, High Effort): Plan and resource carefully\n- **Fill-Ins** (Low Impact, Low Effort): Do if time permits\n- **Avoid** (Low Impact, High Effort): Deprioritize or eliminate\n\n**Your task:**\n1. Identify ITEMS being prioritized (features, tasks, initiatives, backlog items).\n2. Listen for effort indicators: \"easy\", \"quick\", \"complex\", \"heavy lift\", \"days of work\", \"sprint\", etc.\n3. Listen for impact indicators: \"game-changer\", \"nice to have\", \"critical\", \"moves the needle\", \"low value\", etc.\n4. Place each item in the appropriate quadrant.\n\n**Navigate to the current agenda item's collaborative space and add or update a Priority Matrix:**\n\n## 📊 Priority Matrix (AI-extracted from discussion)\n\n|  | **Low Effort** | **High Effort** |\n|:--:|:--------------|:----------------|\n| **High Impact** | 🏆 **QUICK WINS** | 🎯 **BIG BETS** |\n|  | • {item} | • {item} |\n|  | • {item} | • {item} |\n| **Low Impact** | ⏳ **FILL-INS** | ⛔ **AVOID** |\n|  | • {item} | • {item} |\n|  | • {item} | • {item} |\n\n**Recommended Priority Order:**\n1. {Top quick win}\n2. {Second quick win or first big bet}\n3. {Continue...}\n\n**After updating**, confirm: \"Prioritization matrix built with {N} items. Top priority: {item} (Quick Win). Recommend avoiding: {item if any in Avoid quadrant}.\"\n\n**If impact/effort wasn't discussed**, prompt: \"For {item}, would you say this is high or low effort? And what's the expected impact?\""
        }
      },
      {
        "spec": {
          "$id": "sc-five-whys",
          "name": "5 Whys Analysis",
          "slug": "agile-five-whys",
          "description": "AI traces root cause by extracting the causal chain from discussion",
          "icon_name": "bullseye",
          "color": "#EF4444",
          "surfaces": [
            {
              "surface": "MEETING_RUN",
              "position": 7
            }
          ],
          "prompt": "You are a root cause analysis facilitator. Analyze the LAST 5 MINUTES of transcript to trace a problem to its root cause using the 5 Whys technique.\n\n**Your task:**\n1. Identify the PROBLEM or SYMPTOM being discussed.\n2. Listen for causal language: \"because\", \"due to\", \"caused by\", \"led to\", \"the reason is\", \"that happened when\".\n3. Trace the causal chain from symptom to root cause (aim for 5 levels, but may be fewer if root is clear).\n\n**Navigate to the current agenda item's collaborative space and add a 5 Whys analysis:**\n\n## 🔍 5 Whys Analysis (AI-extracted from discussion)\n\n**Problem Statement**: {The symptom or issue}\n\n| Level | Question | Answer |\n|:-----:|:---------|:-------|\n| 1 | Why did {problem} occur? | Because {cause 1} |\n| 2 | Why did {cause 1} happen? | Because {cause 2} |\n| 3 | Why did {cause 2} happen? | Because {cause 3} |\n| 4 | Why did {cause 3} happen? | Because {cause 4} |\n| 5 | Why did {cause 4} happen? | Because {root cause} |\n\n**🎯 Root Cause Identified**: {The deepest cause that can be addressed}\n\n**Recommended Action**: {A specific action to address the root cause}\n\n**After completing**, confirm: \"Root cause analysis complete. The core issue is: {root cause}. Suggested action: {action}.\"\n\n**If the causal chain is incomplete**, prompt: \"We've traced this to '{current deepest cause}'. Let's go one level deeper—why did that happen?\""
        }
      }
    ],
    "canvas_templates": [
      {
        "spec": {
          "$id": "ct-sprint-dashboard",
          "name": "Sprint Dashboard",
          "slug": "agile-sprint-dashboard",
          "description": "A collaborative document that aggregates sprint data across ceremonies",
          "content_schema_version": "1.0",
          "content": "# Sprint Dashboard — Sprint [number]\n\n## Sprint Overview\n- **Goal**: [sprint goal]\n- **Duration**: [start] to [end]\n- **Team**: [members]\n\n## Commitment vs Actuals\n\n| Metric | Planned | Actual | Variance |\n|--------|---------|--------|----------|\n| Story Points | [X] | [Y] | [+/-] |\n| Stories | [X] | [Y] | [+/-] |\n| Bugs Fixed | [X] | [Y] | [+/-] |\n\n## Burndown\n\n[Placeholder for burndown visualization]\nDay 1: [X] points remaining\nDay 2: [X] points remaining\n\n## Daily Standup Log\n\n| Date | Key Updates | Blockers |\n|------|-------------|----------|\n| [date] | [summary] | [blockers] |\n\n## Blockers Tracker\n\n| Blocker | Raised | Owner | Status | Resolved |\n|---------|--------|-------|--------|----------|\n| [issue] | [date] | [person] | [Open/Resolved] | [date] |\n\n## Sprint Health\n**Status**: [🟢 / 🟡 / 🔴]\n**Notes**: [current assessment]\n\n---\n*Last updated*: [timestamp]"
        }
      },
      {
        "spec": {
          "$id": "ct-retrospective-board",
          "name": "Retrospective Board",
          "slug": "agile-retrospective-board",
          "description": "A collaborative canvas for real-time retrospective facilitation",
          "content_schema_version": "1.0",
          "content": "# Retrospective — Sprint [number]\n\n## Format: Start/Stop/Continue\n\n---\n\n### 🟢 Start (What should we begin doing?)\n- [item added by team]\n- [item added by team]\n\n### 🔴 Stop (What should we stop doing?)\n- [item added by team]\n- [item added by team]\n\n### 🟡 Continue (What's working well?)\n- [item added by team]\n- [item added by team]\n\n---\n\n## Dot Voting Results\n\n| Item | Votes | Priority |\n|------|-------|----------|\n| [item] | [count] | [High/Med/Low] |\n\n---\n\n## Agreed Actions\n\n| Action | Owner | Due | Sprint |\n|--------|-------|-----|--------|\n| [action] | [person] | [date] | [sprint #] |\n\n---\n\n## Previous Sprint Actions Review\n\n| Action (from Sprint [n-1]) | Status |\n|----------------------------|--------|\n| [action] | [Done/In Progress/Not Started] |\n\n---\n\n*Facilitator*: [name]\n*Date*: [date]"
        }
      },
      {
        "spec": {
          "$id": "ct-release-notes",
          "name": "Release Notes",
          "slug": "agile-release-notes",
          "description": "A structured document for communicating sprint deliverables to stakeholders",
          "content_schema_version": "1.0",
          "content": "# Release Notes — Sprint [number]\n\n**Release Date**: [date]\n**Version**: [X.Y.Z]\n\n---\n\n## Highlights\n\n[2-3 sentence summary of the most impactful changes]\n\n## New Features\n\n### [Feature Name]\n[Description of the feature and its benefit]\n\n**How to use**: [brief instructions]\n\n## Improvements\n\n- [improvement 1]\n- [improvement 2]\n\n## Bug Fixes\n\n- [bug fix 1] — [ticket ID]\n- [bug fix 2] — [ticket ID]\n\n## Known Issues\n\n- [issue still outstanding]\n\n## Coming Next Sprint\n\n- [preview of upcoming work]\n\n---\n\n*Questions?* Contact [team/channel]"
        }
      }
    ],
    "workflows": [
      {
        "spec": {
          "$id": "wf-sprint-closeout",
          "name": "Sprint Closeout",
          "slug": "agile-sprint-closeout",
          "description": "Automated workflow after sprint review: generates summary, velocity report, release notes, and distributes to stakeholders",
          "spec": {
            "schema_version": "1.0",
            "entry": "generate-review",
            "nodes": [
              {
                "id": "generate-review",
                "type": "next_step",
                "data": {
                  "label": "Generate Sprint Review",
                  "next_step_id": "$ref:ns-sprint-review-summary",
                  "notes": "Produces a sprint review summary from the meeting transcript covering demo highlights, stakeholder feedback, and acceptance status for each story."
                }
              },
              {
                "id": "generate-velocity",
                "type": "next_step",
                "data": {
                  "label": "Generate Velocity Report",
                  "next_step_id": "$ref:ns-velocity-report",
                  "notes": "Calculates sprint velocity metrics and generates a trend report comparing planned vs. delivered story points over the last 6 sprints."
                }
              },
              {
                "id": "create-release-notes",
                "type": "create_canvas",
                "data": {
                  "label": "Create Release Notes",
                  "title_template": "Sprint {{sprint_number}} Release Notes",
                  "canvas_template_id": "$ref:ct-release-notes",
                  "notes": "Creates a structured release notes canvas summarizing new features, bug fixes, and known issues for stakeholder distribution."
                }
              },
              {
                "id": "sm-review",
                "type": "review",
                "data": {
                  "label": "Scrum Master Review",
                  "assignee": {
                    "ref": "object_owner"
                  },
                  "notes": "Review the generated release notes for completeness and accuracy. Confirm all delivered stories are listed and stakeholder-facing language is appropriate. Approve to distribute."
                }
              },
              {
                "id": "distribute",
                "type": "deliver",
                "data": {
                  "label": "Distribute Release Notes",
                  "destination_type": "email",
                  "destination_config": {
                    "to": [
                      "{{all_participants}}"
                    ],
                    "subject": "Release Notes: {{.title}}"
                  },
                  "input_from": "create-release-notes",
                  "payload_template": "{{.step.generated_text}}",
                  "notes": "Emails the approved release notes to all sprint stakeholders. Uses the default workspace email distribution list."
                }
              },
              {
                "id": "revision-alert",
                "type": "alert",
                "data": {
                  "label": "Revision Alert",
                  "recipient": {
                    "ref": "object_owner"
                  },
                  "notes": "Notifies the meeting owner that the release notes were rejected and need revision before redistribution."
                }
              }
            ],
            "edges": [
              {
                "id": "e1",
                "source": "generate-review",
                "target": "generate-velocity",
                "type": "default"
              },
              {
                "id": "e2",
                "source": "generate-velocity",
                "target": "create-release-notes",
                "type": "default"
              },
              {
                "id": "e3",
                "source": "create-release-notes",
                "target": "sm-review",
                "type": "default"
              },
              {
                "id": "e4",
                "source": "sm-review",
                "target": "distribute",
                "type": "approve",
                "label": "Approve & Send"
              },
              {
                "id": "e5",
                "source": "sm-review",
                "target": "revision-alert",
                "type": "reject",
                "label": "Needs Revision"
              }
            ]
          }
        }
      },
      {
        "spec": {
          "$id": "wf-retro-followup",
          "name": "Continuous Improvement Cycle",
          "slug": "agile-continuous-improvement",
          "description": "Post-retrospective workflow: generates actionable insights, creates improvement tracking board, routes to Scrum Master for commitment verification, then syncs improvement items to Jira for tracking",
          "usage_guidance": "Triggered after retrospective meetings. Ensures improvement actions are documented, reviewed, and tracked in your issue tracker. The SM review gate ensures the team has genuinely committed to the improvement items before they enter the backlog.",
          "spec": {
            "schema_version": "1.0",
            "entry": "generate-insights",
            "nodes": [
              {
                "id": "generate-insights",
                "type": "next_step",
                "data": {
                  "label": "Generate Retro Insights",
                  "next_step_id": "$ref:ns-retro-insights",
                  "notes": "Analyzes the retrospective discussion to extract themes across what went well, what didn't, and improvement ideas. Groups feedback by category and identifies recurring patterns."
                }
              },
              {
                "id": "create-board",
                "type": "create_canvas",
                "data": {
                  "label": "Create Improvement Board",
                  "title_template": "Sprint {{sprint_number}} Improvement Board",
                  "canvas_template_id": "$ref:ct-retrospective-board",
                  "notes": "Creates a structured improvement board canvas with categorized action items, owners, and deadlines derived from the retro insights."
                }
              },
              {
                "id": "sm-review",
                "type": "review",
                "data": {
                  "label": "Scrum Master Review",
                  "assignee": {
                    "ref": "object_owner"
                  },
                  "notes": "Review the improvement items. Confirm the team has committed to these actions and they are appropriately scoped for the next sprint. Approve to sync to Jira."
                }
              },
              {
                "id": "sync-jira",
                "type": "deliver",
                "data": {
                  "label": "Sync to Jira",
                  "destination_type": "webhook",
                  "destination_config": {
                    "url": "https://your-domain.atlassian.net/rest/api/3/issue",
                    "headers": {
                      "Content-Type": "application/json"
                    },
                    "integration": "jira",
                    "issue_type": "improvement"
                  },
                  "input_from": "generate-insights",
                  "notes": "Creates Jira improvement tickets from the approved retro action items. Each item becomes a separate issue linked to the next sprint. Update the webhook URL to point to your Jira instance."
                }
              },
              {
                "id": "revision-alert",
                "type": "alert",
                "data": {
                  "label": "Revision Alert",
                  "recipient": {
                    "ref": "object_owner"
                  },
                  "include_reject_reason": true,
                  "notes": "Notifies the meeting owner that improvement items need further discussion before they can be committed. Includes the Scrum Master's feedback."
                }
              }
            ],
            "edges": [
              {
                "id": "e1",
                "source": "generate-insights",
                "target": "create-board",
                "type": "default"
              },
              {
                "id": "e2",
                "source": "create-board",
                "target": "sm-review",
                "type": "default"
              },
              {
                "id": "e3",
                "source": "sm-review",
                "target": "sync-jira",
                "type": "approve",
                "label": "Commit & Sync"
              },
              {
                "id": "e4",
                "source": "sm-review",
                "target": "revision-alert",
                "type": "reject",
                "label": "Needs Discussion"
              }
            ]
          }
        }
      },
      {
        "spec": {
          "$id": "wf-sprint-commitment",
          "name": "Sprint Commitment Approval",
          "slug": "agile-sprint-commitment-approval",
          "description": "Post-planning workflow: generates formal Sprint Commitment Document, routes through PO and Dev Lead sign-off, then distributes to stakeholders and syncs committed items to sprint board",
          "usage_guidance": "Triggered after sprint planning meetings. Creates a formal record of what the team has committed to, with explicit sign-off gates. The final document serves as the sprint contract between the team and stakeholders.",
          "spec": {
            "schema_version": "1.0",
            "entry": "generate-commitment",
            "nodes": [
              {
                "id": "generate-commitment",
                "type": "next_step",
                "data": {
                  "label": "Generate Sprint Commitment",
                  "next_step_id": "$ref:ns-sprint-plan",
                  "notes": "Generates a sprint commitment document from the planning discussion, including the sprint goal, committed stories with estimates, capacity allocation, and identified risks."
                }
              },
              {
                "id": "po-review",
                "type": "review",
                "data": {
                  "label": "Product Owner Review",
                  "assignee": {
                    "ref": "specific_role",
                    "role": "Product Owner"
                  },
                  "notes": "Review the sprint commitment. Confirm the sprint goal aligns with product priorities and the committed scope is acceptable. Approve to proceed to Dev Lead sign-off."
                }
              },
              {
                "id": "dev-lead-review",
                "type": "review",
                "data": {
                  "label": "Dev Lead Review",
                  "assignee": {
                    "ref": "specific_role",
                    "role": "Dev Lead"
                  },
                  "notes": "Review capacity and risk assessment. Confirm the team can realistically deliver the committed work. Approve to finalize and distribute."
                }
              },
              {
                "id": "distribute",
                "type": "deliver",
                "data": {
                  "label": "Distribute Kickoff",
                  "destination_type": "email",
                  "destination_config": {
                    "to": [
                      "{{all_participants}}"
                    ],
                    "subject": "Sprint Kickoff: {{.title}}"
                  },
                  "input_from": "generate-commitment",
                  "notes": "Sends the sprint kickoff email to the full team with the committed sprint goal, stories, and capacity plan."
                }
              },
              {
                "id": "sync-board",
                "type": "deliver",
                "data": {
                  "label": "Sync Sprint Board",
                  "destination_type": "webhook",
                  "destination_config": {
                    "url": "https://your-domain.atlassian.net/rest/agile/1.0/sprint/move",
                    "headers": {
                      "Content-Type": "application/json"
                    },
                    "integration": "jira",
                    "action": "move_to_sprint"
                  },
                  "input_from": "generate-commitment",
                  "notes": "Moves the committed stories into the active sprint in Jira and updates story assignments based on the planning discussion. Update the webhook URL to point to your Jira instance."
                }
              },
              {
                "id": "revision-alert",
                "type": "alert",
                "data": {
                  "label": "Revision Alert",
                  "recipient": {
                    "ref": "object_owner"
                  },
                  "include_reject_reason": true,
                  "notes": "Notifies the meeting owner of scope or capacity concerns raised during review. The sprint plan should be revised before re-submitting."
                }
              }
            ],
            "edges": [
              {
                "id": "e1",
                "source": "generate-commitment",
                "target": "po-review",
                "type": "default"
              },
              {
                "id": "e2",
                "source": "po-review",
                "target": "dev-lead-review",
                "type": "approve",
                "label": "PO Approved"
              },
              {
                "id": "e3",
                "source": "po-review",
                "target": "revision-alert",
                "type": "reject",
                "label": "Scope Concern"
              },
              {
                "id": "e4",
                "source": "dev-lead-review",
                "target": "distribute",
                "type": "approve",
                "label": "Team Committed"
              },
              {
                "id": "e5",
                "source": "dev-lead-review",
                "target": "revision-alert",
                "type": "reject",
                "label": "Capacity Concern"
              },
              {
                "id": "e6",
                "source": "distribute",
                "target": "sync-board",
                "type": "default"
              }
            ]
          }
        }
      }
    ]
  }
}
