skills/compute-management/SKILL.md
Use when launching OCI compute instances, troubleshooting out-of-capacity or boot failures, optimizing compute costs, or handling instance lifecycle. Covers shape selection, capacity planning, service limits, instance principal auth, and production gotchas. KEYWORDS: compute, instance, shape, capacity, OCPU, boot volume, launch, flex.
npx skillsauth add acedergren/agentic-tools compute-managementInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
4 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
NEVER launch instances without checking service limits first
oci limits resource-availability get \
--service-name compute \
--limit-name "standard-e4-core-count" \
--compartment-id <ocid> \
--availability-domain <ad>
87% of "out of capacity" errors are actually quota limits, not infrastructure capacity. Check limits BEFORE launching to get accurate error messages.
NEVER use console serial connection as primary access
NEVER mix regional and AD-specific resources in templates
NEVER forget boot volume preservation flag in dev/test
oci compute instance terminate --instance-id <id> --preserve-boot-volume false
Without --preserve-boot-volume false: $50+/month per deleted instance (orphaned boot volumes accumulate silently)
NEVER enable public IP on production instances
NEVER use fixed shapes when Flex covers the same specs
"Out of host capacity for shape X"?
│
├─ Check service limits FIRST (87% of cases)
│ └─ oci limits resource-availability get
│ ├─ available = 0 → Request limit increase (NOT a capacity issue)
│ └─ available > 0 → True capacity issue, continue below
│
├─ Same shape, different AD?
│ └─ Try each AD in region (PHX/IAD each have 3, all independent)
│
├─ Different shape, same series?
│ └─ E4 failed → try E5 (newer gen, often more available)
│ └─ Standard failed → try Optimized or DenseIO variants
│
├─ Different architecture?
│ └─ AMD → ARM (A1.Flex often has capacity when Intel/AMD full)
│
└─ All ADs exhausted?
└─ Create capacity reservation (guarantees future launches)
Budget-critical (save ~66%):
General purpose (balanced):
Memory-intensive (databases, caches):
| Shape Family | $/OCPU/hr | $/GB RAM/hr | Best For | |-------------------|-----------|-------------|---------------------------------| | A1.Flex (ARM) | $0.01 | $0.0015 | Cost-critical, ARM-compatible | | E4.Flex (AMD) | $0.03 | $0.0015 | General purpose | | E5.Flex (AMD) | $0.035 | $0.0015 | Latest gen, premium performance | | Optimized3.Flex | $0.025 | $0.0015 | Network-intensive |
Free Tier: 2x AMD VM (1/8 OCPU, 1GB) + 4 ARM cores (24GB total) — always free
Formula: (OCPUs × $/OCPU + GB × $0.0015) × 730 hrs/month Example: 2 OCPU, 16GB E4 = (2×$0.03 + 16×$0.0015) × 730 = $61.32/month
When an instance needs to call OCI APIs, NEVER put user credentials on the instance.
# 1. Create dynamic group
oci iam dynamic-group create \
--name "app-instances" \
--matching-rule "instance.compartment.id = '<compartment-ocid>'"
# 2. Grant permissions (IAM policy)
# "Allow dynamic-group app-instances to read object-family in compartment X"
# 3. Code uses instance principal — no credentials needed:
signer = oci.auth.signers.InstancePrincipalsSecurityTokenSigner()
client = oci.object_storage.ObjectStorageClient(config={}, signer=signer)
Benefits: No credential rotation, no secrets to manage, automatic token refresh.
Availability Domain names are tenant-specific
fMgC:US-ASHBURN-AD-1ErKW:US-ASHBURN-AD-1oci iam availability-domain listBoot Volume backups do NOT include instance config
Instance Metadata Service has 3 versions — always use v2
http://169.254.169.254/opc/v1/ (legacy, vulnerable to SSRF)http://169.254.169.254/opc/v2/ (requires session token, prevents SSRF)Load references/oci-compute-shapes-reference.md when:
Do NOT load for quick cost comparisons, capacity troubleshooting, or shape selection — this file covers those.
development
--- name: api-audit description: "Use when auditing API routes for schema drift, missing auth, or validation gaps. Scans routes against shared TypeScript types to find mismatches, missing middleware, and undocumented endpoints. Read-only — produces a severity-grouped report. Keywords: audit routes, schema drift, auth gaps, missing validation, type mismatch, orphaned schemas. Triggers on "audit API routes" or "find schema drift"." --- # API Route & Type Audit Skill ## When to Use Load this skil
development
Use when drafting, translating, polishing, or reviewing Swedish text so it sounds natural, fluent, contemporary, and appropriate for its audience. Triggers include "write better Swedish", "make this sound natural in Swedish", "translate into Swedish", "polish this Swedish", "tech company Swedish", "contemporary Swedish words", "Swedish developer docs", and "avoid Anglicisms".
development
Use when working with shadcn-svelte components, TanStack Table in Svelte 5, or Tailwind v4.1. Covers non-obvious reactivity bugs, library selection trade-offs, and migration pitfalls not in the official docs. Keywords: shadcn-svelte, TanStack Table, Tailwind v4.1, Svelte 5 runes, bits-ui, superforms, data table, svelte-check.
data-ai
Use when mapping IDCS claims to org membership after OAuth login succeeds. Covers mapProfileToUser, session.create.before, session.create.after hooks, MERGE INTO upserts, tenant-org mapping, and first-admin bootstrap. Keywords: IDCS groups, org_members, provisioning, session hooks, tenant map, MERGE INTO.