Close Issue¶
Fecha issue no Linear (Done), faz commit com "Closes PDL-XX", merge para main e dispara deploy conforme plataforma do projeto.
Quando usar¶
/close-issue PDL-11, /close-issue (lista In Progress), "fechar PDL-11", "terminei", "entregue".
Conteúdo da Skill¶
---
name: close-issue
description: Fecha uma issue no Linear (Done), faz commit com "Closes PDL-XX", merge para main e dispara deploy conforme plataforma do projeto.
---
# /close-issue
## Quando ativar
- `close-issue PDL-11` / `close-issue` (lista In Progress)
- "fechar PDL-11", "terminei", "entregue"
## Plataformas de deploy por projeto
| Projeto | Plataforma | Deploy |
|---|---|---|
| cadencia-app | Vercel + Coolify VPS Master | automático ao mergear main (workers: deploy Coolify) |
| gci-go-whatsapp | VPS Hostinger | manual: pull + restart |
| lara (confirmação de agenda) | VPS Hostinger | manual: pull + restart |
| bot-telegram | VPS Hostinger | manual: pull + restart |
## Passo 1 — Identificar issue
```python
import subprocess, json, os
def get_token():
try:
for line in open('/root/.claude/.env'):
if line.startswith('LINEAR_API_TOKEN='):
return line.strip().split('=',1)[1]
except: pass
return os.environ.get('LINEAR_API_TOKEN','')
TOKEN = get_token()
QUERY = """{ issues(filter: {
assignee: { isMe: { eq: true } }
state: { type: { eq: "started" } }
}, first: 10) { nodes { id identifier title project { name } branchName } } }"""
r = subprocess.run(['curl','-s','-X','POST','https://api.linear.app/graphql',
'-H', f'Authorization: {TOKEN}', '-H', 'Content-Type: application/json',
'-d', json.dumps({'query': QUERY})
], capture_output=True)
issues = json.loads(r.stdout)['data']['issues']['nodes']
Passo 2 — Verificar git status¶
Tem arquivos não commitados? Avisar antes de fechar.
Passo 3 — Confirmar entrega¶
Mostrar critérios de aceite da issue e perguntar se está tudo feito.
Passo 4 — Commit + merge para main¶
git add <arquivos>
git commit -m "feat: [descricao]
Closes PDL-XX"
git push origin <branch-da-issue>
# Merge direto para main (sem PR)
git checkout main
git pull origin main
git merge <branch-da-issue> --no-ff -m "merge: PDL-XX [descricao]"
git push origin main
OBRIGATORIO: Closes PDL-XX no corpo do commit fecha a issue no Linear automaticamente.
Passo 5 — Deploy conforme plataforma¶
Vercel / Railway — deploy automático¶
O push para main já dispara o deploy. Apenas confirmar:
VPS Hostinger — deploy manual¶
VPS_IP="72.60.4.71"
SSH_KEY="/root/.ssh/hostinger_pd"
REPO_PATH="/root/<nome-do-repo>"
ssh -i $SSH_KEY root@$VPS_IP "
cd $REPO_PATH
git pull origin main
if command -v pm2 &>/dev/null && pm2 list | grep -q $REPO_PATH; then
pm2 restart all
elif command -v docker &>/dev/null && docker ps | grep -q <container-name>; then
docker compose pull && docker compose up -d
else
echo 'Reiniciar manualmente — nao detectei pm2 nem docker'
fi
echo 'Deploy VPS concluido'
"
Passo 6 — Marcar Done no Linear¶
Usar mutation GraphQL para atualizar o estado da issue para o primeiro estado do tipo "completed".
Regras¶
- Verificar git status antes de fechar
- Sempre mergear para main — sem PR, merge direto
Closes PDL-XXno commit fecha automaticamente no Linear- Vercel/Railway: deploy é automático após push no main
- VPS: sempre rodar pull + restart após merge
- Não fechar se usuário não confirmou que terminou ```
Notas Relacionadas¶
Gestao-Projetos/Start Issue · Gestao-Projetos/Gestao Atividades Projeto