Skip to content

Latest commit

 

History

History
42 lines (33 loc) · 1.82 KB

File metadata and controls

42 lines (33 loc) · 1.82 KB

Contributing to Evergreen

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.

Before Opening a Pull Request

  1. Edit workflows/evergreen.md, not workflows/evergreen.lock.yml directly.

  2. Update the install guide and design docs when behavior or policy changes.

  3. Add or update readiness fixtures when controller state handling changes.

  4. 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
  5. Commit the regenerated workflows/evergreen.lock.yml and any action-lock updates with the source change.

When updating Evergreen's runtime skills:

  1. Change and validate the packages under .github/skills/.
  2. Commit those changes so they have an immutable source SHA.
  3. Run scripts/package-workflow.sh from a clean worktree.
  4. Review and commit the regenerated workflows/evergreen.md and workflows/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.