@caddis/cli 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/antigravity-plugin/agents/knowledge-transfer.md +17 -32
- package/bundles/antigravity-plugin/caddis_statusline.py +25 -3
- package/bundles/antigravity-plugin/guard_agy.py +41 -9
- package/bundles/antigravity-plugin/plugin.json +1 -1
- package/bundles/antigravity-plugin/scripts/caddis_inventory.py +73 -3
- package/bundles/antigravity-plugin/scripts/caddis_statusline.py +25 -3
- package/bundles/antigravity-plugin/scripts/check_doc_coverage.py +1 -1
- package/bundles/antigravity-plugin/scripts/claudster_config.py +0 -5
- package/bundles/antigravity-plugin/scripts/hook_log.py +1 -1
- package/bundles/antigravity-plugin/scripts/new-machine.ps1 +170 -0
- package/bundles/antigravity-plugin/scripts/oss_ask.py +1 -1
- package/bundles/antigravity-plugin/scripts/oss_model.py +10 -2
- package/bundles/antigravity-plugin/scripts/oss_review.py +1 -1
- package/bundles/antigravity-plugin/scripts/setup_project_ai.py +42 -10
- package/bundles/antigravity-plugin/session_end_agy.py +31 -6
- package/bundles/antigravity-plugin/skills/_registry.md +1 -0
- package/bundles/antigravity-plugin/skills/advisory-hub/SKILL.md +44 -0
- package/bundles/antigravity-plugin/skills/code-review/SKILL.md +11 -0
- package/bundles/antigravity-plugin/skills/feature-plan/SKILL.md +21 -0
- package/bundles/antigravity-plugin/skills/gate-review/SKILL.md +11 -0
- package/bundles/antigravity-plugin/skills/implement/SKILL.md +36 -0
- package/bundles/antigravity-plugin/skills/safe-cleanup/SKILL.md +186 -0
- package/bundles/antigravity-plugin/skills/security-review/SKILL.md +9 -0
- package/bundles/antigravity-plugin/skills/validate-phase/SKILL.md +31 -0
- package/bundles/antigravity-plugin/warm_start_agy.py +96 -9
- package/bundles/antigravity-plugin-extras/plugin.json +1 -1
- package/bundles/antigravity-plugin-extras/skills/_registry.md +1 -0
- package/bundles/antigravity-plugin-extras/skills/safe-cleanup/SKILL.md +186 -0
- package/bundles/codex/.codex/config.toml.example +36 -0
- package/bundles/codex/.codex/skills/coding/api-design/SKILL.md +249 -0
- package/bundles/codex/.codex/skills/coding/backend-development/SKILL.md +305 -0
- package/bundles/codex/.codex/skills/coding/code-review/SKILL.md +140 -0
- package/bundles/codex/.codex/skills/coding/codebase-audit/SKILL.md +204 -0
- package/bundles/codex/.codex/skills/coding/dashboard-perf-sweep/SKILL.md +132 -0
- package/bundles/codex/.codex/skills/coding/dashboard-perf-sweep/scripts/perf_sweep.py +249 -0
- package/bundles/codex/.codex/skills/coding/error-handling/SKILL.md +260 -0
- package/bundles/codex/.codex/skills/coding/fastapi-dev/SKILL.md +300 -0
- package/bundles/codex/.codex/skills/coding/javascript-typescript/SKILL.md +142 -0
- package/bundles/codex/.codex/skills/coding/python/SKILL.md +388 -0
- package/bundles/codex/.codex/skills/coding/refactoring/SKILL.md +486 -0
- package/bundles/codex/.codex/skills/coding/security-review/SKILL.md +205 -0
- package/bundles/codex/.codex/skills/coding/sql/SKILL.md +321 -0
- package/bundles/codex/.codex/skills/data/database-design/SKILL.md +177 -0
- package/bundles/codex/.codex/skills/data/db-diagram/SKILL.md +148 -0
- package/bundles/codex/.codex/skills/data/db-diagram/scripts/sql_to_graph.py +1212 -0
- package/bundles/codex/.codex/skills/devops/ci-cd-pipeline/SKILL.md +315 -0
- package/bundles/codex/.codex/skills/devops/gh-cli/SKILL.md +195 -0
- package/bundles/codex/.codex/skills/devops/git-commit/SKILL.md +285 -0
- package/bundles/codex/.codex/skills/devops/safe-cleanup/SKILL.md +186 -0
- package/bundles/codex/.codex/skills/devops/using-git-worktrees/SKILL.md +217 -0
- package/bundles/codex/.codex/skills/devops/windows-deployment/SKILL.md +880 -0
- package/bundles/codex/.codex/skills/docs/code-documentation/SKILL.md +271 -0
- package/bundles/codex/.codex/skills/docs/explainer-doc/SKILL.md +97 -0
- package/bundles/codex/.codex/skills/docs/technical-writing/SKILL.md +286 -0
- package/bundles/codex/.codex/skills/docs/writing-plans/SKILL.md +387 -0
- package/bundles/codex/.codex/skills/frontend/css-architecture/SKILL.md +305 -0
- package/bundles/codex/.codex/skills/frontend/css-architecture/references/RESPONSIVE-DESIGN.md +604 -0
- package/bundles/codex/.codex/skills/frontend/frontend-design/SKILL.md +193 -0
- package/bundles/codex/.codex/skills/frontend/frontend-design/references/my-tech-stack.md +127 -0
- package/bundles/codex/.codex/skills/frontend/mockup/SKILL.md +242 -0
- package/bundles/codex/.codex/skills/frontend/react-best-practices/SKILL.md +269 -0
- package/bundles/codex/.codex/skills/frontend/react-dev/README.md +404 -0
- package/bundles/codex/.codex/skills/frontend/react-dev/SKILL.md +459 -0
- package/bundles/codex/.codex/skills/frontend/react-dev/examples/generic-components.md +579 -0
- package/bundles/codex/.codex/skills/frontend/react-dev/examples/server-components.md +579 -0
- package/bundles/codex/.codex/skills/frontend/react-dev/references/event-handlers.md +574 -0
- package/bundles/codex/.codex/skills/frontend/react-dev/references/hooks.md +456 -0
- package/bundles/codex/.codex/skills/frontend/react-dev/references/react-19-patterns.md +638 -0
- package/bundles/codex/.codex/skills/frontend/react-dev/references/react-router.md +1002 -0
- package/bundles/codex/.codex/skills/frontend/react-dev/references/tanstack-router.md +587 -0
- package/bundles/codex/.codex/skills/frontend/ui-review/SKILL.md +176 -0
- package/bundles/codex/.codex/skills/frontend/ui-review/references/framework-fixes.md +471 -0
- package/bundles/codex/.codex/skills/frontend/ui-review/references/visual-checklist.md +236 -0
- package/bundles/codex/.codex/skills/frontend/warm-editorial-ui/DESIGN_TOKENS.md +487 -0
- package/bundles/codex/.codex/skills/frontend/warm-editorial-ui/IMPLEMENTATION_GUIDE.md +177 -0
- package/bundles/codex/.codex/skills/frontend/warm-editorial-ui/SKILL.md +732 -0
- package/bundles/codex/.codex/skills/media/draw-io/SKILL.md +162 -0
- package/bundles/codex/.codex/skills/media/draw-io/references/aws-icons.md +677 -0
- package/bundles/codex/.codex/skills/media/draw-io/references/layout-guidelines.md +142 -0
- package/bundles/codex/.codex/skills/media/draw-io/references/troubleshooting.md +118 -0
- package/bundles/codex/.codex/skills/media/draw-io/references/workflows.md +103 -0
- package/bundles/codex/.codex/skills/media/draw-io/scripts/convert-drawio-to-png.sh +25 -0
- package/bundles/codex/.codex/skills/media/draw-io/scripts/find_aws_icon.py +79 -0
- package/bundles/codex/.codex/skills/media/mermaid-diagrams/SKILL.md +292 -0
- package/bundles/codex/.codex/skills/media/mermaid-diagrams/references/ENHANCEMENTS.md +264 -0
- package/bundles/codex/.codex/skills/media/mermaid-diagrams/references/MERMAID-SUMMARY.md +137 -0
- package/bundles/codex/.codex/skills/media/mermaid-diagrams/references/advanced-features.md +556 -0
- package/bundles/codex/.codex/skills/media/mermaid-diagrams/references/architecture-diagrams.md +192 -0
- package/bundles/codex/.codex/skills/media/mermaid-diagrams/references/c4-diagrams.md +410 -0
- package/bundles/codex/.codex/skills/media/mermaid-diagrams/references/class-diagrams.md +361 -0
- package/bundles/codex/.codex/skills/media/mermaid-diagrams/references/erd-diagrams.md +510 -0
- package/bundles/codex/.codex/skills/media/mermaid-diagrams/references/flowcharts.md +450 -0
- package/bundles/codex/.codex/skills/media/mermaid-diagrams/references/sequence-diagrams.md +394 -0
- package/bundles/codex/.codex/skills/media/mermaid-diagrams/references/troubleshooting.md +335 -0
- package/bundles/codex/.codex/skills/media/mermaid-diagrams/references/workflows.md +418 -0
- package/bundles/codex/.codex/skills/media/particle-art/SKILL.md +243 -0
- package/bundles/codex/.codex/skills/media/particle-art/references/canvas-utils.ts +171 -0
- package/bundles/codex/.codex/skills/media/particle-art/references/dot-field.template.tsx +203 -0
- package/bundles/codex/.codex/skills/media/particle-art/references/flow-field.template.tsx +263 -0
- package/bundles/codex/.codex/skills/media/particle-art/references/node-shape.template.tsx +261 -0
- package/bundles/codex/.codex/skills/media/particle-art/references/shape-sampler.ts +281 -0
- package/bundles/codex/.codex/skills/media/particle-art/references/stipple-morph.template.tsx +167 -0
- package/bundles/codex/.codex/skills/media/particle-art/references/stipple.template.tsx +175 -0
- package/bundles/codex/.codex/skills/media/particle-art/references/trail-ghost.template.tsx +266 -0
- package/bundles/codex/.codex/skills/media/particle-art/references/usage-examples.md +320 -0
- package/bundles/codex/.codex/skills/testing/playwright/API_REFERENCE.md +653 -0
- package/bundles/codex/.codex/skills/testing/playwright/SKILL.md +454 -0
- package/bundles/codex/.codex/skills/testing/playwright/lib/helpers.js +441 -0
- package/bundles/codex/.codex/skills/testing/playwright/package.json +26 -0
- package/bundles/codex/.codex/skills/testing/playwright/run.js +228 -0
- package/bundles/codex/.codex/skills/testing/tdd-workflow/SKILL.md +188 -0
- package/bundles/codex/.codex/skills/testing/test-strategy/SKILL.md +155 -0
- package/bundles/codex/.codex/skills/testing/webapp-testing/LICENSE.txt +202 -0
- package/bundles/codex/.codex/skills/testing/webapp-testing/SKILL.md +97 -0
- package/bundles/codex/.codex/skills/testing/webapp-testing/examples/console_logging.py +35 -0
- package/bundles/codex/.codex/skills/testing/webapp-testing/examples/element_discovery.py +40 -0
- package/bundles/codex/.codex/skills/testing/webapp-testing/examples/static_html_automation.py +33 -0
- package/bundles/codex/.codex/skills/testing/webapp-testing/scripts/with_server.py +106 -0
- package/bundles/codex/.codex/skills/workflow/advisory-hub/SKILL.md +227 -0
- package/bundles/codex/.codex/skills/workflow/advisory-hub/reference/context-template.md +214 -0
- package/bundles/codex/.codex/skills/workflow/advisory-hub/reference/hub-handbook.md +233 -0
- package/bundles/codex/.codex/skills/workflow/advisory-hub/reference/report-contract.md +94 -0
- package/bundles/codex/.codex/skills/workflow/advisory-hub/reference/succession.md +118 -0
- package/bundles/codex/.codex/skills/workflow/best-practices/SKILL.md +500 -0
- package/bundles/codex/.codex/skills/workflow/best-practices/agents/best-practices-referencer.md +263 -0
- package/bundles/codex/.codex/skills/workflow/best-practices/agents/codebase-context-builder.md +326 -0
- package/bundles/codex/.codex/skills/workflow/best-practices/agents/task-intent-analyzer.md +245 -0
- package/bundles/codex/.codex/skills/workflow/best-practices/references/anti-patterns.md +571 -0
- package/bundles/codex/.codex/skills/workflow/best-practices/references/before-after-examples.md +1114 -0
- package/bundles/codex/.codex/skills/workflow/best-practices/references/best-practices-guide.md +513 -0
- package/bundles/codex/.codex/skills/workflow/best-practices/references/common-workflows.md +692 -0
- package/bundles/codex/.codex/skills/workflow/best-practices/references/prompt-patterns.md +547 -0
- package/bundles/codex/.codex/skills/workflow/brainstorming/SKILL.md +57 -0
- package/bundles/codex/.codex/skills/workflow/context-curator/SKILL.md +157 -0
- package/bundles/codex/.codex/skills/workflow/golden-plan/SKILL.md +586 -0
- package/bundles/codex/.codex/skills/workflow/preflight/SKILL.md +440 -0
- package/bundles/codex/.codex/skills/workflow/skill-creator/LICENSE.txt +202 -0
- package/bundles/codex/.codex/skills/workflow/skill-creator/SKILL.md +491 -0
- package/bundles/codex/.codex/skills/workflow/skill-creator/agents/analyzer.md +274 -0
- package/bundles/codex/.codex/skills/workflow/skill-creator/agents/comparator.md +202 -0
- package/bundles/codex/.codex/skills/workflow/skill-creator/agents/grader.md +223 -0
- package/bundles/codex/.codex/skills/workflow/skill-creator/assets/eval_review.html +146 -0
- package/bundles/codex/.codex/skills/workflow/skill-creator/eval-viewer/generate_review.py +471 -0
- package/bundles/codex/.codex/skills/workflow/skill-creator/eval-viewer/viewer.html +1325 -0
- package/bundles/codex/.codex/skills/workflow/skill-creator/references/schemas.md +430 -0
- package/bundles/codex/.codex/skills/workflow/skill-creator/scripts/__init__.py +0 -0
- package/bundles/codex/.codex/skills/workflow/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/bundles/codex/.codex/skills/workflow/skill-creator/scripts/generate_report.py +326 -0
- package/bundles/codex/.codex/skills/workflow/skill-creator/scripts/improve_description.py +247 -0
- package/bundles/codex/.codex/skills/workflow/skill-creator/scripts/package_skill.py +136 -0
- package/bundles/codex/.codex/skills/workflow/skill-creator/scripts/quick_validate.py +103 -0
- package/bundles/codex/.codex/skills/workflow/skill-creator/scripts/run_eval.py +310 -0
- package/bundles/codex/.codex/skills/workflow/skill-creator/scripts/run_loop.py +328 -0
- package/bundles/codex/.codex/skills/workflow/skill-creator/scripts/utils.py +47 -0
- package/bundles/codex/AGENTS.md +146 -0
- package/bundles/manifest.json +4 -3
- package/dist/claude-deepseek.js +2 -2
- package/dist/claude-glm.js +2 -2
- package/dist/claude-oss.js +2 -2
- package/dist/cli.js +187 -56
- package/package.json +1 -1
- package/bundles/antigravity-plugin/scripts/dream_capture.py +0 -249
- package/bundles/antigravity-plugin/scripts/dream_memory.py +0 -438
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +0 -94
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Jura-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +0 -93
- package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ci-cd-pipeline
|
|
3
|
+
context: fork
|
|
4
|
+
description: CI/CD pipeline design and implementation for GitHub Actions, Azure DevOps, and general pipeline architecture. Use when creating build pipelines, deployment workflows, quality gates, environment promotion strategies, or automating release processes.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# CI/CD Pipeline Skill
|
|
8
|
+
|
|
9
|
+
Automate the path from commit to production. Every merge should be deployable.
|
|
10
|
+
|
|
11
|
+
## 1. When to Apply This Skill
|
|
12
|
+
|
|
13
|
+
**Trigger conditions:**
|
|
14
|
+
- Setting up CI/CD for a new project
|
|
15
|
+
- "Create a build and deploy pipeline"
|
|
16
|
+
- Adding quality gates to an existing pipeline
|
|
17
|
+
- Designing environment promotion strategy
|
|
18
|
+
- Troubleshooting pipeline failures or slow builds
|
|
19
|
+
|
|
20
|
+
## 2. Pipeline Architecture
|
|
21
|
+
|
|
22
|
+
### Standard Flow
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
Commit → Lint → Test → Build → [Quality Gate] → Deploy Staging → [Approval] → Deploy Production
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Pipeline Stages
|
|
29
|
+
|
|
30
|
+
| Stage | Purpose | Fail = Block? |
|
|
31
|
+
|-------|---------|--------------|
|
|
32
|
+
| **Lint** | Code style, formatting | Yes |
|
|
33
|
+
| **Type Check** | Static type errors | Yes |
|
|
34
|
+
| **Unit Test** | Logic correctness | Yes |
|
|
35
|
+
| **Integration Test** | Service interactions | Yes |
|
|
36
|
+
| **Build** | Compile, bundle, containerise | Yes |
|
|
37
|
+
| **Security Scan** | Vulnerabilities, secrets | Yes (critical), Warn (medium) |
|
|
38
|
+
| **Deploy Staging** | Validate in staging env | Yes |
|
|
39
|
+
| **Smoke Test** | Basic health check post-deploy | Yes |
|
|
40
|
+
| **Deploy Production** | Ship to users | Manual approval required |
|
|
41
|
+
|
|
42
|
+
## 3. GitHub Actions — Python Project
|
|
43
|
+
|
|
44
|
+
```yaml
|
|
45
|
+
name: CI
|
|
46
|
+
context: fork
|
|
47
|
+
|
|
48
|
+
on:
|
|
49
|
+
push:
|
|
50
|
+
branches: [main]
|
|
51
|
+
pull_request:
|
|
52
|
+
branches: [main]
|
|
53
|
+
|
|
54
|
+
concurrency:
|
|
55
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
56
|
+
cancel-in-progress: true
|
|
57
|
+
|
|
58
|
+
jobs:
|
|
59
|
+
lint:
|
|
60
|
+
runs-on: ubuntu-latest
|
|
61
|
+
steps:
|
|
62
|
+
- uses: actions/checkout@v4
|
|
63
|
+
- uses: actions/setup-python@v5
|
|
64
|
+
with:
|
|
65
|
+
python-version: "3.12"
|
|
66
|
+
cache: pip
|
|
67
|
+
- run: pip install ruff
|
|
68
|
+
- run: ruff check .
|
|
69
|
+
- run: ruff format --check .
|
|
70
|
+
|
|
71
|
+
test:
|
|
72
|
+
runs-on: ubuntu-latest
|
|
73
|
+
needs: lint
|
|
74
|
+
steps:
|
|
75
|
+
- uses: actions/checkout@v4
|
|
76
|
+
- uses: actions/setup-python@v5
|
|
77
|
+
with:
|
|
78
|
+
python-version: "3.12"
|
|
79
|
+
cache: pip
|
|
80
|
+
- run: pip install -e ".[test]"
|
|
81
|
+
- run: pytest --cov=src --cov-report=xml -q
|
|
82
|
+
- uses: codecov/codecov-action@v4
|
|
83
|
+
with:
|
|
84
|
+
file: coverage.xml
|
|
85
|
+
|
|
86
|
+
build:
|
|
87
|
+
runs-on: ubuntu-latest
|
|
88
|
+
needs: test
|
|
89
|
+
steps:
|
|
90
|
+
- uses: actions/checkout@v4
|
|
91
|
+
- uses: docker/setup-buildx-action@v3
|
|
92
|
+
- uses: docker/build-push-action@v5
|
|
93
|
+
with:
|
|
94
|
+
context: .
|
|
95
|
+
push: false
|
|
96
|
+
tags: app:${{ github.sha }}
|
|
97
|
+
cache-from: type=gha
|
|
98
|
+
cache-to: type=gha,mode=max
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## 4. GitHub Actions — Node.js/TypeScript Project
|
|
102
|
+
|
|
103
|
+
```yaml
|
|
104
|
+
name: CI
|
|
105
|
+
context: fork
|
|
106
|
+
|
|
107
|
+
on:
|
|
108
|
+
push:
|
|
109
|
+
branches: [main]
|
|
110
|
+
pull_request:
|
|
111
|
+
branches: [main]
|
|
112
|
+
|
|
113
|
+
concurrency:
|
|
114
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
115
|
+
cancel-in-progress: true
|
|
116
|
+
|
|
117
|
+
jobs:
|
|
118
|
+
quality:
|
|
119
|
+
runs-on: ubuntu-latest
|
|
120
|
+
steps:
|
|
121
|
+
- uses: actions/checkout@v4
|
|
122
|
+
- uses: pnpm/action-setup@v4
|
|
123
|
+
- uses: actions/setup-node@v4
|
|
124
|
+
with:
|
|
125
|
+
node-version: 22
|
|
126
|
+
cache: pnpm
|
|
127
|
+
- run: pnpm install --frozen-lockfile
|
|
128
|
+
- run: pnpm lint
|
|
129
|
+
- run: pnpm typecheck
|
|
130
|
+
- run: pnpm test -- --coverage
|
|
131
|
+
- run: pnpm build
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## 5. Quality Gates
|
|
135
|
+
|
|
136
|
+
Define pass/fail criteria for each stage.
|
|
137
|
+
|
|
138
|
+
```yaml
|
|
139
|
+
# quality-gates.yml (reference document)
|
|
140
|
+
gates:
|
|
141
|
+
lint:
|
|
142
|
+
ruff_errors: 0
|
|
143
|
+
format_diff: 0
|
|
144
|
+
test:
|
|
145
|
+
min_coverage: 80
|
|
146
|
+
max_test_duration_seconds: 120
|
|
147
|
+
allowed_failures: 0
|
|
148
|
+
security:
|
|
149
|
+
critical_vulnerabilities: 0
|
|
150
|
+
high_vulnerabilities: 0
|
|
151
|
+
build:
|
|
152
|
+
max_image_size_mb: 500
|
|
153
|
+
max_build_time_minutes: 10
|
|
154
|
+
deploy:
|
|
155
|
+
smoke_test_pass: true
|
|
156
|
+
health_check_pass: true
|
|
157
|
+
rollback_on_error_rate: 5 # percent
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## 6. Environment Promotion Strategy
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
Feature Branch → PR Review → Main → Staging → Production
|
|
164
|
+
│ │ │
|
|
165
|
+
│ │ └── Manual approval
|
|
166
|
+
│ └── Auto-deploy on main merge
|
|
167
|
+
└── CI runs on every PR
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
| Environment | Deploy Trigger | Approval | Data |
|
|
171
|
+
|-------------|---------------|----------|------|
|
|
172
|
+
| **Dev** | Every push to branch | None | Synthetic/mock |
|
|
173
|
+
| **Staging** | Merge to main | Automatic | Production-like (anonymised) |
|
|
174
|
+
| **Production** | Tag or manual | Required (2 reviewers) | Real |
|
|
175
|
+
|
|
176
|
+
## 7. Secrets Management
|
|
177
|
+
|
|
178
|
+
```yaml
|
|
179
|
+
# ✅ GOOD: Use GitHub Actions secrets
|
|
180
|
+
env:
|
|
181
|
+
DATABASE_URL: ${{ secrets.DATABASE_URL }}
|
|
182
|
+
API_KEY: ${{ secrets.API_KEY }}
|
|
183
|
+
|
|
184
|
+
# ✅ GOOD: Use OIDC for cloud auth (no long-lived credentials)
|
|
185
|
+
- uses: aws-actions/configure-aws-credentials@v4
|
|
186
|
+
with:
|
|
187
|
+
role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
|
|
188
|
+
aws-region: eu-west-1
|
|
189
|
+
|
|
190
|
+
# ❌ BAD: Hardcoded secrets in workflow
|
|
191
|
+
env:
|
|
192
|
+
API_KEY: "sk-abc123" # NEVER DO THIS
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**Rules:**
|
|
196
|
+
- Never commit secrets to the repository
|
|
197
|
+
- Use environment-scoped secrets (staging secrets ≠ production secrets)
|
|
198
|
+
- Rotate secrets on a schedule (90 days max)
|
|
199
|
+
- Use OIDC federation over long-lived credentials where possible
|
|
200
|
+
|
|
201
|
+
## 8. Caching Strategy
|
|
202
|
+
|
|
203
|
+
```yaml
|
|
204
|
+
# Python pip cache
|
|
205
|
+
- uses: actions/setup-python@v5
|
|
206
|
+
with:
|
|
207
|
+
cache: pip
|
|
208
|
+
|
|
209
|
+
# Node.js pnpm cache
|
|
210
|
+
- uses: actions/setup-node@v4
|
|
211
|
+
with:
|
|
212
|
+
cache: pnpm
|
|
213
|
+
|
|
214
|
+
# Docker layer cache
|
|
215
|
+
- uses: docker/build-push-action@v5
|
|
216
|
+
with:
|
|
217
|
+
cache-from: type=gha
|
|
218
|
+
cache-to: type=gha,mode=max
|
|
219
|
+
|
|
220
|
+
# Custom cache (e.g., test fixtures)
|
|
221
|
+
- uses: actions/cache@v4
|
|
222
|
+
with:
|
|
223
|
+
path: .test-cache
|
|
224
|
+
key: test-fixtures-${{ hashFiles('tests/fixtures/**') }}
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
## 9. Pipeline Performance
|
|
228
|
+
|
|
229
|
+
Keep CI fast. Developers won't wait for slow pipelines.
|
|
230
|
+
|
|
231
|
+
| Target | Goal |
|
|
232
|
+
|--------|------|
|
|
233
|
+
| Lint + type check | < 2 minutes |
|
|
234
|
+
| Unit tests | < 5 minutes |
|
|
235
|
+
| Full pipeline (PR) | < 15 minutes |
|
|
236
|
+
| Deploy to staging | < 5 minutes |
|
|
237
|
+
|
|
238
|
+
**Optimisation techniques:**
|
|
239
|
+
- Run lint and test in parallel (separate jobs)
|
|
240
|
+
- Cache dependencies aggressively
|
|
241
|
+
- Use `concurrency` to cancel outdated runs
|
|
242
|
+
- Split slow test suites with `pytest -x --dist=loadgroup`
|
|
243
|
+
- Use Docker layer caching for builds
|
|
244
|
+
|
|
245
|
+
## 10. Rollback Strategy
|
|
246
|
+
|
|
247
|
+
| Approach | Speed | Complexity |
|
|
248
|
+
|----------|-------|------------|
|
|
249
|
+
| **Revert commit** | Fast (minutes) | Low — git revert + re-deploy |
|
|
250
|
+
| **Blue-green deploy** | Instant (seconds) | Medium — swap traffic target |
|
|
251
|
+
| **Canary rollback** | Instant | High — requires traffic splitting |
|
|
252
|
+
| **Database rollback** | Slow, risky | High — only if migration is reversible |
|
|
253
|
+
|
|
254
|
+
**Rule:** Always prefer forward-fix (deploy a fix) over rollback. Rollback is the escape hatch, not the default.
|
|
255
|
+
|
|
256
|
+
## 11. Anti-Patterns
|
|
257
|
+
|
|
258
|
+
| Anti-Pattern | Problem | Fix |
|
|
259
|
+
|---|---|---|
|
|
260
|
+
| No CI on PRs | Bugs merge to main | Run full pipeline on every PR |
|
|
261
|
+
| Deploy from local machine | "Works on my machine" | Deploy only from CI/CD |
|
|
262
|
+
| Single mega-job | Slow, hard to debug | Split into parallel stages |
|
|
263
|
+
| No caching | 10-min installs every run | Cache deps, Docker layers |
|
|
264
|
+
| Manual production deploy | Human error, inconsistent | Automated with approval gate |
|
|
265
|
+
| Secrets in code | Compromised on push | Use secrets manager + OIDC |
|
|
266
|
+
| No rollback plan | Broken deploy = downtime | Blue-green or revert strategy |
|
|
267
|
+
| Build passes but output is wrong | Config error baked into assets | Post-build output validation gate (§12) |
|
|
268
|
+
|
|
269
|
+
## 12. Frontend Build Output Validation
|
|
270
|
+
|
|
271
|
+
A successful build (exit code 0) does not guarantee correct output. Configuration errors — especially wrong asset path prefixes — produce valid bundles that break at runtime. Add a **post-build validation step** in CI:
|
|
272
|
+
|
|
273
|
+
### 12.1 Subpath Base-Path Check
|
|
274
|
+
|
|
275
|
+
When a frontend is deployed under a URL subpath (e.g. `/my-app/`), the built `index.html` must reference assets with that prefix. Vite's `base` config controls this, and it can be accidentally changed.
|
|
276
|
+
|
|
277
|
+
```yaml
|
|
278
|
+
# GitHub Actions / Gitea Actions example
|
|
279
|
+
jobs:
|
|
280
|
+
frontend-checks:
|
|
281
|
+
runs-on: ubuntu-latest
|
|
282
|
+
steps:
|
|
283
|
+
- uses: actions/checkout@v4
|
|
284
|
+
- uses: actions/setup-node@v4
|
|
285
|
+
with:
|
|
286
|
+
node-version: 22
|
|
287
|
+
- run: npm ci
|
|
288
|
+
working-directory: frontend
|
|
289
|
+
# Build with production mode to activate conditional base path
|
|
290
|
+
- run: npx vite build --mode production
|
|
291
|
+
working-directory: frontend
|
|
292
|
+
- name: Validate production base path
|
|
293
|
+
working-directory: frontend
|
|
294
|
+
run: |
|
|
295
|
+
if ! grep -q '/my-app/assets/' dist/index.html; then
|
|
296
|
+
echo "FAIL: Built index.html does not reference /my-app/assets/"
|
|
297
|
+
echo "Check vite.config.ts base setting"
|
|
298
|
+
exit 1
|
|
299
|
+
fi
|
|
300
|
+
echo 'Base-path guard passed'
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
**Key points:**
|
|
304
|
+
- Build with `--mode production` — without it, mode-conditional `base` stays as `"/"` and the guard always fails
|
|
305
|
+
- This catches the exact scenario where someone changes `base: mode === "production" ? "/my-app/" : "/"` to `base: "/"`
|
|
306
|
+
- The same check should also run in the deploy script as a belt-and-suspenders guard (abort before service restart)
|
|
307
|
+
|
|
308
|
+
### 12.2 General Output Validation Patterns
|
|
309
|
+
|
|
310
|
+
| Check | Command | When to use |
|
|
311
|
+
|-------|---------|-------------|
|
|
312
|
+
| Subpath prefix | `grep -q '/{subpath}/assets/' dist/index.html` | Subpath deployments |
|
|
313
|
+
| Non-empty dist | `test -d dist/assets && ls dist/assets/*.js` | Always |
|
|
314
|
+
| Bundle size budget | `du -sh dist/ \| awk '{print $1}'` | When size regressions matter |
|
|
315
|
+
| No source maps in prod | `! ls dist/assets/*.map 2>/dev/null` | Production builds |
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gh-cli
|
|
3
|
+
description: "GitHub CLI operations — issues, PRs, releases, and repo management"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# GitHub CLI Operations
|
|
7
|
+
|
|
8
|
+
Practical reference for `gh` — the GitHub CLI. Covers repos, issues, PRs, releases, Actions, and automation.
|
|
9
|
+
|
|
10
|
+
## Prerequisites
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
# Install
|
|
14
|
+
brew install gh # macOS
|
|
15
|
+
winget install GitHub.cli # Windows
|
|
16
|
+
sudo apt install gh # Linux
|
|
17
|
+
|
|
18
|
+
# Authenticate and verify
|
|
19
|
+
gh auth login
|
|
20
|
+
gh auth status
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Phase 1: Repositories
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Create and clone
|
|
27
|
+
gh repo create my-project --public --description "My project" --clone
|
|
28
|
+
gh repo clone owner/repo
|
|
29
|
+
gh repo fork owner/repo --clone
|
|
30
|
+
|
|
31
|
+
# View and edit
|
|
32
|
+
gh repo view owner/repo
|
|
33
|
+
gh repo edit --description "Updated desc"
|
|
34
|
+
gh browse # Open in browser
|
|
35
|
+
|
|
36
|
+
# Sync fork
|
|
37
|
+
gh repo sync
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Phase 2: Issues
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Create
|
|
44
|
+
gh issue create --title "Bug: login broken" --labels bug --assignee @me
|
|
45
|
+
|
|
46
|
+
# List and search
|
|
47
|
+
gh issue list
|
|
48
|
+
gh issue list --labels bug --assignee @me
|
|
49
|
+
gh issue list --search "is:open label:bug sort:updated-desc"
|
|
50
|
+
gh issue list --json number,title --jq '.[].title'
|
|
51
|
+
|
|
52
|
+
# Manage
|
|
53
|
+
gh issue view 42
|
|
54
|
+
gh issue close 42 --comment "Fixed in PR #55"
|
|
55
|
+
gh issue edit 42 --add-label priority-high
|
|
56
|
+
gh issue develop 42 --branch fix/issue-42
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Phase 3: Pull Requests
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Create
|
|
63
|
+
gh pr create --title "feat: add dark mode" --body "Closes #42" --reviewer user
|
|
64
|
+
gh pr create --draft --title "WIP: new feature"
|
|
65
|
+
|
|
66
|
+
# List and view
|
|
67
|
+
gh pr list
|
|
68
|
+
gh pr list --author @me
|
|
69
|
+
gh pr view 55
|
|
70
|
+
gh pr diff 55
|
|
71
|
+
|
|
72
|
+
# Review and merge
|
|
73
|
+
gh pr checkout 55
|
|
74
|
+
gh pr review 55 --approve --body "LGTM!"
|
|
75
|
+
gh pr review 55 --request-changes --body "Please fix error handling"
|
|
76
|
+
gh pr merge 55 --squash --delete-branch
|
|
77
|
+
|
|
78
|
+
# Manage
|
|
79
|
+
gh pr ready 55 # Mark draft as ready
|
|
80
|
+
gh pr checks 55 --watch # Watch CI
|
|
81
|
+
gh pr edit 55 --add-label reviewed
|
|
82
|
+
gh pr update-branch 55 # Rebase with base
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Phase 4: Releases
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# Create
|
|
89
|
+
gh release create v1.2.0 --generate-notes --title "v1.2.0"
|
|
90
|
+
gh release create v1.2.0 --notes-file CHANGELOG.md
|
|
91
|
+
gh release create v1.2.0 ./dist/*.tar.gz # With assets
|
|
92
|
+
|
|
93
|
+
# Manage
|
|
94
|
+
gh release list
|
|
95
|
+
gh release view v1.2.0
|
|
96
|
+
gh release download v1.2.0 --pattern "*.tar.gz" --dir ./downloads
|
|
97
|
+
gh release upload v1.2.0 ./dist/checksums.txt
|
|
98
|
+
gh release delete v1.2.0 --yes
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Phase 5: GitHub Actions
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Monitor
|
|
105
|
+
gh run list
|
|
106
|
+
gh run list --workflow ci.yml
|
|
107
|
+
gh run view 123456 --log
|
|
108
|
+
gh run watch 123456
|
|
109
|
+
gh run download 123456 --dir ./artifacts
|
|
110
|
+
|
|
111
|
+
# Trigger
|
|
112
|
+
gh workflow run deploy.yml
|
|
113
|
+
gh workflow run deploy.yml --raw-field environment=staging
|
|
114
|
+
|
|
115
|
+
# Manage
|
|
116
|
+
gh run rerun 123456
|
|
117
|
+
gh run cancel 123456
|
|
118
|
+
|
|
119
|
+
# Secrets and variables
|
|
120
|
+
gh secret list
|
|
121
|
+
echo "value" | gh secret set API_KEY
|
|
122
|
+
gh secret set DB_PASS --env production
|
|
123
|
+
gh variable set DEPLOY_ENV --body "staging"
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Phase 6: Advanced
|
|
127
|
+
|
|
128
|
+
### API Requests
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
gh api /repos/owner/repo/contributors --jq '.[].login'
|
|
132
|
+
gh api --method POST /repos/owner/repo/issues \
|
|
133
|
+
--field title="API issue" --field body="Created via gh api"
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Bulk Operations
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# Close stale issues
|
|
140
|
+
gh issue list --search "label:stale" --json number --jq '.[].number' | \
|
|
141
|
+
xargs -I {} gh issue close {} --comment "Closing as stale"
|
|
142
|
+
|
|
143
|
+
# Label all open PRs
|
|
144
|
+
gh pr list --json number --jq '.[].number' | \
|
|
145
|
+
xargs -I {} gh pr edit {} --add-label needs-review
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Search
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
gh search repos "topic:fastapi stars:>100" --json name,url
|
|
152
|
+
gh search code "def authenticate" --repo owner/repo
|
|
153
|
+
gh search issues "label:bug state:open" --limit 20
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Aliases
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
gh alias set co 'pr checkout'
|
|
160
|
+
gh alias set myissues 'issue list --assignee @me'
|
|
161
|
+
gh alias set review 'pr list --search "review-requested:@me"'
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Common Workflows
|
|
165
|
+
|
|
166
|
+
### Issue to PR (Full Cycle)
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
gh issue develop 42 --branch fix/issue-42
|
|
170
|
+
git add . && git commit -m "fix: resolve login bug" && git push -u origin HEAD
|
|
171
|
+
gh pr create --title "fix: resolve login bug" --body "Closes #42"
|
|
172
|
+
gh pr checks --watch
|
|
173
|
+
gh pr merge --squash --delete-branch
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Release Workflow
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
git tag v1.3.0 && git push origin v1.3.0
|
|
180
|
+
gh release create v1.3.0 --generate-notes --title "v1.3.0"
|
|
181
|
+
gh release upload v1.3.0 ./dist/*.tar.gz
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Quick Reference
|
|
185
|
+
|
|
186
|
+
| Task | Command |
|
|
187
|
+
|-------------------|------------------------------------------------|
|
|
188
|
+
| Create repo | `gh repo create name --public` |
|
|
189
|
+
| Create issue | `gh issue create --title "..." --labels bug` |
|
|
190
|
+
| Create PR | `gh pr create --title "..." --reviewer user` |
|
|
191
|
+
| Merge PR | `gh pr merge 55 --squash --delete-branch` |
|
|
192
|
+
| Create release | `gh release create v1.0.0 --generate-notes` |
|
|
193
|
+
| Watch CI | `gh run watch` |
|
|
194
|
+
| Set secret | `echo "val" \| gh secret set KEY` |
|
|
195
|
+
| API call | `gh api /repos/o/r --jq '.description'` |
|