用途:为 Drupal 贡献工作区搭建并匹配环境,是可选、幂等、非门禁的引导流程,只补齐缺失部分,环境已就绪的贡献者可直接进入 issue。它支撑 /drupal-ai-contrib:setup,并通过 dev-guides-navigator 加载 DDEV 贡献环境、贡献项目脚手架、三种贡献工作流比较、AI 贡献工具链等知识层。
主要能力:先检测工作流(core/自己的 contrib/他人的 contrib)与 issue 系统(drupal.org 经典队列或 GitLab,需跟进项目 Issues 链接判断,不可假设)。再检测环境:若已有 DDEV(.ddev/config.yaml)则报告并停止;否则按工作流选择 add-on——单个 contrib 模块/主题用 ddev-drupal-contrib,多模块套件用 ddev-drupal-suite,core 用 ddev-drupal-core-dev。
门禁配置:已有模块从 .gitlab-ci.yml 解析 gitlab_templates 的 include、ref 及变量块(_TARGET_CORE、_TARGET_PHP、GITLAB_TEMPLATES_REF、PHPUNIT_CONCURRENT、SKIP*、OPT_IN_TEST*),记录门禁集;新模块/维护者场景则生成版本匹配的 .gitlab-ci.yml、phpcs.xml.dist、phpstan.neon、phpunit.xml.dist、.cspell-project-words.txt,并在 require-dev 加入 drupal/core-dev、drupal/coder、phpstan/phpstan、mglaman/phpstan-drupal。phpunit.xml.dist 必须从目标 core 复制,不可手写版本。
工具链与凭据:用 drupal_devkit 确保 ai_best_practices 与 ai_skills;检测 drupalorg(mglaman/drupalorg-cli,可执行文件名为 drupalorg)与 glab,缺失时给出安装指引但不阻塞。写操作需要 drupal.org 账户注册 SSH 密钥(可用 ssh -T git@git.drupal.org 检测),只读操作无需凭据。最后做环境匹配:安装 CI 目标 core 版本与 drupal/core-dev,使 phpunit/phpstan 与 CI 一致,从而让 verify 的门禁可信。
使用方式与报告:按步骤检测优先、只补缺失;重新运行已就绪环境为空操作。报告时逐项标明 ready 或 needs-action,并指向 issue 或 verify。
限制:仅在目标项目目录内写入,且每次写入前展示文件并获得明确确认;不假设工作流,无法推断时询问贡献者;drupal_devkit、drupalorg、glab、SSH 密钥等缺失只报告并给下一步,绝不阻塞;非 gitlab_templates 的 .gitlab-ci.yml 按原样记录,verify 照搬已发现任务。