AI content disclosure
Comportamento exigido para disclosure de conteúdo gerado por IA em produtos Koder. Cobre QUANDO e ONDE o disclaimer mecânico de `specs/ai-ui/ai-disclaimer.kmd` MUST aparecer. Companion da spec — spec define mecanismo (3 tiers + i18n + dismissal); policy define o comportamento exigido.
Policy — AI content disclosure
Spec mecânica:
specs/ai-ui/ai-disclaimer.kmd. Esta policy define *uando aplicar* *nde aplicar* e *xceções*
P1 — Quando aplicar (NORMATIVE)
Toda saída user-facing gerada por IA num produto Koder distribuído MUST incluir disclaimer per ai-disclaimer.kmd R1, em pelo menos *ier 1 (label)*
Aplicável a:
- Chat responses (Kortex, Talk, Kruze, Bot, Kode
aschat) - Inline AI suggestions (Kode editor ghost text, Kanvas suggestions)
- AI
generated artifacts (Claudestyle side panels) - AI summaries (RAG snippets, conversation auto-titles)
- AI-generated images (Vista, future Imago products)
- AI-generated audio (Reel TTS, Talk voice mode)
- AI
generated code (Kodesuggest blocks)
P2 — Quando NÃO aplicar (exceções)
Disclaimer pode ser omitido apenas em:
- *evdebug consoles internos*com banner permanente visível no chrome do app: "DEV CONSOLE — AI output unlabeled". Aplicável a `servicesaiplayground
,servicesai/eval`, dashboards admin internos. - *ackground AI operations sem output direto ao user* classification scores em UI tables (chip indica AI-classified mas não é "AI content" no sense disclosure); embedding visualization onde o user pediu específicamente.
- *I
generated test fixtures*consumidos por outro AI (não userfacing).
Exceções MUST ser documentadas no koder.toml do produto:
[ai_disclosure]
exempt_surfaces = ["/dev/playground", "/admin/eval"]
exempt_reason = "Internal dev console with chrome banner"P3 — Onde aparece (placement)
Tier 1 (label): footer chip do bubble OR equivalent inline marker per surface. Tier 2 (modal): firsttimeinsession modal; pertier per-user dismissal. Tier 3 (banner+confirmation): banner ABOVE the bubble; checkbox required for action gate.
Per specs/ai-ui/chat-message-bubble.kmd R2.
P4 — Risk-tier minimums por contexto
Produtos MUST declarar risk_tier_min per surface:
| Surface category | Default tier | Examples |
|---|---|---|
| Chat / draft / casual notes | 1 | Talk, Kortex casual mode, Kode |
| Factual / technical / research | 2 | Kortex research mode, RAG-backed surfaces |
| Critical decisions / actions | 3 | Kortex deploy view, financial workflows, medical/legal advice |
Products can SET tier higher (tighten) but NEVER lower (loosen).
Declaração via gateway request annotation koder_risk_tier_min (crosslink `aidisclaimer.kmd` R5).
P5 — i18n requirements
- Tier 1 + Tier 2 + Tier 3 copy MUST existir em TODOS os locales
shipados pelo produto. Fallback en-US permitido (per
i18n/contract.kmdR5). - Copy editorial NÃO editable por IA autonomamente.
P6 — Audit log
Toda dismissal de Tier 2 e toda confirmation de Tier 3 emit audit event per ai-disclaimer.kmd R4. Audit log retention segue policies/identity-data-retention.kmd R2.
P7 — Compliance basis
- *U AI Act*(Regulation 2024/1689) Article 50: "Providers of AI systems shall ensure that AI systems intended to interact directly with natural persons are designed and developed in such a way that the natural persons concerned are informed that they are interacting with an AI system."
- *GPD*(Lei 13.709/2018) Art. 9: transparency principle.
- *DPR*Recital 71: profiling/automated decision disclosure.
- *IT Sloan labels research 2024* graduated labeling reduces over-trust 18%; binary labels increase it.
P8 — Enforcement
Release engineering blocks release de qualquer produto AI Koder se:
- (a) Audit grep
koder_kit/ai/ai_message_bubble.dartuse em produto sem corresponding disclaimer wiring → ERROR. - (b)
koder.tomlsem[ai_disclosure]section em produto que importakoder_kit/ai→ ERROR. - (c) Surface custom AI sem chamar
KoderAIDisclaimerwidget → WARN (manual review obrigatório).
Spec audit script: koder-spec-audit ai-disclosure --product <slug> (futuro tools/koder-spec-audit/).
P9 — Cross-product registry
Registry meta/docs/stack/registries/ai-ui-coverage.md rastreia quais produtos têm AI disclaimer wiring shipado. Coluna #119 do grid.
Cross-link
- Spec mecânica:
specs/ai-ui/ai-disclaimer.kmd - Consumer:
specs/ai-ui/chat-message-bubble.kmd - Companion policies:
policies/security.kmd,policies/identity-data-retention.kmd - Registry:
registries/ai-ui-coverage.md - Compliance refs: EU AI Act art. 50, LGPD art. 9