[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6D6Q4Z6PTYKBCSW0FTRM5PE":3,"skill-same:01M6D6Q4Z6PTYKBCSW0FTRM5PE":80},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":25,"linkOnly":26,"markdownContent":27,"markdownBody":27,"frontMatter":28,"refName":29,"commitSha":30,"skillDirectory":31,"forksCount":32,"repositoryHtmlUrl":33,"repositoryHomepageUrl":6,"ownerHtmlUrl":34,"ownerBlogUrl":35,"ownerDescription":36,"updatedAt":37,"install":38,"resources":51},"01M6D6Q4Z6PTYKBCSW0FTRM5PE","ci-cd-pipeline-builder",null,"oabdelmaksoud\u002FSuperClaw","oabdelmaksoud","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F50699149?v=4","01M6D5CVVN778ZCDP1WHS816SP","Omar Abdelmaksoud","01M6D5CW1RHNSKCJR85GJACBFT",2,"MIT","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-import\u002Fclaude-skills\u002Freferences\u002Fengineering\u002Fci-cd-pipeline-builder\u002FSKILL.md",[],[18,19,20,21,22,23,24],"ci cd","ci","pipeline","ci cd pipeline builder","builder","ci cd pipeline","cd","2026-11-10 10:12:30",false,"# CI\u002FCD Pipeline Builder\n\n**Tier:** POWERFUL  \n**Category:** Engineering  \n**Domain:** DevOps \u002F Automation\n\n## Overview\n\nUse this skill to generate pragmatic CI\u002FCD pipelines from detected project stack signals, not guesswork. It focuses on fast baseline generation, repeatable checks, and environment-aware deployment stages.\n\n## Core Capabilities\n\n- Detect language\u002Fruntime\u002Ftooling from repository files\n- Recommend CI stages (`lint`, `test`, `build`, `deploy`)\n- Generate GitHub Actions or GitLab CI starter pipelines\n- Include caching and matrix strategy based on detected stack\n- Emit machine-readable detection output for automation\n- Keep pipeline logic aligned with project lockfiles and build commands\n\n## When to Use\n\n- Bootstrapping CI for a new repository\n- Replacing brittle copied pipeline files\n- Migrating between GitHub Actions and GitLab CI\n- Auditing whether pipeline steps match actual stack\n- Creating a reproducible baseline before custom hardening\n\n## Key Workflows\n\n### 1. Detect Stack\n\n```bash\npython3 scripts\u002Fstack_detector.py --repo . --format text\npython3 scripts\u002Fstack_detector.py --repo . --format json > detected-stack.json\n```\n\nSupports input via stdin or `--input` file for offline analysis payloads.\n\n### 2. Generate Pipeline From Detection\n\n```bash\npython3 scripts\u002Fpipeline_generator.py \\\n  --input detected-stack.json \\\n  --platform github \\\n  --output .github\u002Fworkflows\u002Fci.yml \\\n  --format text\n```\n\nOr end-to-end from repo directly:\n\n```bash\npython3 scripts\u002Fpipeline_generator.py --repo . --platform gitlab --output .gitlab-ci.yml\n```\n\n### 3. Validate Before Merge\n\n1. Confirm commands exist in project (`test`, `lint`, `build`).\n2. Run generated pipeline locally where possible.\n3. Ensure required secrets\u002Fenv vars are documented.\n4. Keep deploy jobs gated by protected branches\u002Fenvironments.\n\n### 4. Add Deployment Stages Safely\n\n- Start with CI-only (`lint\u002Ftest\u002Fbuild`).\n- Add staging deploy with explicit environment context.\n- Add production deploy with manual gate\u002Fapproval.\n- Keep rollout\u002Frollback commands explicit and auditable.\n\n## Script Interfaces\n\n- `python3 scripts\u002Fstack_detector.py --help`\n  - Detects stack signals from repository files\n  - Reads optional JSON input from stdin\u002F`--input`\n- `python3 scripts\u002Fpipeline_generator.py --help`\n  - Generates GitHub\u002FGitLab YAML from detection payload\n  - Writes to stdout or `--output`\n\n## Common Pitfalls\n\n1. Copying a Node pipeline into Python\u002FGo repos\n2. Enabling deploy jobs before stable tests\n3. Forgetting dependency cache keys\n4. Running expensive matrix builds for every trivial branch\n5. Missing branch protections around prod deploy jobs\n6. Hardcoding secrets in YAML instead of CI secret stores\n\n## Best Practices\n\n1. Detect stack first, then generate pipeline.\n2. Keep generated baseline under version control.\n3. Add one optimization at a time (cache, matrix, split jobs).\n4. Require green CI before deployment jobs.\n5. Use protected environments for production credentials.\n6. Regenerate pipeline when stack changes significantly.\n\n## References\n\n- [references\u002Fgithub-actions-templates.md](references\u002Fgithub-actions-templates.md)\n- [references\u002Fgitlab-ci-templates.md](references\u002Fgitlab-ci-templates.md)\n- [references\u002Fdeployment-gates.md](references\u002Fdeployment-gates.md)\n- [README.md](README.md)\n\n## Detection Heuristics\n\nThe stack detector prioritizes deterministic file signals over heuristics:\n\n- Lockfiles determine package manager preference\n- Language manifests determine runtime families\n- Script commands (if present) drive lint\u002Ftest\u002Fbuild commands\n- Missing scripts trigger conservative placeholder commands\n\n## Generation Strategy\n\nStart with a minimal, reliable pipeline:\n\n1. Checkout and setup runtime\n2. Install dependencies with cache strategy\n3. Run lint, test, build in separate steps\n4. Publish artifacts only after passing checks\n\nThen layer advanced behavior (matrix builds, security scans, deploy gates).\n\n## Platform Decision Notes\n\n- GitHub Actions for tight GitHub ecosystem integration\n- GitLab CI for integrated SCM + CI in self-hosted environments\n- Keep one canonical pipeline source per repo to reduce drift\n\n## Validation Checklist\n\n1. Generated YAML parses successfully.\n2. All referenced commands exist in the repo.\n3. Cache strategy matches package manager.\n4. Required secrets are documented, not embedded.\n5. Branch\u002Fprotected-environment rules match org policy.\n\n## Scaling Guidance\n\n- Split long jobs by stage when runtime exceeds 10 minutes.\n- Introduce test matrix only when compatibility truly requires it.\n- Separate deploy jobs from CI jobs to keep feedback fast.\n- Track pipeline duration and flakiness as first-class metrics.\n",{},"main","7b610356e36623652299fa2acb477ff821b1d920","upstream-import\u002Fclaude-skills\u002Freferences\u002Fengineering\u002Fci-cd-pipeline-builder",0,"https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fo-abdelmaksoud\u002F","Full-Stack Engineer | AI Systems Architect | Building autonomous multi-agent systems","2026-03-08 21:12:53",{"source":7,"skillName":5,"commands":39,"prompt":49,"zipAvailable":50},[40,43,46],{"tool":41,"command":42},"npx","npx skills add oabdelmaksoud\u002FSuperClaw --skill ci-cd-pipeline-builder",{"tool":44,"command":45},"bunx","bunx skills add oabdelmaksoud\u002FSuperClaw --skill ci-cd-pipeline-builder",{"tool":47,"command":48},"pnpm","pnpm dlx skills add oabdelmaksoud\u002FSuperClaw --skill ci-cd-pipeline-builder","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-import\u002Fclaude-skills\u002Freferences\u002Fengineering\u002Fci-cd-pipeline-builder\u002FSKILL.md",true,[52,58,62,66,70,76],{"path":53,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":56,"sourceHtmlUrl":57},"README.md","REFERENCE","参考文档",1165,"https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-import\u002Fclaude-skills\u002Freferences\u002Fengineering\u002Fci-cd-pipeline-builder\u002FREADME.md",{"path":59,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":60,"sourceHtmlUrl":61},"references\u002Fdeployment-gates.md",429,"https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-import\u002Fclaude-skills\u002Freferences\u002Fengineering\u002Fci-cd-pipeline-builder\u002Freferences\u002Fdeployment-gates.md",{"path":63,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":64,"sourceHtmlUrl":65},"references\u002Fgithub-actions-templates.md",758,"https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-import\u002Fclaude-skills\u002Freferences\u002Fengineering\u002Fci-cd-pipeline-builder\u002Freferences\u002Fgithub-actions-templates.md",{"path":67,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":68,"sourceHtmlUrl":69},"references\u002Fgitlab-ci-templates.md",476,"https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-import\u002Fclaude-skills\u002Freferences\u002Fengineering\u002Fci-cd-pipeline-builder\u002Freferences\u002Fgitlab-ci-templates.md",{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"scripts\u002Fpipeline_generator.py","SCRIPT","脚本",9676,"https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-import\u002Fclaude-skills\u002Freferences\u002Fengineering\u002Fci-cd-pipeline-builder\u002Fscripts\u002Fpipeline_generator.py",{"path":77,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":78,"sourceHtmlUrl":79},"scripts\u002Fstack_detector.py",5778,"https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-import\u002Fclaude-skills\u002Freferences\u002Fengineering\u002Fci-cd-pipeline-builder\u002Fscripts\u002Fstack_detector.py",[81,102,116,147,173,192],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":92,"publishedAt":25},"01M6D88QCPTBZVCRED0NZ1Y8K8","visa-doc-translate","Translate visa application documents (images) to English and create a bilingual PDF with original and translation","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fvisa-doc-translate\u002FSKILL.md",[87],{"categoryNo":88,"categoryName":89,"taxonomyType":90,"taxonomyTypeDesc":91},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",[93,94,95,96,97,98,99,100,101],"translate","doc","visa doc translate","translation","application","create","images","PDF","documents",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":25},"01M6D88NBM95T3TFM50CYYAP65","verification-loop","A comprehensive verification system for Claude Code sessions.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fverification-loop\u002FSKILL.md",[],[109,110,111,112,113,114,115],"verification","loop","verification loop","sessions","code","claude code sessions","system",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":133,"publishedAt":25},"01M6D88JFZ2P996GVRHJNSZSTM","tdd-workflow","Use this skill when writing new features, fixing bugs, or refactoring code. Enforces test-driven development with 80%+ coverage including unit, integration, and E2E tests.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Ftdd-workflow\u002FSKILL.md",[122,125,128],{"categoryNo":123,"categoryName":124,"taxonomyType":90,"taxonomyTypeDesc":91},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":126,"categoryName":127,"taxonomyType":90,"taxonomyTypeDesc":91},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":129,"categoryName":130,"taxonomyType":131,"taxonomyTypeDesc":132},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[134,135,136,137,138,139,113,140,141,142,143,144,145,146],"tdd","workflow","tdd workflow","e2e tests","e2e","integration","development","use","test","refactoring","coverage","tests","writing",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":153,"publishedAt":25},"01M6D88FTHRRSVJMXF2G7MQAK3","swiftui-patterns","SwiftUI architecture patterns, state management with @Observable, view composition, navigation, performance optimization, and modern iOS\u002FmacOS UI best practices.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswiftui-patterns\u002FSKILL.md",[],[154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172],"patterns","swiftui","swiftui patterns","architecture","macos","performance","state management","best practices","state","ui","Optimization","ios","architecture patterns","Composition","performance optimization","view","management","swiftui architecture","navigation",{"skillNo":174,"name":175,"nameZh":6,"description":176,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":177,"categories":178,"keywords":180,"publishedAt":25},"01M6D88D527QTQT9DKHTRFN6EA","swift-protocol-di-testing","Protocol-based dependency injection for testable Swift code — mock file system, network, and external APIs using focused protocols and Swift Testing.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswift-protocol-di-testing\u002FSKILL.md",[179],{"categoryNo":123,"categoryName":124,"taxonomyType":90,"taxonomyTypeDesc":91},[181,182,183,184,113,185,186,187,188,115,189,190,191],"swift protocol di testing","protocol","swift","testing","protocols","file","network","injection","dependency","swift testing","dependency injection",{"skillNo":193,"name":194,"nameZh":6,"description":195,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":196,"categories":197,"keywords":198,"publishedAt":25},"01M6D88AJW8H2QNWSW5ZY82R43","swift-concurrency-6-2","Swift 6.2 Approachable Concurrency — single-threaded by default, @concurrent for explicit background offloading, isolated conformances for main actor types.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswift-concurrency-6-2\u002FSKILL.md",[],[199,200,183,201,202,29],"concurrency","swift concurrency","swift concurrency 6 2","default"]