[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C5XYD5X47KZF9MN0V2ASBV":3,"skill-same:01M6C5XYD5X47KZF9MN0V2ASBV":80},{"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":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M6C5XYD5X47KZF9MN0V2ASBV","git-conflicts",null,"Resolve merge conflicts file-by-file. Use when a merge\u002Frebase has conflicts, a PR can't merge, \"fix conflicts\" is requested, or branches have diverged.","laurigates\u002Fclaude-plugins","laurigates","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F13014001?v=4","01M6C59YHWS9C7KMXKSRX1YXNP","Lauri Gates","01M6C59YP2APG9YAM4DWYQYGFJ",60,"MIT","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fgit-plugin\u002Fskills\u002Fgit-conflicts\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"git","conflicts","git conflicts","show","2026","when","add","rebase","status","resolve merge conflicts","number","branches","checkout","gh pr","edit","config","read","merge","log","commit","Bash","fix","2026-11-10 10:12:30",false,"---\nname: git-conflicts\ndescription: \"Resolve merge conflicts file-by-file. Use when a merge\u002Frebase has conflicts, a PR can't merge, \\\"fix conflicts\\\" is requested, or branches have diverged.\"\nallowed-tools: Bash(git status *), Bash(git diff *), Bash(git log *), Bash(git show *), Bash(git add *), Bash(git commit *), Bash(git push *), Bash(git merge *), Bash(git checkout *), Bash(git rebase *), Bash(git restore *), Bash(git config *), Bash(git rerere *), Bash(gh pr *), Read, Edit, Grep, Glob, TodoWrite\nargs: \"[file-or-pr] [--ours] [--theirs] [--push]\"\nargument-hint: file path, PR number, --ours, --theirs, or --push\ncreated: 2026-03-01\nmodified: 2026-10-26\nreviewed: 2026-05-23\n---\n\n# \u002Fgit:conflicts\n\nResolve merge conflicts using modern git features.\n\n## When to Use This Skill\n\n| Use this skill when... | Use git-ops agent instead when... |\n|------------------------|-----------------------------------|\n| Merge or rebase produced conflicts | Complex multi-branch cherry-pick across many commits |\n| PR shows \"can't merge\" \u002F \"fix conflicts\" | Conflicts require deep business logic understanding |\n| Config files (JSON, YAML, lockfiles) diverged | Interactive rebase with squash\u002Ffixup needed |\n| Need to accept one side wholesale (`--ours`\u002F`--theirs`) | Architectural redesign spanning many files |\n\n## Context\n\n- Current branch: !`git branch --show-current`\n- Git status: !`git status --porcelain=v2 --branch`\n- Merge state: !`find .git -maxdepth 1 -name 'MERGE_HEAD' -o -name 'REBASE_HEAD' -o -name 'rebase-merge' -o -name 'rebase-apply'`\n- Conflicted files: !`git diff --name-only --diff-filter=U`\n- Conflict style: !`git config --default '' merge.conflictStyle`\n- Rerere enabled: !`git config --default '' rerere.enabled`\n- Git version: !`git version`\n\n## Parameters\n\nParse these from `$ARGUMENTS`:\n\n- `$1`: File path (resolve single file) OR PR number (fetch and merge base branch)\n- `--ours`: Accept current branch version for all conflicts\n- `--theirs`: Accept incoming branch version for all conflicts\n- `--push`: Push after resolution is committed\n\n## Execution\n\nExecute this conflict resolution workflow:\n\n### Step 1: Assess the situation\n\n1. Check context for existing merge\u002Frebase state (`MERGE_HEAD`, `REBASE_HEAD`, `rebase-merge`, `rebase-apply`)\n2. If PR number provided and no active merge state:\n   - Get PR details: `gh pr view \u003Cnumber> --json headRefName,baseRefName,mergeable`\n   - Fetch base: `git fetch origin \u003Cbase-branch>`\n   - Pick the sync method:\n     - **Default — rebase:** `git rebase origin\u002F\u003Cbase-branch>`. A merge commit\n       in a PR branch forces the PR to squash-merge (rule 4 in `github-pr-title`\n       → [merge-strategies.md](..\u002Fgithub-pr-title\u002Fmerge-strategies.md)), so\n       rebasing keeps the PR rebase-eligible.\n     - **Fallback — merge:** `git merge origin\u002F\u003Cbase-branch> --no-ff` when the\n       branch is shared (someone else has commits on it, or another PR is based\n       on it) or a rebase is not allowed to force-push.\n   - If the sync succeeds cleanly, report \"No conflicts\" and exit\n3. If no PR number and no active merge state, detect from current branch:\n   - `gh pr list --head $(git branch --show-current) --json number,baseRefName,mergeable`\n   - Use the detected PR number and base branch; proceed as above\n3. List conflicted files: `git diff --name-only --diff-filter=U`\n4. If no conflicted files found, report current status and exit\n\n### Step 2: Configure zdiff3 (if not set)\n\nCheck the conflict style from context. If `merge.conflictStyle` is not `zdiff3`:\n\n1. Set for this repo: `git config merge.conflictStyle zdiff3`\n2. Re-checkout conflicted files with zdiff3 markers: `git checkout --conflict=zdiff3 -- \u003Cfile>` for each conflicted file\n3. Enable rerere if not already: `git config rerere.enabled true`\n4. Enable rerere autoupdate: `git config rerere.autoupdate true` (auto-stages files resolved by rerere)\n\nThis gives three-way conflict markers with the common ancestor, compacted by removing shared lines at conflict boundaries. Much easier to resolve than the default two-way markers.\n\n### Step 3: Resolve conflicts\n\n**If `--ours` flag**: Accept current branch for all conflicted files:\n```\ngit restore --ours -- \u003Cfile>    # for each file\ngit add \u003Cfile>\n```\n\n**If `--theirs` flag**: Accept incoming branch for all conflicted files:\n```\ngit restore --theirs -- \u003Cfile>  # for each file\ngit add \u003Cfile>\n```\n\n**Otherwise, resolve each file intelligently:**\n\nFor each file from `git diff --name-only --diff-filter=U`:\n\n1. Read the file — with zdiff3, conflict markers look like:\n   ```\n   \u003C\u003C\u003C\u003C\u003C\u003C\u003C HEAD\n   (current branch changes)\n   ||||||| (common ancestor)\n   (what the code looked like before both changes)\n   =======\n   (incoming changes)\n   >>>>>>> branch-name\n   ```\n2. The `|||||||` section (common ancestor) shows what both sides started from — use it to understand intent\n3. Apply resolution strategy by file type:\n\n| File Type | Strategy |\n|-----------|----------|\n| `package.json`, `plugin.json` | Merge objects\u002Farrays, take higher versions |\n| YAML config | Merge keys from both sides |\n| `CHANGELOG.md` | Include entries from both sides in chronological order |\n| `README.md`, docs | Include content from both sides |\n| Source code | Integrate both changes preserving logic of each |\n| Lock files (`bun.lock`, `package-lock.json`) | Delete and regenerate after resolving other files |\n| `.release-please-manifest.json` | Take higher version numbers |\n\n4. Edit the file to remove ALL conflict markers (`\u003C\u003C\u003C\u003C\u003C\u003C\u003C`, `|||||||`, `=======`, `>>>>>>>`) and combine changes\n5. Stage: `git add \u003Cfile>`\n\n**Important ours\u002Ftheirs note for rebases:** During `git rebase`, the meaning of ours\u002Ftheirs is swapped — `--ours` refers to the branch being rebased onto (usually main), `--theirs` refers to your feature branch commits.\n\n### Step 4: Verify and complete\n\n1. Check no conflict markers remain: search all resolved files for `\u003C\u003C\u003C\u003C\u003C\u003C\u003C`\n2. Check `git diff --name-only --diff-filter=U` returns empty (no remaining unmerged paths)\n3. Check if rerere recorded anything: `git rerere status`\n4. Complete the operation:\n   - If merging: `git commit --no-edit`\n   - If rebasing: `git rebase --continue`; a rebase stops once per conflicting commit, so repeat Steps 3–4 until it finishes\n5. If `--push` flag: `git push origin $(git branch --show-current)` after a\n   merge, or `git push --force-with-lease origin $(git branch --show-current)`\n   after a rebase\n\n### Step 5: Report results\n\nSummarize what was resolved:\n- List each file and how it was resolved (merged both sides, accepted ours\u002Ftheirs, regenerated)\n- Note if rerere recorded new resolutions for future reuse\n- If PR number was provided (or detected from branch), comment on the PR:\n  Example `gh pr comment` body: [REFERENCE.md](REFERENCE.md#pr-comment-example-step-5).\n\n## Conflict Resolution Patterns\n\n### JSON Files\n\n- Merge array entries from both sides, deduplicate\n- For version fields, take the higher version\n- For object properties, include properties from both sides\n- Validate JSON after resolution\n\n### Markdown Files\n\n- Include content from both sides\n- Maintain chronological order for changelogs\n- Include table rows from both sides\n\n### Source Code\n\n- Use the common ancestor (zdiff3 `|||||||` section) to understand what both sides changed\n- Integrate both modifications preserving the intent of each\n- If same line changed incompatibly, prefer the PR branch change and note in commit message\n\n### Squash Merge Pitfall\n\nSame conflicts recurring after squash merges: cause, rerere mitigation and `--onto` recovery in [REFERENCE.md](REFERENCE.md#squash-merge-pitfall).\n\n### When to Abort\n\nAbort with `git merge --abort` or `git rebase --abort` if:\n- Conflicts span many files with incompatible architectural changes\n- Resolution requires understanding business requirements you don't have context for\n- Lock files are the only conflicts (delete, regenerate, commit)\n\n## Pre-Merge Trial Integration (landing a wave of PRs)\n\nWhen several branches will land together, resolve their conflicts once on a throwaway trial branch with rerere on, and build and test that merged tree before touching `main`. Recipe: [REFERENCE.md](REFERENCE.md#pre-merge-trial-integration-landing-a-wave-of-prs).\n\n## Quick Reference\n\n| Task | Command |\n|------|---------|\n| List conflicted files | `git diff --name-only --diff-filter=U` |\n| Re-checkout with zdiff3 | `git checkout --conflict=zdiff3 -- \u003Cfile>` |\n| Accept current branch | `git restore --ours -- \u003Cfile>` |\n| Accept incoming branch | `git restore --theirs -- \u003Cfile>` |\n| Recreate conflict markers | `git checkout -m -- \u003Cfile>` |\n| Check rerere status | `git rerere status` |\n| View rerere diff | `git rerere diff` |\n| Forget bad resolution | `git rerere forget \u003Cfile>` |\n| Abort merge | `git merge --abort` |\n| Abort rebase | `git rebase --abort` |\n| Continue rebase | `git rebase --continue` |\n\n## Agentic Optimizations\n\n| Context | Command |\n|---------|---------|\n| List conflicts | `git diff --name-only --diff-filter=U` |\n| Conflict count | `git diff --name-only --diff-filter=U \\| wc -l` |\n| Full conflict diff | `git diff --diff-filter=U` |\n| PR mergeable state | `gh pr view N --json mergeable` |\n| Check markers remain | `grep -rn '\u003C\u003C\u003C\u003C\u003C\u003C\u003C' \u003Cfiles>` |\n| Porcelain status | `git status --porcelain=v2` |\n| Detect merge\u002Frebase state | `test -f .git\u002FMERGE_HEAD && echo merge \\|\\| test -d .git\u002Frebase-merge && echo rebase` |\n","# \u002Fgit:conflicts\n\nResolve merge conflicts using modern git features.\n\n## When to Use This Skill\n\n| Use this skill when... | Use git-ops agent instead when... |\n|------------------------|-----------------------------------|\n| Merge or rebase produced conflicts | Complex multi-branch cherry-pick across many commits |\n| PR shows \"can't merge\" \u002F \"fix conflicts\" | Conflicts require deep business logic understanding |\n| Config files (JSON, YAML, lockfiles) diverged | Interactive rebase with squash\u002Ffixup needed |\n| Need to accept one side wholesale (`--ours`\u002F`--theirs`) | Architectural redesign spanning many files |\n\n## Context\n\n- Current branch: !`git branch --show-current`\n- Git status: !`git status --porcelain=v2 --branch`\n- Merge state: !`find .git -maxdepth 1 -name 'MERGE_HEAD' -o -name 'REBASE_HEAD' -o -name 'rebase-merge' -o -name 'rebase-apply'`\n- Conflicted files: !`git diff --name-only --diff-filter=U`\n- Conflict style: !`git config --default '' merge.conflictStyle`\n- Rerere enabled: !`git config --default '' rerere.enabled`\n- Git version: !`git version`\n\n## Parameters\n\nParse these from `$ARGUMENTS`:\n\n- `$1`: File path (resolve single file) OR PR number (fetch and merge base branch)\n- `--ours`: Accept current branch version for all conflicts\n- `--theirs`: Accept incoming branch version for all conflicts\n- `--push`: Push after resolution is committed\n\n## Execution\n\nExecute this conflict resolution workflow:\n\n### Step 1: Assess the situation\n\n1. Check context for existing merge\u002Frebase state (`MERGE_HEAD`, `REBASE_HEAD`, `rebase-merge`, `rebase-apply`)\n2. If PR number provided and no active merge state:\n   - Get PR details: `gh pr view \u003Cnumber> --json headRefName,baseRefName,mergeable`\n   - Fetch base: `git fetch origin \u003Cbase-branch>`\n   - Pick the sync method:\n     - **Default — rebase:** `git rebase origin\u002F\u003Cbase-branch>`. A merge commit\n       in a PR branch forces the PR to squash-merge (rule 4 in `github-pr-title`\n       → [merge-strategies.md](..\u002Fgithub-pr-title\u002Fmerge-strategies.md)), so\n       rebasing keeps the PR rebase-eligible.\n     - **Fallback — merge:** `git merge origin\u002F\u003Cbase-branch> --no-ff` when the\n       branch is shared (someone else has commits on it, or another PR is based\n       on it) or a rebase is not allowed to force-push.\n   - If the sync succeeds cleanly, report \"No conflicts\" and exit\n3. If no PR number and no active merge state, detect from current branch:\n   - `gh pr list --head $(git branch --show-current) --json number,baseRefName,mergeable`\n   - Use the detected PR number and base branch; proceed as above\n3. List conflicted files: `git diff --name-only --diff-filter=U`\n4. If no conflicted files found, report current status and exit\n\n### Step 2: Configure zdiff3 (if not set)\n\nCheck the conflict style from context. If `merge.conflictStyle` is not `zdiff3`:\n\n1. Set for this repo: `git config merge.conflictStyle zdiff3`\n2. Re-checkout conflicted files with zdiff3 markers: `git checkout --conflict=zdiff3 -- \u003Cfile>` for each conflicted file\n3. Enable rerere if not already: `git config rerere.enabled true`\n4. Enable rerere autoupdate: `git config rerere.autoupdate true` (auto-stages files resolved by rerere)\n\nThis gives three-way conflict markers with the common ancestor, compacted by removing shared lines at conflict boundaries. Much easier to resolve than the default two-way markers.\n\n### Step 3: Resolve conflicts\n\n**If `--ours` flag**: Accept current branch for all conflicted files:\n```\ngit restore --ours -- \u003Cfile>    # for each file\ngit add \u003Cfile>\n```\n\n**If `--theirs` flag**: Accept incoming branch for all conflicted files:\n```\ngit restore --theirs -- \u003Cfile>  # for each file\ngit add \u003Cfile>\n```\n\n**Otherwise, resolve each file intelligently:**\n\nFor each file from `git diff --name-only --diff-filter=U`:\n\n1. Read the file — with zdiff3, conflict markers look like:\n   ```\n   \u003C\u003C\u003C\u003C\u003C\u003C\u003C HEAD\n   (current branch changes)\n   ||||||| (common ancestor)\n   (what the code looked like before both changes)\n   =======\n   (incoming changes)\n   >>>>>>> branch-name\n   ```\n2. The `|||||||` section (common ancestor) shows what both sides started from — use it to understand intent\n3. Apply resolution strategy by file type:\n\n| File Type | Strategy |\n|-----------|----------|\n| `package.json`, `plugin.json` | Merge objects\u002Farrays, take higher versions |\n| YAML config | Merge keys from both sides |\n| `CHANGELOG.md` | Include entries from both sides in chronological order |\n| `README.md`, docs | Include content from both sides |\n| Source code | Integrate both changes preserving logic of each |\n| Lock files (`bun.lock`, `package-lock.json`) | Delete and regenerate after resolving other files |\n| `.release-please-manifest.json` | Take higher version numbers |\n\n4. Edit the file to remove ALL conflict markers (`\u003C\u003C\u003C\u003C\u003C\u003C\u003C`, `|||||||`, `=======`, `>>>>>>>`) and combine changes\n5. Stage: `git add \u003Cfile>`\n\n**Important ours\u002Ftheirs note for rebases:** During `git rebase`, the meaning of ours\u002Ftheirs is swapped — `--ours` refers to the branch being rebased onto (usually main), `--theirs` refers to your feature branch commits.\n\n### Step 4: Verify and complete\n\n1. Check no conflict markers remain: search all resolved files for `\u003C\u003C\u003C\u003C\u003C\u003C\u003C`\n2. Check `git diff --name-only --diff-filter=U` returns empty (no remaining unmerged paths)\n3. Check if rerere recorded anything: `git rerere status`\n4. Complete the operation:\n   - If merging: `git commit --no-edit`\n   - If rebasing: `git rebase --continue`; a rebase stops once per conflicting commit, so repeat Steps 3–4 until it finishes\n5. If `--push` flag: `git push origin $(git branch --show-current)` after a\n   merge, or `git push --force-with-lease origin $(git branch --show-current)`\n   after a rebase\n\n### Step 5: Report results\n\nSummarize what was resolved:\n- List each file and how it was resolved (merged both sides, accepted ours\u002Ftheirs, regenerated)\n- Note if rerere recorded new resolutions for future reuse\n- If PR number was provided (or detected from branch), comment on the PR:\n  Example `gh pr comment` body: [REFERENCE.md](REFERENCE.md#pr-comment-example-step-5).\n\n## Conflict Resolution Patterns\n\n### JSON Files\n\n- Merge array entries from both sides, deduplicate\n- For version fields, take the higher version\n- For object properties, include properties from both sides\n- Validate JSON after resolution\n\n### Markdown Files\n\n- Include content from both sides\n- Maintain chronological order for changelogs\n- Include table rows from both sides\n\n### Source Code\n\n- Use the common ancestor (zdiff3 `|||||||` section) to understand what both sides changed\n- Integrate both modifications preserving the intent of each\n- If same line changed incompatibly, prefer the PR branch change and note in commit message\n\n### Squash Merge Pitfall\n\nSame conflicts recurring after squash merges: cause, rerere mitigation and `--onto` recovery in [REFERENCE.md](REFERENCE.md#squash-merge-pitfall).\n\n### When to Abort\n\nAbort with `git merge --abort` or `git rebase --abort` if:\n- Conflicts span many files with incompatible architectural changes\n- Resolution requires understanding business requirements you don't have context for\n- Lock files are the only conflicts (delete, regenerate, commit)\n\n## Pre-Merge Trial Integration (landing a wave of PRs)\n\nWhen several branches will land together, resolve their conflicts once on a throwaway trial branch with rerere on, and build and test that merged tree before touching `main`. Recipe: [REFERENCE.md](REFERENCE.md#pre-merge-trial-integration-landing-a-wave-of-prs).\n\n## Quick Reference\n\n| Task | Command |\n|------|---------|\n| List conflicted files | `git diff --name-only --diff-filter=U` |\n| Re-checkout with zdiff3 | `git checkout --conflict=zdiff3 -- \u003Cfile>` |\n| Accept current branch | `git restore --ours -- \u003Cfile>` |\n| Accept incoming branch | `git restore --theirs -- \u003Cfile>` |\n| Recreate conflict markers | `git checkout -m -- \u003Cfile>` |\n| Check rerere status | `git rerere status` |\n| View rerere diff | `git rerere diff` |\n| Forget bad resolution | `git rerere forget \u003Cfile>` |\n| Abort merge | `git merge --abort` |\n| Abort rebase | `git rebase --abort` |\n| Continue rebase | `git rebase --continue` |\n\n## Agentic Optimizations\n\n| Context | Command |\n|---------|---------|\n| List conflicts | `git diff --name-only --diff-filter=U` |\n| Conflict count | `git diff --name-only --diff-filter=U \\| wc -l` |\n| Full conflict diff | `git diff --diff-filter=U` |\n| PR mergeable state | `gh pr view N --json mergeable` |\n| Check markers remain | `grep -rn '\u003C\u003C\u003C\u003C\u003C\u003C\u003C' \u003Cfiles>` |\n| Porcelain status | `git status --porcelain=v2` |\n| Detect merge\u002Frebase state | `test -f .git\u002FMERGE_HEAD && echo merge \\|\\| test -d .git\u002Frebase-merge && echo rebase` |\n",{"args":46,"name":5,"created":47,"modified":48,"reviewed":49,"description":7,"allowed-tools":50,"argument-hint":51},"[file-or-pr] [--ours] [--theirs] [--push]",1772323200000,1792972800000,1779494400000,"Bash(git status *), Bash(git diff *), Bash(git log *), Bash(git show *), Bash(git add *), Bash(git commit *), Bash(git push *), Bash(git merge *), Bash(git checkout *), Bash(git rebase *), Bash(git restore *), Bash(git config *), Bash(git rerere *), Bash(gh pr *), Read, Edit, Grep, Glob, TodoWrite","file path, PR number, --ours, --theirs, or --push","main","0f16c3d5530537790787dc648f3e78f5f32b1825","git-plugin\u002Fskills\u002Fgit-conflicts",6,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins","https:\u002F\u002Fgithub.com\u002Flaurigates","Linux enthusiast, cloud engineer, neovim addict, electronics hobbyist.","2026-11-13 20:24:11",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add laurigates\u002Fclaude-plugins --skill git-conflicts",{"tool":66,"command":67},"bunx","bunx skills add laurigates\u002Fclaude-plugins --skill git-conflicts",{"tool":69,"command":70},"pnpm","pnpm dlx skills add laurigates\u002Fclaude-plugins --skill git-conflicts","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fgit-plugin\u002Fskills\u002Fgit-conflicts\u002FSKILL.md",true,[74],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"REFERENCE.md","REFERENCE","参考文档",2741,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fgit-plugin\u002Fskills\u002Fgit-conflicts\u002FREFERENCE.md",[81,108,128,144,167,197],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":92,"publishedAt":41},"01M70PFHMH9ADY0CRE6047Y4B2","kitty-show-image","Show the user an image with a note on what to judge, via a file send or a labelled kitty tab. Use when the user must see an image, or icat fails with no \u002Fdev\u002Ftty.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fkitty-plugin\u002Fskills\u002Fkitty-show-image\u002FSKILL.md",[87],{"categoryNo":88,"categoryName":89,"taxonomyType":90,"taxonomyTypeDesc":91},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[22,93,94,95,96,97,98,99,100,101,102,24,39,103,104,105,106,107,23,35],"kitty show image","image","kitty","show image","ls","get","send","open","dev","use","file","text","with","xdg","via",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":114,"publishedAt":41},"01M70PFEN18HKQ4RCQ1VPGMPTB","kitty-session-persistence","Snapshot and restore kitty terminal sessions on macOS. Use when surviving WindowServer hangs without losing tabs, configuring snapshots, or restoring after a force-reboot.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fkitty-plugin\u002Fskills\u002Fkitty-session-persistence\u002FSKILL.md",[],[95,115,116,117,118,119,24,39,120,121,122,23,35,123,33,124,125,126,127,102],"kitty session persistence","session","persistence","false","snapshots","uname","reboot","terminal","write","snapshot","macos","sessions","restore",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":134,"publishedAt":41},"01M70PFC77XGXCVQ1543VGZHYR","kitty-remote-control","Safe kitty remote control from an agent — read panes with kitty @ ls\u002Fget-text, notify, and never mutate the live terminal unasked. Use when running inside kitty.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fkitty-plugin\u002Fskills\u002Fkitty-remote-control\u002FSKILL.md",[],[135,136,95,137,138,97,139,140,98,141,142,102,24,143,39,104,105,122,23,35],"kitty remote control","remote","control","remote control","running","never","panes","notify","query",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":150,"publishedAt":41},"01M70P6WVMCT5JG4SACTM69AF9","docs-reference-check","Dangling doc-reference gate: flag markdown naming repo paths or relative links that no longer exist. Use when docs cite moved\u002Fdeleted files, or wiring a doc-drift lint.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fdocumentation-plugin\u002Fskills\u002Fdocs-reference-check\u002FSKILL.md",[],[151,152,153,154,155,156,157,158,159,160,102,24,39,161,103,162,163,164,165,166],"docs reference check","check","reference check","reference","docs","links","python3","repo","files","auto","drift","lint","wiring","chezmoi","references","cp",{"skillNo":168,"name":169,"nameZh":6,"description":170,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":171,"categories":172,"keywords":182,"publishedAt":41},"01M6C6NDE7DAQGNWSF22J5CJ0Z","youtube-upload","Upload a video to YouTube via the Data API v3 and edit its title, description, tags or thumbnail afterwards. Use when publishing or retitling a YouTube video.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fyoutube-plugin\u002Fskills\u002Fyoutube-upload\u002FSKILL.md",[173,176,177],{"categoryNo":174,"categoryName":175,"taxonomyType":90,"taxonomyTypeDesc":91},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":88,"categoryName":89,"taxonomyType":90,"taxonomyTypeDesc":91},{"categoryNo":178,"categoryName":179,"taxonomyType":180,"taxonomyTypeDesc":181},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[183,184,185,186,157,187,35,188,33,189,190,191,102,39,103,192,193,24,194,195,196,107,23],"youtube upload","upload","youtube","Video","run","uv run","publishing","data","uv","api","v3","tags","id","title",{"skillNo":198,"name":199,"nameZh":6,"description":200,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":201,"categories":202,"keywords":206,"publishedAt":41},"01M6C6NABWW1X58KJJM4F6GQMQ","youtube-studio-share","Share a private YouTube video with a whole Google Workspace organization by scripting YouTube Studio in the browser. Use when a video must be org-only.","https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fyoutube-plugin\u002Fskills\u002Fyoutube-studio-share\u002FSKILL.md",[203],{"categoryNo":204,"categoryName":205,"taxonomyType":90,"taxonomyTypeDesc":91},"01JBSEEDCAT000000000000023","Skill与智能体开发",[207,208,209,210,185,186,211,212,213,214,215,35,216,217,218,219,102,220,24,105,221,23],"youtube studio share","share","youtube studio","studio","browser","javascript","scripting","google workspace","workspace","tool","google","only","MCP","chrome","organization"]