Skip to content

plugin: add cloud inference skills#104

Merged
gaelic-ghost merged 4 commits into
mainfrom
plugin/cloud-inference-skills
Jul 4, 2026
Merged

plugin: add cloud inference skills#104
gaelic-ghost merged 4 commits into
mainfrom
plugin/cloud-inference-skills

Conversation

@gaelic-ghost

@gaelic-ghost gaelic-ghost commented Jul 4, 2026

Copy link
Copy Markdown
Owner

Summary

  • add the installable cloud-inference-skills plugin with Runpod MCP config and cloud inference routing guidance
  • export Runpod upstream skills through the plugin skills tree with .agents symlink mirrors
  • rename codex-utilities to AgentDeck and bump Socket to 8.2.0

Verification

  • uv run scripts/validate_socket_metadata.py
  • uv run mypy
  • node --check plugins/agentdeck/scripts/session-start-hook.mjs
  • npx skills list --json from plugins/cloud-inference-skills
  • scripts/release.sh inventory

Summary by CodeRabbit

  • New Features
    • Added a new cloud-inference-skills plugin with cloud inference, routing, and Runpod-related skills.
    • Added an agentdeck plugin entry and updated related plugin references.
  • Documentation
    • Updated setup, roadmap, and architecture docs to reflect the new plugin names and catalog structure.
    • Added guidance for cloud inference workflows and Runpod usage.
  • Chores
    • Bumped several plugin and project versions to 8.2.0.

@gaelic-ghost gaelic-ghost added the enhancement New feature or request label Jul 4, 2026
@coderabbitai

coderabbitai Bot commented Jul 4, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@gaelic-ghost, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 48 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 6d262ff7-b465-4c4d-aa2d-e516bda0caad

📥 Commits

Reviewing files that changed from the base of the PR and between bb9f403 and af87898.

📒 Files selected for processing (1)
  • plugins/cloud-inference-skills/.agents/skills/cloud-inference-routing-workflow
📝 Walkthrough

Walkthrough

Renames the codex-utilities plugin to agentdeck across manifest, hooks, scripts, and documentation; adds a new cloud-inference-skills plugin with MCP config, routing/flash/runpodctl/companion-clis skills and evals; updates marketplace, architecture, README/ROADMAP/CONTRIBUTING docs; and bumps version to 8.2.0 across many plugins.

Changes

AgentDeck rename

Layer / File(s) Summary
AgentDeck manifest, hooks, and script wiring
plugins/agentdeck/.codex-plugin/plugin.json, plugins/agentdeck/AGENTS.md, plugins/agentdeck/hooks/hooks.json, plugins/agentdeck/scripts/session-start-hook.mjs
Plugin name/branding, hook status messages, runtime data paths, and env vars switched from codex-utilities/CODEX_UTILITIES_* to agentdeck/AGENTDECK_*; JSON-RPC client identity updated to agentdeck_hook.
AgentDeck planning and thread-title docs
plugins/agentdeck/docs/*
Internal plan docs (agent-configuration-sync, desktop-bridge-mcp-skill, thread-title-hooks) rewritten to reference AgentDeck naming, file paths, and environment variables.
Root marketplace, architecture, and roadmap updates
.agents/plugins/marketplace.json, CONTRIBUTING.md, README.md, docs/architecture/*, ROADMAP.md, docs/agents/*, docs/maintainers/xcode-27-agentic-tooling-plan.md
Marketplace/catalog entries, architecture inventory/evidence, and ROADMAP milestones updated to reflect agentdeck instead of codex-utilities, plus a new completed Milestone 23 for cloud-inference-skills and checklist toggles.

Cloud Inference Skills plugin

Layer / File(s) Summary
Plugin plan and manifest
docs/maintainers/cloud-inference-skills-plugin-plan.md, plugins/cloud-inference-skills/.codex-plugin/plugin.json, .mcp.json, AGENTS.md, skills-lock.json, .agents/skills/*
New plugin plan document and manifest/MCP/AGENTS/lockfile defining scope, Runpod MCP servers, and symlinked upstream skill mirrors.
Cloud inference routing workflow skill
plugins/cloud-inference-skills/skills/cloud-inference-routing-workflow/SKILL.md
New skill documenting provider selection workflow, provider fit guidance, output schema, and guardrails.
Companion CLIs skill
plugins/cloud-inference-skills/skills/companion-clis/SKILL.md
New skill documenting HuggingFace, GitHub, Docker, and AWS CLI setup for Runpod workflows.
Flash SDK skill and evals
plugins/cloud-inference-skills/skills/flash/SKILL.md, evals/*
New skill documenting the Runpod Flash SDK/CLI plus multiple evaluation specs and a dev-loop fixture.
runpodctl skill and evals
plugins/cloud-inference-skills/skills/runpodctl/SKILL.md, evals/*
New skill documenting runpodctl commands plus multiple evaluation specs for pods, hub, templates, and serverless.

Plugin version bumps

Layer / File(s) Summary
Version bump across plugins
plugins/*/.codex-plugin/plugin.json, plugins/*/pyproject.toml, pyproject.toml
Version fields bumped from 8.1.0 to 8.2.0 across numerous plugin manifests and Python project files.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

  • gaelic-ghost/socket#65: Both PRs update ROADMAP.md desktop-bridge/MCP restart coordination content, with the main PR rebranding restart plans from codex-utilities to agentdeck.
  • gaelic-ghost/socket#94: Both PRs modify ROADMAP.md Milestone 19 metadata validation checklist status.

Suggested labels: documentation

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: adding the cloud-inference-skills plugin.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch plugin/cloud-inference-skills

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bb9f403c60

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

"source": "runpod/skills",
"sourceType": "github",
"skillPath": "flash/SKILL.md",
"computedHash": "4f52fd8434d1ddff088b8923a1bc744dcb3d2e06f74509e2ad0336ad9128a947"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Regenerate the Runpod skill lock hashes

The skills CLI computes computedHash from each skill folder's relative file paths and contents (see computeSkillFolderHash in https://github.com/vercel-labs/skills/blob/main/src/local-lock.ts), but recalculating that over the committed folders gives flash=b46c48c2f2ecaa798ebf030e7e0ee688f5969a06e3c25611adbf6f3f4dc18d05 and runpodctl=01302e30aa681ffa30b8af62aece7c220305bb209df28dd95b9028512320c81d, not the values recorded here and below. That leaves the new Runpod mirror immediately inconsistent with its lock file, so future npx skills update refreshes or audits cannot reliably tell whether the committed skills match the recorded upstream snapshot.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

I re-ran the skills CLI folder-hash algorithm against the exported folders after the move. The computed values match skills-lock.json exactly: companion-clis=3d0ef187d4888a0c7e7b35861a939877dbf1dde577f440ca9c8fe7c04773934c, flash=4f52fd8434d1ddff088b8923a1bc744dcb3d2e06f74509e2ad0336ad9128a947, runpodctl=1a9b6033b13915fc75bc66c77b3ff14e6633b267d5ca8056bff8c3509efbfc06. No lock rewrite was needed.

- Prefer official provider plugins, MCP servers, CLIs, SDKs, and docs before adding Socket-authored setup guidance.
- Treat Runpod, Hugging Face, and AWS as preferred familiar surfaces when they fit the requested inference or training job.
- For Runpod work, use the bundled Runpod MCP config when resource management or docs lookup benefits from MCP, and treat `skills/companion-clis`, `skills/flash`, and `skills/runpodctl` as upstream Runpod skills tracked by `skills-lock.json`.
- Keep `.agents/skills` as a symlink discovery mirror of the exported root `skills/` directories.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Mirror the routing skill in .agents/skills

This newly added rule in plugins/cloud-inference-skills/AGENTS.md says to keep .agents/skills as a symlink discovery mirror of the exported root skills/ directories, but this commit exports skills/cloud-inference-routing-workflow while only adding .agents/skills/{companion-clis,flash,runpodctl} (checked with find over both directories). In checkouts that rely on .agents discovery, the primary Socket-authored routing workflow will not be surfaced, so add the missing symlink or narrow the rule.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Fixed in af87898 by adding the missing .agents/skills/cloud-inference-routing-workflow symlink. Verified with npx skills list --json from plugins/cloud-inference-skills; all four skills now appear through the .agents discovery mirror.

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 5

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
docs/architecture/ARCHITECTURE.md (1)

13-29: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Add cloud-inference-skills to the generated architecture snapshot.

This update captures agentdeck, but the new marketplace plugin is still missing from the inventory/evidence graph, so docs/architecture/ARCHITECTURE.md no longer matches .agents/plugins/marketplace.json.

Regenerate the architecture docs so downstream consumers see the current marketplace shape. Based on the marketplace update in this PR.

Also applies to: 158-188

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/architecture/ARCHITECTURE.md` around lines 13 - 29, Add
cloud-inference-skills to the architecture snapshot because the generated
inventory/evidence graph is out of sync with the current marketplace. Regenerate
the docs that populate ARCHITECTURE.md from the marketplace source used by the
plugin inventory, and ensure the updated entries/targets appear alongside the
existing plugin lists such as socket and agentdeck so the snapshot matches the
latest .agents/plugins/marketplace.json state.
docs/architecture/architecture.json (1)

495-563: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Add cloud-inference-skills to the graph here as well.

The marketplace now includes the new plugin, but this generated product/target/relationship graph still only reflects agentdeck. That leaves docs/architecture/architecture.json out of sync with .agents/plugins/marketplace.json.

Please regenerate the graph after adding the missing product and ownership edges. Based on the marketplace update in this PR.

Also applies to: 742-746, 2402-2418

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/architecture/architecture.json` around lines 495 - 563, The generated
product graph in architecture.json is missing the new cloud-inference-skills
plugin, so the marketplace and architecture docs are out of sync. Update the
products/targets/relationships entries that correspond to the marketplace
update, using the existing codex-plugin records as the pattern and adding the
missing ownership edges for cloud-inference-skills alongside agentdeck.
Regenerate the affected graph sections so the architecture.json entries reflect
the current .agents/plugins/marketplace.json state.
🧹 Nitpick comments (1)
README.md (1)

118-119: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Keep the root README entry higher-level.

This is too implementation-specific for the root README. Move the provider-routing and MCP detail into the plugin docs or ROADMAP and keep the catalog entry concise.

As per coding guidelines, keep the root README short, nontechnical, and focused on end users or agents installing and using the Socket marketplace.

Suggested wording
- `cloud-inference-skills`: cloud AI inference, training, model conversion, and GPU infrastructure routing for Runpod, Hugging Face, AWS, Vast.ai, CoreWeave, and similar providers, with bundled Runpod MCP server configuration, upstream Runpod skill mirrors, and first-party Hugging Face/AWS handoffs
+ `cloud-inference-skills`: cloud AI inference and GPU workflow routing
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 118 - 119, The root README catalog entries for
cloud-inference-skills and agentdeck are too implementation-specific; trim them
to high-level, user-facing descriptions only. Move the provider-routing, MCP
server, and hook details into the relevant plugin docs or ROADMAP, and keep the
README focused on concise marketplace-oriented summaries that help end users or
agents understand what each plugin does at a glance.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@plugins/cloud-inference-skills/skills/companion-clis/SKILL.md`:
- Around line 194-201: The SKILL.md documentation still has unlabeled fenced
code blocks, which triggers markdownlint warnings. Update the remaining fences
in the affected docs section by adding a language tag such as text to each
block. Use the fenced examples shown near the list of files, and make sure any
similar unlabeled fences elsewhere in this doc are tagged as well so
markdownlint-cli2 passes cleanly.

In `@plugins/cloud-inference-skills/skills/flash/SKILL.md`:
- Around line 70-87: The flash skill should require an explicit human approval
checkpoint before any destructive commands such as flash env delete, flash app
delete, and flash undeploy variants are executed. Update SKILL.md near the
command examples to instruct the agent to restate the target
account/region/resource and wait for confirmation before proceeding, especially
for --all and --force cleanup paths. Reference the destructive command sections
around flash env delete, flash app delete, and flash undeploy so the safety gate
is applied consistently.

In
`@plugins/cloud-inference-skills/skills/runpodctl/evals/pod-auto-terminate.eval.md`:
- Around line 5-6: The eval in pod-auto-terminate.eval.md is stale because it
hard-codes an already-past termination timestamp, so update the scenario text to
use a future UTC date instead. Adjust the prompt under the pod auto-terminate
example so the Runpodctl command is validated against a timestamp that is safely
after the current date, keeping the same intent while avoiding rejection by
timestamp checks. Refer to the pod auto-terminate eval content itself when
updating the Docker image and termination-time wording.

In `@plugins/cloud-inference-skills/skills/runpodctl/SKILL.md`:
- Around line 128-129: The runpodctl examples are inconsistent because the hub
deployment example uses a GPU display name with --hub-id, which is not accepted.
Update the examples in SKILL.md around the serverless create commands so the
template-id example keeps the NVIDIA GeForce RTX 4090 value, and the hub-id
example either uses a pool ID placeholder for --gpu-id or omits --gpu-id
entirely; keep the guidance aligned with the serverless create syntax.

In `@ROADMAP.md`:
- Line 155: The milestone checklist is inconsistent because the validation task
was unchecked while Milestone 7 remains marked completed. Update the ROADMAP
entry that contains the validation task by either restoring it to checked status
or moving it back under an open milestone, and make sure the milestone status
matches the task state. Use the Milestone 7 section and the root metadata
validation task text to locate the right checklist item.

---

Outside diff comments:
In `@docs/architecture/architecture.json`:
- Around line 495-563: The generated product graph in architecture.json is
missing the new cloud-inference-skills plugin, so the marketplace and
architecture docs are out of sync. Update the products/targets/relationships
entries that correspond to the marketplace update, using the existing
codex-plugin records as the pattern and adding the missing ownership edges for
cloud-inference-skills alongside agentdeck. Regenerate the affected graph
sections so the architecture.json entries reflect the current
.agents/plugins/marketplace.json state.

In `@docs/architecture/ARCHITECTURE.md`:
- Around line 13-29: Add cloud-inference-skills to the architecture snapshot
because the generated inventory/evidence graph is out of sync with the current
marketplace. Regenerate the docs that populate ARCHITECTURE.md from the
marketplace source used by the plugin inventory, and ensure the updated
entries/targets appear alongside the existing plugin lists such as socket and
agentdeck so the snapshot matches the latest .agents/plugins/marketplace.json
state.

---

Nitpick comments:
In `@README.md`:
- Around line 118-119: The root README catalog entries for
cloud-inference-skills and agentdeck are too implementation-specific; trim them
to high-level, user-facing descriptions only. Move the provider-routing, MCP
server, and hook details into the relevant plugin docs or ROADMAP, and keep the
README focused on concise marketplace-oriented summaries that help end users or
agents understand what each plugin does at a glance.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: c11d316d-b9b4-4e25-8530-1cdb9a8e23b3

📥 Commits

Reviewing files that changed from the base of the PR and between 92a1f29 and bb9f403.

⛔ Files ignored due to path filters (10)
  • plugins/agent-portability-skills/uv.lock is excluded by !**/*.lock
  • plugins/agentdeck/assets/agentdeck-icon.svg is excluded by !**/*.svg
  • plugins/apple-dev-skills/uv.lock is excluded by !**/*.lock
  • plugins/cardhop-app/mcp/uv.lock is excluded by !**/*.lock
  • plugins/cloud-inference-skills/assets/cloud-inference-icon.svg is excluded by !**/*.svg
  • plugins/productivity-skills/uv.lock is excluded by !**/*.lock
  • plugins/python-skills/uv.lock is excluded by !**/*.lock
  • plugins/things-app/mcp/uv.lock is excluded by !**/*.lock
  • plugins/things-app/uv.lock is excluded by !**/*.lock
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (70)
  • .agents/plugins/marketplace.json
  • CONTRIBUTING.md
  • README.md
  • ROADMAP.md
  • docs/agents/token-efficiency-automation-audit-2026-06-22.md
  • docs/architecture/ARCHITECTURE.md
  • docs/architecture/architecture.json
  • docs/maintainers/cloud-inference-skills-plugin-plan.md
  • docs/maintainers/xcode-27-agentic-tooling-plan.md
  • plugins/agent-portability-skills/.codex-plugin/plugin.json
  • plugins/agent-portability-skills/pyproject.toml
  • plugins/agentdeck/.codex-plugin/plugin.json
  • plugins/agentdeck/AGENTS.md
  • plugins/agentdeck/docs/agent-configuration-sync-plan.md
  • plugins/agentdeck/docs/desktop-bridge-mcp-skill-plan.md
  • plugins/agentdeck/docs/thread-title-hooks.md
  • plugins/agentdeck/hooks/capture-session-start.sh
  • plugins/agentdeck/hooks/hooks.json
  • plugins/agentdeck/hooks/run-thread-title-hook.sh
  • plugins/agentdeck/scripts/session-start-hook.mjs
  • plugins/android-dev-skills/.codex-plugin/plugin.json
  • plugins/apple-dev-skills/.codex-plugin/plugin.json
  • plugins/apple-dev-skills/pyproject.toml
  • plugins/cardhop-app/.codex-plugin/plugin.json
  • plugins/cardhop-app/mcp/pyproject.toml
  • plugins/cloud-deployment-skills/.codex-plugin/plugin.json
  • plugins/cloud-inference-skills/.agents/skills/companion-clis
  • plugins/cloud-inference-skills/.agents/skills/flash
  • plugins/cloud-inference-skills/.agents/skills/runpodctl
  • plugins/cloud-inference-skills/.codex-plugin/plugin.json
  • plugins/cloud-inference-skills/.mcp.json
  • plugins/cloud-inference-skills/AGENTS.md
  • plugins/cloud-inference-skills/skills-lock.json
  • plugins/cloud-inference-skills/skills/cloud-inference-routing-workflow/SKILL.md
  • plugins/cloud-inference-skills/skills/companion-clis/SKILL.md
  • plugins/cloud-inference-skills/skills/flash/SKILL.md
  • plugins/cloud-inference-skills/skills/flash/evals/client-external-image.eval.md
  • plugins/cloud-inference-skills/skills/flash/evals/connect-existing-endpoint.eval.md
  • plugins/cloud-inference-skills/skills/flash/evals/cpu-gpu-pipeline.eval.md
  • plugins/cloud-inference-skills/skills/flash/evals/dev-loop-iteration.eval.md
  • plugins/cloud-inference-skills/skills/flash/evals/fixtures/dev-loop/main.py
  • plugins/cloud-inference-skills/skills/flash/evals/lb-multi-route-api.eval.md
  • plugins/cloud-inference-skills/skills/flash/evals/qb-gpu-function.eval.md
  • plugins/cloud-inference-skills/skills/runpodctl/SKILL.md
  • plugins/cloud-inference-skills/skills/runpodctl/evals/cpu-pod-create.eval.md
  • plugins/cloud-inference-skills/skills/runpodctl/evals/hub-deploy-serverless.eval.md
  • plugins/cloud-inference-skills/skills/runpodctl/evals/image-to-template-to-serverless.eval.md
  • plugins/cloud-inference-skills/skills/runpodctl/evals/pod-auto-terminate.eval.md
  • plugins/cloud-inference-skills/skills/runpodctl/evals/pod-from-template-with-volume.eval.md
  • plugins/cloud-inference-skills/skills/runpodctl/evals/pod-ssh-connect.eval.md
  • plugins/cloud-inference-skills/skills/runpodctl/evals/serverless-autoscale-by-requests.eval.md
  • plugins/dotnet-skills/.codex-plugin/plugin.json
  • plugins/game-dev-skills/.codex-plugin/plugin.json
  • plugins/network-protocol-skills/.codex-plugin/plugin.json
  • plugins/productivity-skills/.codex-plugin/plugin.json
  • plugins/productivity-skills/pyproject.toml
  • plugins/python-skills/.codex-plugin/plugin.json
  • plugins/python-skills/pyproject.toml
  • plugins/reverse-engineering-skills/.codex-plugin/plugin.json
  • plugins/rust-skills/.codex-plugin/plugin.json
  • plugins/server-side-jvm/.codex-plugin/plugin.json
  • plugins/server-side-swift/.codex-plugin/plugin.json
  • plugins/spotify/.codex-plugin/plugin.json
  • plugins/swift-lang/.codex-plugin/plugin.json
  • plugins/swiftasb-skills/.codex-plugin/plugin.json
  • plugins/things-app/.codex-plugin/plugin.json
  • plugins/things-app/mcp/pyproject.toml
  • plugins/things-app/pyproject.toml
  • plugins/web-dev-skills/.codex-plugin/plugin.json
  • pyproject.toml

Comment on lines +194 to +201
```
handler.py # serverless worker implementation
Dockerfile # container definition
README.md # documentation shown on Hub listing
.runpod/
hub.json # Hub metadata: title, description, category, GPU config, env vars
tests.json # test cases run after each release
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Tag the remaining fenced blocks.

markdownlint-cli2 is already warning on these unlabeled fences. Add a language tag (text is fine here) so the docs lint cleanly.

🛠️ Suggested fix
-```
+```text
-```
+```text

Also applies to: 352-355

🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 194-194: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🪛 SkillSpector (2.3.7)

[warning] 288: [RP1] null: Docker image references without a specific tag (:latest is implicit) or digest (@sha256:...) can be silently replaced by a malicious image.

Remediation: Pin the image: image:tag or image@sha256:abc123

(MCP Rug Pull (RP1))


[warning] 289: [RP1] null: Docker image references without a specific tag (:latest is implicit) or digest (@sha256:...) can be silently replaced by a malicious image.

Remediation: Pin the image: image:tag or image@sha256:abc123

(MCP Rug Pull (RP1))


[warning] 290: [RP1] null: Docker image references without a specific tag (:latest is implicit) or digest (@sha256:...) can be silently replaced by a malicious image.

Remediation: Pin the image: image:tag or image@sha256:abc123

(MCP Rug Pull (RP1))


[warning] 383: [E5] Cloud Storage Exfiltration: Data is uploaded to cloud storage (S3 / GCS / Azure Blob). This may be a legitimate backup or exfiltration to an external bucket. Manual review is recommended.

Remediation: Verify the destination bucket is trusted and owned by you. Never upload credentials, secrets, or workspace contents to external or unverified cloud storage.

(Data Exfiltration (E5))


[warning] 389: [E5] Cloud Storage Exfiltration: Data is uploaded to cloud storage (S3 / GCS / Azure Blob). This may be a legitimate backup or exfiltration to an external bucket. Manual review is recommended.

Remediation: Verify the destination bucket is trusted and owned by you. Never upload credentials, secrets, or workspace contents to external or unverified cloud storage.

(Data Exfiltration (E5))


[warning] 401: [E5] Cloud Storage Exfiltration: Data is uploaded to cloud storage (S3 / GCS / Azure Blob). This may be a legitimate backup or exfiltration to an external bucket. Manual review is recommended.

Remediation: Verify the destination bucket is trusted and owned by you. Never upload credentials, secrets, or workspace contents to external or unverified cloud storage.

(Data Exfiltration (E5))


[warning] 417: [E5] Cloud Storage Exfiltration: Data is uploaded to cloud storage (S3 / GCS / Azure Blob). This may be a legitimate backup or exfiltration to an external bucket. Manual review is recommended.

Remediation: Verify the destination bucket is trusted and owned by you. Never upload credentials, secrets, or workspace contents to external or unverified cloud storage.

(Data Exfiltration (E5))


[warning] 103: [PE2] Sudo/Root Execution: Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Remediation: Avoid sudo/root unless strictly required. Prefer least-privilege patterns. If elevation is needed, document the justification and scope.

(Privilege Escalation (PE2))


[warning] 103: [PE2] Sudo/Root Execution: Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Remediation: Avoid sudo/root unless strictly required. Prefer least-privilege patterns. If elevation is needed, document the justification and scope.

(Privilege Escalation (PE2))


[warning] 104: [PE2] Sudo/Root Execution: Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Remediation: Avoid sudo/root unless strictly required. Prefer least-privilege patterns. If elevation is needed, document the justification and scope.

(Privilege Escalation (PE2))


[warning] 106: [PE2] Sudo/Root Execution: Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Remediation: Avoid sudo/root unless strictly required. Prefer least-privilege patterns. If elevation is needed, document the justification and scope.

(Privilege Escalation (PE2))


[warning] 107: [PE2] Sudo/Root Execution: Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Remediation: Avoid sudo/root unless strictly required. Prefer least-privilege patterns. If elevation is needed, document the justification and scope.

(Privilege Escalation (PE2))


[warning] 109: [PE2] Sudo/Root Execution: Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Remediation: Avoid sudo/root unless strictly required. Prefer least-privilege patterns. If elevation is needed, document the justification and scope.

(Privilege Escalation (PE2))


[warning] 110: [PE2] Sudo/Root Execution: Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Remediation: Avoid sudo/root unless strictly required. Prefer least-privilege patterns. If elevation is needed, document the justification and scope.

(Privilege Escalation (PE2))


[warning] 110: [PE2] Sudo/Root Execution: Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Remediation: Avoid sudo/root unless strictly required. Prefer least-privilege patterns. If elevation is needed, document the justification and scope.

(Privilege Escalation (PE2))


[error] 143: [PE3] Credential Access: Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Remediation: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.

(Privilege Escalation (PE3))


[error] 104: [PE3] Credential Access: Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Remediation: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.

(Privilege Escalation (PE3))


[error] 105: [PE3] Credential Access: Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Remediation: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.

(Privilege Escalation (PE3))


[error] 106: [PE3] Credential Access: Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Remediation: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.

(Privilege Escalation (PE3))


[error] 106: [PE3] Credential Access: Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Remediation: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.

(Privilege Escalation (PE3))


[error] 107: [PE3] Credential Access: Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Remediation: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.

(Privilege Escalation (PE3))


[error] 107: [PE3] Credential Access: Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Remediation: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.

(Privilege Escalation (PE3))


[error] 108: [PE3] Credential Access: Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Remediation: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.

(Privilege Escalation (PE3))


[error] 108: [PE3] Credential Access: Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Remediation: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.

(Privilege Escalation (PE3))


[error] 142: [PE3] Credential Access: Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Remediation: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.

(Privilege Escalation (PE3))


[error] 103: [TM2] Chaining Abuse: Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Remediation: Limit tool chaining depth and validate the output of each tool before passing it to the next. Require explicit user approval for multi-step chains.

(Tool Misuse (TM2))


[error] 104: [TM2] Chaining Abuse: Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Remediation: Limit tool chaining depth and validate the output of each tool before passing it to the next. Require explicit user approval for multi-step chains.

(Tool Misuse (TM2))


[error] 107: [TM2] Chaining Abuse: Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Remediation: Limit tool chaining depth and validate the output of each tool before passing it to the next. Require explicit user approval for multi-step chains.

(Tool Misuse (TM2))


[error] 110: [TM2] Chaining Abuse: Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Remediation: Limit tool chaining depth and validate the output of each tool before passing it to the next. Require explicit user approval for multi-step chains.

(Tool Misuse (TM2))


[error] 110: [TM2] Chaining Abuse: Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Remediation: Limit tool chaining depth and validate the output of each tool before passing it to the next. Require explicit user approval for multi-step chains.

(Tool Misuse (TM2))


[error] 106: [TM2] Chaining Abuse: Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Remediation: Limit tool chaining depth and validate the output of each tool before passing it to the next. Require explicit user approval for multi-step chains.

(Tool Misuse (TM2))


[error] 109: [TM2] Chaining Abuse: Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Remediation: Limit tool chaining depth and validate the output of each tool before passing it to the next. Require explicit user approval for multi-step chains.

(Tool Misuse (TM2))

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@plugins/cloud-inference-skills/skills/companion-clis/SKILL.md` around lines
194 - 201, The SKILL.md documentation still has unlabeled fenced code blocks,
which triggers markdownlint warnings. Update the remaining fences in the
affected docs section by adding a language tag such as text to each block. Use
the fenced examples shown near the list of files, and make sure any similar
unlabeled fences elsewhere in this doc are tagged as well so markdownlint-cli2
passes cleanly.

Source: Linters/SAST tools

Comment on lines +70 to +87
# delete environment + tear down resources
flash env delete staging
# list flash apps in your account
flash app list
# create a flash app
flash app create my-app
# show an app's environments + builds
flash app get my-app
# delete an app and all its resources
flash app delete my-app
# list all active endpoints
flash undeploy list
# remove a specific endpoint
flash undeploy my-endpoint
# remove all endpoints (--interactive/-i to pick, --force/-f to skip prompts)
flash undeploy --all
# remove endpoints whose code no longer exists locally
flash undeploy --cleanup-stale

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

Add a human confirmation gate before destructive cloud actions.

The skill documents teardown commands (undeploy, env delete, app delete) and --force/--all variants, but it never tells the agent to pause for explicit approval or restate the target account/region/resources first. That makes remote deletion too easy to trigger autonomously.

Based on learnings, provider credentials, account configuration, API mutation, billing, model weights, private datasets, generated artifacts, and production endpoints are high-impact operations, and the cleanup path should be verified before taking action.

Proposed safety note
+Before any destructive action (`undeploy`, `env delete`, `app delete`, `--cleanup-stale`, `--all`), ask for explicit confirmation and restate the account, region, and resources that will be removed.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# delete environment + tear down resources
flash env delete staging
# list flash apps in your account
flash app list
# create a flash app
flash app create my-app
# show an app's environments + builds
flash app get my-app
# delete an app and all its resources
flash app delete my-app
# list all active endpoints
flash undeploy list
# remove a specific endpoint
flash undeploy my-endpoint
# remove all endpoints (--interactive/-i to pick, --force/-f to skip prompts)
flash undeploy --all
# remove endpoints whose code no longer exists locally
flash undeploy --cleanup-stale
Before any destructive action (`undeploy`, `env delete`, `app delete`, `--cleanup-stale`, `--all`), ask for explicit confirmation and restate the account, region, and resources that will be removed.
# delete environment + tear down resources
flash env delete staging
# list flash apps in your account
flash app list
# create a flash app
flash app create my-app
# show an app's environments + builds
flash app get my-app
# delete an app and all its resources
flash app delete my-app
# list all active endpoints
flash undeploy list
# remove a specific endpoint
flash undeploy my-endpoint
# remove all endpoints (--interactive/-i to pick, --force/-f to skip prompts)
flash undeploy --all
# remove endpoints whose code no longer exists locally
flash undeploy --cleanup-stale
🧰 Tools
🪛 SkillSpector (2.3.7)

[warning] 84: [EA2] Autonomous Decision Making: Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Remediation: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.

(Excessive Agency (EA2))


[error] 32: [RA1] Self-Modification: Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Remediation: Prevent the skill from modifying its own code, SKILL.md, or configuration files. Treat skill files as read-only at runtime.

(Rogue Agent (RA1))

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@plugins/cloud-inference-skills/skills/flash/SKILL.md` around lines 70 - 87,
The flash skill should require an explicit human approval checkpoint before any
destructive commands such as flash env delete, flash app delete, and flash
undeploy variants are executed. Update SKILL.md near the command examples to
instruct the agent to restate the target account/region/resource and wait for
confirmation before proceeding, especially for --all and --force cleanup paths.
Reference the destructive command sections around flash env delete, flash app
delete, and flash undeploy so the safety gate is applied consistently.

Sources: Learnings, Linters/SAST tools

Comment on lines +5 to +6
Create a GPU pod from the Docker image `myorg/trainer:latest` that automatically
terminates itself at 2026-07-01T00:00:00Z. Give me the exact command.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Use a future termination timestamp.

As written, the eval hard-codes 2026-07-01T00:00:00Z, which is already in the past as of July 4, 2026. That makes the case stale and may reject a valid command if the CLI validates the timestamp.

🔧 Suggested fix
-Create a GPU pod from the Docker image `myorg/trainer:latest` that automatically
-terminates itself at 2026-07-01T00:00:00Z. Give me the exact command.
+Create a GPU pod from the Docker image `myorg/trainer:latest` that automatically
+terminates itself at 2027-07-01T00:00:00Z. Give me the exact command.
@@
-- Uses `--terminate-after 2026-07-01T00:00:00Z`
+- Uses `--terminate-after 2027-07-01T00:00:00Z`

Also applies to: 19-20

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@plugins/cloud-inference-skills/skills/runpodctl/evals/pod-auto-terminate.eval.md`
around lines 5 - 6, The eval in pod-auto-terminate.eval.md is stale because it
hard-codes an already-past termination timestamp, so update the scenario text to
use a future UTC date instead. Adjust the prompt under the pod auto-terminate
example so the Runpodctl command is validated against a timestamp that is safely
after the current date, keeping the same intent while avoiding rejection by
timestamp checks. Refer to the pod auto-terminate eval content itself when
updating the Docker image and termination-time wording.

Comment on lines +128 to +129
runpodctl serverless create --template-id <id> --gpu-id "NVIDIA GeForce RTX 4090" --model-reference https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct:main # Attach & cache a HF model (template or hub, GPU only)
runpodctl serverless create --hub-id <id> --gpu-id "NVIDIA GeForce RTX 4090" --model-reference https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct:main # Attach a model on a hub deploy

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Map the relevant file and search for related command examples/docs.
git ls-files 'plugins/cloud-inference-skills/skills/runpodctl/*' 'plugins/cloud-inference-skills/**/*' | sed -n '1,200p'

echo '--- SKILL.md outline ---'
ast-grep outline plugins/cloud-inference-skills/skills/runpodctl/SKILL.md --view expanded || true

echo '--- Search for serverless create examples and gpu-id mentions ---'
rg -n --context 2 --fixed-strings 'runpodctl serverless create' plugins/cloud-inference-skills || true
rg -n --context 2 --fixed-strings '--gpu-id' plugins/cloud-inference-skills || true
rg -n --context 2 --fixed-strings 'hub-id' plugins/cloud-inference-skills || true
rg -n --context 2 --fixed-strings 'template-id' plugins/cloud-inference-skills || true

Repository: gaelic-ghost/socket

Length of output: 24679


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Read the target region with line numbers.
sed -n '110,140p' plugins/cloud-inference-skills/skills/runpodctl/SKILL.md | cat -n

Repository: gaelic-ghost/socket

Length of output: 3105


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect the repo for any guidance or companion notes referencing this example.
rg -n --context 2 --fixed-strings 'NVIDIA GeForce RTX 4090' plugins/cloud-inference-skills || true
rg -n --context 2 --fixed-strings 'pool ID' plugins/cloud-inference-skills || true
rg -n --context 2 --fixed-strings 'hub path' plugins/cloud-inference-skills || true

Repository: gaelic-ghost/socket

Length of output: 6453


Use a pool ID or omit --gpu-id on the hub example. --hub-id rejects GPU display names here; keep "NVIDIA GeForce RTX 4090" on the --template-id example only, and switch the hub example to a pool-ID placeholder or no --gpu-id.

🧰 Tools
🪛 SkillSpector (2.3.7)

[warning] 26: [RA2] Session Persistence: Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Remediation: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.

(Rogue Agent (RA2))


[warning] 29: [RA2] Session Persistence: Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Remediation: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.

(Rogue Agent (RA2))

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@plugins/cloud-inference-skills/skills/runpodctl/SKILL.md` around lines 128 -
129, The runpodctl examples are inconsistent because the hub deployment example
uses a GPU display name with --hub-id, which is not accepted. Update the
examples in SKILL.md around the serverless create commands so the template-id
example keeps the NVIDIA GeForce RTX 4090 value, and the hub-id example either
uses a pool ID placeholder for --gpu-id or omits --gpu-id entirely; keep the
guidance aligned with the serverless create syntax.

Comment thread ROADMAP.md
- [x] Update Python plugin metadata after the first new skill slice lands.
- [x] Run child validation with `uv run scripts/validate_repo_metadata.py`, `uv run pytest`, `uv run ruff check .`, and `uv run mypy .`.
- [x] Run root metadata validation with `uv run scripts/validate_socket_metadata.py`.
- [ ] Run root metadata validation with `uv run scripts/validate_socket_metadata.py`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Keep the completed milestone checklist consistent.

Milestone 7 is still marked Completed, but this item is now unchecked. Either restore [x] or move the validation task back into an open milestone so the history stays internally consistent.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@ROADMAP.md` at line 155, The milestone checklist is inconsistent because the
validation task was unchecked while Milestone 7 remains marked completed. Update
the ROADMAP entry that contains the validation task by either restoring it to
checked status or moving it back under an open milestone, and make sure the
milestone status matches the task state. Use the Milestone 7 section and the
root metadata validation task text to locate the right checklist item.

@gaelic-ghost
gaelic-ghost merged commit 2ae9277 into main Jul 4, 2026
2 checks passed
@gaelic-ghost
gaelic-ghost deleted the plugin/cloud-inference-skills branch July 4, 2026 04:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant