institutions
Skill0 starsChanged 4 months agoMITView on GitHub
Populate or audit a project's docs/institutions.md using the shared institutional reference (research/institutions/brazil/ for Brazil projects). Bootstraps from shared topic files and artigos.db; marks gaps for manual curation.
In this repository39 other files it gives its agents.
- anecdotesSkill
- backupSkill
- checkSkill
- cite-syncSkill
- dataSkill
- diariosSkill
- distill-styleSkill
- driveSkill
- dropboxSkill
- fetch-annotationsSkill
- findings-auditSkill
- findingsSkill
- gmailSkill
- handoffSkill
- howtoSkill
- hypothesisSkill
- iatSkill
- ideaSkill
- inboxSkill
- literatureSkill
- llmkitSkill
- meetSkill
- memory-auditSkill
- new-pipelineSkill
- new-projectSkill
- nextSkill
- otterSkill
- outlookSkill
- questionsSkill
- referee-panelSkill
- siteSkill
- style-checkSkill
- style-reviewSkill
- style-reviseSkill
- tactiqSkill
- theorySkill
- validate-sectionSkill
- whatsappSkill
- zoomSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
28 rules. About 0 are common, 11 are distinctive, and 17 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈11
Distinctive · estimate
This author's own choices. Worth a look.
17
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 21
surgical single-section edit: Update one section of institutions.md (e.g.
- Distinctive: line 36
If no project slug is given, infer from the current working directory.
- Very specific: line 65
Read $PROJECT/CLAUDE.md and $PROJECT/docs/summary.md.
- Distinctive: line 76
Read these files to understand what institutional domains matter:
- Very specific: line 107
Check
$INST/quasi-experimentos.md: if the project uses a quasi-experimental design — it indexes identification strategies embedded in … - Distinctive: line 128
Do not read all 26 topic files: Only read the ones identified in step 4.
- Very specific: line 135
Write docs/institutions.md following the project docs contract format.
- Very specific: line 187
Read the existing institutions.md.
- Distinctive: line 190
If the section is already covered: leave it alone (do not rewrite existing content — the human curated it for a reason)
- Very specific: line 192
If the section is missing: draft it and append, clearly marked as [NEW — from shared reference, needs review]
- Very specific: line 194
If the section exists but the shared reference has newer information (check Snapshot as of dates): add a note [shared reference updated …
- Very specific: line 200
Use when one section of institutions.md needs to change after a new law / portaria / court ruling surfaced — typically from a /next …
- Very specific: line 216
Do not re-walk the full shared reference, re-derive other sections, or rerun citation resolution across the whole file.
- Very specific: line 220
What to edit: only the named section. Preserve heading structure, citation style, NEEDS PRIMARY SOURCE conventions.
- Distinctive: line 235
Do not add content. Only:
- Very specific: line 236
Run $CITE --find-in docs/institutions.md to check all citations
- Distinctive: line 238
Check coverage: list shared-reference topics that seem relevant but aren't covered in the file
- Very specific: line 240
Check for NEEDS PRIMARY SOURCE markers that are still open
- Distinctive: line 245
After writing or updating, run:
- Distinctive: line 252
Every backtick citation should resolve.
- Distinctive: line 274
Write accurate paper prose without hallucinating institutional facts
- Very specific: line 315
Statutes: Use backtick form (` CDC.43.§2 ) for all statutory references.
- Very specific: line 317
STF cases: Use backtick form (
Tema1199 , ADI4650 ) when the case is in jurisprudencia_index.yaml. - Very specific: line 319
Súmulas: Use backtick form (
SV14 , STSE38). - Distinctive: line 320
Non-cataloged sources: Use prose with a URL or full citation.
- Very specific: line 337
cite.py must be run for every new backtick citation: Don't guess whether a citation resolves — verify.
- Distinctive: line 340
The shared reference is large (~300KB+ across all files): Don't read everything — use the keyword/index strategy in step 4 to narrow down …
- Very specific: line 359
artigos.db must exist: If ~/research/data/lei/artigos.db is missing, tell the user to download it from Dropbox (see …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/institutions — Populate or audit institutional background
Build or update a project's docs/institutions.md by pulling relevant
material from the shared institutional reference and resolving statutory
citations against artigos.db.
Arguments
/institutions— bootstrap from scratch (new project) or audit an existinginstitutions.mdagainst the shared reference for gaps/institutions update— re-check existing file against current shared reference; add new sections for topics not yet covered/institutions audit— verify citations resolve, flag stale claims, check coverage against shared reference without adding content/institutions --update <section> [--artifact <AN-id-or-build-path>]— surgical single-section edit. Update one section ofinstitutions.md(e.g. after a new law, portaria, or court ruling changes the rule it documents). Reads onlyCLAUDE.md,institutions.md, and the optional triggering artifact.--artifactaccepts either an AN id (preferred — e.g.AN-019; the skill readsdocs/analyses/an-019-*.mdto recover the institutional fact and its source) or a rawbuild/<path>fallback. Citations in the edited section use the AN id, not the bare build path. Does not re-derive other sections, does not re-walk the full shared reference. Use from/nextstep 5 when a run surfaced an institutional fact that belongs in one existing section. The<section>argument is a heading slug from the current file. Distinct fromupdate(which re-checks the whole file against the shared reference for missing sections).
If no project slug is given, infer from the current working directory.
Pipeline overview
1. Find workspace root & project
2. Detect country → select shared reference
3. Read project context
4. Identify relevant institutional domains
5. Read relevant shared-reference topic files
6. Draft / update institutions.md
7. Verify citations
8. ReportStep-by-step
1. Find workspace root and project
Locate $ROOT by searching upward for CLAUDE.md next to projects/
and pipelines/. Resolve the project path: $ROOT/projects/{slug}/.
Set:
$INST=$ROOT/research/institutions/brazil(Brazil projects)$CITE=$INST/tools/leis_artigos/cite.py$DB=~/research/data/lei/artigos.db
2. Detect country
Read $PROJECT/CLAUDE.md and $PROJECT/docs/summary.md. If the project
is Brazil-focused (most projects in this workspace are), use
$ROOT/research/institutions/brazil/ as the shared reference.
For non-Brazil projects: skip the shared reference entirely. Scaffold
institutions.md with section headings derived from the project context
and mark every section **TODO: requires manual curation**. Report to
the user that no shared reference exists for this country. Stop here.
3. Read project context
Read these files to understand what institutional domains matter:
docs/summary.md(required — stop if missing)docs/thinking.mddocs/methods.mddocs/hypotheses.mddocs/institutions.md(existing content, if any)paper/*.tex(scan introduction and institutional background sections)CLAUDE.md
Extract:
- The core research question and identification strategy
- Key institutional actors (courts, agencies, registries, etc.)
- Statutory anchors mentioned or implied
- Procedural details relevant to the research design
4. Identify relevant institutional domains
Using the project context, identify which shared-reference topic files are relevant. Do this by:
- Grep the topic keyword lines. Each file in
$INST/topics/has aTopics / keywordsline near the top. Search these for project keywords (bilingual — Portuguese and English). - Consult the indices. Grep
$INST/siglas.mdfor acronyms found in the project context. Each entry points to a topical file. - Check
$INST/README.mdfor the organized index of all 26 topic files. Scan section headings to catch domains the keyword search missed. - Check
$INST/quasi-experimentos.mdif the project uses a quasi-experimental design — it indexes identification strategies embedded in Brazilian institutions. - Check
$INST/data_pointers.mdfor data sources relevant to the project's datasets.
Produce a list of 3–8 relevant topic files, ranked by importance. Show the list to the user before proceeding unless they said "go ahead".
5. Read relevant shared-reference topic files
For each relevant topic file, read it fully. Also read:
$INST/leis_index.yaml— for statutes relevant to the project$INST/glossario.md— for terms that need precise definition$INST/pitfalls.md— for common mistakes in this domain$INST/jurisprudencia_index.yaml— if STF cases matter$INST/sumulas_vinculantes.yaml— if binding summaries are cited- Any YAML index entry that references a relevant statute or case
Do not read all 26 topic files. Only read the ones identified in step 4. The shared reference is large; relevance filtering is critical.
6. Draft or update institutions.md
Mode: bootstrap (no existing file or file is a stub)
Write docs/institutions.md following the project docs contract format.
Structure it around the project's institutional needs, not the shared
reference's organization.
For each section, apply the inline vs. reference calibration from the Principles section:
- Inline the load-bearing facts — project-specific institutional details that Claude would hallucinate about if not grounded. These are facts where getting it wrong would break paper prose or research design suggestions. Rewrite for project relevance — don't copy paragraphs verbatim from the shared reference. Explain why each fact matters for this project's research design, not just state it.
- Reference general doctrine. For institutional facts that Claude
knows reliably (e.g., how open-list PR works, what the three
improbidade categories are), write a one-line pointer to the relevant
shared-reference topic file and section (e.g., "See
improbidade.md§1 in the shared reference for LIA categories and sanctions"). Do not duplicate the shared reference — coauthors have access to the public repo. The file header should include the shared-reference repo URL and list the most relevant topic files. - Use backtick citations for statutory references. For every statute
cited, use the canonical compact form (
`CDC.43.§2`,`CF.31.§2`). Run$CITE '<citation>'to verify it resolves before writing it. If it doesn't resolve, use a prose mention with a planalto.gov.br link instead. - Do not paste statutory text. The whole point of
artigos.dbis that Claude can look up article text on demand. Ininstitutions.md, characterize what the article says and why it matters; don't quote it. Exception: for the 2–3 most load-bearing provisions (the ones that define the treatment, the assignment mechanism, or the sample), a brief inline quote is acceptable with the backtick citation alongside. - Mark gaps. For project-specific institutional facts that can't be
derived from the shared reference (e.g., court-specific assignment
mechanics, agency-specific data practices, sample-specific
empirical facts), write a placeholder:
**PROJECT-SPECIFIC — needs manual curation:** [description of what's needed] - Mark unverified claims. For facts pulled from the shared reference
that the reference itself flags as time-volatile or unverified:
**NEEDS PRIMARY SOURCE:** [what needs checking] - Cross-reference the paper. Where possible, note which paper section each institutional section feeds (e.g., "Key for §2.1"). This maintains the serasa-style table of contents.
Mode: update (existing file, --update or default for non-empty file)
Read the existing institutions.md. For each section in the shared
reference that the project context suggests is relevant:
- If the section is already covered: leave it alone (do not rewrite existing content — the human curated it for a reason)
- If the section is missing: draft it and append, clearly marked as
**[NEW — from shared reference, needs review]** - If the section exists but the shared reference has newer information
(check
Snapshot as ofdates): add a note**[shared reference updated YYYY — check for changes]**
Mode: surgical update (--update <section> [--artifact <path>])
Use when one section of institutions.md needs to change after a new
law / portaria / court ruling surfaced — typically from a /next
iteration that ran an analysis revealing an institutional fact.
Minimal read set:
$PROJ/CLAUDE.md— current focus and naming conventions.$PROJ/docs/institutions.md— locate the target section, respect the file's existing structure.- The
--artifactargument (if given). If an AN id: read$PROJ/docs/analyses/an-NNN-*.mdto recover the underlying fact; cite the AN id in the section's citation tail. If abuild/<path>: read the artifact directly. - The relevant shared-reference topic file only if the target section directly mirrors it.
Do not re-walk the full shared reference, re-derive other
sections, or rerun citation resolution across the whole file. Run
$CITE on the new citations only.
What to edit: only the named section. Preserve heading structure,
citation style, **NEEDS PRIMARY SOURCE** conventions.
What not to touch: other sections, the file's domain inventory, the cross-reference index (if present), or the document header.
Output: edited institutions.md plus a one-paragraph summary
(which section, what changed, citations added). The summary belongs
in the /next end-of-iteration report.
Distinct from update (full re-check against shared reference for
missing sections) and audit (read-only citation/coverage check).
Mode: audit (--audit)
Do not add content. Only:
- Run
$CITE --find-in docs/institutions.mdto check all citations - Flag citations that don't resolve
- Check coverage: list shared-reference topics that seem relevant but aren't covered in the file
- Check for
**NEEDS PRIMARY SOURCE**markers that are still open - Report findings
7. Verify citations
After writing or updating, run:
python3 $CITE --find-in $PROJECT/docs/institutions.mdReview the output:
- Every backtick citation should resolve. If any don't, either fix the citation form or revert to prose mention.
- Report the resolution rate to the user.
8. Report
Output a structured summary:
- File:
docs/institutions.md - Mode: bootstrap / update / audit
- Shared-reference topics used: list of topic files consulted
- Sections written/updated: list
- Citations: total / resolved / failed
- Gaps marked: count of
**PROJECT-SPECIFIC**and**NEEDS PRIMARY SOURCE**markers - Coverage notes: any relevant shared-reference topics not yet in the file
Principles
What institutions.md is for
The audience is Claude in future sessions. The file grounds the agent on institutional details so it can:
- Write accurate paper prose without hallucinating institutional facts
- Make research-design suggestions that respect institutional constraints
- Understand why the data looks the way it does
It is not a paper draft and not a copy of the shared reference. It's a project-specific selection of institutional facts, attributed and citation-linked, that Claude should trust as the source of truth for this project.
Relationship to the shared reference
The shared reference (research/institutions/brazil/) is a public repo
(brazil-institutions)
that all coauthors can access. Project-level institutions.md files
should reference it, not duplicate it.
- Shared reference = general, authoritative, cross-cutting
- Project institutions.md = project-specific, curated, design-oriented
The skill bridges the two. The calibration principle is hallucination risk:
- Inline in institutions.md: project-specific facts that Claude cannot reliably derive from training data and would hallucinate about (e.g., "first-instance improbidade convictions do not trigger Ficha Limpa", "TJSP assigns cases by NPU last digits", regime change timelines specific to the sample period). These are the load-bearing facts for the research design.
- Reference to the shared repo: general institutional doctrine that
Claude knows reliably from training data or that is standard enough
to look up on demand (e.g., the three categories of improbidade,
how open-list PR works, MP constitutional structure). For these,
a one-line pointer like "See
improbidade.md§2 in the shared reference" is sufficient.
The test: if Claude got this fact wrong, would it break the paper prose or lead to a bad research-design suggestion? If yes, inline it. If no, reference it.
Citation conventions
- Statutes: Use backtick form (
`CDC.43.§2`) for all statutory references. Always verify viacite.pybefore writing. - STF cases: Use backtick form (
`Tema1199`,`ADI4650`) when the case is injurisprudencia_index.yaml. - Súmulas: Use backtick form (
`SV14`,`STSE38`). - Non-cataloged sources: Use prose with a URL or full citation.
- Don't paste article text. Characterize and cite; let
artigos.dbserve the text on demand.
What NOT to put in institutions.md
- Verbatim statute text (use
artigos.db) - General institutional doctrine covered in the shared reference that Claude knows reliably from training data (reference it instead)
- Generic procedure that applies to any case type (cross-reference the shared reference instead)
- Empirical results (those go in
results.md) - Speculation (goes in
thinking.md) - Literature citations (go in
literature.md)
Gotchas
- cite.py must be run for every new backtick citation. Don't guess whether a citation resolves — verify. Non-cataloged laws won't resolve and need prose mentions instead. Currently 37 laws are cataloged.
- The shared reference is large (~300KB+ across all files). Don't read everything — use the keyword/index strategy in step 4 to narrow down to 3–8 topic files.
- Project-specific facts are the hard part. The skill can pull general institutional background from the shared reference, but facts like "TJSP assigns cases by sorteio eletrônico within foro-vara" or "plaintiff win-rate is ~80%" come from the project's own research. Mark these gaps clearly.
- Existing content is sacred. In update mode, never rewrite sections the human has already curated. The human's version is better than what the skill would produce — it has project-specific nuance.
- Don't create a table of contents prematurely. The serasa-style TOC with paper-section mappings is valuable but only makes sense when the paper structure is settled. For early-stage projects, skip the TOC and organize by institutional domain instead.
- Check snapshot dates. Shared-reference topic files have
Snapshot as of YYYYlines. If a topic file hasn't been updated since before a major reform, flag the staleness rather than silently trusting old content. - artigos.db must exist. If
~/research/data/lei/artigos.dbis missing, tell the user to download it from Dropbox (see$INST/tools/leis_artigos/README.md) and stop. Don't proceed without citation verification.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

