feat: Add byo-rossoctl-cortex skill - #34
Conversation
06862a4 to
23b4198
Compare
38e777c to
c62a2ce
Compare
clawgenti
left a comment
There was a problem hiding this comment.
Adds the byo-rossoctl-cortex skill with clear step-by-step instructions, a useful plugin catalog reference, and working template assets. CI passes. A couple of minor issues worth addressing before merge.
Reviewed by clawgenti using the github-pr-review skill
| # HTTP(S) — required for any plugin that reads request/response headers or bodies. | ||
| tls_bridge: | ||
| mode: enabled | ||
| ca_dir: /ABSOLUTE/PATH/TO/.cortex/tls-bridge-ca # MUST persist across runs and be writable |
There was a problem hiding this comment.
This ca_dir value is a literal placeholder (/ABSOLUTE/PATH/TO/…) rather than an ${ENV_VAR} — if copied and used verbatim it will try to create that exact path and silently produce a non-persistent CA. Consider substituting a real ${CORTEX_CA_DIR} env-var expansion (consistent with the other ${…} fields in this file) so the template can be used directly without manual editing, or add a prominent # EDIT THIS comment to make the requirement impossible to miss.
| through choosing plugins, generates the authbridge YAML config, and runs the | ||
| agent behind it. Specializes in per-agent LiteLLM usage/budget tracking where | ||
| each agent's spend is isolated by an environment variable. Use /byo-rossoctl-cortex. | ||
| license: Complete terms in LICENSE |
There was a problem hiding this comment.
license: Complete terms in LICENSE — no LICENSE file is included in this skill directory. Other skills reference a root-level LICENSE (which covers the repo), but the frontmatter wording implies a per-skill file. Either drop this field, point it to the repo root (../../LICENSE), or add the file.
clawgenti
left a comment
There was a problem hiding this comment.
Adds the byo-rossoctl-cortex skill — a well-documented, self-contained guide for running a local rossoctl AuthBridge plugin pipeline with per-agent LiteLLM budget tracking. CI passes, DCO sign-off is present. Two minor findings below.
- nit —
templates/agent.sh: usesset -ebut notset -u; unset env vars (ANTHROPIC_AUTH_TOKEN,ANTHROPIC_BASE_URL) will silently expand to empty strings and cause curl to fail with a confusing 401/URL error rather than a clear "variable not set" message. - suggestion —
templates/litellm-budget-track.yaml:ca_diruses a literal placeholder path (/ABSOLUTE/PATH/TO/…) while the rest of the template uses${ENV_VAR}expansion; considerca_dir: "${CORTEX_CA_DIR}"for consistency and to make it machine-fillable, or add a prominent# TODO: replace this pathcomment.
Reviewed by clawgenti using the github-pr-review skill
| # AGENT_MODEL model the key can access (default claude-haiku-4-5-20251001) | ||
| # AGENT_CALLS number of calls (default 3) | ||
| # SSL_CERT_FILE injected by exec; used as curl --cacert | ||
| set -e |
There was a problem hiding this comment.
nit: set -e prevents ignoring exit codes, but set -u (treat unset variables as errors) is not set. ANTHROPIC_AUTH_TOKEN and ANTHROPIC_BASE_URL are required for the script to work; without set -u, omitting either causes curl to fail with a confusing empty-URL or 401 error rather than an explicit "variable not set" message. Consider adding set -eu (POSIX-safe, no pipefail needed for sh).
| # HTTP(S) — required for any plugin that reads request/response headers or bodies. | ||
| tls_bridge: | ||
| mode: enabled | ||
| ca_dir: /ABSOLUTE/PATH/TO/.cortex/tls-bridge-ca # MUST persist across runs and be writable |
There was a problem hiding this comment.
suggestion: ca_dir is the only config value using a literal placeholder path (/ABSOLUTE/PATH/TO/…) rather than an env-var expansion. The rest of the template uses ${CORTEX_SPEND_FILE} and ${CORTEX_MAX_BUDGET}. Consider ca_dir: "${CORTEX_CA_DIR}" for consistency, or at minimum add a # TODO: replace with your actual path comment so users don't accidentally run the config with the placeholder value.
c62a2ce to
1e88f27
Compare
|
Thanks @clawgenti — pushed a fix addressing all three findings.
No functional change to the skill's behavior. DCO signed-off. Assisted-By: Claude (Anthropic AI) noreply@anthropic.com |
clawgenti
left a comment
There was a problem hiding this comment.
Adds the byo-rossoctl-cortex skill with a well-structured step-by-step guide, thorough caveats, and working template assets. CI passes, DCO sign-off present, previous review findings addressed in this commit. One substantive inconsistency between the Step 3 config snippet and the full template, plus a minor shell comment formatting nit.
- suggestion —
SKILL.mdStep 3 inline YAML snippet (lines ~151-162) omitscache_write_cost_per_token/cache_read_cost_per_token, but caveat 6 warns explicitly that omitting these can overstate costs ~10× for Claude Code users and trip the 429 far too early. A user following Step 3 verbatim would copy a snippet without those fields — consider adding them (or at minimum a# see caveat 6comment) so the two places agree. - nit —
templates/agent.sh: missing blank line between the env var listing comment block and theset -urationale comment (lines 16-17); minor readability issue.
Reviewed by clawgenti using the github-pr-review skill
| # (curl / OpenAI /v1/chat/completions), which is priced from the header. | ||
| input_cost_per_token: 0.000003 # example: $3 / 1M input tokens | ||
| output_cost_per_token: 0.000015 # example: $15 / 1M output tokens | ||
| ``` |
There was a problem hiding this comment.
suggestion: The Step 3 inline YAML snippet ends here without cache_write_cost_per_token / cache_read_cost_per_token, but caveat 6 (line ~240) warns that omitting these overstates cache-heavy traffic (Claude Code) by up to ~10× and trips the 429 too early. The full template (litellm-budget-track.yaml) correctly includes both fields. Consider adding them here too, or at minimum a # see caveat 6 below comment, so a user copying this snippet doesn't silently misconfigure budget tracking.
1e88f27 to
89ac0c6
Compare
|
Thanks @clawgenti — both addressed in
Docs-only; no change to skill behavior. DCO signed-off. Assisted-By: Claude (Anthropic AI) noreply@anthropic.com |
clawgenti
left a comment
There was a problem hiding this comment.
Adds the byo-rossoctl-cortex skill — a well-documented guide for standing up a local AuthBridge plugin pipeline with per-agent LiteLLM budget tracking. The content is thorough and the caveats section is genuinely useful.
One suggestion on the install path; overall the skill is in good shape.
Reviewed by clawgenti using the github-pr-review skill
| ``` | ||
|
|
||
| Or install a prebuilt release: `curl -fsSL | ||
| https://raw.githubusercontent.com/rossoctl/rossoctl-cli/main/downloadRossoctl | sh` |
There was a problem hiding this comment.
suggestion: curl -fsSL ... | sh pipes an installer script directly to the shell without verification — this is the canonical "curl-pipe-sh" pattern that can silently execute malicious content if the download URL is compromised or intercepted. Consider documenting the checksum/signature verification step (e.g. curl ... | sha256sum -c) or pointing users to a signed release artifact. For a skill that teaches security-conscious proxy configuration, this is worth calling out explicitly.
There was a problem hiding this comment.
This is form official rossctl CLI instructions:
https://github.com/rossoctl/rossoctl-cli#install
FYI @esnible
rubambiza
left a comment
There was a problem hiding this comment.
Approving since most AI review comments have been addressed and to enable more team members to kick the tires. Any issues encountered can be filed separately.
Add the byo-rossoctl-cortex skill: bring up a local rossoctl cortex — an
AuthBridge plugin pipeline that hosts a command (e.g. Claude Code) via
`rossoctl authbridge exec` — choosing plugins, generating the config, and
running the agent behind it. Specializes in per-agent LiteLLM usage/budget
tracking where each agent's spend is isolated by an environment variable
(spend_file: ${CORTEX_SPEND_FILE}).
Includes a plugin catalog reference, a forward-proxy + TLS-bridge config
template, and a minimal test agent script. Registers the skill in the plugin
marketplace and README.
Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: Aleksander Slominski <aslom@us.ibm.com>
89ac0c6 to
74e2969
Compare
Add the byo-rossoctl-cortex skill: build a local rossoctl cortex — an AuthBridge plugin pipeline that hosts a command (e.g. Claude Code) via
rossoctl authbridge exec— choosing plugins, generating the config, and running the agent behind it. Specializes in per-agent LiteLLM usage/budget tracking where each agent's spend is isolated by an environment variable (spend_file: ${CORTEX_SPEND_FILE}).Includes a plugin catalog reference, a forward-proxy + TLS-bridge config template, and a minimal test agent script. Registers the skill in the plugin marketplace and README.
Assisted-By: Claude (Anthropic AI) noreply@anthropic.com
Summary
Related issue(s)
(Optional) Testing Instructions
Fixes #