Skip to content

0017. The project-template repository is generated from cheme init by CI

  • Status: Accepted
  • Date: 2026-10-24

Context

New plants start either with cheme init or with GitHub's "Use this template" on ChemE-as-Code/project-template. Two hand-maintained copies of the template (in src/chemeascode/templates/project/ and in that repository) would drift, including the installed skill copies.

Decision

src/chemeascode/templates/project/ plus the bundled skills is the only source. After ci passed on a push to main, the project-template workflow runs cheme init of that commit and pushes the result to ChemE-as-Code/project-template when anything changed (token PROJECT_TEMPLATE_TOKEN). Only the tip of main is regenerated. The template repository is never edited by hand.

Consequences

  • Positive: both entry points give the same files; the template always matches the released skills.
  • Negative: a change to the template repository must be made in core; if the workflow cannot run (e.g. GitHub Actions unavailable), the template falls behind until the next run.
  • Negative: an extra secret with write access to another repository.

Evidence

  • HTTPS checkout, no LICENSE in the template repository: the plant README generated by cheme init states that the plant content is the user's to licence. The skills and scripts in it stay AGPL-3.0-or-later: .claude/skills/NOTICE.md and the plant README state both (REFERENCE.md, License).
  • .github/workflows/project-template.yml, AGENTS.md, REFERENCE.md ("How the pieces fit together").