{"id":24767,"plugin_id":"plugins~Plugin_60b060d97ec88191920d19687315a9eb","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:18:36.989Z","digest":"c75f2b5baf48e3a6d1143f0a1e2761eee6037322ebbb791d00806722d5353b6a","against":null,"payload":{"name":"circleci-config","description":"Optimize CircleCI configuration for speed, reliability, and maintainability. Use when users ask to improve `.circleci/config.yml`, reduce CI runtime, tune caching/workspaces/parallelism, remove pipeline waste, or fix flaky pipeline behavior caused by configuration choices.","included_files":[{"relative_path":"references/cache-optimization.md","size_in_bytes":5880},{"relative_path":"references/patterns.md","size_in_bytes":3381},{"relative_path":"references/persisting-data.md","size_in_bytes":3139},{"relative_path":"references/test-results-and-splitting.md","size_in_bytes":2851}],"skill_md_contents":"---\nname: circleci-config\ndescription: Optimize CircleCI configuration for speed, reliability, and maintainability. Use when users ask to improve `.circleci/config.yml`, reduce CI runtime, tune caching/workspaces/parallelism, remove pipeline waste, or fix flaky pipeline behavior caused by configuration choices.\n---\n\n# CircleCI Config\n\n## Overview\n\nUse this skill to improve CircleCI performance and stability without changing product behavior. Focus on measured bottlenecks first, then implement the smallest safe config changes with clear validation criteria.\n\nRead `references/cache-optimization.md` when the request involves `save_cache`, `restore_cache`, `persist_to_workspace`, `attach_workspace`, cache key design, dependency caching, lockfiles, or complaints about low cache hit rates, oversized caches, or wasted persistence steps.\nRead `references/persisting-data.md` when the request involves choosing between caches, workspaces, and artifacts, or when data is being moved between jobs inefficiently.\nRead `references/test-results-and-splitting.md` when the request involves slow test jobs, parallelism, flaky test visibility, missing JUnit XML, or `circleci tests run`.\nRead `references/patterns.md` when the request involves approvals, branch/tag filters, schedules, deploy flow structure, or environment promotion patterns.\n\n## Inputs To Gather\n\n- `.yaml` and `.yml` files in `.circleci/` and any reusable config fragments\n- Current pain points: duration, flakiness, cost, or maintainability\n- Baseline metrics: slowest jobs, most frequent retries/failures, queue and run times\n- Risk tolerance for structural changes\n\n## Workflow\n\n1. Build a baseline.\n   - Identify top 1-3 longest jobs and top flaky jobs.\n   - Capture before metrics (duration, pass rate, retries).\n2. Remove pipeline waste.\n   - Eliminate duplicate jobs/workflows.\n   - Tighten branch/tag filters and workflow triggers.\n3. Improve dependency and artifact flow.\n   - Fix cache keys to include deterministic lockfile checks.\n   - Use workspaces/artifacts to avoid rebuilding identical outputs.\n   - Prefer cache scopes that are narrow, reproducible, and cheap to restore.\n4. Apply safe parallelism.\n   - Parallelize only proven bottlenecks.\n   - Keep fan-out/fan-in readable and deterministic.\n5. Validate impact.\n   - Define expected metric changes and acceptance criteria before finalizing.\n\n## Guardrails\n\n- Prefer configuration fixes before proposing application code changes.\n- Do not add blanket retries to hide deterministic failures.\n- Preserve deployment safety gates while optimizing build/test stages.\n- Keep changes incremental and easy to revert.\n- Prefer language-specific cache directories over broad project snapshots.\n- Avoid cache keys that rotate every run unless the user explicitly wants effectively write-only caches.\n\n## Output Contract\n\nProvide:\n\n1. Baseline bottleneck summary.\n2. Proposed or applied config changes with rationale.\n3. Expected runtime/reliability impact.\n4. Validation plan and rollback note.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}