diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..72e70c7 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,26 @@ +# Fleet release ritual: tag vX.Y.Z from protoagent.bundle.yaml's `version:`, write +# LLM-themed notes, create the GitHub release and post the Discord embed. The logic +# lives in protoLabsAI/release-tools (plugin-release.yml auto-detects the bundle +# manifest and labels the release as an archetype). Never `gh release create` by hand. +# +# Fires on a `chore: release vX.Y.Z` squash subject on main, or `gh workflow run Release`. +# Idempotent: a re-run on an existing tag is a no-op. +name: Release + +on: + push: + branches: [main] + workflow_dispatch: + +permissions: + contents: write # granted here: a called workflow can only downgrade + +jobs: + release: + # Fork guard: a fork must not cut releases under the upstream name. + if: >- + github.repository == 'protoLabsAI/engineer-archetype' && + (github.event_name == 'workflow_dispatch' || + startsWith(github.event.head_commit.message, 'chore: release v')) + uses: protoLabsAI/release-tools/.github/workflows/plugin-release.yml@v2 + secrets: inherit # notes gateway + Discord webhook are org-level diff --git a/protoagent.bundle.yaml b/protoagent.bundle.yaml index 12eb2f4..23ad53c 100644 --- a/protoagent.bundle.yaml +++ b/protoagent.bundle.yaml @@ -58,6 +58,11 @@ id: engineer-archetype name: Engineer +# Release version — the source of truth for the vX.Y.Z tag. Read by release-tools' +# plugin-release.yml (.github/workflows/release.yml); protoAgent's bundle loader ignores it. +# Bump it in the PR that ships the release, then merge as `chore: release vX.Y.Z` (or +# run the Release workflow by hand). +version: 0.1.3 description: >- A hands-on pair-programming navigator for the operator's own machine. Point it at a repo (a git URL or a folder) and it clones or registers it, proves the toolchain,