Ship Process¶
Standard Workflow¶
local test -> PR (draft) -> CI green -> AI review -> human review -> squash merge
1. Local Testing¶
Run tests locally before opening a PR. Don't open PRs with known failures.
2. Pull Request¶
- Branch from
main - Open as draft while in progress
- Mark as ready for review when CI is green
- Link Linear issue:
Closes IT-XXXXin PR description - Fill in the PR template completely
3. CI Pipeline¶
- Must be green before requesting human review
- CI runs: lint, type check, tests, build
- If CI is red, fix it before re-requesting review
4. AI + Human Review¶
- Claude reviews automatically on PR open
- Request human review from CODEOWNERS
- Both must approve before merge
5. Squash Merge¶
- Always squash merge (not regular merge or rebase)
- Squash commit message follows Conventional Commits format
- PR is deleted after merge
Releases¶
Releases are automatic:
- release-please creates a CHANGELOG entry on each merge to main
- Deployment is per-repo — see the repo's README.md for specifics
Incidents¶
If a merge causes an incident:
1. Revert immediately: git revert the squash commit and open a PR
2. Notify: email hello@liflode.com with impact summary
3. Post-mortem: add a docs/runbooks/<incident>.md after resolution