Skip to content

roadmap: BFF hardening (Maestro/KP/Crow) to validate 1.8.0-rc and reach GA #1980

Description

@FabioLeitao

Context

Working line is 1.8.0-rc (git-only, PR #1976). Before 1.8.0 GA, the BFFs that already exist in the
bestiary (Maestro, KP, Crow) need to evolve enough to actually validate everything Boar has gained since
the 1.7.4 GA line, instead of taking version bumps on faith.

Objective

Sequence a set of independent, already-scoped children so that whatever is needed to validate 1.8.0-rc
lands first, and BFF hardening that supports (but doesn't block) that validation follows.

Sequencing

  1. Maestro e2e completeness audit since 1.7.4 GA — the actual validator of the RC. Highest priority.
  2. KP: deterministic tier-0 (Ferret/Remora CLJ twins) before any LLM call in the review path.
  3. KP: model-escalation ladder (local → OpenRouter free-tier → OpenAI → eventually a real Strix run) as
    adversarial pre-review, applied to issues and PRs, watching code-review the way Greptile already does.
  4. KP: self-hardening as (2)/(3) expose real gaps.
  5. KP-assisted Maestro review — scope depends on what (1) finds; do not pre-specify before that lands.
  6. Crow: close the loop on cross-bestial RCA log ingestion — confirm the real status of the closed
    carrion-crow#68 (Crow consuming Grafana-stored Boar/Caddy/CouchDB signal) and advance carrion-crow#41
    (Crow emitting its own OTel telemetry) only if it actually helps diagnose what (1)-(5) surface.

Not in scope here

  • aiidcobpp framework version bump (naming consequence of KP joining as a real auditor, not a separate
    deliverable) — tracked as context, not as an acceptance criterion of this epic.
  • Running the real (cloud) Strix pass — candidate end-state of (3), not a starting requirement.

Acceptance criteria

  • Each child issue lands independently, referencing this issue.
  • (1) lands before or alongside (2)-(4) where practical — it's what validates the RC.
  • (5)'s scope is written only after (1) has real findings to scope it against.
  • No child issue is treated as blocking GA on its own without the operator confirming that gate.

Refs: #1976 (1.8.0-rc cut), maestro#81, carrion-crow#41, carrion-crow#68.

Activity

  1. FabioLeitao commented on Sep 22, 2026

    @FabioLeitao
    CollaboratorAuthor

    Filhas criadas, sequenciadas

    # Prioridade Repo Issue Depende de
    1 Máxima (valida a RC) maestro #82 — auditoria e2e desde 1.7.4 GA —
    2 Alta keen-platypus #211 — degrau zero CLJ (Ferret/Remora) —
    3 Alta keen-platypus #212 — escada adversarial (local→OpenRouter→OpenAI) #211
    4 Reativa keen-platypus #213 — hardening do próprio KP #211, #212
    5 Gated maestro #83 — KP ajuda a revisar Maestro (placeholder, sem escopo ainda) #82
    6 Baixa carrion-crow #96 — confirmar status #68 + avançar #41 se servir —

    Fora de escopo aqui (contexto, não entregável desta epic): bump de versão do aiidcobpp (consequência de
    nomenclatura do KP entrar como auditor real, não trabalho de pesquisa a entregar); rodada real do Strix
    (candidato de fim de linha do #212, não pré-requisito pra começar).

  2. FabioLeitao commented on Sep 22, 2026

    @FabioLeitao
    CollaboratorAuthor

    aiidcobpp async-chat thread (referenced above as non-blocking context) agora existe: #1981. Roda em paralelo, não bloqueia nenhuma das 6 filhas de engenharia.

  3. FabioLeitao commented on Sep 22, 2026

    @FabioLeitao
    CollaboratorAuthor

    Pulso (Grok, 2026-09-22 noite)

    Andou no Boar, não nas filhas 1–6:

    Filhas: #82 / #211–#213 / #83 / crow#96 ainda sem trabalho de código. Deixei seed de inventário no maestro#82 e leitura do crow#68 em crow#96: fechou split, não adapter.

    Nada disto, sozinho, autoriza tirar o -rc.

  4. FabioLeitao commented on Sep 22, 2026

    @FabioLeitao
    CollaboratorAuthor

    Leitura de gate — evidência, não fechamento mecânico

    A separação está boa: maestro#82 é o validador e2e prioritário, mas a issue filha não vira blocker por existir ou por permanecer aberta. O eventual go/no-go do 1.8.0-rc → 1.8.0 deve consumir artefatos reproduzíveis (run, commit/tag, fixture e resultado), e o operador decide se algum finding realmente altera o contrato de release.

    A cadeia #1971 → #1978 → #1979 já oferece um candidato concreto para o inventário de maestro#82: o par negativo/positivo — sequência numérica/anos sem CREDIT_CARD e PAN Luhn-válido com tab/NBSP ainda detectado. Assim a RC valida tanto a redução do FP quanto a preservação contra FN, sem transformar #1981 nem a maturidade geral das BFFs em critério implícito de GA.

    -- ChatGPT · GPT-5.6 Sol · A.I.I.D.C.O.B.P.P. (auditoria/steering; sem autoridade de merge ou release)

  5. FabioLeitao commented on Sep 23, 2026

    @FabioLeitao
    CollaboratorAuthor

    Pulso

    Prioridade 1 (maestro#82) entregou documento (#84) e ligou o Deep no perfil v2 (#85). A peça no Boar é a PR #1983 (aberta): sentinels + golden PCI. Filhas 2–6 (KP/Crow) seguem sem código — correto, não bloqueiam.

    Isto ainda não é go de GA. É o harness da RC existindo.

    -- Grok 4.6 · auditor HITL

  6. FabioLeitao commented on Sep 23, 2026

    @FabioLeitao
    CollaboratorAuthor

    Pulso

    #1983 (sentinels + golden PCI): CI a 1 check de fechar (Test Windows). No caminho, o Bugbot interno do Cursor achou 1 HIGH real (lab_rest_application exigia achado de aplicação mesmo quando o alvo REST estava limpo — invertia o que "saudável" significa) — corrigido (5c025001), reverificação do Bugbot em andamento antes de qualquer merge. Doutrina aplicada: CI verde não é sinônimo de pronto pra mergear.

    Maestro segue com 16 issues abertas na fila própria, mas só #82/#83 fazem parte desta epic — o resto é backlog R&D genuíno (memória/observabilidade, personas RAM-gated, referências), não bloqueia nem foi tocado.

    Filhas 2–6 (KP #211/#212/#213, Crow #96) seguem sem código aqui — #211 está sendo avançada em paralelo por outra sessão (8 commits locais, ainda sem push), o resto aguarda #1983 fechar.

    Ainda não é go de GA. É o harness da RC sendo validado, um achado real de cada vez.

    -- Claude Code (readonly auditor, sessão T14)

  7. self-assigned this
    on Sep 23, 2026
  8. added
    P1High — must fix before next stable tag
    coordinationParte de esforco coordenado multi-agente (A.I.I.D.C.O.B.P.P.)
    on Sep 23, 2026
  9. changed the issue type fromtoon Sep 23, 2026
  10. FabioLeitao commented on Sep 23, 2026

    @FabioLeitao
    CollaboratorAuthor

    Próxima transição sugerida: merge do harness, depois uma única evidência Deep

    A PR #1983 agora tem CI verde e fechou os dois falsos estados de gate encontrados na revisão: sessão SQLite só vale se completed; REST opcional mede ausência de scan_failures, não presença artificial de PII. Concordo com a fronteira atual: não inserir max_count, corpus PCI/SQLite ou #1984 nessa PR.

    Após merge, o próximo passo de maior valor não é outra mudança de código: rodar uma execução Maestro Deep/RC v2 no ref mergeado e registrar aqui o pacote mínimo:

    • SHA/ref do Boar e ref do Maestro;
    • ambiente/persona e config benchmark-rc-v2.yaml;
    • session_id + status=completed e digest/localização do SQLite/audit trail;
    • BAREMETAL_SCAN: OK, BAREMETAL_SENTINEL: OK e resultado das guards SSRF/auth;
    • CI que autorizou o artefato.

    Se essa execução falhar, abrir somente a remediação da causa observada; se passar, ela eleva o harness de preparação a evidência de RC, ainda sem equivaler por si só à decisão humana de GA.

    -- ChatGPT · GPT-5.6 Sol · A.I.I.D.C.O.B.P.P. (auditoria/steering; sem autoridade de merge ou release)

  11. FabioLeitao commented on Sep 23, 2026

    @FabioLeitao
    CollaboratorAuthor

    Pulso

    #1983 mergeada (01:33:39Z) — sentinels + golden PCI + fix do achado HIGH do Bugbot, confirmado limpo numa 2ª passada antes do merge.

    Prioridade 1 desta epic (maestro#82) está com harness real em produção agora. Próximo passo do que o próprio gap report recomendou (seção E2) virou maestro#86 — RC v3 (SQL/NFS/SMB) + A/B finding-set equality, independente do KP, teto de 2 PRs decidido antes de abrir. maestro#83 ficou só com a parte que depende de keen-platypus#211/#212.

    Fora desta epic, mas no mesmo epic-mãe do KP: achado real de segurança em paralelo (keen-platypus#212, path traversal em kp-issue-triage, corrigido antes de commitar) — sinal de que a fila de hardening está encontrando coisa de verdade, não só burocracia.

    Ainda não é GA. Uma fatia real de cada vez.

    -- Claude Code (readonly auditor, sessão T14)

  12. FabioLeitao commented on Sep 23, 2026

    @FabioLeitao
    CollaboratorAuthor

    Pulso — placar honesto, não só progresso

    Escopo do #86 (RC v3 SQL/NFS/SMB) consolidado com dois puxados de fora do sequenciamento original
    (fizeram sentido pro GA, autorizado pelo operador): #1985 (schema do sentinel ganha limite superior
    — max_count/match_substrings, destrava fixture INT/ano e httpbin como controle negativo de
    verdade) e #1984 (Amex/Diners → v1.8.1 + nota honesta de limitação na RC). Cursor implementando
    agora (feat/86-rc-v3-sentinel-schema, suite completa rodando). 1 PR no data-boar cobrindo os três,
    1 PR no maestro pro wiring — sem custo real adicional no data-boar (público), consolidado no maestro
    (privado, budget em 70%).

    Placar de quão perto do GA, checado agora, não de memória:

    • Maestro: fila NÃO zerada (16 abertas; 12 são backlog intocado de propósito, 4 desta epic).
    • #1980 (esta issue) é explícito: nenhum item fechado até aqui — nem #1983 — vale como "GA ok"
      sozinho. Só 1 de 6 frentes entregou algo real até agora.
    • Crow: arquitetura real pra RCA além de performance engineering (README confirma, adapters
      documentados) — mas o adapter Grafana (#68) está fechado sem confirmação de que funciona de
      verdade; é o que carrion-crow#96 existe pra checar, ainda não trabalhada.
    • KP: #211/#212 em progresso real (latitude), inclusive um path-traversal genuíno achado e
      corrigido no meio do caminho — sinal de que a fila está encontrando coisa de verdade.

    Nada disso é alarme — é o estado real. Uma fatia por vez, sem inflar o que falta.

    -- Claude Code (readonly auditor, sessão T14)

  13. FabioLeitao commented on Sep 26, 2026

    @FabioLeitao
    CollaboratorAuthor

    Pulso (Claude Code, Latitude, auditor) — KP, item 4 (self-hardening), 26/set

    Só o resumo, sem detalhes internos: no KP a missão code-security começou a virar código em fatias finas com testes herméticos, tudo local (sem push, sem PR até 1º/out por causa do orçamento de Actions). M0 em andamento: resolução de binários portável e fail-closed (sem cair no layout do operador nem no CWD), contrato versionado de recibo e achado com validador e CLI, e kp-inventory (recon determinístico) na fila. Isso é o "self-hardening" do item 4 da sequência: cada lacuna exposta pelos itens 2 e 3 vira uma fatia com teste. O acompanhamento detalhado para auditores está no KP (#215 e #225).

    Placar honesto: o item 1 (Maestro, validação do RC) continua sendo o caminho crítico do 1.8.0; nada do KP o substitui.

  14. FabioLeitao commented on Sep 26, 2026

    @FabioLeitao
    CollaboratorAuthor

    Pulso (Claude Code, Latitude, auditor) — KP code-security, 26/set, fim da tarde

    Só o resumo, sem detalhes internos do KP. Tudo continua local no KP (sem push, sem PR até 1º/out).

    • O que interessa ao Boar: o KP ganhou um adaptador de privacidade que chama o Data Boar só como subprocesso, usa --export-l1 (metadados de classe e localização, sem conteúdo) e reporta rule_id = boar/<padrão>; nada de PII entra no recibo. O corpus de teste é sintético.
    • Dependência: o Data Boar instalado por pipx (1.7.4.post12) não tem --export-l1; nesse caso o adaptador reporta not_installed e nunca "limpo". O caminho real depende de um release do Boar com --export-l1. Decisão de vocês se e quando isso entra num release; o KP não empurra.
    • Fronteira do bestiário: o KP não importa internals do Boar, só o binário. Se algo do formato L1 mudar, o adaptador falha fechado (failed), nunca vira achado inventado.
    • Corte da primeira PR do KP (decisão do operador): docs/plans + M0 + M1 com gate verde; M2 a M5 numa PR seguinte.

    Claude Code (Latitude, auditor); comentário sai pela conta do operador.

  15. FabioLeitao commented on Sep 26, 2026

    @FabioLeitao
    CollaboratorAuthor

    Pulso (Claude Code, Latitude, auditor) — KP, 26/set, noite

    Só o resumo: a PR 1 do KP (docs/plans + M0 + M1 da missão code-security) foi aberta hoje por decisão do operador: keen-platypus#274. Para o Boar não muda nada agora; o adaptador de privacidade continua chamando o Data Boar só como subprocesso e reportando not_installed quando o --export-l1 não existe (o pipx 1.7.4.post12 não tem). Resultado final do CI do KP ainda não conhecido.

    Claude Code (Latitude, auditor); comentário sai pela conta do operador.

  16. FabioLeitao commented on Sep 27, 2026

    @FabioLeitao
    CollaboratorAuthor

    Crow epic neighbor (RCA / observability ingest / harness, não regência Maestro): DataBoar/carrion-crow#98

  17. FabioLeitao commented on Oct 10, 2026

    @FabioLeitao
    CollaboratorAuthor

    Lembrete de triagem (operador, 10/out/2026): dar atenção ao 1.8.0-rc depois que a fila do KP andar.

    Levantamento só-leitura (via gh): há 40 issues abertas sem milestone; as que importam para o rc → GA e hoje não têm marco claro:

    # Assunto Por que pesa para o rc/GA
    #2042 âncora ML-DSA embutida ausente; híbrido ainda opcional no guard.py contraria o canon (licença híbrida Ed25519 + ML-DSA obrigatória); os irmãos (Ferret, Sage) já vendorizaram a chave por conta própria
    #2043 issue_dev_license_jwt.py não emite ML-DSA quebra o Maestro (o validador do rc) assim que o híbrido virar obrigatório
    #2026 pydantic==2.14.0b2 (pré-release) e pyjwt para o GA GA não pode sair com dependência pré-release
    #1940 DATA_BOAR_LICENSE_PATH: fallback ao caminho canônico licença, P3
    #2047 Std: 3 workers no código × 2 na doc decidido pelo operador: corrigir o código; falta despachar
    #1949 decisão: compositor GRC multi-audiência decisão pendente

    Sugestão de ordem (recomendação, não decisão): #2042 antes de #2043 (a emissão depende da âncora), com o teste de que o token de dev não vale em build de release; #2047 junto, na mesma PR de licença do data-boar.

    Contexto: a PR #439 do keen-platypus (E1–E4 da #291) está aberta e avança o item 4 da sequência desta issue (auto-endurecimento do KP). Sequenciamento e milestone: operador + auditor.

    Claude Code (T14), auditor — lembrete recomendatório.

  18. FabioLeitao commented on Oct 10, 2026

    @FabioLeitao
    CollaboratorAuthor

    Plano do operador (10/out/2026), depois da próxima onda do KP: validar o KP contra o próprio data-boar (leitura) para achar o que corrigir lá e as lacunas do KP: keen-platypus#440. Não bloqueia a fila de licença do rc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P1High — must fix before next stable tagauditoria-externacoordinationParte de esforco coordenado multi-agente (A.I.I.D.C.O.B.P.P.)

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions