Contrib Drupal Module Development

One way to set up local Development for a contrib module using e0ipso's AI suite. See Agentic Coding Harness for Drupal 

BDEV_CURRENT_SITE="config_suite"
cd ~/Sites
git clone git@git.drupal.org:project/$BDEV_CURRENT_SITE.git
cd $BDEV_CURRENT_SITE
cp ~/projects/.gitignore-ddev .gitignore
ddev config --project-type=drupal11 --docroot=web
orb
ddev add-on get ddev/ddev-drupal-contrib
ddev add-on get hanoii/ddev-drupal-contrib-extras
ddev start
ddev poser

ddev symlink-project
ddev config --update
ddev restart
ddev drush si -y
ddev drush en $BDEV_CURRENT_SITE -y
open $(ddev drush uli)
ddev exec "cd web/core && yarn install"

# Temporary workaround on Mac because e0ipso's plugin only works for Linux for importing local OpenCode config
mkdir -p $HOME/Sites/$BDEV_CURRENT_SITE/.ddev/homeadditions/.local/share
ln -s $HOME/.local/share/opencode $HOME/Sites/$BDEV_CURRENT_SITE/.ddev/homeadditions/.local/share/opencode

ddev add-on get e0ipso/ddev-playwright-cli
ddev add-on get e0ipso/ddev-assistant-opencode
ddev add-on get e0ipso/ddev-assistant-t3
ddev restart

# Allows running playwright-cli from inside the container
#   without having to use the --config option
# Symlinks .claude playwright skills to .agents folder for other harnesses. 
ddev ssh

rm .playwright/cli.config.json
ln -s "$(pwd)/.ddev/playwright-cli/cli.config.json" .playwright/cli.config.json
mkdir -p .agents/skills
ln -s "$(pwd)/.claude/skills/playwright-cli" .agents/skills/playwright-cli
exit

npx kenkeep init --harnesses opencode
npx kenkeep doctor
npx kenkeep pack import e0ipso/kenkeep-pack-drupal
npx strikethroo init --harnesses opencode
npx skills add e0ipso/strikethroo

Strikethroo workflow: https://strikethroo.canpicasoft.com/workflow.html Kenkeep docs: https://kenkeep.canpicasoft.com/

  • ddev t3 start
  • npx strikethroo serve
  • /st-create-plan display a welcome message to new users
  • /st-refine-plan 1, see review.xml
  • /st-execute-blueprint 1
  • /st-code-review 1, line 95 in example.module has a typo: "piece" should be "peace"
Tags