[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71BCTZ1EW31JHP6AMBHEM9G":3,"skill-same:01M71BCTZ1EW31JHP6AMBHEM9G":56},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":28,"linkOnly":29,"markdownContent":30,"markdownBody":31,"frontMatter":32,"refName":33,"commitSha":34,"skillDirectory":35,"forksCount":36,"repositoryHtmlUrl":37,"repositoryHomepageUrl":38,"ownerHtmlUrl":39,"ownerBlogUrl":40,"ownerDescription":6,"updatedAt":41,"install":42,"resources":55},"01M71BCTZ1EW31JHP6AMBHEM9G","jira-conflict-detect",null,"Check if a story is already being worked on by another team member. Use before starting any story implementation.","superMLdev\u002Fsmart-sdlc","superMLdev","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F214327565?v=4","01M71B92B8VKCZZ0YCSNAJ9CB1","superML.dev","01M71B92BVCWP4F23ANQ0ZKF6S",8,"MIT","https:\u002F\u002Fgithub.com\u002FsuperMLdev\u002Fsmart-sdlc\u002Fblob\u002Fmaster\u002Fskills\u002Fintegrations\u002Fjira\u002Fconflict-detect\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27],"conflict","detect","jira","jira conflict detect","use","team","check","implementation","Story","2026-11-10 10:12:30",false,"---\nname: jira-conflict-detect\ndescription: \"Check if a story is already being worked on by another team member. Use before starting any story implementation.\"\n---\n\n# JIRA — Multi-Member Conflict Detection\n\n## Goal\n\nPerform a 3-layer conflict check before any team member claims a story. Prevents two developers from working on the same story simultaneously.\n\n---\n\n## Why 3 Layers?\n\nA single check can be bypassed or stale. Three independent signals give high confidence:\n\n| Layer | Signal | What It Catches |\n|-------|--------|-----------------|\n| 1 | JIRA ticket status + assignee | Story is formally In Progress or In Review |\n| 2 | Git branch existence | Story branch was already created (even if JIRA not updated) |\n| 3 | Confluence doc version lock | Story references a planning doc version that's been superseded |\n\n---\n\n## Activation\n\nAsk: \"Which story are you checking?\" (accept S-ID, JIRA key, or title)\n\nLoad the story's JIRA key from local story file frontmatter.\n\n---\n\n## Layer 1: JIRA Status Check\n\n```bash\ncurl -s \\\n  \"{jira_url}\u002Frest\u002Fapi\u002F3\u002Fissue\u002F{JIRA-KEY}\" \\\n  -u \"{email}:{api_token}\" \\\n  -H \"Accept: application\u002Fjson\" | python3 -c \"\nimport sys, json\nd = json.load(sys.stdin)\nfields = d['fields']\nstatus = fields['status']['name']\nassignee = (fields.get('assignee') or {}).get('displayName', 'Unassigned')\nprint(f'Status: {status}')\nprint(f'Assignee: {assignee}')\n\"\n```\n\n**Conflict conditions:**\n- Status is `In Progress` AND assignee is NOT the current user → 🔴 **CONFLICT**\n- Status is `In Review` → 🟡 **WARNING** (story may be done, verify)\n- Status is `Done` → 🔴 **CONFLICT** (story is complete, don't re-implement)\n- Status is `To Do` or `Open` AND unassigned → ✅ **CLEAR**\n\n---\n\n## Layer 2: Git Branch Check\n\n```bash\ngit fetch --all --quiet\ngit branch -a | grep -i \"{JIRA-KEY}\"\n```\n\n**Conflict conditions:**\n- Branch exists remotely → 🔴 **CONFLICT** (someone created the branch already)\n- Branch exists locally but not remotely → 🟡 **WARNING** (stale local branch from previous attempt)\n- No branch found → ✅ **CLEAR**\n\n---\n\n## Layer 3: Confluence Version Consistency (if Confluence is configured)\n\nLoad the story's `prd_version` from frontmatter.\n\nIf Confluence integration is configured, check if the PRD page version on Confluence matches the local `prd_version` embedded in the story.\n\n```bash\ncurl -s \\\n  \"{confluence_url}\u002Frest\u002Fapi\u002Fcontent\u002F{prd_page_id}?expand=version\" \\\n  -u \"{email}:{api_token}\" \\\n  -H \"Accept: application\u002Fjson\" | python3 -c \"\nimport sys, json\nd = json.load(sys.stdin)\nprint('Confluence PRD version:', d['version']['number'])\nprint('Story based on version:', '{local_prd_version}')\n\"\n```\n\n**Conflict conditions:**\n- Confluence version > local story's prd_version → 🟡 **WARNING** (PRD was updated after stories were generated; stories may be stale)\n\n---\n\n## Conflict Report\n\nPresent a single consolidated verdict:\n\n```\nConflict Check — {JIRA-KEY}: {story_title}\n════════════════════════════════════════\nLayer 1 — JIRA Status:    [✅ CLEAR | 🟡 WARNING | 🔴 CONFLICT]\n  Status: {status}, Assignee: {assignee}\n\nLayer 2 — Git Branch:     [✅ CLEAR | 🟡 WARNING | 🔴 CONFLICT]\n  {branch found or not}\n\nLayer 3 — Doc Version:    [✅ CLEAR | 🟡 WARNING | N\u002FA]\n  {version comparison}\n════════════════════════════════════════\nVERDICT: [✅ SAFE TO CLAIM | 🟡 PROCEED WITH CAUTION | 🔴 DO NOT PROCEED]\n```\n\n---\n\n## If Conflict Detected\n\n🔴 **DO NOT PROCEED.** Report:\n> \"Story {JIRA-KEY} appears to be actively worked on by **{assignee}** (status: {status}). Starting implementation risks merge conflicts and duplicate work. Recommended: sync with your team or pick a different story.\"\n\n🟡 **Caution**:\n> \"There's a potential conflict signal. Review before claiming the story. If you're sure it's safe, you may proceed.\"\n\n✅ **Clear**:\n> \"No conflicts detected. Safe to claim and implement. Shall I create the branch now? (`github-create-branch`)\"\n","# JIRA — Multi-Member Conflict Detection\n\n## Goal\n\nPerform a 3-layer conflict check before any team member claims a story. Prevents two developers from working on the same story simultaneously.\n\n---\n\n## Why 3 Layers?\n\nA single check can be bypassed or stale. Three independent signals give high confidence:\n\n| Layer | Signal | What It Catches |\n|-------|--------|-----------------|\n| 1 | JIRA ticket status + assignee | Story is formally In Progress or In Review |\n| 2 | Git branch existence | Story branch was already created (even if JIRA not updated) |\n| 3 | Confluence doc version lock | Story references a planning doc version that's been superseded |\n\n---\n\n## Activation\n\nAsk: \"Which story are you checking?\" (accept S-ID, JIRA key, or title)\n\nLoad the story's JIRA key from local story file frontmatter.\n\n---\n\n## Layer 1: JIRA Status Check\n\n```bash\ncurl -s \\\n  \"{jira_url}\u002Frest\u002Fapi\u002F3\u002Fissue\u002F{JIRA-KEY}\" \\\n  -u \"{email}:{api_token}\" \\\n  -H \"Accept: application\u002Fjson\" | python3 -c \"\nimport sys, json\nd = json.load(sys.stdin)\nfields = d['fields']\nstatus = fields['status']['name']\nassignee = (fields.get('assignee') or {}).get('displayName', 'Unassigned')\nprint(f'Status: {status}')\nprint(f'Assignee: {assignee}')\n\"\n```\n\n**Conflict conditions:**\n- Status is `In Progress` AND assignee is NOT the current user → 🔴 **CONFLICT**\n- Status is `In Review` → 🟡 **WARNING** (story may be done, verify)\n- Status is `Done` → 🔴 **CONFLICT** (story is complete, don't re-implement)\n- Status is `To Do` or `Open` AND unassigned → ✅ **CLEAR**\n\n---\n\n## Layer 2: Git Branch Check\n\n```bash\ngit fetch --all --quiet\ngit branch -a | grep -i \"{JIRA-KEY}\"\n```\n\n**Conflict conditions:**\n- Branch exists remotely → 🔴 **CONFLICT** (someone created the branch already)\n- Branch exists locally but not remotely → 🟡 **WARNING** (stale local branch from previous attempt)\n- No branch found → ✅ **CLEAR**\n\n---\n\n## Layer 3: Confluence Version Consistency (if Confluence is configured)\n\nLoad the story's `prd_version` from frontmatter.\n\nIf Confluence integration is configured, check if the PRD page version on Confluence matches the local `prd_version` embedded in the story.\n\n```bash\ncurl -s \\\n  \"{confluence_url}\u002Frest\u002Fapi\u002Fcontent\u002F{prd_page_id}?expand=version\" \\\n  -u \"{email}:{api_token}\" \\\n  -H \"Accept: application\u002Fjson\" | python3 -c \"\nimport sys, json\nd = json.load(sys.stdin)\nprint('Confluence PRD version:', d['version']['number'])\nprint('Story based on version:', '{local_prd_version}')\n\"\n```\n\n**Conflict conditions:**\n- Confluence version > local story's prd_version → 🟡 **WARNING** (PRD was updated after stories were generated; stories may be stale)\n\n---\n\n## Conflict Report\n\nPresent a single consolidated verdict:\n\n```\nConflict Check — {JIRA-KEY}: {story_title}\n════════════════════════════════════════\nLayer 1 — JIRA Status:    [✅ CLEAR | 🟡 WARNING | 🔴 CONFLICT]\n  Status: {status}, Assignee: {assignee}\n\nLayer 2 — Git Branch:     [✅ CLEAR | 🟡 WARNING | 🔴 CONFLICT]\n  {branch found or not}\n\nLayer 3 — Doc Version:    [✅ CLEAR | 🟡 WARNING | N\u002FA]\n  {version comparison}\n════════════════════════════════════════\nVERDICT: [✅ SAFE TO CLAIM | 🟡 PROCEED WITH CAUTION | 🔴 DO NOT PROCEED]\n```\n\n---\n\n## If Conflict Detected\n\n🔴 **DO NOT PROCEED.** Report:\n> \"Story {JIRA-KEY} appears to be actively worked on by **{assignee}** (status: {status}). Starting implementation risks merge conflicts and duplicate work. Recommended: sync with your team or pick a different story.\"\n\n🟡 **Caution**:\n> \"There's a potential conflict signal. Review before claiming the story. If you're sure it's safe, you may proceed.\"\n\n✅ **Clear**:\n> \"No conflicts detected. Safe to claim and implement. Shall I create the branch now? (`github-create-branch`)\"\n",{"name":5,"description":7},"master","86f9b15bf32a913d78f2dce364b9fe56e53ddf12","skills\u002Fintegrations\u002Fjira\u002Fconflict-detect",1,"https:\u002F\u002Fgithub.com\u002FsuperMLdev\u002Fsmart-sdlc","https:\u002F\u002Fsupermldev.github.io\u002Fsmart-sdlc\u002F","https:\u002F\u002Fgithub.com\u002FsuperMLdev","https:\u002F\u002Fsuperml.dev","2026-05-12 11:55:28",{"source":8,"skillName":5,"commands":43,"prompt":53,"zipAvailable":54},[44,47,50],{"tool":45,"command":46},"npx","npx skills add superMLdev\u002Fsmart-sdlc --skill jira-conflict-detect",{"tool":48,"command":49},"bunx","bunx skills add superMLdev\u002Fsmart-sdlc --skill jira-conflict-detect",{"tool":51,"command":52},"pnpm","pnpm dlx skills add superMLdev\u002Fsmart-sdlc --skill jira-conflict-detect","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FsuperMLdev\u002Fsmart-sdlc\u002Fblob\u002Fmaster\u002Fskills\u002Fintegrations\u002Fjira\u002Fconflict-detect\u002FSKILL.md",true,[],[57,75,87,99,119,138],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":28},"01M71BD2HCRX8SP34Y37NZGVX2","jira-sync","Bulk sync all epics and stories from the local backlog to JIRA. Use when the user says 'sync to JIRA', 'push everything to JIRA', or 'create all JIRA tickets'.","https:\u002F\u002Fgithub.com\u002FsuperMLdev\u002Fsmart-sdlc\u002Fblob\u002Fmaster\u002Fskills\u002Fintegrations\u002Fjira\u002Fsync\u002FSKILL.md",[],[64,21,65,66,67,68,69,70,71,23,72,73,74],"jira sync","sync","user","bulk","tickets","create","stories","when","local","backlog","push",{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":28},"01M71BD0C5A3A3J7WF4YCGJJPY","jira-create-story","Create a single story ticket in JIRA from a local story file. Use when the user says 'create this story in JIRA' or 'push story to JIRA'.","https:\u002F\u002Fgithub.com\u002FsuperMLdev\u002Fsmart-sdlc\u002Fblob\u002Fmaster\u002Fskills\u002Fintegrations\u002Fjira\u002Fcreate-story\u002FSKILL.md",[],[27,21,69,82,83,74,66,84,71,23,85,72,86],"create story","jira create story","file","single","ticket",{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":28},"01M71BCYVDM32DNS0XJAKTHRZ1","jira-create-epic","Create an epic in JIRA from a planning artifact. Use when the user says 'create this epic in JIRA' or 'push epic to JIRA'.","https:\u002F\u002Fgithub.com\u002FsuperMLdev\u002Fsmart-sdlc\u002Fblob\u002Fmaster\u002Fskills\u002Fintegrations\u002Fjira\u002Fcreate-epic\u002FSKILL.md",[],[69,94,21,95,96,66,71,97,23,98,74],"create epic","EPIC","jira create epic","planning","artifact",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":110,"publishedAt":28},"01M71BCWGYW8T1TD07JJ1G12G9","jira-connect","Set up and verify JIRA integration. Use when the user says 'connect to JIRA', 'set up JIRA', or 'configure JIRA'.","https:\u002F\u002Fgithub.com\u002FsuperMLdev\u002Fsmart-sdlc\u002Fblob\u002Fmaster\u002Fskills\u002Fintegrations\u002Fjira\u002Fconnect\u002FSKILL.md",[105],{"categoryNo":106,"categoryName":107,"taxonomyType":108,"taxonomyTypeDesc":109},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[111,21,112,113,114,23,71,115,116,117,118,66],"connect","jira connect","SET","up","configure","verify","jira integration","integration",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":28},"01M71BCRX4ZHQ60DXGRAEECHB9","gitlab-create-mr","Create a GitLab Merge Request for the current story branch. Use when the user says 'create an MR', 'open a merge request', or 'ready for review' in a GitLab project.","https:\u002F\u002Fgithub.com\u002FsuperMLdev\u002Fsmart-sdlc\u002Fblob\u002Fmaster\u002Fskills\u002Fintegrations\u002Fgitlab\u002Fcreate-mr\u002FSKILL.md",[],[126,127,128,69,129,71,130,131,132,133,134,23,135,136,137,27,66],"gitlab","gitlab create mr","create mr","mr","ready","branch","for","project","open","review","merge","request",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":144,"publishedAt":28},"01M71BCPMJN6SJZN3B0M11PA53","gitlab-create-branch","Create a GitLab feature branch for a story. Use when the user says 'create a branch', 'start a branch for story X', or 'create feature branch' in a GitLab project.","https:\u002F\u002Fgithub.com\u002FsuperMLdev\u002Fsmart-sdlc\u002Fblob\u002Fmaster\u002Fskills\u002Fintegrations\u002Fgitlab\u002Fcreate-branch\u002FSKILL.md",[],[145,69,126,146,131,147,132,133,23,71,148,149,27,66],"create branch","gitlab create branch","feature","create feature","start"]