plugin: add cloud inference skills#104
Conversation
|
Warning Review limit reached
Next review available in: 48 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the 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 configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughRenames 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. ChangesAgentDeck rename
Cloud Inference Skills plugin
Plugin version bumps
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
💡 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" |
There was a problem hiding this comment.
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 👍 / 👎.
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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 👍 / 👎.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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 winAdd
cloud-inference-skillsto the generated architecture snapshot.This update captures
agentdeck, but the new marketplace plugin is still missing from the inventory/evidence graph, sodocs/architecture/ARCHITECTURE.mdno 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 winAdd
cloud-inference-skillsto the graph here as well.The marketplace now includes the new plugin, but this generated product/target/relationship graph still only reflects
agentdeck. That leavesdocs/architecture/architecture.jsonout 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 winKeep 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
⛔ Files ignored due to path filters (10)
plugins/agent-portability-skills/uv.lockis excluded by!**/*.lockplugins/agentdeck/assets/agentdeck-icon.svgis excluded by!**/*.svgplugins/apple-dev-skills/uv.lockis excluded by!**/*.lockplugins/cardhop-app/mcp/uv.lockis excluded by!**/*.lockplugins/cloud-inference-skills/assets/cloud-inference-icon.svgis excluded by!**/*.svgplugins/productivity-skills/uv.lockis excluded by!**/*.lockplugins/python-skills/uv.lockis excluded by!**/*.lockplugins/things-app/mcp/uv.lockis excluded by!**/*.lockplugins/things-app/uv.lockis excluded by!**/*.lockuv.lockis excluded by!**/*.lock
📒 Files selected for processing (70)
.agents/plugins/marketplace.jsonCONTRIBUTING.mdREADME.mdROADMAP.mddocs/agents/token-efficiency-automation-audit-2026-06-22.mddocs/architecture/ARCHITECTURE.mddocs/architecture/architecture.jsondocs/maintainers/cloud-inference-skills-plugin-plan.mddocs/maintainers/xcode-27-agentic-tooling-plan.mdplugins/agent-portability-skills/.codex-plugin/plugin.jsonplugins/agent-portability-skills/pyproject.tomlplugins/agentdeck/.codex-plugin/plugin.jsonplugins/agentdeck/AGENTS.mdplugins/agentdeck/docs/agent-configuration-sync-plan.mdplugins/agentdeck/docs/desktop-bridge-mcp-skill-plan.mdplugins/agentdeck/docs/thread-title-hooks.mdplugins/agentdeck/hooks/capture-session-start.shplugins/agentdeck/hooks/hooks.jsonplugins/agentdeck/hooks/run-thread-title-hook.shplugins/agentdeck/scripts/session-start-hook.mjsplugins/android-dev-skills/.codex-plugin/plugin.jsonplugins/apple-dev-skills/.codex-plugin/plugin.jsonplugins/apple-dev-skills/pyproject.tomlplugins/cardhop-app/.codex-plugin/plugin.jsonplugins/cardhop-app/mcp/pyproject.tomlplugins/cloud-deployment-skills/.codex-plugin/plugin.jsonplugins/cloud-inference-skills/.agents/skills/companion-clisplugins/cloud-inference-skills/.agents/skills/flashplugins/cloud-inference-skills/.agents/skills/runpodctlplugins/cloud-inference-skills/.codex-plugin/plugin.jsonplugins/cloud-inference-skills/.mcp.jsonplugins/cloud-inference-skills/AGENTS.mdplugins/cloud-inference-skills/skills-lock.jsonplugins/cloud-inference-skills/skills/cloud-inference-routing-workflow/SKILL.mdplugins/cloud-inference-skills/skills/companion-clis/SKILL.mdplugins/cloud-inference-skills/skills/flash/SKILL.mdplugins/cloud-inference-skills/skills/flash/evals/client-external-image.eval.mdplugins/cloud-inference-skills/skills/flash/evals/connect-existing-endpoint.eval.mdplugins/cloud-inference-skills/skills/flash/evals/cpu-gpu-pipeline.eval.mdplugins/cloud-inference-skills/skills/flash/evals/dev-loop-iteration.eval.mdplugins/cloud-inference-skills/skills/flash/evals/fixtures/dev-loop/main.pyplugins/cloud-inference-skills/skills/flash/evals/lb-multi-route-api.eval.mdplugins/cloud-inference-skills/skills/flash/evals/qb-gpu-function.eval.mdplugins/cloud-inference-skills/skills/runpodctl/SKILL.mdplugins/cloud-inference-skills/skills/runpodctl/evals/cpu-pod-create.eval.mdplugins/cloud-inference-skills/skills/runpodctl/evals/hub-deploy-serverless.eval.mdplugins/cloud-inference-skills/skills/runpodctl/evals/image-to-template-to-serverless.eval.mdplugins/cloud-inference-skills/skills/runpodctl/evals/pod-auto-terminate.eval.mdplugins/cloud-inference-skills/skills/runpodctl/evals/pod-from-template-with-volume.eval.mdplugins/cloud-inference-skills/skills/runpodctl/evals/pod-ssh-connect.eval.mdplugins/cloud-inference-skills/skills/runpodctl/evals/serverless-autoscale-by-requests.eval.mdplugins/dotnet-skills/.codex-plugin/plugin.jsonplugins/game-dev-skills/.codex-plugin/plugin.jsonplugins/network-protocol-skills/.codex-plugin/plugin.jsonplugins/productivity-skills/.codex-plugin/plugin.jsonplugins/productivity-skills/pyproject.tomlplugins/python-skills/.codex-plugin/plugin.jsonplugins/python-skills/pyproject.tomlplugins/reverse-engineering-skills/.codex-plugin/plugin.jsonplugins/rust-skills/.codex-plugin/plugin.jsonplugins/server-side-jvm/.codex-plugin/plugin.jsonplugins/server-side-swift/.codex-plugin/plugin.jsonplugins/spotify/.codex-plugin/plugin.jsonplugins/swift-lang/.codex-plugin/plugin.jsonplugins/swiftasb-skills/.codex-plugin/plugin.jsonplugins/things-app/.codex-plugin/plugin.jsonplugins/things-app/mcp/pyproject.tomlplugins/things-app/pyproject.tomlplugins/web-dev-skills/.codex-plugin/plugin.jsonpyproject.toml
| ``` | ||
| 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 | ||
| ``` |
There was a problem hiding this comment.
📐 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-```
+```textAlso 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
| # 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 |
There was a problem hiding this comment.
🩺 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.
| # 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
| 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. |
There was a problem hiding this comment.
🎯 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.
| 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 |
There was a problem hiding this comment.
🎯 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 || trueRepository: 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 -nRepository: 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 || trueRepository: 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.
| - [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`. |
There was a problem hiding this comment.
📐 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.
Summary
Verification
Summary by CodeRabbit
cloud-inference-skillsplugin with cloud inference, routing, and Runpod-related skills.agentdeckplugin entry and updated related plugin references.8.2.0.