Skip to content

feat(harness): flow context modes — blind vs feedback (piedra Rosetta) + tooling PF - #6

Merged
CMolG merged 2 commits into
mainfrom
feat/flow-context-modes
Jul 10, 2026
Merged

CMolG merged 2 commits into
mainfrom
feat/flow-context-modes

Conversation

@CMolG

@CMolG CMolG commented Jul 10, 2026

Copy link
Copy Markdown
Owner

Ejecuta la tarea de backlog flow-context-modes-blind-vs-feedback (F0–F4 completas + tooling de F5; la campaña PF comparativa espera GO del usuario por coste de tokens).

Qué añade

  • AgenticFlow.contextMode ('blind' default · 'feedback'): en blind la ejecución es byte-idéntica a hoy — probado empíricamente (captura de prompts+checkpoints pre/post cambio con git stash: 0 diferencias) y los 1408 tests previos pasan sin tocar uno solo.
  • Piedra Rosetta (context-manifest.ts + spec): manifest determinista por run (.fluxor/run-context/<runId>/), ficheros de contexto por step (por-iteración en loops), retriever exento, presupuesto 12KB. El harness solo inyecta texto determinista propio (<flow_awareness>); los briefings escritos por LLMs se leen via FS tools — nunca se inyectan (anti-inyección por diseño).
  • Guardrail de briefings en todas las superficies: adaptador real-FS cuando el call-site no pasa fileSystem (solo feedback), rootDir efectivo, y exclusión node_modules/.git en el walk del snapshot (2 hallazgos del reviewer del plan que habrían quemado 3× tokens por step o cargado GB a memoria).
  • Round-trip completo: export estampa el modo (omitido en blind → export byte-idéntico), serve lo hereda + override validado por request.
  • UI: toggle en el clúster de acciones del FrameNode → FrameNodeData → harness-compiler → AgenticFlow (test de integración sin mocks); badge en step-config; WCAG AAA.
  • SDKs java/python: downgrade explícito a blind con warning once (contrato documentado en la matriz runtime×modo del README de conformance); contextMode preservado verbatim.
  • PF: --context-mode en pf:run/pf:bench, campo en ledger (registros viejos = blind), y nuevo pf:compare (tabla markdown por seed+suite+modelo con Δ%, upsert idempotente sobre docs/pf-context-mode-campaign.md).

Gates

Gate Resultado
vitest 1566/1566 (+158 sobre baseline)
tsc / eslint limpio / 0 errores
java / python SDK 66/66 (1 skip gateado) / 15/15
round-trip manual feedback OK (export→import→serve)
e2e desktop local pendiente pre-merge: el puerto 5173 lo ocupa otro dev server activo del usuario; baseline de 4 fallos pre-existentes documentado para la comparación

Pendiente de GO del usuario (no bloquea el PR)

Campaña PF blind vs feedback (consume tokens): 4× pf:run (team-work/progression × blind/feedback, seed 7) + pf:compare — comandos exactos en docs/pf-context-mode-campaign.md.

🤖 Generated with Claude Code

CMolG and others added 2 commits July 10, 2026 15:52
…) + tooling PF

Ejecuta la tarea de backlog 2026-07-08-flow-context-modes (F0–F4 + tooling F5;
la campaña PF comparativa queda a un comando, pendiente de GO por coste):

- AgenticFlow.contextMode ('blind' default | 'feedback'); blind byte-idéntico
  probado empíricamente (captura de prompts/checkpoints pre/post: 0 diffs).
- Rosetta: context-manifest.ts (manifest determinista por run, ficheros
  step.<id>[.iterN].md bajo .fluxor/run-context/<runId>/, retriever exento);
  génesis solo en feedback; <flow_awareness> 100% determinista en system
  prompt; briefings prompt-driven leídos via FS tools (nunca inyectados).
- Guardrail de briefings activo en TODAS las superficies: adaptador real-FS
  cuando falta options.fileSystem (solo feedback), rootDir efectivo
  materializado, walk de snapshotWorkspace con exclusión node_modules/.git.
- Checkpoints: campo aditivo contextFileSnapshot (shape existente intacto).
- Formato: export estampa contextMode (omitido en blind); round-trip
  export→import→serve verde; serve acepta override validado por request.
- UI: toggle de modo en FrameNode (pipeline-frame-actions) → FrameNodeData →
  harness-compiler → AgenticFlow (integración sin mocks); badge en
  StepRunEvidence; WCAG AAA auditado.
- SDKs: downgrade explícito a blind con warning once en java/python
  (contextMode preservado verbatim); conformance + README matriz runtime×modo.
- PF: --context-mode en pf:run/pf:bench, contextMode en ledger (viejos=blind),
  nuevo pf:compare (markdown, empareja seed+suite+modelo, upsert idempotente
  en docs/pf-context-mode-campaign.md).

Gates: vitest 1566/1566 · tsc limpio · eslint 0 err · java 66/66 (1 skip
gateado) · python 15/15 · round-trip manual OK. E2e desktop local pendiente
de puerto 5173 (ocupado por otro dev server del usuario) — gate pre-merge.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Campaña blind vs feedback ejecutada (mimo/mimo-v2.5-pro, seed 7):
- team-work (handoffs): 79→84 (+6.33%), +28.94% tokens → feedback ayuda
- progression (iterativa): 52→22 (-57.69%) → feedback perjudica

Conclusión (F5): feedback queda OPT-IN, blind sigue siendo default —
depende de la topología del flow, activarlo por defecto degradaría los
flows de continuidad iterativa. Resultado y salvedad estadística (n=1/celda,
follow-up ≥3 seeds) documentados en docs/pf-context-mode-campaign.md.

Además: redondeo de valores en la tabla de pf:compare (latencyMs traía ruido
float; Δ% se sigue calculando sobre los valores crudos). 41 tests verdes.

Backlog #1 F0–F5 COMPLETO.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@CMolG
CMolG merged commit 8cd881f into main Jul 10, 2026
9 checks passed
@CMolG
CMolG deleted the feat/flow-context-modes branch July 10, 2026 17:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant