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.
Contribute changes to the CAO (CLI Agent Orchestrator) codebase — the local dev loop, the CI gate map, and the pre-PR checklist.
$ npx skills add awslabs/cli-agent-orchestrator --skill cao-contributing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install awslabs/cli-agent-orchestrator cao-contributing --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "cao-contributing" agent skill from https://github.com/awslabs/cli-agent-orchestrator/tree/main/skills/cao-contributing into .claude/skills/cao-contributing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cao-contributing", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/awslabs/cli-agent-orchestrator/tree/main/skills/cao-contributingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add awslabs/cli-agent-orchestrator --skill cao-contributing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install awslabs/cli-agent-orchestrator cao-contributing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/awslabs/cli-agent-orchestrator.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/cao-contributing .agents/skills/cao-contributing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cao-contributing" agent skill from https://github.com/awslabs/cli-agent-orchestrator/tree/main/skills/cao-contributing into .agents/skills/cao-contributing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cao-contributing", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add awslabs/cli-agent-orchestrator --skill cao-contributing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install awslabs/cli-agent-orchestrator cao-contributing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/awslabs/cli-agent-orchestrator.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/cao-contributing .cursor/skills/cao-contributing && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cao-contributing" agent skill from https://github.com/awslabs/cli-agent-orchestrator/tree/main/skills/cao-contributing into .cursor/skills/cao-contributing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cao-contributing", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/awslabs/cli-agent-orchestrator.git --path skills/cao-contributing--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add awslabs/cli-agent-orchestrator --skill cao-contributing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install awslabs/cli-agent-orchestrator cao-contributing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/awslabs/cli-agent-orchestrator.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/cao-contributing .gemini/skills/cao-contributing && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cao-contributing" agent skill from https://github.com/awslabs/cli-agent-orchestrator/tree/main/skills/cao-contributing into .gemini/skills/cao-contributing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cao-contributing", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install awslabs/cli-agent-orchestrator cao-contributingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add awslabs/cli-agent-orchestrator --skill cao-contributing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/awslabs/cli-agent-orchestrator.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/cao-contributing .github/skills/cao-contributing && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cao-contributing" agent skill from https://github.com/awslabs/cli-agent-orchestrator/tree/main/skills/cao-contributing into .github/skills/cao-contributing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cao-contributing", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add awslabs/cli-agent-orchestrator --skill cao-contributing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install awslabs/cli-agent-orchestrator cao-contributing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/awslabs/cli-agent-orchestrator.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/cao-contributing .opencode/skills/cao-contributing && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cao-contributing" agent skill from https://github.com/awslabs/cli-agent-orchestrator/tree/main/skills/cao-contributing into .opencode/skills/cao-contributing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cao-contributing", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cao-contributingContribute 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. 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.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit b29f40a. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
uvghcargogitleakspythongitFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
agentskills.ioFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
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.
.claude/skills/cao-contributing/SKILL.md (or your agent's skills folder).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.
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.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..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.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.
.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.
| Job | Runs | Blocking? |
|---|---|---|
| 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-missing | Yes |
| ↳ step: Validate Markdown links | uv run python scripts/validate_markdown_links.py — every relative link in every tracked .md, including skills/ | Yes |
| Code Quality | black --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 artifact | Yes |
| AG-UI construct demos (shift-left recordings) | same pattern for the L2 construct library | Yes |
| AG-UI stock-client live (AC3) | drives a real third-party AG-UI client against the surface | Yes |
| Agent Plugins dog-food (shift-left recording) | records the plugin pipeline from examples/agent-plugins/agent-plugins-dogfood/tools and gates on drift | Yes |
| CAO MCP Apps | MCP Apps build + backend coverage ratchet floor | Yes |
| CAO MCP Apps E2E (Playwright) | browser E2E over the ui://cao/* views | Yes |
| Rust TUI (Linux x86_64 / macOS arm64) | cargo test for the tui/ crate | Yes |
| Web UI Build | frontend build | Yes |
| AI-DLC Portfolio Example | example project builds | Yes |
| Security Scan | Trivy | Yes |
| CodeQL | GitHub Actions, JavaScript/TypeScript, Python, and Rust analysis and upload in the same CI run, including forks after required workflow approval | Yes — no project build; the hosted scan/status rules remain as documented in SECURITY.md |
| Dependency Security | Full locked npm, Bun, uv, and Cargo inventories, including development dependencies and unfixed advisories; independent clean-install mitigation checks | Yes — every HIGH/CRITICAL finding or scan error fails; locally, scripts/security-scan.sh dependencies with Trivy installed |
| Dependency Review | actions/dependency-review-action over the PR's dependency delta: fail-on-severity: high plus denied licences GPL-3.0/AGPL-3.0 | Yes — 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 localaddopts— it does not compose with it. So a local run that also deselectsintegrationis 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.pyand--ignore=test/e2e, and--ignorewins over-m: that Kiro provider test needs an authenticated external CLI and never runs in CI. So mostintegration-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.pyMemoryArchiveBackendcall-arg, and ajsonschemastub). CI tolerates them viacontinue-on-error: trueon 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
lintjob, keepcontinue-on-error: trueattached 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.
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.
| Workflow | Checks on the PR | Runs on | Blocking? |
|---|---|---|---|
Secret Scan (secret-scan.yml) | gitleaks, gitleaks config tests | every PR to main | Yes — 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 main | Yes — 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 Quality | only PRs touching that provider, its unit test or fixtures, pyproject.toml, or the workflow | Yes |
Test Claude Code Provider (test-claude-code-provider.yml) | Unit Tests, Code Quality | only PRs touching that provider, its unit test, pyproject.toml, or the workflow | Yes |
Test Codex CLI Provider (test-codex-provider.yml) | Unit Tests, Code Quality | only PRs touching that provider, its unit test or fixtures, pyproject.toml, or the workflow | Yes |
Test Kiro CLI Provider (test-kiro-cli-provider.yml) | Unit Tests, Code Quality | only PRs touching that provider, its unit test or fixtures, pyproject.toml, or the workflow | Yes |
Robotics transport example (robotics-transport.yml) | Transport simulator | only PRs touching the cross-zone transport example, agent-profile schema, or the workflow | Yes — real MuJoCo and authenticated MCP tests; locally, uv --directory examples/robotics/cross-zone-transport run --locked pytest |
Docs site (gh-pages.yml) | build | only PRs touching docusaurus/**, patches/**, vendor/**, scripts/test-braces-security.cjs, or the workflow | Yes — deploy is push-only and never runs on a PR |
Two checks can share a name. Each provider workflow has its own
Unit TestsandCode Quality, so a PR that touchespyproject.tomlshows 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, whereasgh run list --workflow CIsees onlyci.yml.
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.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: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; 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.TestClient must use base_url="http://localhost" — the Host-header /
DNS-rebinding guard returns 400 otherwise.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.uv run black src/ test/ && uv run isort src/ test/ (or --check to verify).uv run mypy src/ — confirm no new errors vs the base (pre-existing ones are OK).uv run pytest <targeted files> green; add/keep tests for changed behavior..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.skills/, run uv run python scripts/sync_skills.py so the packaged mirror
stays in lockstep (test/test_skill_packaging_parity.py enforces it).main.gh pr create / gh pr checks.SKILL.md, frontmatter, evals) → no shipped skill covers this
yet; follow the Agent Skills specification directly.© 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
Just SKILL.md in skills/cao-contributing of awslabs/cli-agent-orchestrator.
Open the folder on GitHubat commit b29f40a
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Cao Contributing this skillawslabs/cli-agent-orchestrator | 1.4k | — | ~4.1k | Automated safety check: Pass | Apache-2.0 | |
| Dignified Python Standardsdocling-project/docling | 69k | — | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Code Review Skillawesome-skills/code-review-skill | 2.1k | — | ~2.8k | Automated safety check: Notes | MIT | |
| Code Reviewerjewbetcha/opentrace | 116 | 2 repos | ~1.1k | Automated safety check: Notes | MIT | |
| Mariadb Operator PR Reviewmariadb-operator/mariadb-operator | 1k | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Code Review SkillRain-kl/OpenFlare | 288 | — | ~2.3k | Automated safety check: Notes | MIT |
docling-project/docling
Applies opinionated production Python conventions chosen by the project's Python version: modern type syntax, pathlib, explicit checks and interface guidance.
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…
jewbetcha/opentrace
Comprehensive code review skill for TypeScript, JavaScript, Python, Swift, Kotlin, Go.
mariadb-operator/mariadb-operator
Perform a structured maintainer-style PR review for the mariadb-operator repository.
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.
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.
awslabs/cli-agent-orchestrator
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).
awslabs/cli-agent-orchestrator
Author live dashboard UI from an agent via the emitui MCP tool.
awslabs/cli-agent-orchestrator
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.
awslabs/cli-agent-orchestrator
Create a new CAO (CLI Agent Orchestrator) plugin. An agent skill from awslabs/cli-agent-orchestrator.
awslabs/cli-agent-orchestrator
Create a new CLI agent provider for CAO (CLI Agent Orchestrator).
awslabs/cli-agent-orchestrator
Find and select the best installed CAO agent profile for a task before delegating with assign or handoff.
Works with
Categories
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.
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.
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.
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.
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.
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.
SKILL.md names 1 domain. As links in the text: agentskills.io. This is read from the text; nothing was executed.
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.
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.
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.
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.
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.