{
  "$schema": "https://schemas.agentskills.io/discovery/0.2.0/schema.json",
  "skills": [
    {
      "name": "drupal-a11y-dom",
      "type": "archive",
      "description": "Accessibility rules for Drupal templates and stylesheets. Use when writing or reviewing *.html.twig, *.css, *.pcss, or theme libraries. Covers semantic HTML over ARIA, hide-content-properly utilities, WCAG 2.2 SC 2.5.8 target size, focus-visible, dark/forced-colours modes, and reduced-motion. Loaded by drupal-accessibility.",
      "url": "drupal-a11y-dom.tar.gz",
      "digest": "sha256:96428ca35a8541110ffe0cc30aedcd5eaf5988d6668572dd9b977373a4aafec1"
    },
    {
      "name": "drupal-a11y-dynamic",
      "type": "archive",
      "description": "Accessibility rules for Drupal JavaScript, AJAX, modals, and test layers. Use when writing or reviewing *.js, Drupal.behaviors, dialog/modal code, or *Test.php that exercises the UI. Mandates Drupal.announce(), FocusCommand for AJAX, Playwright over Nightwatch, and Axe-core in PHPUnit. Loaded by drupal-accessibility.",
      "url": "drupal-a11y-dynamic.tar.gz",
      "digest": "sha256:21369edc05392c55fa18814f491d8215b42774763cae9115be08eb2e4119ed4c"
    },
    {
      "name": "drupal-a11y-fapi",
      "type": "archive",
      "description": "Accessibility rules for Drupal Form API and render arrays. Use when writing or reviewing *.module, *.inc, *Form.php, or any PHP that builds a render array. Covers",
      "url": "drupal-a11y-fapi.tar.gz",
      "digest": "sha256:ab93342db8ac81c9da89eb16d5dbcb21fad019feaa7123d722e9b81ece13915c"
    },
    {
      "name": "drupal-a11y-qa",
      "type": "archive",
      "description": "Issue-authoring rules for Drupal accessibility work. Use when drafting or reviewing an accessibility issue, MR description, or change record. Enforces structured Bug ID / WCAG SC / severity field block, one-issue-per-criterion scoping, AI disclosure, and manual checks before RTBC. Pair with REFERENCE_BUG_REPORT.md. Loaded by drupal-accessibility.",
      "url": "drupal-a11y-qa.tar.gz",
      "digest": "sha256:5b9ac0861387b1e734cea39498c99de67b1e1295970de2e845efbddb5a7f26cc"
    },
    {
      "name": "drupal-accessibility",
      "type": "archive",
      "description": "Dispatcher for Drupal accessibility work. Routes to drupal-a11y-fapi (Form API / PHP), drupal-a11y-dom (Twig / CSS), drupal-a11y-dynamic (JS / AJAX / tests), or drupal-a11y-qa (issue authoring). Use for any Drupal code, theme, or test with accessibility implications.",
      "url": "drupal-accessibility.tar.gz",
      "digest": "sha256:b81ad1e3ae61ad978ca2a701db418b3576f1daa5b94dda455b1591f867ca0d2e"
    },
    {
      "name": "drupal-automated-testing",
      "type": "archive",
      "description": "Guidance for writing or modifying automated tests for Drupal modules (core, contrib, custom). Covers Functional, Kernel, FunctionalJavascript, and Unit tests; required PHPUnit attributes; test namespaces; the Functional dual-container trap; DDEV env vars; and mistakes agents often make.",
      "url": "drupal-automated-testing.tar.gz",
      "digest": "sha256:680b1a826984f8019c4af46c709544e0a22fec5ce52374dfd03743e97bbda7da"
    },
    {
      "name": "drupal-configuration",
      "type": "archive",
      "description": "Guidance for working with Drupal's configuration system — choosing between config, state, and settings; writing config schema; simple config vs. config entities; config dependencies; third-party settings; the config export workflow; and the override system. Covers the mistakes AI agents make most frequently when generating configuration code.",
      "url": "drupal-configuration.tar.gz",
      "digest": "sha256:9db036eb7e9a985608f9d054f12502204b8d4512b4ae2d0fa273141497234690"
    },
    {
      "name": "drupal-expert-corrections",
      "type": "archive",
      "description": "Turn expert corrections about Drupal into durable improvements via a four-step Capture/Classify/Remediate/Verify pipeline, a six-way failure taxonomy, and an append-only JSONL log that can be promoted into eval cases.",
      "url": "drupal-expert-corrections.tar.gz",
      "digest": "sha256:33202ce78974a51612a85e7ed89311aa42a9a2e1be94d14987a9d4680726bc58"
    },
    {
      "name": "drupal-gitlab",
      "type": "archive",
      "description": "Use GitLab CLI (glab) and API on git.drupalcode.org for any Drupal contribution task — issues, work items, merge requests, branches, CI, and Drupal's issue-fork workflow. Covers authentication, token scopes, Conventional Commits, and translating Drupal.org issue-queue terms (patch, RTBC, interdiff, reroll). This SKILL.md holds setup, auth, and cross-cutting rules; load the matching file in references/ for each subtask.",
      "url": "drupal-gitlab.tar.gz",
      "digest": "sha256:3dea5f0b95e65e3f51daa965a6cb0de864f737276e935f1c76f4a3e2d2528179"
    },
    {
      "name": "drupal-render-pipeline",
      "type": "archive",
      "description": "Guidance for working with Drupal's render pipeline — render arrays, cacheability metadata, cache tag propagation, lazy builders, BigPipe, and the render element types. Covers the mistakes AI agents make most frequently when generating controller and block output, especially caching bugs that are invisible in development.",
      "url": "drupal-render-pipeline.tar.gz",
      "digest": "sha256:bfebc6291a5c84444ec1adec0cf9155a3a118250a9656fc6dbeb0d69d1e0bfcc"
    },
    {
      "name": "drupal-skill-authoring",
      "type": "archive",
      "description": "Use when writing, modifying, or reviewing an Agent Skill (a SKILL.md file and its references/) — for this ai_best_practices repo or for Drupal skills generally. Covers the canonical Agent Skills spec: the allowed frontmatter fields (only name, description, license, allowed-tools, metadata, compatibility — custom keys like status or drupal-version fail CI), the name-must-match-directory rule, the 500-line SKILL.md guideline and progressive-disclosure pattern, the references/ convention, and this repo's contributor checklist (paired evals, static-checks.json, corrections). Load before creating or editing any skill so it follows the spec and passes the validate-agent-skills CI job.",
      "url": "drupal-skill-authoring.tar.gz",
      "digest": "sha256:a16f829628b206cba1b129ba0c233834546bcef385ec7ea85347090535828123"
    },
    {
      "name": "drupal-writing-documentation",
      "type": "archive",
      "description": "Guidance for writing or updating Drupal-facing documentation—README files, change records, module help, and technical notes—for core, contrib, and custom work. Emphasizes audience, accuracy, and linking to canonical sources.",
      "url": "drupal-writing-documentation.tar.gz",
      "digest": "sha256:c126f0bd39cda4736f6179e22373ef43ed60e013e620aea5b050f4d6038085ca"
    }
  ]
}
