Objetivo
Refazer a skill pscode-board-setup para configurar o GitHub Project inteiramente via API (gh + GraphQL), removendo a dependência do MCP do Chrome. Ganho principal: velocidade e confiabilidade — sem navegador, sem UI, sem cliques. Já foi comprovado que o setup completo é possível só com API.
Comportamento esperado
1. Pré-requisitos e detecção
- Exigir
gh autenticado com escopo project (gh auth refresh -h github.com -s project).
- Ler
owner, ownerType, project, statusFieldId de pscode/github.yaml.
- Detectar se o Project é de
user ou org para escolher user(login:) vs organization(login:) no GraphQL. Nota: --owner <login> pode retornar unknown owner type; usar --owner "@me" quando o Project pertence ao usuário autenticado.
2. Ler estado atual (GraphQL)
- Consultar
projectV2 → fields (para pegar o campo Status e suas options { id name color description }) e views (para layout e agrupamento).
3. Configurar as colunas de Status (mutation updateProjectV2Field)
- Usar
singleSelectOptions com as 9 colunas do fluxo: Backlog, In Refinement, Ready to Dev, In Development, In Code Review, In Test, Ready to Deploy, Done, Cancelled.
- Preservar o que já existe: enviar opções existentes com seus
ids; opções novas sem id (o GitHub gera). Não remover/renomear opções extras (ex.: In Progress) sem autorização.
- Comparar por nome case-insensitive antes de adicionar, para não duplicar.
4. Validar o board (GraphQL)
- Confirmar via API
layout: BOARD_LAYOUT e agrupamento por Status (views.groupByFields / views.verticalGroupByFields).
- A configuração da view (layout/agrupamento) também deve ser feita via API — sem fallback de UI.
5. Atualizar pscode/github.yaml
- Reler os IDs (
gh project field-list <project> --owner "@me" --format json) e mapear as 9 colunas para o bloco statuses: (backlog, proposed, ready_to_dev, in_progress, review, in_test, ready_to_deploy, done, cancelled).
Detalhes de plataforma (PowerShell / Windows)
- Gravar o payload JSON da mutation em UTF-8 sem BOM (
System.Text.UTF8Encoding($false) + File.WriteAllText) e passar via gh api graphql --input <arquivo>. Com Set-Content -Encoding UTF8 o GitHub responde Problems parsing JSON.
Fora de escopo
- Nenhum fallback de UI — se algo não for possível por API, é falha a reportar, não a contornar pela UI.
- Não alterar o fluxo dos comandos
/ps:*; a mudança é só na skill de setup do board.
Referência técnica completa (queries/mutations de exemplo): board-setup-via-github-api.md.
Objetivo
Refazer a skill
pscode-board-setuppara configurar o GitHub Project inteiramente via API (gh+ GraphQL), removendo a dependência do MCP do Chrome. Ganho principal: velocidade e confiabilidade — sem navegador, sem UI, sem cliques. Já foi comprovado que o setup completo é possível só com API.Comportamento esperado
1. Pré-requisitos e detecção
ghautenticado com escopoproject(gh auth refresh -h github.com -s project).owner,ownerType,project,statusFieldIddepscode/github.yaml.userouorgpara escolheruser(login:)vsorganization(login:)no GraphQL. Nota:--owner <login>pode retornarunknown owner type; usar--owner "@me"quando o Project pertence ao usuário autenticado.2. Ler estado atual (GraphQL)
projectV2→fields(para pegar o campoStatuse suasoptions { id name color description }) eviews(paralayoute agrupamento).3. Configurar as colunas de Status (mutation
updateProjectV2Field)singleSelectOptionscom as 9 colunas do fluxo:Backlog,In Refinement,Ready to Dev,In Development,In Code Review,In Test,Ready to Deploy,Done,Cancelled.ids; opções novas semid(o GitHub gera). Não remover/renomear opções extras (ex.:In Progress) sem autorização.4. Validar o board (GraphQL)
layout: BOARD_LAYOUTe agrupamento porStatus(views.groupByFields/views.verticalGroupByFields).5. Atualizar
pscode/github.yamlgh project field-list <project> --owner "@me" --format json) e mapear as 9 colunas para o blocostatuses:(backlog,proposed,ready_to_dev,in_progress,review,in_test,ready_to_deploy,done,cancelled).Detalhes de plataforma (PowerShell / Windows)
System.Text.UTF8Encoding($false)+File.WriteAllText) e passar viagh api graphql --input <arquivo>. ComSet-Content -Encoding UTF8o GitHub respondeProblems parsing JSON.Fora de escopo
/ps:*; a mudança é só na skill de setup do board.Referência técnica completa (queries/mutations de exemplo):
board-setup-via-github-api.md.