Official agent skill

Cao Contributing

by awslabs in awslabs/cli-agent-orchestrator

Contribute changes to the CAO (CLI Agent Orchestrator) codebase — the local dev loop, the CI gate map, and the pre-PR checklist.

OfficialApache-2.0Auto-check passedDevelopment

Install Cao Contributing

skills CLI
$ npx skills add awslabs/cli-agent-orchestrator --skill cao-contributing -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install awslabs/cli-agent-orchestrator cao-contributing --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/awslabs/cli-agent-orchestrator.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/cao-contributing .claude/skills/cao-contributing && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
cao-contributing
GitHub stars
1.4k
Token cost
~4.1k tokens
SKILL.md length
2,014 words
Files
1
Skills in repo
14
Repo updated
First seen
Licence
Apache-2.0

At a glance

Contribute changes to the CAO (CLI Agent Orchestrator) codebase — the local dev loop, the CI gate map, and the pre-PR checklist.

  • Works in 5 steps: Run Python tooling through uv. uv sync… → **Verify the actual CI run after every… → **When a required check fails… → …
  • The user says open a PR
  • SKILL.md covers Golden rules (read these first), Local dev loop, The CI gate map… and Testing gotchas, plus 2 more sections
  • Calls uv, gh and cargo

What it does

Cao Contributing is an agent skill from awslabs/cli-agent-orchestrator, published by the product's own GitHub organization. Contribute changes to the CAO (CLI Agent Orchestrator) codebase — the local dev loop, the CI gate map, and the pre-PR checklist. Use when the user says "open a PR", "why did CI fail", "run the checks before I push", "the mypy/Code Quality job is red", "add a test and verify coverage", or when making any code change intended to land on a branch/PR. Covers uv-based build/test/lint, the ci.yml jobs and their pass/fail semantics, and the golden rules that stop a green-locally / red-in-CI surprise. Not for authoring…

Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Type safety, Pull requests and Code quality. It works with Model Context Protocol and Python. The repository describes itself as: Multi-agent orchestration for AI coding CLIs — Claude Code, Kiro, Codex, and more, coordinated in isolated tmux sessions. The licence is Apache-2.0.

When your agent uses it

  • The user says open a PR
  • Why did CI fail
  • Run the checks before I push
  • The mypy/Code Quality job is red

Example prompts

  • “open a PR”
  • “why did CI fail”
  • “run the checks before I push”
  • “/cao-contributing”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Run Python tooling through uv. uv sync --all-extras --dev, uv run pytest …,
  2. **Verify the actual CI run after every push — never declare "done" on local tests
  3. **When a required check fails unexpectedly, diff EVERYTHING your commit changed —
  4. Never mark a task complete while a required CI gate is red. A red gate means *not
  5. Match the repo, don't reshape it. Don't bundle unrelated fixes (e.g. repo-wide type

What it can do on your machine

Read from SKILL.md and the folder at commit b29f40a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • uv
    • gh
    • cargo
    • gitleaks
    • python
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • agentskills.io

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Cao Contributing loads about 4.1k tokens when it runs. Until then it costs about 154 tokens; SKILL.md has 2,014 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~154
When it runs · the whole SKILL.md, loaded when a task matches
~4.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from awslabs/cli-agent-orchestrator at commit b29f40a, republished under its Apache-2.0 licence (© awslabs). 2,014 words, ~4,068 tokens.

Download SKILL.mdSave it as .claude/skills/cao-contributing/SKILL.md (or your agent's skills folder).
name
cao-contributing
description
Contribute changes to the CAO (CLI Agent Orchestrator) codebase — the local dev loop, the CI gate map, and the pre-PR checklist. Use when the user says "open a PR", "why did CI fail", "run the checks before I push", "the mypy/Code Quality job is red", "add a test and verify coverage", or when making any code change intended to land on a branch/PR. Covers uv-based build/test/lint, the ci.yml jobs and their pass/fail semantics, and the golden rules that stop a green-locally / red-in-CI surprise. Not for authoring agent skills, building providers/plugins/MCP-apps, or operating running sessions.

Contributing to CAO

How to make a change to the cli-agent-orchestrator codebase and get it through CI cleanly. Read this before pushing a branch or opening a PR. The canonical human docs are DEVELOPMENT.md, CONTRIBUTING.md, and CODEBASE.md — this skill is the operational checklist that mirrors what CI actually enforces.

Golden rules (read these first)

  1. Run Python tooling through uv. uv sync --all-extras --dev, uv run pytest …, uv run mypy src/, uv run cao …. There is no bare pip workflow, and the venv CI builds is the one uv manages. Repo scripts are documented in their own text as plain python scripts/<name>.py (for example scripts/sync_skills.py, whose fix-up message and test_skill_packaging_parity.py both quote that form) — run them as uv run python scripts/<name>.py, which satisfies both.
  2. Verify the actual CI run after every push — never declare "done" on local tests alone. Poll it: gh pr checks <number> for every workflow on the PR, or gh run list --branch <branch> --workflow CI for ci.yml alone, then gh run view <id> / gh run view <id> --log-failed.
  3. When a required check fails unexpectedly, diff EVERYTHING your commit changed — including CI/workflow/config files (.github/workflows/*.yml, pyproject.toml, mypy.ini) — before concluding the cause is pre-existing or external. The signal is often in your own diff (git diff <base>..HEAD -- .github/). A displaced one-line workflow key (see the mypy note below) can turn a tolerated warning into a hard failure.
  4. Never mark a task complete while a required CI gate is red. A red gate means not done; investigate, don't rationalize.
  5. Match the repo, don't reshape it. Don't bundle unrelated fixes (e.g. repo-wide type errors) into a feature PR, and don't tighten a CI policy as a side effect of an unrelated change.

Local dev loop

bash
uv sync --all-extras --dev          # install (mirrors what CI does)
uv run pytest test/path/to/test_x.py   # run targeted tests while iterating
uv run black src/ test/             # format (CI checks --check)
uv run isort src/ test/             # import order (CI checks --check-only)
uv run mypy src/                    # type check (see the mypy note below)

Write tests RED-first: add a test that reproduces the bug/behavior and fails, then implement until it passes. New features and bug fixes ship with tests.

Keeping patch coverage at 100% for changed lines is a team convention, not a gate. Nothing fails your build over it: the repo has no codecov.yml, so there is no configured status check or target, and the Unit Tests job uploads coverage with fail_ci_if_error: false — even a broken upload is tolerated. Treat the Codecov comment as a review signal to justify, not a red gate to chase.

The CI gate map (.github/workflows/ci.yml)

Know which jobs are blocking vs tolerated so you can tell a real failure from noise. test/test_cao_contributing_skill_accuracy.py fails if this table drifts from ci.yml, so trust it — and if you rename a job, update it here.

JobRunsBlocking?
Unit Tests (3.10 / 3.11 / 3.12)uv run pytest test/ examples/workflow/tests/ --ignore=test/providers/test_kiro_cli_integration.py --ignore=test/e2e -m "not e2e" --cov=src/cli_agent_orchestrator --cov-report=term-missingYes
↳ step: Validate Markdown linksuv run python scripts/validate_markdown_links.py — every relative link in every tracked .md, including skills/Yes
Code Qualityblack --check, isort --check-only, then uv run mypy src/black/isort yes; mypy is non-blocking (continue-on-error: true)
AG-UI demo (shift-left recording)boots a CAO_AGUI_ENABLED server, drives the viewer, records a GIF artifactYes
AG-UI construct demos (shift-left recordings)same pattern for the L2 construct libraryYes
AG-UI stock-client live (AC3)drives a real third-party AG-UI client against the surfaceYes
Agent Plugins dog-food (shift-left recording)records the plugin pipeline from examples/agent-plugins/agent-plugins-dogfood/tools and gates on driftYes
CAO MCP AppsMCP Apps build + backend coverage ratchet floorYes
CAO MCP Apps E2E (Playwright)browser E2E over the ui://cao/* viewsYes
Rust TUI (Linux x86_64 / macOS arm64)cargo test for the tui/ crateYes
Web UI Buildfrontend buildYes
AI-DLC Portfolio Exampleexample project buildsYes
Security ScanTrivyYes
CodeQLGitHub Actions, JavaScript/TypeScript, Python, and Rust analysis and upload in the same CI run, including forks after required workflow approvalYes — no project build; the hosted scan/status rules remain as documented in SECURITY.md
Dependency SecurityFull locked npm, Bun, uv, and Cargo inventories, including development dependencies and unfixed advisories; independent clean-install mitigation checksYes — every HIGH/CRITICAL finding or scan error fails; locally, scripts/security-scan.sh dependencies with Trivy installed
Dependency Reviewactions/dependency-review-action over the PR's dependency delta: fail-on-severity: high plus denied licences GPL-3.0/AGPL-3.0Yes — CI-only; there is nothing to run locally, and it is skipped on forks (if: github.repository == 'awslabs/cli-agent-orchestrator'), so a green run on your fork has not exercised it

CodeQL's four language jobs are part of ci.yml, so Re-run all jobs includes them. The standalone codeql.yml is only for weekly and manual scans; both use the same maintainer-owned scan action. Existing PR branches must pick up the current main workflow before their new CI runs use this wiring. Resolve merge conflicts, update the branch, and approve fork workflows when required rather than merely rerunning a CI run created before the change. An Expected required check without an actual job is not a running scan.

Dependency Security also runs weekly and on manual dispatch through dependency-security.yml, using the same action as CI. A passing local-patch check does not exempt an open HIGH/CRITICAL advisory. See SECURITY.md for inventory artifacts, failure states, and the required-status rollout after the workflow lands.

The -m "not e2e" on the CI command replaces your local addopts — it does not compose with it. So a local run that also deselects integration is a strict subset of CI's selection and can be green while CI is red. Compare deselected counts, not just pass counts.

CI's selection is narrower than the marker alone implies. The same command passes --ignore=test/providers/test_kiro_cli_integration.py and --ignore=test/e2e, and --ignore wins over -m: that Kiro provider test needs an authenticated external CLI and never runs in CI. So most integration-marked tests do run in CI — but not that one, and nothing in CI covers it. If you change it, you have to run it yourself.

mypy is intentionally non-blocking. The repo has known, pre-existing, repo-wide mypy errors (historically in services/agent_scaffold.py, cli/commands/profile.py, services/memory_service.py / api/main.py MemoryArchiveBackend call-arg, and a jsonschema stub). CI tolerates them via continue-on-error: true on the mypy step. Therefore:

  • Do not make mypy blocking, and do not bundle those unrelated type-fixes into a feature PR (they belong in a dedicated cleanup PR).
  • Your change must add zero new mypy errors — check the delta, not the raw count.
  • When you insert a new job/step near the lint job, keep continue-on-error: true attached to the mypy step. A mis-insertion once displaced that line onto the next job's step, silently turning mypy into a hard gate and failing the build for unrelated, pre-existing errors.
Other workflows that gate a PR

ci.yml is not the only workflow on a pull request. These run alongside it, and none sets job-level continue-on-error, so every check they run is blocking. The same accuracy test pins this table to the workflow files.

WorkflowChecks on the PRRuns onBlocking?
Secret Scan (secret-scan.yml)gitleaks, gitleaks config testsevery PR to mainYes — the config tests run locally as uv run pytest test/test_gitleaks_config.py; the scan itself is gitleaks detect --config .gitleaks.toml over the PR's commits
cargo-deny (cargo-deny.yml)cargo-deny (advisories, licenses, bans, sources)every PR to mainYes — locally, cargo deny --manifest-path tui/Cargo.toml --locked check (global flags before the subcommand, as the action passes them)
Test Antigravity CLI Provider (test-antigravity-cli-provider.yml)Unit Tests, Code Qualityonly PRs touching that provider, its unit test or fixtures, pyproject.toml, or the workflowYes
Test Claude Code Provider (test-claude-code-provider.yml)Unit Tests, Code Qualityonly PRs touching that provider, its unit test, pyproject.toml, or the workflowYes
Test Codex CLI Provider (test-codex-provider.yml)Unit Tests, Code Qualityonly PRs touching that provider, its unit test or fixtures, pyproject.toml, or the workflowYes
Test Kiro CLI Provider (test-kiro-cli-provider.yml)Unit Tests, Code Qualityonly PRs touching that provider, its unit test or fixtures, pyproject.toml, or the workflowYes
Robotics transport example (robotics-transport.yml)Transport simulatoronly PRs touching the cross-zone transport example, agent-profile schema, or the workflowYes — real MuJoCo and authenticated MCP tests; locally, uv --directory examples/robotics/cross-zone-transport run --locked pytest
Docs site (gh-pages.yml)buildonly PRs touching docusaurus/**, patches/**, vendor/**, scripts/test-braces-security.cjs, or the workflowYes — deploy is push-only and never runs on a PR

Two checks can share a name. Each provider workflow has its own Unit Tests and Code Quality, so a PR that touches pyproject.toml shows those names more than once. Read the workflow name next to a failing check before assuming it is the CI one — gh pr checks <number> lists every workflow, whereas gh run list --workflow CI sees only ci.yml.

Show full SKILL.md (672 more words)Show less

Testing gotchas

  • The full uv run pytest test/ is flaky locally — it needs a running server, tmux, and real CLI binaries, and can hit a flaky OTel/gRPC abort. Run targeted test files while iterating and lean on CI (the Unit Tests job) for breadth; get authoritative missing-coverage lines from that job's term-missing output ∩ your diff. CI is not the full suite, though — it excludes test/e2e and the Kiro provider integration test by path (see the callout above), so those two are only ever covered by someone running them deliberately.
  • A test that touches CAO's own state can pass only on your machine. If a code path reaches the real database, config dir, or a live session, it will be green on a developer box that has an initialised CAO install and red on a clean runner with sqlite3.OperationalError: no such table: terminals. Mock the store/DB seam explicitly; when a test exercises a service function, check what that function calls today — a rebase can introduce a new unmocked DB write into a path your test already covered. Verify by running under a throwaway HOME and a throwaway CAO_HOME_DIR — HOME alone is not enough, because constants.py prefers an exported CAO_HOME_DIR and derives the database and every other state path from it, so an absolute value you already export keeps the initialised store this is meant to exclude:
    bash
    TMPH=$(mktemp -d)
    ( trap 'rm -rf "$TMPH"' EXIT              # cleans up on every path
      HOME="$TMPH" CAO_HOME_DIR="$TMPH/cao" \
        uv run pytest test/path/to/test_x.py
      rc=$?                                   # not `status`: read-only in zsh
      echo "exit=$rc"                         # pytest's status, not rm's
      exit "$rc" )                            # ...and the block returns it too
    Keep the trap-in-a-subshell shape, and keep the diagnostic inside it. Cleaning up with ; rm -rf "$TMPH" returns rm's status instead of pytest's, so a failing run reports success; switching to && fixes the status but leaks the temp directory on exactly the failures you wanted isolated. A trailing echo "exit=$?" after the subshell prints the right number but is itself the block's last command, so the block returns 0 and a script or agent checking $? still reads a failing run as a pass.
  • Local green and CI green are different claims, in both directions. A local suite can hide real failures (see above) and invent ones CI never sees (macOS-only, missing optional binaries). When they disagree, CI is authoritative — read the job log rather than reasoning from the local result.
  • FastAPI TestClient must use base_url="http://localhost" — the Host-header / DNS-rebinding guard returns 400 otherwise.
  • Provider status detection is screen-scraping — provider tests are fixture-driven state machines; when a CLI tool changes its TUI, update the regexes and add a fixture.
  • The AG-UI demo recorder (examples/ag-ui/ag-ui-eventsource-viewer/tools) needs a Chromium headless_shell matching the pinned @playwright/test version (npm run playwright:install) plus ffmpeg, and boots its own CAO_AGUI_ENABLED server. It gates in CI, so you don't have to run it locally to land a change. The construct-demo recorder is the sibling at examples/ag-ui/ag-ui-construct-demos/tools.

Pre-PR checklist

  1. uv run black src/ test/ && uv run isort src/ test/ (or --check to verify).
  2. uv run mypy src/ — confirm no new errors vs the base (pre-existing ones are OK).
  3. uv run pytest <targeted files> green; add/keep tests for changed behavior.
  4. If you touched any .md, run uv run python scripts/validate_markdown_links.py — a dead relative link fails the Unit Tests job, and skills/ is in scope. CAO has no root AGENTS.md; the contributor map is CODEBASE.md.
  5. If you touched skills/, run uv run python scripts/sync_skills.py so the packaged mirror stays in lockstep (test/test_skill_packaging_parity.py enforces it).
  6. Commits: only when asked; sign if the repo expects it; keep the subject concise and Conventional-Commits style; never force-push to main.
  7. Open the PR, then watch its CI run to completion and fix any red gate before calling it done (rule #2 and #4). Use gh pr create / gh pr checks.

Not what you want?

  • Authoring a new agent skill (SKILL.md, frontmatter, evals) → no shipped skill covers this yet; follow the Agent Skills specification directly.
  • Building a provider / plugin / MCP-apps view → cao-provider / cao-plugin / cao-mcp-apps.
  • Launching or steering running agent sessions → cao-session-management.

© awslabs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/cao-contributing of awslabs/cli-agent-orchestrator.

Open the folder on GitHubat commit b29f40a

Compare with similar skills

Cao Contributing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Cao Contributing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Cao Contributing this skillawslabs/cli-agent-orchestrator1.4k—~4.1kAutomated safety check: PassApache-2.0
Dignified Python Standardsdocling-project/docling69k—~1.5kAutomated safety check: PassApache-2.0
Code Review Skillawesome-skills/code-review-skill2.1k—~2.8kAutomated safety check: NotesMIT
Code Reviewerjewbetcha/opentrace1162 repos~1.1kAutomated safety check: NotesMIT
Mariadb Operator PR Reviewmariadb-operator/mariadb-operator1k—~3.3kAutomated safety check: PassApache-2.0
Code Review SkillRain-kl/OpenFlare288—~2.3kAutomated safety check: NotesMIT

Similar skills

  • Dignified Python Standards

    docling-project/docling

    Applies opinionated production Python conventions chosen by the project's Python version: modern type syntax, pathlib, explicit checks and interface guidance.

    69k GitHub stars~1.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Code Review Skill

    awesome-skills/code-review-skill

    Provides comprehensive code review guidance for React 19, Vue 3, Angular 17+, Svelte 5, Rust, TypeScript, Java, Java 8, PHP, Ruby, Rails, Python, Django, FastAPI, Go, C/.NET, Kotlin, Swift, Dart…

    2.1k GitHub stars~2.8k tokensUpdated 1 mo ago
    DevelopmentAuto-check: notes
  • Code Reviewer

    jewbetcha/opentrace

    Comprehensive code review skill for TypeScript, JavaScript, Python, Swift, Kotlin, Go.

    116 GitHub starsUsed in 2 repos~1.1k tokens
    DevelopmentAuto-check: notes
  • Mariadb Operator PR Review

    mariadb-operator/mariadb-operator

    Perform a structured maintainer-style PR review for the mariadb-operator repository.

    1k GitHub stars~3.3k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Code Review Skill

    Rain-kl/OpenFlare

    Provides comprehensive code review guidance for React 19, Vue 3, Angular 17+, Svelte 5, Rust, TypeScript, Java, PHP, Python, Django, Go, C/.NET, Kotlin, Swift, NestJS, C/C++, and more.

    288 GitHub stars~2.3k tokensUpdated today
    DevelopmentAuto-check: notes
  • Strict Programming Practices

    code-yeongyu/oh-my-openagent

    Applies strict, type-first coding rules for Python, Rust, TypeScript and Go, loading the matching language reference before the agent writes or edits any code.

    70k GitHub stars~9.5k tokensUpdated today
    DevelopmentAuto-check passed

More from awslabs/cli-agent-orchestrator

All 14 skills in this repo
  • Cao MCP Apps

    awslabs/cli-agent-orchestrator

    Official

    Enable, operate, and extend CAO's MCP Apps surface — the host-rendered fleet dashboard visible inside MCP App hosts (Claude Desktop, ChatGPT, VS Code Copilot, Goose, Postman).

    1.4k GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Agui Author

    awslabs/cli-agent-orchestrator

    Official

    Author live dashboard UI from an agent via the emitui MCP tool.

    1.4k GitHub stars~2k tokensUpdated today
    Auto-check passed
  • MCP Apps Builder

    awslabs/cli-agent-orchestrator

    Official

    Load the official MCP Apps builder skills (create-mcp-app, migrate-oai-app, add-app-to-server, convert-web-app) from github.com/modelcontextprotocol/ext-apps.

    1.4k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Cao Plugin

    awslabs/cli-agent-orchestrator

    Official

    Create a new CAO (CLI Agent Orchestrator) plugin. An agent skill from awslabs/cli-agent-orchestrator.

    1.4k GitHub stars~3.1k tokensUpdated today
    Auto-check: notes
  • Cao Provider

    awslabs/cli-agent-orchestrator

    Official

    Create a new CLI agent provider for CAO (CLI Agent Orchestrator).

    1.4k GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Cao Agent Routing

    awslabs/cli-agent-orchestrator

    Official

    Find and select the best installed CAO agent profile for a task before delegating with assign or handoff.

    1.4k GitHub stars~552 tokensUpdated today
    Auto-check passed

Categories

Questions about Cao Contributing

What does Cao Contributing do?

Contribute changes to the CAO (CLI Agent Orchestrator) codebase — the local dev loop, the CI gate map, and the pre-PR checklist. Cao Contributing is an agent skill from awslabs/cli-agent-orchestrator, published by the product's own GitHub organization. Contribute changes to the CAO (CLI Agent Orchestrator) codebase — the local dev loop, the CI gate map, and the pre-PR checklist.

When should I use Cao Contributing?

Cao Contributing fits situations like: the user says open a PR; why did CI fail; run the checks before I push; the mypy/Code Quality job is red.

How do I install Cao Contributing in Claude Code?

Run `npx skills add awslabs/cli-agent-orchestrator --skill cao-contributing -a claude-code`. Or copy the skill folder (skills/cao-contributing in awslabs/cli-agent-orchestrator) into .claude/skills/cao-contributing in your project. Claude Code loads it when a task matches its description.

How do I install Cao Contributing in Codex?

Run `npx skills add awslabs/cli-agent-orchestrator --skill cao-contributing -a codex`. Or copy the skill folder (skills/cao-contributing in awslabs/cli-agent-orchestrator) into .agents/skills/cao-contributing in your project. Codex loads it when a task matches its description.

Can I use Cao Contributing in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add awslabs/cli-agent-orchestrator --skill cao-contributing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cao-contributing, .gemini/skills/cao-contributing, .github/skills/cao-contributing and .opencode/skills/cao-contributing in your project.

What does Cao Contributing need to run?

Going by SKILL.md and its folder, Cao Contributing needs the command-line tools its instructions call (uv, gh, cargo, gitleaks, python and git). Our summary lists: Python 3.

Does Cao Contributing access the network?

SKILL.md names 1 domain. As links in the text: agentskills.io. This is read from the text; nothing was executed.

Is Cao Contributing safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Cao Contributing use?

Cao Contributing is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Cao Contributing use?

About 4.1k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Cao Contributing?

Skills that share tags, products or a category with Cao Contributing: Dignified Python Standards (docling-project/docling, 69k stars), Code Review Skill (awesome-skills/code-review-skill, 2.1k stars), Code Reviewer (jewbetcha/opentrace, 116 stars) and Mariadb Operator PR Review (mariadb-operator/mariadb-operator, 1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Cao Contributing?

awslabs (a GitHub organization, an official publisher) maintains it in awslabs/cli-agent-orchestrator, which has 1,396 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 8, 2026.

Source: awslabs/cli-agent-orchestrator on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.