feat: add AWS, GCP, and Azure skill files - #288
Conversation
The agent can now load_skill('aws'), load_skill('gcp'), or
load_skill('azure') to get provider-specific CLI commands, Terraform
examples, error recovery steps, and critical rules — instead of
relying solely on the generic cloud_access.md core prompt.
Each skill follows the same structure as OVH/Scaleway:
- Discovery, compute, Kubernetes, storage, database, networking commands
- Terraform resource examples (provider block auto-generated)
- Multi-account support (AWS), resource group rules (Azure), project setup (GCP)
- Error recovery playbook per provider
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
📝 WalkthroughWalkthroughRestricts cloud command patterns to provider-specific CLI prefixes, mandates invoking load_skill('') on cloud_exec failures, and adds/rewrites provider skill documents for AWS, Azure, GCP, OVH, and Scaleway to be CLI-first with expanded CLI references and RCA workflows. Changes
Sequence Diagram(s)sequenceDiagram
participant Agent as Agent/System
participant CloudExec as cloud_exec()
participant SkillRegistry as load_skill()
participant Provider as Provider CLI
Agent->>CloudExec: Execute cloud command<br/>(provider-specific CLI)
CloudExec->>Provider: Run command
Provider-->>CloudExec: Failure (syntax/flag/error)
CloudExec-->>Agent: Failure response
Agent->>SkillRegistry: load_skill('<provider>')
SkillRegistry-->>Agent: Provider skill (CLI rules/docs)
Agent->>CloudExec: Retry command (apply provider skill guidance)
CloudExec->>Provider: Run corrected command
Provider-->>CloudExec: Success
CloudExec-->>Agent: Result
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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 |
Rewrite AWS, GCP, and Azure SKILL.md files from surface-level cheat sheets into authoritative references the agent actually needs: - Full CLI reference per service (EC2/EKS/RDS/S3/Lambda/CloudWatch, Compute/GKE/SQL/Storage/Run/Logging, VMs/AKS/SQL/Storage/AppService) - CloudWatch Insights query patterns, Cloud Logging filter syntax, KQL Log Analytics queries — real investigation tooling - Complete Terraform examples sourced from Context7 provider docs (aws_eks_cluster with IAM, google_container_cluster with node pools, azurerm_kubernetes_cluster with identity) - RCA investigation workflows per provider (10+ step playbooks) - Error recovery with Context7 library IDs for each provider - Region mapping per provider - Provider-specific gotchas (AWS multi-account, Azure resource groups, GCP API enablement) Trim cloud_access.md from 73 lines to 10 — just the cloud_exec signature and "load the skill for details". The skills are now the authoritative source; the core prompt just explains the tool exists. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ered skill loading - Rewrite OVH SKILL.md (125→305 lines): managed databases, block storage, load balancers, container registry, DNS, private networks, full RCA workflow - Rewrite Scaleway SKILL.md (132→364 lines): security groups, VPC, load balancers, serverless, secret manager, DNS, full RCA workflow - Remove Terraform/iac_tool from all 5 cloud provider skills (unused) - cloud_access.md: trigger load_skill on failure instead of suggesting it upfront - error_handling.md: add CLOUD COMMAND FAILURES rule to load skill before retry Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
beng360
left a comment
There was a problem hiding this comment.
Self-review: 5 inline findings — 1 minor formatting bug to fix, 4 observations for awareness.
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@server/chat/backend/agent/skills/integrations/ovh/SKILL.md`:
- Around line 115-135: The docs show kubectl invocations using terminal_exec
which violates the tool contract; replace each terminal_exec(...) example with
cloud_exec('ovh', '<kubectl command>') calls so the provider command path is
used (e.g. change terminal_exec('kubectl --kubeconfig=/tmp/kubeconfig.yaml get
pods -n <NS> -o wide') to cloud_exec('ovh', 'kubectl
--kubeconfig=/tmp/kubeconfig.yaml get pods -n <NS> -o wide') and do the same for
describe, logs, get events, top, get hpa/deployments/pvc/svc/ingress and rollout
history); keep the kubeconfig generation step using cloud_exec('ovh', 'cloud
kube kubeconfig generate <CLUSTER_ID> ...', output_file='/tmp/kubeconfig.yaml')
intact.
In `@server/chat/backend/agent/skills/integrations/scaleway/SKILL.md`:
- Around line 357-360: The Context7 lookup in the CLI troubleshooting section
uses the Terraform provider ID string '/scaleway/terraform-provider-scaleway'
via the mcp_context7_get_library_docs call, which is inappropriate for CLI
failures; update the CLI failure guidance by either removing that Context7
reference or replacing it with a Scaleway CLI-specific Context7 ID (if
available), and ensure the section instead prioritizes the existing `--help`
fallback advice mentioned earlier; search for the literal
`mcp_context7_get_library_docs` call and the string
'/scaleway/terraform-provider-scaleway' in SKILL.md and modify accordingly.
🪄 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: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 1be6ec83-ca05-428f-9159-f6f5c085e0f6
📒 Files selected for processing (7)
server/chat/backend/agent/skills/core/cloud_access.mdserver/chat/backend/agent/skills/core/error_handling.mdserver/chat/backend/agent/skills/integrations/aws/SKILL.mdserver/chat/backend/agent/skills/integrations/azure/SKILL.mdserver/chat/backend/agent/skills/integrations/gcp/SKILL.mdserver/chat/backend/agent/skills/integrations/ovh/SKILL.mdserver/chat/backend/agent/skills/integrations/scaleway/SKILL.md
…7, Azure formatting
- OVH SKILL.md: change all 14 kubectl `terminal_exec` calls to `cloud_exec('ovh', 'kubectl ...')`
- Scaleway SKILL.md: fix Context7 library ID from terraform-provider to scaleway-cli
- Azure SKILL.md: add missing blank line between Subscription Setup and CLI Reference sections
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
🧹 Nitpick comments (3)
server/chat/backend/agent/skills/integrations/scaleway/SKILL.md (1)
348-360: Addload_skill('scaleway')as first retry action forcloud_execfailures.The recovery flow currently jumps to syntax/help and Context7. Add the required provider skill reload step first to keep runtime behavior consistent with core error handling.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@server/chat/backend/agent/skills/integrations/scaleway/SKILL.md` around lines 348 - 360, Add a first retry step that calls load_skill('scaleway') whenever cloud_exec failures occur: update the Error Recovery flow in SKILL.md so that immediately after general checks (resource/quotas/permissions/etc.) and before the "CLI syntax" step and the Context7 lookup, you insert a retry action to reload the provider skill by invoking load_skill('scaleway') (referencing the cloud_exec failure handling and the existing Context7 lookup mcp_context7_get_library_docs entry) so runtime behavior matches core error handling.server/chat/backend/agent/skills/integrations/azure/SKILL.md (1)
233-244: Add explicitload_skill('azure')retry step in Error Recovery.The section should explicitly state that when a
cloud_execcommand fails, retry only afterload_skill('azure'), to match the core failure-handling contract and reduce inconsistent recovery behavior.Suggested doc patch
## Error Recovery +0. **Any cloud_exec failure** → Call `load_skill('azure')` before retrying command syntax/flags. 1. **Provider not registered** → `cloud_exec('azure', 'provider register --namespace Microsoft.ContainerService')` — common: Microsoft.ContainerService, Microsoft.Sql, Microsoft.Storage, Microsoft.Web, Microsoft.Network 2. **Resource group missing** → Create one: `group create --name <RG> --location <LOC>`🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@server/chat/backend/agent/skills/integrations/azure/SKILL.md` around lines 233 - 244, Update the Error Recovery section to require an explicit retry only after calling load_skill('azure') when any cloud_exec('azure', ...) command fails: mention load_skill('azure') as the first recovery step before retrying the failing cloud_exec command, and update the CLI-errors paragraph (including the "For CLI errors" Context7 example with mcp_context7_get_library_docs) to note that retries must follow load_skill('azure') to satisfy the core failure-handling contract; reference cloud_exec and load_skill('azure') by name so readers know where to apply the retry.server/chat/backend/agent/skills/integrations/ovh/SKILL.md (1)
284-296: Include mandatoryload_skill('ovh')before retrying failed cloud commands.Line 291 and the Context7 fallback are useful, but this section should first require
load_skill('ovh')oncloud_execfailures to align with core error-handling behavior.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@server/chat/backend/agent/skills/integrations/ovh/SKILL.md` around lines 284 - 296, Add a mandatory step to call load_skill('ovh') before retrying any failed cloud_exec calls: update the "Error Recovery" list and the "Context7 lookup on failure" paragraph to instruct operators to run load_skill('ovh') when a cloud_exec('<COMMAND>') returns an error, then proceed to the existing fallback (e.g., mcp_context7_get_library_docs(context7CompatibleLibraryID='/ovh/ovhcloud-cli', topic='cloud instance create')) and CLI --help checks; reference cloud_exec and load_skill('ovh') explicitly so readers know to load the ovh skill prior to retrying or invoking Context7.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@server/chat/backend/agent/skills/integrations/azure/SKILL.md`:
- Around line 233-244: Update the Error Recovery section to require an explicit
retry only after calling load_skill('azure') when any cloud_exec('azure', ...)
command fails: mention load_skill('azure') as the first recovery step before
retrying the failing cloud_exec command, and update the CLI-errors paragraph
(including the "For CLI errors" Context7 example with
mcp_context7_get_library_docs) to note that retries must follow
load_skill('azure') to satisfy the core failure-handling contract; reference
cloud_exec and load_skill('azure') by name so readers know where to apply the
retry.
In `@server/chat/backend/agent/skills/integrations/ovh/SKILL.md`:
- Around line 284-296: Add a mandatory step to call load_skill('ovh') before
retrying any failed cloud_exec calls: update the "Error Recovery" list and the
"Context7 lookup on failure" paragraph to instruct operators to run
load_skill('ovh') when a cloud_exec('<COMMAND>') returns an error, then proceed
to the existing fallback (e.g.,
mcp_context7_get_library_docs(context7CompatibleLibraryID='/ovh/ovhcloud-cli',
topic='cloud instance create')) and CLI --help checks; reference cloud_exec and
load_skill('ovh') explicitly so readers know to load the ovh skill prior to
retrying or invoking Context7.
In `@server/chat/backend/agent/skills/integrations/scaleway/SKILL.md`:
- Around line 348-360: Add a first retry step that calls load_skill('scaleway')
whenever cloud_exec failures occur: update the Error Recovery flow in SKILL.md
so that immediately after general checks (resource/quotas/permissions/etc.) and
before the "CLI syntax" step and the Context7 lookup, you insert a retry action
to reload the provider skill by invoking load_skill('scaleway') (referencing the
cloud_exec failure handling and the existing Context7 lookup
mcp_context7_get_library_docs entry) so runtime behavior matches core error
handling.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 43a4f420-8c6a-4fd6-abc0-3b76781d0ef2
📒 Files selected for processing (3)
server/chat/backend/agent/skills/integrations/azure/SKILL.mdserver/chat/backend/agent/skills/integrations/ovh/SKILL.mdserver/chat/backend/agent/skills/integrations/scaleway/SKILL.md
|



Summary
load_skill('aws')/load_skill('gcp')/load_skill('azure')on demandcloud_access.md— the agent had no provider-specific skill to load when users asked about AWS/GCP/Azure, andload_skill('aws')returned "No skill 'aws'"What each skill covers
Test plan
load_skill('aws')returns skill content for connected AWS usersload_skill('gcp')returns skill content for connected GCP usersload_skill('azure')returns skill content for connected Azure users🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Documentation