Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Public-records OSINT: SEC, sanctions, courts, property.
.claude/skills/hezaohezao-osint-investigation/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 72% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 52% | 0% |
| case-19 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-20 | ✓→✗ | ▼ Worse | -23% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 84% | 0% |
Investigative framework for public-records OSINT: government contracts, corporate filings, lobbying, sanctions, offshore leaks, property records, court records, web archives, knowledge bases, and global news. Resolve entities across heterogeneous sources, build cross-links with explicit confidence, and produce structured evidence chains.
Python stdlib only. Zero install. Most sources work with no API key.
Use when the user asks for:
members, filings
| Source | What | Access | |--------|------|--------| | SEC EDGAR | US public company filings (10-K, 10-Q, 8-K, 13F) | curl to https://efts.sec.gov/LATEST/search-index?q=... | | USAspending.gov | Federal contracts and grants | curl to https://api.usaspending.gov/api/v2/... | | Senate Lobbying | Lobbying Disclosure Act filings | curl to https://lda.senate.gov/api/v1/... | | OFAC SDN | Sanctions list | curl to https://www.treasury.gov/ofac/... | | ICIJ Offshore Leaks | Panama Papers, Paradise Papers, etc. | browse_page to https://offshoreleaks.icij.org/... | | OpenCorporates | Corporate registry (optional free token) | curl to https://api.opencorporates.com/... |
| Source | What | Access | |--------|------|--------| | NYC ACRIS | NYC property records (deeds, mortgages) | browse_page to https://a836-acris.nyc.gov/... | | CourtListener | Federal + state court opinions | curl to https://www.courtlistener.com/api/... |
| Source | What | Access | |--------|------|--------| | Wayback Machine | Archived web pages | browse_page to https://web.archive.org/web/... | | Wikipedia/Wikidata | Encyclopedia + structured data | bash with curl to Wikipedia API | | GDELT | Global news monitoring | bash with curl to https://api.gdeltproject.org/... |
Before cross-referencing, resolve the entity across sources:
For each relevant source, query by entity name or identifier:
bash# SEC EDGAR — search for company filings curl -s "https://efts.sec.gov/LATEST/search-index?q=%22Company+Name%22" | python3 -c "..." # USAspending — federal contracts to entity curl -s -X POST "https://api.usaspending.gov/api/v2/search/spending_by_award/" -d '{"filters":{...}}' # OFAC SDN — check sanctions list curl -s "https://www.treasury.gov/ofac/downloads/sdn.csv" | grep -i "entity name"
Build explicit cross-links between sources:
For each finding, assign confidence:
Construct an evidence chain showing how findings connect:
[Source A: fact 1] → [Source B: fact 2] → [Inference: conclusion]
confidence: High confidence: Medium confidence: MediumProduce a structured investigation report:
markdown# OSINT Investigation: [Entity / Topic] ## Executive Summary [2-3 paragraph overview of findings] ## Entity Profile - **Canonical Name**: ... - **Aliases**: ... - **Identifiers**: EIN, LEI, CIK, etc. - **Known Addresses**: ... ## Findings by Source ### SEC EDGAR [Findings with dates, filing types, key data] ### USAspending [Contract awards, amounts, dates, agencies] ### OFAC SDN [Sanctions status: CLEAR / MATCH (with details)] ### [Other sources...] ## Cross-Link Analysis [Explicit connections between findings across sources] ## Evidence Chain [Step-by-step reasoning from raw data to conclusions] ## Confidence Assessment [Summary of confidence levels for key conclusions] ## Sources [All URLs queried, with access dates]
Save to .poirot/outputs/osint-{entity}-{YYYYMMDD}.md.
entities. Normalize but don't assume.
review. Don't report a match without verifying the full entry.
suggests" not "proven".
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 73,473 | 22,116 | -70% | 1 | 1 | 0% | 6,164 | 1,791 | -71% | 0 | 0 | — |
case-02 | fail→fail | 28,257 | 20,551 | -27% | 1 | 1 | 0% | 4,463 | 3,181 | -29% | 0 | 0 | — |
case-03 | fail→fail | 38,928 | 19,427 | -50% | 1 | 1 | 0% | 6,470 | 2,619 | -60% | 0 | 0 | — |
case-04 | fail→fail | 16,339 | 19,531 | +20% | 1 | 1 | 0% | 2,984 | 1,955 | -34% | 0 | 0 | — |
case-05 | pass→pass | 11,221 | 11,094 | -1% | 1 | 1 | 0% | 1,924 | 3,547 | +84% | 0 | 0 | — |
case-06 | pass→pass | 27,932 | 75,149 | +169% | 1 | 1 | 0% | 2,671 | 7,293 | +173% | 0 | 0 | — |
case-07 | fail→pass | 9,035 | 13,092 | +45% | 1 | 1 | 0% | 1,765 | 3,042 | +72% | 0 | 0 | — |
case-08 | pass→pass | 10,249 | 8,133 | -21% | 1 | 1 | 0% | 1,533 | 2,772 | +81% | 0 | 0 | — |
case-09 | pass→pass | 12,276 | 11,259 | -8% | 1 | 1 | 0% | 1,820 | 3,011 | +65% | 0 | 0 | — |
case-10 | pass→pass | 14,331 | 13,280 | -7% | 1 | 1 | 0% | 2,401 | 3,742 | +56% | 0 | 0 | — |
case-11 | pass→pass | 27,545 | 13,880 | -50% | 1 | 1 | 0% | 2,415 | 3,904 | +62% | 0 | 0 | — |
case-12 | pass→pass | 19,838 | 19,703 | -1% | 1 | 1 | 0% | 3,184 | 4,934 | +55% | 0 | 0 | — |
case-13 | pass→pass | 17,477 | 22,084 | +26% | 1 | 1 | 0% | 2,511 | 4,811 | +92% | 0 | 0 | — |
case-14 | fail→pass | 20,580 | 22,422 | +9% | 1 | 1 | 0% | 3,055 | 4,658 | +52% | 0 | 0 | — |
case-15 | pass→pass | 46,053 | 13,216 | -71% | 1 | 1 | 0% | 2,321 | 3,443 | +48% | 0 | 0 | — |
case-16 | fail→fail | 25,299 | 5,193 | -79% | 1 | 1 | 0% | 2,317 | 2,300 | -1% | 0 | 0 | — |
case-17 | pass→pass | 24,251 | 15,897 | -34% | 1 | 1 | 0% | 2,876 | 3,591 | +25% | 0 | 0 | — |
case-18 | pass→pass | 15,728 | 12,087 | -23% | 1 | 1 | 0% | 2,370 | 3,727 | +57% | 0 | 0 | — |
case-19 | fail→pass | 17,914 | 9,486 | -47% | 1 | 1 | 0% | 2,901 | 2,874 | -1% | 0 | 0 | — |
case-20 | pass→fail | 16,786 | 13,640 | -19% | 1 | 1 | 0% | 2,726 | 2,087 | -23% | 0 | 0 | — |
case-21 | pass→pass | 12,534 | 13,585 | +8% | 1 | 1 | 0% | 1,644 | 3,611 | +120% | 0 | 0 | — |
case-22 | pass→pass | 26,295 | 30,839 | +17% | 1 | 1 | 0% | 3,876 | 7,093 | +83% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 17 counted toward the lift figure. The other 5 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +9 percentage points is the difference between those two pass rates over the 17 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.