From devflow
Entrevista interativa para configurar .context/.devflow.yaml — detecta heurísticas git e pré-seleciona recomendações.
npx claudepluginhub nexuz-sys/devflow --plugin devflowThis skill uses the workspace's default tool permissions.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Executes pre-written implementation plans: critically reviews, follows bite-sized steps exactly, runs verifications, tracks progress with checkpoints, uses git worktrees, stops on blockers.
Configura o arquivo .context/.devflow.yaml do projeto através de uma entrevista interativa.
Detecta heurísticas do repositório para pré-selecionar as opções recomendadas.
Announce at start: "I'm using the devflow:config skill to configure your project's git strategy."
Verificar se .context/ existe. Se não existir, informar:
"O diretório .context/ não existe. Execute
/devflow initprimeiro para inicializar o projeto."
Executar detecção silenciosa (sem output ao usuário) para pré-selecionar recomendações:
# Detectar worktree scripts
HAS_WT_SCRIPTS=false
[ -f "scripts/wt-create.sh" ] && HAS_WT_SCRIPTS=true
# Detectar branch develop
HAS_DEVELOP=false
git branch --list develop 2>/dev/null | grep -q develop && HAS_DEVELOP=true
# Detectar CLI de PR
HAS_GH=false
command -v gh >/dev/null 2>&1 && HAS_GH=true
HAS_GLAB=false
command -v glab >/dev/null 2>&1 && HAS_GLAB=true
# Detectar branch atual
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "")
Lógica de recomendação:
HAS_WT_SCRIPTS=true → recomendar worktreeHAS_DEVELOP=true → recomendar branch-flow (main + develop)P1: Estratégia git (com heurística pré-selecionada)
AskUserQuestion:
question: "Qual estratégia git deste projeto?"
header: "Git Strategy"
multiSelect: false
options:
- label: "Branch Flow (Recomendado — <razão da heurística>)"
description: "Branches protegidas + git checkout -b para isolamento"
- label: "Worktree"
description: "Isolamento total via git worktree add"
- label: "Trunk-based"
description: "Commits diretos na main, sem proteção de branch"
A opção recomendada pela heurística deve ser a primeira e ter "(Recomendado — detectei X)" no label.
Se trunk-based: Pular P2 e P4. Gerar YAML mínimo e finalizar.
P2: Branches protegidas (só se branch-flow ou worktree)
AskUserQuestion:
question: "Quais branches são protegidas?"
header: "Protected Branches"
multiSelect: true
options:
- label: "main"
description: "Branch de produção"
- label: "develop"
description: "Branch de integração"
Pré-selecionar main sempre. Pré-selecionar develop se HAS_DEVELOP=true.
P3: CLI de PR
AskUserQuestion:
question: "Qual CLI para criação de PRs?"
header: "PR CLI"
multiSelect: false
options:
- label: "gh (GitHub)"
description: "GitHub CLI para PRs"
- label: "glab (GitLab)"
description: "GitLab CLI para Merge Requests"
- label: "Nenhuma"
description: "Criar PRs manualmente pela interface web"
Pré-selecionar gh se HAS_GH=true, ou glab se HAS_GLAB=true.
P4: Branch protection
AskUserQuestion:
question: "Ativar proteção de branch? O hook do DevFlow bloqueará edições em branches protegidas."
header: "Branch Protection"
multiSelect: false
options:
- label: "Sim (Recomendado)"
description: "Hook bloqueia Edit/Write em branches protegidas"
- label: "Não"
description: "Hook não bloqueia — o desenvolvedor gerencia branches manualmente"
P5: Auto-finish
AskUserQuestion:
question: "Ativar finalização automática de branch? (bump, commit, push, merge)"
header: "Auto Finish"
multiSelect: false
options:
- label: "Não (padrão)"
description: "Finalização manual — você controla cada etapa"
- label: "Sim, tudo"
description: "Executa bump + commit + push + merge automaticamente"
- label: "Personalizar"
description: "Escolher quais etapas ativar individualmente"
Se "Personalizar":
AskUserQuestion:
question: "Quais etapas de finalização ativar?"
header: "Auto Finish Steps"
multiSelect: true
options:
- label: "bump"
description: "Version bump automático (patch)"
- label: "commit"
description: "Commit automático das mudanças finais"
- label: "push"
description: "Push automático para o remoto"
- label: "merge"
description: "Merge/PR automático na branch base"
P6: MemPalace (condicional — só aparece se MCP detectado ou se usuário quer configurar)
Primeiro, detectar disponibilidade:
# Check mempalace MCP
HAS_MEMPALACE=false
if [ -f ".mcp.json" ] && grep -q "mempalace" ".mcp.json" 2>/dev/null; then
HAS_MEMPALACE=true
elif [ -f "${HOME}/.config/claude/mcp.json" ] && grep -q "mempalace" "${HOME}/.config/claude/mcp.json" 2>/dev/null; then
HAS_MEMPALACE=true
fi
# Check mempalace package
HAS_MEMPALACE_PKG=false
pip show mempalace >/dev/null 2>&1 && HAS_MEMPALACE_PKG=true
pipx list 2>/dev/null | grep -q mempalace && HAS_MEMPALACE_PKG=true
Se HAS_MEMPALACE=true:
AskUserQuestion:
question: "MemPalace detectado. Habilitar integração de memória?"
header: "MemPalace Integration"
multiSelect: false
options:
- label: "Sim (Recomendado)"
description: "Memória semântica persistente entre sessões"
- label: "Não"
description: "Desativar integração MemPalace"
Se sim, P7: Palace path
AskUserQuestion:
question: "Caminho do palace?"
header: "Palace Path"
multiSelect: false
options:
- label: "~/.mempalace/palace (Global — Recomendado)"
description: "Um palace compartilhado, cada projeto é uma wing"
- label: "Personalizar"
description: "Informar um caminho customizado"
Se sim, P8: Token budget
AskUserQuestion:
question: "Budget de tokens para auto-recall?"
header: "Auto-recall Budget"
multiSelect: false
options:
- label: "500 tokens (Recomendado)"
description: "Contexto compacto injetado automaticamente"
- label: "250 tokens"
description: "Mínimo — apenas memórias mais relevantes"
- label: "1000 tokens"
description: "Contexto rico — usa mais do context window"
- label: "Desativar auto-recall"
description: "Apenas busca manual via /devflow-recall"
Se HAS_MEMPALACE=false:
AskUserQuestion:
question: "MemPalace não detectado. Deseja configurar memória semântica?"
header: "MemPalace Setup"
multiSelect: false
options:
- label: "Sim, instalar e configurar agora"
description: "Instala mempalace e configura MCP automaticamente"
- label: "Não, pular"
description: "Continuar sem MemPalace"
Se sim (instalar):
command -v pipx → usar pipx, senão pippipx install mempalace ou pip install mempalace.mcp.json dentro de mcpServers:
{
"mcpServers": {
"mempalace": {
"command": "python",
"args": ["-m", "mempalace.mcp_server"]
}
}
}
Se .mcp.json já existe, merge a entry dentro de mcpServers. Se não existe, criar com a estrutura completa.mempalace init ~/.mempalace/palace.context/.devflow.yamlCom base nas respostas, gerar o arquivo:
# .context/.devflow.yaml — DevFlow project configuration
# Generated by: /devflow config
# Run /devflow config to reconfigure
git:
strategy: <resposta P1>
protectedBranches: [<respostas P2>]
prCli: <resposta P3>
branchProtection: <resposta P4>
# autoFinish only present if user activated it
Regras de geração:
strategy: trunk-based e prCliautoFinish (ausência = desativado)autoFinish: truetrue, as não selecionadas em falseRegras de geração para mempalace:
mempalace: (ausência = desativado)mempalace:
enabled: true
mempalace:
enabled: true
palace: <caminho personalizado> # só se diferente do default
budget: <valor> # só se diferente de 500
auto_recall: false # só se desativado
wing: auto é o default — só incluir se o usuário informar um nome customizadoauto_diary: true é o default — só incluir se desativadoApós gerar o arquivo, mostrar ao usuário:
✅ Configuração salva em .context/.devflow.yaml
Estratégia: branch-flow
Branches protegidas: main, develop
CLI de PR: gh
Proteção de branch: ativada
Auto-finish: desativado
MemPalace: ativado (global, 500 tokens) ← novo (só se configurado)
Para reconfigurar: /devflow config
.context/.devflow.yaml já existeSe o arquivo já existir ao iniciar o skill:
/devflow config → invoca este skill diretamente/devflow init → chama este skill como parte do setup (se .context/.devflow.yaml não existir)pre-tool-use → quando bloqueia por falta de config, instrui o usuário a rodar /devflow config