.agents/skills/git-workflow/SKILL.md
Use this skill for repo-specific Git, GitHub, pull request, and release operations.
git status before staging or committing.git reset --hard or
git checkout -- unless explicitly requested.type(scope): description or type: description.feat for new features and fix for bug fixes.fix(api): handle missing trace id.! in the type/scope or a BREAKING CHANGE:
footer..github/workflows/validate-pr-title.yml.main's permanent history. Describe the change on its own terms
and carry the identifier in the branch name instead.gh search issues for GitHub issue search.pnpm run release, run on the branch being released.
Allowed release branches are main and v3
(scripts/release-preflight.sh owns the allowlist).main is the current line and the only branch that ships to Langfuse
Cloud. v3 is the OSS maintenance line: a release from it produces a tag,
GitHub release, and Docker images, but never a Cloud deploy.vX.Y.Z tag push, .github/workflows/release.yml promotes main
to production only if the tagged commit is an ancestor of main;
maintenance-branch tags skip promotion. The production migration
confirmation in the release preflight likewise only runs for main.main to production without a release via
.github/workflows/promote-main-to-production.yml or
pnpm run release:cloud (both main-only).pipeline.yml
gates the Docker latest tag on refs/tags/v4, and maintenance branches
disable that gate and set release-it.github.makeLatest: false in their
root package.json so their releases never claim the Docker latest tag
or the GitHub "Latest release" badge. At the next major GA (v5), repeat
the flip: move the gate to refs/tags/v5 on main, then disable it and
set makeLatest: false on the new v4 maintenance branch.