Agent Skills › grasmash/drupal-claude-skills › canvas-contribution

canvas-contribution

GitHub

提供 Drupal Canvas 模块的贡献工作流,涵盖双仓库设置、React UI 构建、Issue Fork 及 Composer 补丁应用。指导开发者从独立项目向 drupal.org 上游提交功能或修复。

skills/canvas-contribution/SKILL.md grasmash/drupal-claude-skills

Trigger Scenarios

开发 Canvas 模块功能或 Bug 修复 将本地 Canvas 变更提交至 drupal.org Issue 配置 Canvas 双仓库环境

Install

npx skills add grasmash/drupal-claude-skills --skill canvas-contribution -g -y
More Options

Use without installing

npx skills use grasmash/drupal-claude-skills@canvas-contribution

指定 Agent (Claude Code)

npx skills add grasmash/drupal-claude-skills --skill canvas-contribution -a claude-code -g -y

安装 repo 全部 skill

npx skills add grasmash/drupal-claude-skills --all -g -y

预览 repo 内 skill

npx skills add grasmash/drupal-claude-skills --list

SKILL.md

Frontmatter
{
    "name": "canvas-contribution",
    "description": "Workflow for contributing features and fixes to the Drupal Canvas module on drupal.org while consuming it from a separate project: the two-repository setup, Canvas UI development, issue forks, merge requests, and composer patches. Use when developing a Canvas feature or bug fix intended for upstream, or when moving a local Canvas change onto a drupal.org issue. Extends drupal-contrib-mgmt with Canvas-specific details."
}

Canvas Contribution Workflow

This skill extends the general drupal-contrib-mgmt skill with Canvas-specific details.

For the general drupal.org contribution workflow (issue creation, issue forks, commit format, HTML formatting), see the drupal-contrib-mgmt skill.

Canvas-Specific Setup

Repository Structure

  • Canvas clone: <canvas-clone> — your clone of the Canvas project from git.drupal.org (for example canvas-contrib/)
  • Your app repo: <project-root> — the Drupal project that consumes Canvas

Initial Clone (One-Time)

git clone git@git.drupal.org:project/canvas.git <canvas-clone>

Canvas UI Development

Canvas has a React-based UI that requires building.

Build Commands

cd <canvas-clone>/ui
npm install
npm run lint    # Check for lint errors
npm run lint -- --fix  # Auto-fix lint errors
npm run build   # Build for production

After Applying Patches in Your App

After adding or changing a Canvas entry in extra.patches, relock before reinstalling; composer-patches v2 applies from patches.lock.json, not composer.json (full workflow: the drupal-contrib-mgmt skill).

cd <project-root>
ddev composer patches-relock
ddev composer reinstall drupal/canvas
cd <docroot>/modules/contrib/canvas/ui && npm run build
ddev drush cr

Canvas Issue Fork Example

Using issue #3569725 as an example:

cd <canvas-clone>

# Add fork remote
git remote add canvas-3569725 git@git.drupal.org:issue/canvas-3569725.git
git fetch canvas-3569725

# Checkout issue branch
git checkout -b '3569725-auto-scale-to-fit' --track canvas-3569725/'3569725-auto-scale-to-fit'

# Make changes, then commit
git add ui/src/path/to/files
git commit -m "$(cat <<'EOF'
Issue #3569725: Add auto scale-to-fit feature

- Feature detail 1
- Feature detail 2
EOF
)"

# Push
git push canvas-3569725 3569725-auto-scale-to-fit

Key Canvas Files

Area Location
UI source ui/src/
UI components ui/src/features/
CSS modules ui/src/**/*.module.css
PHP module src/
Tests tests/

Canvas Project Links

Version History

  • 19514f4 Current 2026-10-19 07:27

    修正补丁工作流程中 relock 与 reinstall 的执行时机;统一配置导出规则;调整部署顺序以遵循安全规范。

  • eb9b3d3 2026-07-25 05:35

Same Skill Collection

skills/acquia-source/SKILL.md
skills/claude-code-mcp-setup/SKILL.md
skills/design-review/SKILL.md
skills/drupal-api-endpoints/SKILL.md
skills/drupal-config-reconcile/SKILL.md
skills/drupal-ddev/SKILL.md
skills/drupal-mail/SKILL.md
skills/drupal-search-api/SKILL.md
skills/mockup-parity/SKILL.md
skills/sentry-integration/SKILL.md
skills/skill-developer/SKILL.md
skills/drupal-at-your-fingertips/SKILL.md
skills/drupal-canvas-sdc/SKILL.md
skills/drupal-canvas/SKILL.md
skills/drupal-config-mgmt/SKILL.md
skills/drupal-contrib-mgmt/SKILL.md
skills/drupal-deploy-safety/SKILL.md
skills/drupal-performance/SKILL.md
skills/drupal-simple-oauth/SKILL.md
skills/drupal-testing/SKILL.md
skills/drupal-views-patterns/SKILL.md
skills/drupal-vite-theme/SKILL.md
skills/ivangrynenko-cursorrules-drupal/SKILL.md

Metadata

Files
0
Version
19514f4
Hash
e49896fa
Indexed
2026-07-25 05:35

Accueil - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-11-01 00:03
浙ICP备14020137号-1