Contributing
Contributions to Eddy are welcome, whether it's a bug report, a fix or a better sentence in these docs. Report bugs and suggest changes in the issue queue, and send code and docs changes as pull requests against main.
This section covers working on the template itself. To work on an extension created from Eddy, see Development.
What lives where
The repository is a working Drupal extension, the demo extension in the project root, plus the tooling that turns it into a reusable template:
install.php- the one-off interactive installer that renames, rewrites and prunes the template files for a new project, then deletes itself.scripts/eddy-tooling- installs thedrevops/eddy-toolingpackage, whose commands build, provision and deploy the extension, intovendor/. Generated projects get the package from Packagist; this repository installs.eddy/toolingas a symlink, so an edit there applies to the next command without a release..eddy/- everything used to develop and test the scaffold itself, including the source of the tooling package. It's removed from generated projects..claude/skills/- the Claude Code skills used to maintain the scaffold, such ascreate-eddy-tooling-release-notes.install.phpremoves them from generated projects by name, as listed ineddy_skills(), so add a new skill there too.
Inside .eddy/:
.eddy/assets/- the animated demos that these docs and the README embed, with the generator that records them, and the social preview card..eddy/docs/- the source of these docs (see Documentation)..eddy/tests/- the PHPUnit suite that validates the scaffold (see Scaffold tests)..eddy/tooling/- the source of thedrevops/eddy-toolingpackage (see Tooling releases)..eddy/skills/- theupdate-consumer-eddyskill that generated projects fetch to update themselves.
README.md, CONTRIBUTING.md, MIGRATION.md, SECURITY.md and LICENSE.txt belong to Eddy too. A generated project gets its own README.md and CONTRIBUTING.md, rendered from README.dist.md and CONTRIBUTING.dist.md, so keep consumer-facing notes in those templates.
Building and testing the demo extension
The scaffold builds and tests itself exactly like a generated project, so the Development commands apply here too:
ahoy build # or: make build
ahoy lint # or: make lint
ahoy test # or: make test
The maintenance reference
.eddy/CLAUDE.md is the full maintenance reference, written for AI agents and humans alike. It covers what these pages don't:
- the marker blocks that
install.phpprunes the template with, and the rules a block must follow; - the text that
install.phprenders from the answers; - the steps for adding a Drupal major or a development tool;
- how
install.phppicks the workflow branches, the GitHub repository and the template version; - how to regenerate the animated demos and the social preview card.
In this section
- Scaffold tests - the self-tests, their groups and the snapshot fixtures.
- Tooling releases - publishing the tooling package and releasing it.
- Documentation - working on these docs and publishing them.