Issues and pull requests should describe the Git workflow problem first, then the proposed behavior.
bluffis the default and only long-lived branch.- Short-lived work branches start from and return to
bluff. - CI publishes unsigned version tags and Releases from tested
bluffcommits. See automatic releases; human-created tags may still be signed.
Run bash scripts/test-release-tested.sh to check release selection and retry
behavior against local fixtures.
Run these from the repository root with Neovim 0.10 or newer:
nvim --headless --clean -l scripts/check-lua.lua .
nvim --headless -u tests/minimal_init.lua -l tests/unit.lua
nvim --headless -u tests/minimal_init.lua -l tests/smoke.lua
nvim --headless -u tests/minimal_init.lua -l tests/signed_merge.lua
nvim --headless -u tests/minimal_init.lua -c "helptags doc" -c quit
git diff --check
git diff --exit-code -- doc/tagsKeep the plugin dependency-free unless a proposal demonstrates that a new dependency materially improves the core Git workflow. Add a smoke assertion or focused reproduction for bug fixes when practical.
GitHub provider tests must use deterministic fake transports. Never put a real token, private key, refresh token, or credential-shaped fixture in the test suite or command arguments.
Use Discussions for questions, setup showcases, and exploratory ideas. Open an Issue when work is reproducible and actionable. Cross-repository work is planned in the public Neovim Workspace.
Human commits should be signed with a GitHub-verified GPG, SSH, or S/MIME
signature. Brokered zemrip-ai commits use the expected unsigned agent
identity. On that plane, pushes are limited to agent/**; workflow changes
also require an operator-approved one-use ticket. The broker cannot push
bluff or tags, publish Releases, or administer repository secrets. Open the
pull request into bluff, complete the checklist, and wait for CI.