brazil-records-requests
Public records requests under Brazil's Access to Information Law (LAI). Use for Fala.BR filings, e-SIC, and CGU/CMRI appeals.
git clone --depth 1 https://github.com/jamditis/claude-skills-journalism /tmp/brazil-records-requests && cp -r /tmp/brazil-records-requests/journalism-core/skills/brazil-records-requests ~/.claude/skills/brazil-records-requestsSKILL.md
# Brazilian public records requests (LAI) Brazil's Access to Information Law, Lei 12.527/2011, universally called the LAI, is one of the stronger transparency statutes in Latin America and one of the most under-used by reporters. Most denials are not legal defeats. They are drafting failures that a differently worded request would have avoided. This skill covers the full cycle: choosing the body, drafting, filing, tracking, and the four-level appeal chain. ## When to use - Drafting a request to any Brazilian government body - Deciding which body and which portal actually holds the records - Diagnosing a denial and deciding whether to appeal or refile - Writing an appeal at any of the four levels - Planning the timeline of an investigation that depends on records - Training reporters on LAI practice ## Do not use for - US records requests, use `foia-requests` - Court case data, which in Brazil is mostly public through other channels (DataJud, e-SAJ, PJe) and rarely needs a records request - Data already published under transparência ativa (see "Check first" below) ## Language Respond in the language the reporter writes in. Draft anything addressed to a Brazilian public body — the request itself, appeals, follow-ups — in Portuguese, whatever language the conversation is in. Portuguese is not a validity requirement: LAI art. 10 and Decree 7.724/2012 art. 12 require the requester's identification and a description of the information, and neither mandates a language or authorizes denial for using another one. It is a practical one. The clerk reading the request works in Portuguese, and a request that is not understood gets bounced as generic under Decree 7.724, art. 13, I — which costs the full 20 days and a refile. Where the receiving body publishes its own filing rules, check them; subnational practice varies. ## Check first: is a request even necessary? Art. 8 of the LAI obliges agencies to publish core categories of information on their own initiative. Filing for something already public wastes 20 days and signals inexperience to the agency. Check, in order: 1. **Portal da Transparência** (portaltransparencia.gov.br), federal spending, payroll, sanctions, benefits 2. **Dados abertos** (dados.gov.br) and the agency's own open-data page 3. **PNCP** (pncp.gov.br), federal, state and municipal procurement since 2021 4. **Painel Lei de Acesso à Informação** (CGU), request statistics by agency 5. **Busca de Pedidos e Respostas** (CGU), published federal responses can show how an agency describes its own data. Sensitive, personal, classified, or otherwise restricted information may be redacted or excluded. A missing result does not prove that no earlier request exists. 6. **Achados e Pedidos** (achadosepedidos.org.br), Abraji and Transparência Brasil's archive of requests and responses across jurisdictions Step 5 is the single highest-value habit in Brazilian records work. Reading prior responses from the same agency teaches you its internal vocabulary, which is what determines whether your request is understood or bounced. ## Step 1: Identify the body and the portal There is no single filing system. The portal follows the body. | Body | Where to file | | --- | --- | | Federal executive (ministries, agencies, autarquias, federal state-owned firms) | **Fala.BR** (falabr.cgu.gov.br), gov.br login required | | States and the Federal District | Each state runs its own e-SIC; some have joined Fala.BR | | Municipalities | Municipal e-SIC; smaller cities often accept email or in-person only | | Judiciary | Each court's own SIC, under CNJ rules | | Ministério Público | Each MP's own SIC, under CNMP rules | | Legislature | Câmara, Senado, and each state assembly and city council run separate systems | Practical consequences: - **Filing with the wrong body costs the full 20 days.** The agency will answer that it does not hold the information, and under art. 11, §1º, III it should indicate who does, but frequently does not. - **When you are unsure which of two bodies holds the record, file with both.** There is no penalty and no cost. - **Sub-national practice is uneven.** Many municipal systems are broken, unstaffed, or require in-person filing. Budget extra time and keep evidence of failed filing attempts; that evidence supports later escalation. - **CGU and CMRI appeals only reach the federal executive.** For state and municipal denials, the last administrative step is usually the local controladoria or ouvidoria, and after that the courts. ## Step 2: Draft the request ### What the law lets you refuse to explain Art. 10 §3º forbids agencies from requiring the reasons for a request. Do not explain that you are a journalist, do not name the story, do not describe what you plan to do with the data. It is legally unnecessary and it invites the request to be routed to the press office instead of the records unit. Filing as a private citizen is normal practice. ### What the request must contain - Requester identification (name and a valid ID document, CPF is common but not mandated by art. 12; a user already identified on Fala.BR does not need to re-disclose it), anonymous filing is not available - A specific description of the information sought - The delivery format you want For a federal-executive request filed outside Fala.BR, add a physical or electronic address for communications. Decree 7.724/2012, art. 12, IV requires it. Other bodies can have different local rules. ### What makes a request survive Be specific about the record, not about the subject. Agencies hold documents and databases, not topics. | Weak | Strong | | --- | --- | | "All information about environmental fines" | "The complete IBAMA sanctions database (autos de infração) issued between 01/01/2020 and 31/12/2024, in CSV, containing the fields already published in the agency's open-data release" | | "Contracts with company X" | "The full text of contracts and their amendmen
Web accessibility patterns for news and academic sites. Use for WCAG audits, alt text, accessible data viz, and assistive tech.
Electron desktop apps with React, TypeScript, and Vite. Use for IPC, window/tray, PTY terminals, WebRTC, and packaging.
Remote JavaScript console and debugging on mobile. Use for phone/tablet console errors, responsive testing, Eruda, and vConsole.
Flags irreversible decisions before commit. Use for data models, infra, auth boundaries, API contracts, event schemas, CI/CD.
Python data pipelines with modular architecture. Use for content workflows, batch jobs, or Google Sheets/Drive integration.
Enforces a test-driven bug-fixing workflow. Use when a user reports a bug, failing code, an error, or asks to fix something.
AI-assisted coding with Claude Code, Cursor, Copilot, Codex, Aider, or Windsurf. Use to build or debug generated code.
Authorized web scraping with fallback cascades and access-failure handling. Use for social media, yt-dlp, CAPTCHA or 403 blocks.