diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 8ccc8b0..240c913 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -12,7 +12,7 @@ "name": "flux", "source": "./plugins/flux", "description": "Ciclo de trabalho agêntico para qualquer repo Git: probe, refine, issue, build, peek, review, iterate, land e reply, o chain que os encadeia, mais o map e o equip, que preparam a máquina e o repo. Global e context-agnóstico, com o que é específico do seu time vindo de um manifesto, nunca hardcoded.", - "version": "1.46.0" + "version": "1.46.1" } ] } diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index 8ccc8b0..240c913 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -12,7 +12,7 @@ "name": "flux", "source": "./plugins/flux", "description": "Ciclo de trabalho agêntico para qualquer repo Git: probe, refine, issue, build, peek, review, iterate, land e reply, o chain que os encadeia, mais o map e o equip, que preparam a máquina e o repo. Global e context-agnóstico, com o que é específico do seu time vindo de um manifesto, nunca hardcoded.", - "version": "1.46.0" + "version": "1.46.1" } ] } diff --git a/plugins/flux/.claude-plugin/plugin.json b/plugins/flux/.claude-plugin/plugin.json index b9a3502..41beb13 100644 --- a/plugins/flux/.claude-plugin/plugin.json +++ b/plugins/flux/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "flux", "description": "Ciclo de trabalho agêntico para qualquer repo Git: probe, refine, issue, build, peek, review, iterate, land e reply, o chain que os encadeia, mais o map e o equip, que preparam a máquina e o repo. Global e context-agnóstico, com o que é específico do seu time vindo de um manifesto, nunca hardcoded.", - "version": "1.46.0", + "version": "1.46.1", "author": { "name": "Gabriel Gripp", "email": "550632+grippado@users.noreply.github.com" diff --git a/plugins/flux/.codex-plugin/plugin.json b/plugins/flux/.codex-plugin/plugin.json index 0c1f53c..5075c38 100644 --- a/plugins/flux/.codex-plugin/plugin.json +++ b/plugins/flux/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "flux", - "version": "1.46.0", + "version": "1.46.1", "description": "A complete, harness-neutral work cycle for Git repositories: probe, refine, issue, build, peek, review, iterate, land, and reply, chain to link them, plus map and equip, which prepare the machine and the repository.", "author": { "name": "Gabriel Gripp", diff --git a/plugins/flux/.cursor-plugin/plugin.json b/plugins/flux/.cursor-plugin/plugin.json index b9a3502..41beb13 100644 --- a/plugins/flux/.cursor-plugin/plugin.json +++ b/plugins/flux/.cursor-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "flux", "description": "Ciclo de trabalho agêntico para qualquer repo Git: probe, refine, issue, build, peek, review, iterate, land e reply, o chain que os encadeia, mais o map e o equip, que preparam a máquina e o repo. Global e context-agnóstico, com o que é específico do seu time vindo de um manifesto, nunca hardcoded.", - "version": "1.46.0", + "version": "1.46.1", "author": { "name": "Gabriel Gripp", "email": "550632+grippado@users.noreply.github.com" diff --git a/plugins/flux/shared/step0-cli.md b/plugins/flux/shared/step0-cli.md index 1376188..c3231e8 100644 --- a/plugins/flux/shared/step0-cli.md +++ b/plugins/flux/shared/step0-cli.md @@ -5,12 +5,32 @@ > contrato dos dois documentos continua normativo: este shared só muda **quem** executa a parte > determinística, nunca o que ela significa. +## Passo 0 — ler o bloco da invocação + +Se a mensagem que invocou o elo traz o bloco `--- PREFLIGHT RESOLVIDO (flux-cli ...) ---` (o +`flux ` o prepende ao comando), ele foi resolvido pela CLI **antes** da sessão, com o repo e o +harness já conhecidos. Guardar dele, como fatos: `perfil`, `manifesto`, `ancora`, `flux_root`, +`flux_root_source`, `exec_command`, `exec_fallback`, `lentes` (`l2_paths`, `l3_paths`), `avisos`, +`harness` e `harness_source`. Guardar também o slug da linha de invocação (`--repo `), que +a CLI acrescenta sempre que resolveu o repo. + +Sem o bloco (execução direta, sem CLI), este passo não faz nada e o Passo único segue como antes. + ## Passo único — tentar o CLI ```bash -flux preflight [ALVO] --json 2>/dev/null +flux preflight [ALVO] [--repo ] --json 2>/dev/null ``` +**Passar `--repo ` sempre que a invocação o trouxer.** Sem ele o CLI não sabe de qual repo se +trata: ancora no cwd, pode tomar o próprio alvo (`87`) por slug, e devolve `exec_fallback: null`, +lentes vazias e `capability_level_hint: THIN`, uma resolução mais pobre que a do bloco. + +**O bloco vence o JSON.** Com bloco, o `flux preflight` só complementa o que o bloco não traz +(`holistic`, `kit_roots`, `degradations[]`, `capability_level_hint`, `requirements`). Em campo que os +dois trazem, valem os valores do bloco, e uma divergência não é refeita por tool call. Isso inclui +`harness`: o bloco o declara, então `HARNESS` vem dele e não da tabela de `flux_root_source` abaixo. + Três resultados possíveis, e só três: **1. JSON com `status: "abort"`** — exibir `abort_message` no chat e encerrar sem efeito @@ -30,7 +50,7 @@ mensagem já montada. degradações que só a sessão enxerga. - `capability_level_hint` → provisório; o nível definitivo sai da revalidação abaixo. - `HARNESS` e `FLUX_VERSION` (campos do banner e do bloco `provenance`) **não chegam prontos no - JSON** e são derivados localmente: `HARNESS` é lido de `flux_root_source` pela tabela de + JSON** e são derivados localmente (`HARNESS`: o `harness:` do bloco, se houver; senão): `HARNESS` é lido de `flux_root_source` pela tabela de `preflight.md §1a-harness` (`env:CLAUDE_PLUGIN_ROOT` → `claude-code`, `env:CURSOR_PLUGIN_ROOT` → `cursor`, `env:CODEX_PLUGIN_ROOT` → `codex`, qualquer outra fonte incluindo `env:FLUX_HOME` → `unknown`); `FLUX_VERSION` é lido do campo `version` de diff --git a/plugins/flux/skills/chain/SKILL.md b/plugins/flux/skills/chain/SKILL.md index 13d0c30..6ebb002 100644 --- a/plugins/flux/skills/chain/SKILL.md +++ b/plugins/flux/skills/chain/SKILL.md @@ -83,7 +83,7 @@ chain resolveu, sem que o executor finja capacidade que não tem. Não gravar na Só chega aqui um chain executável (hoje, `review>iterate`). -Seguir `${FLUX_ROOT}/shared/step0-cli.md`: `flux preflight chain [alvo] --json`. O CLI resolve o +Seguir `${FLUX_ROOT}/shared/step0-cli.md`: `flux preflight chain [alvo] [--repo ] --json`. O CLI resolve o perfil padrão para `chain` (sem união dos elos: `chain.md`, "O que não está implementado"), então o requisito de cada elo é verificado aqui, à mão. CLI ausente ou saída inválida → `preflight.md` inteiro. diff --git a/plugins/flux/skills/iterate/SKILL.md b/plugins/flux/skills/iterate/SKILL.md index 9f44200..65fbbbe 100644 --- a/plugins/flux/skills/iterate/SKILL.md +++ b/plugins/flux/skills/iterate/SKILL.md @@ -72,7 +72,7 @@ nome do elo na primeira linha usa `${FLUX_CMD}` já substituído (`/flux:iterate ## Step 0-cli: atalho mecânico (tentar primeiro) -Seguir `${FLUX_ROOT}/shared/step0-cli.md`: tentar `flux preflight iterate [alvo] --json` antes da +Seguir `${FLUX_ROOT}/shared/step0-cli.md`: tentar `flux preflight iterate [alvo] [--repo ] --json` antes da resolução agentica. JSON válido resolve o Step 0-context abaixo — revalidar só o que `session_revalidation_required` lista — e a coleta da PR usa `flux gather pr --threads --json` (threads são insumo obrigatório deste elo; `degraded` sem threads → tratar como a perda que o diff --git a/plugins/flux/skills/peek/SKILL.md b/plugins/flux/skills/peek/SKILL.md index 49bec6a..3ffaa82 100644 --- a/plugins/flux/skills/peek/SKILL.md +++ b/plugins/flux/skills/peek/SKILL.md @@ -35,7 +35,7 @@ preflight vai verificar no passo seguinte. ## Step 0-cli: atalho mecânico (tentar primeiro) -Seguir `${FLUX_ROOT}/shared/step0-cli.md`: tentar `flux preflight peek [alvo] --json` logo após o +Seguir `${FLUX_ROOT}/shared/step0-cli.md`: tentar `flux preflight peek [alvo] [--repo ] --json` logo após o parse do alvo. JSON válido resolve os itens 1, 2, 4 e a parte de disco do 3 e do 5 abaixo — revalidar só o que `session_revalidation_required` lista; alvo PR usa `flux gather pr --json` (sem `--threads`: o peek não consome threads). CLI ausente ou saída inválida → seguir o step diff --git a/plugins/flux/skills/review/SKILL.md b/plugins/flux/skills/review/SKILL.md index 5ed1e7a..bb592e3 100644 --- a/plugins/flux/skills/review/SKILL.md +++ b/plugins/flux/skills/review/SKILL.md @@ -54,7 +54,7 @@ nome do elo na primeira linha usa `${FLUX_CMD}` já substituído (`/flux:review` ## Step 0-cli: atalho mecânico (tentar primeiro) -Seguir `${FLUX_ROOT}/shared/step0-cli.md`: tentar `flux preflight review [alvo] --json` antes de +Seguir `${FLUX_ROOT}/shared/step0-cli.md`: tentar `flux preflight review [alvo] [--repo ] --json` antes de qualquer resolução agentica. JSON válido resolve o Step 0-preflight e o Step 0-context abaixo — revalidar só o que `session_revalidation_required` lista, e usar `flux gather pr --threads --json` na coleta do pipeline `pr` (`--threads` traz review threads + issue comments, insumo obrigatório