ConnectOnion is an open-source, template-first toolkit for building, debugging, deploying, and operating AI agents. Developers use its command-line tools and Python runtime to create agents, add tools, connect services, deploy them, and make them callable by other agents, while the catalogue entries are related agents, skills, and instructions.
Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/openonion/connectonionnpx agentmods add skills/openonion/connectonion/skill-verify-cli-changes-example-for-verifyWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/openonion/connectonion/skill-verify-cli-changes-example-for-verify)<a href="https://agentmods.dev/skills/openonion/connectonion/skill-verify-cli-changes-example-for-verify"><img src="https://agentmods.dev/badge/skills/openonion/connectonion/skill-verify-cli-changes-example-for-verify.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00026 | $0.00546 |
| Opus 5 | $0.00013 | $0.00273 |
| Sonnet 5 | $0.00005 | $0.00109 |
| Haiku 4.5 | $0.00003 | $0.00055 |
Grade A, and why
Skill: Verify CLI changes (example for Verify skill) scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
97% identical to Skill: Verify CLI changes (example for Verify skill) — 40 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
What it actually says
Verifying a CLI change
The handle is direct invocation. The evidence is stdout/stderr/exit code.
Pattern
- Build (if the CLI needs building)
- Run with arguments that exercise the changed code
- Capture output and exit code
- Compare to expected
CLIs are usually the simplest to verify — no lifecycle, no ports.
Worked example
Diff: adds a --json flag to the status subcommand. New flag
parsing in cmd/status.go, new output branch.
Claim (commit msg): "machine-readable status output."
Inference: tool status --json now exists, emits valid JSON with
the same fields the human output shows. tool status without the flag
is unchanged.
Plan:
- Build
tool status→ human output, same as before (non-regression)tool status --json→ valid JSON, parseable- JSON fields match human output fields
Execute:
go build -o /tmp/tool ./cmd/tool
/tmp/tool status
# → Status: healthy
# → Uptime: 3h12m
# → Connections: 47
/tmp/tool status --json
# → {"status":"healthy","uptime_seconds":11520,"connections":47}
/tmp/tool status --json | jq -e .status
# → "healthy"
# (jq -e exits nonzero if the path is null/false — cheap validity check)
echo $?
# → 0
Verdict: PASS — flag works, JSON is valid, fields line up.
What FAIL looks like
unknown flag: --json→ not wired up, or you're running a stale build- Output isn't valid JSON (
jqerrors) → serialization bug tool status(no flag) changed → regression; the diff touched more than it should- JSON has different field names than expected → claim/code mismatch, might be fine, note it
Reading from stdin, destructive commands
If the CLI reads stdin → pipe in test data. If it writes files / hits a network / deletes things → point it at a tmp dir / a mock / a dry-run flag. If there's no safe mode and the diff touches the destructive path, say so and verify what you can around it.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 74 lines · 26 tokens per session scan A ddd5d2de7ce4
Skill: Verify CLI changes (example for Verify skill) is a skill published in the GitHub repository openonion/connectonion (1,480 stars, last pushed yesterday), licensed Apache-2.0. It adds 26 tokens to every session and 546 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. It is 97% identical to Skill: Verify CLI changes (example for Verify skill), differing in 40 lines, and is treated as a copy.
Other skills, from other repositories
review
Review code changes, pull requests, patches, or a scoped code area for actionable correctness, security, compatibility, and test risks with file and line evidence. Use for review or audit requests; do not use for general proofreading, feature implementation, or debugging a reported failure when the user wants a fix.
debug
Diagnose a concrete failure, regression, crash, hang, flaky test, or incorrect runtime behavior by reproducing it, testing hypotheses, and identifying the evidence-backed root cause. Use when symptoms or failing output exist; do not use for feature implementation without a failure, general code review, or a conceptual…
fix-failing-tests
Diagnose a failing test in the googleapis/mcp-toolbox repo and land a fix by reasoning from the actual error: read the failure, reproduce it, shrink it until the cause is forced into the open, then fix the cause. Use this whenever a test or CI job is red, a build breaks after a change, many packages fail at once, or a…
benchmark-design
Design and calibrate a multi-Case capability Benchmark and establish a traceable Formal Baseline.
agent-optimization
Improve an Agent State through versioned scores and score-linked Traces from a frozen Benchmark.
agent-evaluation
Run one specified Test Agent on one specified Benchmark Case exactly once, privately score that execution, and return one protocol result.