본문으로 건너뛰기
cccskills
무료GitHub에 공개한국어 소개

osint-investigation

기업 공시, 정부 계약, 제재 명단 등 공개 기록을 교차 조사하고 이름의 표기 차이를 대조하여 자금과 조직의 관계를 출처 및 신뢰도와 함께 정리합니다.

원문원문 설명 보기

Follow the money via public records and sanctions data.

연동 도구SEC EDGAR
AI 평가90점/ 100설치 방법 보기

이럴 때 유용합니다

  • 기업 지배 관계와 공시를 조사합니다
  • 제재 명단과 역외 정보를 대조합니다
  • 로비 활동과 정부 계약을 비교합니다
  • 부동산 소유권과 소송 이력을 조사합니다
  • 출처와 신뢰도를 갖춘 결과를 정리합니다

한국어 소개

할 수 있는 일

osint-investigation은 기업 공시, 정부 계약, 로비 활동, 제재 명단, 부동산 기록, 법원 기록 등 공개 정보를 교차 조사합니다. 수집한 데이터를 CSV로 통일하고 기업명의 서로 다른 표기를 대조합니다. 일치 후보에 신뢰도를 표시하고 원본 기록까지 추적할 수 있는 근거를 JSON으로 정리합니다. 필요하면 신고와 계약 수주 같은 사건이 시간상 얼마나 가까운지도 통계적으로 분석합니다.

이럴 때 유용합니다

기업 지배 관계와 공시 내용을 확인하거나 제재 대상과 대조할 때 유용합니다. 정부 계약과 로비 활동의 관계를 조사할 때도 사용합니다. 뉴스와 과거 웹페이지를 참고하여 여러 자료에 흩어진 조사 근거를 정리할 수 있습니다.

사용 예시

  • “이 기업의 공시, 정부 계약, 제재 정보를 대조해 주세요.”
  • “로비 활동 신고와 계약 수주 시점을 비교해 주세요.”
  • “이 조사 결과에 출처와 신뢰도를 붙여 정리해 주세요.”

주의 사항

Python 표준 라이브러리를 사용하며 Linux, macOS, Windows를 지원합니다. 많은 정보원은 API 키 없이 이용하지만 OpenCorporates 수집 예시에는 토큰이 필요합니다. 각 정보원의 이용 조건과 수집 제한을 따라야 합니다. 이름의 유사성이나 통계적 편향은 부정행위의 증거가 되지 않습니다. 미국 연방 선거의 정치 자금은 조사 범위에 포함하지 않습니다.

이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.

객관 평가

AI가 SKILL.md의 내용만을 근거로 4가지 관점에서 판정했습니다. 스타 수나 인기도는 판정에 넣지 않았습니다.

지시의 명확성언제 쓰고 무엇을 하는지 알 수 있는가
A양호기업 조사와 제재 대조 등의 용도를 열거하고 연방 선거 자금은 제외한다고 명시합니다.
절차의 구체성절차·입출력·예시가 구체적으로 적혀 있는가
A양호정보원별 수집 명령, CSV 출력, 이름 대조의 세 단계와 신뢰도를 제시합니다.
안전성전송·삭제·명령 실행 등을 명시하고 있는가
A양호공개 정보 수집 범위, 요청 제한 확인 위치, 429 응답 알림 방식을 명시합니다.
도입의 용이성필요한 도구나 API 키가 적고 적혀 있는가
B일부 부족Python 표준 라이브러리만 사용한다고 명시하지만 OpenCorporates 토큰의 필수 여부는 설명이 다릅니다.

총점은 각 항목을 A=25점, B=15점, C=5점으로 더한 값입니다. 2026년 10월 20일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.

평가가 다르다고 생각되면 재검토를 요청하기

어느 항목이 왜 다르다고 생각하는지 적어 주세요. 로그인은 필요 없습니다. SKILL.md와 대조해 평가를 다시 만들고 이곳에 반영합니다.

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

포함된 파일(29)

  • SKILL.md11.4 KB
  • references/sources/courtlistener.md3.4 KB
  • references/sources/gdelt.md3.8 KB
  • references/sources/icij-offshore.md4.3 KB
  • references/sources/nyc-acris.md3.5 KB
  • references/sources/ofac-sdn.md3.5 KB
  • references/sources/opencorporates.md3.9 KB
  • references/sources/sec-edgar.md3.1 KB
  • references/sources/senate-ld.md3.3 KB
  • references/sources/usaspending.md3.8 KB
  • references/sources/wayback.md3.1 KB
  • references/sources/wikipedia.md4.1 KB
  • scripts/_http.py2.8 KB
  • scripts/_normalize.py2.0 KB
  • scripts/build_findings.py7.8 KB
  • scripts/entity_resolution.py6.7 KB
  • scripts/fetch_courtlistener.py4.9 KB
  • scripts/fetch_gdelt.py5.3 KB
  • scripts/fetch_icij_offshore.py8.4 KB
  • scripts/fetch_nyc_acris.py6.4 KB
  • scripts/fetch_ofac_sdn.py5.4 KB
  • scripts/fetch_opencorporates.py6.5 KB
  • scripts/fetch_sec_edgar.py6.6 KB
  • scripts/fetch_senate_ld.py4.9 KB
  • scripts/fetch_usaspending.py5.4 KB
  • scripts/fetch_wayback.py4.3 KB
  • scripts/fetch_wikipedia.py9.1 KB
  • scripts/timing_analysis.py9.0 KB
  • templates/source-template.md1.2 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

OSINT Investigation — Public Records Cross-Reference

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, run statistical timing tests, and produce structured evidence chains.

Python stdlib only. Zero install. Works on Linux, macOS, Windows. Most sources work with no API key (OpenCorporates has an optional free token that raises rate limits).

Adapted from the MIT-licensed ShinMegamiBoson/OpenPlanter project; expanded to cover identity / property / litigation / archives / news sources that the original didn't address.

When to use this skill

Use when the user asks for:

  • "follow the money" — government contracts, lobbying → legislation, sanctions
  • corporate due diligence — who controls company X, where are they incorporated, who serves on their boards, what filings have they made
  • sanctions screening — is entity X on OFAC SDN, ICIJ offshore leaks
  • pay-to-play investigation — contractors with offshore ties, lobbying clients winning awards
  • property ownership — find recorded deeds/mortgages by name or address (NYC; for other counties point users at the relevant recorder)
  • litigation history — find federal + state court opinions and PACER dockets
  • multi-source entity resolution where naming varies (LLC suffixes, abbreviations)
  • evidence-chain construction with explicit confidence levels
  • "what's been said about X" — international news (GDELT) + Wikipedia narrative + Wayback Machine to recover dead URLs

Do NOT use this skill for:

  • general web research → web_search / web_extract
  • domain/infrastructure OSINT → domain-intel skill
  • academic literature → arxiv skill
  • social-media profile discovery → sherlock skill (optional)
  • US federal campaign finance — FEC is intentionally NOT covered here (the API is unreliable for ad-hoc contributor-name queries on the free DEMO_KEY tier). For federal donations, point users at https://www.fec.gov/data/ directly.

Workflow

The agent runs scripts via the terminal tool. SKILL_DIR is the directory holding this SKILL.md.

1. Identify which sources apply

Read the data-source wiki entries to plan the investigation:

ls SKILL_DIR/references/sources/

# Federal financial / regulatory
cat SKILL_DIR/references/sources/sec-edgar.md       # corporate filings
cat SKILL_DIR/references/sources/usaspending.md     # federal contracts
cat SKILL_DIR/references/sources/senate-ld.md       # lobbying
cat SKILL_DIR/references/sources/ofac-sdn.md        # sanctions
cat SKILL_DIR/references/sources/icij-offshore.md   # offshore leaks

# Identity / property / litigation / archives / news
cat SKILL_DIR/references/sources/nyc-acris.md       # NYC property records
cat SKILL_DIR/references/sources/opencorporates.md  # global corporate registry
cat SKILL_DIR/references/sources/courtlistener.md   # court records (federal + state)
cat SKILL_DIR/references/sources/wayback.md         # Wayback Machine archives
cat SKILL_DIR/references/sources/wikipedia.md       # Wikipedia + Wikidata
cat SKILL_DIR/references/sources/gdelt.md           # global news monitoring

Each entry follows a 9-section template: summary, access, schema, coverage, cross-reference keys, data quality, acquisition, legal, references.

The cross-reference potential section maps join keys between sources — read those first to pick the right pair.

2. Acquire data

Each source has a stdlib-only fetch script in SKILL_DIR/scripts/:

Federal financial / regulatory

# SEC EDGAR filings (corporate disclosures)
python SKILL_DIR/scripts/fetch_sec_edgar.py --cik 0000320193 \
    --types 10-K,10-Q --out data/edgar_filings.csv

# USAspending federal contracts
python SKILL_DIR/scripts/fetch_usaspending.py --recipient "EXAMPLE CORP" \
    --fy 2024 --out data/contracts.csv

# Senate LD-1 / LD-2 lobbying disclosures
python SKILL_DIR/scripts/fetch_senate_ld.py --client "EXAMPLE CORP" \
    --year 2024 --out data/lobbying.csv

# OFAC SDN sanctions list (full snapshot)
python SKILL_DIR/scripts/fetch_ofac_sdn.py --out data/ofac_sdn.csv

# ICIJ Offshore Leaks — downloads ~70 MB bulk CSV on first use,
# then searches it locally. Cached for 30 days under
# $HERMES_OSINT_CACHE/icij/ (default: ~/.cache/hermes-osint/icij/).
python SKILL_DIR/scripts/fetch_icij_offshore.py --entity "EXAMPLE CORP" \
    --out data/icij.csv

Identity / property / litigation / archives / news

# NYC property records (deeds, mortgages, liens) — ACRIS via Socrata
python SKILL_DIR/scripts/fetch_nyc_acris.py --name "SMITH, JOHN" \
    --out data/acris.csv
python SKILL_DIR/scripts/fetch_nyc_acris.py --address "571 HUDSON" \
    --out data/acris_addr.csv

# OpenCorporates — 130+ jurisdiction corporate registry
# (free token required; set OPENCORPORATES_API_TOKEN or pass --token)
python SKILL_DIR/scripts/fetch_opencorporates.py --query "Example Corp" \
    --jurisdiction us_ny --out data/opencorporates.csv

# CourtListener — federal + state court opinions, PACER dockets
python SKILL_DIR/scripts/fetch_courtlistener.py --query "Smith v. Example Corp" \
    --type opinions --out data/courts.csv

# Wayback Machine — historical web captures
python SKILL_DIR/scripts/fetch_wayback.py --url "example.com" \
    --match host --collapse digest --out data/wayback.csv

# Wikipedia + Wikidata — narrative bio + structured facts
# Set HERMES_OSINT_UA=your-app/1.0 (your@email) to identify yourself
python SKILL_DIR/scripts/fetch_wikipedia.py --query "Bill Gates" \
    --out data/wp.csv

# GDELT — global news in 100+ languages, ~2015→present
python SKILL_DIR/scripts/fetch_gdelt.py --query '"Example Corp"' \
    --timespan 1y --out data/gdelt.csv

All outputs are normalized CSV with a header row. Re-run scripts idempotently.

When a private individual won't be in a source (e.g. SEC EDGAR for a non-public- company person, USAspending for someone who isn't a federal contractor, Senate LDA for someone who isn't a lobbying client), the script returns 0 rows with a clear warning rather than silently writing an empty CSV. EDGAR specifically flags when the company-name resolver matched an individual Form 3/4/5 filer rather than a corporate registrant.

Rate-limit notes are in each source's wiki entry. Default fetchers sleep politely between paginated requests. API keys raise rate limits for sources that support them (SEC_USER_AGENT, SENATE_LDA_TOKEN, OPENCORPORATES_API_TOKEN, COURTLISTENER_TOKEN). All scripts surface 429 responses immediately with the upstream's quota message so the user knows to slow down or supply a key.

3. Resolve entities across sources

Normalize names and find matches between two CSV files:

# Match lobbying clients (Senate LDA) against contract recipients (USAspending)
python SKILL_DIR/scripts/entity_resolution.py \
    --left  data/lobbying.csv   --left-name-col  client_name \
    --right data/contracts.csv  --right-name-col recipient_name \
    --out data/cross_links.csv

Three matching tiers with explicit confidence:

TierMethodConfidence
exactNormalized strings equal after suffix/punctuation striphigh
fuzzySorted-token equality (word-bag match)medium
token_overlap≥60% token overlap, ≥2 shared tokens, tokens ≥4 charslow

Output cross_links.csv columns: match_type, confidence, left_name, right_name, left_normalized, right_normalized, left_row, right_row.

4. Statistical timing correlation (optional)

Test whether two time series cluster suspiciously close together — e.g. lobbying filings near contract awards — using a permutation test:

python SKILL_DIR/scripts/timing_analysis.py \
    --donations data/lobbying.csv --donation-date-col filing_date \
        --donation-amount-col income --donation-donor-col client_name \
        --donation-recipient-col registrant_name \
    --contracts data/contracts.csv --contract-date-col award_date \
        --contract-vendor-col recipient_name \
    --cross-links data/cross_links.csv \
    --permutations 1000 \
    --out data/timing.json

The script's column flags are intentionally generic — the original tool was written for donations vs awards, but it works for any (event, payee) time series joined through cross-links. Null hypothesis: event timing is independent of award dates. One-tailed p-value = fraction of permutations with mean nearest-award distance ≤ observed. Minimum 3 events per (payer, vendor) pair to run the test.

5. Build the findings JSON (evidence chain)

python SKILL_DIR/scripts/build_findings.py \
    --cross-links data/cross_links.csv \
    --timing data/timing.json \
    --out data/findings.json

Every finding has id, title, severity, confidence, summary, evidence[], sources[]. Each evidence item points back to a specific row in a source CSV. The user (or a follow-up agent) can verify every claim against its source.

Confidence and evidence discipline

This is the load-bearing rule of the skill. Tell the user:

  • Every claim must trace to a record. No naked assertions.
  • Confidence tier travels with the claim. match_type=fuzzy is "probable", not "confirmed."
  • Entity resolution produces candidates, NOT conclusions. A fuzzy match between "ACME LLC" and "Acme Holdings Group" is a lead, not a fact.
  • Statistical significance ≠ wrongdoing. p < 0.05 means the timing pattern is unlikely under the null. It does not establish corruption.
  • All data sources here are public records. They may still contain inaccuracies, stale info, or redactions (GDPR, sealed records).

Adding a new data source

Use the template:

cp SKILL_DIR/templates/source-template.md \
    SKILL_DIR/references/sources/<your-source>.md

Fill in all 9 sections. Write a fetch_<source>.py script in scripts/ that uses stdlib only and writes a normalized CSV. Update the source list in the "When to use" section above.

Tools and their limits

  • entity_resolution.py does NOT use external fuzzy libraries (no rapidfuzz, no jellyfish). Token-bag matching is the upper bound here. If you need Levenshtein, transliteration, or phonetic matching, pip-install separately.
  • timing_analysis.py uses Python's random for permutations. For reproducibility, pass --seed N.
  • fetch_*.py scripts use urllib.request and respect Retry-After. Heavy bulk usage may still violate ToS — read each source's legal section first.

Legal note

All Phase-1 sources are public records. Bulk acquisition is permitted under their respective access terms (FOIA, public records law, ICIJ explicit publication, OFAC public data). However:

  • Some sources rate-limit aggressively. Respect their headers.
  • Some redact registrant info (GDPR on WHOIS, sealed filings).
  • Cross-referencing public records to identify private individuals can have ethical implications. The skill produces evidence chains, not accusations.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

1password

무료요약 있음AI 평가 100점

1Password에 저장한 비밀번호와 API 키를 명령과 설정 템플릿에 사용합니다. CLI 설치와 인증부터 비밀 값 조회 및 환경 변수 전달까지 안내합니다.

  • 1Password CLI 설치와 설정
  • 저장된 API 키로 명령 실행
  • 설정 템플릿에 비밀 값 삽입
NousResearch/hermes-agent25.6만2026년 10월 23일 업데이트

3-statement-model

무료요약 있음AI 평가 90점

손익계산서·재무상태표·현금흐름표를 수식으로 연결한 Excel 모델을 만듭니다. 실적과 예측 가정을 입력하고 시나리오를 비교하며 세 재무제표의 일관성을 단계별로 확인합니다.

  • 재무 템플릿에 실적 입력
  • 세 재무제표가 연동되는 예측 작성
  • 기본·상향·하향 시나리오 비교
NousResearch/hermes-agent25.6만2026년 10월 23일 업데이트

accelerate

무료요약 있음AI 평가 80점

기존 PyTorch 학습 코드를 적은 수정으로 여러 GPU나 컴퓨터에 맞게 구성합니다. 혼합 정밀도, 메모리 절약 설정과 학습 실행 방법을 안내합니다.

  • 단일 GPU 학습을 여러 GPU로 옮깁니다
  • 혼합 정밀도 학습을 설정합니다
  • DeepSpeed나 FSDP로 메모리를 절약합니다
NousResearch/hermes-agent25.6만2026년 10월 23일 업데이트

actual-setup

무료요약 있음AI 평가 100점

Hermes에서 Actual Computer로 자신의 기기에 AI 모델을 실행하도록 연결을 설정합니다. 중계 서비스와 로컬 연결, 모델 선택, 응답 확인 및 오류 점검을 다룹니다.

  • Actual 키로 Hermes를 연결합니다
  • 자신의 기기에서 모델을 실행합니다
  • 로컬 모델을 찾아 내려받고 불러옵니다
NousResearch/hermes-agent25.6만2026년 10월 23일 업데이트

adversarial-ux-test

무료요약 있음AI 평가 80점

기술에 익숙하지 않고 쉽게 불만을 느끼는 사용자로 앱을 시험합니다. 혼란스러운 조작과 이탈 원인을 찾고, 개선 과제와 개인적 불만을 나눠 수정안을 정리합니다.

  • 출시나 시연 전에 사용성을 확인합니다
  • 신규 사용자의 경험을 점검합니다
  • 가입과 결제 과정의 어려움을 찾습니다
NousResearch/hermes-agent25.6만2026년 10월 23일 업데이트

agent-merge-conflict-arbiter

무료요약 있음AI 평가 100점

두 에이전트가 각각 수정한 브랜치의 Git 충돌을 양쪽 변경 내용과 의도에 따라 중립적으로 해결합니다. 충돌별 판단 이유를 기록하고 빌드나 테스트로 통합 결과를 확인합니다.

  • 두 에이전트의 브랜치 충돌 해결
  • 병렬 worktree의 변경 내용 통합
  • 충돌하는 설계 판단의 이유 확인
NousResearch/hermes-agent25.6만2026년 10월 23일 업데이트

NousResearch의 스킬 모두 보기

이 스킬의 문제 신고