Skip to content

feat: Add byo-rossoctl-cortex skill - #34

Merged
aslom merged 1 commit into
rossoctl:mainfrom
aslom:byo-rossoctl-cortex
Aug 31, 2026
Merged

feat: Add byo-rossoctl-cortex skill#34
aslom merged 1 commit into
rossoctl:mainfrom
aslom:byo-rossoctl-cortex

Conversation

@aslom

@aslom aslom commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

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 #

@aslom
aslom force-pushed the byo-rossoctl-cortex branch 2 times, most recently from 06862a4 to 23b4198 Compare August 28, 2026 15:07
@rubambiza rubambiza added the ready-for-ai-review Request automated AI code review from clawgenti label Aug 28, 2026
@aslom
aslom force-pushed the byo-rossoctl-cortex branch 2 times, most recently from 38e777c to c62a2ce Compare August 28, 2026 15:34

@clawgenti clawgenti left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread skills/byo-rossoctl-cortex/SKILL.md Outdated
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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 clawgenti left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

  • nittemplates/agent.sh: uses set -e but not set -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.
  • suggestiontemplates/litellm-budget-track.yaml: ca_dir uses a literal placeholder path (/ABSOLUTE/PATH/TO/…) while the rest of the template uses ${ENV_VAR} expansion; consider ca_dir: "${CORTEX_CA_DIR}" for consistency and to make it machine-fillable, or add a prominent # TODO: replace this path comment.

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@aslom
aslom force-pushed the byo-rossoctl-cortex branch from c62a2ce to 1e88f27 Compare August 28, 2026 17:48
@aslom

aslom commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

Thanks @clawgenti — pushed a fix addressing all three findings.

  • ca_dir literal placeholder → env var. templates/litellm-budget-track.yaml now
    uses ca_dir: "${CORTEX_CA_DIR}", consistent with the other ${…} fields, so the
    template is machine-fillable and can't be run with a bogus placeholder path. Added a
    comment (export to an absolute, persistent, writable dir), and the header run example
    plus SKILL.md Step 3/4 now export CORTEX_CA_DIR.
  • license frontmatter → repo root. Changed to
    Complete terms in the repository-root LICENSE (../../LICENSE) so it no longer implies
    a per-skill file; it points at the actual root LICENSE.
  • agent.sh set -eset -eu. A missing ANTHROPIC_AUTH_TOKEN /
    ANTHROPIC_BASE_URL now fails with a clear "unbound variable" instead of a confusing
    401 / empty-URL from curl. The optional vars use ${VAR:-default} / ${VAR:+word},
    which are set -u-safe; sh -n passes.

No functional change to the skill's behavior. DCO signed-off.

Assisted-By: Claude (Anthropic AI) noreply@anthropic.com

@clawgenti clawgenti left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

  • suggestionSKILL.md Step 3 inline YAML snippet (lines ~151-162) omits cache_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 6 comment) so the two places agree.
  • nittemplates/agent.sh: missing blank line between the env var listing comment block and the set -u rationale 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
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread skills/byo-rossoctl-cortex/templates/agent.sh
@aslom
aslom force-pushed the byo-rossoctl-cortex branch from 1e88f27 to 89ac0c6 Compare August 28, 2026 20:38
@aslom

aslom commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

Thanks @clawgenti — both addressed in 89ac0c6.

  • Step 3 snippet now matches the template / caveat 6. Added
    cache_write_cost_per_token / cache_read_cost_per_token to the Step 3 inline YAML
    (with a # see caveat 6 note), so a user copying it doesn't silently misconfigure
    budget tracking. Also relabeled input_cost_per_token there as the uncached rate
    for consistency with the template and reference.
  • agent.sh readability nit. Inserted a blank # line between the env-var listing
    block and the set -u rationale comment. sh -n still passes.

Docs-only; no change to skill behavior. DCO signed-off.

Assisted-By: Claude (Anthropic AI) noreply@anthropic.com

@clawgenti clawgenti left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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`

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is form official rossctl CLI instructions:
https://github.com/rossoctl/rossoctl-cli#install
FYI @esnible

@rubambiza rubambiza left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>
@aslom
aslom force-pushed the byo-rossoctl-cortex branch from 89ac0c6 to 74e2969 Compare August 31, 2026 15:51
@aslom
aslom merged commit 1dfb2e9 into rossoctl:main Aug 31, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-ai-review Request automated AI code review from clawgenti

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants