Recording
codewhale-hq/Codewhale
Capture screenshots on registered computers, record on macOS or HarmonyOS, and manage saved captures.
Public records requests under Brazil's Access to Information Law (LAI).
$ npx skills add jamditis/claude-skills-journalism --skill brazil-records-requests -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jamditis/claude-skills-journalism brazil-records-requests --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .claude/skills && cp -r skills-src/journalism-core/skills/brazil-records-requests .claude/skills/brazil-records-requests && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "brazil-records-requests" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/journalism-core/skills/brazil-records-requests into .claude/skills/brazil-records-requests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brazil-records-requests", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jamditis/claude-skills-journalism/tree/master/journalism-core/skills/brazil-records-requestsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jamditis/claude-skills-journalism --skill brazil-records-requests -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jamditis/claude-skills-journalism brazil-records-requests --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .agents/skills && cp -r skills-src/journalism-core/skills/brazil-records-requests .agents/skills/brazil-records-requests && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "brazil-records-requests" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/journalism-core/skills/brazil-records-requests into .agents/skills/brazil-records-requests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brazil-records-requests", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jamditis/claude-skills-journalism --skill brazil-records-requests -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jamditis/claude-skills-journalism brazil-records-requests --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/journalism-core/skills/brazil-records-requests .cursor/skills/brazil-records-requests && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "brazil-records-requests" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/journalism-core/skills/brazil-records-requests into .cursor/skills/brazil-records-requests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brazil-records-requests", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jamditis/claude-skills-journalism.git --path journalism-core/skills/brazil-records-requests--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jamditis/claude-skills-journalism --skill brazil-records-requests -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jamditis/claude-skills-journalism brazil-records-requests --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/journalism-core/skills/brazil-records-requests .gemini/skills/brazil-records-requests && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "brazil-records-requests" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/journalism-core/skills/brazil-records-requests into .gemini/skills/brazil-records-requests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brazil-records-requests", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jamditis/claude-skills-journalism brazil-records-requestsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jamditis/claude-skills-journalism --skill brazil-records-requests -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .github/skills && cp -r skills-src/journalism-core/skills/brazil-records-requests .github/skills/brazil-records-requests && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "brazil-records-requests" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/journalism-core/skills/brazil-records-requests into .github/skills/brazil-records-requests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brazil-records-requests", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jamditis/claude-skills-journalism --skill brazil-records-requests -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jamditis/claude-skills-journalism brazil-records-requests --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jamditis/claude-skills-journalism.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/journalism-core/skills/brazil-records-requests .opencode/skills/brazil-records-requests && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "brazil-records-requests" agent skill from https://github.com/jamditis/claude-skills-journalism/tree/master/journalism-core/skills/brazil-records-requests into .opencode/skills/brazil-records-requests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "brazil-records-requests", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
brazil-records-requestsPublic records requests under Brazil's Access to Information Law (LAI).
Brazil Records Requests is an agent skill from jamditis/claude-skills-journalism. Public records requests under Brazil's Access to Information Law (LAI). Use for Fala.BR filings, e-SIC, and CGU/CMRI appeals.
Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 12 other files (for example `agents/openai.yaml`, `examples/exemplo-completo.md` and `templates/pedido-base-de-dados.md`).
The repository describes itself as: Claude Code skills for journalism, media, and academia - verification, FOIA, data journalism, academic writing, and more. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e3e2172. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Brazil Records Requests loads about 4k tokens when it runs. Until then it costs about 37 tokens; SKILL.md has 2,119 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jamditis/claude-skills-journalism at commit e3e2172, republished under its MIT licence (© jamditis). 2,119 words, ~3,962 tokens.
.claude/skills/brazil-records-requests/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.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.
foia-requestsRespond 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.
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:
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.
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:
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.
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.
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 amendments signed between the ministry and CNPJ 00.000.000/0001-00 since January 2023, with contract numbers and SEI process numbers" |
| "Documents about the decision" | "Process number 00000.000000/2024-00 in full, including technical opinions (notas técnicas) and dispatches" |
Techniques that work:
Use templates/pedido-inicial.md for the general form and
templates/pedido-base-de-dados.md when the target is a database.
Under art. 11:
So the realistic worst case for a first answer is 30 days. Silence does not route through the same channel as a reasoned denial, see "Step 5: The appeal chain" for the federal-executive procedure (reclamação, not a direct appeal).
Service is free; agencies may charge only for reproduction costs, and low-income requesters are exempt on declaration (art. 12).
Plan investigations backwards from this: a request filed in March with a full appeal chain may not resolve until August.
Almost all denials fall into a few categories. The right response differs for each, appealing a denial that should have been refiled wastes months.
Decree 7.724/2012 applies only to the federal executive. The first three grounds below use that Decree. For state, municipal, judicial, legislative, and Ministério Público bodies, check the local rule before characterizing a denial or citing the Decree.
| Denial | Basis | Response |
|---|---|---|
| Generic request | Federal executive: Decree 7.724/2012, art. 13, I | Refile, narrowed. Faster than appealing. |
| Disproportionate or unreasonable | Federal executive: Decree 7.724, art. 13, II | Refile in slices, or appeal if the volume claim is implausible |
| Requires additional analysis, interpretation or consolidation of data | Federal executive: Decree 7.724, art. 13, III | Appeal. If it knows where the source information is, the agency must identify that location (art. 13, parágrafo único). Ask it to state whether it has that knowledge and to identify the source if it does. |
| Personal data | LAI art. 31 | Appeal, requesting the record with personal fields redacted. Partial access is the rule, full withholding the exception. |
| Classified | LAI arts. 23–24 | Appeal, demanding the classification instrument (termo de classificação), its date, level and authority. The maximum restriction periods are 5 years for reservada, 15 for secreta, and 25 for ultrassecreta. Check whether an earlier event ends the restriction. |
| Body does not hold it | LAI art. 11, §1º, III | Ask which body does, the agency is required to say, then refile there |
| Silence (federal executive) | Decree 7.724/2012, arts. 22–23 | Reclamação to the monitoring authority, not a direct appeal, see Step 5. |
| Silence (other spheres) | Local LAI regulation | Usually an immediate appeal under LAI art. 15; confirm the state, municipal, judicial or legislative body's own rule, Decree 7.724/2012 binds the federal executive only. |
Two provisions worth knowing by heart:
A reasoned denial goes up four administrative levels. Each has its own window, and missing one closes the chain.
Reasoned denial
│ 10 days to file
▼
1. Immediate superior authority → decides in 5 days (LAI art. 15)
│ 10 days
▼
2. Agency head (autoridade máxima) → decides in 5 days
│ 10 days
▼
3. CGU, federal executive only → decides in 5 days (LAI art. 16)
│ 10 days
▼
4. CMRI, final administrative recourse (LAI art. 16 §3º)Silence from a federal executive body does not enter that chain directly. It goes through a separate reclamação step first:
Silence past the deadline (30 days after filing, at the earliest)
│ 10 days to file
▼
1. Reclamação to the monitoring authority → decides in 5 days (Decree 7.724/2012, art. 22)
│ if unsuccessful, 10 days
▼
2. Recurso to CGU → decides in 5 days (Decree 7.724/2012, art. 23)
│ 10 days
▼
3. CMRI, final administrative recourse (LAI art. 16 §3º)For state, municipal, judicial and legislative bodies, Decree 7.724/2012 does not apply, check whether the local LAI regulation has an equivalent reclamação step, or whether silence is appealed directly under LAI art. 15.
Notes from practice:
Templates: recurso-1a-instancia.md, recurso-2a-instancia.md,
recurso-cgu.md, recurso-cmri.md.
Keep a log per request. Protocol numbers are the only reliable identifier, and Fala.BR does not notify reliably.
## Request log
**Protocol:** [Fala.BR / e-SIC number]
**Body:** [agency]
**Filed:** [date]
**Statutory deadline:** [filed + 20 days]
**Extended to:** [+10 days, if invoked, note the justification given]
**Status:** [pending / granted / partial / denied / appealed]
**Denial ground cited:** [article and text]
**Appeal level:** [1 / 2 / CGU / CMRI]
**Next deadline:** [date, and whose]
**Files received:** [paths]Publishing the request and the response afterwards, through Achados e Pedidos or the outlet's own site, is standard practice in Brazilian investigative work and helps the next reporter. Before publishing, redact CPFs, home addresses, and any other personal field the agency did not already withhold under LAI art. 31, a public record is not automatically a public-interest publication, and this is especially true for victim, witness, and juvenile identifiers. LGPD does not apply to processing carried out exclusively for journalistic purposes (LGPD art. 4, II, a). That exclusion does not remove editorial, ethical, or other applicable legal duties to safeguard personal data.
The core citations here are Lei 12.527/2011 and Decree 7.724/2012 (federal executive regulation). Both have been amended, and state and municipal regulations vary. Verify article numbers against the current consolidated text on planalto.gov.br before relying on them in an appeal, and check current CGU guidance for procedural changes to Fala.BR.
Related Brazilian statutes that intersect: Lei 13.709/2018 (LGPD), Lei 13.460/2017 (users of public services), Lei 14.129/2021 (digital government).
Reinaldo Chaves (@reichaves) contributed this skill in PR #267.
© jamditis, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 9 other files in journalism-core/skills/brazil-records-requests of jamditis/claude-skills-journalism.
Open the folder on GitHubat commit e3e2172
Brazil Records Requests next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Brazil Records Requests this skilljamditis/claude-skills-journalism | 416 | — | ~4k | Automated safety check: Pass | MIT | |
| Recordingcodewhale-hq/Codewhale | 41k | — | ~540 | Automated safety check: Pass | MIT | |
| Architecture Decision Recordsaffaan-m/ECC | 276k | 4 repos | ~1.8k | Automated safety check: Pass | MIT | |
| Architecture Decision Recordsaffaan-m/ECC | 276k | 1 repos | ~863 | Automated safety check: Pass | MIT | |
| Architecture Decision Recordsaffaan-m/ECC | 276k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Browser Recordruvnet/ruflo | 74k | — | ~735 | Automated safety check: Notes | MIT |
codewhale-hq/Codewhale
Capture screenshots on registered computers, record on macOS or HarmonyOS, and manage saved captures.
affaan-m/ECC
Capture architectural decisions as numbered ADR markdown files in docs/adr/ with context, alternatives considered, consequences, and an index README.
affaan-m/ECC
在Claude Code会话期间,将做出的架构决策捕获为结构化的架构决策记录(ADR)。自动检测决策时刻,记录上下文、考虑的替代方案和理由。维护一个ADR日志,以便未来的开发人员理解代码库为何以当前方式构建。
affaan-m/ECC
コーディングセッション中にアーキテクチャ決定を構造化ADRとして記録し、自動的に決定の瞬間を検出し、コンテキスト、検討された代替案、根拠を記録します。今後の開発者がコードベースの形成理由を理解するためのADRログを維持します。
ruvnet/ruflo
Open a named, traced browser session into an RVF cognitive container with a ruvector trajectory recording every action
asgeirtj/system_prompts_leaks
Run an explicitly requested decision interview and record each settled decision in durable project documentation.
jamditis/claude-skills-journalism
A skill your agent uses when creating distinct website directions, a client review picker, asset catalog, previews, and Cloudflare-ready handoffs.
jamditis/claude-skills-journalism
Builds an Open Knowledge Format (OKF) knowledge base from existing docs, notes, or a repo.
jamditis/claude-skills-journalism
Local Gitleaks scans for staged changes, push ranges, and full history in private repos, with redacted reports.
jamditis/claude-skills-journalism
Acquire, clean, analyze, verify, visualize, and explain data for journalism.
jamditis/claude-skills-journalism
Creates print-ready HTML that exports to PDF. An agent skill from jamditis/claude-skills-journalism.
jamditis/claude-skills-journalism
Establishes how to find and use skills, requiring Skill tool invocation before any response.
Public records requests under Brazil's Access to Information Law (LAI). Brazil Records Requests is an agent skill from jamditis/claude-skills-journalism. Public records requests under Brazil's Access to Information Law (LAI).
Brazil Records Requests fits situations like: fala.BR filings; CGU/CMRI appeals.
Run `npx skills add jamditis/claude-skills-journalism --skill brazil-records-requests -a claude-code`. Or copy the skill folder (journalism-core/skills/brazil-records-requests in jamditis/claude-skills-journalism) into .claude/skills/brazil-records-requests in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jamditis/claude-skills-journalism --skill brazil-records-requests -a codex`. Or copy the skill folder (journalism-core/skills/brazil-records-requests in jamditis/claude-skills-journalism) into .agents/skills/brazil-records-requests in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jamditis/claude-skills-journalism --skill brazil-records-requests -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/brazil-records-requests, .gemini/skills/brazil-records-requests, .github/skills/brazil-records-requests and .opencode/skills/brazil-records-requests in your project.
SKILL.md names no scripts, command-line tools or credentials: Brazil Records Requests is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Brazil Records Requests is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Brazil Records Requests: Recording (codewhale-hq/Codewhale, 41k stars), Architecture Decision Records (affaan-m/ECC, 276k stars), Architecture Decision Records (affaan-m/ECC, 276k stars) and Architecture Decision Records (affaan-m/ECC, 276k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jamditis (a GitHub user) maintains it in jamditis/claude-skills-journalism, which has 416 GitHub stars. The repository holds 53 skills in this directory. The repository was last updated on October 4, 2026.
Source: jamditis/claude-skills-journalism on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.