Skip to content

[FEAT] Telemetria de uso de agentes de IA (Claude Code / Codex) — privacy-by-construction #65

@trentas

Description

@trentas

User story

Como liderança de engenharia da org, eu quero medir o uso real de agentes de IA (Claude Code / Codex) por repositório e time — cruzado com os sinais de durabilidade que o Iris já produz — para responder "onde gastamos esforço de IA e isso virou código durável vs. virou retrabalho?", sem nunca expor ou inferir uso por indivíduo.

A inversão central é de privacidade: a identidade morre na borda — a CLI parseia o transcript localmente, descarta todo o conteúdo e sobe só agregados anônimos. Nenhum transcript cru cruza a rede.

Acceptance criteria

  • Decisão de princípio resolvida e documentada (ver issue filha do ADR) — bloqueia tudo
  • CLI lê transcripts de sessão localmente e emite payload sem nenhuma identidade
  • Endpoint de ingestão grava em tabela já agregada (repo × dia × modelo); sem tabela de sessão com identidade
  • Exposição em grão repo/time com supressão k-anonimato; nenhuma view por dev, em lugar nenhum
  • Possível cruzar uso (input) × durabilidade do engine (output) no mesmo grão repo/período

Scope / non-goals

Dentro: captura de usage/modelo/duração/contagem de tool calls e sub-agentes; atribuição a repo/time; agregação; exposição com supressão.

Fora (permanente): ranking, score ou comparação de indivíduos (Princípio #2); exposição por dev a gestores; upload de texto de prompt/resposta, código ou argumentos de tool; timestamp exato.

Garantia "impossível por construção"

  1. Identidade (user/email/host/paths) nunca cruza a rede — descartada na máquina do dev antes do upload.
  2. A menor granularidade no banco é (repo, dia, modelo) — não existe coluna user. Nem um DBA com acesso total responde "quanto o fulano usou".
  3. Texto de conversa/código vive todo em message.content[]; o parser só lê content[].type para contar tool calls — nunca .text/.thinking/.input.
  4. Exposição suprime células de time/repo abaixo de N membros (k-anonimato pelo organograma).

Se encaixa em qual estágio?

Fora do escopo atual — justificar. Conflita hoje com o Princípio #7 (Vendor-Agnostic Intelligence) e o Non-Goal permanente "vendor-specific AI telemetry". A issue filha do ADR reabre essa decisão; uma vez fechada, o trabalho passa a ser Stage 3 (cross-system correlation).

Issues filhas

Ordem de execução (cada uma bloqueia as seguintes):

Follow-ups registrados, não criados ainda:

  • Adapter Codex (formato a confirmar em transcript real)
  • [METRIC] "durabilidade por token" / eficiência de esforço-IA — só depois do telemetry existir, via metric.yml
  • Pseudônimo rotativo para k-anonimato por contribuidores distintos (só se a inferência virar problema)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions