Open pr
Skill rfl-designer/rfl-laravel-skills/skills/process/open-pr
Claude Code plugin orchestrating the Laravel 12 + Livewire 4 + Tailwind + Alpine + Flux UI development cycle: grill-with-docs, to-prd, to-issues, tdd (Pest), open-pr, simplify, review-branch, organize-docs, update-roadmap.
npx -y skills add rfl-designer/rfl-laravel-skills --skill open-prAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Open a GitHub pull request for the current branch with title derived from Conventional Commits, body referencing closed issues, and gated by Pest + Pint. Use when the user finishes a slice and wants to open a PR, says "abrir PR", "open pr", or "ship this".
SKILL.md
4.9 KB, as published. Nobody here has run it
Open PR
Encerra o loop "código pronto → PR aberta". Não faz commit por você (use git commit antes); assume que a branch já está com tudo committado.
Pré-requisitos
ghCLI autenticado (gh auth status)- Branch atual diferente da branch base (
mainou configurada) - Pelo menos um commit seguindo Conventional Commits
vendor/bin/pestevendor/bin/pintinstalados no projeto
Processo
1. Validações preliminares
git status # working tree limpo?
git rev-parse --abbrev-ref HEAD # nome da branch atual
git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null
# branch tem upstream?
Se houver mudanças não-committadas: avise o usuário e pare. NÃO commite por ele.
Se a branch não tem upstream: rode git push -u origin <branch> antes de abrir o PR.
2. Garantir verde
vendor/bin/pest
vendor/bin/pint --test
Se algum falhar: aborte e mostre a saída. NÃO abra PR com suite vermelha.
3. Coletar commits
BASE=$(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@' || echo "main")
git log "origin/$BASE..HEAD" --pretty="%s" --reverse
Filtre os que seguem Conventional Commits (<type>(<scope>): <desc>):
- Tipos válidos:
feat,fix,refactor,docs,test,chore,style,perf,build,ci - Scope opcional, entre parênteses
Se nenhum commit segue Conventional, aborte com:
Branch sem Conventional Commits. Renomeie ao menos um commit com
git commit --amendougit rebase -iantes de abrir o PR.
4. Derivar título do PR
- Conte commits por tipo.
- Se um único tipo domina (>50% dos commits) → use esse tipo.
- Empate ou pluralidade → ordem de precedência:
feat>fix>refactor>perf>docs>test>chore>style>build>ci. - Use o primeiro commit desse tipo como título completo (com scope, se tiver).
Exemplo:
commits:
feat(livewire): add comment thread to project view
test(livewire): cover comment thread edge cases
refactor(action): extract notification dispatch
→ Título PR: feat(livewire): add comment thread to project view
5. Identificar issues fechadas
Procure nos commits e na descrição agregada por:
Closes #N
Fixes #N
Resolves #N
Coletar todos os Ns. Para cada um:
gh issue view <N> --json number,title,labels
Se o título do PR não menciona nenhuma issue mas você encontrou referências, inclua-as como Closes #N no body.
6. Detectar ADRs/PRDs tocados
git diff --name-only "origin/$BASE..HEAD" | grep -E '^docs/(adr|prd)/'
Liste-os no body — sinaliza ao reviewer humano onde olhar primeiro.
7. Detectar TODOs / WIP no diff
git diff "origin/$BASE..HEAD" | grep -iE '^\+.*(TODO|FIXME|WIP|XXX)' || true
Se houver, abrir o PR como draft (--draft).
8. Gerar body do PR
## Resumo
- <bullet 1>
- <bullet 2>
- <bullet 3>
## Issues fechadas
Closes #<N>
Closes #<M>
## Como testar
```bash
vendor/bin/pest --filter=<NomeRelevante>
# ou
php artisan serve # acessar http://localhost:8000/<rota>
Cenários a verificar:
- <cenário 1 do acceptance criteria da issue>
- <cenário 2>
Screenshots
<placeholder se PR toca UI; senão omita a seção>
ADRs / PRDs tocados
docs/adr/0007-event-sourced-comments.md(novo)docs/prd/comment-thread.md(parcialmente entregue)
Checklist
- Pest passa (
vendor/bin/pest) - Pint passa (
vendor/bin/pint --test) - Revisado num browser (UI)
- Documentação atualizada (se aplicável)
Os 3 bullets do **Resumo** devem ser derivados das mensagens de commit + corpo das issues fechadas. Foque no **valor para o usuário**, não no detalhe técnico.
### 9. Abrir o PR
```bash
gh pr create \
--title "<título derivado>" \
--body-file /tmp/pr-body.md \
--base "$BASE" \
$DRAFT_FLAG
Onde $DRAFT_FLAG é --draft se houver TODOs detectados na etapa 7.
10. Pós-criação
gh pr view --web
Imprima ao usuário:
- URL do PR
- Status (draft ou ready)
- Issues que serão fechadas no merge
- Próximos passos sugeridos: aguardar review, rodar
/review-prlocalmente para checklist prévio
Configuração opcional
.claude/open-pr-config.json:
{
"base_branch": "main",
"auto_run_pint_fix": false,
"draft_on_todos": true,
"always_include_screenshots_section": false
}
Se auto_run_pint_fix: true, rodar vendor/bin/pint (sem --test) e fazer commit style: pint autofix antes de abrir o PR. Off por padrão — alterar código sem permissão explícita é arriscado.