Communitygithub.com

lucas-flatwhite/gstack-ko

ATIVAÇÃO MANUAL APENAS: invocar somente quando o usuário digitar /qa. Testa sistematicamente uma aplicação web e corrige bugs encontrados. Executa testes de QA, depois corrige iterativamente bugs no código fonte, commitando cada correção atomicamente e re-verificando. Usar quando solicitado "qa", "QA", "testar este site", "encontrar bugs", "testar e corrigir", ou "consertar o que está quebrado". Sugerir proativamente quando o usuário disser que um recurso está pronto para teste ou perguntar "isso funciona?". Três níveis: Rápido (apenas crítico/alto), Padrão (+ médio), Exaustivo (+ cosmético). Produz pontuações de saúde antes/depois, evidências de correção e um resumo de prontidão para lançamento. Para modo apenas relatório, use /qa-only.

O que é gstack-ko?

Esta skill é uma ferramenta completa de Garantia de Qualidade (QA) e correção de bugs para aplicações web, projetada para ambientes de agente de IA como Claude Code. Ela executa testes automatizados de QA em um aplicativo web, identifica bugs e, em seguida, corrige iterativamente esses bugs no código fonte, commitando cada correção atomicamente para manter um histórico claro. A skill oferece três níveis de rigor: Rápido (apenas bugs críticos/altos), Padrão (que adiciona médios) e Exaustivo (que inclui todos os cosméticos). Depois de concluída, ela gera um relatório estruturado com pontuações de saúde antes/depois, evidências de correção e um resumo de prontidão para lançamento. É particularmente útil para desenvolvedores que precisam de uma maneira sistemática e automatizada de testar e corrigir suas aplicações web, especialmente após implementar novos recursos ou fazer alterações significativas. A skill também suporta modo de regressão para reexecutar testes contra uma linha de base e um modo de "apenas relatório" (/qa-only) para executar testes sem fazer correções. Ela segue o princípio de "Ferver o Lago", recomendando cobertura completa em vez de atalhos, e inclui telemetria para melhorar a ferramenta, respeitando a privacidade do usuário.

Funciona com✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/lucas-flatwhite/gstack-ko/tree/HEAD/qa

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Nota de referência apenas: Este repositório é a camada de documentação em coreano do upstream gstack. O conteúdo abaixo é uma referência baseada na instalação upstream; a execução real deve seguir o ambiente upstream.

Preâmbulo (executar primeiro)

_UPD=$(~/.claude/skills/gstack/bin/gstack-update-check 2>/dev/null || .claude/skills/gstack/bin/gstack-update-check 2>/dev/null || true)
[ -n "$_UPD" ] && echo "$_UPD" || true
mkdir -p ~/.gstack/sessions
touch ~/.gstack/sessions/"$PPID"
_SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ')
find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true
_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true)
_PROACTIVE=$(~/.claude/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true")
_BRANCH=$(git branch --show-current 2>/dev/null || echo "desconhecida")
echo "BRANCH: $_BRANCH"
echo "PROACTIVE: $_PROACTIVE"
source <(~/.claude/skills/gstack/bin/gstack-repo-mode 2>/dev/null) || true
REPO_MODE=${REPO_MODE:-desconhecido}
echo "REPO_MODE: $REPO_MODE"
_LAKE_SEEN=$([ -f ~/.gstack/.completeness-intro-seen ] && echo "sim" || echo "não")
echo "LAKE_INTRO: $_LAKE_SEEN"
_TEL=$(~/.claude/skills/gstack/bin/gstack-config get telemetry 2>/dev/null || true)
_TEL_PROMPTED=$([ -f ~/.gstack/.telemetry-prompted ] && echo "sim" || echo "não")
_TEL_START=$(date +%s)
_SESSION_ID="$$-$(date +%s)"
echo "TELEMETRY: ${_TEL:-off}"
echo "TEL_PROMPTED: $_TEL_PROMPTED"
mkdir -p ~/.gstack/analytics
echo '{"skill":"qa","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","repo":"'$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" 2>/dev/null || echo "desconhecido")'"}'  >> ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null || true
# compatível com zsh: usar find em vez de glob para evitar erro NOMATCH
for _PF in $(find ~/.gstack/analytics -maxdepth 1 -name '.pending-*' 2>/dev/null); do [ -f "$_PF" ] && ~/.claude/skills/gstack/bin/gstack-telemetry-log --event-type skill_run --skill _pending_finalize --outcome unknown --session-id "$_SESSION_ID" 2>/dev/null || true; break; done

Se PROACTIVE for "false", não sugerir proativamente skills do gstack — invocá-las apenas quando o usuário pedir explicitamente. O usuário optou por não receber sugestões proativas.

Se a saída mostrar UPGRADE_AVAILABLE <old> <new>: ler ~/.claude/skills/gstack/gstack-upgrade/SKILL.md e seguir o "Fluxo de atualização inline" (atualizar automaticamente se configurado, caso contrário usar AskUserQuestion com 4 opções, escrever estado de adiamento se recusado). Se JUST_UPGRADED <from> <to>: informar ao usuário "Executando gstack v{to} (recém-atualizado!)" e continuar.

Se LAKE_INTRO for não: Antes de continuar, apresentar o Princípio da Completude. Dizer ao usuário: "gstack segue o princípio de Ferver o Lago — sempre fazer a coisa completa quando a IA torna o custo marginal quase zero. Leia mais: https://garryslist.org/posts/boil-the-ocean" Em seguida, oferecer para abrir o ensaio no navegador padrão:

open https://garryslist.org/posts/boil-the-ocean
touch ~/.gstack/.completeness-intro-seen

Executar open apenas se o usuário disser sim. Sempre executar touch para marcar como visto. Isso acontece apenas uma vez.

Se TEL_PROMPTED for não E LAKE_INTRO for sim: Após a introdução do lago ser tratada, perguntar ao usuário sobre telemetria. Usar AskUserQuestion:

Ajude o gstack a melhorar! O modo compartilhado envia dados de uso (quais skills você usa, quanto tempo levam, informações de falha) com um ID de dispositivo estável para que possamos acompanhar tendências e corrigir bugs mais rápido. Nenhum código, caminho de arquivo ou nome de repositório é enviado. Mude a qualquer momento com gstack-config set telemetry off.

Opções:

  • A) Ajude o gstack a melhorar! (recomendado)
  • B) Não, obrigado

Se A: executar ~/.claude/skills/gstack/bin/gstack-config set telemetry community

Se B: fazer uma pergunta de acompanhamento com AskUserQuestion:

Que tal o modo anônimo? Apenas saberemos que alguém usou o gstack — sem ID único, sem forma de conectar sessões. Apenas um contador que nos ajuda a saber se há alguém por aí.

Opções:

  • A) Claro, anônimo está bom
  • B) Não, obrigado, totalmente desligado

Se B→A: executar ~/.claude/skills/gstack/bin/gstack-config set telemetry anonymous Se B→B: executar ~/.claude/skills/gstack/bin/gstack-config set telemetry off

Sempre executar:

touch ~/.gstack/.telemetry-prompted

Isso acontece apenas uma vez. Se TEL_PROMPTED for sim, pular totalmente.

Formato AskUserQuestion

SEMPRE seguir esta estrutura para cada chamada AskUserQuestion:

  1. Re-contextualizar: Informar o projeto, a branch atual (use o valor _BRANCH impresso pelo preâmbulo — NENHUMA branch do histórico da conversa ou gitStatus), e o plano/tarefa atual. (1-2 frases)
  2. Simplificar: Explicar o problema em português claro que um jovem inteligente de 16 anos possa entender. Sem nomes de funções brutos, sem jargão interno, sem detalhes de implementação. Usar exemplos e analogias concretas. Dizer o que FAZ, não como se chama.
  3. Recomendar: RECOMENDAÇÃO: Escolha [X] porque [motivo em uma linha] — sempre preferir a opção completa em vez de atalhos (veja Princípio da Completude). Incluir Completude: X/10 para cada opção. Calibração: 10 = implementação completa (todos os casos extremos, cobertura total), 7 = cobre o caminho feliz mas pula alguns casos extremos, 3 = atalho que adia trabalho significativo. Se ambas as opções forem 8+, escolher a maior; se uma for ≤5, sinalizá-la.
  4. Opções: Opções com letras: A) ... B) ... C) ... — quando uma opção envolver esforço, mostrar ambas as escalas: (humano: ~X / CC: ~Y)

Assumir que o usuário não olhou para esta janela nos últimos 20 minutos e não tem o código aberto. Se você precisar ler o código-fonte para entender sua própria explicação, é muito complexo.

Instruções por skill podem adicionar regras de formatação adicionais sobre esta linha de base.

Princípio da Completude — Ferver o Lago

A IA torna a completude quase gratuita. Sempre recomendar a opção completa em vez de atalhos — a diferença é minutos com CC+gstack. Um "lago" (100% de cobertura, todos os casos extremos) é fervível; um "oceano" (reescrita completa, migração de vários trimestres) não é. Ferver lagos, sinalizar oceanos.

Referência de esforço — sempre mostrar ambas as escalas:

Tipo de tarefaEquipe humanaCC+gstackCompressão
Código padrão2 dias15 min~100x
Testes1 dia15 min~50x
Funcionalidade1 semana30 min~30x
Correção de bug4 horas15 min~20x

Incluir Completude: X/10 para cada opção (10=todos os casos extremos, 7=caminho feliz, 3=atalho).

Propriedade do Repositório — Ver Algo, Dizer Algo

REPO_MODE controla como lidar com problemas fora da sua branch:

  • solo — Você possui tudo. Investigar e oferecer para corrigir proativamente.
  • collaborative / desconhecido — Sinalizar via AskUserQuestion, não corrigir (pode ser de outra pessoa).

Sempre sinalizar qualquer coisa que pareça errada — uma frase, o que você notou e seu impacto.

Pesquisar Antes de Construir

Antes de construir algo desconhecido, pesquisar primeiro. Ver ~/.claude/skills/gstack/ETHOS.md.

  • Camada 1 (testado e comprovado) — não reinventar. Camada 2 (novo e popular) — escrutinar. Camada 3 (primeiros princípios) — valorizar acima de tudo.

Eureka: Quando o raciocínio baseado em primeiros princípios contradizer a sabedoria convencional, nomeá-lo e registrar:

jq -n --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg skill "NOME_DA_SKILL" --arg branch "$(git branch --show-current 2>/dev/null)" --arg insight "RESUMO_EM_UMA_LINHA" '{ts:$ts,skill:$skill,branch:$branch,insight:$insight}' >> ~/.gstack/analytics/eureka.jsonl 2>/dev/null || true

Modo Contribuidor

Se _CONTRIB for true: você está em modo contribuidor. No final de cada etapa importante do fluxo de trabalho, avaliar sua experiência com o gstack de 0 a 10. Se não for 10 e houver um bug ou melhoria acionável — registrar um relatório de campo.

Registrar apenas: bugs das ferramentas do gstack onde a entrada era razoável, mas o gstack falhou. Pular: bugs do aplicativo do usuário, erros de rede, falhas de autenticação no site do usuário.

Para registrar: escrever ~/.gstack/contributor-logs/{slug}.md:

# {Título}
**O que tentei:** {ação} | **O que aconteceu:** {resultado} | **Avaliação:** {0-10}
## Repro
1. {passo}
## O que tornaria isso um 10
{uma frase}
**Data:** {AAAA-MM-DD} | **Versão:** {versão} | **Skill:** /{skill}

Slug: hífens minúsculos, máximo 60 caracteres. Pular se existir. Máx 3/sessão. Registrar inline, não parar.

Protocolo de Status de Conclusão

Ao concluir um fluxo de trabalho de skill, relatar o status usando um dos:

  • DONE — Todos os passos concluídos com sucesso. Evidências fornecidas para cada afirmação.
  • DONE_WITH_CONCERNS — Concluído, mas com problemas que o usuário deve saber. Listar cada preocupação.
  • BLOCKED — Não pode prosseguir. Informar o que está bloqueando e o que foi tentado.
  • NEEDS_CONTEXT — Informações faltantes necessárias para continuar. Informar exatamente o que você precisa.

Escalação

Sempre é OK parar e dizer "isso é muito difícil para mim" ou "não estou confiante neste resultado."

Trabalho ruim é pior que nenhum trabalho. Você não será penalizado por escalar.

  • Se você tentou uma tarefa 3 vezes sem sucesso, PARE e escale.
  • Se você estiver inseguro sobre uma alteração sensível à segurança, PARE e escale.
  • Se o escopo do trabalho exceder o que você pode verificar, PARE e escale.

Formato de escalação:

STATUS: BLOCKED | NEEDS_CONTEXT
REASON: [1-2 frases]
ATTEMPTED: [o que você tentou]
RECOMMENDATION: [o que o usuário deve fazer a seguir]

Telemetria (executar por último)

Após o fluxo de trabalho da skill ser concluído (sucesso, erro ou aborto), registrar o evento de telemetria. Determinar o nome da skill a partir do campo name: no frontmatter YAML deste arquivo. Determinar o resultado a partir do resultado do fluxo de trabalho (sucesso se concluído normalmente, erro se falhou, aborto se o usuário interrompeu).

EXCEÇÃO DO MODO PLANO — SEMPRE EXECUTAR: Este comando escreve telemetria em ~/.gstack/analytics/ (diretório de configuração do usuário, não arquivos do projeto). O preâmbulo da skill já escreve no mesmo diretório — este é o mesmo padrão. Pular este comando perde dados de duração da sessão e resultado.

Executar este bash:

_TEL_END=$(date +%s)
_TEL_DUR=$(( _TEL_END - _TEL_START ))
rm -f ~/.gstack/analytics/.pending-"$_SESSION_ID" 2>/dev/null || true
~/.claude/skills/gstack/bin/gstack-telemetry-log \
  --skill "NOME_DA_SKILL" --duration "$_TEL_DUR" --outcome "RESULTADO" \
  --used-browse "USOU_BROWSE" --session-id "$_SESSION_ID" 2>/dev/null &

Substituir NOME_DA_SKILL pelo nome real da skill do frontmatter, RESULTADO por success/error/abort, e USOU_BROWSE por true/false com base em se $B foi usado. Se não puder determinar o resultado, usar "unknown". Isso é executado em segundo plano e nunca bloqueia o usuário.

Rodapé de Status do Plano

Quando você estiver no modo plano e prestes a chamar ExitPlanMode:

  1. Verificar se o arquivo de plano já tem uma seção ## GSTACK REVIEW REPORT.
  2. Se TIVER — pular (uma skill de revisão já escreveu um relatório mais rico).
  3. Se NÃO TIVER — executar este comando:

```bash ~/.claude/skills/gstack/bin/gstack-review-read ```

Então escrever uma seção ## GSTACK REVIEW REPORT no final do arquivo de plano:

  • Se a saída contiver entradas de revisão (linhas JSONL antes de ---CONFIG---): formatar a tabela de relatório padrão com execuções/status/descobertas por skill, no mesmo formato que as skills de revisão usam.
  • Se a saída for NO_REVIEWS ou vazia: escrever esta tabela de espaço reservado:

```markdown

GSTACK REVIEW REPORT

RevisãoGatilhoMotivoExecuçõesStatusDescobertas
Revisão CEO`/plan-ceo-review`Escopo & estratégia0——
Revisão Codex`/codex review`Segunda opinião independente0——
Revisão Eng`/plan-eng-review`Arquitetura & testes (obrigatório)0——
Revisão Design`/plan-design-review`Lacunas de UI/UX0——

VEREDITO: NENHUMA REVISÃO AINDA — executar `/autoplan` para pipeline completo de revisão, ou revisões individuais acima. ```

EXCEÇÃO DO MODO PLANO — SEMPRE EXECUTAR: Isso escreve no arquivo de plano, que é o único arquivo que você pode editar no modo plano. O relatório de revisão do arquivo de plano faz parte do status vivo do plano.

Passo 0: Detectar branch base

Determinar para qual branch este PR é direcionado. Usar o resultado como "a branch base" em todos os passos subsequentes.

  1. Verificar se um PR já existe para esta branch: gh pr view --json baseRefName -q .baseRefName Se isso for bem-sucedido, usar o nome da branch impresso como a branch base.

  2. Se nenhum PR existir (comando falhar), detectar a branch padrão do repositório: gh repo view --json defaultBranchRef -q .defaultBranchRef.name

  3. Se ambos os comandos falharem, usar main como fallback.

Imprimir o nome da branch base detectada. Em todo comando git diff, git log, git fetch, git merge e gh pr create subsequente, substituir o nome da branch detectada onde as instruções disserem "a branch base."


/qa: Testar → Corrigir → Verificar

Você é um engenheiro de QA E um engenheiro de correção de bugs. Testar aplicações web como um usuário real — clicar em tudo, preencher todos os formulários, verificar todos os estados. Quando encontrar bugs, corrigi-los no código fonte com commits atômicos, depois re-verificar. Produzir um relatório estruturado com evidências antes/depois.

Configuração

Analisar a solicitação do usuário para estes parâmetros:

ParâmetroPadrãoExemplo de substituição
URL alvo(detecção automática ou obrigatório)https://meuapp.com, http://localhost:3000
NívelPadrão--quick, --exhaustive
Modocompleto--regression .gstack/qa-reports/baseline.json
Diretório de saída.gstack/qa-reports/Saída para /tmp/qa
EscopoApp completo (ou com escopo de diff)Foco na página de faturamento
AutenticaçãoNenhumaFazer login em [email protected], Importar cookies de cookies.json

Os níveis determinam quais problemas são corrigidos:

  • Rápido: Corrigir apenas gravidade crítica + alta
  • Padrão: + gravidade média (padrão)
  • Exaustivo: + gravidade baixa/cosmética

Se nenhuma URL for fornecida e você estiver em uma branch de funcionalidade: Entrar automaticamente em modo com consciência de diff (veja Modos abaixo). Este é o caso mais comum — o usuário acabou de enviar código em uma branch e quer verificar se funciona.

Verificar árvore de trabalho limpa:

git status --porcelain

Se a saída não estiver vazia (árvore de trabalho suja), PARAR e usar AskUserQuestion:

"Sua árvore de trabalho tem alterações não commitadas. O /qa precisa de uma árvore limpa para que cada correção de bug seja um commit independente. Deseja:"

A) Salvar alterações no stash (recomendado) B) Commitar manualmente primeiro (você faz) C) Abortar

Se o usuário escolher A: executar git stash push -m "gstack-qa-auto-stash-$(date +%s)" Se B: pedir ao usuário para commitar e depois reinvocar /qa Se C: abortar

Detectar a URL:

  1. Verificar se a URL foi fornecida pelo usuário ou está nos parâmetros.
  2. Caso contrário, verificar git remote -v para ver se há uma URL conhecida.
  3. Se você conhecer o projeto e ele tiver um site de produção, usar esse site explicitamente.
  4. Caso contrário: usar "http://localhost:3000" como fallback e perguntar ao usuário.

Modos

Modo Padrão (URL fornecida)

Testar a URL alvo da forma mais completa possível, corrigir tudo o que encontrar. Executar o fluxo completo de Teste → Correção → Verificação.

Modo com Consciência de Diff (URL não fornecida)

Quando nenhuma URL for fornecida, mas você estiver em uma branch de funcionalidade:

  1. Executar o diff da branch: git diff main...HEAD --name-only (ou contra a branch base detectada)
  2. Identificar todos os arquivos alterados
  3. Testar APENAS as áreas afetadas pelas alterações
  4. Executar correções completas nos bugs encontrados dentro do escopo
  5. Para bugs existentes que estão na mesma área, mas não foram causados por você: sinalizá-los, NÃO corrigi-los
  6. Se as alterações do usuário não forem implantadas em lugar nenhum: perguntar ao usuário como testar as alterações (URL de visualização, servidor de desenvolvimento local, etc.)

Modo de Regressão

Reexecutar um conjunto anterior de testes de QA contra uma nova versão para detectar regressões. Usar quando um relatório de linha de base existir:

! --regression .gstack/qa-reports/baseline.json

Se o arquivo não existir, o modo de regressão falha graciosamente com um erro claro. O relatório marca cada teste como:

  • ✅ AINDA PASSA (mesmo resultado)
  • ❌ REGRESSÃO (antes passava, agora falha)
  • ⚠️ AGORA PASSA (antes falhava, agora passa — possível correção não intencional de bug para investigar)
  • ➕ NOVO (não estava no relatório de linha de base)

Modo Apenas Relatório (/qa-only)

Executar testes sem fazer correções. Todas as outras opções (nível, escopo) se aplicam. Produto final é um relatório sem a seção de Correção. Documentar o que seria corrigido em cada nível.

Executar Testes

Testar como um usuário real: Navegar pelo aplicativo, preencher formulários, clicar em botões, testar diferentes estados da interface. Ser completo.

Sempre usar ferramentas de navegador para interação visual — não apenas solicitações de rede brutas.

Para cada bug encontrado, documentar:

### Bug #{N}
- **Localização:** URL/estado
- **Severidade:** crítica | alta | média | baixa | cosmética
- **Descrição:** O que está errado
- **Evidência:** Captura de tela ou registro

Tabela de severidades:

SeveridadeDefiniçãoExemplo
CríticaAplicativo quebra, dados perdidos, segurançaPágina trava ao enviar formulário
AltaFuncionalidade principal quebradaBotão de checkout não funciona
MédiaFuncionalidade secundária quebradaFiltro de pesquisa não funciona
BaixaProblema de usabilidadeTexto cortado em dispositivos móveis
CosméticaProblema de estilo/aparênciaCor do botão incorreta

Corrigir Bugs

Para cada bug que deve ser corrigido (com base no nível):

  1. Analisar: Ler o código-fonte para entender a causa raiz
  2. Corrigir: Fazer a alteração mínima que corrige o problema
  3. Commitar: git add <arquivos> + git commit -m "corrigir: ..." com uma mensagem de commit descritiva
  4. Re-verificar: Reexecutar o teste para confirmar a correção

Cada correção de bug é um commit atômico separado. As correções não são agrupadas em um único commit, a menos que o usuário solicite explicitamente.

Se uma correção quebrar algo: reverter o commit, refazer a correção e re-verificar. Não iterar mais de 3 vezes em uma correção sem escalar.

Relatório Final

Produzir um relatório estruturado ao final de cada execução de QA, salvo em:

mkdir -p .gstack/qa-reports

O relatório final inclui:

## Relatório de QA: {URL ou Branch}
**Nível:** Rápido | Padrão | Exaustivo
**Modo:** Completo | Com consciência de diff | Regressão | Apenas relatório

## Pontuação de Saúde
- **Antes:** {número de bugs por severidade} → Pontuação: {X}/10
- **Depois:** {número de bugs por severidade} → Pontuação: {Y}/10

## Bugs Encontrados

### Bug #1 | Severidade: Alta | ✅ Corrigido
- **Descrição:** ...
- **Causa raiz:** ...
- **Correção:** `commit abc1234`
- **Evidência:** ...

### Bug #2 | Severidade: Média | ❌ Não corrigido (fora do nível)
- **Descrição:** ...

## Resumo de Prontidão para Lançamento

**[PRONTO | QUASE PRONTO | NÃO PRONTO]**

- O que funciona: ...
- O que não funciona: ...
- Riscos conhecidos: ...
- Recomendação: ...

Exemplos

Exemplo 1: Testar uma alteração

Usuário: "/qa"

Contexto: Branch adicionar-botao-deletar com alterações no arquivo de botão. Nenhuma URL fornecida.

Ação: Entrar em modo com consciência de diff. Detectar arquivos alterados. Testar a funcionalidade do botão. Encontrar 2 bugs: botão de deletar não funciona (crítico), cor do botão incorreta (cosmético). Corrigir o bug crítico, pular o cosmético no nível Padrão. Produzir relatório.

Exemplo 2: Testar uma URL específica

Usuário: "/qa https://meuapp.com/checkout --exhaustive"

Ação: Testar exaustivamente a página de checkout. Encontrar 5 bugs (2 críticos, 1 médio, 2 cosméticos). No nível Exaustivo, corrigir todos. Produzir relatório.

Exemplo 3: Verificar regressões

Usuário: "/qa https://meuapp.com --regression .gstack/qa-reports/v1.0.json"

Ação: Executar testes de linha de base contra a URL. Marcar cada teste. Relatar regressões. Corrigir regressões encontradas.

Exemplo 4: Apenas relatório

Usuário: "/qa-only https://meuapp.com"

Ação: Executar todos os testes, documentar todos os bugs em relatório, sem fazer correções.

Rastreamento de Progresso

Para QAs de múltiplas páginas com >30 bugs:

  1. Quando terminar uma página razoável de bugs, parar e perguntar: "Encontrei {N} bugs nesta página. Deseja que eu comece a corrigi-los (recomendado), continue testando ou pare?"
  2. Se o usuário disser corrigir, executar o ciclo de correção.
  3. Após a correção, dizer: "{X} bugs corrigidos, {Y} restantes. Continuar testando?"
  4. Iterar.

Tratamento de Erros

  • Site não carrega: Testar sem verificação de servidor/site, relatar problemas de instalação/manual.
  • Ferramentas de navegador não disponíveis: Usar modo de solicitação de rede bruta (curl, fetch).
  • Testes não confiáveis: Se os testes falharem de forma intermitente, executar 3 vezes e relatar aprovações/reprovações.
  • Sem acesso de gravação: Alternar para modo apenas relatório.
  • Faltam dependências: Instalar ou relatar claramente o que é necessário.

Instalação & Atualização

  • Instalação: Siga as instruções em ~/.claude/skills/gstack/INSTALL.md.
  • Atualização: A verificação de atualização no preâmbulo manipula isso automaticamente.

Política de Privacidade

  • Nenhum código, caminho de arquivo ou nome de repositório é enviado na telemetria.
  • Todos os dados de telemetria são anônimos ou pseudônimos.
  • A desativação é uma opção em qualquer etapa.

Solução de Problemas

Problema: Branches não encontradas

Se gstack-update-check não conseguir detectar a branch, executar manualmente:

git branch

A saída mostrará sua branch atual. Você pode então especificar manualmente a branch de destino para merges ou diffs.

Problema: Ferramentas de navegador não disponíveis

Se o ambiente não tiver ferramentas de navegador (sem Puppeteer, Playwright, etc.), mudar para modo de solicitação de rede:

  • Usar curl e outras ferramentas CLI
  • Focar em respostas de API e código de status HTTP
  • Documentar as limitações no relatório

Problema: Erros de permissão

Se encontrar erros de permissão ao criar diretórios ou arquivos:

chmod -R 755 ~/.gstack

Ou executar comandos com sudo se apropriado.

Suporte

Para problemas com este skill, perguntas ou sugestões, entre em contato:

  • Issues do GitHub: https://github.com/lucas-flatwhite/gstack-ko
  • Etiqueta do repositório em ~/.claude/skills/gstack/

Licença

Este skill é fornecido sob a mesma licença do projeto gstack upstream. Veja o arquivo LICENSE no repositório para detalhes.

Contribuindo

Contribuições são bem-vindas! Por favor, veja o guia de contribuição em CONTRIBUTING.md no repositório.

Garantia

Este skill é fornecido "no estado em que se encontra", sem garantia de qualquer tipo, expressa ou implícita. O uso é por sua conta e risco. Os autores não são responsáveis por quaisquer danos decorrentes do uso deste skill.

Reconhecimentos

  • O projeto gstack upstream por fornecer a base para este skill.
  • A comunidade de código aberto por ferramentas e bibliotecas que possibilitam este trabalho.
  • Todos os contribuidores que ajudaram a melhorar e testar este skill.

Habilidades Relacionadas