Evergreen is a source template for GitHub Agentic Workflows. Changes should keep the install contract, workflow source, generated lockfile, and shared policy documents in sync.
-
Edit
workflows/evergreen.md, notworkflows/evergreen.lock.ymldirectly. -
Update the install guide and design docs when behavior or policy changes.
-
Add or update readiness fixtures when controller state handling changes.
-
Compile and validate with the pinned release toolchain:
gh extension install github/gh-aw --pin v0.83.2 gh aw compile --dir workflows --validate --strict --approve --no-check-update gh aw validate --dir workflows --strict --no-check-update ruby tests/readiness_state_machine_test.rb ruby tests/runtime_skills_test.rb git diff --check
-
Commit the regenerated
workflows/evergreen.lock.ymland any action-lock updates with the source change.
When updating Evergreen's runtime skills:
- Change and validate the packages under
.github/skills/. - Commit those changes so they have an immutable source SHA.
- Run
scripts/package-workflow.shfrom a clean worktree. - Review and commit the regenerated
workflows/evergreen.mdandworkflows/evergreen.lock.yml.
The packaging script uses gh-aw's local skill reference rewrite in an isolated
checkout. gh aw add qualifies .github/skills/... as
githubnext/evergreen/...@HEAD; the script then recompiles the generated
workflow with the repository's action lock. The published workflow retains
full-SHA references because it is a reusable template for other repositories.
Uncommitted skill changes cannot be included in a commit pin.
Keep changes focused. Do not include repository credentials, CI logs containing secrets, or private installation policy in issues or pull requests.