CommunityPesquisa e Análise de Dadosgithub.com

2016judea/records-request

Solicite um registro específico de um órgão governamental dos EUA por meio de um pedido de acesso a registros públicos — como 'solicitar o modelo do avaliador', 'arquivar um pedido de dados', 'FOIA isto', 'pedido de registros abertos', 'podemos simplesmente pedir ao condado', 'quem devo escrever para <condado>', 'perseguir esse pedido', 'eles já responderam?'. Abrange verificar o site primeiro, encontrar o órgão e a lei corretos, o parágrafo de exceção que torna o pedido respondível em vez de recusado, armadilhas de formulários web (limites de caracteres ocultos, WAFs que rejeitam apóstrofos), perseguição (geralmente não há prazo), se o que for devolvido pode ser republicado e análise de tabelas multianuais sem erros silenciosos.

O que é records-request?

Esta skill para agentes de IA automatiza o processo de solicitação de registros públicos a órgãos governamentais dos EUA. Ela lida com todo o fluxo de trabalho: desde a identificação do órgão correto e da lei aplicável, passando pela redação de uma carta com o parágrafo de exceção crítico que evita recusas, até o envio por e-mail, formulário web ou correio, e o acompanhamento. A skill é compatível com qualquer agente que possa executar scripts e acessar a web, como Claude Code, Cursor ou Codex. Ela se destaca por incluir medidas defensivas contra armadilhas comuns: formulários web com limites ocultos de caracteres e firewalls que rejeitam apóstrofos, além de orientações sobre como verificar a capacidade de republicação dos dados e como analisar tabelas multianuais sem erros silenciosos. O objetivo é obter o documento desejado de forma barata e eficiente, sem irritar o órgão.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/2016judea/brick-mortar-skills/tree/HEAD/skills/records-request

Installed? Explore more Pesquisa e Análise de Dados skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Pedidos de registros

Objetivo: um documento nomeado em mãos, barato, sem irritar um órgão do qual você queira mais tarde. Pronto = o arquivo está no disco, em cache, com sua proveniência e sua posição de direitos registrada — ou um "não temos isso" por escrito, que fecha o arquivo e também é uma vitória.

O portão: um humano envia. Redija, verifique o destinatário, coloque em um arquivo, diga que é um rascunho, pare. Um portal com CAPTCHA e caixa de seleção de assinatura só pode ser o humano.


Etapa 0 — leia o site primeiro. A regra mais barata aqui.

Antes de redigir qualquer coisa, procure o documento no próprio site do órgão.

Uma tabela de taxas publicada é evidência de que o órgão é consultado, não evidência de que a resposta custa dinheiro. Um condado foi relatado como vendendo seu estudo de taxa de capitalização por US$ 34,50 por ano e publicou quatro anos da mesma coisa gratuitamente em sua página de estatísticas. Uma busca na página economizou o dinheiro e três semanas de espera.

Depois, verifique os vizinhos: uma agência estadual pode publicar um agregado que o condado não publica (mas leia o que ele realmente cobre — um "estudo de taxa de capitalização" estadual pode cobrir apenas propriedades de utilidade pública e ferrovias avaliadas pelo estado). E confirme o negativo adequadamente: pesquise os relatórios publicados do órgão por seus termos. Esse negativo é o que torna o pedido a única rota de entrada.

Etapa 1 — encontre o órgão e acerte o nome dele

O órgão não se chama igual em dois estados. Escrever para o órgão errado não rende nada. Para avaliação de propriedade comercial, por exemplo:

estadoquem avalia propriedade comercial
MN, IA, NEAvaliador do Condado
KSAvaliador do Condado
NDDiretor de Equalização Tributária do Condado
SDDiretor de Equalização do Condado
WInão há avaliadores de condado — a avaliação é municipal, então escreva para a cidade

Também: alguns estados incluem a cidade grande no avaliador do condado (Iowa: Polk cobre Des Moines); outros não (ND: Fargo e Cass são separados).

Prioridade de rota: e-mail, portal, correio.

  • E-mail sempre que existir um endereço. Verifique-o na própria página do órgão.
  • Portal (GovQA, NextRequest) apenas quando nenhum endereço for publicado. Portais precisam de um humano para a conta, o CAPTCHA e a caixa de seleção de assinatura vinculativa.
  • Correio por último; anote no cabeçalho do rascunho como alternativa.

Algumas páginas são renderizadas por script e curl não retorna nada útil. Remova tags em Python e procure por @; se não houver endereço genuinamente, diga isso em vez de adivinhar um.

Etapa 2 — o parágrafo de exceção é todo o pedido

Nomeie a própria lei de confidencialidade e a negue, na carta. Sem esse parágrafo, o pedido é recusado por completo, porque a disposição de confidencialidade é o que o órgão busca por reflexo. Com ele, a pergunta deixa de ser "podemos liberar isso" e se torna "qual de nossas próprias tabelas você quis dizer".

Peça apenas as tabelas e estudos derivados, em todo o condado, do próprio órgão, sem dados em nível de parcela ou identificáveis do proprietário, e ofereça-se para receber um documento misto com as partes enviadas pelo proprietário redigidas.

Disposições usadas com sucesso para pedidos de avaliador (verifique a lei atual):

estadosolicitação sobnegue
MNMinn. Stat. 13.03 subd. 313.51 subd. 2 — receita/despesa enviada pelo proprietário, fatores de vacância, áreas alugáveis, arrendamentos
KSK.S.A. 45-215 et seq. (custodiante: 45-218)45-221(b) — informações financeiras do contribuinte fornecidas ao avaliador
IAIowa Code ch. 2222.7 segredo comercial — e cite 441.21(3)(a), que exige afirmativamente a divulgação da fórmula ou método, além de 441.19(1)(a)
NENeb. Rev. Stat. 84-71284-712.05(3) segredo comercial / proprietário
NDN.D.C.C. 44-04-1844-04-18.4 segredo comercial / comercial
SDSDCL 1-27-1o equivalente de confidencialidade do avaliador daquele estado

Onde uma lei obriga a divulgação, cite-a (Iowa acima): ela anula completamente o reflexo de confidencialidade.

Não reformule um texto que já foi aceito. Depois que um órgão aceitar sua redação, reutilize-a literalmente para seus pares, trocando apenas o nome; uma versão reformulada convida uma segunda rodada de perguntas de escopo. Verifique se o parágrafo sobreviveu a qualquer edição em massa gerando um hash dele em relação ao original aceito.

Etapa 3 — três coisas para colocar na primeira carta, sempre

  1. Peça cinco anos, não um. "Anos de avaliação 2022 a 2026 inclusive." A mesma pesquisa para o órgão, cinco vezes os dados — e a série geralmente é o produto (mostra como o órgão moveu suas próprias taxas). Adicione: "Envie quaisquer anos que você tenha; uma resposta parcial é uma resposta útil", para que um ano ausente não emperre a resposta.
  2. Dê a eles uma saída barata. "Se o Órgão não mantiver tabelas desse tipo, uma resposta de uma linha dizendo isso encerra este assunto e não vou acompanhar." Um não por escrito é um arquivo fechado e custa trinta segundos em vez de uma carta de recusa.
  3. Peça a estimativa de taxa primeiro. "Se o preenchimento disso incorrer em uma taxa, informe-me a estimativa primeiro e eu reduzirei o pedido." Alguns órgãos cobram por hora para localizar e por hora para redigir — dois medidores ao mesmo tempo.

Etapa 4 — antes de um envio em lote

  • Verifique MX de cada domínio de destinatário: dig +short MX <dominio>. Pega um erro de digitação antes de dezenove rejeições.
  • Leia um corpo completo do início ao fim. Não o diff, a carta.
  • Mantenha a identidade do solicitante consistente em uma campanha (mesma pessoa ou mesma empresa, mesmo endereço) para que as respostas se agrupem e ninguém pergunte novamente quem você é.
  • Envie como texto simples. Cartas com quebra de linha rígida colapsam em HTML.

Etapa 4b — um formulário web é um canal hostil. Prepare-se para duas armadilhas.

  1. Um limite de caracteres do qual você não é informado. Um campo de mensagem pode truncar silenciosamente um corpo de 2.000 caracteres em 1.000. Para qualquer formulário, escreva uma variante curta antecipadamente: citação da lei, o pedido com seu intervalo de anos, a isenção de confidencialidade, a linha de estimativa de taxa, contato. A isenção é a última coisa a cortar.

  2. Um Firewall de Aplicação Web que rejeita a carga útil completamente (Tipo de Evento: assinatura). A causa é pontuação, não comprimento: um apóstrofo simples é a assinatura padrão de injeção SQL. Limpe o corpo e o assunto de ' " ( ) & / ; = < > -- e não-ASCII. Escreva "e" para "&", omita subseções de leis em vez de colocá-las entre parênteses, diga "seu Órgão derivou" em vez de "do Órgão". Audite em código:

    python3 -c "s=open('body.txt').read(); print({c:s.count(c) for c in \"'\\\"()&/;=<>\" if c in s})"
    

Conheça a alternativa antes de começar: órgãos que escondem um e-mail ainda publicam um endereço físico. Um formulário que luta contra você por três rodadas não vale uma quarta; envie pelo correio.

Etapa 5 — registre o envio, ou ele nunca aconteceu

Mantenha a linha de assunto legal — um oficial de registros roteia por ela, e as respostas se agrupam sob ela. Altere o cabeçalho de cada rascunho de NÃO ENVIADO para ENVIADO <data> de <endereço>, messageId <id>, mantenha o corpo literal abaixo como registro e atualize seu rastreador. Releia cada linha que uma edição em massa tocou: uma localização e substituição global em uma coluna de status marcará felizmente linhas de formulário web não enviadas como ENVIADAS.

Etapa 5b — respostas que precisam de um anexo

Alguns MCPs de e-mail (o do Zoho, por exemplo) não têm upload de anexo. Envie essa resposta por meio de um provedor transacional (por exemplo, Mailgun) do mesmo endereço, encadeada na mensagem do órgão com h:In-Reply-To e h:References definidos para o Message-ID deles, mantendo o assunto deles. Com curl, use --form-string para cada cabeçalho e campo do corpo — -F trata um valor que começa com < (todo Message-ID) ou @ como "leia este arquivo". Confirme a entrega pela API de eventos do provedor.

O próprio formulário de um órgão geralmente está em seu site. Se for um PDF simples, sobreponha texto com reportlab, coloque especificações longas em uma página 2 e renderize a página para PNG e observe-a antes de enviar (o texto cai sobre etiquetas com mais frequência do que você imagina).

Reduza quando devolver um formulário. Um aviso de taxa é o momento para dizer o que você já possui e pedir apenas o restante, estimativa primeiro.

Um não suave que nomeia as entradas não é um não nas tabelas derivadas. "Usamos dados de pesquisas de aluguel, que são confidenciais" responde a um item apontando para entradas confidenciais e pula o estudo derivado. Refaça os itens ignorados como sim/não, agradeça e ofereça a saída de uma linha novamente. Seja cortês: você também quer a próxima resposta deste órgão.

Etapa 6 — persiga, porque geralmente não há prazo

O prazo curto geralmente não é seu. Os "10 dias úteis" de um portal podem se aplicar apenas a um titular dos dados perguntando sobre si mesmo. Um pedido geral de dados governamentais geralmente recebe "um tempo razoável" (por exemplo, Minn. Stat. 13.03 subd. 3), que não define prazo algum. O acompanhamento é a única pressão. Agende uma perseguição cerca de duas semanas depois do dia do envio (veja o gancho pending-queue), com o número de referência, caminho do portal, contato nomeado e "não reformule o pedido" nela. Uma perseguição é uma verificação de status; nunca reescopo em um acompanhamento.

Etapa 7 — o que veio pode ser republicado?

Responda a isso antes de construir qualquer coisa com base nisso.

  • Minnesota: sim, inclusive comercialmente. Uma agência deve permitir "uso irrestrito desses dados, mesmo para fins comerciais, salvo autorização estatutária específica em contrário" — Parecer do Procurador-Geral de MN 852 (1995).
  • Em todo lugar: fatos não têm direitos autorais (Feist) — apenas uma seleção ou arranjo particular pode ter. Republicue os números, nunca o layout do documento deles. Reexpresse em seu próprio esquema.
  • Em outros lugares, a parte de uso é incerta. Leia a cláusula de uso comercial daquele estado antes de reivindicá-la e marque seus próprios arquivos honestamente ("ainda não liberado para republicação" é seu marcador, não a restrição do órgão — não o cite como tal).

Etapa 8 — analisando o que chega

Armazene em cache o original junto com a saída analisada com um sha256 e a URL canônica, e nunca baixe novamente.

Rótulos variam entre anos. Os rótulos de linha de um condado foram 22, 22, 18, 18 em quatro planilhas anuais, com tipos de propriedade desaparecendo. Escreva manualmente a correspondência e mantenha o rótulo bruto literal em cada registro. Nunca use correspondência fuzzy — é assim que um número errado é enviado parecendo certo. Um tipo que desaparece está ausente, não é zero.

Não confie em uma regex sobre a saída de pdftotext para lhe dizer a estrutura. Uma classe de caractere faltando dígitos truncou Armazém <25% Escritório / >20K no 2 e mesclou silenciosamente quatro linhas em duas. Verifique a contagem de linhas em relação à fonte antes de acreditar em sua extração.

Comprove uma junção entre fontes na fonte nº 2 antes de vender amplitude. Dois condados no mesmo estado, mesmo tipo de documento, podem compartilhar zero nomes exatos de tipo de propriedade.

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

2016judea/ascii-charts

Build charts as plain Unicode-block text — bar, range, bullet, gap-bracket, star-histogram, heatmap, line, Venn, pie, donut and scatter — with a dependency-free Python script, for anywhere only monospace text survives (newsletter code blocks, Markdown, terminals, plain-text email, chat). Use when a chart has to embed as literal text instead of an image or a third-party chart service, or when you want a hand-made terminal look with no branding footer.

2016judea/buffett-checklist

Apply Warren Buffett's investment framework as a discipline lens when weighing a buy, hold, or sell decision — circle of competence, economic moat, owner earnings & intrinsic value, margin of safety, management/capital-allocation quality, and market psychology (Mr. Market, fear vs greed, temperament). Use when asked to "run this through Buffett", "what would Buffett say", "does this pass the moat test", "is this cheap enough", or for a second, more skeptical read on a name being evaluated or already held. This is a discipline overlay, not a replacement for a strategy — it applies the Buffett lens to how someone actually invests, rather than issuing generic advice.

2016judea/image-riff

Turn one or more reference images into original art in that reference's own visual language, then cut it to whatever surface it's for. Use when you paste or point at art and say "use this as the base image", "generate art from this", "riff on this", "some creative ideation with these images", "make me a channel banner / avatar / cover / plate", "wilder version of this", or want a spread of options off one piece of reference. This is the TASK skill; the engine is the `make-art` tool skill.

2016judea/leonardo

Draw the way Leonardo da Vinci drew — a study sheet, a notebook folio, a red-chalk or silverpoint study, a machine cutaway, a storm of vortices — in his real materials and page-logic, generated with the make-art engine and anchored on fifteen of his actual (public-domain) sheets. Use when you say "Leonardo", "da Vinci", "like his notebooks", "a codex page of X", "draw this as one of his study sheets", "sanguine", "silverpoint", or wants a design, diagram, or illustration in that hand. Also a reading guide to his notebooks (Richter's 1883 public-domain translation) for "what did Leonardo say about shadow / trees / water". This is a TASK skill; the engine is `make-art`.

2016judea/mcp-stack

Which free MCP server or framework to reach for, and its traps — finance/gov data (SEC EDGAR, Yahoo, SAM.gov, USAspending), web research (Exa, Firecrawl, Crawl4AI, Jina reader), design/art/brand (Canva, Inkscape, Penpot, Figma, Orshot, Hugging Face image gen, vectorizing, charts), data/spatial (DuckDB spatial, live ArcGIS layers, OpenStreetMap/Overpass, Census, MapLibre), and ops (PostHog, iMessage, context7 docs). Use when making a social post, OG card, poster, logo/vector, chart, map, or brand asset; when querying parquet/geojson/duckdb or a city's open-data layer; when an MCP "needs authentication" or fails; or when asked "what tools do we have", "is there an MCP for X", "should we add X".

2016judea/sms-native-product

Build a product whose interface is text messages rather than an app or a website — "no app, no website", "they just text a number", "chat with our agent natively in Text Messages", "can we do this over text", "an SMS bot", "a Telegram bot", "make it a group chat", "minimum viable friction". Fires equally when it has already gone wrong — "my campaign got rejected", "our number is blocked", "the texts aren't arriving", "why do I need to register". Covers the gate that decides whether such a product can send at all (US A2P 10DLC registration, SHAFT content rules, permanent rejection codes), group MMS from code, what each channel can't do, an architecture that survives losing the channel, and guarding model-rewritten user content.

2016judea/vertical-market-agent

Build a chat agent that knows one industry in one metro better than any general model because it carries a precomputed digest of real public records (or a mined review corpus) and can pull live records mid-conversation — finding the moat, building a byte-stable substrate, enumerating what the records can't, the data traps that produce plausible wrong numbers, deterministic math in tools, measured prompt cost and cache TTL, shipping as an ad destination, an off-sector ending, and a precomputed spatial "what is this next to" layer. Use when building a vertical AI agent grounded in records rather than general knowledge.

Habilidades Relacionadas