Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
]
}
2 changes: 1 addition & 1 deletion .cursor-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
]
}
2 changes: 1 addition & 1 deletion plugins/flux/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
2 changes: 1 addition & 1 deletion plugins/flux/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion plugins/flux/.cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
24 changes: 22 additions & 2 deletions plugins/flux/shared/step0-cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <verbo>` 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 <slug>`), 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 <VERBO> [ALVO] --json 2>/dev/null
flux preflight <VERBO> [ALVO] [--repo <slug>] --json 2>/dev/null
```

**Passar `--repo <slug>` 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
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion plugins/flux/skills/chain/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <slug>] --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.

Expand Down
2 changes: 1 addition & 1 deletion plugins/flux/skills/iterate/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <slug>] --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 <n> --threads --json`
(threads são insumo obrigatório deste elo; `degraded` sem threads → tratar como a perda que o
Expand Down
2 changes: 1 addition & 1 deletion plugins/flux/skills/peek/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <slug>] --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 <n> --json`
(sem `--threads`: o peek não consome threads). CLI ausente ou saída inválida → seguir o step
Expand Down
2 changes: 1 addition & 1 deletion plugins/flux/skills/review/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <slug>] --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 <n> --threads --json`
na coleta do pipeline `pr` (`--threads` traz review threads + issue comments, insumo obrigatório
Expand Down