Cópia estática
Copiado de docs/governance/m9-exit-gate.md em https://github.com/poppy-team/prumo (MIT). Fixado na revisão e91694d3959be1ed92757b34063efe0b2191821f, blob 8442c7ae42f4c1489a53b68b4fe60aacb78faea1. O repositório de origem permanece canônico; esta cópia é atualizada por um pull request de sincronização, não em tempo real.
Status: CONCLUÍDO (Exit Gate do M9 Aprovado)
Exit gate do marco M9 (conforme docs/development/phases.md): um agente pode fazer handoff para outro agente ou sessão com contexto estruturado completo; os eventos de sessão são unidades semânticas estruturadas, sem transcripts conversacionais; resumos são gerados por sessão e por Goal; o Experience Provider Contract governa o armazenamento episódico; as propostas de experiência são validadas antes da promoção; e as políticas de retenção gerenciam a expiração do armazenamento.
internal/experience/events.go: session_started, goal_selected, decision_made, checkpoint_saved, tool_executed, blocker_occurred, session_completed, handoff_created.schemas/experience-event.schema.json.internal/experience/summary.go: SynthesizeSessionSummary: agrega tarefas concluídas, foco atual, bloqueios ativos e decisões.SynthesizeGoalSummary: agrega todas as sessões que contribuem para um Goal, derivando o status de progresso (planned, in_progress, blocked).internal/experience/handoff.go: pending, transferred, acknowledged, rejected).schemas/experience-handoff.schema.json.internal/experience/provider.go: ExperienceProvider com métodos para registrar eventos, salvar/carregar resumos e criar/confirmar handoffs.FileProvider implementa armazenamento em arquivos thread-safe em .prumo/experience/.internal/experience/proposal.go: ExperienceProposal.review_required: true) e não podem ser promovidas a regras canônicas ou skills da workforce sem aprovação da governança.internal/experience/retention.go: FileProvider.Prune) limpa eventos brutos expirados e preserva indefinidamente os resumos sintetizados.cmd/prumo/experience_commands.go e cmd/prumo/main.go: prumo-agent experience statusprumo-agent experience handoff create --id <id> --from <from> --to <to> --goal <goal>prumo-agent experience handoff show <id>prumo-agent experience handoff ack <id> --actor <actor>prumo-agent experience events --session <id>cmd/prumo/experience_commands_test.go.go test -race ./... — 100% passam em todos os pacotes.go vet ./... — limpo.gofmt -l . — limpo.python -m pytest -q — 136 passam (oracle Python preservado).internal/experience): todos os testes passando (100%).cmd/prumo): todos os testes passando (100%).O marco M9 (Experience Layer) está CONCLUÍDO. Todos os critérios e invariantes do exit gate foram satisfeitos.