git-workflow
by langfuse
Langfuse repo Git, GitHub, commit, branch, pull request, issue search, release, and production-promotion workflow. Use when staging, committing, pushing,…
npx skills add https://github.com/langfuse/langfuse --skill git-workflowGit Workflow
Use this skill for repo-specific Git, GitHub, pull request, and release operations.
Safety
- Inspect
git statusbefore staging or committing. - Do not stage unrelated working-tree changes.
- Do not revert unrelated working-tree changes.
- Do not use destructive commands such as
git reset --hardorgit checkout --unless explicitly requested. - Keep commits focused and atomic.
- Never add secrets or credentials to the repo.
Commits and Pull Requests
- Commit messages and PR titles must follow Conventional Commits:
type(scope): descriptionortype: description. - Use
featfor new features andfixfor bug fixes. - Use a scope when it clarifies the affected area, for example
fix(api): handle missing trace id. - Mark breaking changes with
!in the type/scope or aBREAKING CHANGE:footer. - PR titles are validated by
.github/workflows/validate-pr-title.yml. - In PR descriptions, list impacted packages and executed verification commands.
GitHub
- Use
gh search issuesfor GitHub issue search. - Prefer non-interactive Git and GitHub commands where possible.
- Keep PRs narrow enough to review without unrelated refactors.
Release
- Releases are cut with
pnpm run release, run on the branch being released. Allowed release branches aremainandv3(scripts/release-preflight.showns the allowlist). mainis the current line and the only branch that ships to Langfuse Cloud.v3is the OSS maintenance line: a release from it produces a tag, GitHub release, and Docker images, but never a Cloud deploy.- On any
vX.Y.Ztag push,.github/workflows/release.ymlpromotesmaintoproductiononly if the tagged commit is an ancestor ofmain; maintenance-branch tags skip promotion. The production migration confirmation in the release preflight likewise only runs formain. - Promote
maintoproductionwithout a release via.github/workflows/promote-main-to-production.ymlorpnpm run release:cloud(both main-only). - The latest-release markers track the current major line:
pipeline.ymlgates the Dockerlatesttag onrefs/tags/v4, and maintenance branches disable that gate and setrelease-it.github.makeLatest: falsein their rootpackage.jsonso their releases never claim the Dockerlatesttag or the GitHub "Latest release" badge. At the next major GA (v5), repeat the flip: move the gate torefs/tags/v5onmain, then disable it and setmakeLatest: falseon the newv4maintenance branch. - Do not change release/versioning flow without updating this skill and the impacted package guides.