{
  "version": "1.2",
  "title": "Developer PR Review",
  "description": "Reusable developer communication snippets for pull requests, review comments, standups, bugs, testing, releases, and incidents.",
  "tags": [
    {
      "id": 1,
      "title": "PR Review",
      "color_index": 5
    },
    {
      "id": 2,
      "title": "Review Comments",
      "color_index": 6
    },
    {
      "id": 3,
      "title": "PR Author",
      "color_index": 2
    },
    {
      "id": 4,
      "title": "Standup",
      "color_index": 3
    },
    {
      "id": 5,
      "title": "Bugs",
      "color_index": 9
    },
    {
      "id": 6,
      "title": "Testing",
      "color_index": 14
    },
    {
      "id": 7,
      "title": "Release",
      "color_index": 10
    },
    {
      "id": 8,
      "title": "Incident",
      "color_index": 19
    }
  ],
  "replies": [
    {
      "title": "Review Start",
      "text": "Taking a pass now. I'll focus on correctness, test coverage, and any release-risky edge cases.",
      "type": "text",
      "group": 1,
      "sorting_key": 0
    },
    {
      "title": "Need Context",
      "text": "Could you add a short note to the PR description covering the purpose, main changes, and how this was tested? That will make the review easier to follow.",
      "type": "text",
      "group": 1,
      "sorting_key": 1
    },
    {
      "title": "Review Order",
      "text": "For review order, I suggest starting with %%CURSOR%%, then checking the tests and wiring changes after that.",
      "type": "text",
      "group": 1,
      "sorting_key": 2
    },
    {
      "title": "LGTM",
      "text": "LGTM. I left only non-blocking comments, so this is good to merge once CI is green.",
      "type": "text",
      "group": 1,
      "sorting_key": 3
    },
    {
      "title": "Request Changes",
      "text": "Thanks. I'm requesting changes for the blocking items I marked inline. The rest is optional polish.",
      "type": "text",
      "group": 1,
      "sorting_key": 4
    },
    {
      "title": "Second Pass",
      "text": "I reviewed the latest push. The main concerns are resolved; I'm doing one final pass on tests and edge cases.",
      "type": "text",
      "group": 1,
      "sorting_key": 5
    },
    {
      "title": "Question",
      "text": "question: Can you clarify the expected behavior here? I'm not sure whether this path should handle %%CLIPBOARD%% or fail earlier.",
      "type": "text",
      "group": 2,
      "sorting_key": 6
    },
    {
      "title": "Blocking Issue",
      "text": "issue (blocking): This looks like it can break when %%CLIPBOARD%%. Can we guard that case or add a test that documents why it is impossible?",
      "type": "text",
      "group": 2,
      "sorting_key": 7
    },
    {
      "title": "Suggestion",
      "text": "suggestion: Could we move this into %%CURSOR%%? It would keep the calling code smaller and make the behavior easier to test directly.",
      "type": "text",
      "group": 2,
      "sorting_key": 8
    },
    {
      "title": "Nitpick",
      "text": "nitpick (non-blocking): Small naming suggestion: %%CLIPBOARD%% might be clearer here.",
      "type": "text",
      "group": 2,
      "sorting_key": 9
    },
    {
      "title": "Praise Test",
      "text": "praise: This test is a good regression case. It captures the user-facing behavior without coupling too tightly to implementation details.",
      "type": "text",
      "group": 2,
      "sorting_key": 10
    },
    {
      "title": "Security",
      "text": "issue (security, blocking): This path appears to trust %%CLIPBOARD%%. Can we validate or sanitize it before use?",
      "type": "text",
      "group": 2,
      "sorting_key": 11
    },
    {
      "title": "Performance",
      "text": "question (performance): Do we expect this to run on large inputs? If so, we may want to avoid %%CURSOR%% in the hot path.",
      "type": "text",
      "group": 2,
      "sorting_key": 12
    },
    {
      "title": "API Change",
      "text": "issue (blocking): This changes the public behavior of %%CLIPBOARD%%. Can we either preserve compatibility or call out the migration path in the PR?",
      "type": "text",
      "group": 2,
      "sorting_key": 13
    },
    {
      "title": "Test Request",
      "text": "suggestion (test): Could you add coverage for %%CLIPBOARD%%? That seems like the edge case most likely to regress.",
      "type": "text",
      "group": 2,
      "sorting_key": 14
    },
    {
      "title": "Ready Review",
      "text": "This is ready for review. Summary: %%CURSOR%%. Tested with: %%CLIPBOARD%%.",
      "type": "text",
      "group": 3,
      "sorting_key": 15
    },
    {
      "title": "WIP Direction",
      "text": "Still in progress. I'm sharing early for direction on %%CURSOR%%; please hold detailed review until I mark it ready.",
      "type": "text",
      "group": 3,
      "sorting_key": 16
    },
    {
      "title": "Updated",
      "text": "Updated based on feedback. Main changes: %%CURSOR%%. I also re-ran %%CLIPBOARD%%.",
      "type": "text",
      "group": 3,
      "sorting_key": 17
    },
    {
      "title": "Tradeoff",
      "text": "I chose this approach because %%CURSOR%%. The tradeoff is %%CLIPBOARD%%; open to changing it if reviewers prefer the other direction.",
      "type": "text",
      "group": 3,
      "sorting_key": 18
    },
    {
      "title": "Rereview",
      "text": "Ready for another look. I addressed the blocking comments and replied inline where I made a different call.",
      "type": "text",
      "group": 3,
      "sorting_key": 19
    },
    {
      "title": "Standup Blocked",
      "text": "Yesterday: %%CLIPBOARD%%. Today: %%CURSOR%%. Blocked on: review/decision from @.",
      "type": "text",
      "group": 4,
      "sorting_key": 20
    },
    {
      "title": "Standup Review",
      "text": "Today I'm focused on reviewing %%CLIPBOARD%%, then I'll pick up %%CURSOR%% if there's time.",
      "type": "text",
      "group": 4,
      "sorting_key": 21
    },
    {
      "title": "Standup Risk",
      "text": "Small risk: %%CLIPBOARD%%. I'm checking that first so we know whether this needs scope adjustment.",
      "type": "text",
      "group": 4,
      "sorting_key": 22
    },
    {
      "title": "Bug Repro",
      "text": "I can reproduce this with: %%CLIPBOARD%%. Expected: %%CURSOR%%. Actual: ",
      "type": "text",
      "group": 5,
      "sorting_key": 23
    },
    {
      "title": "Need Info",
      "text": "Could you share the exact steps, environment, and any relevant logs/screenshots? I'm missing enough context to reproduce this reliably.",
      "type": "text",
      "group": 5,
      "sorting_key": 24
    },
    {
      "title": "Issue Triage",
      "text": "This looks valid. Proposed next step: confirm scope, add a failing test or repro, then decide whether it belongs in the current milestone.",
      "type": "text",
      "group": 5,
      "sorting_key": 25
    },
    {
      "title": "Test Plan",
      "text": "Test plan: unit coverage for %%CLIPBOARD%%, integration coverage for %%CURSOR%%, and manual verification of the main user flow.",
      "type": "text",
      "group": 6,
      "sorting_key": 26
    },
    {
      "title": "Release Ready",
      "text": "Release note draft: %%CURSOR%%. Risk level: low/medium/high. Rollback: revert %%CLIPBOARD%%.",
      "type": "text",
      "group": 7,
      "sorting_key": 27
    },
    {
      "title": "Release Hold",
      "text": "I'd hold the release until we resolve %%CLIPBOARD%%. It affects %%CURSOR%% and does not look safe to ship as-is.",
      "type": "text",
      "group": 7,
      "sorting_key": 28
    },
    {
      "title": "Incident Update",
      "text": "Incident update: impact is %%CLIPBOARD%%. Current status: %%CURSOR%%. Next update by: %%TIME +1h%%.",
      "type": "text",
      "group": 8,
      "sorting_key": 29
    }
  ]
}
