Skip to content

feat: add AWS, GCP, and Azure skill files - #288

Closed
beng360 wants to merge 5 commits into
mainfrom
feat/cloud-provider-skills
Closed

feat: add AWS, GCP, and Azure skill files#288
beng360 wants to merge 5 commits into
mainfrom
feat/cloud-provider-skills

Conversation

@beng360

@beng360 beng360 commented Apr 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add SKILL.md files for AWS, GCP, and Azure so the agent can load_skill('aws') / load_skill('gcp') / load_skill('azure') on demand
  • Previously these three providers only had generic guidance in cloud_access.md — the agent had no provider-specific skill to load when users asked about AWS/GCP/Azure, and load_skill('aws') returned "No skill 'aws'"
  • Follows the same pattern as existing OVH and Scaleway cloud provider skills

What each skill covers

  • CLI discovery, compute, Kubernetes, storage, database, serverless, networking, monitoring commands
  • Terraform resource examples (provider block is auto-generated, skill only shows resources)
  • Provider-specific gotchas: multi-account fan-out (AWS), resource group requirement (Azure), project/API enablement (GCP)
  • Error recovery playbook per provider

Test plan

  • load_skill('aws') returns skill content for connected AWS users
  • load_skill('gcp') returns skill content for connected GCP users
  • load_skill('azure') returns skill content for connected Azure users
  • Skills appear in the CONNECTED INTEGRATIONS index when provider is connected
  • RCA background mode picks up cloud provider skills at priority 10
  • Verify SkillRegistry discovers the new directories on restart

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added documented cloud integrations for AWS, Azure, and GCP with comprehensive CLI workflows and investigation checklists.
  • Documentation

    • Expanded OVH and Scaleway provider guides with full CLI-first operational workflows, Kubernetes and database troubleshooting, and error-recovery playbooks.
    • Standardized provider-specific CLI command patterns and updated guidance to switch to the provider skill before retrying failed cloud commands.

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

coderabbitai Bot commented Apr 20, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

Restricts 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

Cohort / File(s) Summary
Core cloud guidance
server/chat/backend/agent/skills/core/cloud_access.md, server/chat/backend/agent/skills/core/error_handling.md
Replaced broad cloud-access guidance with provider-specific allowed CLI prefixes (e.g., GCP: gcloud/gsutil/bq/kubectl; AWS: aws/kubectl/eksctl; Azure: az/kubectl; OVH: ovhcloud; Scaleway: scw). Added rule: on cloud_exec failures, call load_skill('<provider>') before retrying.
AWS skill (new)
server/chat/backend/agent/skills/integrations/aws/SKILL.md
Added AWS skill doc using cloud_exec('aws', 'COMMAND'): metadata, connection check, multi-account execution rules (initial fan-out then require account_id), CLI reference across core services (EC2/EKS/S3/RDS/Lambda/CloudWatch/IAM/VPC/ELBv2), RCA workflow, error recovery, and region mapping.
Azure skill (new)
server/chat/backend/agent/skills/integrations/azure/SKILL.md
Added Azure skill doc (id: azure) constrained to cloud_exec. Details resource-group-first workflow, subscription acquisition, --resource-group requirements, AKS prerequisites (aks get-credentials before kubectl), CLI references for VMs/AKS/Storage/SQL/App Service/Monitor/Networking, RCA workflow, error recovery, and region map.
GCP skill (new)
server/chat/backend/agent/skills/integrations/gcp/SKILL.md
Added GCP skill doc (id: gcp) using cloud_exec with gcloud/gsutil/bq/kubectl patterns. Covers Compute/GKE/Cloud Storage/Cloud SQL/Cloud Run/Logging/Monitoring/IAM/Networking/BigQuery, RCA workflow, error recovery, context lookup, and region selection policy.
OVH skill (updated)
server/chat/backend/agent/skills/integrations/ovh/SKILL.md
Converted OVH to CLI-only (removed IaC/terraform tooling), bumped to v2.0, expanded CLI reference (databases, volumes, private networking, load balancers, DNS, container registry), improved kubeconfig/kubernetes troubleshooting, added RCA checklist, tightened critical rules (use --cloud-project, UUID-first selection), and updated error recovery.
Scaleway skill (updated)
server/chat/backend/agent/skills/integrations/scaleway/SKILL.md
Converted Scaleway to CLI-only (v2.0), removed IaC guidance, expanded CLI references across compute (cloud-init, volumes), networking (IPs, security groups), Kubernetes (kubeconfig, autoscaling), databases (MySQL/HA/replicas), serverless, VPC, load balancers, container registry, detailed RCA workflow, and refined critical/error rules.

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
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • Zarlanx
  • damianloch
🚥 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 'feat: add AWS, GCP, and Azure skill files' accurately summarizes the main change—adding three new provider skill documentation files.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/cloud-provider-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 and usage tips.

beng360 and others added 2 commits April 20, 2026 15:33
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 beng360 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Self-review: 5 inline findings — 1 minor formatting bug to fix, 4 observations for awareness.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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

📥 Commits

Reviewing files that changed from the base of the PR and between 2e2e740 and 51b55cc.

📒 Files selected for processing (7)
  • server/chat/backend/agent/skills/core/cloud_access.md
  • server/chat/backend/agent/skills/core/error_handling.md
  • server/chat/backend/agent/skills/integrations/aws/SKILL.md
  • server/chat/backend/agent/skills/integrations/azure/SKILL.md
  • server/chat/backend/agent/skills/integrations/gcp/SKILL.md
  • server/chat/backend/agent/skills/integrations/ovh/SKILL.md
  • server/chat/backend/agent/skills/integrations/scaleway/SKILL.md

Comment thread server/chat/backend/agent/skills/integrations/ovh/SKILL.md
Comment thread server/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>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick comments (3)
server/chat/backend/agent/skills/integrations/scaleway/SKILL.md (1)

348-360: Add load_skill('scaleway') as first retry action for cloud_exec failures.

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 explicit load_skill('azure') retry step in Error Recovery.

The section should explicitly state that when a cloud_exec command fails, retry only after load_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 mandatory load_skill('ovh') before retrying failed cloud commands.

Line 291 and the Context7 fallback are useful, but this section should first require load_skill('ovh') on cloud_exec failures 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

📥 Commits

Reviewing files that changed from the base of the PR and between 51b55cc and 9c69bdc.

📒 Files selected for processing (3)
  • server/chat/backend/agent/skills/integrations/azure/SKILL.md
  • server/chat/backend/agent/skills/integrations/ovh/SKILL.md
  • server/chat/backend/agent/skills/integrations/scaleway/SKILL.md

@beng360 beng360 added the bug Something isn't working label Apr 21, 2026
@sonarqubecloud

Copy link
Copy Markdown

@beng360 beng360 closed this May 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant