diff --git a/.github/workflows/af-tag-release.yml b/.github/workflows/af-tag-release.yml index 1888ae6319..78117978d8 100644 --- a/.github/workflows/af-tag-release.yml +++ b/.github/workflows/af-tag-release.yml @@ -31,3 +31,7 @@ jobs: echo "Tagging ${TAG}" git tag "$TAG" git push origin "$TAG" + + - name: Update af-stable branch + run: | + git push origin HEAD:refs/heads/af-stable --force diff --git a/CLAUDE.md b/CLAUDE.md index e13da001bd..0a5f1cbbe5 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -17,9 +17,11 @@ Read @FORK.md for full context on this fork. ## Development -- Install locally: `uv tool install . --force --reinstall` +- Install locally (dev): `uv tool install . --force --reinstall` +- Install from release: `uv tool install git+https://github.com/appfolio/spec-kit@af-stable --force` - Test: `specify-af version` then `specify-af init --here --ai claude` in a scratch directory - Binary is `specify-af`, package is `specify-af-cli` +- `af-stable` branch is the end-user install target — only updated when a release is tagged ## Testing diff --git a/FORK.md b/FORK.md index 68467e628a..e51b11058f 100644 --- a/FORK.md +++ b/FORK.md @@ -13,6 +13,21 @@ This is AppFolio's fork of [github/spec-kit](https://github.com/github/spec-kit) | New command | `specify-af upgrade` — syncs AF extensions to bundled versions | | Version resolution | Uses `packages_distributions()` instead of hardcoded package name | | Release workflow | release-please with `af-v*` tags on `af-main` | +| Install branch | `af-stable` — only updated on release, safe for end-user installs | + +## Installing + +End users should install from the `af-stable` branch, which only updates when a release is tagged: + +```bash +uv tool install git+https://github.com/appfolio/spec-kit@af-stable --force +``` + +To upgrade to the latest release: + +```bash +uv tool install git+https://github.com/appfolio/spec-kit@af-stable --force --reinstall +``` ## Conflict-Prone Files