Issue #3583362: Add drupalforge-testable-issues skill
Description
Closes #3583362
Adds skills/drupalforge-testable-issues/SKILL.md — a contributor guide for making an issue reviewable without a local setup: publish a Drupal Forge instance that already has the issue's combination of module dev branches installed, and link it from the issue. Motivated by AI issues that span several modules at once (e.g. a UI change in ai that ai_context/CCC has to pick up), where composing that checkout locally is a barrier for UX reviewers.
Placed under skills/ per the README convention ("Reusable how-tos for contributors live under skills/. Each skill is a folder with a SKILL.md entry point."), alongside gitlab-cli-setup and contribution-credit, with an entry added to the README skills index. This repo has no docs/ tree, so no new one was introduced.
Covers all five items from the issue's proposed resolution:
- Declaring the module set — a paste-in "Testable environment" table (project / issue fork / branch / MR) for the issue body, with the rule that unchanged modules are listed too, since the version they sit at is part of what's being tested.
- Spinning up with those branches installed together — why a Cloud Dev Environment is required rather than a 6-hour disposable site (the disposable one has no terminal, so dev branches can't be installed at all), picking a base template, and the Composer recipe: register the issue fork as a
vcsrepository, thencomposer require 'drupal/<project>:dev-<branch>'. Includes commit pinning to freeze an environment, and thetype: packageform for modules without acomposer.json. - Attaching the link — a paste-in reviewer comment covering what's installed, how to log in, that a paused CDE just needs waking, and what to actually look at.
- A paste-in template for issue authors — the two blocks above.
- Basic troubleshooting — a table: missing
dev-prefix, repository registered after therequire, two interdependent forks needing onerequire --with-all-dependencies, known test-dependency friction on fork branches (gitlab_templates#3190024 (closed)), and "site is gone" = paused CDE or a disposable site was used.
Technical claims are sourced rather than assumed: Drupal Forge's own /howto topics (disposable vs Cloud Dev Environment, pre-installed Composer and Drush, pause/un-pause/extend) and drupal.org's "Core version compatibility fixes for modules with unmerged changes" (the issue-fork Composer syntax, the mandatory dev- prefix, commit pinning, the package repository form). No Drupal Forge button labels are invented — the doc links /howto topics by title instead.
Scope note carried in the doc: this documents the manual CDE + Composer route, which works today. If a one-click "launch this issue's branch set" feature lands on Drupal Forge, steps 2–3 collapse into it and the skill should be updated. See my question on the issue about whether the "Blocked until feature is ready" line in the summary is still current.
Remaining tasks
- Content reviewed for accuracy
- Consistent with existing templates / docs style
- Linked issue is up to date
AI Usage
- AI Assisted Content