[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C5MPZHC154TTDEY47VBZ8B":3,"skill-same:01M6C5MPZHC154TTDEY47VBZ8B":93},{"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":23,"publishedAt":52,"linkOnly":53,"markdownContent":54,"markdownBody":55,"frontMatter":56,"refName":61,"commitSha":62,"skillDirectory":63,"forksCount":64,"repositoryHtmlUrl":65,"repositoryHomepageUrl":6,"ownerHtmlUrl":66,"ownerBlogUrl":6,"ownerDescription":67,"updatedAt":68,"install":69,"resources":82},"01M6C5MPZHC154TTDEY47VBZ8B","ci-workflows",null,"Reference YAML for the canonical container-build, test, release-please and auto-fix workflow files. Use when another skill or a review needs the standard shape to cite or diff against.","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\u002Fconfigure-plugin\u002Fskills\u002Fci-workflows\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],"workflows","ci","ci workflows","use","2026","when","auto-fix","canonical","2025","false","please","files","shape","container","auto","diff","review","fix","edit","write","read","grep","Bash","yaml","fix workflow","release","test","workflow","2026-11-10 10:12:30",false,"---\ncreated: 2025-12-16\nmodified: 2026-10-05\nreviewed: 2026-06-01\nname: ci-workflows\ndescription: \"Reference YAML for the canonical container-build, test, release-please and auto-fix workflow files. Use when another skill or a review needs the standard shape to cite or diff against.\"\nuser-invocable: false\nallowed-tools: Bash, Read, Write, Edit, Grep, Glob\n---\n\n# CI Workflow Standards\n\n## When to Use This Skill\n\n| Use this skill when... | Use a sibling skill instead when... |\n|---|---|\n| You need the canonical GitHub Actions workflow shapes (container build, test, release) | You want to audit or install workflows end-to-end as an interactive workflow — use `configure-workflows` |\n| You are checking whether existing `.github\u002Fworkflows\u002F*.yml` follows the documented conventions | You want pre-built reusable callers wired up — use `configure-reusable-workflows` |\n| Another skill needs to cite the standard workflow structure | The user asked you to actually create or repair CI workflows |\n\n## Version: 2025.1\n\nStandard GitHub Actions workflows for CI\u002FCD automation.\n\n## Display name convention\n\nEvery workflow's `name:` follows `\u003CDomain>: \u003CAction> [\u003Ctarget>]` so the GitHub Actions sidebar groups related workflows alphabetically. Quote the value because YAML treats `:` inside an unquoted scalar as a key separator. See `.claude\u002Frules\u002Fworkflow-naming.md` for the canonical rule, the active domain list, and the cross-workflow rename procedure. Mirror the pattern in any workflow you scaffold here.\n\n## Required Workflows\n\nFull YAML, key features, and prerequisites for each file live in [references\u002Fworkflow-templates.md](references\u002Fworkflow-templates.md) — read it when citing, diffing against, or scaffolding a specific workflow.\n\n| # | Workflow | File | Status |\n|---|----------|------|--------|\n| 1 | [Container Build](references\u002Fworkflow-templates.md#1-container-build-workflow) | `.github\u002Fworkflows\u002Fcontainer-build.yml` | Required if Dockerfile |\n| 2 | Release Please | `.github\u002Fworkflows\u002Frelease-please.yml` | Required |\n| 3 | [ArgoCD Auto-merge](references\u002Fworkflow-templates.md#3-argocd-auto-merge-workflow-optional) | `.github\u002Fworkflows\u002Fargocd-automerge.yml` | Optional |\n| 4 | [Test](references\u002Fworkflow-templates.md#4-test-workflow-recommended) | `.github\u002Fworkflows\u002Ftest.yml` | Recommended |\n| 5 | [Claude Auto-Fix](references\u002Fworkflow-templates.md#5-claude-auto-fix-workflow-optional) | `.github\u002Fworkflows\u002Fclaude-auto-fix.yml` | Optional |\n\n### 2. Release Please Workflow\n\n**File**: `.github\u002Fworkflows\u002Frelease-please.yml`\n\nSee `configure-release-please` (its REFERENCE.md carries the standard workflow, token, and config templates) for details.\n\n## Workflow Standards\n\n### Action Versions\n\n| Action | Version | Purpose |\n|--------|---------|---------|\n| actions\u002Fcheckout | v6 | Repository checkout |\n| docker\u002Fsetup-buildx-action | v4 | Multi-platform builds |\n| docker\u002Flogin-action | v4 | Registry authentication |\n| docker\u002Fmetadata-action | v6 | Image tagging |\n| docker\u002Fbuild-push-action | v7 | Container build\u002Fpush |\n| actions\u002Fsetup-node | v6 | Node.js setup |\n| googleapis\u002Frelease-please-action | v5 | Release automation |\n\n### Permissions\n\nMinimal permissions required:\n\n```yaml\npermissions:\n  contents: read      # Default for most jobs\n  packages: write     # For container push to GHCR\n  pull-requests: write  # For release-please PR creation\n```\n\n### Triggers\n\nStandard trigger patterns:\n\n```yaml\n# Build on push and PR to main\non:\n  push:\n    branches: [main]\n  pull_request:\n    branches: [main]\n\n# Also build on release\non:\n  release:\n    types: [published]\n```\n\n### Build Caching\n\nUse GitHub Actions cache for Docker layers:\n\n```yaml\ncache-from: type=gha\ncache-to: type=gha,mode=max\n```\n\n### Multi-Platform Builds\n\nBuild for both amd64 and arm64:\n\n```yaml\nplatforms: linux\u002Famd64,linux\u002Farm64\n```\n\n## Compliance Requirements\n\n### Required Workflows\n\n| Workflow | Purpose | Required |\n|----------|---------|----------|\n| container-build | Container builds | Yes (if Dockerfile) |\n| release-please | Automated releases | Yes |\n| test | Testing and linting | Recommended |\n| argocd-automerge | Auto-merge image updates | Optional (if using ArgoCD Image Updater) |\n| claude-auto-fix | Automated CI failure remediation | Optional |\n\n### Required Elements\n\n| Element | Requirement |\n|---------|-------------|\n| checkout action | v6 |\n| build-push action | v7 |\n| Multi-platform | amd64 + arm64 |\n| Caching | GHA cache enabled |\n| Permissions | Explicit and minimal |\n\n## Status Levels\n\n| Status | Condition |\n|--------|-----------|\n| PASS | All required workflows present with compliant config |\n| WARN | Workflows present but using older action versions |\n| FAIL | Missing required workflows |\n| SKIP | Not applicable (no Dockerfile = no container-build) |\n\n## Secrets Required\n\n| Secret | Purpose | Required |\n|--------|---------|----------|\n| GITHUB_TOKEN | Container registry auth | Auto-provided |\n| SENTRY_AUTH_TOKEN | Source map upload | If using Sentry |\n| MY_RELEASE_PLEASE_TOKEN | Release PR creation | For release-please |\n| CLAUDE_CODE_OAUTH_TOKEN | Claude Code Action auth | For claude-auto-fix |\n\n## Troubleshooting\n\nBuild failures, multi-platform issues, and cache misses: see [references\u002Ftroubleshooting.md](references\u002Ftroubleshooting.md) when a compliant workflow still fails at runtime.\n","# CI Workflow Standards\n\n## When to Use This Skill\n\n| Use this skill when... | Use a sibling skill instead when... |\n|---|---|\n| You need the canonical GitHub Actions workflow shapes (container build, test, release) | You want to audit or install workflows end-to-end as an interactive workflow — use `configure-workflows` |\n| You are checking whether existing `.github\u002Fworkflows\u002F*.yml` follows the documented conventions | You want pre-built reusable callers wired up — use `configure-reusable-workflows` |\n| Another skill needs to cite the standard workflow structure | The user asked you to actually create or repair CI workflows |\n\n## Version: 2025.1\n\nStandard GitHub Actions workflows for CI\u002FCD automation.\n\n## Display name convention\n\nEvery workflow's `name:` follows `\u003CDomain>: \u003CAction> [\u003Ctarget>]` so the GitHub Actions sidebar groups related workflows alphabetically. Quote the value because YAML treats `:` inside an unquoted scalar as a key separator. See `.claude\u002Frules\u002Fworkflow-naming.md` for the canonical rule, the active domain list, and the cross-workflow rename procedure. Mirror the pattern in any workflow you scaffold here.\n\n## Required Workflows\n\nFull YAML, key features, and prerequisites for each file live in [references\u002Fworkflow-templates.md](references\u002Fworkflow-templates.md) — read it when citing, diffing against, or scaffolding a specific workflow.\n\n| # | Workflow | File | Status |\n|---|----------|------|--------|\n| 1 | [Container Build](references\u002Fworkflow-templates.md#1-container-build-workflow) | `.github\u002Fworkflows\u002Fcontainer-build.yml` | Required if Dockerfile |\n| 2 | Release Please | `.github\u002Fworkflows\u002Frelease-please.yml` | Required |\n| 3 | [ArgoCD Auto-merge](references\u002Fworkflow-templates.md#3-argocd-auto-merge-workflow-optional) | `.github\u002Fworkflows\u002Fargocd-automerge.yml` | Optional |\n| 4 | [Test](references\u002Fworkflow-templates.md#4-test-workflow-recommended) | `.github\u002Fworkflows\u002Ftest.yml` | Recommended |\n| 5 | [Claude Auto-Fix](references\u002Fworkflow-templates.md#5-claude-auto-fix-workflow-optional) | `.github\u002Fworkflows\u002Fclaude-auto-fix.yml` | Optional |\n\n### 2. Release Please Workflow\n\n**File**: `.github\u002Fworkflows\u002Frelease-please.yml`\n\nSee `configure-release-please` (its REFERENCE.md carries the standard workflow, token, and config templates) for details.\n\n## Workflow Standards\n\n### Action Versions\n\n| Action | Version | Purpose |\n|--------|---------|---------|\n| actions\u002Fcheckout | v6 | Repository checkout |\n| docker\u002Fsetup-buildx-action | v4 | Multi-platform builds |\n| docker\u002Flogin-action | v4 | Registry authentication |\n| docker\u002Fmetadata-action | v6 | Image tagging |\n| docker\u002Fbuild-push-action | v7 | Container build\u002Fpush |\n| actions\u002Fsetup-node | v6 | Node.js setup |\n| googleapis\u002Frelease-please-action | v5 | Release automation |\n\n### Permissions\n\nMinimal permissions required:\n\n```yaml\npermissions:\n  contents: read      # Default for most jobs\n  packages: write     # For container push to GHCR\n  pull-requests: write  # For release-please PR creation\n```\n\n### Triggers\n\nStandard trigger patterns:\n\n```yaml\n# Build on push and PR to main\non:\n  push:\n    branches: [main]\n  pull_request:\n    branches: [main]\n\n# Also build on release\non:\n  release:\n    types: [published]\n```\n\n### Build Caching\n\nUse GitHub Actions cache for Docker layers:\n\n```yaml\ncache-from: type=gha\ncache-to: type=gha,mode=max\n```\n\n### Multi-Platform Builds\n\nBuild for both amd64 and arm64:\n\n```yaml\nplatforms: linux\u002Famd64,linux\u002Farm64\n```\n\n## Compliance Requirements\n\n### Required Workflows\n\n| Workflow | Purpose | Required |\n|----------|---------|----------|\n| container-build | Container builds | Yes (if Dockerfile) |\n| release-please | Automated releases | Yes |\n| test | Testing and linting | Recommended |\n| argocd-automerge | Auto-merge image updates | Optional (if using ArgoCD Image Updater) |\n| claude-auto-fix | Automated CI failure remediation | Optional |\n\n### Required Elements\n\n| Element | Requirement |\n|---------|-------------|\n| checkout action | v6 |\n| build-push action | v7 |\n| Multi-platform | amd64 + arm64 |\n| Caching | GHA cache enabled |\n| Permissions | Explicit and minimal |\n\n## Status Levels\n\n| Status | Condition |\n|--------|-----------|\n| PASS | All required workflows present with compliant config |\n| WARN | Workflows present but using older action versions |\n| FAIL | Missing required workflows |\n| SKIP | Not applicable (no Dockerfile = no container-build) |\n\n## Secrets Required\n\n| Secret | Purpose | Required |\n|--------|---------|----------|\n| GITHUB_TOKEN | Container registry auth | Auto-provided |\n| SENTRY_AUTH_TOKEN | Source map upload | If using Sentry |\n| MY_RELEASE_PLEASE_TOKEN | Release PR creation | For release-please |\n| CLAUDE_CODE_OAUTH_TOKEN | Claude Code Action auth | For claude-auto-fix |\n\n## Troubleshooting\n\nBuild failures, multi-platform issues, and cache misses: see [references\u002Ftroubleshooting.md](references\u002Ftroubleshooting.md) when a compliant workflow still fails at runtime.\n",{"name":5,"created":57,"modified":58,"reviewed":59,"description":7,"allowed-tools":60,"user-invocable":53},1765843200000,1791158400000,1780272000000,"Bash, Read, Write, Edit, Grep, Glob","main","bdd0582f1a2ba53d21061835bfd72d45f2f954f4","configure-plugin\u002Fskills\u002Fci-workflows",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":70,"prompt":80,"zipAvailable":81},[71,74,77],{"tool":72,"command":73},"npx","npx skills add laurigates\u002Fclaude-plugins --skill ci-workflows",{"tool":75,"command":76},"bunx","bunx skills add laurigates\u002Fclaude-plugins --skill ci-workflows",{"tool":78,"command":79},"pnpm","pnpm dlx skills add laurigates\u002Fclaude-plugins --skill ci-workflows","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fconfigure-plugin\u002Fskills\u002Fci-workflows\u002FSKILL.md",true,[83,89],{"path":84,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002Ftroubleshooting.md","REFERENCE","参考文档",587,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fconfigure-plugin\u002Fskills\u002Fci-workflows\u002Freferences\u002Ftroubleshooting.md",{"path":90,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002Fworkflow-templates.md",6032,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fconfigure-plugin\u002Fskills\u002Fci-workflows\u002Freferences\u002Fworkflow-templates.md",[94,119,137,153,174,204],{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":103,"publishedAt":52},"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",[100],{"categoryNo":101,"categoryName":102,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[104,105,106,107,108,109,110,111,112,113,27,29,46,114,115,116,117,118,28,44],"show","kitty show image","image","kitty","show image","ls","get","send","open","dev","file","text","with","xdg","via",{"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":52},"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",[],[107,126,127,128,33,129,29,46,130,131,132,28,44,43,42,133,134,135,136,27],"kitty session persistence","session","persistence","snapshots","uname","reboot","terminal","snapshot","macos","sessions","restore",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":52},"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",[],[144,145,107,146,147,109,148,149,110,150,151,27,29,152,46,115,116,132,28,44],"kitty remote control","remote","control","remote control","running","never","panes","notify","query",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":159,"publishedAt":52},"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",[],[160,161,162,163,164,165,166,167,35,38,27,29,46,168,114,169,170,171,172,173],"docs reference check","check","reference check","reference","docs","links","python3","repo","drift","lint","wiring","chezmoi","references","cp",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":189,"publishedAt":52},"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",[180,183,184],{"categoryNo":181,"categoryName":182,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":101,"categoryName":102,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":185,"categoryName":186,"taxonomyType":187,"taxonomyTypeDesc":188},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[190,191,192,193,166,194,44,195,42,196,197,198,27,46,114,199,200,29,201,202,203,118,28],"youtube upload","upload","youtube","Video","run","uv run","publishing","data","uv","api","v3","tags","id","title",{"skillNo":205,"name":206,"nameZh":6,"description":207,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":208,"categories":209,"keywords":211,"publishedAt":52},"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",[210],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[212,213,214,215,192,193,216,217,218,219,220,44,221,222,223,224,27,225,29,116,226,28],"youtube studio share","share","youtube studio","studio","browser","javascript","scripting","google workspace","workspace","tool","google","only","MCP","chrome","organization"]