<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Brad Ju</title>
    <description>The latest articles on DEV Community by Brad Ju (@bradju).</description>
    <link>https://dev.to/bradju</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4020719%2F7ef6bf76-4485-486a-acd8-5572d2943bfc.png</url>
      <title>DEV Community: Brad Ju</title>
      <link>https://dev.to/bradju</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bradju"/>
    <language>en</language>
    <item>
      <title>12.4 Million US Business Registrations Are Sitting on State Open-Data Portals, Free</title>
      <dc:creator>Brad Ju</dc:creator>
      <pubDate>Wed, 08 Jul 2026 07:00:30 +0000</pubDate>
      <link>https://dev.to/bradju/124-million-us-business-registrations-are-sitting-on-state-open-data-portals-free-3h1n</link>
      <guid>https://dev.to/bradju/124-million-us-business-registrations-are-sitting-on-state-open-data-portals-free-3h1n</guid>
      <description>&lt;p&gt;&lt;em&gt;Five US states — New York, Colorado, Pennsylvania, Oregon, and Connecticut — publish their entire business registries as open data with commercial use explicitly allowed: ~12.4 million entities via documented Socrata APIs. Here's the verified dataset list, the fetcher we built, the measured rate limits nobody documents, and the gotchas that silently corrupt naive pulls.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you've ever needed US company registration data — who registered what LLC, when, where — you've probably hit the same walls we did. OpenCorporates has great coverage, but the free tier is heavily capped and commercial use requires a license that starts in "contact sales" territory. Aggregator sites are mostly portals that link back to each state's search page — no bulk data. And Delaware, where a huge share of US companies actually incorporate, offers zero bulk access and zero API; selling that data is part of the state's business model.&lt;/p&gt;

&lt;p&gt;So we assumed this data was simply locked up. It isn't. Several states publish their entire business registry — every LLC, corporation, and nonprofit ever registered — as open data on Socrata portals, explicitly in the public domain or licensed for commercial use. Here's what we verified, what we built to pull it, and the rate-limit realities we measured along the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  The five states that just give you everything
&lt;/h2&gt;

&lt;p&gt;Each of these is a Socrata SODA endpoint. All record counts are from live count(*) queries against the datasets; all license terms were verified on the dataset pages (June 2026).&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;State&lt;/th&gt;
&lt;th&gt;Dataset&lt;/th&gt;
&lt;th&gt;Records&lt;/th&gt;
&lt;th&gt;License&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;New York&lt;/td&gt;
&lt;td&gt;n9v6-gdp6 (active corps, beginning 1800)&lt;/td&gt;
&lt;td&gt;4.22M&lt;/td&gt;
&lt;td&gt;NY Open Data, commercial OK&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Colorado&lt;/td&gt;
&lt;td&gt;4ykn-tg5h&lt;/td&gt;
&lt;td&gt;3.06M&lt;/td&gt;
&lt;td&gt;Public Domain&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pennsylvania&lt;/td&gt;
&lt;td&gt;xvd7-5r2c (officer-level rows)&lt;/td&gt;
&lt;td&gt;2.31M entities&lt;/td&gt;
&lt;td&gt;Public Domain&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oregon&lt;/td&gt;
&lt;td&gt;tckn-sxa6 (row per associated name)&lt;/td&gt;
&lt;td&gt;1.56M&lt;/td&gt;
&lt;td&gt;Public record&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Connecticut&lt;/td&gt;
&lt;td&gt;n7gp-d28j (master table)&lt;/td&gt;
&lt;td&gt;1.28M&lt;/td&gt;
&lt;td&gt;Public Domain&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Total: ~12.4 million business entities, with names, entity types, formation dates, addresses, and (in most states) registered agents. New York deserves a special mention: the active-corporations file goes back to 1800, and there's a companion dataset (63wc-4exh) with 20.6 million raw filing records if you want full filing history rather than current state.&lt;/p&gt;

&lt;h2&gt;
  
  
  One script, config-driven
&lt;/h2&gt;

&lt;p&gt;Every state names its columns differently (entityname vs business_name vs current_entity_name), so the fetcher is a single Python-stdlib script driven by a SOURCES dict — one entry per state, mapping onto a normalized schema:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"co"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Colorado"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"resource"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://data.colorado.gov/resource/4ykn-tg5h.json"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"license"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Public Domain"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"fields"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"entity_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="s2"&gt;"entityid"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;           &lt;/span&gt;&lt;span class="s2"&gt;"entityname"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"entity_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="s2"&gt;"entitytype"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="s2"&gt;"entitystatus"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"formation_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"entityformdate"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"city"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;           &lt;/span&gt;&lt;span class="s2"&gt;"principalcity"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"region"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="s2"&gt;"principalstate"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"postal"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="s2"&gt;"principalzipcode"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Adding a new Socrata state is one more dict entry. Output is one JSONL file per state with a unified schema (state / entity_id / name / entity_type / status / formation_date / city / region / postal / agent_name), plus the raw row preserved under _raw so nothing is lost in normalization. Pagination is $limit/$offset ordered by :id, with resume-by-line-count: if the pull dies at row 650,000, rerunning counts the lines already on disk and continues from that offset in append mode.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rate-limit findings nobody documents
&lt;/h2&gt;

&lt;p&gt;This is where we burned the most time, so here are actual measurements from anonymous (no app token) requests in June 2026:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Plain offset pagination: ~500 rows/sec — the best you'll do anonymously. Counter-intuitively, deep offsets are not the problem: a query at offset 1,000,000 returns in about 3 seconds, barely slower than offset 0. The bottleneck is per-page transfer throughput, not offset depth — so the classic "keyset beats offset" instinct is wrong here.&lt;/li&gt;
&lt;li&gt;Keyset pagination via $select=:&lt;em&gt;,&lt;/em&gt; is a dead end. Asking for :* forces the server to compute system metadata for every row; a single 50k-row page took 200+ seconds and then timed out.&lt;/li&gt;
&lt;li&gt;The CSV bulk export endpoint (/api/views/{id}/rows.csv) is even slower: files are generated server-side on demand, and we measured 1,229 rows in 30 seconds — roughly 12× slower than JSON offset paging.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At ~500 rows/sec, the full ~13M rows across these states is a 7–8 hour pull. Register a free Socrata app token and send it as X-App-Token for a higher rate-limit tier — worth doing for the full pull; the anonymous numbers above are the floor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gotchas that will silently corrupt your data
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Row granularity differs per state. Oregon's dataset is one row per associated name, and Pennsylvania's is one row per officer — so multiple rows share one entity ID. Count rows naively and you'll overcount entities by 2–3×. Dedup on registry_number / filing_number is mandatory.&lt;/li&gt;
&lt;li&gt;CSV column labels ≠ API field names. Connecticut's CSV export has Title_Case labels like Business_City, while the SODA API uses billingcity. If you mix export formats, map columns through the dataset metadata (/api/views/{id}.json → columns[].fieldName), never by header string.&lt;/li&gt;
&lt;li&gt;Connecticut splits agents into companion datasets: the master table has no agent columns; registered agents and principals live in separate Agent Details / Principal Details datasets joined on accountnumber.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The states you can't get (and why)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;California, Texas, Delaware: bulk registry data is paid. Delaware in particular has no bulk product and no API at any price we could find — remarkable given it's the incorporation capital of the country.&lt;/li&gt;
&lt;li&gt;Florida: free! But it's a fixed-width flat file on an FTP server (Sunbiz), so it needs its own parser rather than the Socrata adapter.&lt;/li&gt;
&lt;li&gt;Ohio: publishes monthly bulk files, but the SoS site sits behind an aggressive bot wall.&lt;/li&gt;
&lt;li&gt;Iowa: was on Socrata (CC BY 4.0), then migrated to a new "Iowa Data Hub" platform — all the documented legacy endpoints now 404.&lt;/li&gt;
&lt;li&gt;Hawaii: the full statewide registry (~442k) is online, but the dataset carries no explicit license tag, so we left it disabled until commercial terms are confirmed.&lt;/li&gt;
&lt;li&gt;Washington, Illinois: publish business license data, not the registration registry.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  On legality and ethics
&lt;/h2&gt;

&lt;p&gt;Everything enabled here is official government open data with explicit public-domain or commercial-OK terms — no scraping of search UIs, no ToS gray zones. The one dataset without a clear license tag stays off. If you build on this, the same discipline applies: a state publishing data on an open-data portal is an invitation; a state putting its registry behind a paywall or bot wall is an answer, and the answer is no.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this is good for — and where to get the script
&lt;/h2&gt;

&lt;p&gt;Business registries are the skeleton of the US SMB economy: formation trends by county, entity-type shifts (the LLC-ification of everything), registered-agent market share, business survival analysis by cohort. We pulled this for company matching in deciqAI's analysis agents — but honestly the dataset is more interesting than our use case.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The whole thing ships as an open-source Agent Skill&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The verified dataset registry, the ~300-line dependency-free fetcher, the measured rate limits, and every gotcha above are packaged as us-business-registry-open-data in deciqAI Knowledge Skills — MIT licensed. Install: npx skills add deciqAI/knowledge-skills&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is US business registration data free to use commercially?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For five states, yes: New York, Colorado, Pennsylvania, Oregon, and Connecticut publish their full registries as open data with explicit public-domain or commercial-OK licenses. Most other states either charge for bulk access or don't offer it at all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why isn't Delaware in the list?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Delaware offers no bulk registry product and no API at any price — selling that data is part of the state's business model. California and Texas also charge for bulk registry access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How many records can you get in total?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;About 12.4 million deduplicated business entities across the five states, plus New York's companion dataset of 20.6 million raw filing records going back to 1800.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How long does a full pull take?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At the measured anonymous rate of ~500 rows/sec, roughly 7–8 hours for all ~13M rows. A free Socrata app token (sent as X-App-Token) raises the rate-limit tier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's the biggest mistake when pulling this data?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Counting rows as entities. Oregon is one row per associated name and Pennsylvania is one row per officer, so naive counts overcount by 2–3×. Deduplicate on the state's entity identifier before any analysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where do I get the fetcher script?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It ships inside the us-business-registry-open-data skill in deciqAI Knowledge Skills (MIT, on GitHub) — ~300 lines of Python stdlib, no dependencies, one config entry per state.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.deciqai.com/blog/us-business-registrations-open-data" rel="noopener noreferrer"&gt;deciqai.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>python</category>
      <category>data</category>
      <category>api</category>
    </item>
    <item>
      <title>How We Made 163 Mental Models Executable for AI Agents</title>
      <dc:creator>Brad Ju</dc:creator>
      <pubDate>Wed, 08 Jul 2026 07:00:08 +0000</pubDate>
      <link>https://dev.to/bradju/how-we-made-163-mental-models-executable-for-ai-agents-3b97</link>
      <guid>https://dev.to/bradju/how-we-made-163-mental-models-executable-for-ai-agents-3b97</guid>
      <description>&lt;p&gt;&lt;em&gt;Mental models like first principles and inversion usually live in books as prose an agent can't run. We turned 163 of them into open-source Agent Skills — each with explicit trigger conditions, a step-by-step process with hard gates, and worked historical case studies cited to primary sources. MIT-licensed, 10K+ installs on ClawHub.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Every founder has read about first-principles thinking. Almost no one — human or AI — actually runs it. The method lives in books and blog posts as prose: inspiring to read, impossible to execute. Ask an LLM to "use first principles" and you get vibes — a paragraph that name-checks Musk and then does whatever it was going to do anyway.&lt;/p&gt;

&lt;p&gt;We wanted our agents to genuinely run these methods before acting — tear assumptions to bedrock before pricing a product, invert before shipping a launch plan, update like a Bayesian when evidence lands. So we rebuilt 163 mental models as Agent Skills: self-contained SKILL.md files an agent loads and executes. Then we open-sourced all of them under MIT. Here's what "executable" actually took.&lt;/p&gt;

&lt;h2&gt;
  
  
  A mental model becomes executable when it can fail
&lt;/h2&gt;

&lt;p&gt;The difference between a description and a process is that a process can halt. Each skill has three load-bearing parts most prompt libraries skip:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explicit triggers — every skill's description states "Activate when: …" with concrete user phrasings, and most add "Do NOT activate when: …". This is what lets an agent load the right method at the right moment instead of applying its favorite hammer to everything.&lt;/li&gt;
&lt;li&gt;A numbered process with hard gates — steps like "Gate: no quantified baseline → stop." If the input doesn't meet the bar, the skill refuses to proceed rather than producing confident filler.&lt;/li&gt;
&lt;li&gt;A Common Rationalizations table — the fake moves people (and models) use to dodge the method, each paired with the reality check. "Everyone feels more aligned" is not a velocity change. "Value exists but is hard to quantify" is the standard defense of programs that don't work.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last one matters more than it looks. LLMs are excellent at producing text that sounds like the method. The rationalization table is a list of exactly those moves, so the agent can catch itself mid-dodge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Every skill ships a real case, cited to a primary source
&lt;/h2&gt;

&lt;p&gt;Abstract methods don't transfer. So every skill includes worked historical examples — real cases walked through the skill's own steps, with the primary source cited at the bottom. Not invented "imagine a startup…" scenarios. These:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Skill&lt;/th&gt;
&lt;th&gt;Case&lt;/th&gt;
&lt;th&gt;The move&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;checklist&lt;/td&gt;
&lt;td&gt;Van Halen's brown-M&amp;amp;M rider clause (1980s)&lt;/td&gt;
&lt;td&gt;A trivial, instantly verifiable item embedded in a safety checklist proves whether the counterparty read the rest&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;black-swan&lt;/td&gt;
&lt;td&gt;Fukushima vs. Onagawa tsunami design basis (2011)&lt;/td&gt;
&lt;td&gt;The 869 AD paleotsunami record was in the literature; one plant's design basis treated the tail as real, one didn't&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;inversion&lt;/td&gt;
&lt;td&gt;Abraham Wald's bomber armor analysis (1943)&lt;/td&gt;
&lt;td&gt;Armor where returning planes show no damage — survivor data is silent exactly where hits are fatal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;second-order-thinking&lt;/td&gt;
&lt;td&gt;The Hanoi rat bounty (1902)&lt;/td&gt;
&lt;td&gt;Pay per severed rat tail and you don't get fewer rats — you get tail-less rats released to breed, and rat farms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;bayesian-reasoning&lt;/td&gt;
&lt;td&gt;The search for Air France 447 (2009–2011)&lt;/td&gt;
&lt;td&gt;Discounting negative search evidence by the probability both acoustic beacons failed kept the posterior near the crash point — found in a week&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;first-principles&lt;/td&gt;
&lt;td&gt;SpaceX's rocket cost teardown (2002)&lt;/td&gt;
&lt;td&gt;Decompose launch prices into commodity bill-of-materials; the citable industry number was inherited belief, not bedrock&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;40 of the 163 skills now ship two cases from different domains, and we're extending that to the whole library. The sourcing rule is hard: cite only documents that exist, paraphrase rather than fabricate quotes, and when a number is a reconstruction, label it as one.&lt;/p&gt;

&lt;h2&gt;
  
  
  The numbers
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;deciqAI Knowledge Skills, today&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;164 skills · MIT licensed · 10K+ installs on ClawHub · worked examples cited to primary sources · the same skills wired into every deciqAI agent. Install: npx skills add deciqAI/knowledge-skills&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The library covers reasoning methods (first principles, inversion, Occam's razor, Bayesian updating), cognitive biases (anchoring, sunk cost, confirmation bias, hindsight), strategy frameworks (Porter's five forces, blue ocean, disruption), and operating tools (checklists, OKRs, OODA, pre-mortems). Each is a folder: SKILL.md plus examples/ plus references/ — copy one into your agent's skills directory, or install all 164 with one command.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why we open-sourced the thinking layer
&lt;/h2&gt;

&lt;p&gt;These are the same skills every deciqAI agent runs before it acts — when it drafts your pricing, plans an outreach campaign, or tears down a business plan. Open-sourcing them costs us nothing competitive: the moat isn't the method, it's the execution loop around it — the data, the agents, and the company operating system they run inside. Publishing the thinking layer just means anyone can check our agents' reasoning against the source, and any builder can give their own agent the same rigor.&lt;/p&gt;

&lt;p&gt;Contributions are open — the repo ships a skill template and quality bars (real triggers, hard gates, primary-sourced cases, no placeholders). The easiest first contribution is an [O] entry: a real failure pattern you observed using a skill, pasted into its rationalization table.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What is an Agent Skill?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A self-contained SKILL.md file (an open format introduced by Anthropic and now supported across Claude Code, Codex, Cursor, Gemini CLI and others) that an AI agent loads to execute a specific capability — here, a thinking method with triggers, steps, gates, and worked examples.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How is this different from a prompt library?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Prompts describe; skills execute and can halt. Each skill has explicit activation conditions, numbered steps with hard gates that stop the process when inputs don't meet the bar, and a table of the fake moves that imitate the method — so the agent can catch itself producing method-flavored filler.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Are the case studies real?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes — every worked example is a documented historical case walked through the skill's own steps, with the primary source cited (e.g., Wald's survivability memoranda, the NAIIC Fukushima report, Stone et al.'s AF 447 Bayesian search paper). No invented scenarios.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I use them outside deciqAI?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's the point — they're MIT-licensed and work in any agent that supports the SKILL.md format. Run npx skills add deciqAI/knowledge-skills, install from ClawHub, or copy a single folder from GitHub.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.deciqai.com/blog/mental-models-executable-agent-skills" rel="noopener noreferrer"&gt;deciqai.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
