github_workflowlisted
Install: claude install-skill VytCepas/project-init
Load this skill before any push, PR creation, review response, or merge action.
## Quick reference
| Step | Pattern |
|------|---------|
| Branch | `<type>/<PROJECT-KEY>-<n>-<kebab-slug>` e.g. `feat/PI-42-add-oauth` |
| PR title | `type(PROJECT-123): description` e.g. `feat(PI-42): Add OAuth login` |
| No-issue PR | `type: description` (no scope) e.g. `fix: Fix typo` |
| PR body | Must include `Closes #N` (skip for no-issue PRs) |
Commit messages use the same format (Conventional Commits). Legacy `[PROJECT-123][type]` is accepted by validators during transition but must not be emitted.
Types: `feat` `fix` `chore` `docs` `test`
**Branch model:** single-trunk — feature PRs target the repo default branch (`main`) and squash-merge. Environments are a deploy-time concern (config + deploy target), not a branching concern.
## Agent safety — the production boundary
You (the agent) work on **feature/PR branches only — never push or commit to the production ref (`main`)**. On any auto-deploy platform, write access to the production branch *is* production-deploy access. This is enforced two ways:
- **Fast-feedback (in-repo):** the command guard blocks `git push main`/`master`, `gh pr merge`, and `gh api .../merge` — but a hook is editable, so treat it as a guard rail, not the boundary.
- **The real boundary (server-side), tiered by profile (ADR-013):** run `.agents/scripts/setup_github.sh --protect` once with admin rights. For the **`org`** profile it installs rulesets with an *