[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-github-reusable-workflow-patterns":3,"mdc--py5l3g-key":33,"related-org-github-reusable-workflow-patterns":2832,"related-repo-github-reusable-workflow-patterns":3012},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":22,"repoUrl":23,"updatedAt":24,"license":25,"forks":26,"topics":27,"repo":28,"sourceUrl":31,"mdContent":32},"reusable-workflow-patterns","implement reusable CI\u002FCD workflow patterns","Catalog of common CI\u002FCD patterns (build, test, deploy, security, quality), scan scope resolution (org-wide or specific repos), the reusable workflow template, selection criteria, and usage-documentation template. Load when detecting recurring CI\u002FCD patterns across GitHub orgs and\u002For repositories to generate standardized `reusable-*.yml` workflows with corresponding `docs\u002F\u003Cname>-usage.md` files.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"github","GitHub","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fgithub.png",[12,16,19],{"name":13,"slug":14,"type":15},"GitHub Actions","github-actions","tag",{"name":17,"slug":18,"type":15},"Automation","automation",{"name":20,"slug":21,"type":15},"CI\u002FCD","ci-cd",64,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Factions-migrations-via-copilot","2026-05-27T07:08:11.55938",null,10,[],{"repoUrl":23,"stars":22,"forks":26,"topics":29,"description":30},[],"Migrate to GitHub Actions from multiple other CI\u002FCD systems using Copilot","https:\u002F\u002Fgithub.com\u002Fgithub\u002Factions-migrations-via-copilot\u002Ftree\u002FHEAD\u002Fplugin\u002Fskills\u002Freusable-workflow-patterns","---\nname: reusable-workflow-patterns\ndescription: Catalog of common CI\u002FCD patterns (build, test, deploy, security, quality), scan scope resolution (org-wide or specific repos), the reusable workflow template, selection criteria, and usage-documentation template. Load when detecting recurring CI\u002FCD patterns across GitHub orgs and\u002For repositories to generate standardized `reusable-*.yml` workflows with corresponding `docs\u002F\u003Cname>-usage.md` files.\n---\n\n# Reusable Workflow Patterns\n\nThis skill provides the catalog, template, and documentation standards used by the Reusable Workflow Builder agent to detect cross-platform CI\u002FCD patterns and produce standardized GitHub Actions reusable workflows.\n\n## Supported CI\u002FCD systems for pattern discovery\n\n| System         | File patterns                                   |\n| -------------- | ----------------------------------------------- |\n| GitHub Actions | `.github\u002Fworkflows\u002F*.yml`                       |\n| GitLab CI\u002FCD   | `.gitlab-ci.yml`                                |\n| Azure DevOps   | `azure-pipelines.yml`, `.azure-pipelines\u002F*.yml` |\n| Jenkins        | `Jenkinsfile`, `.jenkins\u002F*.groovy`              |\n| CircleCI       | `.circleci\u002Fconfig.yml`                          |\n| Travis CI      | `.travis.yml`                                   |\n| Drone CI       | `.drone.yml`                                    |\n| Others         | Bitbucket, TeamCity, Bamboo, Buildkite          |\n\n## Pattern categories\n\n- **🏗️ Build** — npm\u002FMaven\u002FDocker\u002Flanguage-specific build processes\n- **🧪 Test** — unit, integration, E2E, security, performance testing\n- **🚀 Deploy** — cloud (AWS\u002FAzure\u002FGCP), containers, serverless, infrastructure\n- **🔒 Security** — SAST\u002FDAST, dependency scanning, compliance checks\n- **📊 Quality** — code coverage, linting, quality gates\n\n## Selection criteria\n\nA pattern becomes a reusable workflow when it shows:\n\n- **High frequency** — 10+ repositories\n- **Significant complexity** — 5+ steps\n- **Low variation** — standardizable\n- **Clear parameters** — configurable inputs\n\n## Scan scope\n\nThe user controls the scope of analysis. Three modes are supported and can be freely combined:\n\n| User input | Scope |\n|---|---|\n| `org-name` | All repositories in that organization |\n| `org-name\u002Frepo-name` | That specific repository only |\n| Mixed list | Union of all specified orgs and repos |\n\n**Always** respect the stated scope — never crawl repos or orgs not explicitly provided.\n\n## Pattern-recognition workflow\n\nAdapt these steps to the input scope:\n\n1. **Scope resolution**\n   - For each `org-name` entry: use `mcp_github_search_repositories` to enumerate all repos in that org.\n   - For each `org-name\u002Frepo-name` entry: use that repo directly — no enumeration needed.\n   - Deduplicate if a repo appears both via org scan and explicit reference.\n\n2. **Universal pipeline discovery** — search each repo for CI\u002FCD files across all supported systems (see table above).\n\n3. **Cross-platform content analysis** — retrieve and parse configurations.\n\n4. **Universal pattern extraction** — identify common structures and steps.\n\n5. **Cross-system frequency analysis** — count pattern occurrences across the resolved repo set.\n   - When scope is a single repo or a small explicit list, lower the frequency threshold (see Selection criteria) — a pattern present in 3+ files within a monorepo is still worth extracting.\n\n6. **Translation scoring** — rank by frequency, complexity reduction, and GitHub Actions conversion feasibility.\n\n7. **Platform mapping** — map equivalent concepts to GitHub Actions.\n\n## Reusable workflow template\n\n```yaml\nname: Reusable Node.js Build Workflow\non:\n  workflow_call:\n    inputs:\n      node-version:\n        description: 'Node.js version to use'\n        required: false\n        default: '18'\n        type: string\n      build-command:\n        description: 'Custom build command'\n        required: false\n        default: 'npm run build'\n        type: string\n    outputs:\n      build-success:\n        description: 'Build success status'\n        value: ${{ jobs.build.outputs.success }}\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      # ✅ Only verified actions from trusted publishers\n      - uses: actions\u002Fcheckout@v4\n      - uses: actions\u002Fsetup-node@v4\n        with:\n          node-version: ${{ inputs.node-version }}\n          cache: 'npm'\n      - run: npm install\n      - run: ${{ inputs.build-command }}\n```\n\n## Output file rules\n\nFor **every** reusable workflow produced, create **exactly two** files:\n\n1. `.github\u002Fworkflows\u002Freusable-\u003Cname>.yml` — the reusable workflow (`workflow_call` trigger only)\n2. `docs\u002F\u003Cname>-usage.md` — the usage documentation (one per workflow, 1:1)\n\n**Never** create: `README.md`, `WORKFLOWS.md`, consolidated docs, scripts (`.sh`, `.bat`, `.ps1`, `.py`, `.js`), custom actions, caller workflows, or workflow templates.\n\n## Usage documentation template\n\nEach `docs\u002F\u003Cname>-usage.md` must contain:\n\n````markdown\n# Reusable [Workflow Name] Usage Guide\n\n## Pattern Analysis Summary\n- **Frequency**: Found in X repositories across Y organizations\n- **Source CI\u002FCD Systems**: [List systems: GitHub Actions, GitLab CI, Jenkins, etc.]\n- **Complexity Reduction**: [Explain how this replaces X previous steps]\n\n## Migration Benefits\n- **From GitLab CI**: [If applicable, before\u002Fafter]\n- **From Jenkins**: [If applicable, before\u002Fafter]\n- **From Azure DevOps**: [If applicable, before\u002Fafter]\n- **Standardization**: [Consistency improvements]\n\n## Basic Usage Example\n```yaml\nname: Example Workflow\non: [push, pull_request]\n\njobs:\n  job-name:\n    uses: .\u002F.github\u002Fworkflows\u002Freusable-[name].yml\n    with:\n      param1: 'value1'\n      param2: 'custom-value'\n```\n\n## Advanced Usage Example\n```yaml\nname: Production Workflow\non:\n  push:\n    branches: [main]\n\njobs:\n  job-name:\n    uses: .\u002F.github\u002Fworkflows\u002Freusable-[name].yml\n    with:\n      param1: 'production-value'\n      param2: 'advanced-setting'\n    secrets:\n      SECRET_NAME: ${{ secrets.SECRET_NAME }}\n```\n\n## Input Parameters Reference\n| Parameter | Description   | Required | Default     | Example    |\n| --------- | ------------- | -------- | ----------- | ---------- |\n| param1    | [Description] | Yes      | -           | `'value'`  |\n| param2    | [Description] | No       | `'default'` | `'custom'` |\n\n## Output Reference\n| Output  | Description   | Type   |\n| ------- | ------------- | ------ |\n| output1 | [Description] | string |\n\n## Migration Examples\n### From GitLab CI\n**Before (.gitlab-ci.yml):**\n```yaml\n[Show original GitLab CI configuration]\n```\n\n**After (GitHub Actions):**\n```yaml\n[Show how to use this reusable workflow instead]\n```\n\n### From Jenkins\n**Before (Jenkinsfile):**\n```groovy\n[Show original Jenkins configuration]\n```\n\n**After (GitHub Actions):**\n```yaml\n[Show how to use this reusable workflow instead]\n```\n\n## Best Practices\n- [Specific best practices for using this workflow]\n- [Security considerations]\n- [Performance tips]\n````\n\n## Quality and security requirements\n\n- **Verified publishers only**: prioritize `actions\u002F*`, `azure\u002F*`, `aws-actions\u002F*`, `google-github-actions\u002F*`\n- **Latest stable versions** of all actions, pinned to commit SHA (see `migration-core` guardrails)\n- **Trigger**: `workflow_call` only\n- **Location**: `.github\u002Fworkflows\u002Freusable-\u003Cname>.yml`\n- **Validation**: every workflow must pass `actionlint`\n",{"data":34,"body":35},{"name":4,"description":6},{"type":36,"children":37},"root",[38,46,52,59,234,240,296,302,307,350,356,361,430,440,446,451,570,576,1139,1145,1164,1197,1258,1264,1276,2715,2721,2826],{"type":39,"tag":40,"props":41,"children":42},"element","h1",{"id":4},[43],{"type":44,"value":45},"text","Reusable Workflow Patterns",{"type":39,"tag":47,"props":48,"children":49},"p",{},[50],{"type":44,"value":51},"This skill provides the catalog, template, and documentation standards used by the Reusable Workflow Builder agent to detect cross-platform CI\u002FCD patterns and produce standardized GitHub Actions reusable workflows.",{"type":39,"tag":53,"props":54,"children":56},"h2",{"id":55},"supported-cicd-systems-for-pattern-discovery",[57],{"type":44,"value":58},"Supported CI\u002FCD systems for pattern discovery",{"type":39,"tag":60,"props":61,"children":62},"table",{},[63,82],{"type":39,"tag":64,"props":65,"children":66},"thead",{},[67],{"type":39,"tag":68,"props":69,"children":70},"tr",{},[71,77],{"type":39,"tag":72,"props":73,"children":74},"th",{},[75],{"type":44,"value":76},"System",{"type":39,"tag":72,"props":78,"children":79},{},[80],{"type":44,"value":81},"File patterns",{"type":39,"tag":83,"props":84,"children":85},"tbody",{},[86,104,121,146,170,187,204,221],{"type":39,"tag":68,"props":87,"children":88},{},[89,94],{"type":39,"tag":90,"props":91,"children":92},"td",{},[93],{"type":44,"value":13},{"type":39,"tag":90,"props":95,"children":96},{},[97],{"type":39,"tag":98,"props":99,"children":101},"code",{"className":100},[],[102],{"type":44,"value":103},".github\u002Fworkflows\u002F*.yml",{"type":39,"tag":68,"props":105,"children":106},{},[107,112],{"type":39,"tag":90,"props":108,"children":109},{},[110],{"type":44,"value":111},"GitLab CI\u002FCD",{"type":39,"tag":90,"props":113,"children":114},{},[115],{"type":39,"tag":98,"props":116,"children":118},{"className":117},[],[119],{"type":44,"value":120},".gitlab-ci.yml",{"type":39,"tag":68,"props":122,"children":123},{},[124,129],{"type":39,"tag":90,"props":125,"children":126},{},[127],{"type":44,"value":128},"Azure DevOps",{"type":39,"tag":90,"props":130,"children":131},{},[132,138,140],{"type":39,"tag":98,"props":133,"children":135},{"className":134},[],[136],{"type":44,"value":137},"azure-pipelines.yml",{"type":44,"value":139},", ",{"type":39,"tag":98,"props":141,"children":143},{"className":142},[],[144],{"type":44,"value":145},".azure-pipelines\u002F*.yml",{"type":39,"tag":68,"props":147,"children":148},{},[149,154],{"type":39,"tag":90,"props":150,"children":151},{},[152],{"type":44,"value":153},"Jenkins",{"type":39,"tag":90,"props":155,"children":156},{},[157,163,164],{"type":39,"tag":98,"props":158,"children":160},{"className":159},[],[161],{"type":44,"value":162},"Jenkinsfile",{"type":44,"value":139},{"type":39,"tag":98,"props":165,"children":167},{"className":166},[],[168],{"type":44,"value":169},".jenkins\u002F*.groovy",{"type":39,"tag":68,"props":171,"children":172},{},[173,178],{"type":39,"tag":90,"props":174,"children":175},{},[176],{"type":44,"value":177},"CircleCI",{"type":39,"tag":90,"props":179,"children":180},{},[181],{"type":39,"tag":98,"props":182,"children":184},{"className":183},[],[185],{"type":44,"value":186},".circleci\u002Fconfig.yml",{"type":39,"tag":68,"props":188,"children":189},{},[190,195],{"type":39,"tag":90,"props":191,"children":192},{},[193],{"type":44,"value":194},"Travis CI",{"type":39,"tag":90,"props":196,"children":197},{},[198],{"type":39,"tag":98,"props":199,"children":201},{"className":200},[],[202],{"type":44,"value":203},".travis.yml",{"type":39,"tag":68,"props":205,"children":206},{},[207,212],{"type":39,"tag":90,"props":208,"children":209},{},[210],{"type":44,"value":211},"Drone CI",{"type":39,"tag":90,"props":213,"children":214},{},[215],{"type":39,"tag":98,"props":216,"children":218},{"className":217},[],[219],{"type":44,"value":220},".drone.yml",{"type":39,"tag":68,"props":222,"children":223},{},[224,229],{"type":39,"tag":90,"props":225,"children":226},{},[227],{"type":44,"value":228},"Others",{"type":39,"tag":90,"props":230,"children":231},{},[232],{"type":44,"value":233},"Bitbucket, TeamCity, Bamboo, Buildkite",{"type":39,"tag":53,"props":235,"children":237},{"id":236},"pattern-categories",[238],{"type":44,"value":239},"Pattern categories",{"type":39,"tag":241,"props":242,"children":243},"ul",{},[244,256,266,276,286],{"type":39,"tag":245,"props":246,"children":247},"li",{},[248,254],{"type":39,"tag":249,"props":250,"children":251},"strong",{},[252],{"type":44,"value":253},"🏗️ Build",{"type":44,"value":255}," — npm\u002FMaven\u002FDocker\u002Flanguage-specific build processes",{"type":39,"tag":245,"props":257,"children":258},{},[259,264],{"type":39,"tag":249,"props":260,"children":261},{},[262],{"type":44,"value":263},"🧪 Test",{"type":44,"value":265}," — unit, integration, E2E, security, performance testing",{"type":39,"tag":245,"props":267,"children":268},{},[269,274],{"type":39,"tag":249,"props":270,"children":271},{},[272],{"type":44,"value":273},"🚀 Deploy",{"type":44,"value":275}," — cloud (AWS\u002FAzure\u002FGCP), containers, serverless, infrastructure",{"type":39,"tag":245,"props":277,"children":278},{},[279,284],{"type":39,"tag":249,"props":280,"children":281},{},[282],{"type":44,"value":283},"🔒 Security",{"type":44,"value":285}," — SAST\u002FDAST, dependency scanning, compliance checks",{"type":39,"tag":245,"props":287,"children":288},{},[289,294],{"type":39,"tag":249,"props":290,"children":291},{},[292],{"type":44,"value":293},"📊 Quality",{"type":44,"value":295}," — code coverage, linting, quality gates",{"type":39,"tag":53,"props":297,"children":299},{"id":298},"selection-criteria",[300],{"type":44,"value":301},"Selection criteria",{"type":39,"tag":47,"props":303,"children":304},{},[305],{"type":44,"value":306},"A pattern becomes a reusable workflow when it shows:",{"type":39,"tag":241,"props":308,"children":309},{},[310,320,330,340],{"type":39,"tag":245,"props":311,"children":312},{},[313,318],{"type":39,"tag":249,"props":314,"children":315},{},[316],{"type":44,"value":317},"High frequency",{"type":44,"value":319}," — 10+ repositories",{"type":39,"tag":245,"props":321,"children":322},{},[323,328],{"type":39,"tag":249,"props":324,"children":325},{},[326],{"type":44,"value":327},"Significant complexity",{"type":44,"value":329}," — 5+ steps",{"type":39,"tag":245,"props":331,"children":332},{},[333,338],{"type":39,"tag":249,"props":334,"children":335},{},[336],{"type":44,"value":337},"Low variation",{"type":44,"value":339}," — standardizable",{"type":39,"tag":245,"props":341,"children":342},{},[343,348],{"type":39,"tag":249,"props":344,"children":345},{},[346],{"type":44,"value":347},"Clear parameters",{"type":44,"value":349}," — configurable inputs",{"type":39,"tag":53,"props":351,"children":353},{"id":352},"scan-scope",[354],{"type":44,"value":355},"Scan scope",{"type":39,"tag":47,"props":357,"children":358},{},[359],{"type":44,"value":360},"The user controls the scope of analysis. Three modes are supported and can be freely combined:",{"type":39,"tag":60,"props":362,"children":363},{},[364,380],{"type":39,"tag":64,"props":365,"children":366},{},[367],{"type":39,"tag":68,"props":368,"children":369},{},[370,375],{"type":39,"tag":72,"props":371,"children":372},{},[373],{"type":44,"value":374},"User input",{"type":39,"tag":72,"props":376,"children":377},{},[378],{"type":44,"value":379},"Scope",{"type":39,"tag":83,"props":381,"children":382},{},[383,400,417],{"type":39,"tag":68,"props":384,"children":385},{},[386,395],{"type":39,"tag":90,"props":387,"children":388},{},[389],{"type":39,"tag":98,"props":390,"children":392},{"className":391},[],[393],{"type":44,"value":394},"org-name",{"type":39,"tag":90,"props":396,"children":397},{},[398],{"type":44,"value":399},"All repositories in that organization",{"type":39,"tag":68,"props":401,"children":402},{},[403,412],{"type":39,"tag":90,"props":404,"children":405},{},[406],{"type":39,"tag":98,"props":407,"children":409},{"className":408},[],[410],{"type":44,"value":411},"org-name\u002Frepo-name",{"type":39,"tag":90,"props":413,"children":414},{},[415],{"type":44,"value":416},"That specific repository only",{"type":39,"tag":68,"props":418,"children":419},{},[420,425],{"type":39,"tag":90,"props":421,"children":422},{},[423],{"type":44,"value":424},"Mixed list",{"type":39,"tag":90,"props":426,"children":427},{},[428],{"type":44,"value":429},"Union of all specified orgs and repos",{"type":39,"tag":47,"props":431,"children":432},{},[433,438],{"type":39,"tag":249,"props":434,"children":435},{},[436],{"type":44,"value":437},"Always",{"type":44,"value":439}," respect the stated scope — never crawl repos or orgs not explicitly provided.",{"type":39,"tag":53,"props":441,"children":443},{"id":442},"pattern-recognition-workflow",[444],{"type":44,"value":445},"Pattern-recognition workflow",{"type":39,"tag":47,"props":447,"children":448},{},[449],{"type":44,"value":450},"Adapt these steps to the input scope:",{"type":39,"tag":452,"props":453,"children":454},"ol",{},[455,502,512,522,532,550,560],{"type":39,"tag":245,"props":456,"children":457},{},[458,463],{"type":39,"tag":249,"props":459,"children":460},{},[461],{"type":44,"value":462},"Scope resolution",{"type":39,"tag":241,"props":464,"children":465},{},[466,486,497],{"type":39,"tag":245,"props":467,"children":468},{},[469,471,476,478,484],{"type":44,"value":470},"For each ",{"type":39,"tag":98,"props":472,"children":474},{"className":473},[],[475],{"type":44,"value":394},{"type":44,"value":477}," entry: use ",{"type":39,"tag":98,"props":479,"children":481},{"className":480},[],[482],{"type":44,"value":483},"mcp_github_search_repositories",{"type":44,"value":485}," to enumerate all repos in that org.",{"type":39,"tag":245,"props":487,"children":488},{},[489,490,495],{"type":44,"value":470},{"type":39,"tag":98,"props":491,"children":493},{"className":492},[],[494],{"type":44,"value":411},{"type":44,"value":496}," entry: use that repo directly — no enumeration needed.",{"type":39,"tag":245,"props":498,"children":499},{},[500],{"type":44,"value":501},"Deduplicate if a repo appears both via org scan and explicit reference.",{"type":39,"tag":245,"props":503,"children":504},{},[505,510],{"type":39,"tag":249,"props":506,"children":507},{},[508],{"type":44,"value":509},"Universal pipeline discovery",{"type":44,"value":511}," — search each repo for CI\u002FCD files across all supported systems (see table above).",{"type":39,"tag":245,"props":513,"children":514},{},[515,520],{"type":39,"tag":249,"props":516,"children":517},{},[518],{"type":44,"value":519},"Cross-platform content analysis",{"type":44,"value":521}," — retrieve and parse configurations.",{"type":39,"tag":245,"props":523,"children":524},{},[525,530],{"type":39,"tag":249,"props":526,"children":527},{},[528],{"type":44,"value":529},"Universal pattern extraction",{"type":44,"value":531}," — identify common structures and steps.",{"type":39,"tag":245,"props":533,"children":534},{},[535,540,542],{"type":39,"tag":249,"props":536,"children":537},{},[538],{"type":44,"value":539},"Cross-system frequency analysis",{"type":44,"value":541}," — count pattern occurrences across the resolved repo set.",{"type":39,"tag":241,"props":543,"children":544},{},[545],{"type":39,"tag":245,"props":546,"children":547},{},[548],{"type":44,"value":549},"When scope is a single repo or a small explicit list, lower the frequency threshold (see Selection criteria) — a pattern present in 3+ files within a monorepo is still worth extracting.",{"type":39,"tag":245,"props":551,"children":552},{},[553,558],{"type":39,"tag":249,"props":554,"children":555},{},[556],{"type":44,"value":557},"Translation scoring",{"type":44,"value":559}," — rank by frequency, complexity reduction, and GitHub Actions conversion feasibility.",{"type":39,"tag":245,"props":561,"children":562},{},[563,568],{"type":39,"tag":249,"props":564,"children":565},{},[566],{"type":44,"value":567},"Platform mapping",{"type":44,"value":569}," — map equivalent concepts to GitHub Actions.",{"type":39,"tag":53,"props":571,"children":573},{"id":572},"reusable-workflow-template",[574],{"type":44,"value":575},"Reusable workflow template",{"type":39,"tag":577,"props":578,"children":583},"pre",{"className":579,"code":580,"language":581,"meta":582,"style":582},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","name: Reusable Node.js Build Workflow\non:\n  workflow_call:\n    inputs:\n      node-version:\n        description: 'Node.js version to use'\n        required: false\n        default: '18'\n        type: string\n      build-command:\n        description: 'Custom build command'\n        required: false\n        default: 'npm run build'\n        type: string\n    outputs:\n      build-success:\n        description: 'Build success status'\n        value: ${{ jobs.build.outputs.success }}\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      # ✅ Only verified actions from trusted publishers\n      - uses: actions\u002Fcheckout@v4\n      - uses: actions\u002Fsetup-node@v4\n        with:\n          node-version: ${{ inputs.node-version }}\n          cache: 'npm'\n      - run: npm install\n      - run: ${{ inputs.build-command }}\n","yaml","",[584],{"type":39,"tag":98,"props":585,"children":586},{"__ignoreMap":582},[587,611,626,639,652,665,693,711,737,755,767,792,808,833,849,862,875,900,918,928,941,954,972,985,995,1018,1039,1052,1070,1096,1118],{"type":39,"tag":588,"props":589,"children":592},"span",{"class":590,"line":591},"line",1,[593,599,605],{"type":39,"tag":588,"props":594,"children":596},{"style":595},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[597],{"type":44,"value":598},"name",{"type":39,"tag":588,"props":600,"children":602},{"style":601},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[603],{"type":44,"value":604},":",{"type":39,"tag":588,"props":606,"children":608},{"style":607},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[609],{"type":44,"value":610}," Reusable Node.js Build Workflow\n",{"type":39,"tag":588,"props":612,"children":614},{"class":590,"line":613},2,[615,621],{"type":39,"tag":588,"props":616,"children":618},{"style":617},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[619],{"type":44,"value":620},"on",{"type":39,"tag":588,"props":622,"children":623},{"style":601},[624],{"type":44,"value":625},":\n",{"type":39,"tag":588,"props":627,"children":629},{"class":590,"line":628},3,[630,635],{"type":39,"tag":588,"props":631,"children":632},{"style":595},[633],{"type":44,"value":634},"  workflow_call",{"type":39,"tag":588,"props":636,"children":637},{"style":601},[638],{"type":44,"value":625},{"type":39,"tag":588,"props":640,"children":642},{"class":590,"line":641},4,[643,648],{"type":39,"tag":588,"props":644,"children":645},{"style":595},[646],{"type":44,"value":647},"    inputs",{"type":39,"tag":588,"props":649,"children":650},{"style":601},[651],{"type":44,"value":625},{"type":39,"tag":588,"props":653,"children":655},{"class":590,"line":654},5,[656,661],{"type":39,"tag":588,"props":657,"children":658},{"style":595},[659],{"type":44,"value":660},"      node-version",{"type":39,"tag":588,"props":662,"children":663},{"style":601},[664],{"type":44,"value":625},{"type":39,"tag":588,"props":666,"children":668},{"class":590,"line":667},6,[669,674,678,683,688],{"type":39,"tag":588,"props":670,"children":671},{"style":595},[672],{"type":44,"value":673},"        description",{"type":39,"tag":588,"props":675,"children":676},{"style":601},[677],{"type":44,"value":604},{"type":39,"tag":588,"props":679,"children":680},{"style":601},[681],{"type":44,"value":682}," '",{"type":39,"tag":588,"props":684,"children":685},{"style":607},[686],{"type":44,"value":687},"Node.js version to use",{"type":39,"tag":588,"props":689,"children":690},{"style":601},[691],{"type":44,"value":692},"'\n",{"type":39,"tag":588,"props":694,"children":696},{"class":590,"line":695},7,[697,702,706],{"type":39,"tag":588,"props":698,"children":699},{"style":595},[700],{"type":44,"value":701},"        required",{"type":39,"tag":588,"props":703,"children":704},{"style":601},[705],{"type":44,"value":604},{"type":39,"tag":588,"props":707,"children":708},{"style":617},[709],{"type":44,"value":710}," false\n",{"type":39,"tag":588,"props":712,"children":714},{"class":590,"line":713},8,[715,720,724,728,733],{"type":39,"tag":588,"props":716,"children":717},{"style":595},[718],{"type":44,"value":719},"        default",{"type":39,"tag":588,"props":721,"children":722},{"style":601},[723],{"type":44,"value":604},{"type":39,"tag":588,"props":725,"children":726},{"style":601},[727],{"type":44,"value":682},{"type":39,"tag":588,"props":729,"children":730},{"style":607},[731],{"type":44,"value":732},"18",{"type":39,"tag":588,"props":734,"children":735},{"style":601},[736],{"type":44,"value":692},{"type":39,"tag":588,"props":738,"children":740},{"class":590,"line":739},9,[741,746,750],{"type":39,"tag":588,"props":742,"children":743},{"style":595},[744],{"type":44,"value":745},"        type",{"type":39,"tag":588,"props":747,"children":748},{"style":601},[749],{"type":44,"value":604},{"type":39,"tag":588,"props":751,"children":752},{"style":607},[753],{"type":44,"value":754}," string\n",{"type":39,"tag":588,"props":756,"children":757},{"class":590,"line":26},[758,763],{"type":39,"tag":588,"props":759,"children":760},{"style":595},[761],{"type":44,"value":762},"      build-command",{"type":39,"tag":588,"props":764,"children":765},{"style":601},[766],{"type":44,"value":625},{"type":39,"tag":588,"props":768,"children":770},{"class":590,"line":769},11,[771,775,779,783,788],{"type":39,"tag":588,"props":772,"children":773},{"style":595},[774],{"type":44,"value":673},{"type":39,"tag":588,"props":776,"children":777},{"style":601},[778],{"type":44,"value":604},{"type":39,"tag":588,"props":780,"children":781},{"style":601},[782],{"type":44,"value":682},{"type":39,"tag":588,"props":784,"children":785},{"style":607},[786],{"type":44,"value":787},"Custom build command",{"type":39,"tag":588,"props":789,"children":790},{"style":601},[791],{"type":44,"value":692},{"type":39,"tag":588,"props":793,"children":795},{"class":590,"line":794},12,[796,800,804],{"type":39,"tag":588,"props":797,"children":798},{"style":595},[799],{"type":44,"value":701},{"type":39,"tag":588,"props":801,"children":802},{"style":601},[803],{"type":44,"value":604},{"type":39,"tag":588,"props":805,"children":806},{"style":617},[807],{"type":44,"value":710},{"type":39,"tag":588,"props":809,"children":811},{"class":590,"line":810},13,[812,816,820,824,829],{"type":39,"tag":588,"props":813,"children":814},{"style":595},[815],{"type":44,"value":719},{"type":39,"tag":588,"props":817,"children":818},{"style":601},[819],{"type":44,"value":604},{"type":39,"tag":588,"props":821,"children":822},{"style":601},[823],{"type":44,"value":682},{"type":39,"tag":588,"props":825,"children":826},{"style":607},[827],{"type":44,"value":828},"npm run build",{"type":39,"tag":588,"props":830,"children":831},{"style":601},[832],{"type":44,"value":692},{"type":39,"tag":588,"props":834,"children":836},{"class":590,"line":835},14,[837,841,845],{"type":39,"tag":588,"props":838,"children":839},{"style":595},[840],{"type":44,"value":745},{"type":39,"tag":588,"props":842,"children":843},{"style":601},[844],{"type":44,"value":604},{"type":39,"tag":588,"props":846,"children":847},{"style":607},[848],{"type":44,"value":754},{"type":39,"tag":588,"props":850,"children":852},{"class":590,"line":851},15,[853,858],{"type":39,"tag":588,"props":854,"children":855},{"style":595},[856],{"type":44,"value":857},"    outputs",{"type":39,"tag":588,"props":859,"children":860},{"style":601},[861],{"type":44,"value":625},{"type":39,"tag":588,"props":863,"children":865},{"class":590,"line":864},16,[866,871],{"type":39,"tag":588,"props":867,"children":868},{"style":595},[869],{"type":44,"value":870},"      build-success",{"type":39,"tag":588,"props":872,"children":873},{"style":601},[874],{"type":44,"value":625},{"type":39,"tag":588,"props":876,"children":878},{"class":590,"line":877},17,[879,883,887,891,896],{"type":39,"tag":588,"props":880,"children":881},{"style":595},[882],{"type":44,"value":673},{"type":39,"tag":588,"props":884,"children":885},{"style":601},[886],{"type":44,"value":604},{"type":39,"tag":588,"props":888,"children":889},{"style":601},[890],{"type":44,"value":682},{"type":39,"tag":588,"props":892,"children":893},{"style":607},[894],{"type":44,"value":895},"Build success status",{"type":39,"tag":588,"props":897,"children":898},{"style":601},[899],{"type":44,"value":692},{"type":39,"tag":588,"props":901,"children":903},{"class":590,"line":902},18,[904,909,913],{"type":39,"tag":588,"props":905,"children":906},{"style":595},[907],{"type":44,"value":908},"        value",{"type":39,"tag":588,"props":910,"children":911},{"style":601},[912],{"type":44,"value":604},{"type":39,"tag":588,"props":914,"children":915},{"style":607},[916],{"type":44,"value":917}," ${{ jobs.build.outputs.success }}\n",{"type":39,"tag":588,"props":919,"children":921},{"class":590,"line":920},19,[922],{"type":39,"tag":588,"props":923,"children":925},{"emptyLinePlaceholder":924},true,[926],{"type":44,"value":927},"\n",{"type":39,"tag":588,"props":929,"children":931},{"class":590,"line":930},20,[932,937],{"type":39,"tag":588,"props":933,"children":934},{"style":595},[935],{"type":44,"value":936},"jobs",{"type":39,"tag":588,"props":938,"children":939},{"style":601},[940],{"type":44,"value":625},{"type":39,"tag":588,"props":942,"children":944},{"class":590,"line":943},21,[945,950],{"type":39,"tag":588,"props":946,"children":947},{"style":595},[948],{"type":44,"value":949},"  build",{"type":39,"tag":588,"props":951,"children":952},{"style":601},[953],{"type":44,"value":625},{"type":39,"tag":588,"props":955,"children":957},{"class":590,"line":956},22,[958,963,967],{"type":39,"tag":588,"props":959,"children":960},{"style":595},[961],{"type":44,"value":962},"    runs-on",{"type":39,"tag":588,"props":964,"children":965},{"style":601},[966],{"type":44,"value":604},{"type":39,"tag":588,"props":968,"children":969},{"style":607},[970],{"type":44,"value":971}," ubuntu-latest\n",{"type":39,"tag":588,"props":973,"children":975},{"class":590,"line":974},23,[976,981],{"type":39,"tag":588,"props":977,"children":978},{"style":595},[979],{"type":44,"value":980},"    steps",{"type":39,"tag":588,"props":982,"children":983},{"style":601},[984],{"type":44,"value":625},{"type":39,"tag":588,"props":986,"children":988},{"class":590,"line":987},24,[989],{"type":39,"tag":588,"props":990,"children":992},{"style":991},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[993],{"type":44,"value":994},"      # ✅ Only verified actions from trusted publishers\n",{"type":39,"tag":588,"props":996,"children":998},{"class":590,"line":997},25,[999,1004,1009,1013],{"type":39,"tag":588,"props":1000,"children":1001},{"style":601},[1002],{"type":44,"value":1003},"      -",{"type":39,"tag":588,"props":1005,"children":1006},{"style":595},[1007],{"type":44,"value":1008}," uses",{"type":39,"tag":588,"props":1010,"children":1011},{"style":601},[1012],{"type":44,"value":604},{"type":39,"tag":588,"props":1014,"children":1015},{"style":607},[1016],{"type":44,"value":1017}," actions\u002Fcheckout@v4\n",{"type":39,"tag":588,"props":1019,"children":1021},{"class":590,"line":1020},26,[1022,1026,1030,1034],{"type":39,"tag":588,"props":1023,"children":1024},{"style":601},[1025],{"type":44,"value":1003},{"type":39,"tag":588,"props":1027,"children":1028},{"style":595},[1029],{"type":44,"value":1008},{"type":39,"tag":588,"props":1031,"children":1032},{"style":601},[1033],{"type":44,"value":604},{"type":39,"tag":588,"props":1035,"children":1036},{"style":607},[1037],{"type":44,"value":1038}," actions\u002Fsetup-node@v4\n",{"type":39,"tag":588,"props":1040,"children":1042},{"class":590,"line":1041},27,[1043,1048],{"type":39,"tag":588,"props":1044,"children":1045},{"style":595},[1046],{"type":44,"value":1047},"        with",{"type":39,"tag":588,"props":1049,"children":1050},{"style":601},[1051],{"type":44,"value":625},{"type":39,"tag":588,"props":1053,"children":1055},{"class":590,"line":1054},28,[1056,1061,1065],{"type":39,"tag":588,"props":1057,"children":1058},{"style":595},[1059],{"type":44,"value":1060},"          node-version",{"type":39,"tag":588,"props":1062,"children":1063},{"style":601},[1064],{"type":44,"value":604},{"type":39,"tag":588,"props":1066,"children":1067},{"style":607},[1068],{"type":44,"value":1069}," ${{ inputs.node-version }}\n",{"type":39,"tag":588,"props":1071,"children":1073},{"class":590,"line":1072},29,[1074,1079,1083,1087,1092],{"type":39,"tag":588,"props":1075,"children":1076},{"style":595},[1077],{"type":44,"value":1078},"          cache",{"type":39,"tag":588,"props":1080,"children":1081},{"style":601},[1082],{"type":44,"value":604},{"type":39,"tag":588,"props":1084,"children":1085},{"style":601},[1086],{"type":44,"value":682},{"type":39,"tag":588,"props":1088,"children":1089},{"style":607},[1090],{"type":44,"value":1091},"npm",{"type":39,"tag":588,"props":1093,"children":1094},{"style":601},[1095],{"type":44,"value":692},{"type":39,"tag":588,"props":1097,"children":1099},{"class":590,"line":1098},30,[1100,1104,1109,1113],{"type":39,"tag":588,"props":1101,"children":1102},{"style":601},[1103],{"type":44,"value":1003},{"type":39,"tag":588,"props":1105,"children":1106},{"style":595},[1107],{"type":44,"value":1108}," run",{"type":39,"tag":588,"props":1110,"children":1111},{"style":601},[1112],{"type":44,"value":604},{"type":39,"tag":588,"props":1114,"children":1115},{"style":607},[1116],{"type":44,"value":1117}," npm install\n",{"type":39,"tag":588,"props":1119,"children":1121},{"class":590,"line":1120},31,[1122,1126,1130,1134],{"type":39,"tag":588,"props":1123,"children":1124},{"style":601},[1125],{"type":44,"value":1003},{"type":39,"tag":588,"props":1127,"children":1128},{"style":595},[1129],{"type":44,"value":1108},{"type":39,"tag":588,"props":1131,"children":1132},{"style":601},[1133],{"type":44,"value":604},{"type":39,"tag":588,"props":1135,"children":1136},{"style":607},[1137],{"type":44,"value":1138}," ${{ inputs.build-command }}\n",{"type":39,"tag":53,"props":1140,"children":1142},{"id":1141},"output-file-rules",[1143],{"type":44,"value":1144},"Output file rules",{"type":39,"tag":47,"props":1146,"children":1147},{},[1148,1150,1155,1157,1162],{"type":44,"value":1149},"For ",{"type":39,"tag":249,"props":1151,"children":1152},{},[1153],{"type":44,"value":1154},"every",{"type":44,"value":1156}," reusable workflow produced, create ",{"type":39,"tag":249,"props":1158,"children":1159},{},[1160],{"type":44,"value":1161},"exactly two",{"type":44,"value":1163}," files:",{"type":39,"tag":452,"props":1165,"children":1166},{},[1167,1186],{"type":39,"tag":245,"props":1168,"children":1169},{},[1170,1176,1178,1184],{"type":39,"tag":98,"props":1171,"children":1173},{"className":1172},[],[1174],{"type":44,"value":1175},".github\u002Fworkflows\u002Freusable-\u003Cname>.yml",{"type":44,"value":1177}," — the reusable workflow (",{"type":39,"tag":98,"props":1179,"children":1181},{"className":1180},[],[1182],{"type":44,"value":1183},"workflow_call",{"type":44,"value":1185}," trigger only)",{"type":39,"tag":245,"props":1187,"children":1188},{},[1189,1195],{"type":39,"tag":98,"props":1190,"children":1192},{"className":1191},[],[1193],{"type":44,"value":1194},"docs\u002F\u003Cname>-usage.md",{"type":44,"value":1196}," — the usage documentation (one per workflow, 1:1)",{"type":39,"tag":47,"props":1198,"children":1199},{},[1200,1205,1207,1213,1214,1220,1222,1228,1229,1235,1236,1242,1243,1249,1250,1256],{"type":39,"tag":249,"props":1201,"children":1202},{},[1203],{"type":44,"value":1204},"Never",{"type":44,"value":1206}," create: ",{"type":39,"tag":98,"props":1208,"children":1210},{"className":1209},[],[1211],{"type":44,"value":1212},"README.md",{"type":44,"value":139},{"type":39,"tag":98,"props":1215,"children":1217},{"className":1216},[],[1218],{"type":44,"value":1219},"WORKFLOWS.md",{"type":44,"value":1221},", consolidated docs, scripts (",{"type":39,"tag":98,"props":1223,"children":1225},{"className":1224},[],[1226],{"type":44,"value":1227},".sh",{"type":44,"value":139},{"type":39,"tag":98,"props":1230,"children":1232},{"className":1231},[],[1233],{"type":44,"value":1234},".bat",{"type":44,"value":139},{"type":39,"tag":98,"props":1237,"children":1239},{"className":1238},[],[1240],{"type":44,"value":1241},".ps1",{"type":44,"value":139},{"type":39,"tag":98,"props":1244,"children":1246},{"className":1245},[],[1247],{"type":44,"value":1248},".py",{"type":44,"value":139},{"type":39,"tag":98,"props":1251,"children":1253},{"className":1252},[],[1254],{"type":44,"value":1255},".js",{"type":44,"value":1257},"), custom actions, caller workflows, or workflow templates.",{"type":39,"tag":53,"props":1259,"children":1261},{"id":1260},"usage-documentation-template",[1262],{"type":44,"value":1263},"Usage documentation template",{"type":39,"tag":47,"props":1265,"children":1266},{},[1267,1269,1274],{"type":44,"value":1268},"Each ",{"type":39,"tag":98,"props":1270,"children":1272},{"className":1271},[],[1273],{"type":44,"value":1194},{"type":44,"value":1275}," must contain:",{"type":39,"tag":577,"props":1277,"children":1281},{"className":1278,"code":1279,"language":1280,"meta":582,"style":582},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Reusable [Workflow Name] Usage Guide\n\n## Pattern Analysis Summary\n- **Frequency**: Found in X repositories across Y organizations\n- **Source CI\u002FCD Systems**: [List systems: GitHub Actions, GitLab CI, Jenkins, etc.]\n- **Complexity Reduction**: [Explain how this replaces X previous steps]\n\n## Migration Benefits\n- **From GitLab CI**: [If applicable, before\u002Fafter]\n- **From Jenkins**: [If applicable, before\u002Fafter]\n- **From Azure DevOps**: [If applicable, before\u002Fafter]\n- **Standardization**: [Consistency improvements]\n\n## Basic Usage Example\n```yaml\nname: Example Workflow\non: [push, pull_request]\n\njobs:\n  job-name:\n    uses: .\u002F.github\u002Fworkflows\u002Freusable-[name].yml\n    with:\n      param1: 'value1'\n      param2: 'custom-value'\n```\n\n## Advanced Usage Example\n```yaml\nname: Production Workflow\non:\n  push:\n    branches: [main]\n\njobs:\n  job-name:\n    uses: .\u002F.github\u002Fworkflows\u002Freusable-[name].yml\n    with:\n      param1: 'production-value'\n      param2: 'advanced-setting'\n    secrets:\n      SECRET_NAME: ${{ secrets.SECRET_NAME }}\n```\n\n## Input Parameters Reference\n| Parameter | Description   | Required | Default     | Example    |\n| --------- | ------------- | -------- | ----------- | ---------- |\n| param1    | [Description] | Yes      | -           | `'value'`  |\n| param2    | [Description] | No       | `'default'` | `'custom'` |\n\n## Output Reference\n| Output  | Description   | Type   |\n| ------- | ------------- | ------ |\n| output1 | [Description] | string |\n\n## Migration Examples\n### From GitLab CI\n**Before (.gitlab-ci.yml):**\n```yaml\n[Show original GitLab CI configuration]\n```\n\n**After (GitHub Actions):**\n```yaml\n[Show how to use this reusable workflow instead]\n```\n\n### From Jenkins\n**Before (Jenkinsfile):**\n```groovy\n[Show original Jenkins configuration]\n```\n\n**After (GitHub Actions):**\n```yaml\n[Show how to use this reusable workflow instead]\n```\n\n## Best Practices\n- [Specific best practices for using this workflow]\n- [Security considerations]\n- [Performance tips]\n","markdown",[1282],{"type":39,"tag":98,"props":1283,"children":1284},{"__ignoreMap":582},[1285,1299,1306,1319,1350,1375,1400,1407,1419,1444,1468,1492,1517,1524,1536,1550,1566,1602,1609,1620,1632,1649,1661,1686,1711,1719,1726,1738,1749,1765,1776,1788,1814,1822,1834,1846,1862,1874,1899,1924,1937,1955,1963,1971,1984,2039,2094,2168,2244,2252,2265,2299,2333,2375,2383,2396,2410,2428,2440,2458,2466,2474,2491,2503,2519,2527,2535,2548,2565,2578,2587,2595,2603,2619,2631,2647,2655,2663,2676,2689,2702],{"type":39,"tag":588,"props":1286,"children":1287},{"class":590,"line":591},[1288,1293],{"type":39,"tag":588,"props":1289,"children":1290},{"style":601},[1291],{"type":44,"value":1292},"# ",{"type":39,"tag":588,"props":1294,"children":1296},{"style":1295},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[1297],{"type":44,"value":1298},"Reusable [Workflow Name] Usage Guide\n",{"type":39,"tag":588,"props":1300,"children":1301},{"class":590,"line":613},[1302],{"type":39,"tag":588,"props":1303,"children":1304},{"emptyLinePlaceholder":924},[1305],{"type":44,"value":927},{"type":39,"tag":588,"props":1307,"children":1308},{"class":590,"line":628},[1309,1314],{"type":39,"tag":588,"props":1310,"children":1311},{"style":601},[1312],{"type":44,"value":1313},"## ",{"type":39,"tag":588,"props":1315,"children":1316},{"style":1295},[1317],{"type":44,"value":1318},"Pattern Analysis Summary\n",{"type":39,"tag":588,"props":1320,"children":1321},{"class":590,"line":641},[1322,1327,1333,1339,1344],{"type":39,"tag":588,"props":1323,"children":1324},{"style":601},[1325],{"type":44,"value":1326},"-",{"type":39,"tag":588,"props":1328,"children":1330},{"style":1329},"--shiki-light:#39ADB5;--shiki-light-font-weight:bold;--shiki-default:#89DDFF;--shiki-default-font-weight:bold;--shiki-dark:#89DDFF;--shiki-dark-font-weight:bold",[1331],{"type":44,"value":1332}," **",{"type":39,"tag":588,"props":1334,"children":1336},{"style":1335},"--shiki-light:#E53935;--shiki-light-font-weight:bold;--shiki-default:#F07178;--shiki-default-font-weight:bold;--shiki-dark:#F07178;--shiki-dark-font-weight:bold",[1337],{"type":44,"value":1338},"Frequency",{"type":39,"tag":588,"props":1340,"children":1341},{"style":1329},[1342],{"type":44,"value":1343},"**",{"type":39,"tag":588,"props":1345,"children":1347},{"style":1346},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1348],{"type":44,"value":1349},": Found in X repositories across Y organizations\n",{"type":39,"tag":588,"props":1351,"children":1352},{"class":590,"line":654},[1353,1357,1361,1366,1370],{"type":39,"tag":588,"props":1354,"children":1355},{"style":601},[1356],{"type":44,"value":1326},{"type":39,"tag":588,"props":1358,"children":1359},{"style":1329},[1360],{"type":44,"value":1332},{"type":39,"tag":588,"props":1362,"children":1363},{"style":1335},[1364],{"type":44,"value":1365},"Source CI\u002FCD Systems",{"type":39,"tag":588,"props":1367,"children":1368},{"style":1329},[1369],{"type":44,"value":1343},{"type":39,"tag":588,"props":1371,"children":1372},{"style":1346},[1373],{"type":44,"value":1374},": [List systems: GitHub Actions, GitLab CI, Jenkins, etc.]\n",{"type":39,"tag":588,"props":1376,"children":1377},{"class":590,"line":667},[1378,1382,1386,1391,1395],{"type":39,"tag":588,"props":1379,"children":1380},{"style":601},[1381],{"type":44,"value":1326},{"type":39,"tag":588,"props":1383,"children":1384},{"style":1329},[1385],{"type":44,"value":1332},{"type":39,"tag":588,"props":1387,"children":1388},{"style":1335},[1389],{"type":44,"value":1390},"Complexity Reduction",{"type":39,"tag":588,"props":1392,"children":1393},{"style":1329},[1394],{"type":44,"value":1343},{"type":39,"tag":588,"props":1396,"children":1397},{"style":1346},[1398],{"type":44,"value":1399},": [Explain how this replaces X previous steps]\n",{"type":39,"tag":588,"props":1401,"children":1402},{"class":590,"line":695},[1403],{"type":39,"tag":588,"props":1404,"children":1405},{"emptyLinePlaceholder":924},[1406],{"type":44,"value":927},{"type":39,"tag":588,"props":1408,"children":1409},{"class":590,"line":713},[1410,1414],{"type":39,"tag":588,"props":1411,"children":1412},{"style":601},[1413],{"type":44,"value":1313},{"type":39,"tag":588,"props":1415,"children":1416},{"style":1295},[1417],{"type":44,"value":1418},"Migration Benefits\n",{"type":39,"tag":588,"props":1420,"children":1421},{"class":590,"line":739},[1422,1426,1430,1435,1439],{"type":39,"tag":588,"props":1423,"children":1424},{"style":601},[1425],{"type":44,"value":1326},{"type":39,"tag":588,"props":1427,"children":1428},{"style":1329},[1429],{"type":44,"value":1332},{"type":39,"tag":588,"props":1431,"children":1432},{"style":1335},[1433],{"type":44,"value":1434},"From GitLab CI",{"type":39,"tag":588,"props":1436,"children":1437},{"style":1329},[1438],{"type":44,"value":1343},{"type":39,"tag":588,"props":1440,"children":1441},{"style":1346},[1442],{"type":44,"value":1443},": [If applicable, before\u002Fafter]\n",{"type":39,"tag":588,"props":1445,"children":1446},{"class":590,"line":26},[1447,1451,1455,1460,1464],{"type":39,"tag":588,"props":1448,"children":1449},{"style":601},[1450],{"type":44,"value":1326},{"type":39,"tag":588,"props":1452,"children":1453},{"style":1329},[1454],{"type":44,"value":1332},{"type":39,"tag":588,"props":1456,"children":1457},{"style":1335},[1458],{"type":44,"value":1459},"From Jenkins",{"type":39,"tag":588,"props":1461,"children":1462},{"style":1329},[1463],{"type":44,"value":1343},{"type":39,"tag":588,"props":1465,"children":1466},{"style":1346},[1467],{"type":44,"value":1443},{"type":39,"tag":588,"props":1469,"children":1470},{"class":590,"line":769},[1471,1475,1479,1484,1488],{"type":39,"tag":588,"props":1472,"children":1473},{"style":601},[1474],{"type":44,"value":1326},{"type":39,"tag":588,"props":1476,"children":1477},{"style":1329},[1478],{"type":44,"value":1332},{"type":39,"tag":588,"props":1480,"children":1481},{"style":1335},[1482],{"type":44,"value":1483},"From Azure DevOps",{"type":39,"tag":588,"props":1485,"children":1486},{"style":1329},[1487],{"type":44,"value":1343},{"type":39,"tag":588,"props":1489,"children":1490},{"style":1346},[1491],{"type":44,"value":1443},{"type":39,"tag":588,"props":1493,"children":1494},{"class":590,"line":794},[1495,1499,1503,1508,1512],{"type":39,"tag":588,"props":1496,"children":1497},{"style":601},[1498],{"type":44,"value":1326},{"type":39,"tag":588,"props":1500,"children":1501},{"style":1329},[1502],{"type":44,"value":1332},{"type":39,"tag":588,"props":1504,"children":1505},{"style":1335},[1506],{"type":44,"value":1507},"Standardization",{"type":39,"tag":588,"props":1509,"children":1510},{"style":1329},[1511],{"type":44,"value":1343},{"type":39,"tag":588,"props":1513,"children":1514},{"style":1346},[1515],{"type":44,"value":1516},": [Consistency improvements]\n",{"type":39,"tag":588,"props":1518,"children":1519},{"class":590,"line":810},[1520],{"type":39,"tag":588,"props":1521,"children":1522},{"emptyLinePlaceholder":924},[1523],{"type":44,"value":927},{"type":39,"tag":588,"props":1525,"children":1526},{"class":590,"line":835},[1527,1531],{"type":39,"tag":588,"props":1528,"children":1529},{"style":601},[1530],{"type":44,"value":1313},{"type":39,"tag":588,"props":1532,"children":1533},{"style":1295},[1534],{"type":44,"value":1535},"Basic Usage Example\n",{"type":39,"tag":588,"props":1537,"children":1538},{"class":590,"line":851},[1539,1544],{"type":39,"tag":588,"props":1540,"children":1541},{"style":607},[1542],{"type":44,"value":1543},"```",{"type":39,"tag":588,"props":1545,"children":1547},{"style":1546},"--shiki-light:#90A4AE90;--shiki-default:#EEFFFF90;--shiki-dark:#BABED890",[1548],{"type":44,"value":1549},"yaml\n",{"type":39,"tag":588,"props":1551,"children":1552},{"class":590,"line":864},[1553,1557,1561],{"type":39,"tag":588,"props":1554,"children":1555},{"style":595},[1556],{"type":44,"value":598},{"type":39,"tag":588,"props":1558,"children":1559},{"style":601},[1560],{"type":44,"value":604},{"type":39,"tag":588,"props":1562,"children":1563},{"style":607},[1564],{"type":44,"value":1565}," Example Workflow\n",{"type":39,"tag":588,"props":1567,"children":1568},{"class":590,"line":877},[1569,1573,1577,1582,1587,1592,1597],{"type":39,"tag":588,"props":1570,"children":1571},{"style":617},[1572],{"type":44,"value":620},{"type":39,"tag":588,"props":1574,"children":1575},{"style":601},[1576],{"type":44,"value":604},{"type":39,"tag":588,"props":1578,"children":1579},{"style":601},[1580],{"type":44,"value":1581}," [",{"type":39,"tag":588,"props":1583,"children":1584},{"style":607},[1585],{"type":44,"value":1586},"push",{"type":39,"tag":588,"props":1588,"children":1589},{"style":601},[1590],{"type":44,"value":1591},",",{"type":39,"tag":588,"props":1593,"children":1594},{"style":607},[1595],{"type":44,"value":1596}," pull_request",{"type":39,"tag":588,"props":1598,"children":1599},{"style":601},[1600],{"type":44,"value":1601},"]\n",{"type":39,"tag":588,"props":1603,"children":1604},{"class":590,"line":902},[1605],{"type":39,"tag":588,"props":1606,"children":1607},{"emptyLinePlaceholder":924},[1608],{"type":44,"value":927},{"type":39,"tag":588,"props":1610,"children":1611},{"class":590,"line":920},[1612,1616],{"type":39,"tag":588,"props":1613,"children":1614},{"style":595},[1615],{"type":44,"value":936},{"type":39,"tag":588,"props":1617,"children":1618},{"style":601},[1619],{"type":44,"value":625},{"type":39,"tag":588,"props":1621,"children":1622},{"class":590,"line":930},[1623,1628],{"type":39,"tag":588,"props":1624,"children":1625},{"style":595},[1626],{"type":44,"value":1627},"  job-name",{"type":39,"tag":588,"props":1629,"children":1630},{"style":601},[1631],{"type":44,"value":625},{"type":39,"tag":588,"props":1633,"children":1634},{"class":590,"line":943},[1635,1640,1644],{"type":39,"tag":588,"props":1636,"children":1637},{"style":595},[1638],{"type":44,"value":1639},"    uses",{"type":39,"tag":588,"props":1641,"children":1642},{"style":601},[1643],{"type":44,"value":604},{"type":39,"tag":588,"props":1645,"children":1646},{"style":607},[1647],{"type":44,"value":1648}," .\u002F.github\u002Fworkflows\u002Freusable-[name].yml\n",{"type":39,"tag":588,"props":1650,"children":1651},{"class":590,"line":956},[1652,1657],{"type":39,"tag":588,"props":1653,"children":1654},{"style":595},[1655],{"type":44,"value":1656},"    with",{"type":39,"tag":588,"props":1658,"children":1659},{"style":601},[1660],{"type":44,"value":625},{"type":39,"tag":588,"props":1662,"children":1663},{"class":590,"line":974},[1664,1669,1673,1677,1682],{"type":39,"tag":588,"props":1665,"children":1666},{"style":595},[1667],{"type":44,"value":1668},"      param1",{"type":39,"tag":588,"props":1670,"children":1671},{"style":601},[1672],{"type":44,"value":604},{"type":39,"tag":588,"props":1674,"children":1675},{"style":601},[1676],{"type":44,"value":682},{"type":39,"tag":588,"props":1678,"children":1679},{"style":607},[1680],{"type":44,"value":1681},"value1",{"type":39,"tag":588,"props":1683,"children":1684},{"style":601},[1685],{"type":44,"value":692},{"type":39,"tag":588,"props":1687,"children":1688},{"class":590,"line":987},[1689,1694,1698,1702,1707],{"type":39,"tag":588,"props":1690,"children":1691},{"style":595},[1692],{"type":44,"value":1693},"      param2",{"type":39,"tag":588,"props":1695,"children":1696},{"style":601},[1697],{"type":44,"value":604},{"type":39,"tag":588,"props":1699,"children":1700},{"style":601},[1701],{"type":44,"value":682},{"type":39,"tag":588,"props":1703,"children":1704},{"style":607},[1705],{"type":44,"value":1706},"custom-value",{"type":39,"tag":588,"props":1708,"children":1709},{"style":601},[1710],{"type":44,"value":692},{"type":39,"tag":588,"props":1712,"children":1713},{"class":590,"line":997},[1714],{"type":39,"tag":588,"props":1715,"children":1716},{"style":607},[1717],{"type":44,"value":1718},"```\n",{"type":39,"tag":588,"props":1720,"children":1721},{"class":590,"line":1020},[1722],{"type":39,"tag":588,"props":1723,"children":1724},{"emptyLinePlaceholder":924},[1725],{"type":44,"value":927},{"type":39,"tag":588,"props":1727,"children":1728},{"class":590,"line":1041},[1729,1733],{"type":39,"tag":588,"props":1730,"children":1731},{"style":601},[1732],{"type":44,"value":1313},{"type":39,"tag":588,"props":1734,"children":1735},{"style":1295},[1736],{"type":44,"value":1737},"Advanced Usage Example\n",{"type":39,"tag":588,"props":1739,"children":1740},{"class":590,"line":1054},[1741,1745],{"type":39,"tag":588,"props":1742,"children":1743},{"style":607},[1744],{"type":44,"value":1543},{"type":39,"tag":588,"props":1746,"children":1747},{"style":1546},[1748],{"type":44,"value":1549},{"type":39,"tag":588,"props":1750,"children":1751},{"class":590,"line":1072},[1752,1756,1760],{"type":39,"tag":588,"props":1753,"children":1754},{"style":595},[1755],{"type":44,"value":598},{"type":39,"tag":588,"props":1757,"children":1758},{"style":601},[1759],{"type":44,"value":604},{"type":39,"tag":588,"props":1761,"children":1762},{"style":607},[1763],{"type":44,"value":1764}," Production Workflow\n",{"type":39,"tag":588,"props":1766,"children":1767},{"class":590,"line":1098},[1768,1772],{"type":39,"tag":588,"props":1769,"children":1770},{"style":617},[1771],{"type":44,"value":620},{"type":39,"tag":588,"props":1773,"children":1774},{"style":601},[1775],{"type":44,"value":625},{"type":39,"tag":588,"props":1777,"children":1778},{"class":590,"line":1120},[1779,1784],{"type":39,"tag":588,"props":1780,"children":1781},{"style":595},[1782],{"type":44,"value":1783},"  push",{"type":39,"tag":588,"props":1785,"children":1786},{"style":601},[1787],{"type":44,"value":625},{"type":39,"tag":588,"props":1789,"children":1791},{"class":590,"line":1790},32,[1792,1797,1801,1805,1810],{"type":39,"tag":588,"props":1793,"children":1794},{"style":595},[1795],{"type":44,"value":1796},"    branches",{"type":39,"tag":588,"props":1798,"children":1799},{"style":601},[1800],{"type":44,"value":604},{"type":39,"tag":588,"props":1802,"children":1803},{"style":601},[1804],{"type":44,"value":1581},{"type":39,"tag":588,"props":1806,"children":1807},{"style":607},[1808],{"type":44,"value":1809},"main",{"type":39,"tag":588,"props":1811,"children":1812},{"style":601},[1813],{"type":44,"value":1601},{"type":39,"tag":588,"props":1815,"children":1817},{"class":590,"line":1816},33,[1818],{"type":39,"tag":588,"props":1819,"children":1820},{"emptyLinePlaceholder":924},[1821],{"type":44,"value":927},{"type":39,"tag":588,"props":1823,"children":1825},{"class":590,"line":1824},34,[1826,1830],{"type":39,"tag":588,"props":1827,"children":1828},{"style":595},[1829],{"type":44,"value":936},{"type":39,"tag":588,"props":1831,"children":1832},{"style":601},[1833],{"type":44,"value":625},{"type":39,"tag":588,"props":1835,"children":1837},{"class":590,"line":1836},35,[1838,1842],{"type":39,"tag":588,"props":1839,"children":1840},{"style":595},[1841],{"type":44,"value":1627},{"type":39,"tag":588,"props":1843,"children":1844},{"style":601},[1845],{"type":44,"value":625},{"type":39,"tag":588,"props":1847,"children":1849},{"class":590,"line":1848},36,[1850,1854,1858],{"type":39,"tag":588,"props":1851,"children":1852},{"style":595},[1853],{"type":44,"value":1639},{"type":39,"tag":588,"props":1855,"children":1856},{"style":601},[1857],{"type":44,"value":604},{"type":39,"tag":588,"props":1859,"children":1860},{"style":607},[1861],{"type":44,"value":1648},{"type":39,"tag":588,"props":1863,"children":1865},{"class":590,"line":1864},37,[1866,1870],{"type":39,"tag":588,"props":1867,"children":1868},{"style":595},[1869],{"type":44,"value":1656},{"type":39,"tag":588,"props":1871,"children":1872},{"style":601},[1873],{"type":44,"value":625},{"type":39,"tag":588,"props":1875,"children":1877},{"class":590,"line":1876},38,[1878,1882,1886,1890,1895],{"type":39,"tag":588,"props":1879,"children":1880},{"style":595},[1881],{"type":44,"value":1668},{"type":39,"tag":588,"props":1883,"children":1884},{"style":601},[1885],{"type":44,"value":604},{"type":39,"tag":588,"props":1887,"children":1888},{"style":601},[1889],{"type":44,"value":682},{"type":39,"tag":588,"props":1891,"children":1892},{"style":607},[1893],{"type":44,"value":1894},"production-value",{"type":39,"tag":588,"props":1896,"children":1897},{"style":601},[1898],{"type":44,"value":692},{"type":39,"tag":588,"props":1900,"children":1902},{"class":590,"line":1901},39,[1903,1907,1911,1915,1920],{"type":39,"tag":588,"props":1904,"children":1905},{"style":595},[1906],{"type":44,"value":1693},{"type":39,"tag":588,"props":1908,"children":1909},{"style":601},[1910],{"type":44,"value":604},{"type":39,"tag":588,"props":1912,"children":1913},{"style":601},[1914],{"type":44,"value":682},{"type":39,"tag":588,"props":1916,"children":1917},{"style":607},[1918],{"type":44,"value":1919},"advanced-setting",{"type":39,"tag":588,"props":1921,"children":1922},{"style":601},[1923],{"type":44,"value":692},{"type":39,"tag":588,"props":1925,"children":1927},{"class":590,"line":1926},40,[1928,1933],{"type":39,"tag":588,"props":1929,"children":1930},{"style":595},[1931],{"type":44,"value":1932},"    secrets",{"type":39,"tag":588,"props":1934,"children":1935},{"style":601},[1936],{"type":44,"value":625},{"type":39,"tag":588,"props":1938,"children":1940},{"class":590,"line":1939},41,[1941,1946,1950],{"type":39,"tag":588,"props":1942,"children":1943},{"style":595},[1944],{"type":44,"value":1945},"      SECRET_NAME",{"type":39,"tag":588,"props":1947,"children":1948},{"style":601},[1949],{"type":44,"value":604},{"type":39,"tag":588,"props":1951,"children":1952},{"style":607},[1953],{"type":44,"value":1954}," ${{ secrets.SECRET_NAME }}\n",{"type":39,"tag":588,"props":1956,"children":1958},{"class":590,"line":1957},42,[1959],{"type":39,"tag":588,"props":1960,"children":1961},{"style":607},[1962],{"type":44,"value":1718},{"type":39,"tag":588,"props":1964,"children":1966},{"class":590,"line":1965},43,[1967],{"type":39,"tag":588,"props":1968,"children":1969},{"emptyLinePlaceholder":924},[1970],{"type":44,"value":927},{"type":39,"tag":588,"props":1972,"children":1974},{"class":590,"line":1973},44,[1975,1979],{"type":39,"tag":588,"props":1976,"children":1977},{"style":601},[1978],{"type":44,"value":1313},{"type":39,"tag":588,"props":1980,"children":1981},{"style":1295},[1982],{"type":44,"value":1983},"Input Parameters Reference\n",{"type":39,"tag":588,"props":1985,"children":1987},{"class":590,"line":1986},45,[1988,1993,1998,2002,2007,2011,2016,2020,2025,2029,2034],{"type":39,"tag":588,"props":1989,"children":1990},{"style":601},[1991],{"type":44,"value":1992},"|",{"type":39,"tag":588,"props":1994,"children":1995},{"style":1346},[1996],{"type":44,"value":1997}," Parameter ",{"type":39,"tag":588,"props":1999,"children":2000},{"style":601},[2001],{"type":44,"value":1992},{"type":39,"tag":588,"props":2003,"children":2004},{"style":1346},[2005],{"type":44,"value":2006}," Description   ",{"type":39,"tag":588,"props":2008,"children":2009},{"style":601},[2010],{"type":44,"value":1992},{"type":39,"tag":588,"props":2012,"children":2013},{"style":1346},[2014],{"type":44,"value":2015}," Required ",{"type":39,"tag":588,"props":2017,"children":2018},{"style":601},[2019],{"type":44,"value":1992},{"type":39,"tag":588,"props":2021,"children":2022},{"style":1346},[2023],{"type":44,"value":2024}," Default     ",{"type":39,"tag":588,"props":2026,"children":2027},{"style":601},[2028],{"type":44,"value":1992},{"type":39,"tag":588,"props":2030,"children":2031},{"style":1346},[2032],{"type":44,"value":2033}," Example    ",{"type":39,"tag":588,"props":2035,"children":2036},{"style":601},[2037],{"type":44,"value":2038},"|\n",{"type":39,"tag":588,"props":2040,"children":2042},{"class":590,"line":2041},46,[2043,2047,2052,2057,2062,2066,2071,2075,2080,2084,2089],{"type":39,"tag":588,"props":2044,"children":2045},{"style":601},[2046],{"type":44,"value":1992},{"type":39,"tag":588,"props":2048,"children":2049},{"style":601},[2050],{"type":44,"value":2051}," ---------",{"type":39,"tag":588,"props":2053,"children":2054},{"style":601},[2055],{"type":44,"value":2056}," |",{"type":39,"tag":588,"props":2058,"children":2059},{"style":601},[2060],{"type":44,"value":2061}," -------------",{"type":39,"tag":588,"props":2063,"children":2064},{"style":601},[2065],{"type":44,"value":2056},{"type":39,"tag":588,"props":2067,"children":2068},{"style":601},[2069],{"type":44,"value":2070}," --------",{"type":39,"tag":588,"props":2072,"children":2073},{"style":601},[2074],{"type":44,"value":2056},{"type":39,"tag":588,"props":2076,"children":2077},{"style":601},[2078],{"type":44,"value":2079}," -----------",{"type":39,"tag":588,"props":2081,"children":2082},{"style":601},[2083],{"type":44,"value":2056},{"type":39,"tag":588,"props":2085,"children":2086},{"style":601},[2087],{"type":44,"value":2088}," ----------",{"type":39,"tag":588,"props":2090,"children":2091},{"style":601},[2092],{"type":44,"value":2093}," |\n",{"type":39,"tag":588,"props":2095,"children":2097},{"class":590,"line":2096},47,[2098,2102,2107,2111,2115,2120,2125,2129,2134,2138,2143,2148,2153,2158,2163],{"type":39,"tag":588,"props":2099,"children":2100},{"style":601},[2101],{"type":44,"value":1992},{"type":39,"tag":588,"props":2103,"children":2104},{"style":1346},[2105],{"type":44,"value":2106}," param1    ",{"type":39,"tag":588,"props":2108,"children":2109},{"style":601},[2110],{"type":44,"value":1992},{"type":39,"tag":588,"props":2112,"children":2113},{"style":601},[2114],{"type":44,"value":1581},{"type":39,"tag":588,"props":2116,"children":2117},{"style":607},[2118],{"type":44,"value":2119},"Description",{"type":39,"tag":588,"props":2121,"children":2122},{"style":601},[2123],{"type":44,"value":2124},"]",{"type":39,"tag":588,"props":2126,"children":2127},{"style":601},[2128],{"type":44,"value":2056},{"type":39,"tag":588,"props":2130,"children":2131},{"style":1346},[2132],{"type":44,"value":2133}," Yes      ",{"type":39,"tag":588,"props":2135,"children":2136},{"style":601},[2137],{"type":44,"value":1992},{"type":39,"tag":588,"props":2139,"children":2140},{"style":601},[2141],{"type":44,"value":2142}," -",{"type":39,"tag":588,"props":2144,"children":2145},{"style":601},[2146],{"type":44,"value":2147},"           |",{"type":39,"tag":588,"props":2149,"children":2150},{"style":601},[2151],{"type":44,"value":2152}," `",{"type":39,"tag":588,"props":2154,"children":2155},{"style":607},[2156],{"type":44,"value":2157},"'value'",{"type":39,"tag":588,"props":2159,"children":2160},{"style":601},[2161],{"type":44,"value":2162},"`",{"type":39,"tag":588,"props":2164,"children":2165},{"style":601},[2166],{"type":44,"value":2167},"  |\n",{"type":39,"tag":588,"props":2169,"children":2171},{"class":590,"line":2170},48,[2172,2176,2181,2185,2189,2193,2197,2201,2206,2210,2214,2219,2223,2227,2231,2236,2240],{"type":39,"tag":588,"props":2173,"children":2174},{"style":601},[2175],{"type":44,"value":1992},{"type":39,"tag":588,"props":2177,"children":2178},{"style":1346},[2179],{"type":44,"value":2180}," param2    ",{"type":39,"tag":588,"props":2182,"children":2183},{"style":601},[2184],{"type":44,"value":1992},{"type":39,"tag":588,"props":2186,"children":2187},{"style":601},[2188],{"type":44,"value":1581},{"type":39,"tag":588,"props":2190,"children":2191},{"style":607},[2192],{"type":44,"value":2119},{"type":39,"tag":588,"props":2194,"children":2195},{"style":601},[2196],{"type":44,"value":2124},{"type":39,"tag":588,"props":2198,"children":2199},{"style":601},[2200],{"type":44,"value":2056},{"type":39,"tag":588,"props":2202,"children":2203},{"style":1346},[2204],{"type":44,"value":2205}," No       ",{"type":39,"tag":588,"props":2207,"children":2208},{"style":601},[2209],{"type":44,"value":1992},{"type":39,"tag":588,"props":2211,"children":2212},{"style":601},[2213],{"type":44,"value":2152},{"type":39,"tag":588,"props":2215,"children":2216},{"style":607},[2217],{"type":44,"value":2218},"'default'",{"type":39,"tag":588,"props":2220,"children":2221},{"style":601},[2222],{"type":44,"value":2162},{"type":39,"tag":588,"props":2224,"children":2225},{"style":601},[2226],{"type":44,"value":2056},{"type":39,"tag":588,"props":2228,"children":2229},{"style":601},[2230],{"type":44,"value":2152},{"type":39,"tag":588,"props":2232,"children":2233},{"style":607},[2234],{"type":44,"value":2235},"'custom'",{"type":39,"tag":588,"props":2237,"children":2238},{"style":601},[2239],{"type":44,"value":2162},{"type":39,"tag":588,"props":2241,"children":2242},{"style":601},[2243],{"type":44,"value":2093},{"type":39,"tag":588,"props":2245,"children":2247},{"class":590,"line":2246},49,[2248],{"type":39,"tag":588,"props":2249,"children":2250},{"emptyLinePlaceholder":924},[2251],{"type":44,"value":927},{"type":39,"tag":588,"props":2253,"children":2255},{"class":590,"line":2254},50,[2256,2260],{"type":39,"tag":588,"props":2257,"children":2258},{"style":601},[2259],{"type":44,"value":1313},{"type":39,"tag":588,"props":2261,"children":2262},{"style":1295},[2263],{"type":44,"value":2264},"Output Reference\n",{"type":39,"tag":588,"props":2266,"children":2268},{"class":590,"line":2267},51,[2269,2273,2278,2282,2286,2290,2295],{"type":39,"tag":588,"props":2270,"children":2271},{"style":601},[2272],{"type":44,"value":1992},{"type":39,"tag":588,"props":2274,"children":2275},{"style":1346},[2276],{"type":44,"value":2277}," Output  ",{"type":39,"tag":588,"props":2279,"children":2280},{"style":601},[2281],{"type":44,"value":1992},{"type":39,"tag":588,"props":2283,"children":2284},{"style":1346},[2285],{"type":44,"value":2006},{"type":39,"tag":588,"props":2287,"children":2288},{"style":601},[2289],{"type":44,"value":1992},{"type":39,"tag":588,"props":2291,"children":2292},{"style":1346},[2293],{"type":44,"value":2294}," Type   ",{"type":39,"tag":588,"props":2296,"children":2297},{"style":601},[2298],{"type":44,"value":2038},{"type":39,"tag":588,"props":2300,"children":2302},{"class":590,"line":2301},52,[2303,2307,2312,2316,2320,2324,2329],{"type":39,"tag":588,"props":2304,"children":2305},{"style":601},[2306],{"type":44,"value":1992},{"type":39,"tag":588,"props":2308,"children":2309},{"style":601},[2310],{"type":44,"value":2311}," -------",{"type":39,"tag":588,"props":2313,"children":2314},{"style":601},[2315],{"type":44,"value":2056},{"type":39,"tag":588,"props":2317,"children":2318},{"style":601},[2319],{"type":44,"value":2061},{"type":39,"tag":588,"props":2321,"children":2322},{"style":601},[2323],{"type":44,"value":2056},{"type":39,"tag":588,"props":2325,"children":2326},{"style":601},[2327],{"type":44,"value":2328}," ------",{"type":39,"tag":588,"props":2330,"children":2331},{"style":601},[2332],{"type":44,"value":2093},{"type":39,"tag":588,"props":2334,"children":2336},{"class":590,"line":2335},53,[2337,2341,2346,2350,2354,2358,2362,2366,2371],{"type":39,"tag":588,"props":2338,"children":2339},{"style":601},[2340],{"type":44,"value":1992},{"type":39,"tag":588,"props":2342,"children":2343},{"style":1346},[2344],{"type":44,"value":2345}," output1 ",{"type":39,"tag":588,"props":2347,"children":2348},{"style":601},[2349],{"type":44,"value":1992},{"type":39,"tag":588,"props":2351,"children":2352},{"style":601},[2353],{"type":44,"value":1581},{"type":39,"tag":588,"props":2355,"children":2356},{"style":607},[2357],{"type":44,"value":2119},{"type":39,"tag":588,"props":2359,"children":2360},{"style":601},[2361],{"type":44,"value":2124},{"type":39,"tag":588,"props":2363,"children":2364},{"style":601},[2365],{"type":44,"value":2056},{"type":39,"tag":588,"props":2367,"children":2368},{"style":1346},[2369],{"type":44,"value":2370}," string ",{"type":39,"tag":588,"props":2372,"children":2373},{"style":601},[2374],{"type":44,"value":2038},{"type":39,"tag":588,"props":2376,"children":2378},{"class":590,"line":2377},54,[2379],{"type":39,"tag":588,"props":2380,"children":2381},{"emptyLinePlaceholder":924},[2382],{"type":44,"value":927},{"type":39,"tag":588,"props":2384,"children":2386},{"class":590,"line":2385},55,[2387,2391],{"type":39,"tag":588,"props":2388,"children":2389},{"style":601},[2390],{"type":44,"value":1313},{"type":39,"tag":588,"props":2392,"children":2393},{"style":1295},[2394],{"type":44,"value":2395},"Migration Examples\n",{"type":39,"tag":588,"props":2397,"children":2399},{"class":590,"line":2398},56,[2400,2405],{"type":39,"tag":588,"props":2401,"children":2402},{"style":601},[2403],{"type":44,"value":2404},"### ",{"type":39,"tag":588,"props":2406,"children":2407},{"style":1295},[2408],{"type":44,"value":2409},"From GitLab CI\n",{"type":39,"tag":588,"props":2411,"children":2413},{"class":590,"line":2412},57,[2414,2418,2423],{"type":39,"tag":588,"props":2415,"children":2416},{"style":1329},[2417],{"type":44,"value":1343},{"type":39,"tag":588,"props":2419,"children":2420},{"style":1335},[2421],{"type":44,"value":2422},"Before (.gitlab-ci.yml):",{"type":39,"tag":588,"props":2424,"children":2425},{"style":1329},[2426],{"type":44,"value":2427},"**\n",{"type":39,"tag":588,"props":2429,"children":2431},{"class":590,"line":2430},58,[2432,2436],{"type":39,"tag":588,"props":2433,"children":2434},{"style":607},[2435],{"type":44,"value":1543},{"type":39,"tag":588,"props":2437,"children":2438},{"style":1546},[2439],{"type":44,"value":1549},{"type":39,"tag":588,"props":2441,"children":2443},{"class":590,"line":2442},59,[2444,2449,2454],{"type":39,"tag":588,"props":2445,"children":2446},{"style":601},[2447],{"type":44,"value":2448},"[",{"type":39,"tag":588,"props":2450,"children":2451},{"style":607},[2452],{"type":44,"value":2453},"Show original GitLab CI configuration",{"type":39,"tag":588,"props":2455,"children":2456},{"style":601},[2457],{"type":44,"value":1601},{"type":39,"tag":588,"props":2459,"children":2461},{"class":590,"line":2460},60,[2462],{"type":39,"tag":588,"props":2463,"children":2464},{"style":607},[2465],{"type":44,"value":1718},{"type":39,"tag":588,"props":2467,"children":2469},{"class":590,"line":2468},61,[2470],{"type":39,"tag":588,"props":2471,"children":2472},{"emptyLinePlaceholder":924},[2473],{"type":44,"value":927},{"type":39,"tag":588,"props":2475,"children":2477},{"class":590,"line":2476},62,[2478,2482,2487],{"type":39,"tag":588,"props":2479,"children":2480},{"style":1329},[2481],{"type":44,"value":1343},{"type":39,"tag":588,"props":2483,"children":2484},{"style":1335},[2485],{"type":44,"value":2486},"After (GitHub Actions):",{"type":39,"tag":588,"props":2488,"children":2489},{"style":1329},[2490],{"type":44,"value":2427},{"type":39,"tag":588,"props":2492,"children":2494},{"class":590,"line":2493},63,[2495,2499],{"type":39,"tag":588,"props":2496,"children":2497},{"style":607},[2498],{"type":44,"value":1543},{"type":39,"tag":588,"props":2500,"children":2501},{"style":1546},[2502],{"type":44,"value":1549},{"type":39,"tag":588,"props":2504,"children":2505},{"class":590,"line":22},[2506,2510,2515],{"type":39,"tag":588,"props":2507,"children":2508},{"style":601},[2509],{"type":44,"value":2448},{"type":39,"tag":588,"props":2511,"children":2512},{"style":607},[2513],{"type":44,"value":2514},"Show how to use this reusable workflow instead",{"type":39,"tag":588,"props":2516,"children":2517},{"style":601},[2518],{"type":44,"value":1601},{"type":39,"tag":588,"props":2520,"children":2522},{"class":590,"line":2521},65,[2523],{"type":39,"tag":588,"props":2524,"children":2525},{"style":607},[2526],{"type":44,"value":1718},{"type":39,"tag":588,"props":2528,"children":2530},{"class":590,"line":2529},66,[2531],{"type":39,"tag":588,"props":2532,"children":2533},{"emptyLinePlaceholder":924},[2534],{"type":44,"value":927},{"type":39,"tag":588,"props":2536,"children":2538},{"class":590,"line":2537},67,[2539,2543],{"type":39,"tag":588,"props":2540,"children":2541},{"style":601},[2542],{"type":44,"value":2404},{"type":39,"tag":588,"props":2544,"children":2545},{"style":1295},[2546],{"type":44,"value":2547},"From Jenkins\n",{"type":39,"tag":588,"props":2549,"children":2551},{"class":590,"line":2550},68,[2552,2556,2561],{"type":39,"tag":588,"props":2553,"children":2554},{"style":1329},[2555],{"type":44,"value":1343},{"type":39,"tag":588,"props":2557,"children":2558},{"style":1335},[2559],{"type":44,"value":2560},"Before (Jenkinsfile):",{"type":39,"tag":588,"props":2562,"children":2563},{"style":1329},[2564],{"type":44,"value":2427},{"type":39,"tag":588,"props":2566,"children":2568},{"class":590,"line":2567},69,[2569,2573],{"type":39,"tag":588,"props":2570,"children":2571},{"style":607},[2572],{"type":44,"value":1543},{"type":39,"tag":588,"props":2574,"children":2575},{"style":1546},[2576],{"type":44,"value":2577},"groovy\n",{"type":39,"tag":588,"props":2579,"children":2581},{"class":590,"line":2580},70,[2582],{"type":39,"tag":588,"props":2583,"children":2584},{"style":1546},[2585],{"type":44,"value":2586},"[Show original Jenkins configuration]\n",{"type":39,"tag":588,"props":2588,"children":2590},{"class":590,"line":2589},71,[2591],{"type":39,"tag":588,"props":2592,"children":2593},{"style":607},[2594],{"type":44,"value":1718},{"type":39,"tag":588,"props":2596,"children":2598},{"class":590,"line":2597},72,[2599],{"type":39,"tag":588,"props":2600,"children":2601},{"emptyLinePlaceholder":924},[2602],{"type":44,"value":927},{"type":39,"tag":588,"props":2604,"children":2606},{"class":590,"line":2605},73,[2607,2611,2615],{"type":39,"tag":588,"props":2608,"children":2609},{"style":1329},[2610],{"type":44,"value":1343},{"type":39,"tag":588,"props":2612,"children":2613},{"style":1335},[2614],{"type":44,"value":2486},{"type":39,"tag":588,"props":2616,"children":2617},{"style":1329},[2618],{"type":44,"value":2427},{"type":39,"tag":588,"props":2620,"children":2622},{"class":590,"line":2621},74,[2623,2627],{"type":39,"tag":588,"props":2624,"children":2625},{"style":607},[2626],{"type":44,"value":1543},{"type":39,"tag":588,"props":2628,"children":2629},{"style":1546},[2630],{"type":44,"value":1549},{"type":39,"tag":588,"props":2632,"children":2634},{"class":590,"line":2633},75,[2635,2639,2643],{"type":39,"tag":588,"props":2636,"children":2637},{"style":601},[2638],{"type":44,"value":2448},{"type":39,"tag":588,"props":2640,"children":2641},{"style":607},[2642],{"type":44,"value":2514},{"type":39,"tag":588,"props":2644,"children":2645},{"style":601},[2646],{"type":44,"value":1601},{"type":39,"tag":588,"props":2648,"children":2650},{"class":590,"line":2649},76,[2651],{"type":39,"tag":588,"props":2652,"children":2653},{"style":607},[2654],{"type":44,"value":1718},{"type":39,"tag":588,"props":2656,"children":2658},{"class":590,"line":2657},77,[2659],{"type":39,"tag":588,"props":2660,"children":2661},{"emptyLinePlaceholder":924},[2662],{"type":44,"value":927},{"type":39,"tag":588,"props":2664,"children":2666},{"class":590,"line":2665},78,[2667,2671],{"type":39,"tag":588,"props":2668,"children":2669},{"style":601},[2670],{"type":44,"value":1313},{"type":39,"tag":588,"props":2672,"children":2673},{"style":1295},[2674],{"type":44,"value":2675},"Best Practices\n",{"type":39,"tag":588,"props":2677,"children":2679},{"class":590,"line":2678},79,[2680,2684],{"type":39,"tag":588,"props":2681,"children":2682},{"style":601},[2683],{"type":44,"value":1326},{"type":39,"tag":588,"props":2685,"children":2686},{"style":1346},[2687],{"type":44,"value":2688}," [Specific best practices for using this workflow]\n",{"type":39,"tag":588,"props":2690,"children":2692},{"class":590,"line":2691},80,[2693,2697],{"type":39,"tag":588,"props":2694,"children":2695},{"style":601},[2696],{"type":44,"value":1326},{"type":39,"tag":588,"props":2698,"children":2699},{"style":1346},[2700],{"type":44,"value":2701}," [Security considerations]\n",{"type":39,"tag":588,"props":2703,"children":2705},{"class":590,"line":2704},81,[2706,2710],{"type":39,"tag":588,"props":2707,"children":2708},{"style":601},[2709],{"type":44,"value":1326},{"type":39,"tag":588,"props":2711,"children":2712},{"style":1346},[2713],{"type":44,"value":2714}," [Performance tips]\n",{"type":39,"tag":53,"props":2716,"children":2718},{"id":2717},"quality-and-security-requirements",[2719],{"type":44,"value":2720},"Quality and security requirements",{"type":39,"tag":241,"props":2722,"children":2723},{},[2724,2761,2779,2796,2810],{"type":39,"tag":245,"props":2725,"children":2726},{},[2727,2732,2734,2740,2741,2747,2748,2754,2755],{"type":39,"tag":249,"props":2728,"children":2729},{},[2730],{"type":44,"value":2731},"Verified publishers only",{"type":44,"value":2733},": prioritize ",{"type":39,"tag":98,"props":2735,"children":2737},{"className":2736},[],[2738],{"type":44,"value":2739},"actions\u002F*",{"type":44,"value":139},{"type":39,"tag":98,"props":2742,"children":2744},{"className":2743},[],[2745],{"type":44,"value":2746},"azure\u002F*",{"type":44,"value":139},{"type":39,"tag":98,"props":2749,"children":2751},{"className":2750},[],[2752],{"type":44,"value":2753},"aws-actions\u002F*",{"type":44,"value":139},{"type":39,"tag":98,"props":2756,"children":2758},{"className":2757},[],[2759],{"type":44,"value":2760},"google-github-actions\u002F*",{"type":39,"tag":245,"props":2762,"children":2763},{},[2764,2769,2771,2777],{"type":39,"tag":249,"props":2765,"children":2766},{},[2767],{"type":44,"value":2768},"Latest stable versions",{"type":44,"value":2770}," of all actions, pinned to commit SHA (see ",{"type":39,"tag":98,"props":2772,"children":2774},{"className":2773},[],[2775],{"type":44,"value":2776},"migration-core",{"type":44,"value":2778}," guardrails)",{"type":39,"tag":245,"props":2780,"children":2781},{},[2782,2787,2789,2794],{"type":39,"tag":249,"props":2783,"children":2784},{},[2785],{"type":44,"value":2786},"Trigger",{"type":44,"value":2788},": ",{"type":39,"tag":98,"props":2790,"children":2792},{"className":2791},[],[2793],{"type":44,"value":1183},{"type":44,"value":2795}," only",{"type":39,"tag":245,"props":2797,"children":2798},{},[2799,2804,2805],{"type":39,"tag":249,"props":2800,"children":2801},{},[2802],{"type":44,"value":2803},"Location",{"type":44,"value":2788},{"type":39,"tag":98,"props":2806,"children":2808},{"className":2807},[],[2809],{"type":44,"value":1175},{"type":39,"tag":245,"props":2811,"children":2812},{},[2813,2818,2820],{"type":39,"tag":249,"props":2814,"children":2815},{},[2816],{"type":44,"value":2817},"Validation",{"type":44,"value":2819},": every workflow must pass ",{"type":39,"tag":98,"props":2821,"children":2823},{"className":2822},[],[2824],{"type":44,"value":2825},"actionlint",{"type":39,"tag":2827,"props":2828,"children":2829},"style",{},[2830],{"type":44,"value":2831},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2833,"total":1986},[2834,2858,2876,2892,2906,2922,2936,2948,2960,2972,2988,3000],{"slug":2835,"name":2835,"fn":2836,"description":2837,"org":2838,"tags":2839,"stars":2855,"repoUrl":2856,"updatedAt":2857},"qdrant-horizontal-scaling","guide Qdrant horizontal scaling decisions","Diagnoses and guides Qdrant horizontal scaling decisions. Use when someone asks 'vertical or horizontal?', 'how many nodes?', 'how many shards?', 'how to add nodes', 'resharding', 'data doesn't fit', or 'need more capacity'. Also use when data growth outpaces current deployment.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2840,2843,2846,2849,2852],{"name":2841,"slug":2842,"type":15},"AI Infrastructure","ai-infrastructure",{"name":2844,"slug":2845,"type":15},"Architecture","architecture",{"name":2847,"slug":2848,"type":15},"Capacity Planning","capacity-planning",{"name":2850,"slug":2851,"type":15},"Database","database",{"name":2853,"slug":2854,"type":15},"Qdrant","qdrant",36978,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot","2026-04-18T04:46:16.349561",{"slug":2859,"name":2859,"fn":2860,"description":2861,"org":2862,"tags":2863,"stars":2855,"repoUrl":2856,"updatedAt":2875},"qdrant-indexing-performance-optimization","optimize Qdrant indexing performance","Diagnoses and fixes slow Qdrant indexing and data ingestion. Use when someone reports 'uploads are slow', 'indexing takes forever', 'optimizer is stuck', 'HNSW build time too long', or 'data uploaded but search is bad'. Also use when optimizer status shows errors, segments won't merge, or indexing threshold questions arise.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2864,2867,2868,2871,2874],{"name":2865,"slug":2866,"type":15},"Data Engineering","data-engineering",{"name":2850,"slug":2851,"type":15},{"name":2869,"slug":2870,"type":15},"ETL","etl",{"name":2872,"slug":2873,"type":15},"Performance","performance",{"name":2853,"slug":2854,"type":15},"2026-04-18T04:46:02.766357",{"slug":2877,"name":2877,"fn":2878,"description":2879,"org":2880,"tags":2881,"stars":2855,"repoUrl":2856,"updatedAt":2891},"qdrant-memory-usage-optimization","optimize Qdrant memory usage","Diagnoses and reduces Qdrant memory usage. Use when someone reports 'memory too high', 'RAM keeps growing', 'node crashed', 'out of memory', 'memory leak', or asks 'why is memory usage so high?', 'how to reduce RAM?'. Also use when memory doesn't match calculations, quantization didn't help, or nodes crash during recovery.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2882,2885,2886,2889,2890],{"name":2883,"slug":2884,"type":15},"Cost Optimization","cost-optimization",{"name":2850,"slug":2851,"type":15},{"name":2887,"slug":2888,"type":15},"Observability","observability",{"name":2872,"slug":2873,"type":15},{"name":2853,"slug":2854,"type":15},"2026-04-18T04:46:01.525023",{"slug":2893,"name":2893,"fn":2894,"description":2895,"org":2896,"tags":2897,"stars":2855,"repoUrl":2856,"updatedAt":2905},"qdrant-minimize-latency","minimize Qdrant query latency","Guides Qdrant query latency optimization. Use when someone asks 'search is slow', 'how to reduce latency', 'p99 is too high', 'tail latency', 'single query too slow', 'how to make search faster', or 'latency spikes'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2898,2899,2900,2901,2902],{"name":2844,"slug":2845,"type":15},{"name":2850,"slug":2851,"type":15},{"name":2872,"slug":2873,"type":15},{"name":2853,"slug":2854,"type":15},{"name":2903,"slug":2904,"type":15},"Search","search","2026-04-18T04:46:10.126667",{"slug":2907,"name":2907,"fn":2908,"description":2909,"org":2910,"tags":2911,"stars":2855,"repoUrl":2856,"updatedAt":2921},"qdrant-monitoring-debugging","debug Qdrant production issues with metrics","Diagnoses Qdrant production issues using metrics and observability tools. Use when someone reports 'optimizer stuck', 'indexing too slow', 'memory too high', 'OOM crash', 'queries are slow', 'latency spike', or 'search was fast now it's slow'. Also use when performance degrades without obvious config changes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2912,2915,2918,2919,2920],{"name":2913,"slug":2914,"type":15},"Debugging","debugging",{"name":2916,"slug":2917,"type":15},"Monitoring","monitoring",{"name":2887,"slug":2888,"type":15},{"name":2872,"slug":2873,"type":15},{"name":2853,"slug":2854,"type":15},"2026-04-18T04:46:06.450784",{"slug":2923,"name":2923,"fn":2924,"description":2925,"org":2926,"tags":2927,"stars":2855,"repoUrl":2856,"updatedAt":2935},"qdrant-monitoring-setup","set up Qdrant monitoring and alerting","Guides Qdrant monitoring setup including Prometheus scraping, health probes, Hybrid Cloud metrics, alerting, and log centralization. Use when someone asks 'how to set up monitoring', 'Prometheus config', 'Grafana dashboard', 'health check endpoints', 'how to scrape Hybrid Cloud', 'what alerts to set', 'how to centralize logs', or 'audit logging'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2928,2929,2930,2931,2932],{"name":2841,"slug":2842,"type":15},{"name":2916,"slug":2917,"type":15},{"name":2887,"slug":2888,"type":15},{"name":2853,"slug":2854,"type":15},{"name":2933,"slug":2934,"type":15},"SRE","sre","2026-04-18T04:46:05.217192",{"slug":2937,"name":2937,"fn":2938,"description":2939,"org":2940,"tags":2941,"stars":2855,"repoUrl":2856,"updatedAt":2947},"qdrant-scaling-data-volume","scale Qdrant data volume","Guides Qdrant data volume scaling decisions. Use when someone asks 'data doesn't fit on one node', 'too much data', 'need more storage', 'vertical or horizontal scaling', 'tenant scaling', 'time window rotation', or 'data growth exceeds capacity'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2942,2943,2944,2945,2946],{"name":2841,"slug":2842,"type":15},{"name":2844,"slug":2845,"type":15},{"name":2847,"slug":2848,"type":15},{"name":2850,"slug":2851,"type":15},{"name":2853,"slug":2854,"type":15},"2026-04-18T04:46:07.684464",{"slug":2949,"name":2949,"fn":2950,"description":2951,"org":2952,"tags":2953,"stars":2855,"repoUrl":2856,"updatedAt":2959},"qdrant-scaling-qps","scale Qdrant query throughput","Guides Qdrant query throughput (QPS) scaling. Use when someone asks 'how to increase QPS', 'need more throughput', 'queries per second too low', 'batch search', 'read replicas', or 'how to handle more concurrent queries'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2954,2955,2956,2957,2958],{"name":2841,"slug":2842,"type":15},{"name":2844,"slug":2845,"type":15},{"name":2850,"slug":2851,"type":15},{"name":2872,"slug":2873,"type":15},{"name":2853,"slug":2854,"type":15},"2026-04-18T04:46:08.905219",{"slug":2961,"name":2961,"fn":2962,"description":2963,"org":2964,"tags":2965,"stars":2855,"repoUrl":2856,"updatedAt":2971},"qdrant-scaling-query-volume","scale Qdrant query volume and pagination","Guides Qdrant query volume scaling. Use when someone asks 'query returns too many results', 'scroll performance', 'large limit values', 'paginating search results', 'fetching many vectors', or 'high cardinality results'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2966,2967,2968,2969,2970],{"name":2844,"slug":2845,"type":15},{"name":2850,"slug":2851,"type":15},{"name":2872,"slug":2873,"type":15},{"name":2853,"slug":2854,"type":15},{"name":2903,"slug":2904,"type":15},"2026-04-18T04:46:11.371326",{"slug":2973,"name":2973,"fn":2974,"description":2975,"org":2976,"tags":2977,"stars":2855,"repoUrl":2856,"updatedAt":2987},"qdrant-search-quality-diagnosis","diagnose Qdrant search quality issues","Diagnoses Qdrant search quality issues. Use when someone reports 'results are bad', 'wrong results', 'not relevant results', 'missing matches', 'recall is low', 'approximate search worse than exact', 'which embedding model', or 'quality dropped after quantization'. Also use when search quality degrades without obvious changes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2978,2981,2984,2985,2986],{"name":2979,"slug":2980,"type":15},"Analytics","analytics",{"name":2982,"slug":2983,"type":15},"Data Quality","data-quality",{"name":2913,"slug":2914,"type":15},{"name":2853,"slug":2854,"type":15},{"name":2903,"slug":2904,"type":15},"2026-04-18T04:46:17.579894",{"slug":2989,"name":2989,"fn":2990,"description":2991,"org":2992,"tags":2993,"stars":2855,"repoUrl":2856,"updatedAt":2999},"qdrant-search-speed-optimization","optimize Qdrant search speed","Diagnoses and fixes slow Qdrant search. Use when someone reports 'search is slow', 'high latency', 'queries take too long', 'low QPS', 'throughput too low', 'filtered search is slow', or 'search was fast but now it's slow'. Also use when search performance degrades after config changes or data growth.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2994,2995,2996,2997,2998],{"name":2979,"slug":2980,"type":15},{"name":2850,"slug":2851,"type":15},{"name":2872,"slug":2873,"type":15},{"name":2853,"slug":2854,"type":15},{"name":2903,"slug":2904,"type":15},"2026-04-18T04:46:03.987332",{"slug":3001,"name":3001,"fn":3002,"description":3003,"org":3004,"tags":3005,"stars":2855,"repoUrl":2856,"updatedAt":3011},"qdrant-search-strategies","select optimal Qdrant search strategies","Guides Qdrant search strategy selection. Use when someone asks 'should I use hybrid search?', 'BM25 or sparse vectors?', 'how to rerank?', 'results are not relevant', 'I don't get needed results from my dataset but they're there', 'retrieval quality is not good enough', 'results too similar', 'need diversity', 'MMR', 'relevance feedback', 'recommendation API', 'discovery API', 'ColBERT reranking', or 'missing keyword matches'",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3006,3007,3008,3009,3010],{"name":2841,"slug":2842,"type":15},{"name":2979,"slug":2980,"type":15},{"name":2844,"slug":2845,"type":15},{"name":2853,"slug":2854,"type":15},{"name":2903,"slug":2904,"type":15},"2026-04-18T04:46:18.812306",{"items":3013,"total":769},[3014,3028,3042,3058,3069,3080,3090],{"slug":2825,"name":2825,"fn":3015,"description":3016,"org":3017,"tags":3018,"stars":22,"repoUrl":23,"updatedAt":3027},"lint and fix GitHub Actions workflows","Install, run, and fix errors from actionlint — the GitHub Actions workflow linter. Load when validating `.github\u002Fworkflows\u002F*.yml` files after migration or generation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3019,3020,3023,3024],{"name":20,"slug":21,"type":15},{"name":3021,"slug":3022,"type":15},"Code Analysis","code-analysis",{"name":13,"slug":14,"type":15},{"name":3025,"slug":3026,"type":15},"QA","qa","2026-05-27T07:07:58.574528",{"slug":3029,"name":3029,"fn":3030,"description":3031,"org":3032,"tags":3033,"stars":22,"repoUrl":23,"updatedAt":3041},"azure-devops-migration","migrate Azure DevOps pipelines to GitHub Actions","Azure DevOps migration to GitHub Actions — syntax mappings and the migration report template for YAML pipelines, templates, variable groups, service connections, deployment jobs, stages, conditional logic. Load with `migration-core` when migrating Azure DevOps sources to GitHub Actions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3034,3036,3037,3038],{"name":128,"slug":3035,"type":15},"azure-devops",{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":3039,"slug":3040,"type":15},"Migration","migration","2026-05-27T07:08:10.275793",{"slug":3043,"name":3043,"fn":3044,"description":3045,"org":3046,"tags":3047,"stars":22,"repoUrl":23,"updatedAt":3057},"bamboo-migration","migrate Bamboo pipelines to GitHub Actions","Bamboo migration to GitHub Actions — syntax mappings and the migration report template for Build plans, deployment projects, tasks, requirements, variables, plan branches. Load with `migration-core` when migrating Bamboo sources to GitHub Actions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3048,3049,3052,3055,3056],{"name":20,"slug":21,"type":15},{"name":3050,"slug":3051,"type":15},"Deployment","deployment",{"name":3053,"slug":3054,"type":15},"Engineering","engineering",{"name":13,"slug":14,"type":15},{"name":3039,"slug":3040,"type":15},"2026-05-27T07:08:02.450474",{"slug":3059,"name":3059,"fn":3060,"description":3061,"org":3062,"tags":3063,"stars":22,"repoUrl":23,"updatedAt":3068},"bitbucket-migration","migrate Bitbucket Pipelines to GitHub Actions","Bitbucket Pipelines migration to GitHub Actions — syntax mappings and the migration report template for Pipelines, Pipes, parallel steps, branch\u002Fpull-request workflows, deployments, variables. Load with `migration-core` when migrating Bitbucket Pipelines sources to GitHub Actions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3064,3065,3066,3067],{"name":20,"slug":21,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"name":3039,"slug":3040,"type":15},"2026-05-27T07:08:08.963593",{"slug":3070,"name":3070,"fn":3071,"description":3072,"org":3073,"tags":3074,"stars":22,"repoUrl":23,"updatedAt":3079},"circleci-migration","migrate CircleCI pipelines to GitHub Actions","CircleCI migration to GitHub Actions — syntax mappings and the migration report template for Workflows, jobs, Orbs, executors, contexts, parameters, matrix jobs, approval gates. Load with `migration-core` when migrating CircleCI sources to GitHub Actions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3075,3076,3077,3078],{"name":20,"slug":21,"type":15},{"name":3050,"slug":3051,"type":15},{"name":13,"slug":14,"type":15},{"name":3039,"slug":3040,"type":15},"2026-05-27T07:08:07.66194",{"slug":3081,"name":3081,"fn":3082,"description":3083,"org":3084,"tags":3085,"stars":22,"repoUrl":23,"updatedAt":3089},"droneci-migration","migrate Drone CI pipelines to GitHub Actions","Drone CI migration to GitHub Actions — syntax mappings and the migration report template for Pipelines, plugins, services, secrets, triggers, multi-platform pipelines. Load with `migration-core` when migrating Drone CI sources to GitHub Actions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3086,3087,3088],{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":3039,"slug":3040,"type":15},"2026-05-27T07:08:05.038968",{"slug":3091,"name":3091,"fn":3092,"description":3093,"org":3094,"tags":3095,"stars":22,"repoUrl":23,"updatedAt":3100},"gitlab-migration","migrate GitLab CI to GitHub Actions","GitLab CI migration to GitHub Actions — syntax mappings and the migration report template for Pipelines, includes, Pages, environments, rules\u002Fonly\u002Fexcept, parallel jobs, GitLab-specific variables. Load with `migration-core` when migrating GitLab CI sources to GitHub Actions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3096,3097,3098,3099],{"name":20,"slug":21,"type":15},{"name":3053,"slug":3054,"type":15},{"name":13,"slug":14,"type":15},{"name":3039,"slug":3040,"type":15},"2026-05-27T07:08:01.168922"]