{
  "schemaVersion": 1,
  "count": 885,
  "skills": [
    {
      "id": "skill_def_api-add-exponential-backoff-retry",
      "name": "Add Exponential Backoff With Jitter To API Calls",
      "description": "Wraps outbound HTTP calls in a retry policy with exponential backoff and jitter for transient failures, used to make integrations resilient to flaky networks and 5xx responses.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "retries",
        "backoff",
        "jitter",
        "resilience",
        "http"
      ],
      "bodyFile": "api-add-exponential-backoff-retry.md"
    },
    {
      "id": "skill_def_api-add-graphql-dataloader-batching",
      "name": "Add DataLoader Batching To Resolvers",
      "description": "Introduces per-request batching and caching to GraphQL resolvers to eliminate N+1 database queries, for use when nested field resolution causes a query per parent row.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "graphql",
        "n+1",
        "dataloader",
        "performance"
      ],
      "bodyFile": "api-add-graphql-dataloader-batching.md"
    },
    {
      "id": "skill_def_api-add-idempotency-keys",
      "name": "Add Idempotency Keys To Mutating Endpoints",
      "description": "Implements client-supplied idempotency keys so retried POST/payment requests don't create duplicates, for use on non-idempotent write endpoints exposed to flaky networks or at-least-once clients.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "idempotency",
        "rest",
        "reliability",
        "post"
      ],
      "bodyFile": "api-add-idempotency-keys.md"
    },
    {
      "id": "skill_def_api-add-observability-instrumentation",
      "name": "Instrument API Endpoints For Observability",
      "description": "Adds structured logging, RED metrics, and distributed tracing with correlation IDs to API handlers, for use when an API lacks visibility into latency, error rates, and request flow.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "observability",
        "tracing",
        "metrics",
        "logging"
      ],
      "bodyFile": "api-add-observability-instrumentation.md"
    },
    {
      "id": "skill_def_api-add-request-tracing-and-correlation-ids",
      "name": "Add Correlation IDs And Tracing Across API Calls",
      "description": "Propagates correlation/trace IDs through outbound integration calls and captures provider request IDs, used to debug failures spanning your service and third parties.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "tracing",
        "observability",
        "correlation",
        "logging",
        "debugging"
      ],
      "bodyFile": "api-add-request-tracing-and-correlation-ids.md"
    },
    {
      "id": "skill_def_api-add-request-validation-layer",
      "name": "Add A Request Validation Layer",
      "description": "Introduces schema-driven validation of path, query, header, and body inputs at the API boundary returning structured 422 errors, for use when handlers manually check inputs or trust unvalidated data.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "validation",
        "schema",
        "422",
        "input"
      ],
      "bodyFile": "api-add-request-validation-layer.md"
    },
    {
      "id": "skill_def_api-author-openapi-spec",
      "name": "Author An OpenAPI 3.1 Specification",
      "description": "Writes or completes an OpenAPI 3.1 document with schemas, parameters, responses, and examples for an existing or planned API, for use when you need a machine-readable contract to drive docs, codegen, and mocking.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "openapi",
        "spec",
        "contract",
        "schema"
      ],
      "bodyFile": "api-author-openapi-spec.md"
    },
    {
      "id": "skill_def_api-bridge-rest-to-event-stream-consumer",
      "name": "Bridge Polling To Push With Long-Poll Or SSE Consumer",
      "description": "Replaces inefficient polling of a third-party API with a long-poll, SSE, or websocket consumer that reconnects and resumes, used to get near-real-time updates reliably.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "streaming",
        "sse",
        "websocket",
        "long-poll",
        "reconnect"
      ],
      "bodyFile": "api-bridge-rest-to-event-stream-consumer.md"
    },
    {
      "id": "skill_def_api-build-idempotent-webhook-consumer",
      "name": "Build Idempotent Webhook Consumer",
      "description": "Adds deduplication and exactly-once processing semantics to a webhook handler so retried or duplicate deliveries don't cause double side effects, used when providers deliver at-least-once.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "webhooks",
        "idempotency",
        "dedup",
        "reliability",
        "database"
      ],
      "bodyFile": "api-build-idempotent-webhook-consumer.md"
    },
    {
      "id": "skill_def_api-build-sync-job-with-checkpointing",
      "name": "Build Incremental Data Sync Job With Checkpointing",
      "description": "Creates a resumable job that pulls only changed records from a third-party API since the last run using cursors or timestamps, used to keep a local store in sync efficiently.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "sync",
        "incremental",
        "checkpoint",
        "etl",
        "cursor"
      ],
      "bodyFile": "api-build-sync-job-with-checkpointing.md"
    },
    {
      "id": "skill_def_api-build-third-party-connector-adapter",
      "name": "Build Third-Party Connector With Adapter Interface",
      "description": "Creates a connector for an external SaaS behind a stable internal adapter interface so the rest of the app is decoupled from provider specifics, used when integrating a new vendor.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "connector",
        "adapter",
        "integration",
        "abstraction",
        "saas"
      ],
      "bodyFile": "api-build-third-party-connector-adapter.md"
    },
    {
      "id": "skill_def_api-define-grpc-protobuf-service",
      "name": "Define A gRPC Protobuf Service",
      "description": "Writes a proto3 service definition with messages, RPC methods, and streaming modes for a gRPC API, for use when building internal service-to-service interfaces that need typed contracts and codegen.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "grpc",
        "protobuf",
        "proto3",
        "streaming"
      ],
      "bodyFile": "api-define-grpc-protobuf-service.md"
    },
    {
      "id": "skill_def_api-design-async-long-running-operations",
      "name": "Design Async Long-Running Operations",
      "description": "Models long jobs with a 202-Accepted operation resource clients can poll or subscribe to, for use when a request exceeds reasonable synchronous response time.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "async",
        "long-running",
        "202",
        "polling"
      ],
      "bodyFile": "api-design-async-long-running-operations.md"
    },
    {
      "id": "skill_def_api-design-authentication-scheme",
      "name": "Design An API Authentication Scheme",
      "description": "Selects and documents an auth scheme (OAuth2, API keys, JWT, mTLS) with token lifecycle and scope model for an API, for use when securing endpoints or replacing ad-hoc auth.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "authentication",
        "oauth2",
        "jwt",
        "api-keys"
      ],
      "bodyFile": "api-design-authentication-scheme.md"
    },
    {
      "id": "skill_def_api-design-bulk-batch-endpoints",
      "name": "Design Bulk And Batch Endpoints",
      "description": "Adds bulk create/update/delete endpoints with partial-success semantics and per-item status reporting, for use when clients must operate on many records without N round trips.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "batch",
        "bulk",
        "rest",
        "partial-success"
      ],
      "bodyFile": "api-design-bulk-batch-endpoints.md"
    },
    {
      "id": "skill_def_api-design-content-negotiation",
      "name": "Implement Content Negotiation",
      "description": "Adds Accept/Content-Type negotiation so an endpoint can serve and accept multiple representations (JSON, CSV, Protobuf), for use when clients need different formats from the same resource.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "content-negotiation",
        "accept",
        "http",
        "serialization"
      ],
      "bodyFile": "api-design-content-negotiation.md"
    },
    {
      "id": "skill_def_api-design-cursor-pagination",
      "name": "Implement Cursor-Based Pagination",
      "description": "Designs and implements opaque-cursor pagination for a list endpoint including encoding, stable ordering, and page metadata, for use when offset pagination is unstable or slow on large or frequently-mutated datasets.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "pagination",
        "cursor",
        "rest",
        "performance"
      ],
      "bodyFile": "api-design-cursor-pagination.md"
    },
    {
      "id": "skill_def_api-design-graphql-schema",
      "name": "Design A GraphQL Schema",
      "description": "Defines a GraphQL SDL schema with types, queries, mutations, input types, and pagination connections from a domain model, for use when building or extending a GraphQL API.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "graphql",
        "sdl",
        "schema",
        "connections"
      ],
      "bodyFile": "api-design-graphql-schema.md"
    },
    {
      "id": "skill_def_api-design-rate-limiting",
      "name": "Design API Rate Limiting And Quotas",
      "description": "Specifies and implements rate-limit policies with standard headers and a 429 response for an API, for use when protecting backends from abuse or enforcing per-tier usage quotas.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "rate-limiting",
        "throttling",
        "429",
        "quotas"
      ],
      "bodyFile": "api-design-rate-limiting.md"
    },
    {
      "id": "skill_def_api-design-restful-resource-model",
      "name": "Design A RESTful Resource Model",
      "description": "Derives a noun-based resource hierarchy with correct HTTP verbs, status codes, and URL structure from a domain description, for use when starting a new REST API or refactoring an RPC-shaped one.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "rest",
        "resource-design",
        "http",
        "url-structure"
      ],
      "bodyFile": "api-design-restful-resource-model.md"
    },
    {
      "id": "skill_def_api-design-webhook-delivery",
      "name": "Design A Webhook Delivery System",
      "description": "Specifies outbound webhook events with signed payloads, retries with backoff, and a replay endpoint, for use when an API must push events to external subscribers reliably.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "webhooks",
        "events",
        "signing",
        "retries"
      ],
      "bodyFile": "api-design-webhook-delivery.md"
    },
    {
      "id": "skill_def_api-design-webhook-event-router",
      "name": "Design Webhook Event Type Router",
      "description": "Builds a dispatcher that routes verified webhook events to typed per-event handlers with a default for unknowns, used when one endpoint receives many event types from a provider.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "webhooks",
        "routing",
        "dispatch",
        "handlers",
        "events"
      ],
      "bodyFile": "api-design-webhook-event-router.md"
    },
    {
      "id": "skill_def_api-detect-breaking-changes",
      "name": "Detect Breaking Changes Against Published Contract",
      "description": "Diffs a candidate OpenAPI/proto contract against the published version to flag backward-incompatible changes before release, for use in CI or pre-merge review of API changes.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "compatibility",
        "ci",
        "openapi",
        "breaking-changes"
      ],
      "bodyFile": "api-detect-breaking-changes.md"
    },
    {
      "id": "skill_def_api-detect-breaking-changes-in-api-spec",
      "name": "Detect Breaking Changes Between API Spec Versions",
      "description": "Diffs two versions of an OpenAPI/GraphQL schema to flag backward-incompatible changes in CI, used to protect existing clients before publishing an API update.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "api-spec",
        "breaking-change",
        "diff",
        "ci",
        "compatibility"
      ],
      "bodyFile": "api-detect-breaking-changes-in-api-spec.md"
    },
    {
      "id": "skill_def_api-document-with-examples-and-changelog",
      "name": "Produce API Reference Docs With Examples And Changelog",
      "description": "Generates human-readable reference docs from the contract with curl/code examples, auth setup, and a maintained changelog, for use when consumers lack clear, current documentation.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "documentation",
        "openapi",
        "changelog",
        "examples"
      ],
      "bodyFile": "api-document-with-examples-and-changelog.md"
    },
    {
      "id": "skill_def_api-enforce-client-side-rate-limiting",
      "name": "Enforce Client-Side Rate Limiting With Token Bucket",
      "description": "Adds a token-bucket throttle to an API client so outbound requests stay within the provider's published limits, used to prevent 429s and bans on rate-limited APIs.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "rate-limiting",
        "token-bucket",
        "throttling",
        "client",
        "concurrency"
      ],
      "bodyFile": "api-enforce-client-side-rate-limiting.md"
    },
    {
      "id": "skill_def_api-generate-mock-server",
      "name": "Generate A Mock Server From The Contract",
      "description": "Stands up a mock server from an OpenAPI/GraphQL contract that returns example-driven responses, for use when frontend or integration work must proceed before the real API is built.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "mocking",
        "openapi",
        "prototyping",
        "examples"
      ],
      "bodyFile": "api-generate-mock-server.md"
    },
    {
      "id": "skill_def_api-generate-mock-server-from-spec",
      "name": "Generate Mock Server From API Spec For Testing",
      "description": "Stands up a mock server from an OpenAPI/contract spec that returns spec-compliant responses, used to develop and test a client without hitting the real third-party API.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "mocking",
        "openapi",
        "testing",
        "contract",
        "sandbox"
      ],
      "bodyFile": "api-generate-mock-server-from-spec.md"
    },
    {
      "id": "skill_def_api-generate-typed-client-sdk",
      "name": "Generate A Typed Client SDK From OpenAPI",
      "description": "Produces a typed client SDK from an OpenAPI spec with configured auth, retries, and error mapping, for use when consumers need an ergonomic, type-safe client instead of hand-written HTTP calls.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "sdk",
        "codegen",
        "openapi",
        "client"
      ],
      "bodyFile": "api-generate-typed-client-sdk.md"
    },
    {
      "id": "skill_def_api-generate-typed-sdk-from-openapi",
      "name": "Generate Typed SDK Client From OpenAPI Spec",
      "description": "Produces a strongly-typed client library from an OpenAPI/Swagger document with models, operations, and auth wired in, used to give consumers a maintainable, regenerable SDK.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "openapi",
        "sdk",
        "codegen",
        "client",
        "types"
      ],
      "bodyFile": "api-generate-typed-sdk-from-openapi.md"
    },
    {
      "id": "skill_def_api-handle-cursor-pagination-iterator",
      "name": "Build Cursor Pagination Iterator For API Client",
      "description": "Wraps a paginated endpoint in a lazy iterator that follows cursors or next-page links automatically, used when consuming list endpoints that return data in pages.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "pagination",
        "cursor",
        "iterator",
        "client",
        "streaming"
      ],
      "bodyFile": "api-handle-cursor-pagination-iterator.md"
    },
    {
      "id": "skill_def_api-implement-circuit-breaker-for-dependency",
      "name": "Implement Circuit Breaker For External Dependency",
      "description": "Adds a circuit breaker around calls to a flaky upstream service so failures fail fast and recover gracefully, used to protect your service from cascading third-party outages.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "circuit-breaker",
        "resilience",
        "fault-tolerance",
        "timeouts",
        "fallback"
      ],
      "bodyFile": "api-implement-circuit-breaker-for-dependency.md"
    },
    {
      "id": "skill_def_api-implement-conditional-requests",
      "name": "Implement Conditional Requests And ETags",
      "description": "Adds ETag/Last-Modified support with If-None-Match and If-Match handling for caching and optimistic concurrency, for use when reducing bandwidth or preventing lost updates on PUT/PATCH.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "etag",
        "caching",
        "concurrency",
        "http"
      ],
      "bodyFile": "api-implement-conditional-requests.md"
    },
    {
      "id": "skill_def_api-implement-field-filtering-sparse-fieldsets",
      "name": "Implement Field Selection And Sparse Fieldsets",
      "description": "Adds a fields/expand query parameter so REST clients fetch only the attributes and relations they need, for use when responses are over-fetched or payloads are too large.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "rest",
        "sparse-fieldsets",
        "query-params",
        "performance"
      ],
      "bodyFile": "api-implement-field-filtering-sparse-fieldsets.md"
    },
    {
      "id": "skill_def_api-implement-graphql-client-with-batching",
      "name": "Implement GraphQL Client With Query Batching",
      "description": "Builds a GraphQL client that batches and dedupes concurrent queries and persists operations, used to reduce round-trips and payload size when consuming a GraphQL API.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "graphql",
        "batching",
        "client",
        "dataloader",
        "performance"
      ],
      "bodyFile": "api-implement-graphql-client-with-batching.md"
    },
    {
      "id": "skill_def_api-implement-graphql-pagination-connections",
      "name": "Implement Relay Connection Pagination",
      "description": "Implements Relay-spec connection types with cursors, edges, and pageInfo for a GraphQL list field, for use when a GraphQL list must support stable forward/backward pagination.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "graphql",
        "relay",
        "pagination",
        "cursors"
      ],
      "bodyFile": "api-implement-graphql-pagination-connections.md"
    },
    {
      "id": "skill_def_api-implement-oauth2-authorization-code-pkce",
      "name": "Implement OAuth2 Authorization Code Flow With PKCE",
      "description": "Wires up the OAuth2 authorization-code grant with PKCE including state validation and token exchange, used when adding third-party sign-in or delegated API access to an app.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "oauth2",
        "pkce",
        "authentication",
        "authorization",
        "tokens"
      ],
      "bodyFile": "api-implement-oauth2-authorization-code-pkce.md"
    },
    {
      "id": "skill_def_api-implement-outbound-webhook-delivery",
      "name": "Implement Reliable Outbound Webhook Delivery",
      "description": "Builds a system to send webhooks to subscriber URLs with signing, retries with backoff, and a dead-letter queue, used when your product needs to notify customer endpoints of events.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "webhooks",
        "delivery",
        "retries",
        "signing",
        "dead-letter"
      ],
      "bodyFile": "api-implement-outbound-webhook-delivery.md"
    },
    {
      "id": "skill_def_api-implement-saga-for-multi-step-integration",
      "name": "Implement Saga For Multi-Step Cross-API Workflow",
      "description": "Coordinates a workflow spanning several external APIs with compensating actions on failure, used when a business operation must call multiple providers atomically-ish.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "saga",
        "orchestration",
        "compensation",
        "workflow",
        "consistency"
      ],
      "bodyFile": "api-implement-saga-for-multi-step-integration.md"
    },
    {
      "id": "skill_def_api-map-and-translate-provider-errors",
      "name": "Map And Normalize Provider Errors",
      "description": "Translates heterogeneous third-party error responses into a consistent internal error taxonomy with retryability flags, used so callers handle failures uniformly across providers.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "errors",
        "normalization",
        "taxonomy",
        "retries",
        "client"
      ],
      "bodyFile": "api-map-and-translate-provider-errors.md"
    },
    {
      "id": "skill_def_api-normalize-webhook-payloads-across-providers",
      "name": "Normalize Webhook Payloads Across Providers",
      "description": "Transforms differently-shaped webhook payloads from multiple providers into one canonical internal event schema, used when several integrations feed the same downstream pipeline.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "webhooks",
        "normalization",
        "schema",
        "transformation",
        "events"
      ],
      "bodyFile": "api-normalize-webhook-payloads-across-providers.md"
    },
    {
      "id": "skill_def_api-replay-failed-webhook-deliveries",
      "name": "Replay Failed Webhook Deliveries From Dead-Letter",
      "description": "Builds tooling to inspect and re-deliver webhooks that exhausted retries from a dead-letter store, used to recover from subscriber outages without losing events.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "webhooks",
        "dead-letter",
        "replay",
        "recovery",
        "tooling"
      ],
      "bodyFile": "api-replay-failed-webhook-deliveries.md"
    },
    {
      "id": "skill_def_api-rotate-oauth-refresh-tokens",
      "name": "Rotate And Refresh OAuth Access Tokens",
      "description": "Builds an automatic token-refresh layer that detects expiry, exchanges refresh tokens, and handles rotation so API calls never fail on stale credentials, used in long-lived integrations.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "oauth2",
        "tokens",
        "refresh",
        "rotation",
        "concurrency"
      ],
      "bodyFile": "api-rotate-oauth-refresh-tokens.md"
    },
    {
      "id": "skill_def_api-run-consumer-driven-contract-tests",
      "name": "Run Consumer-Driven Contract Tests Against Provider",
      "description": "Sets up Pact-style consumer-driven contract tests that verify a client's expectations against a provider, used to catch breaking API changes before they reach production.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "contract-testing",
        "pact",
        "ci",
        "compatibility",
        "provider"
      ],
      "bodyFile": "api-run-consumer-driven-contract-tests.md"
    },
    {
      "id": "skill_def_api-standardize-error-responses",
      "name": "Standardize API Error Responses",
      "description": "Introduces a consistent machine-readable error envelope (e.g. RFC 9457 Problem Details) with stable error codes across all endpoints, for use when error shapes are inconsistent or expose stack traces.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "errors",
        "rfc9457",
        "problem-details",
        "rest"
      ],
      "bodyFile": "api-standardize-error-responses.md"
    },
    {
      "id": "skill_def_api-store-and-encrypt-third-party-credentials",
      "name": "Securely Store And Inject Third-Party Credentials",
      "description": "Sets up encrypted-at-rest storage and runtime injection for per-tenant API keys and OAuth tokens, used when an app holds credentials for many external accounts.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "credentials",
        "encryption",
        "secrets",
        "multi-tenant",
        "kms"
      ],
      "bodyFile": "api-store-and-encrypt-third-party-credentials.md"
    },
    {
      "id": "skill_def_api-validate-and-version-webhook-subscriptions",
      "name": "Validate And Version Webhook Subscription Endpoints",
      "description": "Implements subscription registration with endpoint validation handshakes and payload versioning, used when letting customers register and manage their own webhook URLs.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "webhooks",
        "subscriptions",
        "validation",
        "versioning",
        "lifecycle"
      ],
      "bodyFile": "api-validate-and-version-webhook-subscriptions.md"
    },
    {
      "id": "skill_def_api-verify-inbound-webhook-signatures",
      "name": "Verify Inbound Webhook Signatures",
      "description": "Validates HMAC/Ed25519 signatures and timestamps on incoming webhook requests to reject forged or replayed payloads, used whenever you build a webhook receiver endpoint.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "webhooks",
        "hmac",
        "security",
        "verification",
        "replay"
      ],
      "bodyFile": "api-verify-inbound-webhook-signatures.md"
    },
    {
      "id": "skill_def_api-version-strategy",
      "name": "Choose And Apply An API Versioning Strategy",
      "description": "Selects a versioning scheme (URI, header, or media-type) and applies it consistently across endpoints with a deprecation policy, for use when introducing breaking changes or formalizing version management.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "versioning",
        "deprecation",
        "rest",
        "compatibility"
      ],
      "bodyFile": "api-version-strategy.md"
    },
    {
      "id": "skill_def_api-write-contract-tests",
      "name": "Write Provider Contract Tests From The Spec",
      "description": "Generates tests that assert the running API conforms to its OpenAPI/GraphQL/proto contract, for use when implementation may drift from the documented schema.",
      "version": "1.0.0",
      "category": "APIs & Integration",
      "tags": [
        "testing",
        "contract",
        "openapi",
        "validation"
      ],
      "bodyFile": "api-write-contract-tests.md"
    },
    {
      "id": "skill_def_cicd-add-affected-graph-build-with-nx-turbo",
      "name": "Wire Affected-Graph Builds With Nx Or Turborepo",
      "description": "Integrates an Nx/Turborepo task graph so CI builds and tests only projects affected by a change, with remote task caching; use when path-filter heuristics are too coarse for a large interdependent monorepo.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "monorepo",
        "nx",
        "turborepo",
        "affected",
        "remote-cache"
      ],
      "bodyFile": "cicd-add-affected-graph-build-with-nx-turbo.md"
    },
    {
      "id": "skill_def_cicd-add-monorepo-path-change-filters",
      "name": "Add Monorepo Path-Change Build Filters",
      "description": "Computes which monorepo packages changed and skips unaffected build/test jobs via path filters or a change-detection step; use when every PR rebuilds the entire repo regardless of which package was touched.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "monorepo",
        "path-filters",
        "affected",
        "performance",
        "pipeline"
      ],
      "bodyFile": "cicd-add-monorepo-path-change-filters.md"
    },
    {
      "id": "skill_def_cicd-add-provenance-attestation-slsa",
      "name": "Add SLSA Build Provenance Attestation",
      "description": "Generates and attaches signed SLSA provenance attestations to build artifacts so consumers can verify what built them and from which source; use when artifacts need verifiable, tamper-evident build origin for supply-chain assurance.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "supply-chain",
        "slsa",
        "provenance",
        "attestation",
        "signing"
      ],
      "bodyFile": "cicd-add-provenance-attestation-slsa.md"
    },
    {
      "id": "skill_def_cicd-artifact-signing-provenance",
      "name": "Sign Release Artifacts And Attach Provenance",
      "description": "Cryptographically signs build artifacts and generates verifiable build provenance, used when you need supply-chain integrity guarantees for what you deploy.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "signing",
        "provenance",
        "supply-chain",
        "security"
      ],
      "bodyFile": "cicd-artifact-signing-provenance.md"
    },
    {
      "id": "skill_def_cicd-author-build-cache-key-strategy",
      "name": "Author A Deterministic Build Cache Key Strategy",
      "description": "Designs lockfile-and-toolchain-derived cache keys with fallback restore keys so CI dependency caches hit reliably without serving stale artifacts; use when builds re-download dependencies every run or caches never invalidate.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "caching",
        "cache-keys",
        "dependencies",
        "github-actions",
        "performance"
      ],
      "bodyFile": "cicd-author-build-cache-key-strategy.md"
    },
    {
      "id": "skill_def_cicd-author-reusable-workflow-template",
      "name": "Author A Parameterized Reusable Workflow",
      "description": "Extracts a duplicated CI pipeline into a single reusable workflow with typed inputs, secrets, and outputs that multiple repos or jobs call; use when the same build steps are copy-pasted across many workflows or repositories.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "reusable-workflow",
        "dry",
        "templates",
        "inputs",
        "maintainability"
      ],
      "bodyFile": "cicd-author-reusable-workflow-template.md"
    },
    {
      "id": "skill_def_cicd-author-semantic-version-tag-pipeline",
      "name": "Author A Tag-Triggered Semantic Release Pipeline",
      "description": "Creates a pipeline that fires on a semver tag, derives the version, builds release artifacts, generates a changelog, and publishes; use when releases are manual and inconsistent across version, changelog, and artifact steps.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "release",
        "semver",
        "tags",
        "changelog",
        "automation"
      ],
      "bodyFile": "cicd-author-semantic-version-tag-pipeline.md"
    },
    {
      "id": "skill_def_cicd-blue-green-cutover",
      "name": "Execute A Blue-Green Cutover",
      "description": "Stands up a full parallel environment and switches traffic atomically, used when you need near-zero-downtime releases with instant rollback capability.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "blue-green",
        "deployment",
        "cutover",
        "zero-downtime"
      ],
      "bodyFile": "cicd-blue-green-cutover.md"
    },
    {
      "id": "skill_def_cicd-build-multi-arch-images-with-buildx",
      "name": "Build Multi-Arch Container Images With Buildx",
      "description": "Configures QEMU plus buildx to produce a single multi-architecture (amd64/arm64) image manifest in one CI job; use when you need one image tag that runs natively on both Intel and ARM hosts.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "docker",
        "multi-arch",
        "buildx",
        "qemu",
        "manifest"
      ],
      "bodyFile": "cicd-build-multi-arch-images-with-buildx.md"
    },
    {
      "id": "skill_def_cicd-cache-docker-layers-with-buildkit",
      "name": "Cache Docker Layers With BuildKit In CI",
      "description": "Configures BuildKit registry or GHA layer caching plus a layer-friendly Dockerfile ordering so image builds reuse unchanged layers across CI runs; use when container builds rebuild every layer and dominate pipeline time.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "docker",
        "buildkit",
        "caching",
        "layers",
        "performance"
      ],
      "bodyFile": "cicd-cache-docker-layers-with-buildkit.md"
    },
    {
      "id": "skill_def_cicd-cache-warming-prebuild-job",
      "name": "Add A Cache-Warming Prebuild Job",
      "description": "Creates a scheduled or pre-merge job that populates the shared dependency/build cache on the default branch so PR jobs start from a warm cache; use when first-of-the-day or post-dependency-bump PR builds are consistently slow.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "caching",
        "warmup",
        "scheduled",
        "performance",
        "default-branch"
      ],
      "bodyFile": "cicd-cache-warming-prebuild-job.md"
    },
    {
      "id": "skill_def_cicd-canary-auto-rollback-trigger",
      "name": "Wire Automatic Rollback Into A Canary",
      "description": "Connects canary metric breaches directly to an automated rollback action, used when you want a canary to self-heal by reverting without waiting for a human responder.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "canary",
        "rollback",
        "automation",
        "self-healing"
      ],
      "bodyFile": "cicd-canary-auto-rollback-trigger.md"
    },
    {
      "id": "skill_def_cicd-canary-deploy-progressive",
      "name": "Run A Progressive Canary Deployment",
      "description": "Shifts traffic to a new release in graduated steps with automated health gates, used when you want to limit blast radius while validating a deploy in production.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "canary",
        "deployment",
        "traffic-shifting",
        "progressive-delivery"
      ],
      "bodyFile": "cicd-canary-deploy-progressive.md"
    },
    {
      "id": "skill_def_cicd-changelog-from-commits",
      "name": "Generate A Changelog From Commit History",
      "description": "Builds a grouped, human-readable changelog section for a release from conventional commits, used when publishing release notes and you want consistent, categorized entries.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "changelog",
        "release-notes",
        "conventional-commits",
        "documentation"
      ],
      "bodyFile": "cicd-changelog-from-commits.md"
    },
    {
      "id": "skill_def_cicd-concurrency-cancel-superseded-runs",
      "name": "Cancel Superseded Runs With Concurrency Groups",
      "description": "Adds concurrency groups that cancel in-progress runs when a newer commit lands on the same branch/PR while protecting deploy jobs from cancellation; use when stale CI runs waste runners and queue behind fresh pushes.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "concurrency",
        "cancellation",
        "runners",
        "efficiency",
        "pipeline"
      ],
      "bodyFile": "cicd-concurrency-cancel-superseded-runs.md"
    },
    {
      "id": "skill_def_cicd-conditional-deploy-by-branch-and-environment",
      "name": "Author Branch-And-Environment Deploy Gating",
      "description": "Configures conditional deploy jobs that target the correct environment per branch/tag with environment protection rules and approvals; use when deploys lack guardrails and the wrong build can reach production.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "deploy",
        "environments",
        "branch",
        "approvals",
        "gating"
      ],
      "bodyFile": "cicd-conditional-deploy-by-branch-and-environment.md"
    },
    {
      "id": "skill_def_cicd-db-migration-deploy-safety",
      "name": "Sequence A Backward-Compatible Schema Migration",
      "description": "Splits a schema change into expand and contract phases so deploys and rollbacks stay safe, used when a release alters the database during a rolling or zero-downtime deploy.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "migrations",
        "database",
        "zero-downtime",
        "rollback"
      ],
      "bodyFile": "cicd-db-migration-deploy-safety.md"
    },
    {
      "id": "skill_def_cicd-deploy-freeze-window",
      "name": "Enforce A Deployment Freeze Window",
      "description": "Configures pipeline rules that block non-emergency deploys during defined periods, used when you need a code freeze for a launch, holiday, or high-traffic event.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "deploy-freeze",
        "release-management",
        "pipeline",
        "governance"
      ],
      "bodyFile": "cicd-deploy-freeze-window.md"
    },
    {
      "id": "skill_def_cicd-deploy-window-traffic-aware",
      "name": "Schedule A Deploy Around Traffic Patterns",
      "description": "Picks a low-risk deploy time by analyzing historical traffic and error baselines, used when a release carries risk and you want to minimize user impact if it goes wrong.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "scheduling",
        "traffic-analysis",
        "deployment",
        "risk-reduction"
      ],
      "bodyFile": "cicd-deploy-window-traffic-aware.md"
    },
    {
      "id": "skill_def_cicd-deployment-health-gate",
      "name": "Define Automated Deploy Health Gates",
      "description": "Establishes metric thresholds and queries that automatically pass or fail a deployment stage, used when you want unattended promotion decisions instead of manual sign-off.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "health-checks",
        "metrics",
        "promotion",
        "automation"
      ],
      "bodyFile": "cicd-deployment-health-gate.md"
    },
    {
      "id": "skill_def_cicd-design-matrix-build-with-excludes",
      "name": "Design A Build Matrix With Targeted Excludes",
      "description": "Generates an OS-by-version-by-target build matrix and prunes invalid or redundant combinations with explicit excludes/includes; use when you need broad platform coverage without exploding job count or running impossible combos.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "matrix",
        "cross-platform",
        "github-actions",
        "pipeline",
        "coverage"
      ],
      "bodyFile": "cicd-design-matrix-build-with-excludes.md"
    },
    {
      "id": "skill_def_cicd-detect-and-cache-cross-os-paths",
      "name": "Normalize Cache Paths Across OS Matrix Runners",
      "description": "Resolves OS-specific cache directory locations and key segments so a cross-platform matrix caches correctly on Linux, macOS, and Windows; use when caching works on one OS but misses or errors on the others in a matrix build.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "caching",
        "cross-platform",
        "matrix",
        "paths",
        "windows"
      ],
      "bodyFile": "cicd-detect-and-cache-cross-os-paths.md"
    },
    {
      "id": "skill_def_cicd-environment-config-drift-check",
      "name": "Detect Config Drift Before A Release",
      "description": "Compares configuration across environments to surface unintended differences before deploying, used when staging-validated changes risk breaking due to prod-only config gaps.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "config-drift",
        "environments",
        "validation",
        "deployment"
      ],
      "bodyFile": "cicd-environment-config-drift-check.md"
    },
    {
      "id": "skill_def_cicd-fail-build-on-dependency-vulnerabilities",
      "name": "Gate Builds On Dependency Vulnerability Severity",
      "description": "Adds a dependency-scan step that fails the build above a configured CVE severity with an allowlist for accepted findings; use when vulnerable dependencies reach production because scanning is absent or non-blocking.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "supply-chain",
        "scanning",
        "vulnerabilities",
        "gating",
        "dependencies"
      ],
      "bodyFile": "cicd-fail-build-on-dependency-vulnerabilities.md"
    },
    {
      "id": "skill_def_cicd-feature-flag-gated-rollout",
      "name": "Gate A Release Behind A Feature Flag",
      "description": "Wraps a new behavior in a feature flag with targeting rules so it can be enabled gradually and decoupled from deploy, used when shipping risky changes you want to control at runtime.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "feature-flags",
        "progressive-delivery",
        "release",
        "targeting"
      ],
      "bodyFile": "cicd-feature-flag-gated-rollout.md"
    },
    {
      "id": "skill_def_cicd-fingerprint-artifacts-with-build-metadata",
      "name": "Stamp Artifacts With Build Metadata And Version",
      "description": "Injects version, commit SHA, build timestamp, and branch into the build so artifacts are self-identifying via embedded metadata and a manifest file; use when you can't tell which commit a deployed binary or image came from.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "artifacts",
        "versioning",
        "metadata",
        "traceability",
        "build-info"
      ],
      "bodyFile": "cicd-fingerprint-artifacts-with-build-metadata.md"
    },
    {
      "id": "skill_def_cicd-flaky-test-quarantine-and-retry",
      "name": "Quarantine And Auto-Retry Flaky Tests In CI",
      "description": "Adds bounded automatic retries plus a quarantine list so known-flaky tests don't red-flag the pipeline while staying tracked for repair; use when intermittent test failures force constant manual re-runs and erode trust in CI.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "testing",
        "flaky-tests",
        "retry",
        "quarantine",
        "reliability"
      ],
      "bodyFile": "cicd-flaky-test-quarantine-and-retry.md"
    },
    {
      "id": "skill_def_cicd-generate-cyclonedx-sbom-in-build",
      "name": "Generate A CycloneDX SBOM During The Build",
      "description": "Adds a build step that produces a CycloneDX or SPDX software bill of materials from the resolved dependency tree and attaches it as a release artifact; use when supply-chain compliance or vulnerability tracking requires a per-build SBOM.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "supply-chain",
        "sbom",
        "cyclonedx",
        "compliance",
        "artifacts"
      ],
      "bodyFile": "cicd-generate-cyclonedx-sbom-in-build.md"
    },
    {
      "id": "skill_def_cicd-hotfix-release-cherry-pick",
      "name": "Cut A Hotfix Release From A Release Branch",
      "description": "Cherry-picks a targeted fix onto a maintenance branch and ships a patch release without pulling in unreleased main changes, used when production needs an urgent fix.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "hotfix",
        "cherry-pick",
        "patch-release",
        "maintenance-branch"
      ],
      "bodyFile": "cicd-hotfix-release-cherry-pick.md"
    },
    {
      "id": "skill_def_cicd-incremental-compilation-cache-restore",
      "name": "Enable Incremental Compilation Cache In CI",
      "description": "Persists and restores a compiler's incremental build directory (sccache, ccache, Gradle build cache, Rust target) across CI runs so unchanged units skip recompilation; use when full clean rebuilds dominate compile-heavy pipelines.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "caching",
        "incremental",
        "compilation",
        "sccache",
        "performance"
      ],
      "bodyFile": "cicd-incremental-compilation-cache-restore.md"
    },
    {
      "id": "skill_def_cicd-instant-rollback-last-stable",
      "name": "Roll Back To The Last Stable Release",
      "description": "Reverts a service to its previous known-good version quickly and safely, used when a deploy causes a production incident and you need to restore service now.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "rollback",
        "incident",
        "recovery",
        "deployment"
      ],
      "bodyFile": "cicd-instant-rollback-last-stable.md"
    },
    {
      "id": "skill_def_cicd-multi-arch-release-build",
      "name": "Build A Multi-Architecture Release Artifact",
      "description": "Produces and publishes a single release image/binary set spanning multiple CPU architectures, used when your service runs on mixed hardware like amd64 and arm64.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "multi-arch",
        "build",
        "release",
        "cross-platform"
      ],
      "bodyFile": "cicd-multi-arch-release-build.md"
    },
    {
      "id": "skill_def_cicd-parallelize-test-suite-by-sharding",
      "name": "Parallelize A Test Suite By Sharding",
      "description": "Splits a long test suite across N parallel matrix shards with balanced distribution and merged reporting; use when a single test job is the pipeline bottleneck and tests can run independently.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "testing",
        "sharding",
        "parallelism",
        "matrix",
        "performance"
      ],
      "bodyFile": "cicd-parallelize-test-suite-by-sharding.md"
    },
    {
      "id": "skill_def_cicd-pin-actions-to-commit-sha",
      "name": "Pin CI Actions And Images To Immutable Digests",
      "description": "Replaces mutable action tags and image tags with full commit SHAs and image digests to prevent supply-chain drift and tag-hijacking; use when a workflow references third-party actions by floating tag like @v3 or images by :latest.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "supply-chain",
        "pinning",
        "security",
        "actions",
        "reproducibility"
      ],
      "bodyFile": "cicd-pin-actions-to-commit-sha.md"
    },
    {
      "id": "skill_def_cicd-pre-deploy-smoke-suite",
      "name": "Define A Post-Deploy Smoke Test Suite",
      "description": "Assembles a fast set of critical-path checks that run immediately after a deploy to confirm core functionality, used as the first gate before promoting or opening traffic.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "smoke-tests",
        "verification",
        "deployment",
        "health-checks"
      ],
      "bodyFile": "cicd-pre-deploy-smoke-suite.md"
    },
    {
      "id": "skill_def_cicd-progressive-flag-percentage-ramp",
      "name": "Ramp A Feature Flag By Percentage Over Time",
      "description": "Increases a flag's user exposure in staged percentages while watching guardrail metrics, used when you want gradual feature exposure decoupled from the deploy.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "feature-flags",
        "ramp",
        "progressive-delivery",
        "metrics"
      ],
      "bodyFile": "cicd-progressive-flag-percentage-ramp.md"
    },
    {
      "id": "skill_def_cicd-publish-and-consume-build-artifacts",
      "name": "Publish And Consume Build Artifacts Between Jobs",
      "description": "Wires upload/download artifact steps so a build job's outputs flow into downstream test, package, and deploy jobs with correct paths, retention, and naming; use when stages rebuild from scratch instead of reusing compiled output.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "artifacts",
        "pipeline",
        "stages",
        "github-actions",
        "handoff"
      ],
      "bodyFile": "cicd-publish-and-consume-build-artifacts.md"
    },
    {
      "id": "skill_def_cicd-release-candidate-promotion",
      "name": "Promote A Build Through Release Stages",
      "description": "Advances a single immutable artifact from dev to staging to production by promotion rather than rebuild, used when you need build-once provenance across environments.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "promotion",
        "artifacts",
        "release",
        "provenance"
      ],
      "bodyFile": "cicd-release-candidate-promotion.md"
    },
    {
      "id": "skill_def_cicd-release-notes-user-facing",
      "name": "Draft User-Facing Release Notes From Changes",
      "description": "Translates technical changelog entries into audience-appropriate release notes highlighting impact, used when announcing a release to customers or end users.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "release-notes",
        "communication",
        "changelog",
        "documentation"
      ],
      "bodyFile": "cicd-release-notes-user-facing.md"
    },
    {
      "id": "skill_def_cicd-release-tagging-conventions",
      "name": "Apply Consistent Git Release Tags",
      "description": "Creates annotated, signed release tags following a defined convention with metadata, used when cutting a release and you need traceable, machine-parseable version tags.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "git-tags",
        "versioning",
        "release",
        "conventions"
      ],
      "bodyFile": "cicd-release-tagging-conventions.md"
    },
    {
      "id": "skill_def_cicd-rollback-runbook-generation",
      "name": "Generate A Per-Release Rollback Runbook",
      "description": "Produces a release-specific rollback procedure capturing exact versions, migration reversibility, and flag states, used when preparing a deploy so recovery is ready before incidents.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "rollback",
        "runbook",
        "release",
        "incident-prep"
      ],
      "bodyFile": "cicd-rollback-runbook-generation.md"
    },
    {
      "id": "skill_def_cicd-rolling-update-config",
      "name": "Configure A Safe Rolling Update",
      "description": "Sets surge, unavailability, and readiness parameters so instances replace gracefully without dropping capacity, used when deploying to a replicated service without downtime.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "rolling-update",
        "deployment",
        "readiness",
        "kubernetes"
      ],
      "bodyFile": "cicd-rolling-update-config.md"
    },
    {
      "id": "skill_def_cicd-scope-least-privilege-workflow-permissions",
      "name": "Scope Workflow Token To Least Privilege",
      "description": "Sets the default GITHUB_TOKEN permissions to read-only and grants only the minimal per-job write scopes each step needs; use when workflows run with broad default write permissions, widening supply-chain blast radius.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "security",
        "permissions",
        "least-privilege",
        "supply-chain",
        "hardening"
      ],
      "bodyFile": "cicd-scope-least-privilege-workflow-permissions.md"
    },
    {
      "id": "skill_def_cicd-semver-bump-from-commits",
      "name": "Compute The Next Semantic Version From Commits",
      "description": "Derives the correct major/minor/patch bump by analyzing conventional commits since the last tag, used when preparing a release and you need a deterministic version number.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "semver",
        "versioning",
        "conventional-commits",
        "release"
      ],
      "bodyFile": "cicd-semver-bump-from-commits.md"
    },
    {
      "id": "skill_def_cicd-shadow-traffic-validation",
      "name": "Validate A Release With Shadow Traffic",
      "description": "Mirrors live requests to a new version without serving its responses, used when you want to test a release against real production load before exposing users to it.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "shadow-traffic",
        "dark-launch",
        "validation",
        "deployment"
      ],
      "bodyFile": "cicd-shadow-traffic-validation.md"
    },
    {
      "id": "skill_def_cicd-sign-artifacts-with-cosign-keyless",
      "name": "Sign Release Artifacts With Keyless Cosign",
      "description": "Adds keyless Sigstore/cosign signing for container images and binaries using workflow OIDC identity, with a verification recipe for consumers; use when published artifacts are unsigned and consumers can't verify authenticity.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "supply-chain",
        "signing",
        "cosign",
        "sigstore",
        "oidc"
      ],
      "bodyFile": "cicd-sign-artifacts-with-cosign-keyless.md"
    },
    {
      "id": "skill_def_cicd-split-build-test-stages-with-needs",
      "name": "Split A Monolithic Job Into Staged Build/Test/Deploy",
      "description": "Decomposes one giant CI job into discrete build, test, and deploy stages connected by needs edges and artifact handoffs for parallelism and clear failure attribution; use when a single job does everything and is slow or hard to debug.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "pipeline",
        "stages",
        "parallelism",
        "dependencies",
        "refactor"
      ],
      "bodyFile": "cicd-split-build-test-stages-with-needs.md"
    },
    {
      "id": "skill_def_cicd-stale-flag-cleanup",
      "name": "Remove A Fully-Rolled-Out Feature Flag",
      "description": "Deletes a flag that is permanently on (or off) and inlines the surviving code path, used when a flag has outlived its purpose and is now dead complexity.",
      "version": "1.0.0",
      "category": "CI/CD & Release",
      "tags": [
        "feature-flags",
        "cleanup",
        "refactor",
        "tech-debt"
      ],
      "bodyFile": "cicd-stale-flag-cleanup.md"
    },
    {
      "id": "skill_def_cloud-analyze-egress-data-transfer-cost",
      "name": "Analyze Data-Transfer And Egress Costs",
      "description": "Breaks down network data-transfer charges by path (cross-AZ, cross-region, internet, NAT) and pinpoints the top cost drivers, used when transfer costs are unexpectedly high.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "cost",
        "networking",
        "egress",
        "data-transfer"
      ],
      "bodyFile": "cloud-analyze-egress-data-transfer-cost.md"
    },
    {
      "id": "skill_def_cloud-apply-rbac-least-privilege",
      "name": "Define Least-Privilege RBAC For A Workload",
      "description": "Create a ServiceAccount with a scoped Role/RoleBinding granting only the API access a workload needs; use when a pod calls the Kubernetes API or a controller needs permissions.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "rbac",
        "serviceaccount",
        "security",
        "permissions"
      ],
      "bodyFile": "cloud-apply-rbac-least-privilege.md"
    },
    {
      "id": "skill_def_cloud-audit-iam-least-privilege",
      "name": "Audit IAM Policies For Least Privilege",
      "description": "Reviews IAM roles, users, and policies to surface wildcard permissions and unused grants, used when tightening access before an audit or after a security finding.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "iam",
        "security",
        "least-privilege",
        "audit"
      ],
      "bodyFile": "cloud-audit-iam-least-privilege.md"
    },
    {
      "id": "skill_def_cloud-audit-security-group-firewall-rules",
      "name": "Audit Security Group And Firewall Rules",
      "description": "Reviews security groups and firewall rules for overly open ingress, unused rules, and exposed sensitive ports, used during a network security review.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "networking",
        "security",
        "firewall",
        "audit"
      ],
      "bodyFile": "cloud-audit-security-group-firewall-rules.md"
    },
    {
      "id": "skill_def_cloud-author-helm-chart-scaffold",
      "name": "Scaffold A Helm Chart For A Service",
      "description": "Generate a templated Helm chart with values, templates, and helpers for a service; use when packaging a workload for repeatable, parameterized deploys.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "helm",
        "charts",
        "templating",
        "packaging",
        "values"
      ],
      "bodyFile": "cloud-author-helm-chart-scaffold.md"
    },
    {
      "id": "skill_def_cloud-build-ci-deploy-iam-role",
      "name": "Build A Least-Privilege CI/CD Deploy Role",
      "description": "Creates a scoped IAM role for a CI/CD pipeline using OIDC federation instead of static keys, used when a pipeline deploys with overly broad or long-lived credentials.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "iam",
        "cicd",
        "oidc",
        "security"
      ],
      "bodyFile": "cloud-build-ci-deploy-iam-role.md"
    },
    {
      "id": "skill_def_cloud-build-vpc-network-segmentation",
      "name": "Design VPC Network Segmentation",
      "description": "Lays out subnets, route tables, and security boundaries for a VPC/VNet to isolate tiers, used when standing up a new network or refactoring a flat one.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "networking",
        "vpc",
        "segmentation",
        "architecture"
      ],
      "bodyFile": "cloud-build-vpc-network-segmentation.md"
    },
    {
      "id": "skill_def_cloud-clean-up-orphaned-resources",
      "name": "Find And Remove Orphaned Resources",
      "description": "Discovers unattached volumes, idle IPs, stale snapshots, empty load balancers, and dangling DNS records, used during cost hygiene or account cleanup sweeps.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "cost",
        "cleanup",
        "hygiene",
        "resources"
      ],
      "bodyFile": "cloud-clean-up-orphaned-resources.md"
    },
    {
      "id": "skill_def_cloud-collect-pod-logs-and-events",
      "name": "Aggregate Pod Logs And Events For Triage",
      "description": "Pull correlated logs, previous-container logs, and namespace events across a workload's pods for incident triage; use when investigating a multi-pod failure.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "logs",
        "events",
        "triage",
        "observability"
      ],
      "bodyFile": "cloud-collect-pod-logs-and-events.md"
    },
    {
      "id": "skill_def_cloud-configure-autoscaling-policy",
      "name": "Configure Autoscaling Policies For A Workload",
      "description": "Designs target-tracking or step scaling policies with sane min/max and cooldowns for a compute fleet, used when a workload over- or under-provisions under variable load.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "compute",
        "autoscaling",
        "performance",
        "cost"
      ],
      "bodyFile": "cloud-configure-autoscaling-policy.md"
    },
    {
      "id": "skill_def_cloud-configure-hpa-autoscaling",
      "name": "Configure Horizontal Pod Autoscaling",
      "description": "Create a HorizontalPodAutoscaler targeting CPU, memory, or custom metrics with sane min/max and stabilization; use when a workload needs to scale with load.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "autoscaling",
        "hpa",
        "metrics",
        "scaling"
      ],
      "bodyFile": "cloud-configure-hpa-autoscaling.md"
    },
    {
      "id": "skill_def_cloud-configure-pod-disruption-budget",
      "name": "Define A PodDisruptionBudget For Availability",
      "description": "Create a PodDisruptionBudget so voluntary disruptions keep a minimum of replicas available; use before node drains, upgrades, or autoscaling events.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "pdb",
        "availability",
        "draining",
        "resilience"
      ],
      "bodyFile": "cloud-configure-pod-disruption-budget.md"
    },
    {
      "id": "skill_def_cloud-configure-vertical-pod-autoscaler",
      "name": "Set Up A Vertical Pod Autoscaler",
      "description": "Deploy a VerticalPodAutoscaler to recommend or auto-apply right-sized requests for a workload; use when sizing is unknown or drifts over time.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "vpa",
        "autoscaling",
        "resources",
        "rightsizing"
      ],
      "bodyFile": "cloud-configure-vertical-pod-autoscaler.md"
    },
    {
      "id": "skill_def_cloud-create-cronjob-scheduled-task",
      "name": "Schedule A Recurring Task With CronJob",
      "description": "Author a CronJob with schedule, concurrency policy, retries, and history limits; use when a workload must run on a recurring timetable.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "cronjob",
        "jobs",
        "scheduling",
        "batch"
      ],
      "bodyFile": "cloud-create-cronjob-scheduled-task.md"
    },
    {
      "id": "skill_def_cloud-create-ingress-tls-routing",
      "name": "Configure Ingress With TLS And Path Routing",
      "description": "Author an Ingress resource with host/path rules, TLS termination, and controller annotations; use when exposing HTTP services externally behind a single entrypoint.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "ingress",
        "tls",
        "routing",
        "networking"
      ],
      "bodyFile": "cloud-create-ingress-tls-routing.md"
    },
    {
      "id": "skill_def_cloud-debug-crashloopbackoff-pod",
      "name": "Diagnose A CrashLoopBackOff Pod",
      "description": "Systematically root-cause a pod stuck in CrashLoopBackOff by inspecting logs, exit codes, and events; use when a pod repeatedly restarts after deploy.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "debugging",
        "pods",
        "crashloop",
        "logs"
      ],
      "bodyFile": "cloud-debug-crashloopbackoff-pod.md"
    },
    {
      "id": "skill_def_cloud-debug-imagepullbackoff",
      "name": "Fix An ImagePullBackOff Error",
      "description": "Resolve image pull failures by checking the image reference, registry auth, and pull secrets; use when a pod can't start due to ErrImagePull or ImagePullBackOff.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "registry",
        "imagepull",
        "secrets",
        "debugging"
      ],
      "bodyFile": "cloud-debug-imagepullbackoff.md"
    },
    {
      "id": "skill_def_cloud-debug-oomkilled-container",
      "name": "Investigate An OOMKilled Container",
      "description": "Confirm and root-cause an out-of-memory kill via exit codes, events, and memory metrics, then resize or fix the leak; use when containers restart with exit 137.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "oom",
        "memory",
        "debugging",
        "limits"
      ],
      "bodyFile": "cloud-debug-oomkilled-container.md"
    },
    {
      "id": "skill_def_cloud-debug-pending-pod-scheduling",
      "name": "Resolve A Pod Stuck In Pending",
      "description": "Diagnose why a pod won't schedule by reading scheduler events for resource, affinity, taint, or PVC causes; use when a pod stays Pending after creation.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "scheduling",
        "debugging",
        "pods",
        "taints"
      ],
      "bodyFile": "cloud-debug-pending-pod-scheduling.md"
    },
    {
      "id": "skill_def_cloud-debug-service-connectivity",
      "name": "Troubleshoot A Service That Won't Route Traffic",
      "description": "Trace why a Service returns no endpoints or connection refused through selectors, ports, and endpoints; use when clients can't reach a working pod.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "service",
        "networking",
        "endpoints",
        "debugging"
      ],
      "bodyFile": "cloud-debug-service-connectivity.md"
    },
    {
      "id": "skill_def_cloud-design-disaster-recovery-strategy",
      "name": "Design A Cross-Region Disaster Recovery Strategy",
      "description": "Defines an RPO/RTO-driven DR approach (backup, pilot-light, warm-standby, or active-active) with replication and failover steps, used when a workload lacks a recovery plan.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "dr",
        "resilience",
        "multi-region",
        "architecture"
      ],
      "bodyFile": "cloud-design-disaster-recovery-strategy.md"
    },
    {
      "id": "skill_def_cloud-design-multi-account-org-structure",
      "name": "Design A Multi-Account Organization Structure",
      "description": "Lays out an organization/landing-zone structure with account boundaries, OUs, and guardrails for isolation and billing, used when scaling beyond a single account.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "governance",
        "organizations",
        "landing-zone",
        "architecture"
      ],
      "bodyFile": "cloud-design-multi-account-org-structure.md"
    },
    {
      "id": "skill_def_cloud-design-multi-tier-caching",
      "name": "Design A CDN And Caching Layer",
      "description": "Plans a CDN plus origin-cache strategy with cache keys, TTLs, and invalidation for a web workload, used to cut latency, origin load, and egress cost.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "networking",
        "cdn",
        "caching",
        "performance",
        "cost"
      ],
      "bodyFile": "cloud-design-multi-tier-caching.md"
    },
    {
      "id": "skill_def_cloud-detect-public-storage-exposure",
      "name": "Detect Publicly Exposed Object Storage",
      "description": "Scans object storage buckets and blobs for public-read/write access and misconfigured ACLs, used when verifying data exposure before launch or during incident response.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "storage",
        "security",
        "s3",
        "exposure",
        "networking"
      ],
      "bodyFile": "cloud-detect-public-storage-exposure.md"
    },
    {
      "id": "skill_def_cloud-enforce-encryption-at-rest",
      "name": "Enforce Encryption At Rest Across Services",
      "description": "Audits storage, databases, and volumes for encryption-at-rest and KMS key usage, then enforces it org-wide, used during a security baseline or compliance push.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "security",
        "encryption",
        "kms",
        "compliance"
      ],
      "bodyFile": "cloud-enforce-encryption-at-rest.md"
    },
    {
      "id": "skill_def_cloud-enforce-policy-as-code-guardrails",
      "name": "Author Policy-As-Code Guardrails",
      "description": "Writes preventive policy-as-code rules (SCP, Azure Policy, OPA) to block non-compliant resource creation, used to enforce standards without manual review.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "governance",
        "policy-as-code",
        "compliance",
        "opa"
      ],
      "bodyFile": "cloud-enforce-policy-as-code-guardrails.md"
    },
    {
      "id": "skill_def_cloud-harden-serverless-function",
      "name": "Harden A Serverless Function Configuration",
      "description": "Reviews a Lambda/Cloud Function/Azure Function for least-privilege execution role, memory/timeout tuning, and concurrency limits, used before promoting a function to production.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "serverless",
        "lambda",
        "security",
        "tuning"
      ],
      "bodyFile": "cloud-harden-serverless-function.md"
    },
    {
      "id": "skill_def_cloud-inspect-pod-with-ephemeral-debug",
      "name": "Debug A Running Pod With An Ephemeral Container",
      "description": "Attach an ephemeral debug container to a distroless or crashing pod to inspect processes, network, and filesystem; use when the image has no shell or tools.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "debugging",
        "ephemeral",
        "kubectl-debug",
        "distroless"
      ],
      "bodyFile": "cloud-inspect-pod-with-ephemeral-debug.md"
    },
    {
      "id": "skill_def_cloud-investigate-bill-spike",
      "name": "Investigate A Cloud Bill Spike",
      "description": "Traces an unexpected cost increase to the specific service, resource, and change that caused it, used during incident response to a billing anomaly.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "cost",
        "investigation",
        "finops",
        "incident"
      ],
      "bodyFile": "cloud-investigate-bill-spike.md"
    },
    {
      "id": "skill_def_cloud-lint-validate-manifests-policy",
      "name": "Lint And Policy-Validate Manifests Before Apply",
      "description": "Run schema validation, best-practice linting, and policy checks on manifests in CI; use before merging or applying Kubernetes YAML.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "linting",
        "validation",
        "ci",
        "policy"
      ],
      "bodyFile": "cloud-lint-validate-manifests-policy.md"
    },
    {
      "id": "skill_def_cloud-manage-configmap-secret-injection",
      "name": "Wire ConfigMaps And Secrets Into Pods",
      "description": "Inject configuration and credentials into containers via env vars and mounted volumes with correct keys and reload behavior; use when externalizing app config.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "configmap",
        "secrets",
        "env",
        "volumes"
      ],
      "bodyFile": "cloud-manage-configmap-secret-injection.md"
    },
    {
      "id": "skill_def_cloud-provision-managed-database-baseline",
      "name": "Provision A Production Managed-Database Baseline",
      "description": "Specifies a hardened managed-database configuration covering HA, backups, encryption, parameter tuning, and access, used when standing up a production database.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "database",
        "rds",
        "ha",
        "backups",
        "security"
      ],
      "bodyFile": "cloud-provision-managed-database-baseline.md"
    },
    {
      "id": "skill_def_cloud-purchase-commitment-plan",
      "name": "Plan Reserved And Savings-Plan Commitments",
      "description": "Analyzes steady-state usage to recommend reserved-instance and savings-plan purchases with the right coverage and term, used when optimizing committed-use discounts.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "cost",
        "savings-plans",
        "reservations",
        "finops"
      ],
      "bodyFile": "cloud-purchase-commitment-plan.md"
    },
    {
      "id": "skill_def_cloud-rightsize-idle-compute",
      "name": "Rightsize And Reclaim Idle Compute Instances",
      "description": "Identifies over-provisioned or idle VMs/instances from utilization metrics and recommends a concrete resize or termination plan, used during cost-reduction sweeps.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "cost",
        "compute",
        "rightsizing",
        "aws",
        "gcp"
      ],
      "bodyFile": "cloud-rightsize-idle-compute.md"
    },
    {
      "id": "skill_def_cloud-rollout-rollback-deployment",
      "name": "Drive And Roll Back A Deployment Rollout",
      "description": "Monitor a Deployment rollout to completion and roll back to a known-good revision on failure; use during releases that may regress.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "deployment",
        "rollout",
        "rollback",
        "release"
      ],
      "bodyFile": "cloud-rollout-rollback-deployment.md"
    },
    {
      "id": "skill_def_cloud-rotate-secrets-and-keys",
      "name": "Rotate Secrets And Access Keys Safely",
      "description": "Produces a zero-downtime rotation plan for access keys, database credentials, and API secrets stored in a secret manager, used on a schedule or after a suspected leak.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "secrets",
        "security",
        "rotation",
        "iam"
      ],
      "bodyFile": "cloud-rotate-secrets-and-keys.md"
    },
    {
      "id": "skill_def_cloud-set-budget-alerts-anomaly-detection",
      "name": "Configure Budget Alerts And Cost Anomaly Detection",
      "description": "Sets up tiered budget thresholds and anomaly detectors so spend surprises trigger alerts early, used when a team has no proactive cost monitoring.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "cost",
        "budgets",
        "monitoring",
        "finops"
      ],
      "bodyFile": "cloud-set-budget-alerts-anomaly-detection.md"
    },
    {
      "id": "skill_def_cloud-set-resource-requests-limits",
      "name": "Right-Size Pod Resource Requests And Limits",
      "description": "Derive CPU and memory requests/limits from observed usage and set QoS class intentionally; use when pods are over-provisioned, throttled, or getting OOMKilled.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "resources",
        "qos",
        "oom",
        "rightsizing"
      ],
      "bodyFile": "cloud-set-resource-requests-limits.md"
    },
    {
      "id": "skill_def_cloud-set-up-private-service-connectivity",
      "name": "Set Up Private Connectivity To Managed Services",
      "description": "Replaces internet-routed access to managed services with VPC endpoints/Private Link so traffic stays private, used to cut egress cost and meet no-public-egress policies.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "networking",
        "private-link",
        "vpc-endpoints",
        "security"
      ],
      "bodyFile": "cloud-set-up-private-service-connectivity.md"
    },
    {
      "id": "skill_def_cloud-tag-cost-allocation-strategy",
      "name": "Design A Cost-Allocation Tagging Strategy",
      "description": "Defines and enforces a resource-tagging scheme for cost attribution and finds untagged resources, used when bills can't be broken down by team or project.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "cost",
        "tagging",
        "governance",
        "finops"
      ],
      "bodyFile": "cloud-tag-cost-allocation-strategy.md"
    },
    {
      "id": "skill_def_cloud-tier-object-storage-lifecycle",
      "name": "Set Object-Storage Lifecycle And Tiering Rules",
      "description": "Designs lifecycle rules to transition aging objects to cheaper storage tiers and expire stale data, used when storage costs grow without cleanup.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "storage",
        "cost",
        "lifecycle",
        "tiering"
      ],
      "bodyFile": "cloud-tier-object-storage-lifecycle.md"
    },
    {
      "id": "skill_def_cloud-trace-cross-account-access-paths",
      "name": "Trace Cross-Account And External Access Paths",
      "description": "Maps every way an external account or principal can reach resources via role trust, resource policies, and sharing, used to verify the account's external attack surface.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "iam",
        "security",
        "cross-account",
        "audit"
      ],
      "bodyFile": "cloud-trace-cross-account-access-paths.md"
    },
    {
      "id": "skill_def_cloud-trace-dns-resolution-failure",
      "name": "Diagnose Cluster DNS Resolution Failures",
      "description": "Root-cause failed in-cluster name lookups through CoreDNS, search domains, and NetworkPolicy; use when pods can't resolve service or external names.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "dns",
        "coredns",
        "networking",
        "debugging"
      ],
      "bodyFile": "cloud-trace-dns-resolution-failure.md"
    },
    {
      "id": "skill_def_cloud-upgrade-helm-release-safely",
      "name": "Upgrade A Helm Release With Diff And Rollback",
      "description": "Preview, apply, and verify a Helm release upgrade with diff and atomic flags, rolling back on failure; use when changing chart version or values in production.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "helm",
        "upgrade",
        "diff",
        "rollback",
        "release"
      ],
      "bodyFile": "cloud-upgrade-helm-release-safely.md"
    },
    {
      "id": "skill_def_cloud-validate-iac-plan-before-apply",
      "name": "Validate An Infrastructure-As-Code Plan Before Apply",
      "description": "Reviews a Terraform/CloudFormation plan for destructive changes, drift, security regressions, and cost impact, used as a gate before applying infrastructure changes.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "iac",
        "terraform",
        "review",
        "safety"
      ],
      "bodyFile": "cloud-validate-iac-plan-before-apply.md"
    },
    {
      "id": "skill_def_cloud-write-deployment-manifest",
      "name": "Write A Production-Ready Deployment Manifest",
      "description": "Author a Kubernetes Deployment YAML with resource requests/limits, probes, and rollout strategy from a service spec; use when onboarding a new stateless workload to a cluster.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "manifests",
        "deployment",
        "yaml",
        "probes"
      ],
      "bodyFile": "cloud-write-deployment-manifest.md"
    },
    {
      "id": "skill_def_cloud-write-network-policy-default-deny",
      "name": "Write A Default-Deny Network Policy With Allowlists",
      "description": "Author NetworkPolicy resources that deny all pod traffic by default then allow specific ingress/egress flows; use when locking down namespace communication.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "networkpolicy",
        "security",
        "ingress",
        "egress"
      ],
      "bodyFile": "cloud-write-network-policy-default-deny.md"
    },
    {
      "id": "skill_def_cloud-write-pod-affinity-rules",
      "name": "Author Pod Affinity And Anti-Affinity Rules",
      "description": "Add nodeAffinity, podAffinity, and topology-spread rules to place pods for resilience or co-location; use when spreading replicas across zones or pinning to node types.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "affinity",
        "scheduling",
        "topology",
        "placement"
      ],
      "bodyFile": "cloud-write-pod-affinity-rules.md"
    },
    {
      "id": "skill_def_cloud-write-statefulset-storage",
      "name": "Author A StatefulSet With Persistent Storage",
      "description": "Build a StatefulSet with stable identities, a headless service, and volumeClaimTemplates; use when deploying ordered, stateful workloads like databases.",
      "version": "1.0.0",
      "category": "Cloud & Kubernetes",
      "tags": [
        "kubernetes",
        "statefulset",
        "storage",
        "pvc",
        "stateful"
      ],
      "bodyFile": "cloud-write-statefulset-storage.md"
    },
    {
      "id": "skill_def_code-add-characterization-tests-before-refactor",
      "name": "Add Characterization Tests Before Refactoring",
      "description": "Captures the current observable behavior of untested legacy code in characterization tests so a refactor can proceed safely with a behavior baseline; use before refactoring code lacking tests.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "characterization-tests",
        "legacy",
        "safety-net",
        "refactor",
        "baseline"
      ],
      "bodyFile": "code-add-characterization-tests-before-refactor.md"
    },
    {
      "id": "skill_def_code-break-down-large-class",
      "name": "Break Down A Large Class By Responsibility",
      "description": "Splits an overgrown class that has accumulated multiple responsibilities into collaborating smaller classes following single-responsibility; use when one class does too many unrelated jobs.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "large-class",
        "single-responsibility",
        "split",
        "cohesion",
        "delegation"
      ],
      "bodyFile": "code-break-down-large-class.md"
    },
    {
      "id": "skill_def_code-consolidate-duplicate-conditionals",
      "name": "Consolidate Duplicate Conditional Expressions",
      "description": "Merges scattered or repeated conditional checks that test the same thing into a single well-named predicate or early guard; use when the same boolean logic is re-evaluated in many places.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "conditional",
        "predicate",
        "dedupe",
        "boolean",
        "guard"
      ],
      "bodyFile": "code-consolidate-duplicate-conditionals.md"
    },
    {
      "id": "skill_def_code-convert-callback-to-async",
      "name": "Convert Callback Chains To Async/Await",
      "description": "Refactors nested callback or promise-chain code into linear async/await, flattening callback hell while preserving error handling and ordering; use when asynchronous control flow is hard to follow.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "async",
        "callback",
        "promises",
        "control-flow",
        "modernize"
      ],
      "bodyFile": "code-convert-callback-to-async.md"
    },
    {
      "id": "skill_def_code-convert-callbacks-to-async-await",
      "name": "Convert Callback Code to Async/Await",
      "description": "Rewrites callback-based or promise-chain code into async/await with proper error propagation and concurrency, preserving behavior; use when modernizing asynchronous JavaScript or Python.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "refactor",
        "async",
        "promises",
        "modernization",
        "javascript"
      ],
      "bodyFile": "code-convert-callbacks-to-async-await.md"
    },
    {
      "id": "skill_def_code-decompose-deep-nesting",
      "name": "Decompose Deeply Nested Loops And Conditionals",
      "description": "Flattens pyramids of nested loops and conditionals using early continues, extracted inner bodies, and helper functions; use when indentation depth makes control flow hard to follow.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "nesting",
        "loops",
        "flatten",
        "control-flow",
        "readability"
      ],
      "bodyFile": "code-decompose-deep-nesting.md"
    },
    {
      "id": "skill_def_code-dedupe-copy-paste-blocks",
      "name": "Deduplicate Copy-Pasted Code Blocks",
      "description": "Finds near-identical duplicated code blocks and unifies them into a single shared function or parameterized helper; use when the same logic has been pasted into multiple places.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "dedupe",
        "dry",
        "duplication",
        "extract",
        "shared"
      ],
      "bodyFile": "code-dedupe-copy-paste-blocks.md"
    },
    {
      "id": "skill_def_code-encapsulate-mutable-global-state",
      "name": "Encapsulate Mutable Global State",
      "description": "Wraps scattered mutable global/module-level variables behind a controlled accessor or injected dependency to make state changes explicit and testable; use when globals are mutated from many places.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "global-state",
        "encapsulate",
        "mutation",
        "testability",
        "side-effects"
      ],
      "bodyFile": "code-encapsulate-mutable-global-state.md"
    },
    {
      "id": "skill_def_code-extract-class-from-blob",
      "name": "Extract A Class From A Data Blob",
      "description": "Pulls a cluster of related fields and the functions that operate on them out into a cohesive class or type with methods; use when related data and behavior are scattered as loose variables.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "extract-class",
        "encapsulation",
        "cohesion",
        "data",
        "object"
      ],
      "bodyFile": "code-extract-class-from-blob.md"
    },
    {
      "id": "skill_def_code-extract-interface-from-implementation",
      "name": "Extract An Interface From A Concrete Class",
      "description": "Derives a minimal interface from a concrete class's public surface to enable substitution, testing, and decoupling; use when consumers are tightly bound to a concrete implementation.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "interface",
        "abstraction",
        "decouple",
        "testability",
        "seam"
      ],
      "bodyFile": "code-extract-interface-from-implementation.md"
    },
    {
      "id": "skill_def_code-extract-long-function",
      "name": "Extract Long Function Into Named Helpers",
      "description": "Decomposes a long, multi-responsibility function into small, well-named helper functions while preserving behavior exactly; use when a function exceeds a sane length or mixes several concerns.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "extract",
        "function",
        "decompose",
        "readability",
        "behavior-preserving"
      ],
      "bodyFile": "code-extract-long-function.md"
    },
    {
      "id": "skill_def_code-extract-shared-module-from-duplication",
      "name": "Extract Shared Code Into a Reusable Module",
      "description": "Identifies duplicated logic across files and extracts it into a single well-named, parameterized module with call sites updated; use when the same code has been copy-pasted.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "refactor",
        "dry",
        "extraction",
        "deduplication",
        "modularization"
      ],
      "bodyFile": "code-extract-shared-module-from-duplication.md"
    },
    {
      "id": "skill_def_code-extract-shared-utility",
      "name": "Extract A Shared Utility From Repeated Inline Logic",
      "description": "Identifies small repeated inline computations (formatting, parsing, validation snippets) and promotes them into a tested shared utility; use when the same micro-logic recurs across files.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "utility",
        "extract",
        "dry",
        "reuse",
        "helper"
      ],
      "bodyFile": "code-extract-shared-utility.md"
    },
    {
      "id": "skill_def_code-generate-builder-pattern",
      "name": "Generate a Builder for a Complex Constructor",
      "description": "Replaces a many-parameter constructor with a fluent builder offering required-field enforcement and sensible defaults; use when object construction has grown unwieldy or error-prone.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "codegen",
        "builder",
        "design-pattern",
        "constructor",
        "refactor"
      ],
      "bodyFile": "code-generate-builder-pattern.md"
    },
    {
      "id": "skill_def_code-generate-config-loader",
      "name": "Generate a Typed Config Loader With Validation",
      "description": "Builds a typed configuration loader that reads env vars or files, validates required keys, applies defaults, and fails fast on misconfiguration; use when wiring app configuration.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "codegen",
        "config",
        "environment",
        "validation",
        "boilerplate"
      ],
      "bodyFile": "code-generate-config-loader.md"
    },
    {
      "id": "skill_def_code-generate-dto-from-json-sample",
      "name": "Generate Typed DTOs From a JSON Sample",
      "description": "Infers typed data classes/interfaces from one or more example JSON payloads, including nested objects and nullability; use when you have sample API responses but no schema.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "codegen",
        "json",
        "types",
        "dto",
        "deserialization"
      ],
      "bodyFile": "code-generate-dto-from-json-sample.md"
    },
    {
      "id": "skill_def_code-generate-feature-flag-scaffold",
      "name": "Scaffold a Feature Flag and Its Branch Points",
      "description": "Adds a typed feature flag, wires it into the flag system, and inserts guarded branch points around new behavior with an off-by-default path; use when shipping behind a flag.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "scaffolding",
        "feature-flag",
        "rollout",
        "toggle",
        "config"
      ],
      "bodyFile": "code-generate-feature-flag-scaffold.md"
    },
    {
      "id": "skill_def_code-generate-fixtures-and-factories",
      "name": "Generate Test Fixtures and Factory Builders",
      "description": "Creates factory functions or builders that produce valid domain objects with overridable fields for tests; use when tests need realistic, varied input data.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "testing",
        "codegen",
        "fixtures",
        "factories",
        "test-data"
      ],
      "bodyFile": "code-generate-fixtures-and-factories.md"
    },
    {
      "id": "skill_def_code-generate-graphql-resolver",
      "name": "Scaffold a GraphQL Type and Resolvers",
      "description": "Generates an SDL type plus query/mutation resolvers wired to a data source, with input types and field resolvers; use when adding a new entity to a GraphQL schema.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "scaffolding",
        "graphql",
        "resolver",
        "schema",
        "api"
      ],
      "bodyFile": "code-generate-graphql-resolver.md"
    },
    {
      "id": "skill_def_code-generate-idempotent-seed-script",
      "name": "Generate an Idempotent Database Seed Script",
      "description": "Writes a seed script that inserts reference and sample data using upserts so it is safe to run repeatedly; use when bootstrapping dev/test databases or reference tables.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "codegen",
        "seed",
        "database",
        "idempotent",
        "fixtures"
      ],
      "bodyFile": "code-generate-idempotent-seed-script.md"
    },
    {
      "id": "skill_def_code-generate-mock-from-interface",
      "name": "Generate a Mock Implementation From an Interface",
      "description": "Creates a configurable mock/fake of an interface that records calls and returns programmable responses for tests; use when a dependency must be isolated in unit tests.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "testing",
        "codegen",
        "mock",
        "test-double",
        "interface"
      ],
      "bodyFile": "code-generate-mock-from-interface.md"
    },
    {
      "id": "skill_def_code-generate-orm-model-from-schema",
      "name": "Generate an ORM Model From a Database Table",
      "description": "Produces an ORM model class with fields, types, relationships, and indexes derived from an existing table's DDL or introspected schema; use when adding ORM coverage to a legacy database.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "codegen",
        "orm",
        "database",
        "models",
        "migration"
      ],
      "bodyFile": "code-generate-orm-model-from-schema.md"
    },
    {
      "id": "skill_def_code-generate-state-machine",
      "name": "Generate a State Machine From States and Transitions",
      "description": "Produces a typed state machine with enumerated states, guarded transitions, and illegal-transition rejection from a states/events table; use when modeling an entity lifecycle.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "codegen",
        "state-machine",
        "fsm",
        "lifecycle",
        "types"
      ],
      "bodyFile": "code-generate-state-machine.md"
    },
    {
      "id": "skill_def_code-generate-unit-test-skeleton",
      "name": "Generate a Unit Test Skeleton For a Function",
      "description": "Produces a structured test file with cases for happy path, edge cases, and error branches for a target function using the project's test framework; use when adding tests to untested code.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "testing",
        "codegen",
        "unit-tests",
        "skeleton",
        "coverage"
      ],
      "bodyFile": "code-generate-unit-test-skeleton.md"
    },
    {
      "id": "skill_def_code-implement-from-openapi-spec",
      "name": "Generate a Typed API Client From an OpenAPI Spec",
      "description": "Generates a typed client with one method per operation, request/response models, and error handling from an OpenAPI/Swagger document; use when consuming a documented HTTP API.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "codegen",
        "openapi",
        "api-client",
        "http",
        "types"
      ],
      "bodyFile": "code-implement-from-openapi-spec.md"
    },
    {
      "id": "skill_def_code-implement-interface-stub",
      "name": "Implement an Interface With Method Stubs",
      "description": "Generates a class that implements a given interface/trait/protocol with correctly-typed method stubs and not-implemented markers; use when you need a new concrete implementation or a test fake.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "codegen",
        "interface",
        "implementation",
        "stubs",
        "boilerplate"
      ],
      "bodyFile": "code-implement-interface-stub.md"
    },
    {
      "id": "skill_def_code-implement-pagination-logic",
      "name": "Implement Pagination for a List Endpoint or Query",
      "description": "Adds offset or cursor-based pagination to a list query and its endpoint, including total/next-cursor metadata and bounded page sizes; use when an unbounded list must be paged.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "codegen",
        "pagination",
        "api",
        "query",
        "backend"
      ],
      "bodyFile": "code-implement-pagination-logic.md"
    },
    {
      "id": "skill_def_code-implement-retry-with-backoff",
      "name": "Wrap an Operation With Retry and Exponential Backoff",
      "description": "Adds bounded retries with exponential backoff, jitter, and a retryable-error filter around a flaky call; use when an external operation fails transiently.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "codegen",
        "resilience",
        "retry",
        "backoff",
        "reliability"
      ],
      "bodyFile": "code-implement-retry-with-backoff.md"
    },
    {
      "id": "skill_def_code-inline-needless-indirection",
      "name": "Inline Needless Indirection",
      "description": "Removes pointless wrapper functions, pass-through methods, and trivial single-use abstractions that add layers without value; use when indirection obscures rather than clarifies the code.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "inline",
        "indirection",
        "simplify",
        "wrapper",
        "yagni"
      ],
      "bodyFile": "code-inline-needless-indirection.md"
    },
    {
      "id": "skill_def_code-introduce-parameter-object",
      "name": "Introduce A Parameter Object",
      "description": "Replaces a long parameter list with a single cohesive object or struct, clarifying call sites and grouping related arguments; use when functions take too many positional parameters.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "parameter-object",
        "signature",
        "refactor",
        "arguments",
        "cohesion"
      ],
      "bodyFile": "code-introduce-parameter-object.md"
    },
    {
      "id": "skill_def_code-migrate-js-to-typescript",
      "name": "Migrate a JavaScript Module to TypeScript",
      "description": "Converts a .js file to .ts by adding parameter/return types, interfaces for object shapes, and fixing implicit-any sites; use when incrementally adopting TypeScript in a JS codebase.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "migration",
        "typescript",
        "javascript",
        "types",
        "refactor"
      ],
      "bodyFile": "code-migrate-js-to-typescript.md"
    },
    {
      "id": "skill_def_code-migrate-python2-to-python3",
      "name": "Migrate Python 2 Code to Python 3",
      "description": "Modernizes a Python 2 module to Python 3 syntax and idioms — print, division, unicode, iterators, exception syntax — preserving behavior; use when porting legacy Python.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "migration",
        "python",
        "modernization",
        "legacy",
        "refactor"
      ],
      "bodyFile": "code-migrate-python2-to-python3.md"
    },
    {
      "id": "skill_def_code-move-method-to-right-owner",
      "name": "Move A Method To Its Rightful Owner",
      "description": "Relocates a method to the class or module that owns the data it primarily operates on, reducing feature envy and improving cohesion; use when a method mostly touches another object's state.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "move-method",
        "feature-envy",
        "cohesion",
        "encapsulation",
        "refactor"
      ],
      "bodyFile": "code-move-method-to-right-owner.md"
    },
    {
      "id": "skill_def_code-normalize-naming-conventions",
      "name": "Normalize Naming Conventions Across A Module",
      "description": "Aligns inconsistent identifier casing, prefixes, and terminology to the project's conventions within a module or package; use when mixed naming styles cause confusion.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "naming",
        "conventions",
        "consistency",
        "casing",
        "style"
      ],
      "bodyFile": "code-normalize-naming-conventions.md"
    },
    {
      "id": "skill_def_code-port-class-to-functional",
      "name": "Convert a Class Component to Hooks/Functional Style",
      "description": "Rewrites a class-based React component into a function component with hooks, migrating state, lifecycle, and refs while preserving behavior; use when modernizing legacy components.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "refactor",
        "react",
        "hooks",
        "migration",
        "functional"
      ],
      "bodyFile": "code-port-class-to-functional.md"
    },
    {
      "id": "skill_def_code-reduce-cyclomatic-complexity",
      "name": "Reduce Cyclomatic Complexity Of A Function",
      "description": "Lowers a function's branching complexity using guard clauses, early returns, lookup tables, and extracted predicates; use when a function has deeply nested conditionals and a high complexity score.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "complexity",
        "cyclomatic",
        "guard-clause",
        "branching",
        "readability"
      ],
      "bodyFile": "code-reduce-cyclomatic-complexity.md"
    },
    {
      "id": "skill_def_code-remove-commented-out-code",
      "name": "Remove Commented-Out And Stale TODO Code",
      "description": "Cleans out blocks of commented-out code and obsolete TODO/FIXME comments after verifying they hold no live value, relying on version control as the real history; use to declutter source files.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "cleanup",
        "comments",
        "dead-code",
        "todo",
        "hygiene"
      ],
      "bodyFile": "code-remove-commented-out-code.md"
    },
    {
      "id": "skill_def_code-remove-dead-code",
      "name": "Detect And Remove Dead Code",
      "description": "Identifies and safely deletes unreachable code, unused functions, variables, and imports verified to have no remaining references; use to shrink a codebase and reduce maintenance surface.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "dead-code",
        "cleanup",
        "unused",
        "delete",
        "pruning"
      ],
      "bodyFile": "code-remove-dead-code.md"
    },
    {
      "id": "skill_def_code-rename-symbol-safely",
      "name": "Rename A Symbol Across The Codebase",
      "description": "Renames a variable, function, class, or module to a clearer name across every reference and string usage safely; use when a name is misleading, abbreviated, or inconsistent with conventions.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "rename",
        "naming",
        "refactor",
        "consistency",
        "search"
      ],
      "bodyFile": "code-rename-symbol-safely.md"
    },
    {
      "id": "skill_def_code-replace-conditional-with-polymorphism",
      "name": "Replace Type-Switching Conditionals With Polymorphism",
      "description": "Converts repeated type-based switch/if chains into polymorphic dispatch via subclasses, interfaces, or a strategy map; use when the same conditional on a type tag is duplicated across the code.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "polymorphism",
        "strategy",
        "conditional",
        "dispatch",
        "oop"
      ],
      "bodyFile": "code-replace-conditional-with-polymorphism.md"
    },
    {
      "id": "skill_def_code-replace-flag-argument",
      "name": "Replace Boolean Flag Arguments With Distinct Functions",
      "description": "Splits a function that switches behavior on a boolean flag into two clearly-named functions, removing opaque true/false call sites; use when a flag parameter selects between two modes.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "flag-argument",
        "boolean",
        "split-function",
        "clarity",
        "api"
      ],
      "bodyFile": "code-replace-flag-argument.md"
    },
    {
      "id": "skill_def_code-replace-magic-numbers",
      "name": "Replace Magic Numbers And Strings With Named Constants",
      "description": "Extracts unexplained literal values scattered through code into well-named, centralized constants or enums; use when raw literals obscure intent or are repeated across the codebase.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "constants",
        "magic-numbers",
        "enum",
        "naming",
        "clarity"
      ],
      "bodyFile": "code-replace-magic-numbers.md"
    },
    {
      "id": "skill_def_code-scaffold-cli-subcommand",
      "name": "Scaffold a CLI Subcommand",
      "description": "Adds a new subcommand to an existing command-line tool with argument parsing, help text, and a handler stub wired into the dispatcher; use when extending a CLI built on clap, Cobra, argparse, or similar.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "scaffolding",
        "cli",
        "argparse",
        "subcommand",
        "boilerplate"
      ],
      "bodyFile": "code-scaffold-cli-subcommand.md"
    },
    {
      "id": "skill_def_code-scaffold-database-migration",
      "name": "Scaffold a Database Migration File",
      "description": "Generates an up/down migration for a described schema change (add column, create table, add index, backfill) in the project's migration tool; use when evolving the database schema.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "scaffolding",
        "migration",
        "database",
        "schema",
        "ddl"
      ],
      "bodyFile": "code-scaffold-database-migration.md"
    },
    {
      "id": "skill_def_code-scaffold-event-handler-pubsub",
      "name": "Scaffold a Message Queue Consumer",
      "description": "Generates a queue/topic consumer with deserialization, handler dispatch, ack/retry, and dead-letter handling for a described message; use when adding async event processing.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "scaffolding",
        "messaging",
        "queue",
        "consumer",
        "pubsub"
      ],
      "bodyFile": "code-scaffold-event-handler-pubsub.md"
    },
    {
      "id": "skill_def_code-scaffold-react-component",
      "name": "Scaffold a React Component With Props and Tests",
      "description": "Generates a typed React function component with a props interface, sensible defaults, styling hook, and a render test; use when adding a new UI component to a React app.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "scaffolding",
        "react",
        "frontend",
        "component",
        "tsx"
      ],
      "bodyFile": "code-scaffold-react-component.md"
    },
    {
      "id": "skill_def_code-scaffold-rest-crud-endpoint",
      "name": "Scaffold a REST CRUD Endpoint",
      "description": "Generates a complete create/read/update/delete REST resource (route, handler, validation, model, tests) from a resource name and field spec; use when adding a new entity to an existing web API.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "scaffolding",
        "rest",
        "api",
        "crud",
        "backend"
      ],
      "bodyFile": "code-scaffold-rest-crud-endpoint.md"
    },
    {
      "id": "skill_def_code-simplify-boolean-logic",
      "name": "Simplify Tangled Boolean Expressions",
      "description": "Reduces convoluted boolean expressions using algebraic simplification, De Morgan's laws, and named sub-predicates while preserving the truth table; use when conditions are hard to read or verify.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "boolean",
        "simplify",
        "predicate",
        "logic",
        "readability"
      ],
      "bodyFile": "code-simplify-boolean-logic.md"
    },
    {
      "id": "skill_def_code-split-god-module",
      "name": "Split A God Module Into Cohesive Units",
      "description": "Breaks an oversized, low-cohesion module into several focused modules grouped by responsibility with clean boundaries; use when one file has grown to handle many unrelated concerns.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "modularize",
        "cohesion",
        "split",
        "boundaries",
        "architecture"
      ],
      "bodyFile": "code-split-god-module.md"
    },
    {
      "id": "skill_def_code-untangle-circular-dependency",
      "name": "Untangle A Circular Dependency",
      "description": "Breaks a dependency cycle between modules by extracting shared types, inverting a dependency, or introducing an interface; use when modules import each other and create coupling or build issues.",
      "version": "1.0.0",
      "category": "Coding & Refactoring",
      "tags": [
        "circular-dependency",
        "decouple",
        "architecture",
        "interface",
        "dependency"
      ],
      "bodyFile": "code-untangle-circular-dependency.md"
    },
    {
      "id": "skill_def_data-aggregate-with-grain-control",
      "name": "Aggregate With Explicit Grain Control",
      "description": "Builds a grouped aggregation while explicitly declaring and verifying the output grain, choosing additive vs non-additive measures correctly, to avoid double-counting and wrong totals.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "aggregation",
        "grain",
        "grouping",
        "metrics"
      ],
      "bodyFile": "data-aggregate-with-grain-control.md"
    },
    {
      "id": "skill_def_data-analyze-churn-drivers",
      "name": "Analyze Churn Drivers",
      "description": "Identifies which user attributes and behaviors most distinguish churned from retained users, used when you need to understand and prioritize causes of churn.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "churn",
        "retention",
        "analysis",
        "drivers"
      ],
      "bodyFile": "data-analyze-churn-drivers.md"
    },
    {
      "id": "skill_def_data-attribute-conversions-multi-touch",
      "name": "Attribute Conversions Across Touchpoints",
      "description": "Assigns conversion credit across the channels or touchpoints in a user's journey using a chosen attribution model, used when you need to value marketing channels fairly.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "attribution",
        "conversion",
        "channels",
        "marketing"
      ],
      "bodyFile": "data-attribute-conversions-multi-touch.md"
    },
    {
      "id": "skill_def_data-bin-and-bucket-continuous",
      "name": "Bin Continuous Values Into Buckets",
      "description": "Discretizes a continuous column into labeled buckets using fixed-width, quantile, or custom edges, producing reproducible bin boundaries for reporting, segmentation, or feature prep.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "binning",
        "discretization",
        "feature-prep",
        "transformation"
      ],
      "bodyFile": "data-bin-and-bucket-continuous.md"
    },
    {
      "id": "skill_def_data-build-active-user-metrics",
      "name": "Build Active User Metrics And Stickiness",
      "description": "Computes DAU, WAU, MAU and the DAU/MAU stickiness ratio with consistent active-user definitions, used when reporting engagement and habit formation.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "engagement",
        "active-users",
        "stickiness",
        "metrics"
      ],
      "bodyFile": "data-build-active-user-metrics.md"
    },
    {
      "id": "skill_def_data-build-cohort-retention-curve",
      "name": "Build Cohort Retention Curve",
      "description": "Computes period-over-period retention for time-based signup cohorts and renders a retention curve or triangle, used when you need to measure how user engagement decays after acquisition.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "cohorts",
        "retention",
        "sql",
        "metrics"
      ],
      "bodyFile": "data-build-cohort-retention-curve.md"
    },
    {
      "id": "skill_def_data-build-distribution-percentile-report",
      "name": "Build Distribution And Percentile Report",
      "description": "Summarizes a metric's full distribution with percentiles and tail analysis instead of just the average, used when averages mislead and you need to understand spread.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "distribution",
        "percentiles",
        "metrics",
        "statistics"
      ],
      "bodyFile": "data-build-distribution-percentile-report.md"
    },
    {
      "id": "skill_def_data-build-funnel-segmentation-comparison",
      "name": "Build Segmented Funnel Comparison",
      "description": "Compares the same conversion funnel across user segments to reveal where specific groups underperform, used when an overall funnel hides segment-specific leaks.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "funnels",
        "segmentation",
        "conversion",
        "comparison"
      ],
      "bodyFile": "data-build-funnel-segmentation-comparison.md"
    },
    {
      "id": "skill_def_data-build-pacing-vs-target-report",
      "name": "Build Pacing-Vs-Target Report",
      "description": "Tracks a cumulative metric against its period target and projects end-of-period attainment, used when you need to know mid-period whether a goal will be met.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "pacing",
        "targets",
        "forecasting",
        "reporting"
      ],
      "bodyFile": "data-build-pacing-vs-target-report.md"
    },
    {
      "id": "skill_def_data-build-slowly-changing-dimension",
      "name": "Build A Slowly Changing Dimension (Type 2)",
      "description": "Implements Type-2 SCD history tracking by closing changed records and inserting new versions with effective/expiry dates and a current flag, preserving full attribute history in a dimension table.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "scd",
        "dimensional",
        "history",
        "etl",
        "warehouse"
      ],
      "bodyFile": "data-build-slowly-changing-dimension.md"
    },
    {
      "id": "skill_def_data-build-weekly-business-review-narrative",
      "name": "Build Weekly Business Review Narrative",
      "description": "Turns a metrics dashboard into a written WBR narrative with movements, drivers, and follow-ups, used when a recurring review needs prose context, not just charts.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "reporting",
        "narrative",
        "wbr",
        "metrics"
      ],
      "bodyFile": "data-build-weekly-business-review-narrative.md"
    },
    {
      "id": "skill_def_data-calculate-rfm-scores",
      "name": "Calculate RFM Customer Scores",
      "description": "Scores customers on Recency, Frequency, and Monetary dimensions and assigns RFM segments, used when you need to rank and group customers by transactional value.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "rfm",
        "segmentation",
        "customers",
        "scoring"
      ],
      "bodyFile": "data-calculate-rfm-scores.md"
    },
    {
      "id": "skill_def_data-chunked-large-file-processing",
      "name": "Process A Too-Large File In Chunks",
      "description": "Streams a file that exceeds memory in bounded chunks, applying a transformation and accumulating aggregates incrementally, so multi-gigabyte inputs are processed without loading them whole.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "streaming",
        "chunking",
        "memory",
        "etl",
        "scalability"
      ],
      "bodyFile": "data-chunked-large-file-processing.md"
    },
    {
      "id": "skill_def_data-coerce-mixed-types",
      "name": "Coerce Mixed-Type Columns Safely",
      "description": "Converts columns that hold mixed representations (numbers stored as strings, booleans as Y/N, dates as text) into a single target type while quarantining unconvertible values instead of silently dropping them.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "type-coercion",
        "cleaning",
        "parsing",
        "validation"
      ],
      "bodyFile": "data-coerce-mixed-types.md"
    },
    {
      "id": "skill_def_data-compute-customer-ltv",
      "name": "Compute Customer Lifetime Value",
      "description": "Estimates customer lifetime value from historical revenue and retention, used when you need to quantify long-term customer worth for acquisition or budgeting decisions.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "ltv",
        "revenue",
        "customers",
        "forecasting"
      ],
      "bodyFile": "data-compute-customer-ltv.md"
    },
    {
      "id": "skill_def_data-compute-statistical-sample-size",
      "name": "Compute Experiment Sample Size",
      "description": "Calculates the required sample size and runtime for an experiment given baseline rate, minimum effect, power, and significance, used when planning an A/B test before launch.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "ab-testing",
        "power-analysis",
        "sample-size",
        "experiment"
      ],
      "bodyFile": "data-compute-statistical-sample-size.md"
    },
    {
      "id": "skill_def_data-compute-week-over-week-deltas",
      "name": "Compute Week-Over-Week Metric Deltas",
      "description": "Calculates week-over-week absolute and percentage changes for a set of metrics with directional flags, used when producing a recurring metrics-movement summary.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "metrics",
        "reporting",
        "deltas",
        "wow"
      ],
      "bodyFile": "data-compute-week-over-week-deltas.md"
    },
    {
      "id": "skill_def_data-construct-conversion-funnel-report",
      "name": "Construct Conversion Funnel Report",
      "description": "Builds an ordered step-by-step conversion funnel from event data with per-step drop-off rates, used when you need to find where users abandon a multi-step flow.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "funnels",
        "conversion",
        "events",
        "dropoff"
      ],
      "bodyFile": "data-construct-conversion-funnel-report.md"
    },
    {
      "id": "skill_def_data-correlate-metric-pairs",
      "name": "Correlate Metric Pairs For Drivers",
      "description": "Computes correlations between a target metric and candidate explanatory metrics with lag analysis, used when you need to find which signals move together before deeper causal work.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "correlation",
        "metrics",
        "exploratory",
        "drivers"
      ],
      "bodyFile": "data-correlate-metric-pairs.md"
    },
    {
      "id": "skill_def_data-decompose-metric-change-drivers",
      "name": "Decompose Metric Change Into Drivers",
      "description": "Breaks a top-line metric movement into contributions from its component dimensions or factors, used when you need to explain why a number moved rather than just that it moved.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "root-cause",
        "decomposition",
        "metrics",
        "analysis"
      ],
      "bodyFile": "data-decompose-metric-change-drivers.md"
    },
    {
      "id": "skill_def_data-dedup-fuzzy-records",
      "name": "Deduplicate Records With Fuzzy Matching",
      "description": "Identifies and collapses near-duplicate records (typos, formatting variance, partial fields) using blocking plus similarity scoring, producing surviving rows and an auditable merge log for entity cleanup.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "deduplication",
        "fuzzy-matching",
        "entity-resolution",
        "cleaning"
      ],
      "bodyFile": "data-dedup-fuzzy-records.md"
    },
    {
      "id": "skill_def_data-define-north-star-metric-tree",
      "name": "Define North-Star Metric Tree",
      "description": "Constructs a metric tree decomposing a north-star metric into input drivers and team-owned sub-metrics, used when aligning an organization around what to measure and move.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "metrics",
        "north-star",
        "metric-tree",
        "strategy"
      ],
      "bodyFile": "data-define-north-star-metric-tree.md"
    },
    {
      "id": "skill_def_data-derive-columns-from-rules",
      "name": "Derive Columns From Declared Rules",
      "description": "Creates new derived columns from a declared set of expressions and conditional rules with dependency ordering and null-safety, keeping feature logic auditable and reproducible.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "feature-engineering",
        "derivation",
        "transformation",
        "rules"
      ],
      "bodyFile": "data-derive-columns-from-rules.md"
    },
    {
      "id": "skill_def_data-design-executive-kpi-dashboard",
      "name": "Design Executive KPI Dashboard",
      "description": "Specifies and lays out a single-screen executive dashboard of headline KPIs with trends and targets, used when leadership needs an at-a-glance health view of the business.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "dashboards",
        "kpi",
        "reporting",
        "layout"
      ],
      "bodyFile": "data-design-executive-kpi-dashboard.md"
    },
    {
      "id": "skill_def_data-detect-metric-anomalies-zscore",
      "name": "Detect Metric Anomalies With Rolling Z-Score",
      "description": "Flags anomalous points in a time-series metric using a rolling-window z-score and configurable thresholds, used when you need automated detection of unusual spikes or drops.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "anomaly-detection",
        "time-series",
        "zscore",
        "monitoring"
      ],
      "bodyFile": "data-detect-metric-anomalies-zscore.md"
    },
    {
      "id": "skill_def_data-detect-outliers-for-cleaning",
      "name": "Detect Numeric Outliers For Cleaning",
      "description": "Flags statistical outliers in numeric columns using IQR or robust z-score methods, separating likely data-entry errors from genuine extremes, to guide a cleaning or capping decision.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "outliers",
        "cleaning",
        "profiling",
        "quality"
      ],
      "bodyFile": "data-detect-outliers-for-cleaning.md"
    },
    {
      "id": "skill_def_data-detect-schema-drift",
      "name": "Detect Schema Drift Between Versions",
      "description": "Compares a new dataset version against a baseline schema to flag added, removed, renamed, or retyped columns and changed nullability, alerting before drift silently breaks downstream jobs.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "schema-drift",
        "versioning",
        "monitoring",
        "etl"
      ],
      "bodyFile": "data-detect-schema-drift.md"
    },
    {
      "id": "skill_def_data-flatten-nested-json",
      "name": "Flatten Nested JSON Into Relational Tables",
      "description": "Normalizes deeply nested JSON (objects and arrays) into flat parent/child tables with generated keys and dotted column paths, so document data becomes queryable in a relational store.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "json",
        "flatten",
        "normalization",
        "nested",
        "etl"
      ],
      "bodyFile": "data-flatten-nested-json.md"
    },
    {
      "id": "skill_def_data-generate-time-series-baseline-forecast",
      "name": "Generate Time-Series Baseline Forecast",
      "description": "Produces a baseline forecast for a metric using trend and seasonality decomposition, used when you need an expected range to compare actuals against or to set targets.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "forecasting",
        "time-series",
        "seasonality",
        "baseline"
      ],
      "bodyFile": "data-generate-time-series-baseline-forecast.md"
    },
    {
      "id": "skill_def_data-handle-missing-values",
      "name": "Impute And Document Missing Values",
      "description": "Applies a per-column missing-value strategy (drop, constant, statistical, or forward-fill) with explicit rationale and a missingness report, instead of letting nulls propagate unmanaged.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "imputation",
        "missing-values",
        "cleaning",
        "quality"
      ],
      "bodyFile": "data-handle-missing-values.md"
    },
    {
      "id": "skill_def_data-incremental-upsert-merge",
      "name": "Build An Incremental Upsert Merge",
      "description": "Designs an idempotent upsert that merges a delta batch into a target table by primary key, inserting new rows and updating changed ones, so reruns of the same batch are safe.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "upsert",
        "incremental",
        "idempotency",
        "etl",
        "merge"
      ],
      "bodyFile": "data-incremental-upsert-merge.md"
    },
    {
      "id": "skill_def_data-infer-schema-from-sample",
      "name": "Infer Schema From Raw Sample",
      "description": "Analyzes a sample of raw rows (CSV/JSON/Parquet) to produce a typed schema with nullability, formats, and confidence so you can build a typed loader before committing to a contract.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "schema-inference",
        "typing",
        "csv",
        "json",
        "profiling"
      ],
      "bodyFile": "data-infer-schema-from-sample.md"
    },
    {
      "id": "skill_def_data-join-with-key-diagnostics",
      "name": "Join Tables With Key Diagnostics",
      "description": "Performs a join between two tables while reporting key cardinality, unmatched rows on each side, and fan-out, preventing silent row explosions or dropped records during integration.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "join",
        "diagnostics",
        "integration",
        "cardinality"
      ],
      "bodyFile": "data-join-with-key-diagnostics.md"
    },
    {
      "id": "skill_def_data-monitor-guardrail-metrics",
      "name": "Monitor Guardrail Metrics For Regressions",
      "description": "Tracks a set of guardrail metrics alongside a primary change to catch unintended regressions, used when shipping a feature or experiment that could harm secondary metrics.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "guardrails",
        "monitoring",
        "experiment",
        "metrics"
      ],
      "bodyFile": "data-monitor-guardrail-metrics.md"
    },
    {
      "id": "skill_def_data-normalize-datetime-timezones",
      "name": "Normalize Datetimes And Time Zones",
      "description": "Parses heterogeneous date/time strings, attaches or converts time zones to a canonical zone (e.g., UTC), and standardizes precision, so temporal joins and ordering are correct across sources.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "datetime",
        "timezone",
        "normalization",
        "parsing"
      ],
      "bodyFile": "data-normalize-datetime-timezones.md"
    },
    {
      "id": "skill_def_data-parse-semi-structured-logs",
      "name": "Parse Semi-Structured Logs Into Tables",
      "description": "Extracts structured fields from semi-structured log lines (key=value, bracketed, or templated) into a typed table, with a fallback bucket for unparseable lines, to make logs queryable.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "parsing",
        "logs",
        "extraction",
        "regex",
        "etl"
      ],
      "bodyFile": "data-parse-semi-structured-logs.md"
    },
    {
      "id": "skill_def_data-partition-dataset-for-loading",
      "name": "Partition A Dataset For Efficient Loading",
      "description": "Splits a dataset into partition files by a chosen key (date, region) with balanced sizes and a manifest, optimizing downstream query pruning and parallel load into a lake or warehouse.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "partitioning",
        "data-lake",
        "etl",
        "performance"
      ],
      "bodyFile": "data-partition-dataset-for-loading.md"
    },
    {
      "id": "skill_def_data-pivot-long-to-wide",
      "name": "Reshape Long Data To Wide Format",
      "description": "Pivots a tidy long table into a wide one by spreading a key column into multiple columns with an aggregation, handling duplicate keys and missing combinations explicitly for reporting layouts.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "reshape",
        "pivot",
        "transformation",
        "aggregation"
      ],
      "bodyFile": "data-pivot-long-to-wide.md"
    },
    {
      "id": "skill_def_data-profile-dataset-quality",
      "name": "Profile A Dataset's Quality Metrics",
      "description": "Generates a per-column data quality profile (completeness, uniqueness, distribution, top values, type consistency) to triage a new or suspect dataset before deciding on cleaning work.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "profiling",
        "data-quality",
        "exploration",
        "metrics"
      ],
      "bodyFile": "data-profile-dataset-quality.md"
    },
    {
      "id": "skill_def_data-readout-ab-test-results",
      "name": "Read Out A/B Test Results",
      "description": "Computes statistical significance, effect size, and confidence intervals for an A/B test on a primary metric, used when you need a defensible ship/no-ship readout from experiment data.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "ab-testing",
        "experiment",
        "statistics",
        "significance"
      ],
      "bodyFile": "data-readout-ab-test-results.md"
    },
    {
      "id": "skill_def_data-reconcile-metric-discrepancy",
      "name": "Reconcile Metric Discrepancy Across Sources",
      "description": "Traces and explains why the same metric differs between two reports or systems, used when stakeholders see conflicting numbers and trust is at stake.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "reconciliation",
        "data-quality",
        "metrics",
        "debugging"
      ],
      "bodyFile": "data-reconcile-metric-discrepancy.md"
    },
    {
      "id": "skill_def_data-reconcile-source-to-target",
      "name": "Reconcile Source-To-Target Row And Sum Counts",
      "description": "Verifies an ETL load by reconciling row counts, key sets, and control-total sums between source and target, pinpointing where records or values were lost or duplicated.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "reconciliation",
        "etl",
        "validation",
        "audit"
      ],
      "bodyFile": "data-reconcile-source-to-target.md"
    },
    {
      "id": "skill_def_data-segment-users-by-behavior",
      "name": "Segment Users By Behavioral Cohorts",
      "description": "Partitions a user base into behavioral segments based on activity patterns and computes per-segment metrics, used when you need to understand distinct user types rather than one average.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "segmentation",
        "cohorts",
        "behavior",
        "analysis"
      ],
      "bodyFile": "data-segment-users-by-behavior.md"
    },
    {
      "id": "skill_def_data-standardize-categorical-values",
      "name": "Standardize Categorical Value Variants",
      "description": "Maps inconsistent categorical values (case, spelling, synonyms, codes) to a controlled vocabulary using a mapping table plus fuzzy suggestions, so grouping and filtering behave correctly.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "categorical",
        "standardization",
        "cleaning",
        "mapping"
      ],
      "bodyFile": "data-standardize-categorical-values.md"
    },
    {
      "id": "skill_def_data-standardize-column-names",
      "name": "Standardize Column Names To A Convention",
      "description": "Normalizes messy column headers (mixed case, spaces, units, duplicates) into a consistent snake_case (or chosen) convention with a documented rename map, used right after ingesting external files.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "normalization",
        "naming",
        "headers",
        "cleaning"
      ],
      "bodyFile": "data-standardize-column-names.md"
    },
    {
      "id": "skill_def_data-unpivot-wide-to-long",
      "name": "Melt Wide Data To Long Format",
      "description": "Unpivots a wide table with repeated measure columns into a tidy long format with key/value pairs, preserving identifier columns, to prepare data for analysis or normalized storage.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "reshape",
        "unpivot",
        "tidy-data",
        "transformation"
      ],
      "bodyFile": "data-unpivot-wide-to-long.md"
    },
    {
      "id": "skill_def_data-validate-against-contract",
      "name": "Validate A Dataset Against A Data Contract",
      "description": "Checks a dataset against a declared contract (types, ranges, required fields, uniqueness, referential keys) and returns a structured pass/fail report, run as a gate before loading into a warehouse.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "validation",
        "data-contract",
        "quality-gate",
        "testing"
      ],
      "bodyFile": "data-validate-against-contract.md"
    },
    {
      "id": "skill_def_data-validate-referential-integrity",
      "name": "Validate Referential Integrity Across Tables",
      "description": "Checks that foreign keys in child tables resolve to existing parent keys, flagging orphans and broken relationships before a multi-table load, to prevent join failures downstream.",
      "version": "1.0.0",
      "category": "Data & Analytics",
      "tags": [
        "referential-integrity",
        "validation",
        "keys",
        "relational"
      ],
      "bodyFile": "data-validate-referential-integrity.md"
    },
    {
      "id": "skill_def_debug-analyze-stack-trace-root-frame",
      "name": "Locate The Root Cause Frame In A Stack Trace",
      "description": "Reads a stack trace top-to-bottom to separate library noise from the first application frame that owns the bug, so use it when you have an exception trace and need to know where to start looking.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "stack-trace",
        "exception",
        "triage",
        "analysis"
      ],
      "bodyFile": "debug-analyze-stack-trace-root-frame.md"
    },
    {
      "id": "skill_def_debug-async-deadlock-event-loop",
      "name": "Diagnose An Async/Event-Loop Deadlock Or Stall",
      "description": "Finds why an async runtime stops making progress by detecting a blocked event loop, a never-resolving await, or pool starvation, used when an async service hangs without any thread being classically blocked.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "async",
        "event-loop",
        "deadlock",
        "futures",
        "starvation"
      ],
      "bodyFile": "debug-async-deadlock-event-loop.md"
    },
    {
      "id": "skill_def_debug-atomicity-violation-rca",
      "name": "Root-Cause An Atomicity Violation In A Read-Modify-Write",
      "description": "Finds the lost-update or inconsistent-state bug caused by a non-atomic read-modify-write across threads or processes, used when a counter, balance, or flag intermittently holds a wrong value under concurrency.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "atomicity",
        "read-modify-write",
        "lost-update",
        "concurrency",
        "cas"
      ],
      "bodyFile": "debug-atomicity-violation-rca.md"
    },
    {
      "id": "skill_def_debug-binary-search-with-disable-markers",
      "name": "Isolate A Fault By Binary-Searching Code With Disable Markers",
      "description": "Locates the offending region inside a single large function or module by progressively disabling halves of it, so use it when the bug is in one file but you cannot tell which part.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "binary-search",
        "isolation",
        "localization",
        "bisect"
      ],
      "bodyFile": "debug-binary-search-with-disable-markers.md"
    },
    {
      "id": "skill_def_debug-bisect-config-and-data",
      "name": "Bisect Configuration And Input Data To Isolate A Trigger",
      "description": "Applies binary search to config flags, feature toggles, or large input datasets to find the minimal subset that triggers a bug, so use it when code is unchanged but behavior differs by environment or input.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "bisect",
        "config",
        "input-data",
        "isolation"
      ],
      "bodyFile": "debug-bisect-config-and-data.md"
    },
    {
      "id": "skill_def_debug-capture-heisenbug-without-perturbation",
      "name": "Capture A Heisenbug Without Perturbing It",
      "description": "Observes a bug that vanishes under a debugger or print statements by using low-overhead, non-intrusive instrumentation, so use it when adding diagnostics makes the bug disappear.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "heisenbug",
        "instrumentation",
        "timing",
        "observability"
      ],
      "bodyFile": "debug-capture-heisenbug-without-perturbation.md"
    },
    {
      "id": "skill_def_debug-capture-state-at-failure-with-coredump",
      "name": "Capture And Inspect A Core Dump At The Moment Of Failure",
      "description": "Configures core-dump capture and inspects the dump to recover the full program state at crash time, so use it for crashes you cannot easily reproduce live under a debugger.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "core-dump",
        "post-mortem",
        "crash",
        "state-capture"
      ],
      "bodyFile": "debug-capture-state-at-failure-with-coredump.md"
    },
    {
      "id": "skill_def_debug-conditional-breakpoint-on-bad-state",
      "name": "Trap The Bug With A Conditional Breakpoint On Bad State",
      "description": "Sets a debugger breakpoint that fires only when a variable reaches a known-bad value, so use it when code runs many iterations and you must stop exactly when corruption first appears.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "breakpoint",
        "debugger",
        "isolation",
        "conditional"
      ],
      "bodyFile": "debug-conditional-breakpoint-on-bad-state.md"
    },
    {
      "id": "skill_def_debug-core-dump-backtrace-rca",
      "name": "Perform Root-Cause Analysis From A Core Dump Backtrace",
      "description": "Extracts the faulting instruction, signal, and call stack from a core dump to determine why a process crashed, used when a service dies and leaves only a core file.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "core-dump",
        "crash",
        "backtrace",
        "gdb",
        "segfault"
      ],
      "bodyFile": "debug-core-dump-backtrace-rca.md"
    },
    {
      "id": "skill_def_debug-data-race-tsan-triage",
      "name": "Triage A Data Race From A ThreadSanitizer Report",
      "description": "Turns a raw ThreadSanitizer/race-detector report into a root-cause for an intermittent corruption or crash by identifying the unsynchronized read/write pair on shared state, used when results are non-deterministic under concurrency.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "race-condition",
        "tsan",
        "concurrency",
        "synchronization",
        "memory-model"
      ],
      "bodyFile": "debug-data-race-tsan-triage.md"
    },
    {
      "id": "skill_def_debug-deadlock-lock-order-graph",
      "name": "Diagnose A Deadlock By Building The Lock Wait-For Graph",
      "description": "Resolves a hung multithreaded process by reconstructing the threads-and-locks wait-for graph from a thread dump and finding the cycle, used when threads stall with no CPU and no progress.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "deadlock",
        "threads",
        "locks",
        "wait-for-graph",
        "thread-dump"
      ],
      "bodyFile": "debug-deadlock-lock-order-graph.md"
    },
    {
      "id": "skill_def_debug-diagnose-memory-corruption-with-sanitizers",
      "name": "Reproduce Memory Corruption With Address And UB Sanitizers",
      "description": "Compiles and runs code under AddressSanitizer/UBSan to deterministically surface out-of-bounds, use-after-free, and undefined-behavior bugs, so use it for intermittent native crashes or corruption.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "sanitizer",
        "memory",
        "native",
        "heisenbug"
      ],
      "bodyFile": "debug-diagnose-memory-corruption-with-sanitizers.md"
    },
    {
      "id": "skill_def_debug-diff-working-vs-broken-trace",
      "name": "Diff Execution Traces Of A Working And Broken Run",
      "description": "Captures and diffs structured traces of a passing and failing execution to find the first point where they diverge, so use it when two nearly-identical runs behave differently.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "trace-diff",
        "divergence",
        "isolation",
        "comparison"
      ],
      "bodyFile": "debug-diff-working-vs-broken-trace.md"
    },
    {
      "id": "skill_def_debug-distributed-deadlock-trace",
      "name": "Detect A Distributed Deadlock Across Services Or Databases",
      "description": "Finds a cross-service or cross-transaction deadlock where each party waits on a lock or response held by another, by assembling a wait-for graph from traces and DB lock tables, used when distributed requests hang without any single-process deadlock.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "distributed-deadlock",
        "transactions",
        "tracing",
        "db-locks",
        "wait-for-graph"
      ],
      "bodyFile": "debug-distributed-deadlock-trace.md"
    },
    {
      "id": "skill_def_debug-double-free-corruption-rca",
      "name": "Root-Cause Heap Corruption From A Double Free Or Overflow",
      "description": "Diagnoses heap-corruption crashes that occur far from their cause by using a hardened allocator to catch the double-free or buffer overflow at the moment it happens, used when crashes appear in unrelated code with mangled allocator metadata.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "heap-corruption",
        "double-free",
        "buffer-overflow",
        "asan",
        "allocator"
      ],
      "bodyFile": "debug-double-free-corruption-rca.md"
    },
    {
      "id": "skill_def_debug-fd-handle-leak-tracking",
      "name": "Track Down A File-Descriptor Or Handle Leak",
      "description": "Finds the code path leaking file descriptors, sockets, or OS handles by snapshotting open handles over time and attributing growth to an unclosed resource, used when a process hits 'too many open files'.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "fd-leak",
        "handles",
        "sockets",
        "resource-leak",
        "lsof"
      ],
      "bodyFile": "debug-fd-handle-leak-tracking.md"
    },
    {
      "id": "skill_def_debug-flaky-test-race-isolation",
      "name": "Isolate The Race Behind A Flaky Test",
      "description": "Converts an intermittently failing test into a reproducible failure and pins the underlying ordering/timing race, used when a test passes and fails non-deterministically across runs.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "flaky-test",
        "race-condition",
        "nondeterminism",
        "reproducibility",
        "ci"
      ],
      "bodyFile": "debug-flaky-test-race-isolation.md"
    },
    {
      "id": "skill_def_debug-gc-pause-allocation-rca",
      "name": "Root-Cause Long GC Pauses From Allocation Pressure",
      "description": "Explains latency spikes caused by garbage-collection pauses by correlating GC logs with allocation rate and promotion, used when p99 latency spikes line up with collection events.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "gc",
        "latency",
        "allocation-rate",
        "gc-logs",
        "tuning"
      ],
      "bodyFile": "debug-gc-pause-allocation-rca.md"
    },
    {
      "id": "skill_def_debug-git-bisect-regression",
      "name": "Pinpoint A Regression Commit With Git Bisect",
      "description": "Runs an automated or manual git bisect to find the exact commit that introduced a regression, so use it when something worked before but breaks now and you have a known-good and known-bad revision.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "bisect",
        "regression",
        "git",
        "isolation"
      ],
      "bodyFile": "debug-git-bisect-regression.md"
    },
    {
      "id": "skill_def_debug-hang-symbolize-live-process",
      "name": "Symbolize And Diagnose A Hung Live Process Without A Dump",
      "description": "Attaches to a stuck running process to capture its stacks and pinpoint where it is wedged without restarting it, used when a production process hangs and a restart would destroy the evidence.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "hang",
        "live-attach",
        "stacks",
        "gdb",
        "production"
      ],
      "bodyFile": "debug-hang-symbolize-live-process.md"
    },
    {
      "id": "skill_def_debug-heap-fragmentation-rca",
      "name": "Diagnose Memory Bloat Caused By Heap Fragmentation",
      "description": "Distinguishes heap fragmentation from a true leak when RSS stays high despite low live-object size, by analyzing allocator arena occupancy and allocation-size distribution, used when used-heap is small but RSS won't shrink.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "fragmentation",
        "allocator",
        "rss",
        "memory-bloat",
        "arenas"
      ],
      "bodyFile": "debug-heap-fragmentation-rca.md"
    },
    {
      "id": "skill_def_debug-heap-growth-leak-bisect",
      "name": "Bisect A Heap Memory Leak By Allocation Site",
      "description": "Isolates a growing heap leak to a specific allocation site by comparing heap snapshots across a steady-state workload, used when RSS climbs monotonically without bound.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "memory-leak",
        "heap",
        "profiling",
        "rss",
        "snapshot"
      ],
      "bodyFile": "debug-heap-growth-leak-bisect.md"
    },
    {
      "id": "skill_def_debug-intermittent-crash-bisect",
      "name": "Bisect An Intermittent Crash To The Introducing Change",
      "description": "Localizes a rare or recently-appeared crash to the exact commit that introduced it using automated binary search over history with a probabilistic reproducer, used when a crash started 'sometime recently' but the cause is unclear.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "bisect",
        "regression",
        "crash",
        "git",
        "reproducer"
      ],
      "bodyFile": "debug-intermittent-crash-bisect.md"
    },
    {
      "id": "skill_def_debug-isolate-by-removing-side-channels",
      "name": "Isolate A Bug By Mocking Out External Side Channels",
      "description": "Replaces network calls, filesystem, clock, and randomness with deterministic fakes to determine whether the bug is in your logic or in an external interaction, so use it when behavior depends on the outside world.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "mocking",
        "isolation",
        "determinism",
        "side-effects"
      ],
      "bodyFile": "debug-isolate-by-removing-side-channels.md"
    },
    {
      "id": "skill_def_debug-isolate-dependency-version-culprit",
      "name": "Bisect Dependency Versions To Find The Breaking Upgrade",
      "description": "Binary-searches across dependency or transitive-dependency versions to find which upgrade broke behavior, so use it when your code is unchanged but a build or test started failing after updating packages.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "dependency",
        "bisect",
        "versions",
        "regression"
      ],
      "bodyFile": "debug-isolate-dependency-version-culprit.md"
    },
    {
      "id": "skill_def_debug-isolate-race-with-thread-sanitizer",
      "name": "Reproduce A Data Race With A Thread Sanitizer",
      "description": "Runs the program under ThreadSanitizer or equivalent to catch concurrent unsynchronized access between threads, so use it for nondeterministic corruption or crashes that vary with timing.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "race-condition",
        "concurrency",
        "thread-sanitizer",
        "heisenbug"
      ],
      "bodyFile": "debug-isolate-race-with-thread-sanitizer.md"
    },
    {
      "id": "skill_def_debug-livelock-spin-detection",
      "name": "Distinguish And Diagnose A Livelock From A Deadlock",
      "description": "Identifies a livelock where threads consume CPU but make no progress by sampling their states and detecting repeated back-off/retry cycles, used when a process is hot but stuck.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "livelock",
        "concurrency",
        "cpu-spin",
        "retry",
        "starvation"
      ],
      "bodyFile": "debug-livelock-spin-detection.md"
    },
    {
      "id": "skill_def_debug-localize-with-delta-debugging-on-diff",
      "name": "Localize A Breaking Change With Delta Debugging On A Large Diff",
      "description": "Applies delta debugging to a large unmerged or uncommitted diff to find the minimal subset of changes that causes a failure, so use it when a big change broke something but it is not yet split into commits.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "delta-debugging",
        "diff",
        "isolation",
        "localization"
      ],
      "bodyFile": "debug-localize-with-delta-debugging-on-diff.md"
    },
    {
      "id": "skill_def_debug-lock-in-failing-regression-test",
      "name": "Lock In A Reproduction As A Failing Regression Test",
      "description": "Converts a confirmed manual reproduction into an automated test that fails before the fix and passes after, so use it once you can reliably trigger a bug and want to prevent its return.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "regression-test",
        "reproduction",
        "verification",
        "tdd"
      ],
      "bodyFile": "debug-lock-in-failing-regression-test.md"
    },
    {
      "id": "skill_def_debug-memory-corruption-watchpoint",
      "name": "Catch Who Corrupts A Variable With A Hardware Watchpoint",
      "description": "Identifies the exact code that writes a bad value to a specific memory location by setting a hardware watchpoint and breaking on the offending write, used when a field mysteriously changes and the writer is unknown.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "watchpoint",
        "memory-corruption",
        "gdb",
        "hardware-breakpoint",
        "rca"
      ],
      "bodyFile": "debug-memory-corruption-watchpoint.md"
    },
    {
      "id": "skill_def_debug-narrow-intermittent-by-event-correlation",
      "name": "Correlate Intermittent Failures With External Events",
      "description": "Cross-references failure timestamps against deploys, traffic spikes, cron jobs, and infrastructure events to find what coincides with intermittent bugs, so use it when failures cluster in time without obvious code cause.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "correlation",
        "intermittent",
        "observability",
        "timing"
      ],
      "bodyFile": "debug-narrow-intermittent-by-event-correlation.md"
    },
    {
      "id": "skill_def_debug-native-leak-malloc-trace",
      "name": "Trace Native (Off-Heap) Memory Leaks With Allocator Instrumentation",
      "description": "Finds leaks in native/C/C++/FFI allocations that managed heap profilers miss by instrumenting the system allocator and attributing un-freed blocks to call stacks, used when RSS grows but the managed heap is flat.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "native-memory",
        "malloc",
        "off-heap",
        "valgrind",
        "asan"
      ],
      "bodyFile": "debug-native-leak-malloc-trace.md"
    },
    {
      "id": "skill_def_debug-oom-killer-rca",
      "name": "Root-Cause An OOM-Kill From Kernel And Process Evidence",
      "description": "Explains why the OS OOM-killer terminated a process by correlating kernel OOM logs, cgroup limits, and per-process memory growth, used when a container or service is killed with signal 9 and no application stack trace.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "oom",
        "oom-killer",
        "cgroup",
        "containers",
        "memory-limit"
      ],
      "bodyFile": "debug-oom-killer-rca.md"
    },
    {
      "id": "skill_def_debug-rebuild-repro-from-bug-report",
      "name": "Rebuild A Reproduction From A Vague Bug Report",
      "description": "Turns an incomplete user-reported bug into concrete reproduction steps by extracting and filling in missing context, so use it when a report lacks the steps needed to trigger the issue.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "reproduction",
        "bug-report",
        "triage",
        "steps"
      ],
      "bodyFile": "debug-rebuild-repro-from-bug-report.md"
    },
    {
      "id": "skill_def_debug-record-replay-deterministic",
      "name": "Reproduce A Nondeterministic Bug With Record And Replay",
      "description": "Captures a single failing execution with a record-replay tool (e.g. rr) so it can be replayed deterministically and stepped backward, so use it for bugs that occur only once in many runs.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "record-replay",
        "determinism",
        "rr",
        "reproduction"
      ],
      "bodyFile": "debug-record-replay-deterministic.md"
    },
    {
      "id": "skill_def_debug-reproduce-in-clean-environment",
      "name": "Reproduce A Bug In A Clean Isolated Environment",
      "description": "Recreates a failure inside a fresh container or pristine environment to rule out local machine state, so use it when a bug appears only for some people or only in CI.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "reproduction",
        "container",
        "environment",
        "isolation"
      ],
      "bodyFile": "debug-reproduce-in-clean-environment.md"
    },
    {
      "id": "skill_def_debug-reproduce-load-dependent-failure",
      "name": "Reproduce A Failure That Only Appears Under Load",
      "description": "Applies controlled concurrency and throughput pressure to surface bugs like exhaustion, contention, and queue overflow that never appear at low volume, so use it for failures seen only in production traffic.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "load",
        "concurrency",
        "stress",
        "reproduction"
      ],
      "bodyFile": "debug-reproduce-load-dependent-failure.md"
    },
    {
      "id": "skill_def_debug-reproduce-with-property-based-fuzzing",
      "name": "Discover A Minimal Failing Input With Property-Based Fuzzing",
      "description": "Uses a property-based or fuzz tester with automatic shrinking to find and minimize an input that violates an invariant, so use it when you suspect a bug exists but lack a concrete triggering input.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "fuzzing",
        "property-testing",
        "minimal-repro",
        "shrinking"
      ],
      "bodyFile": "debug-reproduce-with-property-based-fuzzing.md"
    },
    {
      "id": "skill_def_debug-reproduce-with-time-and-clock-control",
      "name": "Reproduce A Time-Dependent Bug By Controlling The Clock",
      "description": "Forces a specific date, time, timezone, or clock-skew condition to trigger calendar and timing bugs on demand, so use it for failures tied to DST, month boundaries, leap years, or expiry.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "time",
        "clock",
        "timezone",
        "reproduction"
      ],
      "bodyFile": "debug-reproduce-with-time-and-clock-control.md"
    },
    {
      "id": "skill_def_debug-shrink-to-minimal-repro",
      "name": "Shrink A Failing Case To A Minimal Reproduction",
      "description": "Iteratively delete code, inputs, and dependencies from a failing scenario until only the bug-essential parts remain, so use it when you have a reproduction that is too large or noisy to reason about.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "minimal-repro",
        "isolation",
        "reduction",
        "reproduction"
      ],
      "bodyFile": "debug-shrink-to-minimal-repro.md"
    },
    {
      "id": "skill_def_debug-signal-handler-deadlock-rca",
      "name": "Diagnose A Deadlock Or Crash In A Signal Handler",
      "description": "Root-causes hangs or crashes caused by calling non-async-signal-safe code from a signal handler, used when a process freezes or aborts during signal delivery such as shutdown or a timer tick.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "signal-handler",
        "async-signal-safe",
        "deadlock",
        "reentrancy",
        "crash"
      ],
      "bodyFile": "debug-signal-handler-deadlock-rca.md"
    },
    {
      "id": "skill_def_debug-stabilize-flaky-test",
      "name": "Reproduce And Stabilize A Flaky Test",
      "description": "Forces an intermittently failing test to fail reliably by stressing timing, ordering, and concurrency, so use it when a test passes locally but fails sometimes in CI.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "flaky-test",
        "intermittent",
        "concurrency",
        "reproduction"
      ],
      "bodyFile": "debug-stabilize-flaky-test.md"
    },
    {
      "id": "skill_def_debug-stack-overflow-recursion-rca",
      "name": "Root-Cause A Stack Overflow From Recursion Depth",
      "description": "Diagnoses a stack-overflow crash by reading the repeating frame pattern in the backtrace to find unbounded or mutual recursion, used when a process dies with SIGSEGV on a deep stack.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "stack-overflow",
        "recursion",
        "backtrace",
        "crash",
        "base-case"
      ],
      "bodyFile": "debug-stack-overflow-recursion-rca.md"
    },
    {
      "id": "skill_def_debug-symbolicate-production-crash",
      "name": "Symbolicate And Decode A Production Crash Dump",
      "description": "Maps stripped or minified addresses in a production crash back to source lines using symbol maps or debug symbols, so use it when a crash report shows only offsets or mangled frames.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "symbolication",
        "crash-dump",
        "production",
        "stack-trace"
      ],
      "bodyFile": "debug-symbolicate-production-crash.md"
    },
    {
      "id": "skill_def_debug-thread-pool-exhaustion-rca",
      "name": "Root-Cause Thread-Pool Exhaustion And Blocked Workers",
      "description": "Explains why a thread pool stops accepting work by showing all workers are blocked on a dependent resource, used when task latency explodes and the pool's active count is pinned at maximum.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "thread-pool",
        "exhaustion",
        "blocking",
        "starvation",
        "saturation"
      ],
      "bodyFile": "debug-thread-pool-exhaustion-rca.md"
    },
    {
      "id": "skill_def_debug-time-of-check-time-of-use-rca",
      "name": "Root-Cause A Time-Of-Check-To-Time-Of-Use Race",
      "description": "Diagnoses failures caused by state changing between a validity check and its dependent action across threads, processes, or the filesystem, used when an operation that 'just checked' a precondition still fails or acts on stale state.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "toctou",
        "race-condition",
        "check-then-act",
        "filesystem",
        "concurrency"
      ],
      "bodyFile": "debug-time-of-check-time-of-use-rca.md"
    },
    {
      "id": "skill_def_debug-tls-context-leak-rca",
      "name": "Diagnose A Thread-Local Or Context Object Leak",
      "description": "Finds leaks caused by thread-local storage or request-context objects retained by pooled threads, used when memory grows in proportion to threads or requests and ordinary heap retainers point at thread-local maps.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "thread-local",
        "context-leak",
        "thread-pool",
        "retainer",
        "memory-leak"
      ],
      "bodyFile": "debug-tls-context-leak-rca.md"
    },
    {
      "id": "skill_def_debug-trace-async-causality-chain",
      "name": "Reconstruct The Causality Chain Of An Async Failure",
      "description": "Follows correlation IDs and async context across awaits, queues, and callbacks to rebuild the logical call chain behind a failure, so use it when stack traces are truncated at async boundaries.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "async",
        "causality",
        "tracing",
        "stack-trace"
      ],
      "bodyFile": "debug-trace-async-causality-chain.md"
    },
    {
      "id": "skill_def_debug-use-after-free-lifetime",
      "name": "Pin Down A Use-After-Free To Its Lifetime Violation",
      "description": "Diagnoses sporadic crashes or corruption caused by accessing freed memory by correlating the free site, the dangling access, and the object lifetime, used when AddressSanitizer or a corruption pattern points to UAF.",
      "version": "1.0.0",
      "category": "Debugging & Diagnostics",
      "tags": [
        "use-after-free",
        "memory-safety",
        "asan",
        "lifetime",
        "dangling-pointer"
      ],
      "bodyFile": "debug-use-after-free-lifetime.md"
    },
    {
      "id": "skill_def_devops-ansible-idempotent-playbook-hardening",
      "name": "Make an Ansible Playbook Fully Idempotent",
      "description": "Audits an Ansible playbook for non-idempotent tasks (raw shell, unguarded commands) and rewrites them with proper modules and changed_when guards so reruns report no spurious changes.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "ansible",
        "idempotency",
        "playbook",
        "modules",
        "check-mode"
      ],
      "bodyFile": "devops-ansible-idempotent-playbook-hardening.md"
    },
    {
      "id": "skill_def_devops-ansible-inventory-and-vault-setup",
      "name": "Set Up Ansible Dynamic Inventory and Encrypted Secrets",
      "description": "Configures a dynamic inventory source plus Ansible Vault for secret encryption, replacing static host lists and plaintext credentials with cloud-discovered hosts and sealed vars.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "ansible",
        "inventory",
        "vault",
        "secrets",
        "dynamic"
      ],
      "bodyFile": "devops-ansible-inventory-and-vault-setup.md"
    },
    {
      "id": "skill_def_devops-ansible-role-from-shell-script",
      "name": "Convert a Provisioning Shell Script Into an Ansible Role",
      "description": "Refactors an imperative bash provisioning script into a structured, idempotent Ansible role with tasks, handlers, defaults, and templates for repeatable, testable configuration management.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "ansible",
        "role",
        "refactor",
        "shell",
        "idempotency"
      ],
      "bodyFile": "devops-ansible-role-from-shell-script.md"
    },
    {
      "id": "skill_def_devops-author-incident-runbook",
      "name": "Author A Service Incident Runbook",
      "description": "Produces a step-by-step incident runbook for a specific service failure mode so on-call responders can diagnose and recover without tribal knowledge; use when a service lacks a runbook or after a postmortem identifies a missing one.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "runbook",
        "incident",
        "on-call",
        "documentation",
        "reliability"
      ],
      "bodyFile": "devops-author-incident-runbook.md"
    },
    {
      "id": "skill_def_devops-build-dr-runbook",
      "name": "Build A Disaster Recovery Failover Runbook",
      "description": "Creates an ordered failover and failback runbook to recover a service in a secondary region within its RTO; use when a service has no tested DR plan or relies on a single region/zone.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "disaster-recovery",
        "failover",
        "rto",
        "runbook",
        "multi-region"
      ],
      "bodyFile": "devops-build-dr-runbook.md"
    },
    {
      "id": "skill_def_devops-capacity-forecast-headroom",
      "name": "Forecast Capacity And Headroom For A Resource",
      "description": "Projects future utilization of a constrained resource from historical trends and growth to flag when it will saturate; use ahead of launches or when a resource is approaching its ceiling.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "capacity",
        "forecasting",
        "headroom",
        "scaling",
        "planning"
      ],
      "bodyFile": "devops-capacity-forecast-headroom.md"
    },
    {
      "id": "skill_def_devops-cloudinit-bootstrap-template",
      "name": "Author a cloud-init Bootstrap for First-Boot Provisioning",
      "description": "Writes a cloud-init user-data template that configures users, packages, files, and a startup hook on first boot, producing repeatable instance bootstrap independent of golden images.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "cloud-init",
        "bootstrap",
        "user-data",
        "provisioning",
        "first-boot"
      ],
      "bodyFile": "devops-cloudinit-bootstrap-template.md"
    },
    {
      "id": "skill_def_devops-configure-autoscaling-policy",
      "name": "Configure A Horizontal Autoscaling Policy",
      "description": "Defines autoscaling triggers, min/max bounds, and stabilization for a workload so it scales with demand without thrashing; use when a service is manually scaled, over-provisioned, or flapping under load.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "autoscaling",
        "scaling",
        "capacity",
        "kubernetes",
        "cost"
      ],
      "bodyFile": "devops-configure-autoscaling-policy.md"
    },
    {
      "id": "skill_def_devops-cost-anomaly-investigation",
      "name": "Investigate A Cloud Cost Spike",
      "description": "Traces an unexpected cloud cost increase to the specific resource, service, or change that caused it and recommends remediation; use when a billing alert fires or spend jumps unexpectedly.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "cost",
        "finops",
        "investigation",
        "cloud",
        "optimization"
      ],
      "bodyFile": "devops-cost-anomaly-investigation.md"
    },
    {
      "id": "skill_def_devops-create-oncall-rotation",
      "name": "Design An On-Call Rotation And Escalation Policy",
      "description": "Designs a sustainable on-call rotation, escalation chain, and handoff process for a team; use when forming a new on-call team or when current rotations cause burnout or missed pages.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "on-call",
        "rotation",
        "escalation",
        "handoff",
        "team-process"
      ],
      "bodyFile": "devops-create-oncall-rotation.md"
    },
    {
      "id": "skill_def_devops-define-deployment-rollback-procedure",
      "name": "Define A Safe Deployment Rollback Procedure",
      "description": "Documents how to quickly and safely roll back a bad deployment including database and config considerations; use when a service lacks a fast, tested rollback path.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "rollback",
        "deployment",
        "release",
        "runbook",
        "safety"
      ],
      "bodyFile": "devops-define-deployment-rollback-procedure.md"
    },
    {
      "id": "skill_def_devops-define-maintenance-window-policy",
      "name": "Define A Change And Maintenance Window Policy",
      "description": "Establishes approved change windows, freeze periods, and a risk-tiered approval flow to reduce change-induced incidents; use when changes cause outages or deploy timing is uncontrolled.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "change-management",
        "maintenance-window",
        "freeze",
        "release",
        "process"
      ],
      "bodyFile": "devops-define-maintenance-window-policy.md"
    },
    {
      "id": "skill_def_devops-define-slo-and-error-budget",
      "name": "Define An SLO And Error Budget For A Service",
      "description": "Derives a measurable SLI, an SLO target, and an error-budget policy for a service from its user journeys; use when a service has no formal reliability target or alerts fire on symptoms users don't notice.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "slo",
        "sli",
        "error-budget",
        "reliability",
        "observability"
      ],
      "bodyFile": "devops-define-slo-and-error-budget.md"
    },
    {
      "id": "skill_def_devops-dependency-failure-map",
      "name": "Map Service Dependencies And Failure Modes",
      "description": "Builds a dependency map for a service annotating each dependency's criticality, timeout, and failure impact to expose single points of failure; use before a reliability review or DR planning.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "dependencies",
        "failure-modes",
        "spof",
        "architecture",
        "reliability"
      ],
      "bodyFile": "devops-dependency-failure-map.md"
    },
    {
      "id": "skill_def_devops-design-backup-strategy",
      "name": "Design A Backup And Restore Strategy",
      "description": "Designs a backup schedule, retention, and storage tiering for a datastore that meets stated RPO and tests restorability; use when a system has no defined backups or backups exist but have never been validated.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "backup",
        "restore",
        "rpo",
        "retention",
        "data-protection"
      ],
      "bodyFile": "devops-design-backup-strategy.md"
    },
    {
      "id": "skill_def_devops-design-health-probes",
      "name": "Design Liveness And Readiness Health Probes",
      "description": "Defines distinct liveness, readiness, and startup probes for a service so orchestrators restart and route correctly without false restarts; use when a service has missing, identical, or flapping probes.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "health-check",
        "probes",
        "kubernetes",
        "availability",
        "resilience"
      ],
      "bodyFile": "devops-design-health-probes.md"
    },
    {
      "id": "skill_def_devops-design-multi-window-burn-alert",
      "name": "Design Multi-Window Error-Budget Burn Alerts",
      "description": "Constructs multi-window, multi-burn-rate alerts on an SLO so fast and slow budget burns page appropriately without noise; use when SLO alerting is missing, too sensitive, or too slow.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "slo",
        "alerting",
        "burn-rate",
        "error-budget",
        "observability"
      ],
      "bodyFile": "devops-design-multi-window-burn-alert.md"
    },
    {
      "id": "skill_def_devops-game-day-chaos-exercise",
      "name": "Plan A Game Day Chaos Engineering Exercise",
      "description": "Designs a controlled failure-injection game day with a hypothesis, blast-radius limits, and abort criteria to surface resilience gaps; use to validate redundancy before relying on it in a real incident.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "chaos-engineering",
        "game-day",
        "resilience",
        "testing",
        "reliability"
      ],
      "bodyFile": "devops-game-day-chaos-exercise.md"
    },
    {
      "id": "skill_def_devops-iam-least-privilege-role-provisioning",
      "name": "Provision a Least-Privilege IAM Role From Access Patterns",
      "description": "Generates a scoped IAM role and policy from an application's actual access needs, replacing wildcard permissions with the minimal action/resource set required to function.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "iam",
        "least-privilege",
        "policy",
        "security",
        "terraform"
      ],
      "bodyFile": "devops-iam-least-privilege-role-provisioning.md"
    },
    {
      "id": "skill_def_devops-implement-graceful-degradation",
      "name": "Add Graceful Degradation For A Dependency Failure",
      "description": "Specifies fallback behavior so a service stays partially available when a non-critical dependency fails instead of returning hard errors; use when a single dependency outage takes down the whole service.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "resilience",
        "degradation",
        "fallback",
        "dependency",
        "availability"
      ],
      "bodyFile": "devops-implement-graceful-degradation.md"
    },
    {
      "id": "skill_def_devops-incident-comms-template",
      "name": "Create An Incident Communication Template",
      "description": "Produces status-update templates and a cadence for communicating an active incident to internal and external stakeholders; use when incident comms are ad-hoc, inconsistent, or delayed.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "incident",
        "communication",
        "status-page",
        "stakeholders",
        "process"
      ],
      "bodyFile": "devops-incident-comms-template.md"
    },
    {
      "id": "skill_def_devops-log-retention-and-sampling-policy",
      "name": "Define A Log Retention And Sampling Policy",
      "description": "Sets per-log-class retention, sampling, and tiering so observability stays useful and affordable without losing debugging signal; use when log costs are high or retention is undefined.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "logging",
        "retention",
        "sampling",
        "observability",
        "cost"
      ],
      "bodyFile": "devops-log-retention-and-sampling-policy.md"
    },
    {
      "id": "skill_def_devops-network-vpc-baseline-provisioning",
      "name": "Provision a Baseline VPC With Tiered Subnets",
      "description": "Provisions a production-ready VPC with public/private/data subnet tiers, routing, NAT, and flow logs across multiple availability zones using parameterized IaC for a reusable network foundation.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "vpc",
        "networking",
        "subnets",
        "terraform",
        "baseline"
      ],
      "bodyFile": "devops-network-vpc-baseline-provisioning.md"
    },
    {
      "id": "skill_def_devops-packer-golden-image-pipeline",
      "name": "Build a Golden Machine Image With Packer",
      "description": "Defines a Packer template that provisions, hardens, and bakes a versioned base image with tagged metadata, producing a reproducible golden image for faster, drift-free instance launches.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "packer",
        "image",
        "golden-ami",
        "immutable",
        "build"
      ],
      "bodyFile": "devops-packer-golden-image-pipeline.md"
    },
    {
      "id": "skill_def_devops-postmortem-from-incident",
      "name": "Write A Blameless Postmortem From An Incident",
      "description": "Assembles a blameless postmortem with timeline, contributing factors, and tracked action items from incident artifacts; use after any user-impacting incident has been mitigated.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "postmortem",
        "incident",
        "root-cause",
        "blameless",
        "reliability"
      ],
      "bodyFile": "devops-postmortem-from-incident.md"
    },
    {
      "id": "skill_def_devops-pulumi-import-from-terraform-state",
      "name": "Import Existing Resources Into Pulumi",
      "description": "Adopts already-provisioned resources into a Pulumi program using bulk import, generating matching code so future updates flow through Pulumi instead of recreating infrastructure.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "pulumi",
        "import",
        "adopt",
        "codegen",
        "brownfield"
      ],
      "bodyFile": "devops-pulumi-import-from-terraform-state.md"
    },
    {
      "id": "skill_def_devops-pulumi-stack-config-and-secrets",
      "name": "Configure a Pulumi Stack With Per-Stack Config and Secrets",
      "description": "Initializes a Pulumi stack with environment-scoped config values and provider-encrypted secrets, wiring typed config reads into the program for a reproducible per-stack deploy.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "pulumi",
        "stack",
        "config",
        "secrets",
        "iac"
      ],
      "bodyFile": "devops-pulumi-stack-config-and-secrets.md"
    },
    {
      "id": "skill_def_devops-rightsize-resource-requests",
      "name": "Right-Size Resource Requests And Limits",
      "description": "Recalculates CPU/memory requests and limits for a workload from observed usage to cut waste and prevent OOM/throttling; use when workloads are over-provisioned or being killed/throttled.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "rightsizing",
        "resources",
        "cost",
        "kubernetes",
        "capacity"
      ],
      "bodyFile": "devops-rightsize-resource-requests.md"
    },
    {
      "id": "skill_def_devops-runbook-disk-space-exhaustion",
      "name": "Build A Disk Space Exhaustion Response Runbook",
      "description": "Produces a runbook to safely reclaim disk on a host that is full or nearly full without data loss; use when disk-usage alerts fire or a service crashes from a full volume.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "runbook",
        "disk",
        "storage",
        "incident",
        "remediation"
      ],
      "bodyFile": "devops-runbook-disk-space-exhaustion.md"
    },
    {
      "id": "skill_def_devops-secrets-manager-provisioning-rotation",
      "name": "Provision Managed Secrets With Rotation",
      "description": "Provisions secrets in a managed secret store with encryption, fine-grained access policies, and automatic rotation wiring, replacing hardcoded credentials in IaC and app config.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "secrets",
        "rotation",
        "kms",
        "terraform",
        "vault"
      ],
      "bodyFile": "devops-secrets-manager-provisioning-rotation.md"
    },
    {
      "id": "skill_def_devops-secrets-rotation-runbook",
      "name": "Build A Secret And Credential Rotation Runbook",
      "description": "Produces a zero-downtime rotation procedure for a specific credential covering dual-validity overlap and revocation; use ahead of expiry, after suspected exposure, or to establish routine rotation.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "secrets",
        "rotation",
        "credentials",
        "runbook",
        "security-ops"
      ],
      "bodyFile": "devops-secrets-rotation-runbook.md"
    },
    {
      "id": "skill_def_devops-stateful-service-failover-test",
      "name": "Validate Database Replica Failover",
      "description": "Tests promotion of a database replica to primary under controlled conditions and measures data loss and downtime; use before relying on replica failover for HA or DR.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "database",
        "failover",
        "replication",
        "high-availability",
        "testing"
      ],
      "bodyFile": "devops-stateful-service-failover-test.md"
    },
    {
      "id": "skill_def_devops-terraform-data-migration-state-rm",
      "name": "Decouple a Resource From State With state rm and Re-Import",
      "description": "Removes a resource from Terraform state without destroying it, then re-imports it into a different module or stack, enabling cross-state moves and ownership handoffs without downtime.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "terraform",
        "state-rm",
        "import",
        "migration",
        "ownership"
      ],
      "bodyFile": "devops-terraform-data-migration-state-rm.md"
    },
    {
      "id": "skill_def_devops-terraform-dependency-graph-audit",
      "name": "Audit a Terraform Dependency Graph for Cycles and Coupling",
      "description": "Generates and analyzes the Terraform resource dependency graph to find hidden cycles, over-coupled modules, and implicit dependencies, guiding a safer module split or apply ordering.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "terraform",
        "graph",
        "dependencies",
        "modules",
        "audit"
      ],
      "bodyFile": "devops-terraform-dependency-graph-audit.md"
    },
    {
      "id": "skill_def_devops-terraform-detect-and-reconcile-drift",
      "name": "Detect and Reconcile Infrastructure Drift",
      "description": "Identifies divergence between Terraform state and live infrastructure, classifies each drift, and reconciles it by either codifying the change or reverting the resource to the declared config.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "terraform",
        "drift",
        "reconciliation",
        "refresh",
        "audit"
      ],
      "bodyFile": "devops-terraform-detect-and-reconcile-drift.md"
    },
    {
      "id": "skill_def_devops-terraform-import-existing-resource",
      "name": "Import an Existing Cloud Resource Into Terraform State",
      "description": "Brings an already-provisioned cloud resource under Terraform management by writing matching config and importing it into state, without recreating or destroying the live resource.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "terraform",
        "import",
        "state",
        "brownfield",
        "aws"
      ],
      "bodyFile": "devops-terraform-import-existing-resource.md"
    },
    {
      "id": "skill_def_devops-terraform-module-extraction",
      "name": "Extract a Reusable Terraform Module From Inline Config",
      "description": "Refactors repeated inline resource blocks into a parameterized, versioned module with typed variables and outputs, preserving state via moved blocks so no resource is destroyed.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "terraform",
        "module",
        "refactor",
        "dry",
        "moved-block"
      ],
      "bodyFile": "devops-terraform-module-extraction.md"
    },
    {
      "id": "skill_def_devops-terraform-plan-cost-review",
      "name": "Review a Terraform Plan for Cost and Blast Radius",
      "description": "Analyzes a Terraform plan before apply to flag destroy/replace actions, estimate cost deltas, and surface high-blast-radius changes so risky applies are caught in review.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "terraform",
        "plan",
        "cost",
        "blast-radius",
        "review"
      ],
      "bodyFile": "devops-terraform-plan-cost-review.md"
    },
    {
      "id": "skill_def_devops-terraform-policy-as-code-gate",
      "name": "Add a Policy-as-Code Gate to Terraform Plans",
      "description": "Enforces organizational guardrails on Terraform plans using OPA/Conftest or Sentinel, blocking applies that violate tagging, encryption, or public-exposure rules before they reach the cloud.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "terraform",
        "opa",
        "conftest",
        "policy",
        "compliance"
      ],
      "bodyFile": "devops-terraform-policy-as-code-gate.md"
    },
    {
      "id": "skill_def_devops-terraform-precommit-validation-suite",
      "name": "Wire a Terraform Pre-Commit Validation Suite",
      "description": "Installs a pre-commit and CI suite that formats, validates, lints, and security-scans Terraform on every change, catching malformed HCL and misconfigurations before they reach review.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "terraform",
        "pre-commit",
        "tflint",
        "tfsec",
        "ci"
      ],
      "bodyFile": "devops-terraform-precommit-validation-suite.md"
    },
    {
      "id": "skill_def_devops-terraform-provider-version-pinning",
      "name": "Pin and Upgrade Terraform Provider and Module Versions",
      "description": "Locks Terraform core, provider, and module versions with a committed lockfile, then performs a controlled minor/major upgrade with a reviewed plan to avoid surprise breaking changes.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "terraform",
        "versioning",
        "lockfile",
        "providers",
        "upgrade"
      ],
      "bodyFile": "devops-terraform-provider-version-pinning.md"
    },
    {
      "id": "skill_def_devops-terraform-remote-state-backend-migration",
      "name": "Migrate Terraform State to a Remote Locked Backend",
      "description": "Moves a project from local or unlocked state to a remote backend (S3+DynamoDB, GCS, or Terraform Cloud) with state locking and encryption, preserving all existing resources.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "terraform",
        "backend",
        "state",
        "locking",
        "migration"
      ],
      "bodyFile": "devops-terraform-remote-state-backend-migration.md"
    },
    {
      "id": "skill_def_devops-terraform-resource-rename-without-recreate",
      "name": "Rename Terraform Resources Without Recreating Them",
      "description": "Renames resources, modules, or array indices in Terraform using moved blocks or state mv so the refactor produces zero create/destroy actions on the next apply.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "terraform",
        "moved-block",
        "state-mv",
        "refactor",
        "rename"
      ],
      "bodyFile": "devops-terraform-resource-rename-without-recreate.md"
    },
    {
      "id": "skill_def_devops-terraform-targeted-destroy-cleanup",
      "name": "Safely Tear Down a Targeted Subset of Infrastructure",
      "description": "Decommissions a specific component or ephemeral environment by scoping a targeted destroy, verifying dependencies and stateful-resource protection, without affecting unrelated resources.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "terraform",
        "destroy",
        "teardown",
        "cleanup",
        "ephemeral"
      ],
      "bodyFile": "devops-terraform-targeted-destroy-cleanup.md"
    },
    {
      "id": "skill_def_devops-terraform-workspace-environment-bootstrap",
      "name": "Bootstrap a New Environment With Terraform Workspaces",
      "description": "Stands up a fresh environment (dev/staging/prod) from an existing module by creating an isolated workspace, per-env variable files, and a scoped state, ready for a first apply.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "terraform",
        "workspace",
        "environment",
        "bootstrap",
        "tfvars"
      ],
      "bodyFile": "devops-terraform-workspace-environment-bootstrap.md"
    },
    {
      "id": "skill_def_devops-terragrunt-dry-multi-account",
      "name": "DRY Up Multi-Account Infra With Terragrunt",
      "description": "Restructures repeated per-account Terraform into a Terragrunt hierarchy with shared inputs and generated backends, eliminating copy-pasted backend and provider boilerplate across accounts.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "terragrunt",
        "multi-account",
        "dry",
        "backend",
        "hierarchy"
      ],
      "bodyFile": "devops-terragrunt-dry-multi-account.md"
    },
    {
      "id": "skill_def_devops-traffic-drain-maintenance",
      "name": "Write A Zero-Downtime Maintenance Drain Procedure",
      "description": "Documents how to drain traffic from a node or service for maintenance and return it without dropping requests; use before patching, upgrades, or node decommissioning.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "maintenance",
        "draining",
        "zero-downtime",
        "runbook",
        "operations"
      ],
      "bodyFile": "devops-traffic-drain-maintenance.md"
    },
    {
      "id": "skill_def_devops-tune-alert-thresholds",
      "name": "Tune Alert Thresholds To Cut On-Call Noise",
      "description": "Recalibrates a noisy alert's thresholds, windows, and grouping using historical fire/resolve data so it pages only on actionable conditions; use when an alert flaps or wakes on-call without real impact.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "alerting",
        "on-call",
        "noise-reduction",
        "observability",
        "tuning"
      ],
      "bodyFile": "devops-tune-alert-thresholds.md"
    },
    {
      "id": "skill_def_devops-validate-backup-restore-drill",
      "name": "Run A Backup Restore Validation Drill",
      "description": "Executes a controlled restore of a real backup into an isolated environment and verifies data integrity to prove backups are recoverable; use periodically or after backup config changes.",
      "version": "1.0.0",
      "category": "DevOps & Infrastructure",
      "tags": [
        "backup",
        "restore",
        "drill",
        "verification",
        "data-integrity"
      ],
      "bodyFile": "devops-validate-backup-restore-drill.md"
    },
    {
      "id": "skill_def_docs-adr-from-decision",
      "name": "Write An Architecture Decision Record",
      "description": "Captures a technical decision as an ADR with context, options, decision, and consequences; use when a significant choice needs durable rationale.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "adr",
        "decisions",
        "architecture",
        "rationale"
      ],
      "bodyFile": "docs-adr-from-decision.md"
    },
    {
      "id": "skill_def_docs-api-reference-from-signatures",
      "name": "Generate API Reference From Public Signatures",
      "description": "Produces structured reference docs for a module's public API by reading its exported signatures and types; use when an SDK lacks reference documentation.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "api-reference",
        "sdk",
        "signatures",
        "reference"
      ],
      "bodyFile": "docs-api-reference-from-signatures.md"
    },
    {
      "id": "skill_def_docs-architecture-diagram-mermaid",
      "name": "Generate A Mermaid Architecture Diagram From Code",
      "description": "Builds a Mermaid component or sequence diagram by reading the codebase's modules and call paths; use when documenting system structure without a hand-drawn diagram.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "diagrams",
        "mermaid",
        "architecture",
        "visualization"
      ],
      "bodyFile": "docs-architecture-diagram-mermaid.md"
    },
    {
      "id": "skill_def_docs-author-architecture-decision-record",
      "name": "Author An Architecture Decision Record",
      "description": "Captures a single significant technical decision as a structured ADR (context, decision, alternatives, consequences) so future maintainers understand why a choice was made, used when adopting a technology, pattern, or boundary.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "adr",
        "architecture",
        "decisions",
        "records"
      ],
      "bodyFile": "docs-author-architecture-decision-record.md"
    },
    {
      "id": "skill_def_docs-changelog-from-commits",
      "name": "Generate Changelog Entries From Commit Range",
      "description": "Turns a range of git commits into grouped, human-readable changelog entries; use when preparing a release changelog from raw commit history.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "changelog",
        "git",
        "release",
        "commits"
      ],
      "bodyFile": "docs-changelog-from-commits.md"
    },
    {
      "id": "skill_def_docs-clarity-edit-pass",
      "name": "Run A Clarity And Concision Edit Pass",
      "description": "Tightens existing developer prose for clarity, active voice, and concision without changing meaning; use when docs are wordy, passive, or hard to scan.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "editing",
        "clarity",
        "concision",
        "style"
      ],
      "bodyFile": "docs-clarity-edit-pass.md"
    },
    {
      "id": "skill_def_docs-code-example-snippet",
      "name": "Write A Runnable Code Example For A Feature",
      "description": "Creates a minimal, self-contained, runnable example demonstrating one feature or API; use when docs need a copy-paste sample that actually works.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "examples",
        "snippets",
        "runnable",
        "api"
      ],
      "bodyFile": "docs-code-example-snippet.md"
    },
    {
      "id": "skill_def_docs-comment-cleanup-stale",
      "name": "Detect And Fix Stale Or Misleading Comments",
      "description": "Finds comments that contradict the code they describe and updates or removes them; use after refactors when comments may have drifted from behavior.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "code-comments",
        "maintenance",
        "accuracy",
        "refactor"
      ],
      "bodyFile": "docs-comment-cleanup-stale.md"
    },
    {
      "id": "skill_def_docs-config-reference-table",
      "name": "Generate A Configuration Reference Table",
      "description": "Produces a table of all config options with type, default, and effect by reading the config schema or parsing code; use when settings are undocumented.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "configuration",
        "reference",
        "settings",
        "table"
      ],
      "bodyFile": "docs-config-reference-table.md"
    },
    {
      "id": "skill_def_docs-conventional-commit-rewrite",
      "name": "Rewrite Commit Messages To Conventional Commits",
      "description": "Converts vague or inconsistent commit subjects into Conventional Commits format with type, scope, and body; use before squashing or when enforcing commit linting.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "commits",
        "conventional-commits",
        "git",
        "lint"
      ],
      "bodyFile": "docs-conventional-commit-rewrite.md"
    },
    {
      "id": "skill_def_docs-create-architecture-diagram-description",
      "name": "Draft A System Architecture Overview With Diagram",
      "description": "Writes a system architecture overview with a Mermaid/PlantUML diagram of components and data flows, used to give new engineers a one-page mental model of how the system fits together.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "architecture",
        "diagram",
        "mermaid",
        "overview",
        "components"
      ],
      "bodyFile": "docs-create-architecture-diagram-description.md"
    },
    {
      "id": "skill_def_docs-deprecation-notice",
      "name": "Write A Deprecation Notice And Migration Path",
      "description": "Produces an in-code deprecation annotation plus a user-facing migration note with a replacement and timeline; use when retiring an API while keeping it temporarily.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "deprecation",
        "api",
        "migration",
        "versioning"
      ],
      "bodyFile": "docs-deprecation-notice.md"
    },
    {
      "id": "skill_def_docs-doc-comment-for-function",
      "name": "Write A Doc Comment For A Function Or Method",
      "description": "Generates an idiomatic doc comment (params, returns, errors, example) for a single function in the project's language; use when a public API lacks documentation.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "doc-comments",
        "api",
        "docstring",
        "annotations"
      ],
      "bodyFile": "docs-doc-comment-for-function.md"
    },
    {
      "id": "skill_def_docs-document-config-reference",
      "name": "Document A Configuration Reference Table",
      "description": "Builds an exhaustive configuration reference for a service by reading the config schema and defaults, used so operators can see every option, its type, default, and effect in one authoritative table.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "configuration",
        "reference",
        "env-vars",
        "settings",
        "operations"
      ],
      "bodyFile": "docs-document-config-reference.md"
    },
    {
      "id": "skill_def_docs-document-database-schema",
      "name": "Document A Database Schema",
      "description": "Generates reference documentation for database tables, columns, relationships, and indexes from the schema or migrations, used so engineers understand the data model without reverse-engineering SQL.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "database",
        "schema",
        "reference",
        "data-model",
        "tables"
      ],
      "bodyFile": "docs-document-database-schema.md"
    },
    {
      "id": "skill_def_docs-document-function-docstrings",
      "name": "Add Reference Docstrings To Public Functions",
      "description": "Writes language-idiomatic docstrings for public functions describing parameters, returns, errors, and behavior, used to make a module's public API self-documenting for IDE tooltips and generated docs.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "docstrings",
        "api-docs",
        "code-comments",
        "reference"
      ],
      "bodyFile": "docs-document-function-docstrings.md"
    },
    {
      "id": "skill_def_docs-document-webhook-payloads",
      "name": "Document Webhook Events And Payloads",
      "description": "Documents each webhook event a system emits with its trigger, payload schema, and example, used so integrators can build reliable handlers against an accurate event contract.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "webhooks",
        "events",
        "api-docs",
        "integration",
        "payloads"
      ],
      "bodyFile": "docs-document-webhook-payloads.md"
    },
    {
      "id": "skill_def_docs-error-message-rewrite",
      "name": "Rewrite User-Facing Error Messages To Be Actionable",
      "description": "Improves error and log messages so they state cause, context, and next action; use when errors are cryptic or unhelpful to users and operators.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "error-messages",
        "ux",
        "logging",
        "diagnostics"
      ],
      "bodyFile": "docs-error-message-rewrite.md"
    },
    {
      "id": "skill_def_docs-explain-why-comment",
      "name": "Add Intent Comments Explaining Non-Obvious Code",
      "description": "Inserts concise why-comments on tricky code while removing redundant what-comments; use when a code section's intent is unclear to future readers.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "code-comments",
        "readability",
        "intent",
        "maintenance"
      ],
      "bodyFile": "docs-explain-why-comment.md"
    },
    {
      "id": "skill_def_docs-generate-changelog-from-commits",
      "name": "Generate A Changelog From Commit History",
      "description": "Produces a human-readable changelog entry for a release by grouping commits since the last tag into Added/Changed/Fixed/Removed, used to communicate what changed without making readers parse git log.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "changelog",
        "release-notes",
        "git",
        "versioning",
        "commits"
      ],
      "bodyFile": "docs-generate-changelog-from-commits.md"
    },
    {
      "id": "skill_def_docs-generate-cli-command-reference",
      "name": "Generate CLI Command Reference From Parser",
      "description": "Generates reference docs for a CLI command and its flags by reading the argument-parser definition, used to keep command help text, options, and examples in sync with the actual binary.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "cli",
        "reference",
        "flags",
        "commands",
        "help"
      ],
      "bodyFile": "docs-generate-cli-command-reference.md"
    },
    {
      "id": "skill_def_docs-generate-code-example-snippets",
      "name": "Generate Verified Code Examples For Docs",
      "description": "Creates minimal, runnable code examples for a feature or API across one or more languages, used to give doc readers copy-paste snippets that actually compile and produce the stated result.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "examples",
        "snippets",
        "api-docs",
        "samples",
        "code"
      ],
      "bodyFile": "docs-generate-code-example-snippets.md"
    },
    {
      "id": "skill_def_docs-generate-rest-endpoint-reference",
      "name": "Generate REST Endpoint Reference From Handlers",
      "description": "Produces complete reference documentation for a REST endpoint by reading its route handler, request/response types, and validation, so API consumers get accurate, signature-backed docs without manual transcription.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "api-docs",
        "rest",
        "reference",
        "endpoints"
      ],
      "bodyFile": "docs-generate-rest-endpoint-reference.md"
    },
    {
      "id": "skill_def_docs-glossary-from-codebase",
      "name": "Build A Domain Glossary From The Codebase",
      "description": "Extracts domain terms, acronyms, and entity names from code and docs and defines them consistently; use when team vocabulary is ambiguous or undocumented.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "glossary",
        "terminology",
        "domain",
        "consistency"
      ],
      "bodyFile": "docs-glossary-from-codebase.md"
    },
    {
      "id": "skill_def_docs-inline-todo-to-issue",
      "name": "Convert Inline TODO Comments Into Tracked Issues",
      "description": "Extracts TODO/FIXME/HACK comments and drafts well-formed issue descriptions with context; use when cleaning up inline debt markers into a tracker.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "todo",
        "tech-debt",
        "issues",
        "comments"
      ],
      "bodyFile": "docs-inline-todo-to-issue.md"
    },
    {
      "id": "skill_def_docs-migration-guide",
      "name": "Write An Upgrade Migration Guide Between Versions",
      "description": "Builds a step-by-step migration guide for moving between two versions, covering breaking changes and codemods; use when shipping a major release.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "migration",
        "upgrade",
        "breaking-changes",
        "versioning"
      ],
      "bodyFile": "docs-migration-guide.md"
    },
    {
      "id": "skill_def_docs-module-overview-doc",
      "name": "Write A Module Or Package Overview Doc",
      "description": "Documents a package's purpose, key types, entry points, and how its pieces fit together; use when a module is hard to navigate for newcomers.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "overview",
        "module",
        "architecture",
        "onboarding"
      ],
      "bodyFile": "docs-module-overview-doc.md"
    },
    {
      "id": "skill_def_docs-pr-description-from-diff",
      "name": "Write A Pull Request Description From The Diff",
      "description": "Drafts a structured PR description (what, why, how, testing) by analyzing the branch diff; use when opening a PR that needs reviewer context.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "pull-request",
        "diff",
        "review",
        "summary"
      ],
      "bodyFile": "docs-pr-description-from-diff.md"
    },
    {
      "id": "skill_def_docs-readme-quickstart",
      "name": "Write A README Quickstart Section",
      "description": "Creates an install-to-first-success quickstart for a repo's README; use when new users can't get the project running from existing docs.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "readme",
        "quickstart",
        "onboarding",
        "install"
      ],
      "bodyFile": "docs-readme-quickstart.md"
    },
    {
      "id": "skill_def_docs-release-notes-narrative",
      "name": "Write Narrative Release Notes For An Audience",
      "description": "Drafts prose release notes that lead with user value and upgrade guidance; use when a bare changelog is too terse for an announcement.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "release-notes",
        "announcement",
        "writing",
        "audience"
      ],
      "bodyFile": "docs-release-notes-narrative.md"
    },
    {
      "id": "skill_def_docs-review-docs-for-staleness",
      "name": "Audit Docs For Staleness Against Code",
      "description": "Cross-checks existing documentation against the current codebase to flag outdated commands, signatures, and instructions, used to find and fix doc drift before users hit broken steps.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "audit",
        "staleness",
        "maintenance",
        "accuracy",
        "drift"
      ],
      "bodyFile": "docs-review-docs-for-staleness.md"
    },
    {
      "id": "skill_def_docs-sequence-diagram-from-trace",
      "name": "Draw A Sequence Diagram For A Specific Flow",
      "description": "Turns a described or traced request flow into a Mermaid sequence diagram with participants, messages, and alt/loop blocks; use to document end-to-end interactions.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "diagrams",
        "mermaid",
        "sequence",
        "tracing"
      ],
      "bodyFile": "docs-sequence-diagram-from-trace.md"
    },
    {
      "id": "skill_def_docs-style-guide-conformance",
      "name": "Enforce A Docs Style Guide On A Page",
      "description": "Aligns a documentation page to a stated style guide (terminology, voice, capitalization, formatting rules); use when content drifts from team conventions.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "style-guide",
        "consistency",
        "terminology",
        "editing"
      ],
      "bodyFile": "docs-style-guide-conformance.md"
    },
    {
      "id": "skill_def_docs-summarize-diff-for-reviewers",
      "name": "Summarize A Large Diff Into A Review Guide",
      "description": "Produces a reviewer's reading guide for a big diff, ordering files by importance with what to look at in each; use when a PR is too large to skim cold.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "diff",
        "review",
        "summary",
        "guide"
      ],
      "bodyFile": "docs-summarize-diff-for-reviewers.md"
    },
    {
      "id": "skill_def_docs-troubleshooting-section",
      "name": "Write A Troubleshooting Section From Known Failures",
      "description": "Compiles a symptom-cause-fix troubleshooting guide from known errors and support patterns; use when users repeatedly hit the same problems.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "troubleshooting",
        "support",
        "faq",
        "errors"
      ],
      "bodyFile": "docs-troubleshooting-section.md"
    },
    {
      "id": "skill_def_docs-tutorial-walkthrough",
      "name": "Write A Step-By-Step Tutorial For A Task",
      "description": "Builds a goal-oriented tutorial that takes a reader through one task end to end with verifiable checkpoints; use when users need guided learning, not reference.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "tutorial",
        "walkthrough",
        "learning",
        "onboarding"
      ],
      "bodyFile": "docs-tutorial-walkthrough.md"
    },
    {
      "id": "skill_def_docs-write-api-pagination-rate-limit-guide",
      "name": "Document Pagination, Filtering, And Rate Limits",
      "description": "Documents an API's list-endpoint conventions — pagination, filtering, sorting, and rate limiting — used so integrators iterate large result sets and handle throttling without trial and error.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "api-docs",
        "pagination",
        "rate-limits",
        "integration",
        "filtering"
      ],
      "bodyFile": "docs-write-api-pagination-rate-limit-guide.md"
    },
    {
      "id": "skill_def_docs-write-authentication-guide",
      "name": "Write An API Authentication Guide",
      "description": "Documents how to authenticate against an API including credential acquisition, request signing, and token lifecycle, used to get integrators making authorized calls quickly and correctly.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "authentication",
        "api-docs",
        "security",
        "integration",
        "oauth"
      ],
      "bodyFile": "docs-write-authentication-guide.md"
    },
    {
      "id": "skill_def_docs-write-contributing-guide",
      "name": "Write A CONTRIBUTING Guide",
      "description": "Drafts a CONTRIBUTING.md covering dev setup, branch/PR workflow, tests, and review expectations, used to lower the barrier for outside or new contributors to land changes correctly.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "contributing",
        "open-source",
        "workflow",
        "onboarding",
        "pull-requests"
      ],
      "bodyFile": "docs-write-contributing-guide.md"
    },
    {
      "id": "skill_def_docs-write-deprecation-notice",
      "name": "Write A Deprecation Notice And Sunset Plan",
      "description": "Authors a deprecation notice for an API, feature, or option that states the replacement, timeline, and migration path, used to give consumers advance warning before removal.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "deprecation",
        "lifecycle",
        "api-docs",
        "sunset",
        "migration"
      ],
      "bodyFile": "docs-write-deprecation-notice.md"
    },
    {
      "id": "skill_def_docs-write-error-code-reference",
      "name": "Write An Error Code Reference",
      "description": "Documents each error code or exception a system can return with cause and remediation, used so developers hitting an error can self-diagnose without reading source or filing a ticket.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "errors",
        "reference",
        "troubleshooting",
        "api-docs",
        "codes"
      ],
      "bodyFile": "docs-write-error-code-reference.md"
    },
    {
      "id": "skill_def_docs-write-glossary-of-terms",
      "name": "Build A Domain Glossary",
      "description": "Compiles a glossary defining the domain and system-specific terms used across a codebase and docs, used to give new contributors a shared vocabulary and reduce ambiguous terminology.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "glossary",
        "terminology",
        "onboarding",
        "reference",
        "vocabulary"
      ],
      "bodyFile": "docs-write-glossary-of-terms.md"
    },
    {
      "id": "skill_def_docs-write-how-to-guide",
      "name": "Write A Task-Focused How-To Guide",
      "description": "Writes a how-to guide answering a single \"how do I X\" question with the minimal steps to accomplish it, used when users already know the basics and need a direct recipe for a specific task.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "how-to",
        "guide",
        "task",
        "recipe",
        "procedure"
      ],
      "bodyFile": "docs-write-how-to-guide.md"
    },
    {
      "id": "skill_def_docs-write-incident-runbook",
      "name": "Write An Operational Incident Runbook",
      "description": "Creates a step-by-step runbook for diagnosing and recovering from a specific failure mode of a service, used so an on-call engineer can mitigate the incident without prior context on the system.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "runbook",
        "oncall",
        "operations",
        "incident",
        "remediation"
      ],
      "bodyFile": "docs-write-incident-runbook.md"
    },
    {
      "id": "skill_def_docs-write-migration-guide",
      "name": "Write A Breaking-Change Migration Guide",
      "description": "Documents how to upgrade across a breaking version by listing each breaking change with before/after code, used to let consumers migrate confidently when a library or API ships incompatible changes.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "migration",
        "upgrade",
        "breaking-changes",
        "versioning",
        "guide"
      ],
      "bodyFile": "docs-write-migration-guide.md"
    },
    {
      "id": "skill_def_docs-write-openapi-spec-from-routes",
      "name": "Write An OpenAPI Spec From Route Definitions",
      "description": "Assembles or updates an OpenAPI 3 specification by reading server routes, schemas, and auth, used to provide a machine-readable contract that powers client generation, mock servers, and interactive docs.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "openapi",
        "swagger",
        "api-spec",
        "contract",
        "schema"
      ],
      "bodyFile": "docs-write-openapi-spec-from-routes.md"
    },
    {
      "id": "skill_def_docs-write-postmortem",
      "name": "Write A Blameless Incident Postmortem",
      "description": "Documents a resolved production incident with timeline, root cause, impact, and action items, used after an outage to capture learning and prevent recurrence without assigning blame.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "postmortem",
        "incident",
        "operations",
        "reliability",
        "retrospective"
      ],
      "bodyFile": "docs-write-postmortem.md"
    },
    {
      "id": "skill_def_docs-write-readme-quickstart",
      "name": "Write A README Quickstart Section",
      "description": "Drafts a copy-pasteable Quickstart for a repository's README — install, minimal config, and a first working command — verified against the actual build and entrypoint so a new user reaches success in under five minutes.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "readme",
        "quickstart",
        "onboarding",
        "setup"
      ],
      "bodyFile": "docs-write-readme-quickstart.md"
    },
    {
      "id": "skill_def_docs-write-step-by-step-tutorial",
      "name": "Write A Goal-Oriented Step-By-Step Tutorial",
      "description": "Builds a learning-oriented tutorial that walks a reader from zero to one completed working outcome, used to onboard users to a feature or workflow through a single guided, verifiable end-to-end path.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "tutorial",
        "onboarding",
        "learning",
        "walkthrough"
      ],
      "bodyFile": "docs-write-step-by-step-tutorial.md"
    },
    {
      "id": "skill_def_docs-write-troubleshooting-faq",
      "name": "Write A Troubleshooting FAQ",
      "description": "Compiles a troubleshooting FAQ pairing common symptoms with diagnosis and fixes, used to deflect repetitive support questions by letting users self-resolve frequent problems.",
      "version": "1.0.0",
      "category": "Documentation & Writing",
      "tags": [
        "troubleshooting",
        "faq",
        "support",
        "diagnostics",
        "self-service"
      ],
      "bodyFile": "docs-write-troubleshooting-faq.md"
    },
    {
      "id": "skill_def_frontend-add-aria-to-custom-widget",
      "name": "Add ARIA Roles And States To A Custom Widget",
      "description": "Applies the correct ARIA role, properties, and state-management to a custom interactive component (tabs, combobox, tree, accordion) so assistive tech announces it correctly.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "accessibility",
        "aria",
        "screen-reader",
        "widget",
        "wcag"
      ],
      "bodyFile": "frontend-add-aria-to-custom-widget.md"
    },
    {
      "id": "skill_def_frontend-add-cross-browser-fallbacks",
      "name": "Add Cross-Browser Fallbacks For Modern CSS",
      "description": "Wraps newer CSS features in feature queries with graceful fallbacks so unsupported browsers still get a usable layout.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "cross-browser",
        "css",
        "feature-queries",
        "progressive-enhancement",
        "fallbacks"
      ],
      "bodyFile": "frontend-add-cross-browser-fallbacks.md"
    },
    {
      "id": "skill_def_frontend-add-loading-skeleton-states",
      "name": "Add Loading Skeleton And Optimistic UI States",
      "description": "Replaces blank or spinner-only loading with content-shaped skeletons and optimistic updates so perceived performance improves.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "ux",
        "loading-states",
        "skeleton",
        "perceived-performance",
        "optimistic-ui"
      ],
      "bodyFile": "frontend-add-loading-skeleton-states.md"
    },
    {
      "id": "skill_def_frontend-add-rtl-bidi-support",
      "name": "Add RTL And Bidirectional Layout Support",
      "description": "Converts a left-to-right-only layout to mirror correctly for right-to-left languages using logical CSS properties and bidi-safe markup.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "i18n",
        "rtl",
        "bidi",
        "css-logical-properties",
        "layout"
      ],
      "bodyFile": "frontend-add-rtl-bidi-support.md"
    },
    {
      "id": "skill_def_frontend-add-structured-data-jsonld",
      "name": "Add JSON-LD Structured Data For Rich Results",
      "description": "Adds schema.org JSON-LD markup matching the page type so search engines can render rich results and understand the content.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "seo",
        "structured-data",
        "json-ld",
        "schema-org",
        "rich-results"
      ],
      "bodyFile": "frontend-add-structured-data-jsonld.md"
    },
    {
      "id": "skill_def_frontend-animate-with-gpu-friendly-properties",
      "name": "Refactor Animations To GPU-Composited Properties",
      "description": "Rewrites janky animations that trigger layout/paint to use transform and opacity so they run on the compositor at 60fps.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "performance",
        "animation",
        "compositor",
        "transform",
        "60fps"
      ],
      "bodyFile": "frontend-animate-with-gpu-friendly-properties.md"
    },
    {
      "id": "skill_def_frontend-audit-keyboard-focus-order",
      "name": "Audit And Fix Keyboard Focus Order",
      "description": "Traces tab order through interactive elements and repairs broken or illogical keyboard navigation so the page is fully operable without a mouse.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "accessibility",
        "keyboard",
        "focus",
        "wcag",
        "navigation"
      ],
      "bodyFile": "frontend-audit-keyboard-focus-order.md"
    },
    {
      "id": "skill_def_frontend-audit-screen-reader-announcements",
      "name": "Audit Live Regions And Dynamic Announcements",
      "description": "Reviews dynamic UI updates (toasts, async results, validation, counters) and wires aria-live regions so screen readers announce changes correctly.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "accessibility",
        "aria-live",
        "screen-reader",
        "dynamic-content",
        "wcag"
      ],
      "bodyFile": "frontend-audit-screen-reader-announcements.md"
    },
    {
      "id": "skill_def_frontend-build-accessible-component-api",
      "name": "Design an Accessible Reusable Component API",
      "description": "Defines the props, slots, and ARIA contract for a new reusable UI component so it is composable and accessible, used when adding a primitive (button, dialog, tabs) to a shared library.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "components",
        "accessibility",
        "api-design",
        "design-system",
        "react"
      ],
      "bodyFile": "frontend-build-accessible-component-api.md"
    },
    {
      "id": "skill_def_frontend-build-accessible-form-validation",
      "name": "Build Accessible Form Validation And Error Messaging",
      "description": "Wires form validation so errors are programmatically associated, announced to screen readers, and focus moves to the first invalid field.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "accessibility",
        "forms",
        "validation",
        "aria-live",
        "ux"
      ],
      "bodyFile": "frontend-build-accessible-form-validation.md"
    },
    {
      "id": "skill_def_frontend-build-client-side-routing",
      "name": "Set Up Client-Side Routing With Nested Routes",
      "description": "Configures a route tree with nested layouts, route params, and lazy-loaded segments, used when adding navigation structure to a single-page application.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "routing",
        "spa",
        "code-splitting",
        "navigation"
      ],
      "bodyFile": "frontend-build-client-side-routing.md"
    },
    {
      "id": "skill_def_frontend-build-component-storybook-stories",
      "name": "Author Storybook Stories for a Component",
      "description": "Writes Storybook stories covering a component's states, variants, and interactions for isolated development and visual review, used when building or documenting UI components.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "storybook",
        "components",
        "documentation",
        "testing"
      ],
      "bodyFile": "frontend-build-component-storybook-stories.md"
    },
    {
      "id": "skill_def_frontend-build-component-unit-tests",
      "name": "Write Behavior-Focused Component Tests",
      "description": "Adds Testing Library tests that exercise a component through user-visible behavior and accessible queries rather than implementation details, used to lock in component contracts.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "testing",
        "components",
        "testing-library",
        "accessibility"
      ],
      "bodyFile": "frontend-build-component-unit-tests.md"
    },
    {
      "id": "skill_def_frontend-build-context-provider-composition",
      "name": "Refactor Prop Drilling Into Context Providers",
      "description": "Replaces deep prop drilling with scoped context providers split to avoid needless re-renders, used when a value threads through many intermediate components.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "state",
        "context",
        "architecture",
        "performance",
        "react"
      ],
      "bodyFile": "frontend-build-context-provider-composition.md"
    },
    {
      "id": "skill_def_frontend-build-controlled-form-with-validation",
      "name": "Build a Controlled Form With Inline Validation",
      "description": "Implements a controlled form with field-level state, schema validation, and accessible error messaging, used when adding or reworking any data-entry form.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "forms",
        "validation",
        "state",
        "accessibility",
        "ux"
      ],
      "bodyFile": "frontend-build-controlled-form-with-validation.md"
    },
    {
      "id": "skill_def_frontend-build-dark-mode-theming",
      "name": "Implement Dark Mode Theming",
      "description": "Adds a dark/light/system theme toggle backed by token overrides with no flash of incorrect theme, used when a product needs theme switching.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "theming",
        "dark-mode",
        "css-variables",
        "tokens",
        "ux"
      ],
      "bodyFile": "frontend-build-dark-mode-theming.md"
    },
    {
      "id": "skill_def_frontend-build-data-table-component",
      "name": "Build a Sortable Paginated Data Table",
      "description": "Implements a data table with column sorting, pagination, and accessible semantics that scales to large datasets, used when displaying tabular records.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "components",
        "data-table",
        "pagination",
        "sorting",
        "accessibility"
      ],
      "bodyFile": "frontend-build-data-table-component.md"
    },
    {
      "id": "skill_def_frontend-build-debounced-search-input",
      "name": "Build a Debounced Search Input",
      "description": "Implements a search field that debounces input, cancels stale requests, and renders results with loading and empty states, used for typeahead and filter search.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "forms",
        "search",
        "debounce",
        "data-fetching",
        "ux"
      ],
      "bodyFile": "frontend-build-debounced-search-input.md"
    },
    {
      "id": "skill_def_frontend-build-design-token-system",
      "name": "Establish a Design Token System",
      "description": "Defines a layered set of design tokens (color, spacing, typography, radius) as CSS variables with semantic aliases, used when starting or consolidating a design system.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "design-system",
        "tokens",
        "css-variables",
        "theming"
      ],
      "bodyFile": "frontend-build-design-token-system.md"
    },
    {
      "id": "skill_def_frontend-build-error-boundary",
      "name": "Add Error Boundaries Around Risky UI",
      "description": "Wraps fallible UI subtrees in error boundaries with fallback UI and recovery so one component crash doesn't blank the whole app, used to harden production rendering.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "error-handling",
        "resilience",
        "components",
        "react"
      ],
      "bodyFile": "frontend-build-error-boundary.md"
    },
    {
      "id": "skill_def_frontend-build-form-field-component",
      "name": "Build a Composable Form Field Component",
      "description": "Creates a reusable field wrapper bundling label, control, help text, and error with correct associations, used to standardize form inputs across an app.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "forms",
        "components",
        "accessibility",
        "design-system"
      ],
      "bodyFile": "frontend-build-form-field-component.md"
    },
    {
      "id": "skill_def_frontend-build-global-state-store",
      "name": "Set Up a Global State Store",
      "description": "Introduces a typed global state store with selectors and slices for cross-cutting UI state, used when prop drilling becomes unmanageable or state must be shared widely.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "state",
        "store",
        "selectors",
        "architecture"
      ],
      "bodyFile": "frontend-build-global-state-store.md"
    },
    {
      "id": "skill_def_frontend-build-infinite-scroll-pagination",
      "name": "Implement Infinite Scroll Pagination",
      "description": "Adds cursor-based infinite loading triggered by an intersection observer with proper loading and end states, used for feeds and long browse lists.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "pagination",
        "infinite-scroll",
        "data-fetching",
        "intersection-observer"
      ],
      "bodyFile": "frontend-build-infinite-scroll-pagination.md"
    },
    {
      "id": "skill_def_frontend-build-keyboard-navigable-menu",
      "name": "Build a Keyboard-Navigable Dropdown Menu",
      "description": "Implements a dropdown/menu following the WAI-ARIA menu pattern with arrow-key navigation, typeahead, and roving tabindex, used for action menus and selects.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "components",
        "accessibility",
        "keyboard",
        "menu",
        "aria"
      ],
      "bodyFile": "frontend-build-keyboard-navigable-menu.md"
    },
    {
      "id": "skill_def_frontend-build-modal-dialog-focus-trap",
      "name": "Build an Accessible Modal Dialog With Focus Trap",
      "description": "Implements a modal that traps focus, restores it on close, and handles escape and overlay dismissal, used when adding any blocking dialog or confirmation.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "components",
        "accessibility",
        "focus-management",
        "modal",
        "overlay"
      ],
      "bodyFile": "frontend-build-modal-dialog-focus-trap.md"
    },
    {
      "id": "skill_def_frontend-build-multi-step-wizard",
      "name": "Build a Multi-Step Wizard Flow",
      "description": "Implements a multi-step wizard with per-step validation, shared state, progress indication, and back/forward navigation, used for onboarding or complex form flows.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "forms",
        "wizard",
        "state",
        "navigation",
        "ux"
      ],
      "bodyFile": "frontend-build-multi-step-wizard.md"
    },
    {
      "id": "skill_def_frontend-build-optimistic-ui-update",
      "name": "Implement an Optimistic UI Update",
      "description": "Applies a UI change immediately on user action and reconciles or rolls back on server response, used to make mutations feel instant.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "state",
        "optimistic-ui",
        "mutations",
        "ux",
        "data-fetching"
      ],
      "bodyFile": "frontend-build-optimistic-ui-update.md"
    },
    {
      "id": "skill_def_frontend-build-responsive-grid-layout",
      "name": "Build a Responsive Grid Layout",
      "description": "Creates a fluid, breakpoint-aware grid using CSS Grid that reflows content without fixed media-query columns, used when laying out card lists, dashboards, or galleries.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "layout",
        "css-grid",
        "responsive",
        "design-system"
      ],
      "bodyFile": "frontend-build-responsive-grid-layout.md"
    },
    {
      "id": "skill_def_frontend-build-responsive-image-loading",
      "name": "Optimize Responsive Image Loading",
      "description": "Serves correctly sized, lazy-loaded, layout-stable images via srcset and modern formats, used to cut image payload and prevent layout shift on image-heavy pages.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "performance",
        "images",
        "responsive",
        "cls",
        "lazy-loading"
      ],
      "bodyFile": "frontend-build-responsive-image-loading.md"
    },
    {
      "id": "skill_def_frontend-build-responsive-navbar",
      "name": "Build a Responsive Navigation Bar",
      "description": "Creates a navbar that collapses to a mobile menu at a breakpoint with accessible toggle and focus handling, used as the primary app or site navigation.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "layout",
        "navigation",
        "responsive",
        "accessibility",
        "components"
      ],
      "bodyFile": "frontend-build-responsive-navbar.md"
    },
    {
      "id": "skill_def_frontend-build-semantic-landmark-structure",
      "name": "Build Semantic Landmark And Heading Structure",
      "description": "Restructures page markup with correct landmark regions and a logical heading hierarchy so assistive tech users can navigate by structure.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "accessibility",
        "semantics",
        "landmarks",
        "headings",
        "html"
      ],
      "bodyFile": "frontend-build-semantic-landmark-structure.md"
    },
    {
      "id": "skill_def_frontend-build-server-state-data-fetching",
      "name": "Wire Server State With a Data-Fetching Library",
      "description": "Replaces manual fetch/useEffect data loading with a query library handling caching, loading, errors, and refetching, used when a component needs remote data.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "data-fetching",
        "server-state",
        "caching",
        "react-query"
      ],
      "bodyFile": "frontend-build-server-state-data-fetching.md"
    },
    {
      "id": "skill_def_frontend-build-skeleton-loading-states",
      "name": "Add Skeleton Loading States",
      "description": "Replaces spinners and layout-shifting placeholders with content-shaped skeletons that match final layout, used to reduce perceived latency and CLS during data loads.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "loading-states",
        "ux",
        "performance",
        "cls"
      ],
      "bodyFile": "frontend-build-skeleton-loading-states.md"
    },
    {
      "id": "skill_def_frontend-build-toast-notification-system",
      "name": "Build a Toast Notification System",
      "description": "Implements a queued, auto-dismissing toast system with an imperative API and accessible live region, used when the app needs transient success/error feedback.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "components",
        "notifications",
        "accessibility",
        "state"
      ],
      "bodyFile": "frontend-build-toast-notification-system.md"
    },
    {
      "id": "skill_def_frontend-build-virtualized-list",
      "name": "Virtualize a Long Scrolling List",
      "description": "Adds windowing to a list that renders thousands of rows so only visible items mount, used when a long list causes scroll jank or slow renders.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "performance",
        "virtualization",
        "lists",
        "rendering"
      ],
      "bodyFile": "frontend-build-virtualized-list.md"
    },
    {
      "id": "skill_def_frontend-code-split-route-bundles",
      "name": "Code-Split Route And Component Bundles",
      "description": "Splits a monolithic JS bundle along route and heavy-component boundaries with lazy loading so initial load ships only what the first view needs.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "performance",
        "bundle",
        "code-splitting",
        "lazy-loading",
        "javascript"
      ],
      "bodyFile": "frontend-code-split-route-bundles.md"
    },
    {
      "id": "skill_def_frontend-eliminate-layout-shift-cls",
      "name": "Eliminate Cumulative Layout Shift",
      "description": "Finds elements that shift after load and reserves space for them so Cumulative Layout Shift drops below the 0.1 Core Web Vitals threshold.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "performance",
        "core-web-vitals",
        "cls",
        "layout",
        "images"
      ],
      "bodyFile": "frontend-eliminate-layout-shift-cls.md"
    },
    {
      "id": "skill_def_frontend-ensure-visible-focus-indicators",
      "name": "Ensure Visible Focus Indicators For Keyboard Users",
      "description": "Restores and styles accessible focus indicators that meet visibility requirements without showing rings on mouse clicks.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "accessibility",
        "focus-visible",
        "keyboard",
        "css",
        "wcag"
      ],
      "bodyFile": "frontend-ensure-visible-focus-indicators.md"
    },
    {
      "id": "skill_def_frontend-establish-visual-regression-tests",
      "name": "Establish Cross-Browser Visual Regression Tests",
      "description": "Sets up snapshot-based visual regression testing across browsers and viewports so UI quality and cross-browser rendering are guarded in CI.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "cross-browser",
        "visual-regression",
        "testing",
        "ci",
        "quality"
      ],
      "bodyFile": "frontend-establish-visual-regression-tests.md"
    },
    {
      "id": "skill_def_frontend-extract-translatable-strings-i18n",
      "name": "Extract Hardcoded Strings For Internationalization",
      "description": "Finds hardcoded user-facing text in components and replaces it with keyed translation calls plus an extracted message catalog.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "i18n",
        "localization",
        "strings",
        "catalog",
        "refactor"
      ],
      "bodyFile": "frontend-extract-translatable-strings-i18n.md"
    },
    {
      "id": "skill_def_frontend-fix-color-contrast-violations",
      "name": "Fix Color Contrast Violations To WCAG AA",
      "description": "Detects text and UI elements failing WCAG contrast thresholds and proposes minimal color adjustments that pass AA while staying on-brand.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "accessibility",
        "contrast",
        "color",
        "wcag",
        "design-tokens"
      ],
      "bodyFile": "frontend-fix-color-contrast-violations.md"
    },
    {
      "id": "skill_def_frontend-implement-responsive-images-srcset",
      "name": "Implement Responsive Images With Srcset",
      "description": "Generates srcset/sizes and modern-format sources so each viewport downloads an appropriately sized, well-compressed image.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "performance",
        "images",
        "responsive",
        "srcset",
        "webp"
      ],
      "bodyFile": "frontend-implement-responsive-images-srcset.md"
    },
    {
      "id": "skill_def_frontend-localize-dates-numbers-currency",
      "name": "Localize Dates, Numbers, And Currency Formatting",
      "description": "Replaces hand-rolled date/number/currency formatting with locale-aware Intl APIs so values display correctly across regions.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "i18n",
        "intl",
        "formatting",
        "dates",
        "currency"
      ],
      "bodyFile": "frontend-localize-dates-numbers-currency.md"
    },
    {
      "id": "skill_def_frontend-make-touch-targets-accessible",
      "name": "Enforce Accessible Touch Target Sizes And Spacing",
      "description": "Finds interactive controls smaller than the minimum touch target and resizes or pads them to meet WCAG and mobile guidelines.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "accessibility",
        "touch",
        "mobile",
        "target-size",
        "wcag"
      ],
      "bodyFile": "frontend-make-touch-targets-accessible.md"
    },
    {
      "id": "skill_def_frontend-normalize-vendor-prefixes",
      "name": "Normalize And Prune CSS Vendor Prefixes",
      "description": "Automates vendor-prefix management so prefixes are added where still needed and removed where obsolete based on the browser target list.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "cross-browser",
        "css",
        "autoprefixer",
        "browserslist",
        "build"
      ],
      "bodyFile": "frontend-normalize-vendor-prefixes.md"
    },
    {
      "id": "skill_def_frontend-optimize-largest-contentful-paint",
      "name": "Optimize Largest Contentful Paint",
      "description": "Identifies the LCP element and removes the bottlenecks delaying its render so the metric falls under the 2.5s Core Web Vitals target.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "performance",
        "core-web-vitals",
        "lcp",
        "preload",
        "rendering"
      ],
      "bodyFile": "frontend-optimize-largest-contentful-paint.md"
    },
    {
      "id": "skill_def_frontend-optimize-meta-tags-open-graph",
      "name": "Optimize Meta Tags And Open Graph Previews",
      "description": "Audits and fills page title, meta description, canonical, and Open Graph/Twitter tags so pages rank and share with correct previews.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "seo",
        "meta-tags",
        "open-graph",
        "social",
        "canonical"
      ],
      "bodyFile": "frontend-optimize-meta-tags-open-graph.md"
    },
    {
      "id": "skill_def_frontend-render-seo-content-server-side",
      "name": "Make Client-Rendered Content Crawlable",
      "description": "Diagnoses content that crawlers can't see in a client-rendered app and adds SSR, prerendering, or hydration so SEO-critical content is indexable.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "seo",
        "ssr",
        "prerendering",
        "crawlability",
        "spa"
      ],
      "bodyFile": "frontend-render-seo-content-server-side.md"
    },
    {
      "id": "skill_def_frontend-respect-prefers-reduced-motion",
      "name": "Respect Reduced-Motion Preferences In Animations",
      "description": "Gates non-essential motion behind prefers-reduced-motion so users sensitive to animation get a calm, vestibular-safe experience.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "accessibility",
        "animation",
        "reduced-motion",
        "css",
        "ux"
      ],
      "bodyFile": "frontend-respect-prefers-reduced-motion.md"
    },
    {
      "id": "skill_def_frontend-self-host-and-optimize-fonts",
      "name": "Self-Host And Optimize Web Fonts",
      "description": "Self-hosts, subsets, and preloads web fonts with a sane font-display strategy to cut render-blocking and eliminate flash-of-unstyled-text.",
      "version": "1.0.0",
      "category": "Frontend & UI",
      "tags": [
        "performance",
        "fonts",
        "self-hosting",
        "font-display",
        "subsetting"
      ],
      "bodyFile": "frontend-self-host-and-optimize-fonts.md"
    },
    {
      "id": "skill_def_git-abort-and-reset-clean",
      "name": "Abort A Botched Operation And Return To A Clean State",
      "description": "Safely cancels an in-progress merge, rebase, or cherry-pick and resets the working tree back to a known-good state; use when an operation went sideways and you want to start over.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "abort",
        "reset",
        "recovery",
        "merge",
        "rebase"
      ],
      "bodyFile": "git-abort-and-reset-clean.md"
    },
    {
      "id": "skill_def_git-add-and-track-submodule",
      "name": "Add And Pin A Git Submodule",
      "description": "Adds a dependency repo as a submodule pinned to a specific commit and wires it for reproducible clones; use when you need to vendor another repo at a controlled version.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "submodule",
        "dependencies",
        "monorepo",
        "vendoring"
      ],
      "bodyFile": "git-add-and-track-submodule.md"
    },
    {
      "id": "skill_def_git-amend-last-commit",
      "name": "Amend The Most Recent Commit Safely",
      "description": "Folds forgotten changes or a corrected message into the latest commit instead of creating a follow-up; use right after a commit when you spot an omission, before it is shared.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "amend",
        "commit",
        "history",
        "cleanup"
      ],
      "bodyFile": "git-amend-last-commit.md"
    },
    {
      "id": "skill_def_git-bisect-find-bad-commit",
      "name": "Find The Commit That Introduced A Bug With Bisect",
      "description": "Runs a binary search across history to pinpoint the exact commit that introduced a regression; use when something broke but you don't know which change caused it.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "bisect",
        "debugging",
        "regression",
        "binary-search"
      ],
      "bodyFile": "git-bisect-find-bad-commit.md"
    },
    {
      "id": "skill_def_git-bisect-to-find-regression-commit",
      "name": "Find A Regression With Git Bisect",
      "description": "Binary-searches history with git bisect to pinpoint the exact commit that introduced a bug; use when something worked at an old revision but fails now and the cause is unknown.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "bisect",
        "debugging",
        "regression",
        "history"
      ],
      "bodyFile": "git-bisect-to-find-regression-commit.md"
    },
    {
      "id": "skill_def_git-blame-trace-line-history",
      "name": "Trace The Origin Of A Line With Blame And Log",
      "description": "Pinpoints which commit, author, and PR introduced or last changed a specific line, following moves and refactors; use when investigating why a line of code exists.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "blame",
        "history",
        "investigation",
        "debugging"
      ],
      "bodyFile": "git-blame-trace-line-history.md"
    },
    {
      "id": "skill_def_git-blame-trace-line-origin",
      "name": "Trace A Line's Origin Across Refactors With Blame",
      "description": "Uses git blame with copy/move detection to find when and why a specific line was introduced, even through file renames; use when you need the rationale behind a suspicious line.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "blame",
        "history",
        "investigation",
        "archaeology"
      ],
      "bodyFile": "git-blame-trace-line-origin.md"
    },
    {
      "id": "skill_def_git-cherry-pick-commit",
      "name": "Cherry-Pick A Specific Commit Onto Another Branch",
      "description": "Applies one or more individual commits from another branch onto the current branch without merging everything; use to backport a fix or pull a single change across branches.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "cherry-pick",
        "backport",
        "branching",
        "hotfix"
      ],
      "bodyFile": "git-cherry-pick-commit.md"
    },
    {
      "id": "skill_def_git-cherry-pick-fix-across-release-branches",
      "name": "Backport A Fix Across Release Branches With Cherry-Pick",
      "description": "Cherry-picks a bug fix from main onto one or more maintenance branches with conflict handling and provenance tracking; use when a hotfix must land on supported older releases.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "cherry-pick",
        "backport",
        "release",
        "maintenance"
      ],
      "bodyFile": "git-cherry-pick-fix-across-release-branches.md"
    },
    {
      "id": "skill_def_git-commit-message-conventional",
      "name": "Write A Conventional Commit Message",
      "description": "Composes a structured Conventional Commits message with type, scope, summary, body, and footers from a staged change; use when committing to keep history machine-parseable.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "commit",
        "conventional-commits",
        "message",
        "changelog"
      ],
      "bodyFile": "git-commit-message-conventional.md"
    },
    {
      "id": "skill_def_git-compare-branches-diff",
      "name": "Compare Two Branches Before Merging",
      "description": "Reviews exactly which commits and file changes differ between two branches in each direction; use to understand scope and risk before merging or rebasing.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "diff",
        "branching",
        "review",
        "comparison"
      ],
      "bodyFile": "git-compare-branches-diff.md"
    },
    {
      "id": "skill_def_git-convert-submodule-to-subtree",
      "name": "Convert A Submodule To A Git Subtree",
      "description": "Migrates a dependency from the submodule model to git subtree so history is vendored inline and clones need no special flags; use when submodule friction outweighs its benefits.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "subtree",
        "submodule",
        "monorepo",
        "vendoring"
      ],
      "bodyFile": "git-convert-submodule-to-subtree.md"
    },
    {
      "id": "skill_def_git-create-feature-branch",
      "name": "Create A Well-Named Feature Branch From Latest Main",
      "description": "Cuts a fresh, conventionally-named feature branch off an up-to-date main so new work starts from the current baseline; use when beginning any new task or ticket.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "branching",
        "feature-branch",
        "naming",
        "workflow"
      ],
      "bodyFile": "git-create-feature-branch.md"
    },
    {
      "id": "skill_def_git-delete-merged-branches",
      "name": "Prune Merged And Stale Branches",
      "description": "Identifies and deletes local and remote branches that have already been merged or no longer exist on the remote; use to declutter a repo with branch sprawl.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "branching",
        "cleanup",
        "prune",
        "maintenance"
      ],
      "bodyFile": "git-delete-merged-branches.md"
    },
    {
      "id": "skill_def_git-extract-subdirectory-into-new-repo",
      "name": "Extract A Subdirectory Into Its Own Repo With History",
      "description": "Splits a directory out of a monorepo into a standalone repository while preserving its commit history using git-filter-repo; use when a component graduates to its own project.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "filter-repo",
        "monorepo",
        "extraction",
        "history"
      ],
      "bodyFile": "git-extract-subdirectory-into-new-repo.md"
    },
    {
      "id": "skill_def_git-fix-up-with-autosquash",
      "name": "Create Fixup Commits And Auto-Squash Them",
      "description": "Records targeted fixup commits against earlier commits and folds them in automatically with rebase autosquash; use when addressing review feedback on specific commits.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "fixup",
        "autosquash",
        "rebase",
        "review"
      ],
      "bodyFile": "git-fix-up-with-autosquash.md"
    },
    {
      "id": "skill_def_git-fixup-commit-and-autosquash",
      "name": "Amend An Earlier Commit With Fixup And Autosquash",
      "description": "Targets a fix at a specific earlier commit using commit --fixup then folds it in with rebase --autosquash; use when review feedback belongs to a commit deep in your branch.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "fixup",
        "rebase",
        "autosquash",
        "hygiene"
      ],
      "bodyFile": "git-fixup-commit-and-autosquash.md"
    },
    {
      "id": "skill_def_git-generate-release-changelog-from-history",
      "name": "Generate A Release Changelog From Commit History",
      "description": "Builds a categorized, human-readable changelog for a release by parsing conventional commits between two tags; use when cutting a release and you need release notes.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "changelog",
        "release",
        "conventional-commits",
        "history"
      ],
      "bodyFile": "git-generate-release-changelog-from-history.md"
    },
    {
      "id": "skill_def_git-install-pre-commit-hook",
      "name": "Install A Pre-Commit Hook For Lint And Format Checks",
      "description": "Adds a local pre-commit hook that runs formatters and linters on staged files and blocks the commit on failure; use to enforce code standards before commits land.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "hooks",
        "pre-commit",
        "lint",
        "format",
        "automation"
      ],
      "bodyFile": "git-install-pre-commit-hook.md"
    },
    {
      "id": "skill_def_git-interactive-rebase-cleanup",
      "name": "Clean Up Branch History With Interactive Rebase",
      "description": "Squashes, reorders, rewords, and drops commits on a feature branch into a tidy logical sequence before review; use when a branch has noisy WIP commits.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "rebase",
        "interactive",
        "squash",
        "history",
        "cleanup"
      ],
      "bodyFile": "git-interactive-rebase-cleanup.md"
    },
    {
      "id": "skill_def_git-interactive-rebase-cleanup-before-merge",
      "name": "Clean Up Branch History With Interactive Rebase",
      "description": "Squashes, reorders, and rewords commits on a feature branch into a tidy story before merge; use when a branch has fixup, WIP, and typo commits you do not want in main.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "rebase",
        "history",
        "squash",
        "hygiene"
      ],
      "bodyFile": "git-interactive-rebase-cleanup-before-merge.md"
    },
    {
      "id": "skill_def_git-isolate-parallel-work-with-worktrees",
      "name": "Run Parallel Branches With Git Worktrees",
      "description": "Creates linked worktrees so you can build a hotfix and a feature simultaneously without stashing or re-cloning; use when context-switching between branches mid-build is costly.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "worktree",
        "branching",
        "workflow",
        "productivity"
      ],
      "bodyFile": "git-isolate-parallel-work-with-worktrees.md"
    },
    {
      "id": "skill_def_git-merge-two-repos-preserving-history",
      "name": "Merge Two Repositories Into A Monorepo Preserving History",
      "description": "Combines a separate repo into a subdirectory of a monorepo while retaining its full commit history; use when consolidating projects without flattening authorship.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "monorepo",
        "merge",
        "history",
        "consolidation"
      ],
      "bodyFile": "git-merge-two-repos-preserving-history.md"
    },
    {
      "id": "skill_def_git-partial-stage-with-patch",
      "name": "Stage Only Selected Hunks With Patch Mode",
      "description": "Interactively stages individual hunks or lines so one commit captures a single coherent change out of a mixed working tree; use to craft atomic commits from messy edits.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "staging",
        "patch",
        "commit",
        "atomic"
      ],
      "bodyFile": "git-partial-stage-with-patch.md"
    },
    {
      "id": "skill_def_git-rebase-drop-secret-commit",
      "name": "Purge A Mistakenly Committed Secret From A Branch",
      "description": "Removes a secret or sensitive file from recent branch history with interactive rebase or filter, before it is shared widely; use immediately after committing a credential.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "rebase",
        "secrets",
        "history",
        "cleanup"
      ],
      "bodyFile": "git-rebase-drop-secret-commit.md"
    },
    {
      "id": "skill_def_git-rebase-feature-branch-onto-updated-main",
      "name": "Rebase A Feature Branch Onto An Updated Main",
      "description": "Brings a stale feature branch up to date by rebasing it onto the latest main with stepwise conflict resolution and rerere; use before merge when main has moved far ahead.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "rebase",
        "branching",
        "conflict",
        "sync"
      ],
      "bodyFile": "git-rebase-feature-branch-onto-updated-main.md"
    },
    {
      "id": "skill_def_git-rebase-onto-updated-main",
      "name": "Rebase A Feature Branch Onto Updated Main",
      "description": "Replays a feature branch's commits on top of the latest main to keep history linear and resolve drift; use before opening or updating a PR that has fallen behind the trunk.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "rebase",
        "linear-history",
        "branching",
        "sync"
      ],
      "bodyFile": "git-rebase-onto-updated-main.md"
    },
    {
      "id": "skill_def_git-recover-lost-commits-via-reflog",
      "name": "Recover Lost Commits With The Reflog",
      "description": "Restores commits orphaned by a bad reset, rebase, or branch deletion using git reflog; use when work seems to have vanished after a destructive history operation.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "reflog",
        "recovery",
        "history",
        "undo"
      ],
      "bodyFile": "git-recover-lost-commits-via-reflog.md"
    },
    {
      "id": "skill_def_git-resolve-merge-conflict-three-way",
      "name": "Resolve A Merge Conflict Using Three-Way Context",
      "description": "Resolves a conflicted merge or rebase by reasoning over base, ours, and theirs rather than blindly picking a side; use when Git reports conflict markers you must reconcile by intent.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "merge",
        "conflict",
        "rebase",
        "collaboration"
      ],
      "bodyFile": "git-resolve-merge-conflict-three-way.md"
    },
    {
      "id": "skill_def_git-resolve-merge-conflicts",
      "name": "Resolve Merge Conflicts Methodically",
      "description": "Works through conflict markers file by file, choosing or combining sides with intent and verifying the result compiles; use whenever a merge or rebase stops with conflicts.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "conflicts",
        "merge",
        "resolution",
        "rebase"
      ],
      "bodyFile": "git-resolve-merge-conflicts.md"
    },
    {
      "id": "skill_def_git-restore-deleted-file",
      "name": "Restore A File Deleted Or Changed In A Past Commit",
      "description": "Brings back a file (or a prior version of it) from any point in history without reverting other work; use when a needed file was removed or wrongly edited earlier.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "restore",
        "recovery",
        "history",
        "files"
      ],
      "bodyFile": "git-restore-deleted-file.md"
    },
    {
      "id": "skill_def_git-revert-merged-commit-safely",
      "name": "Safely Revert A Merged Change On A Shared Branch",
      "description": "Reverts a faulty commit or merge commit on a shared branch without rewriting public history, handling the -m mainline parent; use when bad code already merged to main.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "revert",
        "merge",
        "rollback",
        "collaboration"
      ],
      "bodyFile": "git-revert-merged-commit-safely.md"
    },
    {
      "id": "skill_def_git-revert-pushed-commit",
      "name": "Safely Revert A Commit That Is Already Pushed",
      "description": "Creates a new commit that undoes a faulty change without rewriting shared history; use when a bad commit is already on a shared branch and others have it.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "revert",
        "shared-history",
        "hotfix",
        "rollback"
      ],
      "bodyFile": "git-revert-pushed-commit.md"
    },
    {
      "id": "skill_def_git-review-pr-diff-for-correctness",
      "name": "Review A Pull Request Diff For Correctness",
      "description": "Walks a PR diff hunk-by-hunk to flag logic bugs, edge cases, and untested paths; use when assigned a code review and you need a structured pass instead of a skim.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "pr-review",
        "code-review",
        "diff",
        "collaboration"
      ],
      "bodyFile": "git-review-pr-diff-for-correctness.md"
    },
    {
      "id": "skill_def_git-rewrite-author-identity-across-history",
      "name": "Correct Author Identity Across History",
      "description": "Rewrites incorrect author or committer name/email across past commits with git-filter-repo mailmap; use when commits were made under the wrong identity and must be reattributed.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "filter-repo",
        "mailmap",
        "history-rewrite",
        "attribution"
      ],
      "bodyFile": "git-rewrite-author-identity-across-history.md"
    },
    {
      "id": "skill_def_git-scrub-secret-from-repo-history",
      "name": "Purge A Leaked Secret From Repository History",
      "description": "Removes an accidentally committed secret or large file from all of Git history with git-filter-repo and coordinates the force-push; use when credentials or blobs were committed and must be erased.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "history-rewrite",
        "filter-repo",
        "secrets",
        "cleanup"
      ],
      "bodyFile": "git-scrub-secret-from-repo-history.md"
    },
    {
      "id": "skill_def_git-set-up-codeowners-review-routing",
      "name": "Configure CODEOWNERS Review Routing",
      "description": "Authors a CODEOWNERS file that auto-requests the right reviewers per path and pairs it with branch protection; use when PRs need consistent ownership-based review assignment.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "codeowners",
        "pr-review",
        "branch-protection",
        "collaboration"
      ],
      "bodyFile": "git-set-up-codeowners-review-routing.md"
    },
    {
      "id": "skill_def_git-sign-commits-with-gpg-or-ssh",
      "name": "Enable Verified Commit Signing",
      "description": "Configures GPG or SSH commit signing and verifies the signature shows as verified on the host; use when a repo requires signed commits or you want tamper-evident authorship.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "signing",
        "gpg",
        "ssh",
        "security"
      ],
      "bodyFile": "git-sign-commits-with-gpg-or-ssh.md"
    },
    {
      "id": "skill_def_git-sparse-checkout-monorepo-subtree",
      "name": "Sparse-Checkout A Slice Of A Monorepo",
      "description": "Configures sparse-checkout (with partial clone) to work on only one directory of a huge monorepo; use when a full checkout is too large or slow for your task.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "monorepo",
        "sparse-checkout",
        "partial-clone",
        "performance"
      ],
      "bodyFile": "git-sparse-checkout-monorepo-subtree.md"
    },
    {
      "id": "skill_def_git-split-commit-into-logical-units",
      "name": "Split A Large Commit Into Logical Commits",
      "description": "Breaks one oversized commit into several focused, independently-reviewable commits using interactive rebase and partial staging; use when a commit mixes unrelated changes.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "rebase",
        "commit",
        "split",
        "history",
        "review"
      ],
      "bodyFile": "git-split-commit-into-logical-units.md"
    },
    {
      "id": "skill_def_git-split-staged-changes-into-atomic-commits",
      "name": "Split Staged Changes Into Atomic Commits",
      "description": "Decomposes a large working-tree change into several focused, independently-revertible commits using hunk-level staging; use when one branch mixes a fix, a refactor, and unrelated cleanup.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "commit",
        "hygiene",
        "atomic-commits",
        "staging"
      ],
      "bodyFile": "git-split-staged-changes-into-atomic-commits.md"
    },
    {
      "id": "skill_def_git-squash-merge-feature",
      "name": "Squash-Merge A Feature Branch Into Main",
      "description": "Collapses a feature branch into a single clean commit on main with a curated message; use when the team prefers one commit per feature on the trunk.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "merge",
        "squash",
        "trunk",
        "workflow"
      ],
      "bodyFile": "git-squash-merge-feature.md"
    },
    {
      "id": "skill_def_git-stack-dependent-pull-requests",
      "name": "Stack Dependent Pull Requests",
      "description": "Organizes a large change as a stack of small dependent branches and PRs that rebase cleanly as each lands; use when one feature is too big to review as a single PR.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "pr-review",
        "stacked-prs",
        "branching",
        "collaboration"
      ],
      "bodyFile": "git-stack-dependent-pull-requests.md"
    },
    {
      "id": "skill_def_git-stash-context-switch",
      "name": "Stash Work In Progress To Switch Context",
      "description": "Parks uncommitted changes safely so you can switch branches for an urgent task, then restores them later; use when an interruption arrives mid-change.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "stash",
        "context-switch",
        "workflow",
        "wip"
      ],
      "bodyFile": "git-stash-context-switch.md"
    },
    {
      "id": "skill_def_git-sync-fork-upstream",
      "name": "Sync A Fork With Its Upstream Repository",
      "description": "Pulls the latest changes from the original upstream repo into your fork and pushes them to your remote; use to keep a fork current before starting or rebasing work.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "fork",
        "upstream",
        "remote",
        "sync"
      ],
      "bodyFile": "git-sync-fork-upstream.md"
    },
    {
      "id": "skill_def_git-tag-release",
      "name": "Tag And Publish An Annotated Release",
      "description": "Creates a signed or annotated semantic-version tag at a release commit and pushes it so CI and consumers can pin the version; use when cutting a release.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "tags",
        "release",
        "semver",
        "versioning"
      ],
      "bodyFile": "git-tag-release.md"
    },
    {
      "id": "skill_def_git-undo-with-reflog",
      "name": "Recover Lost Commits Using The Reflog",
      "description": "Finds and restores commits orphaned by a bad reset, rebase, or branch deletion via the reflog; use when work seems to have vanished after a destructive operation.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "reflog",
        "recovery",
        "reset",
        "rescue"
      ],
      "bodyFile": "git-undo-with-reflog.md"
    },
    {
      "id": "skill_def_git-update-submodule-to-new-revision",
      "name": "Bump A Submodule To A New Revision",
      "description": "Advances a pinned submodule to a newer upstream commit and records the gitlink change cleanly; use when the embedded dependency needs an update without surprising teammates.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "submodule",
        "dependencies",
        "update",
        "pinning"
      ],
      "bodyFile": "git-update-submodule-to-new-revision.md"
    },
    {
      "id": "skill_def_git-worktree-parallel-branches",
      "name": "Work On Two Branches At Once With Worktrees",
      "description": "Checks out a second branch into a separate working directory so you can build or test both without stashing; use when an urgent fix interrupts long-running work.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "worktree",
        "parallel",
        "context-switch",
        "workflow"
      ],
      "bodyFile": "git-worktree-parallel-branches.md"
    },
    {
      "id": "skill_def_git-write-conventional-commit-message",
      "name": "Write A Conventional Commit Message",
      "description": "Drafts a Conventional Commits-formatted message with type, scope, and body from a staged diff; use when committing and your repo enforces or benefits from a structured commit convention.",
      "version": "1.0.0",
      "category": "Git & Version Control",
      "tags": [
        "commit",
        "conventional-commits",
        "hygiene",
        "changelog"
      ],
      "bodyFile": "git-write-conventional-commit-message.md"
    },
    {
      "id": "skill_def_improve-add-dependency-update-automation",
      "name": "Configure Automated Dependency Update Bot",
      "description": "Sets up a dependency-update bot configuration (grouping, schedule, ignore rules) so routine upgrade PRs are opened automatically with sensible batching and noise control.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "automation",
        "dependencies",
        "ci",
        "dependabot",
        "renovate"
      ],
      "bodyFile": "improve-add-dependency-update-automation.md"
    },
    {
      "id": "skill_def_improve-add-gitignore-entries",
      "name": "Audit and Complete the Gitignore",
      "description": "Finds build artifacts, caches, editor files, and secrets currently tracked or untracked-but-noisy, and adds correct .gitignore entries so the working tree stays clean.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "gitignore",
        "artifacts",
        "repo-health",
        "cleanup",
        "git"
      ],
      "bodyFile": "improve-add-gitignore-entries.md"
    },
    {
      "id": "skill_def_improve-add-precommit-hooks",
      "name": "Install and Configure Pre-Commit Hooks for Routine Checks",
      "description": "Sets up a pre-commit hook framework that runs formatting, linting, and fast checks on staged files, catching hygiene issues before they reach CI.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "automation",
        "pre-commit",
        "hooks",
        "linting",
        "developer-experience"
      ],
      "bodyFile": "improve-add-precommit-hooks.md"
    },
    {
      "id": "skill_def_improve-archive-dead-branches",
      "name": "Identify and Clean Up Stale Git Branches",
      "description": "Surveys remote and local branches to find merged or long-abandoned ones and produces a safe deletion plan, decluttering the branch list without losing unmerged work.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "git",
        "branches",
        "repo-health",
        "cleanup",
        "maintenance"
      ],
      "bodyFile": "improve-archive-dead-branches.md"
    },
    {
      "id": "skill_def_improve-build-eval-set-from-logs",
      "name": "Build A Regression Eval Set From Production Logs",
      "description": "Curates a representative, deduplicated eval set from real usage logs so prompt and skill changes can be tested against true workloads; use before any optimization work.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "evaluation",
        "dataset",
        "logs",
        "regression"
      ],
      "bodyFile": "improve-build-eval-set-from-logs.md"
    },
    {
      "id": "skill_def_improve-bump-runtime-version",
      "name": "Update Pinned Runtime and Engine Version Declarations",
      "description": "Aligns the runtime/engine version pins across all config surfaces (engines field, version file, CI matrix, container base) to a single supported version and verifies the build.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "runtime",
        "versioning",
        "config",
        "ci",
        "consistency"
      ],
      "bodyFile": "improve-bump-runtime-version.md"
    },
    {
      "id": "skill_def_improve-clean-build-artifacts-config",
      "name": "Define a Reliable Clean Task and Purge Stray Artifacts",
      "description": "Inventories generated build/cache/output directories and creates a single clean task that removes them, then purges any stray artifacts already cluttering the tree.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "build",
        "artifacts",
        "automation",
        "cleanup",
        "scripts"
      ],
      "bodyFile": "improve-clean-build-artifacts-config.md"
    },
    {
      "id": "skill_def_improve-compress-verbose-memory",
      "name": "Compress Verbose Memory Entries",
      "description": "Rewrites long, rambling memory notes into tight canonical phrasing without losing load-bearing detail; use when individual entries consume excessive context budget on recall.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "memory",
        "compression",
        "summarization",
        "token-budget"
      ],
      "bodyFile": "improve-compress-verbose-memory.md"
    },
    {
      "id": "skill_def_improve-consolidate-duplicate-dependency-versions",
      "name": "Consolidate Duplicate Transitive Dependency Versions",
      "description": "Collapses multiple installed versions of the same transitive package down to a single compatible version using overrides or resolutions, reducing bloat and version-skew bugs.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "dependencies",
        "deduplication",
        "transitive",
        "lockfile",
        "overrides"
      ],
      "bodyFile": "improve-consolidate-duplicate-dependency-versions.md"
    },
    {
      "id": "skill_def_improve-consolidate-duplicate-utilities",
      "name": "Merge Duplicated Utility Functions Into a Shared Module",
      "description": "Finds near-identical helper functions copy-pasted across the codebase and consolidates them into one shared, well-named implementation, removing drift between copies.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "dry",
        "refactor",
        "utilities",
        "deduplication",
        "maintainability"
      ],
      "bodyFile": "improve-consolidate-duplicate-utilities.md"
    },
    {
      "id": "skill_def_improve-context-window-budgeter",
      "name": "Audit And Rebalance Context Window Budget",
      "description": "Measures what consumes the context window per turn and rebalances allocation toward high-value content; use when the agent runs out of context or pays for low-value tokens.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "feedback-loop",
        "context-window",
        "token-budget",
        "optimization"
      ],
      "bodyFile": "improve-context-window-budgeter.md"
    },
    {
      "id": "skill_def_improve-decay-stale-memory",
      "name": "Decay And Archive Stale Memory",
      "description": "Demotes or archives memory entries that have not been retrieved or confirmed within a configurable window; use to keep working memory lean without permanently discarding history.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "memory",
        "decay",
        "archival",
        "retention"
      ],
      "bodyFile": "improve-decay-stale-memory.md"
    },
    {
      "id": "skill_def_improve-dedupe-agent-memory",
      "name": "Deduplicate Overlapping Memory Entries",
      "description": "Collapses semantically duplicate or contradictory long-term memory notes into a single canonical entry; use when the memory store has grown with redundant or stale facts about the same topic.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "memory",
        "deduplication",
        "curation",
        "embeddings"
      ],
      "bodyFile": "improve-dedupe-agent-memory.md"
    },
    {
      "id": "skill_def_improve-deduplicate-config-files",
      "name": "Merge Redundant and Conflicting Config Files",
      "description": "Consolidates overlapping tool configs (e.g. multiple lint/format/test configs) into a single canonical source, removing contradictory settings that cause inconsistent behavior.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "config",
        "deduplication",
        "tooling",
        "consistency",
        "cleanup"
      ],
      "bodyFile": "improve-deduplicate-config-files.md"
    },
    {
      "id": "skill_def_improve-document-dependency-rationale",
      "name": "Annotate Non-Obvious Dependencies and Version Pins",
      "description": "Adds concise inline comments to dependencies that are pinned, overridden, or non-obvious, recording why each choice exists so future maintainers don't undo it by accident.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "dependencies",
        "documentation",
        "manifest",
        "maintainability",
        "rationale"
      ],
      "bodyFile": "improve-document-dependency-rationale.md"
    },
    {
      "id": "skill_def_improve-extract-hardcoded-config",
      "name": "Extract Hardcoded Config Into Environment-Driven Settings",
      "description": "Finds literal hostnames, ports, paths, and toggles scattered in source and lifts them into a single typed config layer backed by environment variables with sane defaults.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "config",
        "environment",
        "twelve-factor",
        "constants",
        "refactor"
      ],
      "bodyFile": "improve-extract-hardcoded-config.md"
    },
    {
      "id": "skill_def_improve-extract-memory-from-transcript",
      "name": "Extract Durable Memory From Session Transcript",
      "description": "Mines a completed conversation transcript for facts, decisions, and preferences worth persisting; use at session end to capture learnings before context is lost.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "memory",
        "extraction",
        "transcript",
        "curation"
      ],
      "bodyFile": "improve-extract-memory-from-transcript.md"
    },
    {
      "id": "skill_def_improve-feedback-loop-from-thumbs",
      "name": "Convert User Feedback Signals Into Improvement Tasks",
      "description": "Aggregates thumbs-up/down and correction signals into prioritized, actionable improvement tasks; use to turn raw feedback into a concrete backlog.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "feedback-loop",
        "prioritization",
        "signals",
        "backlog"
      ],
      "bodyFile": "improve-feedback-loop-from-thumbs.md"
    },
    {
      "id": "skill_def_improve-llm-judge-rubric",
      "name": "Calibrate An LLM-Judge Scoring Rubric",
      "description": "Designs and calibrates an automated judge rubric so scores correlate with human judgment; use when you need scalable evaluation but raw LLM scoring is noisy.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "evaluation",
        "llm-judge",
        "rubric",
        "calibration"
      ],
      "bodyFile": "improve-llm-judge-rubric.md"
    },
    {
      "id": "skill_def_improve-memory-promote-from-feedback",
      "name": "Update Memory From Confirmed Corrections",
      "description": "Writes durable memory entries when a user explicitly corrects the agent, so the same mistake is not repeated; use immediately after a confirmed correction.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "memory",
        "feedback-loop",
        "corrections",
        "learning"
      ],
      "bodyFile": "improve-memory-promote-from-feedback.md"
    },
    {
      "id": "skill_def_improve-normalize-editorconfig",
      "name": "Establish and Enforce a Repository EditorConfig",
      "description": "Creates or repairs a root .editorconfig capturing the project's real indentation, charset, and line-ending conventions so every editor formats consistently.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "editorconfig",
        "formatting",
        "consistency",
        "whitespace",
        "tooling"
      ],
      "bodyFile": "improve-normalize-editorconfig.md"
    },
    {
      "id": "skill_def_improve-normalize-line-endings",
      "name": "Normalize Inconsistent Line Endings and Enforce via Gitattributes",
      "description": "Detects mixed CRLF/LF line endings across the repo, normalizes them to one convention, and adds a .gitattributes policy so the inconsistency cannot recur.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "line-endings",
        "gitattributes",
        "whitespace",
        "consistency",
        "cross-platform"
      ],
      "bodyFile": "improve-normalize-line-endings.md"
    },
    {
      "id": "skill_def_improve-organize-directory-structure",
      "name": "Reorganize Misplaced Files Into Conventional Directories",
      "description": "Moves files that violate the project's directory conventions into their proper homes and updates imports, restoring a predictable structure without changing behavior.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "structure",
        "organization",
        "refactor",
        "conventions",
        "imports"
      ],
      "bodyFile": "improve-organize-directory-structure.md"
    },
    {
      "id": "skill_def_improve-pin-dependency-versions",
      "name": "Pin Floating Dependency Versions to Lockfile-Backed Ranges",
      "description": "Replaces loose or wildcard version specifiers in a manifest with explicit, reproducible ranges anchored to the current lockfile, so builds stop drifting between machines and CI.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "dependencies",
        "reproducibility",
        "lockfile",
        "manifest",
        "versioning"
      ],
      "bodyFile": "improve-pin-dependency-versions.md"
    },
    {
      "id": "skill_def_improve-promote-episodic-to-semantic",
      "name": "Promote Episodic Notes To Semantic Facts",
      "description": "Distills repeated episodic observations from individual sessions into durable generalized rules; use when the agent keeps re-learning the same lesson across separate conversations.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "memory",
        "generalization",
        "episodic",
        "semantic"
      ],
      "bodyFile": "improve-promote-episodic-to-semantic.md"
    },
    {
      "id": "skill_def_improve-prompt-ab-test",
      "name": "A/B Test Two Prompt Variants",
      "description": "Runs a controlled comparison of two system or task prompts against a fixed eval set and reports which wins; use when you suspect a prompt rewrite could improve quality but need evidence.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "prompt-optimization",
        "ab-testing",
        "evaluation",
        "metrics"
      ],
      "bodyFile": "improve-prompt-ab-test.md"
    },
    {
      "id": "skill_def_improve-prompt-add-failure-examples",
      "name": "Add Few-Shot Examples From Real Failures",
      "description": "Mines logged failure cases and converts them into targeted few-shot examples that patch the prompt's weak spots; use when the agent repeatedly mishandles a known input class.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "prompt-optimization",
        "few-shot",
        "failure-analysis",
        "examples"
      ],
      "bodyFile": "improve-prompt-add-failure-examples.md"
    },
    {
      "id": "skill_def_improve-prompt-detect-conflicts",
      "name": "Detect And Resolve Conflicting Prompt Instructions",
      "description": "Finds instructions within a prompt that contradict each other and reconciles them into a single coherent directive; use when the agent behaves erratically due to competing rules.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "prompt-optimization",
        "conflict-resolution",
        "consistency",
        "audit"
      ],
      "bodyFile": "improve-prompt-detect-conflicts.md"
    },
    {
      "id": "skill_def_improve-prompt-extract-system-rules",
      "name": "Extract Implicit Rules Into Explicit Prompt Instructions",
      "description": "Surfaces behaviors the agent only gets right by luck and codifies them as explicit prompt rules; use when desired behavior is inconsistent because it was never stated.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "prompt-optimization",
        "instructions",
        "consistency",
        "specification"
      ],
      "bodyFile": "improve-prompt-extract-system-rules.md"
    },
    {
      "id": "skill_def_improve-prompt-shrink-tokens",
      "name": "Shrink A Prompt Without Losing Behavior",
      "description": "Reduces the token count of a system or task prompt while preserving its behavioral effect, verified against an eval set; use when a prompt is bloated and costs add up.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "prompt-optimization",
        "token-budget",
        "compression",
        "evaluation"
      ],
      "bodyFile": "improve-prompt-shrink-tokens.md"
    },
    {
      "id": "skill_def_improve-prune-stale-feature-flags",
      "name": "Remove Stale and Fully-Rolled-Out Feature Flags",
      "description": "Identifies feature flags that are permanently on or dead, then deletes the flag and inlines the surviving branch, cutting conditional complexity and config bloat.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "feature-flags",
        "dead-code",
        "cleanup",
        "config",
        "refactor"
      ],
      "bodyFile": "improve-prune-stale-feature-flags.md"
    },
    {
      "id": "skill_def_improve-prune-unused-dependencies",
      "name": "Detect and Remove Unused Project Dependencies",
      "description": "Finds declared dependencies that are never imported or referenced in source and removes them from the manifest and lockfile, shrinking install size and attack surface.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "dependencies",
        "dead-code",
        "manifest",
        "cleanup",
        "bundle-size"
      ],
      "bodyFile": "improve-prune-unused-dependencies.md"
    },
    {
      "id": "skill_def_improve-rca-from-failed-runs",
      "name": "Root-Cause Cluster Of Failed Agent Runs",
      "description": "Performs structured root-cause analysis on a cluster of failed runs to find the single underlying defect; use when many failures may share one fixable cause.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "feedback-loop",
        "root-cause",
        "failure-analysis",
        "debugging"
      ],
      "bodyFile": "improve-rca-from-failed-runs.md"
    },
    {
      "id": "skill_def_improve-resolve-memory-conflicts",
      "name": "Resolve Contradictory Memory Claims",
      "description": "Detects and reconciles memory entries that assert conflicting facts about the same subject; use when retrieval surfaces mutually exclusive statements that confuse downstream reasoning.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "memory",
        "conflict-resolution",
        "consistency",
        "provenance"
      ],
      "bodyFile": "improve-resolve-memory-conflicts.md"
    },
    {
      "id": "skill_def_improve-rotate-and-externalize-secrets",
      "name": "Move Inline Secrets to a Secret Store Reference",
      "description": "Finds credentials, tokens, and keys committed inline in config or source and replaces them with references to environment/secret-store lookups, flagging exposed values for rotation.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "secrets",
        "config",
        "security-hygiene",
        "environment",
        "cleanup"
      ],
      "bodyFile": "improve-rotate-and-externalize-secrets.md"
    },
    {
      "id": "skill_def_improve-self-critique-reflexion",
      "name": "Self-Critique And Revise Last Output",
      "description": "Has the agent critique its own most recent output against task criteria and produce a revised version; use as a final-pass quality lift before delivering results.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "feedback-loop",
        "self-critique",
        "reflexion",
        "quality"
      ],
      "bodyFile": "improve-self-critique-reflexion.md"
    },
    {
      "id": "skill_def_improve-skill-detect-drift",
      "name": "Detect Skill Drift Against Its Eval Set",
      "description": "Runs a skill against its locked eval set on a schedule to catch silent behavior drift from model or dependency changes; use to keep skills trustworthy over time.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "skill-update",
        "drift-detection",
        "evaluation",
        "monitoring"
      ],
      "bodyFile": "improve-skill-detect-drift.md"
    },
    {
      "id": "skill_def_improve-skill-merge-duplicates",
      "name": "Merge Near-Duplicate Skills",
      "description": "Consolidates two or more skills that cover overlapping capability into one well-scoped skill; use when the catalog has redundant entries that confuse selection.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "skill-update",
        "deduplication",
        "catalog",
        "curation"
      ],
      "bodyFile": "improve-skill-merge-duplicates.md"
    },
    {
      "id": "skill_def_improve-skill-split-overloaded",
      "name": "Split An Overloaded Skill Into Focused Skills",
      "description": "Breaks a skill that tries to do too many things into several narrowly-scoped skills with distinct triggers; use when one skill has a muddy purpose and unreliable selection.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "skill-update",
        "refactor",
        "scoping",
        "catalog"
      ],
      "bodyFile": "improve-skill-split-overloaded.md"
    },
    {
      "id": "skill_def_improve-skill-trigger-precision",
      "name": "Sharpen A Skill's Trigger Conditions",
      "description": "Refines a skill's trigger description so it fires on the right inputs and not on near-misses; use when a skill is selected too eagerly or missed when it should apply.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "skill-update",
        "triggers",
        "precision",
        "selection"
      ],
      "bodyFile": "improve-skill-trigger-precision.md"
    },
    {
      "id": "skill_def_improve-skill-version-bump",
      "name": "Version And Changelog A Skill Update",
      "description": "Applies semantic versioning and a structured changelog when a skill's behavior changes so consumers can adopt updates safely; use whenever a skill is edited.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "skill-update",
        "versioning",
        "changelog",
        "compatibility"
      ],
      "bodyFile": "improve-skill-version-bump.md"
    },
    {
      "id": "skill_def_improve-stage-major-dependency-upgrade",
      "name": "Stage a Single Major Dependency Upgrade",
      "description": "Upgrades one dependency across a major version boundary in isolation, applying codemods and migration-guide changes so the breaking change is contained and reviewable.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "dependencies",
        "major-upgrade",
        "migration",
        "breaking-changes",
        "codemod"
      ],
      "bodyFile": "improve-stage-major-dependency-upgrade.md"
    },
    {
      "id": "skill_def_improve-standardize-npm-scripts",
      "name": "Standardize and Document Task Runner Scripts",
      "description": "Normalizes the project's run scripts (package.json scripts, Makefile, Taskfile) to a consistent verb-noun naming scheme with a documented standard set, so common chores are discoverable.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "scripts",
        "tooling",
        "developer-experience",
        "automation",
        "conventions"
      ],
      "bodyFile": "improve-standardize-npm-scripts.md"
    },
    {
      "id": "skill_def_improve-tag-and-index-memory",
      "name": "Retag And Reindex Memory For Retrieval",
      "description": "Assigns consistent topical tags and rebuilds the retrieval index so memory lookups return the right entries; use when recall misses obviously relevant notes.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "memory",
        "tagging",
        "indexing",
        "retrieval"
      ],
      "bodyFile": "improve-tag-and-index-memory.md"
    },
    {
      "id": "skill_def_improve-tighten-tsconfig-strictness",
      "name": "Incrementally Tighten Compiler Strictness Settings",
      "description": "Enables one additional compiler strictness flag (e.g. noUnusedLocals, strictNullChecks) and fixes the resulting errors, ratcheting type safety up without a big-bang migration.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "typescript",
        "strictness",
        "config",
        "type-safety",
        "incremental"
      ],
      "bodyFile": "improve-tighten-tsconfig-strictness.md"
    },
    {
      "id": "skill_def_improve-tool-usage-from-traces",
      "name": "Optimize Tool-Selection From Run Traces",
      "description": "Analyzes how the agent chose and sequenced tools across runs and tightens the guidance to cut wasted or wrong tool calls; use when traces show inefficient tool use.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "feedback-loop",
        "tool-use",
        "traces",
        "efficiency"
      ],
      "bodyFile": "improve-tool-usage-from-traces.md"
    },
    {
      "id": "skill_def_improve-tune-ci-cache-config",
      "name": "Add or Repair Dependency Caching in CI Config",
      "description": "Configures correct dependency and build caching in the CI pipeline with proper cache keys, cutting redundant downloads and speeding up runs without serving stale caches.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "ci",
        "caching",
        "performance",
        "config",
        "automation"
      ],
      "bodyFile": "improve-tune-ci-cache-config.md"
    },
    {
      "id": "skill_def_improve-tune-linter-config",
      "name": "Tune Linter Config to Match Enforced Conventions",
      "description": "Reconciles a linter's enabled rule set with the patterns the codebase actually follows, disabling noisy rules and enabling silently-honored ones to make lint output trustworthy.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "linting",
        "config",
        "rules",
        "noise-reduction",
        "conventions"
      ],
      "bodyFile": "improve-tune-linter-config.md"
    },
    {
      "id": "skill_def_improve-update-stale-readme-commands",
      "name": "Synchronize README Commands With Actual Project Scripts",
      "description": "Cross-checks the setup and usage commands documented in the README against the real task scripts and fixes drifted or broken instructions so onboarding actually works.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "documentation",
        "readme",
        "onboarding",
        "accuracy",
        "maintenance"
      ],
      "bodyFile": "improve-update-stale-readme-commands.md"
    },
    {
      "id": "skill_def_improve-upgrade-patch-dependencies",
      "name": "Apply Safe Patch-Level Dependency Upgrades",
      "description": "Bumps all dependencies to the latest patch release within their existing major/minor range and verifies the suite, capturing low-risk fixes without API churn.",
      "version": "1.0.0",
      "category": "Self-Improvement & Curation",
      "tags": [
        "dependencies",
        "upgrades",
        "semver",
        "patches",
        "maintenance"
      ],
      "bodyFile": "improve-upgrade-patch-dependencies.md"
    },
    {
      "id": "skill_def_memory-acronym-expander-index",
      "name": "Acronym Expander Index",
      "description": "Detects acronyms across a corpus, resolves each to its expansion from local context, and builds a reusable expansion index that flags conflicting or unknown definitions; use when jargon-heavy docs confuse readers.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "acronyms",
        "extraction",
        "glossary",
        "index",
        "disambiguation"
      ],
      "bodyFile": "memory-acronym-expander-index.md"
    },
    {
      "id": "skill_def_memory-assemble-context-within-token-budget",
      "name": "Assemble Retrieved Context Within a Token Budget",
      "description": "Packs reranked chunks into the prompt under a fixed token ceiling while maximizing relevance and source diversity, used when there are more good chunks than the context window allows.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "context-assembly",
        "token-budget",
        "rag",
        "packing",
        "retrieval"
      ],
      "bodyFile": "memory-assemble-context-within-token-budget.md"
    },
    {
      "id": "skill_def_memory-atomic-note-splitter",
      "name": "Atomic Note Splitter",
      "description": "Splits a sprawling multi-topic note or document into atomic, single-idea notes with stable IDs so each concept can be linked and retrieved independently; use when a note has grown unfocused or mixes unrelated ideas.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "notes",
        "atomic",
        "zettelkasten",
        "refactor",
        "knowledge-base"
      ],
      "bodyFile": "memory-atomic-note-splitter.md"
    },
    {
      "id": "skill_def_memory-bidirectional-link-resolver",
      "name": "Bidirectional Link Resolver",
      "description": "Scans notes for wiki-style references, resolves them to targets, repairs broken links, and generates backlink sections; use to keep a linked note graph consistent after edits or renames.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "backlinks",
        "wikilinks",
        "notes",
        "linking",
        "consistency"
      ],
      "bodyFile": "memory-bidirectional-link-resolver.md"
    },
    {
      "id": "skill_def_memory-build-hybrid-bm25-vector-retriever",
      "name": "Build a Hybrid BM25 + Vector Retriever",
      "description": "Combines lexical BM25 scoring with dense vector similarity so retrieval catches both exact-keyword and semantic matches, used when pure embedding search misses rare terms, IDs, or code symbols.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "rag",
        "hybrid-search",
        "bm25",
        "embeddings",
        "retrieval"
      ],
      "bodyFile": "memory-build-hybrid-bm25-vector-retriever.md"
    },
    {
      "id": "skill_def_memory-build-knowledge-graph-from-corpus",
      "name": "Extract an Entity-Relationship Graph for Multi-Hop Recall",
      "description": "Builds a graph of entities and relationships from the corpus so multi-hop questions can traverse links instead of relying on a single chunk, used when answers require connecting facts across documents.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "knowledge-graph",
        "multi-hop",
        "retrieval",
        "graph-rag",
        "entities"
      ],
      "bodyFile": "memory-build-knowledge-graph-from-corpus.md"
    },
    {
      "id": "skill_def_memory-build-parent-child-chunk-retrieval",
      "name": "Retrieve Small Chunks, Return Their Parent Sections",
      "description": "Indexes fine-grained child chunks for precise matching but returns the larger parent section for context, used when small chunks match well but lack surrounding detail to answer.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "parent-document",
        "chunking",
        "retrieval",
        "rag",
        "context-window"
      ],
      "bodyFile": "memory-build-parent-child-chunk-retrieval.md"
    },
    {
      "id": "skill_def_memory-cache-and-reuse-retrieval-results",
      "name": "Cache and Reuse Retrieval Results for Repeat Queries",
      "description": "Caches retrieval outputs keyed by a normalized query and index version so repeated or near-identical queries skip re-search, used to cut latency and cost on hot queries.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "caching",
        "retrieval",
        "latency",
        "efficiency",
        "rag"
      ],
      "bodyFile": "memory-cache-and-reuse-retrieval-results.md"
    },
    {
      "id": "skill_def_memory-changelog-knowledge-digest",
      "name": "Changelog Knowledge Digest",
      "description": "Aggregates commits, PRs, and release notes over a window into a themed knowledge digest with linked rationale; use to capture institutional memory of why things changed.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "changelog",
        "digest",
        "git",
        "synthesis",
        "institutional-memory"
      ],
      "bodyFile": "memory-changelog-knowledge-digest.md"
    },
    {
      "id": "skill_def_memory-chunk-documents-semantically",
      "name": "Chunk Documents Along Semantic Boundaries",
      "description": "Splits long documents into retrieval-sized chunks that respect headings, paragraphs, and code blocks instead of fixed character windows, used when ingesting source material into a vector store.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "rag",
        "chunking",
        "ingestion",
        "embeddings",
        "preprocessing"
      ],
      "bodyFile": "memory-chunk-documents-semantically.md"
    },
    {
      "id": "skill_def_memory-citation-provenance-tracker",
      "name": "Citation Provenance Tracker",
      "description": "Attaches source provenance (document, location, retrieval timestamp) to every extracted fact and validates that claims still trace to live sources; use when knowledge must remain auditable.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "provenance",
        "citations",
        "traceability",
        "audit",
        "extraction"
      ],
      "bodyFile": "memory-citation-provenance-tracker.md"
    },
    {
      "id": "skill_def_memory-concept-map-generator",
      "name": "Concept Map Generator",
      "description": "Generates a visual concept map (nodes and labeled connectors) from a body of notes, clustering related concepts and surfacing hierarchy; use to see the shape of a knowledge area at a glance.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "concept-map",
        "visualization",
        "graph",
        "clustering",
        "notes"
      ],
      "bodyFile": "memory-concept-map-generator.md"
    },
    {
      "id": "skill_def_memory-contextualize-chunks-with-document-summary",
      "name": "Prepend Document Context to Each Chunk Before Embedding",
      "description": "Augments every chunk with a short description of its place in the parent document before embedding, used to fix chunks that are uninterpretable out of context.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "contextual-retrieval",
        "chunking",
        "embeddings",
        "ingestion",
        "rag"
      ],
      "bodyFile": "memory-contextualize-chunks-with-document-summary.md"
    },
    {
      "id": "skill_def_memory-conversation-summary-compactor",
      "name": "Conversation Memory Compactor",
      "description": "Compresses a long conversation or session log into a layered memory (durable facts, recent context, discarded chatter) to fit a context budget while preserving decisions; use when a session history exceeds the window.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "summarization",
        "context-window",
        "memory",
        "compaction",
        "sessions"
      ],
      "bodyFile": "memory-conversation-summary-compactor.md"
    },
    {
      "id": "skill_def_memory-cross-reference-linker",
      "name": "Cross-Reference Auto-Linker",
      "description": "Scans notes for unlinked mentions of known entities or note titles and inserts links to the canonical target, respecting first-mention-only and code-block exclusion rules; use to densify a note graph automatically.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "linking",
        "auto-link",
        "notes",
        "entities",
        "graph"
      ],
      "bodyFile": "memory-cross-reference-linker.md"
    },
    {
      "id": "skill_def_memory-decision-record-capturer",
      "name": "Architecture Decision Record Capturer",
      "description": "Captures a decision discussion into a standard ADR (context, options considered, decision, consequences) and links it to affected components; use to preserve why an architectural choice was made.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "adr",
        "decisions",
        "documentation",
        "architecture",
        "capture"
      ],
      "bodyFile": "memory-decision-record-capturer.md"
    },
    {
      "id": "skill_def_memory-deduplicate-near-identical-chunks",
      "name": "Deduplicate Near-Identical Retrieved Chunks",
      "description": "Removes redundant chunks that say the same thing before context assembly, used when retrieval returns multiple overlapping passages that waste the token budget.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "dedup",
        "context-assembly",
        "retrieval",
        "embeddings",
        "efficiency"
      ],
      "bodyFile": "memory-deduplicate-near-identical-chunks.md"
    },
    {
      "id": "skill_def_memory-detect-and-fill-context-gaps",
      "name": "Detect Knowledge Gaps and Trigger Follow-Up Retrieval",
      "description": "Identifies when assembled context is insufficient to answer the query and issues targeted follow-up retrievals to fill the gaps, used in iterative or agentic RAG loops.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "iterative-rag",
        "retrieval",
        "gap-detection",
        "agentic",
        "recall"
      ],
      "bodyFile": "memory-detect-and-fill-context-gaps.md"
    },
    {
      "id": "skill_def_memory-diversify-results-with-mmr",
      "name": "Diversify Top Results With Maximal Marginal Relevance",
      "description": "Re-selects the final chunks to balance relevance against novelty so the context covers different facets instead of redundant top hits, used when top results are relevant but repetitive.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "mmr",
        "diversity",
        "retrieval",
        "context-assembly",
        "rag"
      ],
      "bodyFile": "memory-diversify-results-with-mmr.md"
    },
    {
      "id": "skill_def_memory-embedding-index-pipeline",
      "name": "Embedding Index Pipeline",
      "description": "Builds an incremental embedding pipeline that hashes content, skips unchanged items, embeds new/changed chunks, and upserts vectors with metadata; use when standing up or maintaining a vector store.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "embeddings",
        "vector-store",
        "incremental",
        "pipeline",
        "indexing"
      ],
      "bodyFile": "memory-embedding-index-pipeline.md"
    },
    {
      "id": "skill_def_memory-entity-resolution-merger",
      "name": "Entity Resolution And Merger",
      "description": "Reconciles multiple records that refer to the same real-world entity by blocking, scoring attribute matches, and merging into a golden record with surviving aliases; use when entity duplicates fragment a knowledge store.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "entity-resolution",
        "deduplication",
        "matching",
        "golden-record",
        "merge"
      ],
      "bodyFile": "memory-entity-resolution-merger.md"
    },
    {
      "id": "skill_def_memory-evaluate-retrieval-with-gold-set",
      "name": "Evaluate Retrieval Quality Against a Gold Set",
      "description": "Measures recall, precision, and MRR of a retriever against a labeled query-to-relevant-chunk set, used to benchmark or regression-test retrieval changes.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "evaluation",
        "retrieval",
        "metrics",
        "benchmarking",
        "rag"
      ],
      "bodyFile": "memory-evaluate-retrieval-with-gold-set.md"
    },
    {
      "id": "skill_def_memory-expand-query-with-paraphrases",
      "name": "Expand a Query With Paraphrases and Subquestions",
      "description": "Generates multiple reformulations of a user query and retrieves for each to widen recall, used when a single phrasing misses relevant chunks worded differently.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "query-expansion",
        "rag",
        "recall",
        "multi-query",
        "retrieval"
      ],
      "bodyFile": "memory-expand-query-with-paraphrases.md"
    },
    {
      "id": "skill_def_memory-extract-atomic-facts-for-memory",
      "name": "Extract Atomic Facts From Conversations Into Memory",
      "description": "Distills durable, self-contained facts from a conversation or document for long-term storage and later recall, used when building or updating an agent's persistent memory.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "memory-extraction",
        "long-term-memory",
        "facts",
        "recall",
        "ingestion"
      ],
      "bodyFile": "memory-extract-atomic-facts-for-memory.md"
    },
    {
      "id": "skill_def_memory-faq-from-threads",
      "name": "FAQ From Support Threads",
      "description": "Mines recurring questions from support or chat threads, clusters them, and synthesizes canonical question-answer entries with source links; use to turn scattered Q&A into a maintained FAQ.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "faq",
        "clustering",
        "support",
        "synthesis",
        "knowledge-base"
      ],
      "bodyFile": "memory-faq-from-threads.md"
    },
    {
      "id": "skill_def_memory-filter-retrieval-by-metadata",
      "name": "Filter Retrieval With Structured Metadata Constraints",
      "description": "Applies hard metadata filters (date, version, author, tag) alongside semantic search so only eligible chunks are considered, used when recency or scope constraints must be enforced exactly.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "metadata-filtering",
        "retrieval",
        "rag",
        "pre-filtering",
        "vector-search"
      ],
      "bodyFile": "memory-filter-retrieval-by-metadata.md"
    },
    {
      "id": "skill_def_memory-generate-hypothetical-document-embedding",
      "name": "Retrieve Using a Hypothetical Answer Embedding (HyDE)",
      "description": "Generates a hypothetical answer to the query and embeds that instead of the raw question to better match how answers are written in the corpus, used when question and document phrasing diverge sharply.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "hyde",
        "embeddings",
        "query-transformation",
        "rag",
        "recall"
      ],
      "bodyFile": "memory-generate-hypothetical-document-embedding.md"
    },
    {
      "id": "skill_def_memory-glossary-builder",
      "name": "Domain Glossary Builder",
      "description": "Mines a corpus for domain terms, extracts their first/best definitions, and assembles a deduplicated glossary with usage references; use when onboarding material lacks a shared vocabulary.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "glossary",
        "terminology",
        "definitions",
        "extraction",
        "onboarding"
      ],
      "bodyFile": "memory-glossary-builder.md"
    },
    {
      "id": "skill_def_memory-ground-answers-with-inline-citations",
      "name": "Ground Answers With Inline Citations to Sources",
      "description": "Forces each factual claim in a generated answer to carry an inline citation pointing to the retrieved chunk that supports it, used to make RAG answers verifiable and auditable.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "citation-grounding",
        "rag",
        "attribution",
        "verifiability",
        "generation"
      ],
      "bodyFile": "memory-ground-answers-with-inline-citations.md"
    },
    {
      "id": "skill_def_memory-hybrid-retrieval-indexer",
      "name": "Hybrid Retrieval Indexer",
      "description": "Builds a combined sparse (BM25) and dense (vector) index over a corpus and fuses results with reciprocal rank fusion; use when pure vector search misses exact terms or pure keyword search misses paraphrases.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "retrieval",
        "bm25",
        "vector",
        "hybrid",
        "ranking"
      ],
      "bodyFile": "memory-hybrid-retrieval-indexer.md"
    },
    {
      "id": "skill_def_memory-incremental-reindex-on-source-change",
      "name": "Incrementally Re-Index Only Changed Sources",
      "description": "Detects which source documents changed and re-embeds only those, keeping the index fresh without a full rebuild, used when the corpus updates frequently.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "indexing",
        "incremental",
        "embeddings",
        "freshness",
        "ingestion"
      ],
      "bodyFile": "memory-incremental-reindex-on-source-change.md"
    },
    {
      "id": "skill_def_memory-knowledge-graph-builder",
      "name": "Knowledge Graph Builder From Notes",
      "description": "Extracts entities and typed relationships from a corpus of notes into a triple-store-ready graph (nodes, edges, properties); use when you need to query connections across notes that flat search cannot surface.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "knowledge-graph",
        "entities",
        "triples",
        "extraction",
        "linking"
      ],
      "bodyFile": "memory-knowledge-graph-builder.md"
    },
    {
      "id": "skill_def_memory-knowledge-staleness-auditor",
      "name": "Knowledge Staleness Auditor",
      "description": "Scores notes and docs for staleness using last-edited date, source freshness, and broken references, then produces a prioritized review queue; use to keep a knowledge base from rotting.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "staleness",
        "audit",
        "maintenance",
        "freshness",
        "review-queue"
      ],
      "bodyFile": "memory-knowledge-staleness-auditor.md"
    },
    {
      "id": "skill_def_memory-meeting-notes-extractor",
      "name": "Meeting Notes Decision Extractor",
      "description": "Parses raw meeting notes or transcripts into structured decisions, action items with owners, and open questions; use to turn unstructured meeting capture into trackable knowledge.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "meetings",
        "extraction",
        "decisions",
        "action-items",
        "structuring"
      ],
      "bodyFile": "memory-meeting-notes-extractor.md"
    },
    {
      "id": "skill_def_memory-note-deduplicator",
      "name": "Near-Duplicate Note Deduplicator",
      "description": "Detects near-duplicate notes via shingling and embedding similarity, then proposes canonical merges with redirect stubs; use when a knowledge base has accumulated overlapping copies of the same idea.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "deduplication",
        "notes",
        "similarity",
        "merge",
        "cleanup"
      ],
      "bodyFile": "memory-note-deduplicator.md"
    },
    {
      "id": "skill_def_memory-note-template-applier",
      "name": "Note Template Applier",
      "description": "Detects a note's type and reshapes its content into the matching structured template (front matter plus required sections), filling what it can and flagging gaps; use to standardize an inconsistent note collection.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "templates",
        "notes",
        "standardization",
        "front-matter",
        "structuring"
      ],
      "bodyFile": "memory-note-template-applier.md"
    },
    {
      "id": "skill_def_memory-reconcile-conflicting-memories",
      "name": "Reconcile Conflicting Stored Memories",
      "description": "Detects when a new fact contradicts an existing memory and resolves the conflict by superseding, merging, or flagging, used to keep long-term memory consistent over time.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "memory-reconciliation",
        "long-term-memory",
        "conflict-resolution",
        "consistency",
        "recall"
      ],
      "bodyFile": "memory-reconcile-conflicting-memories.md"
    },
    {
      "id": "skill_def_memory-rerank-candidates-cross-encoder",
      "name": "Rerank Retrieved Candidates With a Cross-Encoder",
      "description": "Re-scores a shortlist of retrieved chunks with a cross-encoder that reads query and chunk together, used to sharpen ordering before passing context to the model.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "rag",
        "reranking",
        "cross-encoder",
        "precision",
        "retrieval"
      ],
      "bodyFile": "memory-rerank-candidates-cross-encoder.md"
    },
    {
      "id": "skill_def_memory-research-literature-synthesizer",
      "name": "Research Literature Synthesizer",
      "description": "Extracts claims, methods, and findings from a set of papers or articles into a comparison matrix and identifies agreements, contradictions, and gaps; use when consolidating a literature review.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "literature-review",
        "synthesis",
        "comparison",
        "extraction",
        "research"
      ],
      "bodyFile": "memory-research-literature-synthesizer.md"
    },
    {
      "id": "skill_def_memory-route-query-to-right-index",
      "name": "Route a Query to the Right Knowledge Index",
      "description": "Classifies an incoming query and dispatches it to the most relevant index or namespace instead of searching everything, used when the knowledge base spans multiple distinct domains.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "query-routing",
        "retrieval",
        "rag",
        "multi-index",
        "classification"
      ],
      "bodyFile": "memory-route-query-to-right-index.md"
    },
    {
      "id": "skill_def_memory-self-consistency-check-retrieved-facts",
      "name": "Cross-Check Retrieved Facts for Internal Contradictions",
      "description": "Scans the assembled context for chunks that contradict each other and surfaces the conflict before generation, used when sources disagree and the model would otherwise pick arbitrarily.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "consistency",
        "context-assembly",
        "retrieval",
        "conflict-detection",
        "rag"
      ],
      "bodyFile": "memory-self-consistency-check-retrieved-facts.md"
    },
    {
      "id": "skill_def_memory-semantic-chunker",
      "name": "Semantic Document Chunker",
      "description": "Chunks documents along semantic boundaries (headings, topic shifts) instead of fixed token windows so each chunk is self-contained for embedding; use when preparing documents for a vector index.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "chunking",
        "embeddings",
        "indexing",
        "rag",
        "preprocessing"
      ],
      "bodyFile": "memory-semantic-chunker.md"
    },
    {
      "id": "skill_def_memory-spaced-repetition-extractor",
      "name": "Spaced-Repetition Card Extractor",
      "description": "Converts study notes into atomic spaced-repetition flashcards (cloze and Q&A) with deduplication against existing decks; use when turning reference material into durable recall.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "flashcards",
        "spaced-repetition",
        "notes",
        "extraction",
        "study"
      ],
      "bodyFile": "memory-spaced-repetition-extractor.md"
    },
    {
      "id": "skill_def_memory-structured-data-extractor",
      "name": "Structured Data Extractor From Prose",
      "description": "Extracts records matching a target schema from unstructured prose (specs, emails, reports) into validated JSON rows with per-field confidence and source spans; use to populate a database from text.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "extraction",
        "schema",
        "json",
        "structuring",
        "validation"
      ],
      "bodyFile": "memory-structured-data-extractor.md"
    },
    {
      "id": "skill_def_memory-summarize-chunks-before-context",
      "name": "Compress Chunks Into Query-Focused Summaries",
      "description": "Condenses each retrieved chunk down to only the parts relevant to the query before context assembly, used to fit more sources into the budget without losing pertinent detail.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "context-compression",
        "summarization",
        "rag",
        "token-budget",
        "retrieval"
      ],
      "bodyFile": "memory-summarize-chunks-before-context.md"
    },
    {
      "id": "skill_def_memory-taxonomy-tag-normalizer",
      "name": "Taxonomy Tag Normalizer",
      "description": "Consolidates an organically grown tag set into a controlled vocabulary by clustering synonyms, mapping variants to canonical tags, and rewriting note front matter; use when tags have proliferated inconsistently.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "taxonomy",
        "tags",
        "vocabulary",
        "normalization",
        "metadata"
      ],
      "bodyFile": "memory-taxonomy-tag-normalizer.md"
    },
    {
      "id": "skill_def_memory-time-decay-recency-weighting",
      "name": "Apply Time-Decay Recency Weighting to Recall",
      "description": "Boosts recently relevant or recently accessed memories during retrieval scoring so fresh information surfaces over stale-but-similar items, used in memory systems where recency matters.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "recency",
        "memory-scoring",
        "retrieval",
        "decay",
        "ranking"
      ],
      "bodyFile": "memory-time-decay-recency-weighting.md"
    },
    {
      "id": "skill_def_memory-topic-cluster-organizer",
      "name": "Topic Cluster Organizer",
      "description": "Clusters an unsorted note pile into topics via embeddings, labels each cluster, and proposes a folder/MOC structure with placement suggestions; use to impose structure on a flat note dump.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "clustering",
        "organization",
        "notes",
        "topics",
        "structure"
      ],
      "bodyFile": "memory-topic-cluster-organizer.md"
    },
    {
      "id": "skill_def_memory-trace-answer-claims-to-evidence-spans",
      "name": "Trace Each Answer Claim to Exact Evidence Spans",
      "description": "Maps every claim in an answer to the precise character span in a source chunk that supports it, used to provide click-through highlighting and tight provenance.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "provenance",
        "citation-grounding",
        "evidence",
        "attribution",
        "rag"
      ],
      "bodyFile": "memory-trace-answer-claims-to-evidence-spans.md"
    },
    {
      "id": "skill_def_memory-verify-citations-against-sources",
      "name": "Verify Each Citation Actually Supports Its Claim",
      "description": "Checks that the chunk a citation points to genuinely entails the sentence it is attached to, used to catch hallucinated or mis-attributed citations before an answer ships.",
      "version": "1.0.0",
      "category": "Memory & Knowledge",
      "tags": [
        "citation-grounding",
        "verification",
        "entailment",
        "rag",
        "faithfulness"
      ],
      "bodyFile": "memory-verify-citations-against-sources.md"
    },
    {
      "id": "skill_def_obs-add-business-event-counters",
      "name": "Add Business Event Counters",
      "description": "Instruments domain-meaningful events (signups, checkouts, cancellations) as labeled counters distinct from technical metrics; use when product-level outcomes cannot be measured from existing telemetry.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "metrics",
        "business-metrics",
        "counters",
        "events",
        "instrumentation"
      ],
      "bodyFile": "obs-add-business-event-counters.md"
    },
    {
      "id": "skill_def_obs-add-cache-instrumentation-hit-ratio",
      "name": "Instrument Cache Hit Ratio And Latency",
      "description": "Adds counters and a latency histogram around a cache layer to expose hit/miss ratio, eviction, and lookup time; use when cache effectiveness is unknown or suspected of degrading.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "metrics",
        "cache",
        "hit-ratio",
        "histogram",
        "instrumentation"
      ],
      "bodyFile": "obs-add-cache-instrumentation-hit-ratio.md"
    },
    {
      "id": "skill_def_obs-add-deployment-version-annotations",
      "name": "Stamp Telemetry With Deployment And Version Markers",
      "description": "Tags traces, metrics, and logs with build version, commit, and deploy ID and emits a deploy marker event so regressions can be correlated to releases; use when you cannot tell which release caused a change.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "metrics",
        "tracing",
        "versioning",
        "deploys",
        "instrumentation"
      ],
      "bodyFile": "obs-add-deployment-version-annotations.md"
    },
    {
      "id": "skill_def_obs-add-frontend-error-and-trace-instrumentation",
      "name": "Instrument Frontend Errors And Distributed Traces",
      "description": "Captures unhandled browser errors and fetch/XHR spans and links them into backend traces via propagated headers; use when client-side failures and frontend-to-backend latency are untraced.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "rum",
        "tracing",
        "frontend",
        "errors",
        "instrumentation"
      ],
      "bodyFile": "obs-add-frontend-error-and-trace-instrumentation.md"
    },
    {
      "id": "skill_def_obs-add-red-metrics-service-endpoints",
      "name": "Add RED Metrics To Service Endpoints",
      "description": "Instruments service endpoints with Rate, Errors, and Duration metrics using a histogram and counters with consistent labels; use when a service lacks request-level golden-signal metrics.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "metrics",
        "red-method",
        "histogram",
        "prometheus",
        "instrumentation"
      ],
      "bodyFile": "obs-add-red-metrics-service-endpoints.md"
    },
    {
      "id": "skill_def_obs-add-span-events-for-key-checkpoints",
      "name": "Add Span Events For In-Request Checkpoints",
      "description": "Annotates long spans with timestamped span events at meaningful checkpoints (validation done, lock acquired, batch flushed); use when a single span is slow but its internal phases are opaque.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "tracing",
        "span-events",
        "checkpoints",
        "latency",
        "instrumentation"
      ],
      "bodyFile": "obs-add-span-events-for-key-checkpoints.md"
    },
    {
      "id": "skill_def_obs-analyze-error-budget-policy-decision",
      "name": "Apply an Error-Budget Policy Decision",
      "description": "Evaluates current error-budget status against a policy to recommend a concrete action such as a feature freeze, reliability sprint, or normal operation; use during sprint planning or after budget alerts.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "error-budget",
        "policy",
        "reliability",
        "planning",
        "slo"
      ],
      "bodyFile": "obs-analyze-error-budget-policy-decision.md"
    },
    {
      "id": "skill_def_obs-audit-alert-runbook-coverage",
      "name": "Audit Alert-to-Runbook Coverage",
      "description": "Inventories all alert rules and flags those missing runbook links, severities, owners, or descriptions so every page is actionable; use before an on-call rotation or reliability review.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "alerting",
        "runbooks",
        "governance",
        "metadata",
        "audit"
      ],
      "bodyFile": "obs-audit-alert-runbook-coverage.md"
    },
    {
      "id": "skill_def_obs-build-deploy-correlation-annotations",
      "name": "Add Deploy and Change Annotations to Dashboards",
      "description": "Wires deployment, config-change, and feature-flag events as vertical annotations on time-series panels so regressions line up with their cause; use when you cannot tell whether a metric shift followed a release.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "dashboards",
        "annotations",
        "deploys",
        "change-correlation",
        "grafana"
      ],
      "bodyFile": "obs-build-deploy-correlation-annotations.md"
    },
    {
      "id": "skill_def_obs-build-error-budget-tracker",
      "name": "Build Error-Budget Consumption Tracker",
      "description": "Creates recording rules and a tracking panel that report remaining error budget and projected exhaustion date for an SLO; use when teams need ongoing visibility into how fast they are spending budget.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "error-budget",
        "slo",
        "recording-rules",
        "reliability",
        "dashboards"
      ],
      "bodyFile": "obs-build-error-budget-tracker.md"
    },
    {
      "id": "skill_def_obs-build-multi-service-dependency-dashboard",
      "name": "Build a Service-Dependency Health Dashboard",
      "description": "Creates a dashboard showing the health of a service's upstream and downstream dependencies with per-edge error and latency panels; use when failures cascade across services and you need to see the call graph at a glance.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "dashboards",
        "dependencies",
        "service-map",
        "latency",
        "errors"
      ],
      "bodyFile": "obs-build-multi-service-dependency-dashboard.md"
    },
    {
      "id": "skill_def_obs-build-on-call-handoff-dashboard",
      "name": "Build an On-Call Handoff Health Dashboard",
      "description": "Assembles a single overview dashboard summarizing active alerts, SLO budgets, recent deploys, and top errors for shift handoff; use to give the incoming on-call a fast situational read.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "dashboards",
        "on-call",
        "overview",
        "handoff",
        "triage"
      ],
      "bodyFile": "obs-build-on-call-handoff-dashboard.md"
    },
    {
      "id": "skill_def_obs-build-trace-sampling-strategy",
      "name": "Build a Tail-Based Trace Sampling Strategy",
      "description": "Designs a sampling policy that keeps all error and slow traces while down-sampling normal ones to control trace cost without losing diagnostic value; use when trace volume or cost is too high.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "tracing",
        "sampling",
        "cost",
        "tail-sampling",
        "collector"
      ],
      "bodyFile": "obs-build-trace-sampling-strategy.md"
    },
    {
      "id": "skill_def_obs-configure-alert-routing-and-grouping",
      "name": "Configure Alert Routing and Grouping",
      "description": "Designs an Alertmanager routing tree that groups, throttles, and routes alerts to the right team and channel by severity and labels; use when alerts go to the wrong place or arrive as a flood.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "alertmanager",
        "routing",
        "grouping",
        "on-call",
        "escalation"
      ],
      "bodyFile": "obs-configure-alert-routing-and-grouping.md"
    },
    {
      "id": "skill_def_obs-configure-otel-collector-pipeline",
      "name": "Configure An OpenTelemetry Collector Pipeline",
      "description": "Authors a Collector config with receivers, processors (batch, memory_limiter, resource), and exporters to centralize telemetry routing; use when apps export directly to vendors with no central control point.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "opentelemetry",
        "collector",
        "pipeline",
        "exporters",
        "instrumentation"
      ],
      "bodyFile": "obs-configure-otel-collector-pipeline.md"
    },
    {
      "id": "skill_def_obs-convert-printf-logs-to-structured",
      "name": "Convert Printf Logging To Structured Fields",
      "description": "Rewrites free-text log statements into structured key-value events with stable field names so logs are queryable; use when logs are string-concatenated and hard to filter in a log backend.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "logging",
        "structured-logs",
        "json",
        "fields",
        "instrumentation"
      ],
      "bodyFile": "obs-convert-printf-logs-to-structured.md"
    },
    {
      "id": "skill_def_obs-correlate-logs-with-trace-ids",
      "name": "Correlate Logs With Trace And Span IDs",
      "description": "Injects the active trace_id and span_id into every structured log record so logs jump to traces in the backend; use when logs and traces exist but cannot be cross-navigated.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "logging",
        "tracing",
        "correlation",
        "trace-id",
        "instrumentation"
      ],
      "bodyFile": "obs-correlate-logs-with-trace-ids.md"
    },
    {
      "id": "skill_def_obs-correlate-trace-spans-to-latency",
      "name": "Correlate Trace Spans to a Latency Regression",
      "description": "Uses distributed traces to find which span or downstream dependency drives a p99 latency regression; use when a service's tail latency rose but the cause is not obvious from metrics alone.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "tracing",
        "latency",
        "spans",
        "p99",
        "root-cause"
      ],
      "bodyFile": "obs-correlate-trace-spans-to-latency.md"
    },
    {
      "id": "skill_def_obs-create-log-based-metric-and-alert",
      "name": "Create a Log-Based Metric and Alert",
      "description": "Extracts a numeric or count metric from unstructured logs and builds an alert on it when no native metric exists; use when the only signal for a condition lives in log lines.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "log-analysis",
        "metrics",
        "alerting",
        "extraction",
        "pipeline"
      ],
      "bodyFile": "obs-create-log-based-metric-and-alert.md"
    },
    {
      "id": "skill_def_obs-create-synthetic-uptime-check",
      "name": "Create a Synthetic Uptime and Journey Check",
      "description": "Defines a synthetic probe that exercises a critical user journey end-to-end and alerts on availability or latency breaches; use when you need to detect outages before real users report them.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "synthetic",
        "uptime",
        "blackbox",
        "probes",
        "alerting"
      ],
      "bodyFile": "obs-create-synthetic-uptime-check.md"
    },
    {
      "id": "skill_def_obs-define-exemplars-linking-metrics-to-traces",
      "name": "Attach Exemplars Linking Metrics To Traces",
      "description": "Enables exemplars on latency histograms so a spiking metric data point links directly to a representative trace; use when dashboards show a latency spike but offer no path to a concrete trace.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "metrics",
        "exemplars",
        "tracing",
        "histogram",
        "instrumentation"
      ],
      "bodyFile": "obs-define-exemplars-linking-metrics-to-traces.md"
    },
    {
      "id": "skill_def_obs-define-otel-resource-attributes",
      "name": "Define OpenTelemetry Resource Attributes",
      "description": "Configures a shared OTel Resource with service name, version, environment, and instance identity so all telemetry is attributable; use when signals arrive with missing or inconsistent service identity.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "opentelemetry",
        "resource",
        "service-name",
        "metadata",
        "instrumentation"
      ],
      "bodyFile": "obs-define-otel-resource-attributes.md"
    },
    {
      "id": "skill_def_obs-define-slo-burn-rate-alerts",
      "name": "Define Multi-Window SLO Burn-Rate Alerts",
      "description": "Generates multi-window, multi-burn-rate alert rules from an SLO target so you page only on fast budget exhaustion and ticket on slow drift; use when standing up SLO-based alerting for a service.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "slo",
        "alerting",
        "error-budget",
        "burn-rate",
        "prometheus"
      ],
      "bodyFile": "obs-define-slo-burn-rate-alerts.md"
    },
    {
      "id": "skill_def_obs-derive-sli-from-request-logs",
      "name": "Derive an SLI from Request Logs or Metrics",
      "description": "Defines a precise good-events/total-events SLI specification for a service, including event definition and exclusions; use before setting any SLO when the SLI is undefined or ambiguous.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "sli",
        "slo",
        "definition",
        "availability",
        "measurement"
      ],
      "bodyFile": "obs-derive-sli-from-request-logs.md"
    },
    {
      "id": "skill_def_obs-design-multiwindow-anomaly-alert",
      "name": "Design a Statistical Anomaly Alert for Seasonal Metrics",
      "description": "Builds an alert that compares a metric to its own historical baseline (week-over-week) instead of a static threshold; use for metrics with daily or weekly seasonality where fixed thresholds fail.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "anomaly",
        "seasonality",
        "alerting",
        "baseline",
        "traffic"
      ],
      "bodyFile": "obs-design-multiwindow-anomaly-alert.md"
    },
    {
      "id": "skill_def_obs-design-service-golden-signals-dashboard",
      "name": "Design a Golden-Signals Service Dashboard",
      "description": "Lays out a standardized dashboard covering latency, traffic, errors, and saturation for a single service; use when onboarding a new service or normalizing inconsistent per-service dashboards.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "dashboards",
        "golden-signals",
        "latency",
        "saturation",
        "grafana"
      ],
      "bodyFile": "obs-design-service-golden-signals-dashboard.md"
    },
    {
      "id": "skill_def_obs-detect-cardinality-explosion",
      "name": "Detect and Fix a Metric Cardinality Explosion",
      "description": "Finds the labels driving runaway time-series cardinality and proposes drops or aggregations to control storage and query cost; use when the metrics backend slows down or ingestion cost spikes.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "cardinality",
        "metrics",
        "cost",
        "labels",
        "performance"
      ],
      "bodyFile": "obs-detect-cardinality-explosion.md"
    },
    {
      "id": "skill_def_obs-establish-metric-naming-and-unit-conventions",
      "name": "Establish Metric Naming And Unit Conventions",
      "description": "Audits and normalizes metric names, units, and label keys to a documented convention (OTel/Prometheus) across a service; use when metrics are inconsistently named and hard to discover.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "metrics",
        "naming",
        "conventions",
        "units",
        "instrumentation"
      ],
      "bodyFile": "obs-establish-metric-naming-and-unit-conventions.md"
    },
    {
      "id": "skill_def_obs-expose-runtime-and-process-metrics",
      "name": "Expose Runtime And Process Metrics",
      "description": "Enables collection of process and runtime internals (heap, GC, goroutines/threads, CPU, file descriptors) as metrics; use when a service is opaque about its own resource health.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "metrics",
        "runtime",
        "gc",
        "process",
        "instrumentation"
      ],
      "bodyFile": "obs-expose-runtime-and-process-metrics.md"
    },
    {
      "id": "skill_def_obs-instrument-background-jobs-and-queues",
      "name": "Instrument Background Jobs And Queue Consumers",
      "description": "Adds spans and metrics to async workers covering enqueue, dequeue, processing duration, and retries with queue-depth visibility; use when background processing is a telemetry blind spot.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "tracing",
        "metrics",
        "queues",
        "workers",
        "instrumentation"
      ],
      "bodyFile": "obs-instrument-background-jobs-and-queues.md"
    },
    {
      "id": "skill_def_obs-instrument-db-queries-with-spans",
      "name": "Instrument Database Queries With Client Spans",
      "description": "Wraps database calls in OTel client spans carrying db.system, operation, and sanitized statement attributes so slow queries surface in traces; use when DB latency is invisible in distributed traces.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "tracing",
        "database",
        "client-spans",
        "sql",
        "instrumentation"
      ],
      "bodyFile": "obs-instrument-db-queries-with-spans.md"
    },
    {
      "id": "skill_def_obs-instrument-external-api-dependency-calls",
      "name": "Instrument External Dependency Calls",
      "description": "Wraps calls to third-party APIs in client spans plus availability and latency metrics labeled by dependency, including timeout and retry signals; use when outages blamed on vendors lack supporting data.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "tracing",
        "metrics",
        "dependencies",
        "third-party",
        "instrumentation"
      ],
      "bodyFile": "obs-instrument-external-api-dependency-calls.md"
    },
    {
      "id": "skill_def_obs-instrument-feature-flag-evaluations",
      "name": "Instrument Feature Flag Evaluations",
      "description": "Records each feature-flag evaluation as a metric and span attribute capturing flag key, variant, and reason; use when you cannot tell which flag variant a user received during an incident.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "metrics",
        "feature-flags",
        "spans",
        "attributes",
        "instrumentation"
      ],
      "bodyFile": "obs-instrument-feature-flag-evaluations.md"
    },
    {
      "id": "skill_def_obs-instrument-frontend-rum-web-vitals",
      "name": "Instrument Frontend RUM With Web Vitals",
      "description": "Adds real-user-monitoring to a web frontend capturing Core Web Vitals (LCP, INP, CLS) and page metadata, reported to a backend; use when only synthetic or no client-side performance data exists.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "rum",
        "web-vitals",
        "frontend",
        "performance",
        "instrumentation"
      ],
      "bodyFile": "obs-instrument-frontend-rum-web-vitals.md"
    },
    {
      "id": "skill_def_obs-instrument-graphql-resolvers",
      "name": "Instrument GraphQL Resolvers And Operations",
      "description": "Adds operation-level and resolver-level spans plus per-field latency and error metrics to a GraphQL server; use when a single GraphQL endpoint hides which fields are slow or failing.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "tracing",
        "metrics",
        "graphql",
        "resolvers",
        "instrumentation"
      ],
      "bodyFile": "obs-instrument-graphql-resolvers.md"
    },
    {
      "id": "skill_def_obs-instrument-grpc-services-with-otel",
      "name": "Instrument gRPC Services And Clients",
      "description": "Adds OTel interceptors to gRPC servers and clients producing spans with rpc.system and grpc.status_code attributes and propagating context over metadata; use when gRPC calls are missing from traces.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "tracing",
        "grpc",
        "interceptors",
        "rpc",
        "instrumentation"
      ],
      "bodyFile": "obs-instrument-grpc-services-with-otel.md"
    },
    {
      "id": "skill_def_obs-instrument-http-handler-otel-spans",
      "name": "Instrument HTTP Handlers With OpenTelemetry Spans",
      "description": "Wraps inbound HTTP route handlers in OpenTelemetry server spans with standard semantic attributes so each request is traced end to end; use when an HTTP service has no distributed tracing on its endpoints.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "opentelemetry",
        "tracing",
        "http",
        "spans",
        "instrumentation"
      ],
      "bodyFile": "obs-instrument-http-handler-otel-spans.md"
    },
    {
      "id": "skill_def_obs-instrument-red-metrics-for-endpoint",
      "name": "Instrument RED Metrics for an Uninstrumented Endpoint",
      "description": "Adds rate, errors, and duration instrumentation to a service endpoint that currently emits no metrics; use when an endpoint is a blind spot during incidents.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "instrumentation",
        "red-metrics",
        "metrics",
        "middleware",
        "latency"
      ],
      "bodyFile": "obs-instrument-red-metrics-for-endpoint.md"
    },
    {
      "id": "skill_def_obs-instrument-startup-and-readiness-probes",
      "name": "Instrument Startup, Liveness, And Readiness Signals",
      "description": "Adds metrics and structured logs for process startup duration, dependency readiness checks, and probe outcomes; use when slow or flapping deployments lack visibility into boot and readiness.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "metrics",
        "logging",
        "readiness",
        "startup",
        "instrumentation"
      ],
      "bodyFile": "obs-instrument-startup-and-readiness-probes.md"
    },
    {
      "id": "skill_def_obs-investigate-trace-error-propagation",
      "name": "Investigate Error Propagation Across a Trace",
      "description": "Walks a failed distributed trace to find the originating error span and how the failure propagated upstream; use when an error surfaces at the edge but originates deep in the call graph.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "tracing",
        "errors",
        "root-cause",
        "propagation",
        "distributed"
      ],
      "bodyFile": "obs-investigate-trace-error-propagation.md"
    },
    {
      "id": "skill_def_obs-postincident-detection-gap-analysis",
      "name": "Run a Post-Incident Detection-Gap Analysis",
      "description": "Reconstructs an incident timeline to measure detection latency and identify what alert or dashboard was missing, then proposes the specific new signal; use during a postmortem to close monitoring gaps.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "postmortem",
        "detection",
        "mttr",
        "alerting",
        "gap-analysis"
      ],
      "bodyFile": "obs-postincident-detection-gap-analysis.md"
    },
    {
      "id": "skill_def_obs-propagate-trace-context-outbound-clients",
      "name": "Propagate Trace Context Across Outbound Clients",
      "description": "Injects W3C trace-context headers into outbound HTTP, gRPC, and message-queue calls so traces stay connected across service boundaries; use when traces break into disconnected fragments at network hops.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "tracing",
        "context-propagation",
        "w3c",
        "distributed",
        "instrumentation"
      ],
      "bodyFile": "obs-propagate-trace-context-outbound-clients.md"
    },
    {
      "id": "skill_def_obs-reduce-alert-fatigue-with-grouping",
      "name": "Reduce Alert Fatigue by Deduplicating Symptom Alerts",
      "description": "Consolidates many symptom-level alerts into fewer cause-level alerts using inhibition and dependency suppression; use when one incident produces a storm of redundant pages.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "alerting",
        "deduplication",
        "inhibition",
        "fatigue",
        "incidents"
      ],
      "bodyFile": "obs-reduce-alert-fatigue-with-grouping.md"
    },
    {
      "id": "skill_def_obs-set-capacity-saturation-alerts",
      "name": "Set Capacity and Saturation Forecast Alerts",
      "description": "Creates alerts that fire on predicted resource exhaustion (disk, connections, quota) using linear projection rather than only on current usage; use to get ahead of capacity incidents.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "saturation",
        "capacity",
        "forecasting",
        "alerting",
        "disk"
      ],
      "bodyFile": "obs-set-capacity-saturation-alerts.md"
    },
    {
      "id": "skill_def_obs-triage-noisy-flapping-alert",
      "name": "Triage a Noisy or Flapping Alert",
      "description": "Diagnoses why an alert fires repeatedly or oscillates and proposes a targeted fix (hysteresis, for-duration, threshold, or aggregation); use when an alert generates pager fatigue without real incidents.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "alerting",
        "flapping",
        "pager-fatigue",
        "tuning",
        "triage"
      ],
      "bodyFile": "obs-triage-noisy-flapping-alert.md"
    },
    {
      "id": "skill_def_obs-tune-histogram-buckets-for-latency",
      "name": "Tune Histogram Buckets for Accurate Latency Quantiles",
      "description": "Adjusts metric histogram bucket boundaries so p95/p99 quantiles are accurate around your SLO threshold; use when latency percentiles look quantized, flat, or implausible.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "histograms",
        "latency",
        "quantiles",
        "metrics",
        "slo"
      ],
      "bodyFile": "obs-tune-histogram-buckets-for-latency.md"
    },
    {
      "id": "skill_def_obs-tune-trace-sampling-strategy",
      "name": "Tune Trace Sampling Strategy",
      "description": "Configures head- or tail-based sampling to retain error and slow traces while reducing volume and cost; use when trace volume is too high or when interesting traces are being dropped.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "tracing",
        "sampling",
        "tail-sampling",
        "cost",
        "instrumentation"
      ],
      "bodyFile": "obs-tune-trace-sampling-strategy.md"
    },
    {
      "id": "skill_def_obs-validate-alert-rules-in-ci",
      "name": "Validate Alert and Recording Rules in CI",
      "description": "Sets up automated tests that assert alert rules fire (and don't) against synthetic time-series fixtures before merge; use to stop broken or never-firing alert rules from reaching production.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "alerting",
        "testing",
        "ci",
        "promtool",
        "validation"
      ],
      "bodyFile": "obs-validate-alert-rules-in-ci.md"
    },
    {
      "id": "skill_def_obs-write-log-anomaly-detection-query",
      "name": "Write a Log Anomaly-Detection Query",
      "description": "Builds a log query that surfaces newly-appearing or spiking error signatures by grouping on normalized message templates; use when you suspect a new failure mode hidden in high-volume logs.",
      "version": "1.0.0",
      "category": "Observability & Monitoring",
      "tags": [
        "log-analysis",
        "anomaly",
        "grouping",
        "loki",
        "elasticsearch"
      ],
      "bodyFile": "obs-write-log-anomaly-detection-query.md"
    },
    {
      "id": "skill_def_perf-add-cache-invalidation-strategy",
      "name": "Design a Correct Cache Invalidation Strategy",
      "description": "Adds explicit invalidation (write-through, event-driven, or versioned keys) to an existing cache; use when stale cached data is being served after writes.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "caching",
        "invalidation",
        "consistency",
        "correctness"
      ],
      "bodyFile": "perf-add-cache-invalidation-strategy.md"
    },
    {
      "id": "skill_def_perf-add-connection-pooling",
      "name": "Introduce or Tune a Connection Pool",
      "description": "Adds or right-sizes a database/HTTP connection pool to remove per-request connection setup cost; use when latency spikes correlate with connection churn or pool exhaustion.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "io",
        "connection-pool",
        "database",
        "throughput"
      ],
      "bodyFile": "perf-add-connection-pooling.md"
    },
    {
      "id": "skill_def_perf-add-http-response-caching",
      "name": "Add HTTP Caching Headers and a CDN Edge Cache",
      "description": "Adds correct Cache-Control/ETag headers and CDN edge caching to cacheable HTTP responses; use when repeated identical requests hit the origin unnecessarily.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "caching",
        "http",
        "cdn",
        "latency"
      ],
      "bodyFile": "perf-add-http-response-caching.md"
    },
    {
      "id": "skill_def_perf-add-local-cdn-asset-fingerprinting",
      "name": "Fingerprint and Long-Cache Static Assets",
      "description": "Adds content-hash fingerprints to static asset filenames so they can be cached immutably forever while still busting on change; use when asset caching is too short or causes stale deploys.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "caching",
        "frontend",
        "cdn",
        "latency"
      ],
      "bodyFile": "perf-add-local-cdn-asset-fingerprinting.md"
    },
    {
      "id": "skill_def_perf-add-missing-db-index",
      "name": "Add a Missing Index for a Slow Filtered Query",
      "description": "Diagnoses a slow filtered or sorted query and adds the correct covering or composite index; use when EXPLAIN shows a full scan on a selective predicate.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "database",
        "index",
        "query",
        "explain"
      ],
      "bodyFile": "perf-add-missing-db-index.md"
    },
    {
      "id": "skill_def_perf-add-pagination-to-unbounded-query",
      "name": "Replace an Unbounded Query With Keyset Pagination",
      "description": "Converts a query that loads or offset-paginates an entire large table into efficient keyset (cursor) pagination; use when large-offset queries or full loads cause latency and memory spikes.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "query",
        "pagination",
        "latency",
        "memory"
      ],
      "bodyFile": "perf-add-pagination-to-unbounded-query.md"
    },
    {
      "id": "skill_def_perf-add-read-through-cache",
      "name": "Add a Read-Through Cache to a Hot Read Path",
      "description": "Wraps an expensive, frequently-called read function with a read-through cache layer; use when profiling shows repeated identical reads dominating latency.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "caching",
        "latency",
        "read-path",
        "memoization"
      ],
      "bodyFile": "perf-add-read-through-cache.md"
    },
    {
      "id": "skill_def_perf-add-request-coalescing",
      "name": "Coalesce Duplicate In-Flight Requests (Single-Flight)",
      "description": "Deduplicates concurrent identical requests so only one executes and the rest share its result; use when a cache miss or burst causes a thundering herd to a backend.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "concurrency",
        "caching",
        "thundering-herd",
        "throughput"
      ],
      "bodyFile": "perf-add-request-coalescing.md"
    },
    {
      "id": "skill_def_perf-allocation-profile-churn",
      "name": "Profile Allocation Churn And Garbage Pressure",
      "description": "Measures allocation rate and identifies the call sites producing the most short-lived objects so GC pressure can be reduced, used when GC pauses or allocator overhead dominate.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "memory",
        "allocation",
        "gc",
        "churn"
      ],
      "bodyFile": "perf-allocation-profile-churn.md"
    },
    {
      "id": "skill_def_perf-batch-write-operations",
      "name": "Batch Many Small Writes Into Bulk Operations",
      "description": "Coalesces many individual insert/update/API writes into bulk or multi-row operations; use when high write volume causes round-trip or commit overhead.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "throughput",
        "database",
        "batching",
        "write-path"
      ],
      "bodyFile": "perf-batch-write-operations.md"
    },
    {
      "id": "skill_def_perf-benchmark-ab-comparison",
      "name": "Compare Two Implementations With A Significance Test",
      "description": "Benchmarks two code variants under identical conditions and applies a statistical test to decide whether the difference is real, used when choosing between implementations or validating an optimization.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "benchmark",
        "comparison",
        "statistics",
        "ab-test"
      ],
      "bodyFile": "perf-benchmark-ab-comparison.md"
    },
    {
      "id": "skill_def_perf-bound-and-retry-slow-dependency",
      "name": "Add Timeouts, Retries, and Circuit Breaking to a Slow Dependency",
      "description": "Wraps calls to a flaky or slow downstream with timeouts, bounded retries with backoff, and a circuit breaker; use when a slow dependency inflates tail latency or causes cascading stalls.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "latency",
        "resilience",
        "timeout",
        "throughput"
      ],
      "bodyFile": "perf-bound-and-retry-slow-dependency.md"
    },
    {
      "id": "skill_def_perf-bundle-size-profile",
      "name": "Profile And Attribute JavaScript Bundle Size",
      "description": "Analyzes a build's bundle to attribute bytes to modules and dependencies and find bloat, used when load time or download size is too large.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "bundle",
        "size",
        "javascript",
        "build"
      ],
      "bodyFile": "perf-bundle-size-profile.md"
    },
    {
      "id": "skill_def_perf-capture-cpu-profile",
      "name": "Capture A CPU Profile Of A Running Process",
      "description": "Attaches a sampling profiler to a running or about-to-run process and captures a wall/CPU time profile for a representative workload, used when a service or job is slow but the hot path is unknown.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "cpu",
        "profiling",
        "sampling",
        "diagnosis"
      ],
      "bodyFile": "perf-capture-cpu-profile.md"
    },
    {
      "id": "skill_def_perf-ci-regression-gate",
      "name": "Set Up A Benchmark Regression Gate In CI",
      "description": "Adds an automated benchmark that runs in CI and fails the build when key metrics regress beyond a threshold, used to prevent performance regressions from merging.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "ci",
        "regression",
        "benchmark",
        "automation"
      ],
      "bodyFile": "perf-ci-regression-gate.md"
    },
    {
      "id": "skill_def_perf-collect-hardware-counters",
      "name": "Collect CPU Hardware Performance Counters",
      "description": "Reads CPU performance counters (IPC, cache misses, branch mispredicts) for a workload to diagnose microarchitectural inefficiency, used when a hot loop is slower than its instruction count suggests.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "cpu",
        "counters",
        "cache",
        "microarchitecture"
      ],
      "bodyFile": "perf-collect-hardware-counters.md"
    },
    {
      "id": "skill_def_perf-compress-payloads",
      "name": "Enable Response and Asset Compression",
      "description": "Turns on appropriate compression (gzip/brotli/zstd) for HTTP responses and stored payloads; use when large text payloads dominate transfer time or storage.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "bandwidth",
        "compression",
        "latency",
        "throughput"
      ],
      "bodyFile": "perf-compress-payloads.md"
    },
    {
      "id": "skill_def_perf-continuous-profiling-setup",
      "name": "Set Up Always-On Continuous Profiling In Production",
      "description": "Deploys a low-overhead continuous profiler that captures CPU and memory profiles from production over time, used to diagnose intermittent or production-only performance issues.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "continuous-profiling",
        "production",
        "observability",
        "cpu"
      ],
      "bodyFile": "perf-continuous-profiling-setup.md"
    },
    {
      "id": "skill_def_perf-debounce-throttle-events",
      "name": "Debounce or Throttle a High-Frequency Event Handler",
      "description": "Adds debouncing or throttling to a handler firing far more often than needed; use when rapid events (scroll, input, resize, webhook) trigger redundant expensive work.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "latency",
        "throughput",
        "events",
        "frontend"
      ],
      "bodyFile": "perf-debounce-throttle-events.md"
    },
    {
      "id": "skill_def_perf-detect-memory-leak-trend",
      "name": "Detect A Memory Leak Via Differential Heap Snapshots",
      "description": "Compares two heap snapshots taken under steady load to isolate object types and call sites that grow unbounded, used when memory rises continuously and you suspect a leak.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "memory",
        "leak",
        "heap",
        "diff"
      ],
      "bodyFile": "perf-detect-memory-leak-trend.md"
    },
    {
      "id": "skill_def_perf-diff-flamegraphs",
      "name": "Differential Flamegraph Of Before And After",
      "description": "Generates a differential flamegraph comparing two profiles to show exactly which frames got faster or slower, used to validate an optimization or pinpoint a regression's cause.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "flamegraph",
        "diff",
        "regression",
        "comparison"
      ],
      "bodyFile": "perf-diff-flamegraphs.md"
    },
    {
      "id": "skill_def_perf-establish-baseline-snapshot",
      "name": "Establish A Reproducible Performance Baseline",
      "description": "Records a documented baseline of key performance metrics under a fixed workload and environment so future changes can be measured against it, used before starting any optimization effort.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "baseline",
        "measurement",
        "reproducibility",
        "methodology"
      ],
      "bodyFile": "perf-establish-baseline-snapshot.md"
    },
    {
      "id": "skill_def_perf-fix-n-plus-one-query",
      "name": "Eliminate an N+1 Query With Batched Loading",
      "description": "Detects and collapses an N+1 query pattern into a single batched or joined query; use when one logical operation issues one query per item in a loop.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "query",
        "database",
        "n-plus-one",
        "batching"
      ],
      "bodyFile": "perf-fix-n-plus-one-query.md"
    },
    {
      "id": "skill_def_perf-flamegraph-off-cpu",
      "name": "Capture An Off-CPU (Blocking) Flamegraph",
      "description": "Profiles time spent blocked off-CPU (waiting on locks, I/O, or syscalls) and renders it as a flamegraph, used when a process is slow but CPU utilization is low.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "off-cpu",
        "blocking",
        "flamegraph",
        "latency"
      ],
      "bodyFile": "perf-flamegraph-off-cpu.md"
    },
    {
      "id": "skill_def_perf-generate-flamegraph",
      "name": "Generate A Flamegraph From Collapsed Stacks",
      "description": "Converts a captured stack profile into an interactive flamegraph SVG so the widest (most expensive) frames are visually obvious, used when you have raw profile data and need a navigable hot-path view.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "flamegraph",
        "visualization",
        "cpu",
        "stacks"
      ],
      "bodyFile": "perf-generate-flamegraph.md"
    },
    {
      "id": "skill_def_perf-heap-profile-snapshot",
      "name": "Capture And Read A Heap Memory Profile",
      "description": "Takes a heap profile showing which call sites hold live memory and which allocate the most bytes, used when resident memory is unexpectedly high or growing.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "memory",
        "heap",
        "profiling",
        "allocation"
      ],
      "bodyFile": "perf-heap-profile-snapshot.md"
    },
    {
      "id": "skill_def_perf-lazy-load-heavy-resource",
      "name": "Defer Expensive Initialization With Lazy Loading",
      "description": "Converts eager startup-time initialization of a heavy resource into lazy on-first-use loading; use when startup latency or memory is dominated by resources not always needed.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "latency",
        "startup",
        "lazy-loading",
        "memory"
      ],
      "bodyFile": "perf-lazy-load-heavy-resource.md"
    },
    {
      "id": "skill_def_perf-lock-contention-profile",
      "name": "Profile Lock Contention And Wait Times",
      "description": "Identifies which locks are most contended and how long threads wait on them, used when a multithreaded program fails to scale with added cores.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "concurrency",
        "locks",
        "contention",
        "profiling"
      ],
      "bodyFile": "perf-lock-contention-profile.md"
    },
    {
      "id": "skill_def_perf-measure-latency-percentiles",
      "name": "Measure Latency Distribution And Tail Percentiles",
      "description": "Records a full latency distribution under load and reports p50/p90/p99/p999 plus max, used when average latency looks fine but tail behavior matters.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "latency",
        "percentiles",
        "tail",
        "measurement"
      ],
      "bodyFile": "perf-measure-latency-percentiles.md"
    },
    {
      "id": "skill_def_perf-measure-throughput-saturation",
      "name": "Find Maximum Throughput And The Saturation Point",
      "description": "Runs a load sweep to find peak sustainable throughput and the concurrency where latency degrades, used to determine capacity and the bottleneck that caps it.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "throughput",
        "load-test",
        "saturation",
        "capacity"
      ],
      "bodyFile": "perf-measure-throughput-saturation.md"
    },
    {
      "id": "skill_def_perf-offload-work-to-background-queue",
      "name": "Offload Non-Critical Work to a Background Queue",
      "description": "Moves slow non-essential work out of the request path into an asynchronous background job/queue; use when a response is blocked by work the caller doesn't need synchronously.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "latency",
        "async",
        "queue",
        "throughput"
      ],
      "bodyFile": "perf-offload-work-to-background-queue.md"
    },
    {
      "id": "skill_def_perf-parallelize-independent-io",
      "name": "Parallelize Independent I/O Calls With Concurrency",
      "description": "Converts sequential independent I/O calls into concurrent execution with bounded parallelism; use when a request awaits several unrelated network or disk calls one after another.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "concurrency",
        "io",
        "latency",
        "async"
      ],
      "bodyFile": "perf-parallelize-independent-io.md"
    },
    {
      "id": "skill_def_perf-precompute-materialized-view",
      "name": "Precompute an Expensive Aggregate as a Materialized View",
      "description": "Moves a costly on-read aggregation into a precomputed materialized view or summary table refreshed on a schedule or trigger; use when expensive GROUP BY/rollups run on every request.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "query",
        "throughput",
        "precompute",
        "database"
      ],
      "bodyFile": "perf-precompute-materialized-view.md"
    },
    {
      "id": "skill_def_perf-profile-and-fix-cpu-hotspot",
      "name": "Profile and Optimize a CPU Hotspot",
      "description": "Uses a sampling profiler to locate the dominant CPU hotspot and optimizes the specific hot function; use when a CPU-bound operation is slow and the cause is unknown.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "profiling",
        "cpu",
        "hotspot",
        "latency"
      ],
      "bodyFile": "perf-profile-and-fix-cpu-hotspot.md"
    },
    {
      "id": "skill_def_perf-profile-async-runtime",
      "name": "Profile An Async/Event-Loop Runtime For Stalls",
      "description": "Detects event-loop blocking, slow tasks, and starved schedulers in async runtimes, used when an async service has high latency despite low CPU.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "async",
        "event-loop",
        "concurrency",
        "latency"
      ],
      "bodyFile": "perf-profile-async-runtime.md"
    },
    {
      "id": "skill_def_perf-profile-database-queries",
      "name": "Profile Slow Database Queries With Execution Plans",
      "description": "Captures slow queries and their execution plans to find missing indexes, full scans, and bad join orders, used when database time dominates request latency.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "database",
        "query",
        "explain",
        "profiling"
      ],
      "bodyFile": "perf-profile-database-queries.md"
    },
    {
      "id": "skill_def_perf-profile-frontend-render",
      "name": "Profile Frontend Render And Main-Thread Time",
      "description": "Captures a browser performance trace to attribute slow interactions to scripting, layout, paint, and long tasks, used when a web UI feels janky or unresponsive.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "frontend",
        "browser",
        "rendering",
        "profiling"
      ],
      "bodyFile": "perf-profile-frontend-render.md"
    },
    {
      "id": "skill_def_perf-profile-memory-fragmentation",
      "name": "Diagnose Heap Fragmentation And Allocator Overhead",
      "description": "Measures the gap between live bytes and RSS to detect heap fragmentation and allocator waste, used when memory stays high even though live object size is small.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "memory",
        "fragmentation",
        "allocator",
        "rss"
      ],
      "bodyFile": "perf-profile-memory-fragmentation.md"
    },
    {
      "id": "skill_def_perf-profile-startup-time",
      "name": "Profile Application Startup And Cold-Start Time",
      "description": "Breaks down the time from launch to readiness into phases (class/module load, init, connections, warmup) to cut startup latency, used when cold starts or boot time are too slow.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "startup",
        "cold-start",
        "initialization",
        "profiling"
      ],
      "bodyFile": "perf-profile-startup-time.md"
    },
    {
      "id": "skill_def_perf-rank-hot-functions",
      "name": "Rank Hot Functions By Self And Total Time",
      "description": "Produces a sorted table of functions by self time and cumulative time from a profile so optimization effort targets the true bottleneck, used when a flamegraph is too coarse and you need precise attribution.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "cpu",
        "profiling",
        "hotspots",
        "analysis"
      ],
      "bodyFile": "perf-rank-hot-functions.md"
    },
    {
      "id": "skill_def_perf-reduce-allocation-gc-pressure",
      "name": "Cut Allocation and GC Pressure in a Hot Loop",
      "description": "Reduces per-iteration heap allocations in a hot loop to lower GC frequency and pause time; use when profiling shows allocation/GC dominating CPU or causing latency spikes.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "memory",
        "gc",
        "cpu",
        "hotspot"
      ],
      "bodyFile": "perf-reduce-allocation-gc-pressure.md"
    },
    {
      "id": "skill_def_perf-reduce-lock-contention",
      "name": "Reduce Lock Contention on a Hot Critical Section",
      "description": "Shrinks or splits an over-broad lock causing thread contention; use when a profiler shows threads blocked waiting on a single mutex under concurrency.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "concurrency",
        "locking",
        "contention",
        "throughput"
      ],
      "bodyFile": "perf-reduce-lock-contention.md"
    },
    {
      "id": "skill_def_perf-stream-instead-of-buffer",
      "name": "Stream Large Payloads Instead of Buffering in Memory",
      "description": "Refactors code that loads an entire large file or response into memory to use streaming/chunked processing; use when large payloads cause memory spikes or OOMs.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "memory",
        "io",
        "streaming",
        "throughput"
      ],
      "bodyFile": "perf-stream-instead-of-buffer.md"
    },
    {
      "id": "skill_def_perf-syscall-trace-hotpath",
      "name": "Trace Syscalls To Find I/O And Kernel Hotspots",
      "description": "Traces system calls during a workload to count and time kernel interactions, used when a process spends heavy time in kernel/system CPU or makes redundant I/O.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "syscall",
        "io",
        "kernel",
        "tracing"
      ],
      "bodyFile": "perf-syscall-trace-hotpath.md"
    },
    {
      "id": "skill_def_perf-trace-request-spans",
      "name": "Trace A Request End-To-End With Distributed Spans",
      "description": "Instruments and reads a distributed trace of a single request to attribute latency across services and calls, used when a slow request crosses multiple services or components.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "tracing",
        "distributed",
        "latency",
        "spans"
      ],
      "bodyFile": "perf-trace-request-spans.md"
    },
    {
      "id": "skill_def_perf-tree-shake-dead-bundle-code",
      "name": "Shrink a JS Bundle by Removing Dead and Duplicate Code",
      "description": "Analyzes a production bundle and removes dead exports, duplicate dependencies, and non-tree-shakeable imports; use when bundle size regresses or initial load is slow.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "bundle-size",
        "javascript",
        "tree-shaking",
        "frontend"
      ],
      "bodyFile": "perf-tree-shake-dead-bundle-code.md"
    },
    {
      "id": "skill_def_perf-tune-gc-and-runtime-flags",
      "name": "Tune GC and Runtime Configuration for the Workload",
      "description": "Adjusts garbage-collector and runtime flags (heap sizes, GC mode, thread/worker counts) to match the workload's latency or throughput goal; use when defaults cause pauses or underutilization.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "gc",
        "runtime",
        "latency",
        "throughput"
      ],
      "bodyFile": "perf-tune-gc-and-runtime-flags.md"
    },
    {
      "id": "skill_def_perf-virtualize-long-list",
      "name": "Virtualize a Long Rendered List",
      "description": "Replaces rendering of a large list/table with windowed virtualization that renders only visible rows; use when long lists cause slow render, jank, or high memory in the UI.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "frontend",
        "rendering",
        "latency",
        "memory"
      ],
      "bodyFile": "perf-virtualize-long-list.md"
    },
    {
      "id": "skill_def_perf-write-microbenchmark",
      "name": "Write A Correct Microbenchmark For A Function",
      "description": "Builds a statistically sound microbenchmark for a single function or tight code path using the language's benchmarking harness, used when you need to measure or compare implementations precisely.",
      "version": "1.0.0",
      "category": "Performance & Profiling",
      "tags": [
        "benchmark",
        "microbenchmark",
        "measurement",
        "statistics"
      ],
      "bodyFile": "perf-write-microbenchmark.md"
    },
    {
      "id": "skill_def_plan-analyze-cycle-time-bottlenecks",
      "name": "Analyze Cycle Time And Workflow Bottlenecks",
      "description": "Measures how long items spend in each workflow stage to locate the bottleneck stage and quantify wait versus work time, used when delivery feels slow despite effort.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "cycle-time",
        "bottleneck",
        "flow",
        "metrics",
        "tracking"
      ],
      "bodyFile": "plan-analyze-cycle-time-bottlenecks.md"
    },
    {
      "id": "skill_def_plan-audit-milestone-health",
      "name": "Audit Milestone Health Against Plan",
      "description": "Evaluates each milestone's health by comparing planned vs actual progress, remaining scope, and dependency status, used at regular checkpoints to catch slipping milestones early.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "milestone",
        "health",
        "tracking",
        "slippage",
        "checkpoint"
      ],
      "bodyFile": "plan-audit-milestone-health.md"
    },
    {
      "id": "skill_def_plan-author-lightweight-rfc",
      "name": "Author A Lightweight Engineering RFC",
      "description": "Drafts a concise design RFC covering problem, options, decision, and rollout; use when a change is large or contentious enough to need written sign-off before coding.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "rfc",
        "design-doc",
        "decision",
        "scoping",
        "review"
      ],
      "bodyFile": "plan-author-lightweight-rfc.md"
    },
    {
      "id": "skill_def_plan-balance-team-workload",
      "name": "Balance Team Workload Across Assignees",
      "description": "Analyzes current assignments to find over- and under-loaded team members and recommends rebalancing moves, used during planning to prevent burnout and idle capacity.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "workload",
        "capacity",
        "balancing",
        "assignment",
        "planning"
      ],
      "bodyFile": "plan-balance-team-workload.md"
    },
    {
      "id": "skill_def_plan-build-dependency-impact-report",
      "name": "Build A Cross-Team Dependency Impact Report",
      "description": "Identifies dependencies your work has on other teams (and theirs on you), assesses delivery risk for each, and drafts the coordination asks, used when planning multi-team work.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "dependencies",
        "cross-team",
        "coordination",
        "risk",
        "planning"
      ],
      "bodyFile": "plan-build-dependency-impact-report.md"
    },
    {
      "id": "skill_def_plan-build-kanban-flow-policy",
      "name": "Build WIP Limits And Flow Policies For A Board",
      "description": "Recommends per-column work-in-progress limits and pull policies from observed flow data to reduce context-switching and queue buildup, used when a Kanban board is congested.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "kanban",
        "wip-limits",
        "flow",
        "policy",
        "tracking"
      ],
      "bodyFile": "plan-build-kanban-flow-policy.md"
    },
    {
      "id": "skill_def_plan-build-milestone-plan",
      "name": "Define Milestones With Exit Criteria",
      "description": "Carves a project into a small number of milestones each with a demoable deliverable and exit criteria; use when a long effort needs checkpoints to track progress and de-risk.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "milestones",
        "planning",
        "checkpoints",
        "exit-criteria",
        "tracking"
      ],
      "bodyFile": "plan-build-milestone-plan.md"
    },
    {
      "id": "skill_def_plan-build-quarterly-roadmap",
      "name": "Build A Theme-Based Quarterly Roadmap",
      "description": "Organizes a backlog into a quarterly roadmap grouped by outcome themes with rough sizing and sequencing; use when leadership needs a now/next/later view rather than a dated Gantt chart.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "roadmap",
        "quarterly",
        "themes",
        "sequencing",
        "prioritization"
      ],
      "bodyFile": "plan-build-quarterly-roadmap.md"
    },
    {
      "id": "skill_def_plan-build-risk-register",
      "name": "Build And Score A Project Risk Register",
      "description": "Constructs a prioritized risk register by scanning the project plan and codebase for likely risks, scoring each by probability and impact, used at project kickoff or major milestones.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "risk",
        "register",
        "scoring",
        "mitigation",
        "planning"
      ],
      "bodyFile": "plan-build-risk-register.md"
    },
    {
      "id": "skill_def_plan-capacity-sprint-commitment",
      "name": "Plan Sprint Capacity And Commitment",
      "description": "Calculates realistic team capacity for a sprint and selects a committable scope from the backlog; use at sprint planning to avoid over-committing.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "sprint",
        "capacity",
        "velocity",
        "commitment",
        "planning"
      ],
      "bodyFile": "plan-capacity-sprint-commitment.md"
    },
    {
      "id": "skill_def_plan-compose-stakeholder-status-report",
      "name": "Compose Weekly Stakeholder Status Report",
      "description": "Assembles a concise RAG-rated weekly status report for non-technical stakeholders from project tracking data, used for recurring leadership or client updates.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "status-report",
        "rag",
        "stakeholder",
        "weekly",
        "summary"
      ],
      "bodyFile": "plan-compose-stakeholder-status-report.md"
    },
    {
      "id": "skill_def_plan-cross-team-dependency-plan",
      "name": "Plan Cross-Team Dependencies And Hand-Offs",
      "description": "Identifies external team dependencies, defines the interface and timing of each hand-off, and surfaces blocking risks; use when a project relies on work owned by other teams.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "dependencies",
        "cross-team",
        "handoff",
        "coordination",
        "planning"
      ],
      "bodyFile": "plan-cross-team-dependency-plan.md"
    },
    {
      "id": "skill_def_plan-decision-record-adr",
      "name": "Record An Architecture Decision (ADR)",
      "description": "Captures one architectural decision with its context, options, and consequences in a versioned ADR; use whenever a choice will be expensive to reverse or future readers will ask why.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "adr",
        "decision-record",
        "architecture",
        "documentation",
        "rationale"
      ],
      "bodyFile": "plan-decision-record-adr.md"
    },
    {
      "id": "skill_def_plan-decompose-epic-into-tasks",
      "name": "Decompose An Epic Into Estimable Tasks",
      "description": "Breaks a large epic or feature into independently shippable, right-sized tasks with acceptance criteria and rough estimates, used during backlog refinement before a sprint.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "decomposition",
        "epic",
        "estimation",
        "backlog",
        "refinement"
      ],
      "bodyFile": "plan-decompose-epic-into-tasks.md"
    },
    {
      "id": "skill_def_plan-decompose-feature-into-tasks",
      "name": "Decompose A Feature Into Implementable Tasks",
      "description": "Breaks a single feature request into an ordered list of small, independently-verifiable engineering tasks; use when a feature is too large to start coding directly.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "decomposition",
        "tasks",
        "breakdown",
        "scoping",
        "estimation"
      ],
      "bodyFile": "plan-decompose-feature-into-tasks.md"
    },
    {
      "id": "skill_def_plan-define-definition-of-done",
      "name": "Define And Audit A Definition Of Done",
      "description": "Drafts a checklist-based Definition of Done for a team and audits recent completed items against it to find quality gaps, used when work is marked done but isn't really finished.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "definition-of-done",
        "quality",
        "checklist",
        "audit",
        "process"
      ],
      "bodyFile": "plan-define-definition-of-done.md"
    },
    {
      "id": "skill_def_plan-define-mvp-scope-cuts",
      "name": "Define MVP Scope With Explicit Cut Lines",
      "description": "Separates a feature set into must/should/could and a deferred list with documented cut rationale; use when scope is bloating and the team needs a defensible minimum to ship.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "mvp",
        "scoping",
        "moscow",
        "prioritization",
        "cut-line"
      ],
      "bodyFile": "plan-define-mvp-scope-cuts.md"
    },
    {
      "id": "skill_def_plan-define-success-metrics",
      "name": "Define Success Metrics And Guardrail Metrics",
      "description": "Specifies the primary metric, supporting metrics, and guardrails that define whether a feature succeeded; use during planning so success is measurable before code is written.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "metrics",
        "success-criteria",
        "guardrails",
        "measurement",
        "planning"
      ],
      "bodyFile": "plan-define-success-metrics.md"
    },
    {
      "id": "skill_def_plan-detect-stalled-issues",
      "name": "Detect And Triage Stalled Issues",
      "description": "Finds work items that have gone quiet past a staleness threshold, classifies why they stalled, and proposes a next action so nothing silently rots in the backlog.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "triage",
        "stale",
        "backlog",
        "tracking",
        "cleanup"
      ],
      "bodyFile": "plan-detect-stalled-issues.md"
    },
    {
      "id": "skill_def_plan-draft-decision-log-entry",
      "name": "Draft A Structured Decision Log Entry",
      "description": "Captures a technical or project decision as a structured ADR-style log entry with context, options, choice, and consequences, used whenever a non-trivial decision is made.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "decision-log",
        "adr",
        "documentation",
        "tracking",
        "rationale"
      ],
      "bodyFile": "plan-draft-decision-log-entry.md"
    },
    {
      "id": "skill_def_plan-effort-impact-quadrant",
      "name": "Triage Ideas On An Effort-Impact Quadrant",
      "description": "Plots candidate work on a two-by-two of effort versus impact to surface quick wins and avoid time sinks; use for fast prioritization when precise scoring is overkill.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "prioritization",
        "effort-impact",
        "triage",
        "quick-wins",
        "planning"
      ],
      "bodyFile": "plan-effort-impact-quadrant.md"
    },
    {
      "id": "skill_def_plan-epic-into-stories",
      "name": "Break An Epic Into User Stories",
      "description": "Splits a large epic into independent INVEST-compliant user stories sized for a single sprint; use when an epic is too big to estimate or schedule as one unit.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "epic",
        "user-stories",
        "invest",
        "decomposition",
        "backlog"
      ],
      "bodyFile": "plan-epic-into-stories.md"
    },
    {
      "id": "skill_def_plan-estimate-by-reference-class",
      "name": "Estimate Using Reference-Class Forecasting",
      "description": "Calibrates a new estimate against the actual outcomes of similar past work rather than bottom-up guessing; use when the team chronically underestimates due to optimism bias.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "estimation",
        "reference-class",
        "forecasting",
        "calibration",
        "historical-data"
      ],
      "bodyFile": "plan-estimate-by-reference-class.md"
    },
    {
      "id": "skill_def_plan-estimate-with-planning-poker",
      "name": "Run Reference-Class Estimation For Tasks",
      "description": "Estimates a set of tasks by comparing each to similar completed work and surfacing per-task uncertainty, used during planning when raw guesses are unreliable.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "estimation",
        "reference-class",
        "planning",
        "velocity",
        "forecast"
      ],
      "bodyFile": "plan-estimate-with-planning-poker.md"
    },
    {
      "id": "skill_def_plan-estimate-with-three-point",
      "name": "Estimate Tasks With Three-Point PERT Ranges",
      "description": "Produces optimistic/likely/pessimistic estimates and a confidence-weighted expected value per task; use when stakeholders need a defensible timeline rather than a single guessed number.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "estimation",
        "pert",
        "timeline",
        "risk",
        "planning"
      ],
      "bodyFile": "plan-estimate-with-three-point.md"
    },
    {
      "id": "skill_def_plan-extract-action-items-from-notes",
      "name": "Extract Action Items From Meeting Notes",
      "description": "Parses freeform meeting notes or a transcript into a clean list of action items with owner, due date, and source context so decisions don't get lost after the meeting.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "action-items",
        "meeting",
        "extraction",
        "ownership",
        "tracking"
      ],
      "bodyFile": "plan-extract-action-items-from-notes.md"
    },
    {
      "id": "skill_def_plan-facilitate-sprint-retrospective",
      "name": "Facilitate Sprint Retrospective From Sprint Data",
      "description": "Drives a structured sprint retrospective by mining the sprint's metrics and surfacing discussion prompts grouped into went-well, went-wrong, and action items, used at the end of each sprint.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "retro",
        "sprint",
        "facilitation",
        "metrics",
        "action-items"
      ],
      "bodyFile": "plan-facilitate-sprint-retrospective.md"
    },
    {
      "id": "skill_def_plan-forecast-release-date",
      "name": "Forecast A Release Date With Confidence Bands",
      "description": "Forecasts a release date by running a throughput-based simulation over remaining scope and reporting probabilistic delivery dates, used when committing a date to stakeholders.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "forecast",
        "release",
        "monte-carlo",
        "throughput",
        "planning"
      ],
      "bodyFile": "plan-forecast-release-date.md"
    },
    {
      "id": "skill_def_plan-generate-async-standup-digest",
      "name": "Generate Async Standup Digest From Activity",
      "description": "Synthesizes a per-person daily standup digest (yesterday/today/blockers) from commit, PR, and issue activity so a team can run standups asynchronously without a live meeting.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "standup",
        "async",
        "git",
        "summary",
        "tracking"
      ],
      "bodyFile": "plan-generate-async-standup-digest.md"
    },
    {
      "id": "skill_def_plan-generate-changelog-from-commits",
      "name": "Generate A Release Changelog From Commits",
      "description": "Produces a categorized, human-readable changelog for a release by parsing commit and PR history between two refs, used at release-cut time for stakeholders and users.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "changelog",
        "release",
        "commits",
        "summary",
        "tracking"
      ],
      "bodyFile": "plan-generate-changelog-from-commits.md"
    },
    {
      "id": "skill_def_plan-generate-okr-progress-rollup",
      "name": "Generate An OKR Progress Rollup",
      "description": "Rolls up key-result progress from linked work items into an OKR status report with confidence ratings, used at the mid-quarter and end-of-quarter check-ins.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "okr",
        "rollup",
        "progress",
        "confidence",
        "tracking"
      ],
      "bodyFile": "plan-generate-okr-progress-rollup.md"
    },
    {
      "id": "skill_def_plan-generate-onboarding-ramp-plan",
      "name": "Generate A New-Hire Ramp Plan With Milestones",
      "description": "Creates a staged 30/60/90-day onboarding plan for a new engineer mapped to the codebase and team rituals, used when someone joins a project.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "onboarding",
        "ramp-plan",
        "milestones",
        "new-hire",
        "planning"
      ],
      "bodyFile": "plan-generate-onboarding-ramp-plan.md"
    },
    {
      "id": "skill_def_plan-generate-raci-matrix",
      "name": "Generate A RACI Responsibility Matrix",
      "description": "Builds a RACI matrix mapping project deliverables to people across Responsible, Accountable, Consulted, and Informed roles, used to clarify ownership at project or epic kickoff.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "raci",
        "ownership",
        "responsibility",
        "matrix",
        "kickoff"
      ],
      "bodyFile": "plan-generate-raci-matrix.md"
    },
    {
      "id": "skill_def_plan-map-task-dependencies",
      "name": "Map And Order Tasks By Dependency Graph",
      "description": "Builds a dependency graph from a task list, finds the critical path, and produces a buildable order; use when tasks block each other and naive ordering would stall the team.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "dependencies",
        "critical-path",
        "sequencing",
        "scheduling",
        "graph"
      ],
      "bodyFile": "plan-map-task-dependencies.md"
    },
    {
      "id": "skill_def_plan-migration-rollout-plan",
      "name": "Plan A Phased Migration And Rollback",
      "description": "Designs a staged migration from an old system to a new one with dual-running, cutover, and rollback steps; use when replacing a live component without downtime.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "migration",
        "rollout",
        "cutover",
        "rollback",
        "phased"
      ],
      "bodyFile": "plan-migration-rollout-plan.md"
    },
    {
      "id": "skill_def_plan-pre-mortem-failure-analysis",
      "name": "Run A Pre-Mortem On A Project Plan",
      "description": "Imagines the project has already failed and works backward to surface hidden risks and plan changes; use before committing to a plan to catch blind spots optimism hides.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "pre-mortem",
        "risk",
        "planning",
        "blind-spots",
        "de-risking"
      ],
      "bodyFile": "plan-pre-mortem-failure-analysis.md"
    },
    {
      "id": "skill_def_plan-prep-sprint-planning-agenda",
      "name": "Prepare A Sprint Planning Agenda And Capacity Plan",
      "description": "Builds a sprint planning agenda with computed team capacity, a refined candidate backlog, and carryover so planning starts from data, used the day before sprint planning.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "sprint-planning",
        "capacity",
        "agenda",
        "backlog",
        "preparation"
      ],
      "bodyFile": "plan-prep-sprint-planning-agenda.md"
    },
    {
      "id": "skill_def_plan-prioritize-with-rice",
      "name": "Prioritize A Backlog With RICE Scoring",
      "description": "Ranks backlog items by Reach, Impact, Confidence, and Effort to produce a defensible order; use when too many candidate items compete for limited capacity.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "prioritization",
        "rice",
        "backlog",
        "scoring",
        "planning"
      ],
      "bodyFile": "plan-prioritize-with-rice.md"
    },
    {
      "id": "skill_def_plan-reconcile-scope-creep",
      "name": "Reconcile And Quantify Scope Creep",
      "description": "Compares the current scope of a project against its baseline to identify added, removed, and grown items and quantifies the schedule impact, used when a project starts running late.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "scope-creep",
        "baseline",
        "tracking",
        "impact",
        "planning"
      ],
      "bodyFile": "plan-reconcile-scope-creep.md"
    },
    {
      "id": "skill_def_plan-risk-register-mitigations",
      "name": "Build A Project Risk Register With Mitigations",
      "description": "Identifies, scores, and assigns mitigations for project risks in a living register; use at project kickoff and review to surface what could derail delivery before it does.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "risk",
        "register",
        "mitigation",
        "planning",
        "de-risking"
      ],
      "bodyFile": "plan-risk-register-mitigations.md"
    },
    {
      "id": "skill_def_plan-rollout-feature-flag-strategy",
      "name": "Plan A Feature-Flag Rollout And Cleanup",
      "description": "Designs the flag, cohorts, ramp schedule, and removal plan for shipping a feature progressively; use when a change is risky enough to need gradual exposure.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "feature-flags",
        "rollout",
        "ramp",
        "experimentation",
        "cleanup"
      ],
      "bodyFile": "plan-rollout-feature-flag-strategy.md"
    },
    {
      "id": "skill_def_plan-slice-into-vertical-increments",
      "name": "Slice A Project Into Thin Vertical Increments",
      "description": "Re-cuts a feature so each increment delivers end-to-end value through every layer; use when work is being planned horizontally by layer and nothing ships until everything is done.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "vertical-slicing",
        "incremental",
        "delivery",
        "mvp",
        "decomposition"
      ],
      "bodyFile": "plan-slice-into-vertical-increments.md"
    },
    {
      "id": "skill_def_plan-spike-unknowns-timebox",
      "name": "Plan A Time-Boxed Spike To Resolve Unknowns",
      "description": "Designs a bounded research spike with a question, time box, and exit criteria; use when an estimate is blocked by a technical unknown that must be investigated before planning continues.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "spike",
        "research",
        "timebox",
        "de-risking",
        "estimation"
      ],
      "bodyFile": "plan-spike-unknowns-timebox.md"
    },
    {
      "id": "skill_def_plan-summarize-incident-timeline",
      "name": "Summarize An Incident Into A Timeline",
      "description": "Reconstructs a chronological incident timeline from logs, chat, and deploy history to support a blameless postmortem, used immediately after an incident is resolved.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "incident",
        "timeline",
        "postmortem",
        "retro",
        "tracking"
      ],
      "bodyFile": "plan-summarize-incident-timeline.md"
    },
    {
      "id": "skill_def_plan-test-strategy-plan",
      "name": "Plan A Layered Test Strategy For A Feature",
      "description": "Designs which test types cover which risks for a feature across unit, integration, and end-to-end layers; use when planning so test work is scoped and not an afterthought.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "test-strategy",
        "testing",
        "test-plan",
        "coverage",
        "risk-based"
      ],
      "bodyFile": "plan-test-strategy-plan.md"
    },
    {
      "id": "skill_def_plan-track-burndown-projection",
      "name": "Track Burndown And Project Completion Date",
      "description": "Computes a sprint or milestone burndown from remaining work and historical velocity, then projects a realistic completion date with confidence, used mid-sprint to check trajectory.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "burndown",
        "velocity",
        "forecast",
        "sprint",
        "tracking"
      ],
      "bodyFile": "plan-track-burndown-projection.md"
    },
    {
      "id": "skill_def_plan-write-acceptance-criteria",
      "name": "Write Given-When-Then Acceptance Criteria",
      "description": "Translates a requirement into testable given/when/then scenarios including edge and error paths; use when a task lacks a concrete definition of done.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "acceptance-criteria",
        "bdd",
        "definition-of-done",
        "testing",
        "requirements"
      ],
      "bodyFile": "plan-write-acceptance-criteria.md"
    },
    {
      "id": "skill_def_plan-write-prd-from-problem",
      "name": "Write A Product Requirements Doc From A Problem Statement",
      "description": "Turns a raw problem statement into a PRD with users, requirements, and acceptance criteria; use at the start of a feature when scope and success are still ambiguous.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "prd",
        "requirements",
        "scoping",
        "acceptance-criteria",
        "product"
      ],
      "bodyFile": "plan-write-prd-from-problem.md"
    },
    {
      "id": "skill_def_plan-write-tech-design-doc",
      "name": "Write A Technical Design Document",
      "description": "Produces a detailed design doc covering architecture, data model, APIs, and trade-offs for a chosen approach; use after an RFC is approved and before implementation of a non-trivial system.",
      "version": "1.0.0",
      "category": "Project & Planning",
      "tags": [
        "design-doc",
        "architecture",
        "data-model",
        "api-design",
        "planning"
      ],
      "bodyFile": "plan-write-tech-design-doc.md"
    },
    {
      "id": "skill_def_research-academic-paper-survey",
      "name": "Survey Academic Literature on a Topic",
      "description": "Finds, screens, and summarizes peer-reviewed papers on a research question, tracking citations and consensus; use when authoritative scholarly evidence is required.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "academic",
        "literature",
        "scholarly",
        "survey"
      ],
      "bodyFile": "research-academic-paper-survey.md"
    },
    {
      "id": "skill_def_research-api-endpoint-discovery",
      "name": "Discover and Use a Site's Hidden Data API",
      "description": "Inspects a site's network traffic to find the JSON/API endpoints powering its pages and queries them directly for cleaner, faster data than HTML scraping; use when a site is data-rich.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "scraping",
        "api",
        "network",
        "json"
      ],
      "bodyFile": "research-api-endpoint-discovery.md"
    },
    {
      "id": "skill_def_research-archived-snapshot-retrieval",
      "name": "Retrieve Archived Page Snapshots",
      "description": "Recovers content from dead, changed, or paywalled URLs via web archives and caches so research is not blocked by link rot; use when a needed page is unavailable or has changed.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "archive",
        "wayback",
        "link-rot",
        "retrieval"
      ],
      "bodyFile": "research-archived-snapshot-retrieval.md"
    },
    {
      "id": "skill_def_research-call-and-paginate-rest-api",
      "name": "Extract Data From An Undocumented JSON API",
      "description": "Find and call the JSON/XHR endpoint a page uses instead of scraping its DOM, then paginate it fully, used when a site fetches its data from an internal API.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "api",
        "xhr",
        "json",
        "pagination",
        "scraping"
      ],
      "bodyFile": "research-call-and-paginate-rest-api.md"
    },
    {
      "id": "skill_def_research-chunk-documents-for-indexing",
      "name": "Chunk Documents For Retrieval Indexing",
      "description": "Split long extracted documents into coherent, overlapping, metadata-tagged chunks sized for embedding, used when preparing scraped text for a vector search index.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "chunking",
        "indexing",
        "embeddings",
        "rag",
        "retrieval"
      ],
      "bodyFile": "research-chunk-documents-for-indexing.md"
    },
    {
      "id": "skill_def_research-citation-record-builder",
      "name": "Build Structured Citation Records",
      "description": "Converts each used source into a complete, reusable citation record with title, author, date, URL, and access timestamp; use whenever research output must be attributable and reproducible.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "citations",
        "metadata",
        "attribution",
        "provenance"
      ],
      "bodyFile": "research-citation-record-builder.md"
    },
    {
      "id": "skill_def_research-cited-synthesis-report",
      "name": "Synthesize a Cited Research Report",
      "description": "Merges findings from multiple vetted sources into a coherent narrative where every non-obvious claim carries an inline citation; use as the final step of a multi-source research task.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "synthesis",
        "report",
        "citations",
        "writing"
      ],
      "bodyFile": "research-cited-synthesis-report.md"
    },
    {
      "id": "skill_def_research-claim-triangulation",
      "name": "Triangulate a Claim Across Independent Sources",
      "description": "Verifies a specific factual claim by finding at least three independent sources and checking whether they agree, conflict, or trace back to one origin; use to fact-check any load-bearing statement.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "fact-check",
        "verification",
        "triangulation",
        "claims"
      ],
      "bodyFile": "research-claim-triangulation.md"
    },
    {
      "id": "skill_def_research-comparative-matrix-builder",
      "name": "Build a Comparative Feature Matrix",
      "description": "Researches multiple options against a common set of criteria and assembles a side-by-side comparison table with per-cell citations; use for vendor, tool, or product comparisons.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "comparison",
        "matrix",
        "evaluation",
        "citations"
      ],
      "bodyFile": "research-comparative-matrix-builder.md"
    },
    {
      "id": "skill_def_research-conflicting-sources-reconciliation",
      "name": "Reconcile Conflicting Source Claims",
      "description": "Resolves situations where credible sources disagree by analyzing why they differ and determining which to trust or whether to report the disagreement; use when verification surfaces contradictions.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "conflict",
        "reconciliation",
        "fact-check",
        "analysis"
      ],
      "bodyFile": "research-conflicting-sources-reconciliation.md"
    },
    {
      "id": "skill_def_research-consume-rss-atom-feeds",
      "name": "Ingest And Normalize RSS/Atom Feeds",
      "description": "Parse RSS, Atom, and JSON feeds into a uniform item stream and track new entries across polls, used when monitoring sources that publish a feed.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "rss",
        "atom",
        "feeds",
        "monitoring",
        "ingestion"
      ],
      "bodyFile": "research-consume-rss-atom-feeds.md"
    },
    {
      "id": "skill_def_research-coverage-gap-audit",
      "name": "Audit Research for Coverage Gaps",
      "description": "Reviews a draft research deliverable against the original sub-questions to find unanswered points, single-sourced claims, and missing perspectives; use before finalizing a report.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "audit",
        "coverage",
        "gaps",
        "quality"
      ],
      "bodyFile": "research-coverage-gap-audit.md"
    },
    {
      "id": "skill_def_research-deduplicate-and-canonicalize-records",
      "name": "Deduplicate And Merge Scraped Records",
      "description": "Collapse duplicate and near-duplicate records gathered from multiple pages or sources into canonical entities, used when the same item appears more than once with field variations.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "deduplication",
        "entity-resolution",
        "canonicalization",
        "merging",
        "data-quality"
      ],
      "bodyFile": "research-deduplicate-and-canonicalize-records.md"
    },
    {
      "id": "skill_def_research-diff-page-snapshots-for-changes",
      "name": "Detect Content Changes Across Page Snapshots",
      "description": "Compare a freshly fetched page against a stored snapshot to isolate meaningful content changes, used when monitoring sources for updates.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "change-detection",
        "monitoring",
        "diff",
        "snapshots",
        "crawling"
      ],
      "bodyFile": "research-diff-page-snapshots-for-changes.md"
    },
    {
      "id": "skill_def_research-discover-and-crawl-sitemap",
      "name": "Discover URLs Via Sitemaps And Robots",
      "description": "Enumerate a site's crawlable URLs from robots.txt and XML sitemaps before fetching, used when you need full coverage of a domain without blind link-following.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "sitemap",
        "robots",
        "crawling",
        "discovery",
        "urls"
      ],
      "bodyFile": "research-discover-and-crawl-sitemap.md"
    },
    {
      "id": "skill_def_research-entity-disambiguation",
      "name": "Disambiguate Entities With the Same Name",
      "description": "Resolves which real-world entity a name refers to when multiple people, companies, or products share it, preventing mixed-up research; use when a query term is ambiguous.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "entities",
        "disambiguation",
        "identity",
        "search"
      ],
      "bodyFile": "research-entity-disambiguation.md"
    },
    {
      "id": "skill_def_research-extract-article-main-content",
      "name": "Extract Main Article Content From a Page",
      "description": "Strips navigation, ads, and boilerplate from a fetched web page to isolate the core article text and metadata; use before quoting or summarizing any scraped page.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "scraping",
        "extraction",
        "boilerplate",
        "parsing"
      ],
      "bodyFile": "research-extract-article-main-content.md"
    },
    {
      "id": "skill_def_research-extract-contact-entities",
      "name": "Extract Contact And Entity Details From Pages",
      "description": "Pull emails, phone numbers, addresses, social handles, and organization names from page text into structured contact records, used when building directories from web sources.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "entities",
        "contacts",
        "extraction",
        "ner",
        "structuring"
      ],
      "bodyFile": "research-extract-contact-entities.md"
    },
    {
      "id": "skill_def_research-extract-images-and-captions",
      "name": "Extract Images With Captions And Alt Text",
      "description": "Collect images from a page paired with their captions, alt text, and source context, used when building an image dataset or capturing figures from documents.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "images",
        "captions",
        "alt-text",
        "extraction",
        "media"
      ],
      "bodyFile": "research-extract-images-and-captions.md"
    },
    {
      "id": "skill_def_research-extract-json-ld-metadata",
      "name": "Harvest JSON-LD And Microdata From Pages",
      "description": "Pull structured Schema.org metadata embedded in a page's JSON-LD, microdata, or Open Graph tags, used when a site already ships machine-readable data you can read directly.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "json-ld",
        "microdata",
        "schema-org",
        "metadata",
        "extraction"
      ],
      "bodyFile": "research-extract-json-ld-metadata.md"
    },
    {
      "id": "skill_def_research-extract-links-and-build-graph",
      "name": "Extract Links And Build A Page Graph",
      "description": "Harvest outbound links from crawled pages, classify them, and build a connectivity graph, used when you need to map a site's structure or find authoritative hubs.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "links",
        "graph",
        "crawling",
        "structure",
        "analysis"
      ],
      "bodyFile": "research-extract-links-and-build-graph.md"
    },
    {
      "id": "skill_def_research-extract-main-article-content",
      "name": "Extract Main Article Content From Boilerplate",
      "description": "Isolate the primary article body from navigation, ads, and sidebars on a content page, used when you need clean readable text without page chrome.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "readability",
        "boilerplate",
        "extraction",
        "articles",
        "content"
      ],
      "bodyFile": "research-extract-main-article-content.md"
    },
    {
      "id": "skill_def_research-extract-tables-from-pdf",
      "name": "Extract Tables From PDF Documents",
      "description": "Detect and reconstruct tabular data embedded in PDFs into rows and columns, used when numbers you need live in a PDF table rather than the body text.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "pdf",
        "tables",
        "extraction",
        "parsing",
        "data"
      ],
      "bodyFile": "research-extract-tables-from-pdf.md"
    },
    {
      "id": "skill_def_research-extract-tabular-data-html",
      "name": "Extract Structured Tables From HTML Pages",
      "description": "Pull tabular data out of HTML <table>, grid, or list markup into clean typed rows, used when a page presents records you need as a spreadsheet or dataframe.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "html",
        "tables",
        "extraction",
        "parsing",
        "dataframe"
      ],
      "bodyFile": "research-extract-tabular-data-html.md"
    },
    {
      "id": "skill_def_research-extract-via-css-selectors",
      "name": "Build A CSS-Selector Extraction Schema",
      "description": "Author and apply a reusable CSS/XPath field map that extracts named fields from a page template, used when you need to scrape the same fields across many similar pages.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "scraping",
        "css-selectors",
        "xpath",
        "schema",
        "extraction"
      ],
      "bodyFile": "research-extract-via-css-selectors.md"
    },
    {
      "id": "skill_def_research-feed-monitoring-digest",
      "name": "Monitor Feeds and Produce a Change Digest",
      "description": "Polls RSS/Atom feeds or pages on a topic and produces a deduplicated digest of only what is new since the last check; use for ongoing topic monitoring.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "monitoring",
        "feeds",
        "digest",
        "incremental"
      ],
      "bodyFile": "research-feed-monitoring-digest.md"
    },
    {
      "id": "skill_def_research-handle-rate-limits-and-retries",
      "name": "Manage Crawl Rate Limits And Retries",
      "description": "Throttle requests, back off on errors, and retry transient failures politely during a crawl, used when fetching many pages from one or more hosts without getting blocked.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "rate-limiting",
        "retries",
        "backoff",
        "crawling",
        "politeness"
      ],
      "bodyFile": "research-handle-rate-limits-and-retries.md"
    },
    {
      "id": "skill_def_research-headless-render-dynamic-page",
      "name": "Render Dynamic Pages With A Headless Browser",
      "description": "Load a JavaScript-rendered page in a headless browser to capture its fully hydrated DOM, used when the raw HTML is empty and content arrives via client-side rendering.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "headless",
        "javascript",
        "rendering",
        "scraping",
        "spa"
      ],
      "bodyFile": "research-headless-render-dynamic-page.md"
    },
    {
      "id": "skill_def_research-llm-structured-extraction",
      "name": "Extract Structured Fields With An LLM Schema",
      "description": "Use an LLM with a strict output schema to extract named fields from messy unstructured text, used when no stable selectors exist and rules-based parsing fails.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "llm",
        "extraction",
        "schema",
        "json",
        "unstructured"
      ],
      "bodyFile": "research-llm-structured-extraction.md"
    },
    {
      "id": "skill_def_research-multi-source-fan-out",
      "name": "Fan-Out Multi-Source Web Search",
      "description": "Decomposes a research question into parallel sub-queries and runs them across multiple search engines to maximize source coverage; use when a single query returns thin or biased results.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "search",
        "fan-out",
        "coverage",
        "queries"
      ],
      "bodyFile": "research-multi-source-fan-out.md"
    },
    {
      "id": "skill_def_research-multi-source-synthesis",
      "name": "Synthesize A Claim Across Multiple Sources",
      "description": "Reconcile what several sources say about one question into a single grounded answer that notes agreement and conflict, used when no single source is authoritative.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "synthesis",
        "multi-source",
        "citations",
        "consensus",
        "research"
      ],
      "bodyFile": "research-multi-source-synthesis.md"
    },
    {
      "id": "skill_def_research-multilingual-source-incorporation",
      "name": "Incorporate Non-English Sources",
      "description": "Finds and integrates authoritative sources in other languages, translating and verifying key passages so research is not limited to English; use for region-specific or local topics.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "multilingual",
        "translation",
        "sources",
        "coverage"
      ],
      "bodyFile": "research-multilingual-source-incorporation.md"
    },
    {
      "id": "skill_def_research-normalize-extracted-values",
      "name": "Normalize And Type-Coerce Extracted Values",
      "description": "Standardize raw scraped strings into typed canonical values — dates, currencies, units, phone numbers — used when extracted fields arrive in inconsistent formats.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "normalization",
        "data-cleaning",
        "types",
        "units",
        "parsing"
      ],
      "bodyFile": "research-normalize-extracted-values.md"
    },
    {
      "id": "skill_def_research-numeric-claim-reconstruction",
      "name": "Reconstruct and Sanity-Check Numeric Claims",
      "description": "Recomputes statistics, percentages, and unit conversions from underlying data to confirm a reported number is correct and consistent; use when a figure drives a decision.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "numbers",
        "statistics",
        "verification",
        "units"
      ],
      "bodyFile": "research-numeric-claim-reconstruction.md"
    },
    {
      "id": "skill_def_research-ocr-scanned-document",
      "name": "OCR A Scanned Document Into Text",
      "description": "Convert image-only or scanned PDFs and images into searchable text with layout preserved, used when a source has no extractable text layer.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "ocr",
        "pdf",
        "images",
        "extraction",
        "scanned"
      ],
      "bodyFile": "research-ocr-scanned-document.md"
    },
    {
      "id": "skill_def_research-paginated-crawl-collection",
      "name": "Crawl A Paginated Listing Into One Dataset",
      "description": "Walk every page of a paginated or infinite-scroll listing and merge results into a single deduplicated dataset, used when records span dozens of pages behind Next links or scroll triggers.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "crawling",
        "pagination",
        "infinite-scroll",
        "collection",
        "dedup"
      ],
      "bodyFile": "research-paginated-crawl-collection.md"
    },
    {
      "id": "skill_def_research-paginated-list-scraper",
      "name": "Scrape Paginated and Infinite-Scroll Lists",
      "description": "Walks through paginated or infinitely-scrolling result pages to collect a complete record set without missing or duplicating items; use when data spans many pages.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "scraping",
        "pagination",
        "crawl",
        "lists"
      ],
      "bodyFile": "research-paginated-list-scraper.md"
    },
    {
      "id": "skill_def_research-parse-pdf-document-structure",
      "name": "Parse A PDF Into Structured Sections",
      "description": "Extract text, headings, and reading order from a PDF into a clean structured document, used when a source is a PDF report, paper, or filing you need as machine-readable sections.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "pdf",
        "parsing",
        "documents",
        "extraction",
        "structure"
      ],
      "bodyFile": "research-parse-pdf-document-structure.md"
    },
    {
      "id": "skill_def_research-pdf-and-document-extraction",
      "name": "Extract Findings From PDFs and Documents",
      "description": "Pulls text, tables, and figures out of linked PDFs and office documents encountered during research and isolates the relevant passages; use when key evidence lives in attached files.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "pdf",
        "documents",
        "extraction",
        "parsing"
      ],
      "bodyFile": "research-pdf-and-document-extraction.md"
    },
    {
      "id": "skill_def_research-question-scope-decomposition",
      "name": "Decompose a Research Question Into Sub-Questions",
      "description": "Breaks an open-ended research question into a structured tree of answerable sub-questions with clear scope and success criteria; use to plan a research task before searching.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "planning",
        "decomposition",
        "scope",
        "questions"
      ],
      "bodyFile": "research-question-scope-decomposition.md"
    },
    {
      "id": "skill_def_research-quote-provenance-verification",
      "name": "Verify Quote and Statistic Provenance",
      "description": "Traces a quoted statement or statistic back to its original primary source to confirm it is accurate and not misattributed or taken out of context; use before reproducing any quote or number.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "quotes",
        "provenance",
        "primary-source",
        "verification"
      ],
      "bodyFile": "research-quote-provenance-verification.md"
    },
    {
      "id": "skill_def_research-rendered-page-capture",
      "name": "Capture JavaScript-Rendered Page Content",
      "description": "Renders client-side JavaScript pages in a headless browser to obtain content that is absent from the raw HTML; use when a fetch returns an empty or skeleton page.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "scraping",
        "headless",
        "javascript",
        "rendering"
      ],
      "bodyFile": "research-rendered-page-capture.md"
    },
    {
      "id": "skill_def_research-rerank-search-results",
      "name": "Rerank Retrieved Sources By Relevance",
      "description": "Reorder a candidate set of search hits or passages by true relevance to the query using a cross-encoder or LLM judge, used when first-pass retrieval returns too many loosely-related results.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "reranking",
        "retrieval",
        "relevance",
        "search",
        "ranking"
      ],
      "bodyFile": "research-rerank-search-results.md"
    },
    {
      "id": "skill_def_research-robots-and-rate-compliance",
      "name": "Respect Robots Rules and Rate Limits",
      "description": "Checks robots.txt, sitemap, and crawl-delay directives and throttles requests so scraping stays polite and within a site's stated rules; use before any automated crawl.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "scraping",
        "robots",
        "rate-limit",
        "etiquette"
      ],
      "bodyFile": "research-robots-and-rate-compliance.md"
    },
    {
      "id": "skill_def_research-scope-and-plan-site-crawl",
      "name": "Scope And Plan A Bounded Site Crawl",
      "description": "Define crawl boundaries, depth limits, URL filters, and a frontier strategy before fetching, used when starting a crawl that must stay on-topic and terminate predictably.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "crawling",
        "scoping",
        "frontier",
        "planning",
        "url-filters"
      ],
      "bodyFile": "research-scope-and-plan-site-crawl.md"
    },
    {
      "id": "skill_def_research-source-credibility-scoring",
      "name": "Score Source Credibility and Bias",
      "description": "Rates each candidate source on authority, recency, transparency, and potential bias to decide whether and how heavily to rely on it; use when sources vary widely in quality.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "credibility",
        "bias",
        "evaluation",
        "ranking"
      ],
      "bodyFile": "research-source-credibility-scoring.md"
    },
    {
      "id": "skill_def_research-structured-data-from-jsonld",
      "name": "Extract Structured Data From JSON-LD and Microdata",
      "description": "Pulls machine-readable structured data (schema.org JSON-LD, microdata, RDFa) embedded in pages instead of scraping rendered text; use when sites expose structured metadata.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "structured-data",
        "json-ld",
        "schema-org",
        "extraction"
      ],
      "bodyFile": "research-structured-data-from-jsonld.md"
    },
    {
      "id": "skill_def_research-summarize-source-with-citations",
      "name": "Summarize A Source With Inline Citations",
      "description": "Produce a faithful summary of a fetched document where every claim is anchored to a quoted span, used when you need a trustworthy digest that can be fact-checked against the original.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "summarization",
        "citations",
        "grounding",
        "documents",
        "faithfulness"
      ],
      "bodyFile": "research-summarize-source-with-citations.md"
    },
    {
      "id": "skill_def_research-table-data-extraction",
      "name": "Extract and Normalize HTML Tables",
      "description": "Parses HTML tables into clean tabular data, handling merged cells, multi-row headers, and footnotes; use when the data you need lives in on-page tables.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "scraping",
        "tables",
        "extraction",
        "normalization"
      ],
      "bodyFile": "research-table-data-extraction.md"
    },
    {
      "id": "skill_def_research-temporal-fact-validation",
      "name": "Validate the Timeliness of Facts",
      "description": "Checks whether a retrieved fact is current or outdated by examining publish dates, versions, and superseding sources; use for fast-moving topics like prices, versions, or policy.",
      "version": "1.0.0",
      "category": "Web Research & Scraping",
      "tags": [
        "recency",
        "fact-check",
        "dates",
        "validation"
      ],
      "bodyFile": "research-temporal-fact-validation.md"
    },
    {
      "id": "skill_def_sql-add-check-constraint-with-validation",
      "name": "Add A CHECK Constraint To Enforce A Domain Rule",
      "description": "Encodes a business invariant as a CHECK constraint and validates existing data without a blocking lock; use to push a validation rule from application code down into the database.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "constraints",
        "data-integrity",
        "check-constraint",
        "migrations"
      ],
      "bodyFile": "sql-add-check-constraint-with-validation.md"
    },
    {
      "id": "skill_def_sql-add-foreign-key-constraints-safely",
      "name": "Add Foreign Key Constraints To An Existing Table",
      "description": "Adds referential-integrity foreign keys to live tables after cleaning orphaned rows, using NOT VALID to avoid a full-table validation lock; use when a schema lacks enforced relationships.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "schema-design",
        "foreign-keys",
        "integrity",
        "migrations"
      ],
      "bodyFile": "sql-add-foreign-key-constraints-safely.md"
    },
    {
      "id": "skill_def_sql-add-foreign-key-index-coverage",
      "name": "Index Unindexed Foreign Keys To Speed Joins And Cascades",
      "description": "Finds foreign-key columns lacking a supporting index and adds them to fix slow joins and parent-row delete/update lock storms, when cascade operations or FK joins are slow.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "foreign-keys",
        "indexes",
        "joins",
        "cascade",
        "postgres"
      ],
      "bodyFile": "sql-add-foreign-key-index-coverage.md"
    },
    {
      "id": "skill_def_sql-analyze-slow-query-explain-plan",
      "name": "Analyze A Slow Query With EXPLAIN ANALYZE",
      "description": "Reads a slow query's execution plan to pinpoint the dominant cost node and recommend a targeted fix, when a specific statement is running slower than expected.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "postgres",
        "explain",
        "slow-query",
        "tuning",
        "indexes"
      ],
      "bodyFile": "sql-analyze-slow-query-explain-plan.md"
    },
    {
      "id": "skill_def_sql-batch-large-update-or-delete",
      "name": "Batch A Large UPDATE Or DELETE Into Chunks",
      "description": "Rewrites a single massive UPDATE/DELETE into bounded, transactionally-safe batches to avoid long locks, lock escalation, and replication lag; use for bulk mutations on big tables.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "bulk-operations",
        "batching",
        "locking",
        "production"
      ],
      "bodyFile": "sql-batch-large-update-or-delete.md"
    },
    {
      "id": "skill_def_sql-batch-large-update-without-long-locks",
      "name": "Batch A Large UPDATE Or DELETE Without Long Locks",
      "description": "Splits a massive single-statement update or delete into bounded batches to avoid long-held locks, replication lag spikes, and bloat, when a one-shot DML would touch millions of rows.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "bulk-dml",
        "batching",
        "locks",
        "replication",
        "bloat"
      ],
      "bodyFile": "sql-batch-large-update-without-long-locks.md"
    },
    {
      "id": "skill_def_sql-build-covering-index-from-query",
      "name": "Build A Covering Index From A Query Pattern",
      "description": "Designs a covering (index-only-scan) index for a hot read query so the table heap is never touched, when a frequent query reads a narrow column set with a selective filter.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "indexes",
        "covering-index",
        "index-only-scan",
        "postgres",
        "performance"
      ],
      "bodyFile": "sql-build-covering-index-from-query.md"
    },
    {
      "id": "skill_def_sql-build-idempotent-upsert",
      "name": "Build An Idempotent Upsert",
      "description": "Writes a conflict-safe insert-or-update (ON CONFLICT / MERGE) that is safe to retry and race-tolerant; use for sync jobs, import pipelines, and at-least-once message handlers.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "upsert",
        "idempotency",
        "concurrency",
        "data-pipeline"
      ],
      "bodyFile": "sql-build-idempotent-upsert.md"
    },
    {
      "id": "skill_def_sql-build-materialized-view-refresh",
      "name": "Build And Refresh A Materialized View For Expensive Aggregates",
      "description": "Precomputes a costly aggregate or join into a materialized view with a concurrent-refresh strategy, when a dashboard or report query is repeatedly expensive but tolerates slightly stale data.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "materialized-view",
        "aggregation",
        "refresh",
        "postgres",
        "reporting"
      ],
      "bodyFile": "sql-build-materialized-view-refresh.md"
    },
    {
      "id": "skill_def_sql-build-pg-stat-statements-workload-profile",
      "name": "Profile A Workload With pg_stat_statements",
      "description": "Ranks the most expensive normalized queries by total and per-call cost to find where tuning effort pays off most, when overall database load is high but no single query is obviously to blame.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "pg-stat-statements",
        "workload",
        "profiling",
        "postgres",
        "top-queries"
      ],
      "bodyFile": "sql-build-pg-stat-statements-workload-profile.md"
    },
    {
      "id": "skill_def_sql-choose-data-types-for-new-table",
      "name": "Choose Right-Sized Data Types For A New Table",
      "description": "Selects precise, storage-efficient, constraint-bearing column types (numeric precision, timestamp-with-zone, enum vs lookup, UUID vs bigint) for a new table; use when designing schema DDL.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "schema-design",
        "data-types",
        "ddl",
        "storage"
      ],
      "bodyFile": "sql-choose-data-types-for-new-table.md"
    },
    {
      "id": "skill_def_sql-configure-streaming-replication-lag",
      "name": "Diagnose And Reduce Streaming Replication Lag",
      "description": "Measures and isolates the source of replica lag in a primary/standby pair and applies the targeted fix, when read replicas serve stale data or fall behind during write bursts.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "replication",
        "lag",
        "standby",
        "postgres",
        "wal"
      ],
      "bodyFile": "sql-configure-streaming-replication-lag.md"
    },
    {
      "id": "skill_def_sql-create-materialized-view-with-refresh",
      "name": "Create A Materialized View With A Refresh Strategy",
      "description": "Materializes an expensive aggregate or join into a precomputed view and defines how it is refreshed (concurrent, scheduled, or incremental); use for costly dashboards run repeatedly.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "materialized-view",
        "reporting",
        "performance",
        "caching"
      ],
      "bodyFile": "sql-create-materialized-view-with-refresh.md"
    },
    {
      "id": "skill_def_sql-deduplicate-rows-keep-canonical",
      "name": "Deduplicate Rows And Add A Uniqueness Guard",
      "description": "Removes duplicate rows while keeping one canonical record per key, then adds a unique constraint to prevent recurrence; use when a table accumulated duplicates from a missing constraint.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "data-cleanup",
        "deduplication",
        "constraints",
        "migrations"
      ],
      "bodyFile": "sql-deduplicate-rows-keep-canonical.md"
    },
    {
      "id": "skill_def_sql-design-cassandra-partition-key",
      "name": "Design A Cassandra Partition And Clustering Key",
      "description": "Chooses partition and clustering keys that avoid hot partitions and unbounded growth while serving the query, when modeling a Cassandra/ScyllaDB table around a specific read pattern.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "cassandra",
        "nosql",
        "partition-key",
        "wide-column",
        "data-modeling"
      ],
      "bodyFile": "sql-design-cassandra-partition-key.md"
    },
    {
      "id": "skill_def_sql-design-composite-index-column-order",
      "name": "Choose Composite Index Column Order",
      "description": "Determines the optimal column order for a multi-column index based on equality, range, sort, and selectivity rules; use when a composite index isn't being used as expected.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "indexing",
        "composite-index",
        "selectivity",
        "performance"
      ],
      "bodyFile": "sql-design-composite-index-column-order.md"
    },
    {
      "id": "skill_def_sql-design-covering-index-for-query",
      "name": "Design A Covering Index For A Hot Query",
      "description": "Builds a covering (index-only-scan) index whose key and INCLUDE columns satisfy a specific query without table lookups; use for read-heavy queries that repeatedly hit the heap.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "indexing",
        "performance",
        "covering-index",
        "read-path"
      ],
      "bodyFile": "sql-design-covering-index-for-query.md"
    },
    {
      "id": "skill_def_sql-design-junction-table-many-to-many",
      "name": "Design A Junction Table For A Many-To-Many Relationship",
      "description": "Models a many-to-many relationship with a properly-keyed junction table, including composite primary key and supporting indexes; use when two entities need a flexible association.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "schema-design",
        "many-to-many",
        "junction-table",
        "indexing"
      ],
      "bodyFile": "sql-design-junction-table-many-to-many.md"
    },
    {
      "id": "skill_def_sql-design-mongodb-document-schema",
      "name": "Design A MongoDB Document Schema For Access Patterns",
      "description": "Shapes MongoDB collections and embedding/referencing choices around the application's real read patterns, when modeling a new domain or fixing a relational-style schema that performs poorly.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "mongodb",
        "nosql",
        "schema-design",
        "embedding",
        "data-modeling"
      ],
      "bodyFile": "sql-design-mongodb-document-schema.md"
    },
    {
      "id": "skill_def_sql-design-range-partitioning",
      "name": "Design Range Partitioning For A Large Time-Series Table",
      "description": "Converts a large append-mostly table into declarative range partitions by time so old data prunes and drops cheaply, when a single table has grown too big to vacuum or query efficiently.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "partitioning",
        "time-series",
        "postgres",
        "pruning",
        "retention"
      ],
      "bodyFile": "sql-design-range-partitioning.md"
    },
    {
      "id": "skill_def_sql-design-soft-delete-with-history",
      "name": "Design Soft-Delete With Audit History",
      "description": "Adds a soft-delete pattern (deleted_at flag plus partial unique indexes and filtered views) and an audit trail; use when records must be recoverable and changes must be traceable.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "schema-design",
        "soft-delete",
        "audit",
        "history"
      ],
      "bodyFile": "sql-design-soft-delete-with-history.md"
    },
    {
      "id": "skill_def_sql-detect-and-remove-redundant-indexes",
      "name": "Detect And Remove Redundant Or Unused Indexes",
      "description": "Finds duplicate, prefix-redundant, and never-used indexes that slow writes and waste storage, then produces safe drop statements; use during index hygiene or write-latency cleanups.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "indexing",
        "index-hygiene",
        "write-performance",
        "cleanup"
      ],
      "bodyFile": "sql-detect-and-remove-redundant-indexes.md"
    },
    {
      "id": "skill_def_sql-diagnose-cache-hit-ratio-io",
      "name": "Diagnose A Low Buffer Cache Hit Ratio",
      "description": "Determines whether the database is IO-bound from undersized shared_buffers or from queries reading more data than necessary, when query latency is dominated by disk reads.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "cache-hit-ratio",
        "shared-buffers",
        "io",
        "postgres",
        "memory"
      ],
      "bodyFile": "sql-diagnose-cache-hit-ratio-io.md"
    },
    {
      "id": "skill_def_sql-diagnose-lock-contention-blocking",
      "name": "Diagnose Lock Contention And Blocking Chains",
      "description": "Maps the blocking-blocked dependency tree among active sessions to find the root blocker, when queries are stalling on locks or a deadlock keeps recurring.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "locks",
        "blocking",
        "deadlock",
        "postgres",
        "concurrency"
      ],
      "bodyFile": "sql-diagnose-lock-contention-blocking.md"
    },
    {
      "id": "skill_def_sql-fix-n-plus-one-with-batch-fetch",
      "name": "Eliminate An N+1 Query Pattern",
      "description": "Replaces a loop of per-row queries with a single set-based batch fetch (IN-list, JOIN, or LATERAL); use when application code issues one query per parent row.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "query-tuning",
        "n-plus-one",
        "orm",
        "performance"
      ],
      "bodyFile": "sql-fix-n-plus-one-with-batch-fetch.md"
    },
    {
      "id": "skill_def_sql-make-predicate-sargable",
      "name": "Make A WHERE Predicate Sargable",
      "description": "Rewrites non-sargable predicates that wrap columns in functions or implicit casts so an index can be used; use when a filtered query does a full scan despite a matching index.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "query-tuning",
        "sargability",
        "indexing",
        "performance"
      ],
      "bodyFile": "sql-make-predicate-sargable.md"
    },
    {
      "id": "skill_def_sql-normalize-schema-to-third-normal-form",
      "name": "Normalize A Schema To Third Normal Form",
      "description": "Decomposes a denormalized table exhibiting update/insert/delete anomalies into 3NF relations with correct keys and foreign keys; use when refactoring a wide flat table.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "schema-design",
        "normalization",
        "3nf",
        "refactoring"
      ],
      "bodyFile": "sql-normalize-schema-to-third-normal-form.md"
    },
    {
      "id": "skill_def_sql-optimize-pagination-with-keyset",
      "name": "Replace OFFSET Pagination With Keyset Pagination",
      "description": "Converts deep OFFSET/LIMIT pagination into seek-method keyset pagination so page latency stays constant regardless of depth, when later pages of a paged query get progressively slower.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "pagination",
        "keyset",
        "offset",
        "performance",
        "indexes"
      ],
      "bodyFile": "sql-optimize-pagination-with-keyset.md"
    },
    {
      "id": "skill_def_sql-optimize-slow-query-from-explain",
      "name": "Optimize A Slow Query From Its Execution Plan",
      "description": "Diagnoses a slow SQL query by reading its execution plan and applies targeted rewrites or index changes; use when a specific query exceeds its latency budget.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "performance",
        "explain",
        "query-tuning",
        "indexing"
      ],
      "bodyFile": "sql-optimize-slow-query-from-explain.md"
    },
    {
      "id": "skill_def_sql-paginate-with-keyset-cursor",
      "name": "Convert OFFSET Pagination To Keyset Pagination",
      "description": "Replaces OFFSET/LIMIT pagination with seek/keyset cursors that stay fast on deep pages; use when paginating large result sets where high offsets are slow.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "pagination",
        "keyset",
        "performance",
        "query-tuning"
      ],
      "bodyFile": "sql-paginate-with-keyset-cursor.md"
    },
    {
      "id": "skill_def_sql-partition-large-table-by-range",
      "name": "Partition A Large Table By Range",
      "description": "Designs declarative range/list partitioning for an oversized table and plans the migration into partitions; use when a table is too large to vacuum, index, or query efficiently.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "partitioning",
        "schema-design",
        "scalability",
        "migrations"
      ],
      "bodyFile": "sql-partition-large-table-by-range.md"
    },
    {
      "id": "skill_def_sql-pivot-rows-to-columns",
      "name": "Pivot Rows To Columns For A Report",
      "description": "Transforms tall key-value rows into a wide cross-tab using conditional aggregation or PIVOT; use when a report needs one row per entity with metric columns spread across categories.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "reporting",
        "pivot",
        "aggregation",
        "query-design"
      ],
      "bodyFile": "sql-pivot-rows-to-columns.md"
    },
    {
      "id": "skill_def_sql-prevent-n-plus-one-query-pattern",
      "name": "Eliminate An N+1 Query Pattern",
      "description": "Replaces a loop that issues one query per parent row with a single set-based or batched query, when application logs or APM show a burst of near-identical queries per request.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "n-plus-one",
        "orm",
        "batching",
        "joins",
        "performance"
      ],
      "bodyFile": "sql-prevent-n-plus-one-query-pattern.md"
    },
    {
      "id": "skill_def_sql-prevent-xid-wraparound",
      "name": "Prevent Transaction ID Wraparound Emergencies",
      "description": "Monitors transaction-ID age and ensures freezing keeps up so the database never approaches wraparound shutdown, when xid age is climbing or aggressive anti-wraparound vacuums are firing.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "xid-wraparound",
        "freezing",
        "autovacuum",
        "postgres",
        "reliability"
      ],
      "bodyFile": "sql-prevent-xid-wraparound.md"
    },
    {
      "id": "skill_def_sql-refresh-table-statistics-fix-misestimate",
      "name": "Fix Cardinality Misestimates With Statistics Tuning",
      "description": "Corrects bad row-count estimates that cause the planner to pick wrong join orders or scan types, when EXPLAIN shows estimated rows diverging wildly from actual rows.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "statistics",
        "cardinality",
        "planner",
        "postgres",
        "analyze"
      ],
      "bodyFile": "sql-refresh-table-statistics-fix-misestimate.md"
    },
    {
      "id": "skill_def_sql-resolve-mvcc-bloat-with-pg-repack",
      "name": "Reclaim Table And Index Bloat Online With pg_repack",
      "description": "Removes accumulated dead-tuple bloat from a hot table without the long exclusive lock of VACUUM FULL, when a table is physically much larger than its live data.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "bloat",
        "pg-repack",
        "vacuum-full",
        "postgres",
        "maintenance"
      ],
      "bodyFile": "sql-resolve-mvcc-bloat-with-pg-repack.md"
    },
    {
      "id": "skill_def_sql-rewrite-correlated-subquery-as-join",
      "name": "Rewrite A Correlated Subquery As A Join Or Window",
      "description": "Converts a row-by-row correlated subquery into a set-based join, aggregate, or window function to eliminate per-row re-execution; use when a subquery runs once per outer row.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "query-tuning",
        "subquery",
        "window-functions",
        "performance"
      ],
      "bodyFile": "sql-rewrite-correlated-subquery-as-join.md"
    },
    {
      "id": "skill_def_sql-rewrite-non-sargable-predicate",
      "name": "Rewrite A Non-Sargable Predicate For Index Use",
      "description": "Transforms a WHERE clause that wraps an indexed column in a function or expression into a sargable form so an existing index can be used, when EXPLAIN shows a seq scan despite a relevant index.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "sargable",
        "predicates",
        "indexes",
        "query-rewrite",
        "performance"
      ],
      "bodyFile": "sql-rewrite-non-sargable-predicate.md"
    },
    {
      "id": "skill_def_sql-set-redis-eviction-and-memory-policy",
      "name": "Configure Redis Eviction And Memory Policy",
      "description": "Selects the right maxmemory and eviction policy and finds keyspace memory hotspots, when a Redis instance is approaching its memory ceiling or evicting keys unexpectedly.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "redis",
        "nosql",
        "eviction",
        "memory",
        "caching"
      ],
      "bodyFile": "sql-set-redis-eviction-and-memory-policy.md"
    },
    {
      "id": "skill_def_sql-set-up-logical-replication-cdc",
      "name": "Set Up Logical Replication For Change Data Capture",
      "description": "Configures publication/subscription logical replication to stream row changes to another system, when you need CDC, a zero-downtime migration, or selective table replication.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "logical-replication",
        "cdc",
        "publication",
        "postgres",
        "migration"
      ],
      "bodyFile": "sql-set-up-logical-replication-cdc.md"
    },
    {
      "id": "skill_def_sql-tune-autovacuum-for-bloat",
      "name": "Tune Autovacuum To Control Table Bloat",
      "description": "Adjusts per-table autovacuum thresholds to keep dead-tuple bloat and transaction-ID age under control, when a high-churn table is growing on disk or vacuum lags behind writes.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "vacuum",
        "autovacuum",
        "bloat",
        "postgres",
        "maintenance"
      ],
      "bodyFile": "sql-tune-autovacuum-for-bloat.md"
    },
    {
      "id": "skill_def_sql-tune-connection-pool-sizing",
      "name": "Right-Size A Database Connection Pool",
      "description": "Calculates a connection pool size that maximizes throughput without exhausting database backends, when the app sees connection timeouts, pool exhaustion, or context-switch thrash.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "connection-pool",
        "throughput",
        "pgbouncer",
        "tuning",
        "concurrency"
      ],
      "bodyFile": "sql-tune-connection-pool-sizing.md"
    },
    {
      "id": "skill_def_sql-tune-group-by-aggregation",
      "name": "Tune A Slow GROUP BY Aggregation",
      "description": "Speeds up a heavy grouping/aggregation query via pre-filtering, index-assisted grouping, partial aggregates, or rollup tables; use when analytic GROUP BY queries are slow.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "aggregation",
        "group-by",
        "performance",
        "analytics"
      ],
      "bodyFile": "sql-tune-group-by-aggregation.md"
    },
    {
      "id": "skill_def_sql-tune-join-strategy-work-mem",
      "name": "Tune Join Strategy And work_mem For A Heavy Query",
      "description": "Eliminates disk-spilling sorts and hash joins by sizing work_mem and steering the planner toward the right join algorithm, when EXPLAIN shows external merge sorts or batched hash joins.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "joins",
        "work-mem",
        "hash-join",
        "sort-spill",
        "postgres"
      ],
      "bodyFile": "sql-tune-join-strategy-work-mem.md"
    },
    {
      "id": "skill_def_sql-write-recursive-cte-hierarchy",
      "name": "Write A Recursive CTE To Traverse A Hierarchy",
      "description": "Builds a recursive common table expression to walk tree/graph data (org charts, categories, bill-of-materials) with depth, path, and cycle protection; use to query adjacency-list hierarchies.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "recursive-cte",
        "hierarchy",
        "tree-traversal",
        "query-design"
      ],
      "bodyFile": "sql-write-recursive-cte-hierarchy.md"
    },
    {
      "id": "skill_def_sql-write-reversible-migration-with-rollback",
      "name": "Write A Reversible Migration With A Tested Rollback",
      "description": "Authors a schema migration with a correct, tested down/rollback path and forward-compatible deploy ordering; use whenever shipping a schema change that must be safely revertible.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "migrations",
        "rollback",
        "reversibility",
        "deployment"
      ],
      "bodyFile": "sql-write-reversible-migration-with-rollback.md"
    },
    {
      "id": "skill_def_sql-write-zero-downtime-column-migration",
      "name": "Write A Zero-Downtime Add/Backfill/Drop Column Migration",
      "description": "Produces a multi-step, lock-safe migration sequence to add, backfill, and enforce a new column without blocking writes; use when altering a large table on a live system.",
      "version": "1.0.0",
      "category": "Databases & SQL",
      "tags": [
        "migrations",
        "zero-downtime",
        "schema-change",
        "production"
      ],
      "bodyFile": "sql-write-zero-downtime-column-migration.md"
    },
    {
      "id": "skill_def_test-arrange-act-assert-unit",
      "name": "Write an AAA-Structured Unit Test",
      "description": "Writes a single-behavior unit test with explicit Arrange/Act/Assert sections so each test verifies exactly one observable outcome; use when adding the first tests for a function or class.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "unit",
        "structure",
        "aaa",
        "readability"
      ],
      "bodyFile": "test-arrange-act-assert-unit.md"
    },
    {
      "id": "skill_def_test-assert-on-logs-and-metrics",
      "name": "Assert on Emitted Logs and Metrics",
      "description": "Captures structured log records and emitted metrics during a test and asserts the expected events fired with correct levels, fields, and values; use when observability output is part of the contract.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "logging",
        "metrics",
        "observability",
        "structured"
      ],
      "bodyFile": "test-assert-on-logs-and-metrics.md"
    },
    {
      "id": "skill_def_test-assertion-strengthen-weak",
      "name": "Strengthen Weak Assertions",
      "description": "Replaces toothless checks like not-null or status-200-only with assertions on actual values and side effects, used when tests pass without verifying behavior.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "assertions",
        "test-quality",
        "rigor",
        "verification",
        "audit"
      ],
      "bodyFile": "test-assertion-strengthen-weak.md"
    },
    {
      "id": "skill_def_test-async-and-promise-code",
      "name": "Test Asynchronous and Promise-Based Code",
      "description": "Writes tests that correctly await async operations, assert on resolved values and rejected errors, and avoid false passes from un-awaited promises; use for async functions, callbacks, and futures.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "async",
        "promises",
        "concurrency",
        "await"
      ],
      "bodyFile": "test-async-and-promise-code.md"
    },
    {
      "id": "skill_def_test-boundary-and-edge-values",
      "name": "Cover Boundary and Edge-Value Cases",
      "description": "Systematically adds tests at input boundaries (empty, zero, max, off-by-one, negative, unicode) where bugs concentrate; use after happy-path tests exist to harden a function.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "boundary",
        "edge-cases",
        "coverage",
        "hardening"
      ],
      "bodyFile": "test-boundary-and-edge-values.md"
    },
    {
      "id": "skill_def_test-characterization-legacy-code",
      "name": "Characterize Legacy Code Before Changing It",
      "description": "Writes characterization tests that pin the current actual behavior of untested legacy code (even quirks) so a refactor can proceed safely; use before modifying code with no existing tests.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "characterization",
        "legacy",
        "refactor-safety",
        "golden-master"
      ],
      "bodyFile": "test-characterization-legacy-code.md"
    },
    {
      "id": "skill_def_test-ci-shard-parallelize",
      "name": "Shard And Parallelize A Slow Suite",
      "description": "Splits a long-running test suite across parallel CI workers balanced by historical timing, used when test wall-time blocks fast feedback.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "ci",
        "sharding",
        "parallel",
        "performance",
        "feedback"
      ],
      "bodyFile": "test-ci-shard-parallelize.md"
    },
    {
      "id": "skill_def_test-cli-command-end-to-end",
      "name": "Test a CLI Command End-to-End",
      "description": "Invokes a CLI command via its runner with arguments and stdin, then asserts exit code, stdout, stderr, and file side effects; use to verify command-line interfaces behave as documented.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "cli",
        "end-to-end",
        "exit-code",
        "stdout"
      ],
      "bodyFile": "test-cli-command-end-to-end.md"
    },
    {
      "id": "skill_def_test-component-render-and-interaction",
      "name": "Test a UI Component's Render and Interaction",
      "description": "Renders a component in a test harness, queries it by accessible role/text, simulates user interaction, and asserts resulting state — avoiding implementation-detail selectors; use for frontend component tests.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "frontend",
        "component",
        "rtl",
        "interaction"
      ],
      "bodyFile": "test-component-render-and-interaction.md"
    },
    {
      "id": "skill_def_test-concurrency-race-conditions",
      "name": "Test Concurrent Access and Race Conditions",
      "description": "Drives a shared resource from multiple threads/goroutines/tasks and asserts invariants hold under contention, optionally with a race detector; use for locks, counters, caches, and pools.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "concurrency",
        "race-conditions",
        "threads",
        "invariants"
      ],
      "bodyFile": "test-concurrency-race-conditions.md"
    },
    {
      "id": "skill_def_test-contract-consumer-pact",
      "name": "Author A Consumer Contract Test",
      "description": "Writes a consumer-driven contract describing the exact requests and responses a client depends on, used when a service consumes an API and needs protection from breaking changes.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "contract",
        "consumer",
        "pact",
        "api",
        "integration"
      ],
      "bodyFile": "test-contract-consumer-pact.md"
    },
    {
      "id": "skill_def_test-contract-provider-verify",
      "name": "Verify A Provider Against Contracts",
      "description": "Replays all consumer contracts against the real provider in its pipeline to catch breaking changes before deploy, used when a service has downstream consumers.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "contract",
        "provider",
        "verification",
        "ci",
        "compatibility"
      ],
      "bodyFile": "test-contract-provider-verify.md"
    },
    {
      "id": "skill_def_test-contract-schema-drift",
      "name": "Detect API Schema Drift",
      "description": "Compares the current API schema against the published version to flag backward-incompatible changes, used before shipping an API change that consumers depend on.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "contract",
        "schema",
        "drift",
        "compatibility",
        "api"
      ],
      "bodyFile": "test-contract-schema-drift.md"
    },
    {
      "id": "skill_def_test-contract-test-provider-consumer",
      "name": "Write a Consumer-Driven Contract Test",
      "description": "Defines a contract capturing the requests a consumer makes and the responses it expects, verified against the provider, so a service can't break its clients silently; use across service boundaries.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "contract",
        "pact",
        "microservices",
        "consumer-driven"
      ],
      "bodyFile": "test-contract-test-provider-consumer.md"
    },
    {
      "id": "skill_def_test-coverage-branch-uncovered",
      "name": "Fill Missing Branch Coverage",
      "description": "Identifies conditional branches with no test exercising one side and writes the minimal case to cover them, used when line coverage is high but logic paths are untested.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "coverage",
        "branch",
        "conditionals",
        "edge-case",
        "unit"
      ],
      "bodyFile": "test-coverage-branch-uncovered.md"
    },
    {
      "id": "skill_def_test-coverage-dead-test-prune",
      "name": "Remove Dead And Redundant Tests",
      "description": "Identifies tests that assert nothing, duplicate other coverage, or test removed code, and deletes them safely, used when the suite is bloated and slow.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "cleanup",
        "redundancy",
        "coverage",
        "maintenance",
        "audit"
      ],
      "bodyFile": "test-coverage-dead-test-prune.md"
    },
    {
      "id": "skill_def_test-coverage-diff-gate",
      "name": "Enforce Coverage On Changed Lines",
      "description": "Adds a CI gate requiring new and modified lines in a PR to be covered, used when overall coverage masks untested new code.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "coverage",
        "diff",
        "ci-gate",
        "pull-request",
        "policy"
      ],
      "bodyFile": "test-coverage-diff-gate.md"
    },
    {
      "id": "skill_def_test-coverage-gap-report",
      "name": "Map Uncovered Code To Risk",
      "description": "Generates a coverage report and ranks uncovered lines and branches by change frequency and blast radius, used when deciding where to invest new tests.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "coverage",
        "gaps",
        "prioritization",
        "risk",
        "report"
      ],
      "bodyFile": "test-coverage-gap-report.md"
    },
    {
      "id": "skill_def_test-data-builder-fixtures",
      "name": "Introduce Test Data Builders",
      "description": "Replaces sprawling inline test setup with builder functions that produce valid objects with sensible defaults, used when tests are dominated by repetitive fixture boilerplate.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "fixtures",
        "test-data",
        "builders",
        "maintainability",
        "setup"
      ],
      "bodyFile": "test-data-builder-fixtures.md"
    },
    {
      "id": "skill_def_test-e2e-critical-path",
      "name": "Script A Critical-Path E2E Flow",
      "description": "Automates the single most revenue-critical user journey end to end with stable selectors and assertions, used when the highest-value flow lacks regression protection.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "e2e",
        "user-journey",
        "critical-path",
        "regression",
        "ui"
      ],
      "bodyFile": "test-e2e-critical-path.md"
    },
    {
      "id": "skill_def_test-e2e-network-stub",
      "name": "Stabilize E2E With Network Stubbing",
      "description": "Intercepts and stubs third-party network calls in end-to-end tests to remove external flakiness, used when e2e runs fail due to upstream services.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "e2e",
        "network",
        "stubbing",
        "stability",
        "flaky"
      ],
      "bodyFile": "test-e2e-network-stub.md"
    },
    {
      "id": "skill_def_test-e2e-page-object-refactor",
      "name": "Refactor E2E Into Page Objects",
      "description": "Extracts duplicated selectors and step sequences from sprawling e2e tests into reusable page objects, used when UI changes force edits across many brittle tests.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "e2e",
        "page-object",
        "maintainability",
        "refactor",
        "selectors"
      ],
      "bodyFile": "test-e2e-page-object-refactor.md"
    },
    {
      "id": "skill_def_test-error-path-and-exceptions",
      "name": "Test Error Paths and Exception Behavior",
      "description": "Writes tests asserting that invalid input and failure conditions raise the correct exception type with the right message/code, not just that the happy path works; use to lock in failure contracts.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "error-handling",
        "exceptions",
        "negative-tests",
        "contract"
      ],
      "bodyFile": "test-error-path-and-exceptions.md"
    },
    {
      "id": "skill_def_test-fake-in-memory-repository",
      "name": "Implement a Fake In-Memory Repository",
      "description": "Builds a lightweight in-memory implementation of a repository/store interface that behaves like the real one for tests; use when mocks would over-specify and you want realistic state behavior.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "fakes",
        "repository",
        "test-doubles",
        "in-memory"
      ],
      "bodyFile": "test-fake-in-memory-repository.md"
    },
    {
      "id": "skill_def_test-fixture-factory-builders",
      "name": "Build a Test Data Factory with Sensible Defaults",
      "description": "Creates a factory/builder that constructs valid domain objects with overridable defaults so tests specify only the fields they care about; use when object construction in tests is verbose or duplicated.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "fixtures",
        "factory",
        "builder",
        "test-data"
      ],
      "bodyFile": "test-fixture-factory-builders.md"
    },
    {
      "id": "skill_def_test-flaky-order-dependency",
      "name": "Expose Test Order Dependencies",
      "description": "Detects tests that only pass in a particular execution order by randomizing and isolating runs, used when a suite breaks under parallelism or shuffled ordering.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "flaky",
        "isolation",
        "ordering",
        "state-leak",
        "suite"
      ],
      "bodyFile": "test-flaky-order-dependency.md"
    },
    {
      "id": "skill_def_test-flaky-root-cause-timing",
      "name": "Diagnose Timing And Race Flakiness",
      "description": "Pinpoints the sleep, timeout, or shared-clock assumption behind an intermittently failing async test and replaces it with deterministic synchronization, used when flakiness correlates with load or speed.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "flaky",
        "async",
        "race",
        "timing",
        "determinism"
      ],
      "bodyFile": "test-flaky-root-cause-timing.md"
    },
    {
      "id": "skill_def_test-flaky-triage-quarantine",
      "name": "Triage And Quarantine A Flaky Test",
      "description": "Confirms a test is non-deterministic and isolates it from the blocking suite with a tracked quarantine entry, used when a test passes and fails on identical code.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "flaky",
        "triage",
        "quarantine",
        "ci",
        "stability"
      ],
      "bodyFile": "test-flaky-triage-quarantine.md"
    },
    {
      "id": "skill_def_test-freeze-time-and-clock",
      "name": "Freeze Time to Test Time-Dependent Logic",
      "description": "Injects or freezes a controllable clock so tests for expiry, scheduling, and timestamps are deterministic instead of flaky; use whenever code reads the current time or sleeps.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "time",
        "clock",
        "determinism",
        "flaky"
      ],
      "bodyFile": "test-freeze-time-and-clock.md"
    },
    {
      "id": "skill_def_test-golden-file-approval",
      "name": "Set Up Golden-File (Approval) Testing",
      "description": "Compares a generator's output against a committed golden file and provides a one-command update flow when the change is intentional; use for code generators, formatters, and report builders.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "golden-file",
        "approval",
        "codegen",
        "regression"
      ],
      "bodyFile": "test-golden-file-approval.md"
    },
    {
      "id": "skill_def_test-integration-with-ephemeral-db",
      "name": "Write an Integration Test Against an Ephemeral Database",
      "description": "Spins up a real disposable database (Testcontainers or transactional rollback) and tests repository/query code against actual SQL behavior; use when in-memory fakes can't catch dialect-specific bugs.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "integration",
        "database",
        "testcontainers",
        "transactions"
      ],
      "bodyFile": "test-integration-with-ephemeral-db.md"
    },
    {
      "id": "skill_def_test-isolate-external-dependency",
      "name": "Isolate An External Dependency Behind A Test Double",
      "description": "Replaces a real network, time, or filesystem call in tests with a controllable double behind a seam, used when tests are slow or flaky due to external systems.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "isolation",
        "mocking",
        "seam",
        "determinism",
        "unit"
      ],
      "bodyFile": "test-isolate-external-dependency.md"
    },
    {
      "id": "skill_def_test-mock-external-dependency",
      "name": "Mock an External Dependency at the Boundary",
      "description": "Replaces a slow, networked, or nondeterministic collaborator (HTTP client, clock, queue) with a mock injected at the unit's boundary and asserts both behavior and interactions; use to isolate the unit under test.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "mocks",
        "isolation",
        "dependency-injection",
        "unit"
      ],
      "bodyFile": "test-mock-external-dependency.md"
    },
    {
      "id": "skill_def_test-mutation-score-baseline",
      "name": "Establish A Mutation Score Baseline",
      "description": "Configures mutation testing for a module and records a baseline score plus a runtime budget, used when introducing mutation testing to a codebase for the first time.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "mutation",
        "baseline",
        "configuration",
        "ci-budget",
        "setup"
      ],
      "bodyFile": "test-mutation-score-baseline.md"
    },
    {
      "id": "skill_def_test-mutation-survivor-kill",
      "name": "Kill Surviving Mutants",
      "description": "Runs mutation testing and writes assertions that catch mutants the existing tests fail to detect, used when coverage is high but test quality is unproven.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "mutation",
        "assertions",
        "test-quality",
        "survivors",
        "rigor"
      ],
      "bodyFile": "test-mutation-survivor-kill.md"
    },
    {
      "id": "skill_def_test-parameterize-cases",
      "name": "Convert Duplicated Tests To Parameterized Cases",
      "description": "Collapses near-identical tests that differ only by input into a single data-driven table, used when copy-pasted test functions multiply maintenance cost.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "parameterized",
        "table-driven",
        "dry",
        "refactor",
        "cases"
      ],
      "bodyFile": "test-parameterize-cases.md"
    },
    {
      "id": "skill_def_test-parametrize-table-cases",
      "name": "Parametrize a Test with a Case Table",
      "description": "Converts repetitive near-identical tests into one parametrized/table-driven test that iterates over labeled input-expectation rows; use when several tests differ only by data.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "parametrized",
        "table-driven",
        "dry",
        "coverage"
      ],
      "bodyFile": "test-parametrize-table-cases.md"
    },
    {
      "id": "skill_def_test-property-based-invariants",
      "name": "Add a Property-Based Test for Invariants",
      "description": "Writes a property-based test that generates randomized inputs and asserts invariants (round-trip, idempotence, commutativity) instead of hardcoded examples; use for functions with broad input domains.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "property",
        "fuzzing",
        "invariants",
        "hypothesis"
      ],
      "bodyFile": "test-property-based-invariants.md"
    },
    {
      "id": "skill_def_test-pyramid-rebalance",
      "name": "Rebalance An Inverted Test Pyramid",
      "description": "Analyzes the ratio of unit to integration to e2e tests and pushes slow high-level coverage down to faster levels, used when the suite is slow and top-heavy.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "strategy",
        "pyramid",
        "balance",
        "performance",
        "refactor"
      ],
      "bodyFile": "test-pyramid-rebalance.md"
    },
    {
      "id": "skill_def_test-regression-from-bug",
      "name": "Write A Regression Test From A Reported Bug",
      "description": "Turns a reproduced production bug into a failing test that captures the defect before fixing, used when a bug ships and must never recur.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "regression",
        "bug",
        "reproduction",
        "tdd",
        "defect"
      ],
      "bodyFile": "test-regression-from-bug.md"
    },
    {
      "id": "skill_def_test-regression-from-bug-report",
      "name": "Write a Failing Regression Test from a Bug Report",
      "description": "Turns a reported bug into a minimal test that reproduces it and fails on the current code, then guards against its return after the fix; use the moment a defect is confirmed.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "regression",
        "bug-fix",
        "reproduction",
        "tdd"
      ],
      "bodyFile": "test-regression-from-bug-report.md"
    },
    {
      "id": "skill_def_test-seed-deterministic-randomness",
      "name": "Seed and Control Randomness in Tests",
      "description": "Pins random number generators, UUIDs, and shuffles to fixed seeds or injected sources so tests using randomness are reproducible; use whenever the code path depends on random values.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "randomness",
        "determinism",
        "seed",
        "reproducibility"
      ],
      "bodyFile": "test-seed-deterministic-randomness.md"
    },
    {
      "id": "skill_def_test-shared-fixture-setup-teardown",
      "name": "Define Scoped Fixtures with Setup and Teardown",
      "description": "Creates fixtures with the correct scope (function, class, module, session) and guaranteed teardown so shared resources are initialized once and cleaned up reliably; use to manage expensive or stateful test resources.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "fixtures",
        "setup-teardown",
        "scope",
        "resource-management"
      ],
      "bodyFile": "test-shared-fixture-setup-teardown.md"
    },
    {
      "id": "skill_def_test-smoke-suite-curate",
      "name": "Curate A Fast Smoke Suite",
      "description": "Selects a minimal set of high-signal tests that run in under a target time as a pre-deploy gate, used when full suites are too slow for every push.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "smoke",
        "strategy",
        "fast-feedback",
        "deploy-gate",
        "selection"
      ],
      "bodyFile": "test-smoke-suite-curate.md"
    },
    {
      "id": "skill_def_test-snapshot-prune",
      "name": "Prune And Tighten Snapshot Tests",
      "description": "Removes obsolete snapshots and replaces giant blob snapshots with focused assertions, used when snapshot tests are large, stale, or rubber-stamped on update.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "snapshot",
        "assertions",
        "maintainability",
        "cleanup",
        "ui"
      ],
      "bodyFile": "test-snapshot-prune.md"
    },
    {
      "id": "skill_def_test-snapshot-serialized-output",
      "name": "Create a Snapshot Test for Serialized Output",
      "description": "Captures a function's complex serialized output (JSON, rendered tree, formatted string) as a reviewed snapshot and asserts future runs match it; use for stable structured output that is tedious to assert field-by-field.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "snapshot",
        "serialization",
        "regression",
        "review"
      ],
      "bodyFile": "test-snapshot-serialized-output.md"
    },
    {
      "id": "skill_def_test-spy-on-side-effects",
      "name": "Spy on Side Effects and Callbacks",
      "description": "Uses a spy to record that a callback, event, or logging side effect occurred with the expected arguments without replacing real behavior; use when the side effect itself is the thing being verified.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "spy",
        "side-effects",
        "callbacks",
        "events"
      ],
      "bodyFile": "test-spy-on-side-effects.md"
    },
    {
      "id": "skill_def_test-stub-http-with-recorded-responses",
      "name": "Stub HTTP Calls with Recorded Responses",
      "description": "Intercepts outbound HTTP requests with a request-mocking library and serves canned status/body/header responses including errors; use to test client code against an API without hitting the network.",
      "version": "1.0.0",
      "category": "Testing & QA",
      "tags": [
        "http",
        "stub",
        "api-client",
        "integration"
      ],
      "bodyFile": "test-stub-http-with-recorded-responses.md"
    }
  ]
}