This skill should be used when the user asks to "query WRDS", "access Compustat", "get CRSP data", "pull Form 4 insider data", "query ISS compensation", "download SEC EDGAR filings", "get ExecuComp data", "access Capital IQ", or needs WRDS PostgreSQL query patterns.
View on GitHubedwinhu/workflows
workflows
February 4, 2026
Select agents to install to:
npx add-skill https://github.com/edwinhu/workflows/blob/main/skills/wrds/SKILL.md -a claude-code --skill wrdsInstallation paths:
.claude/skills/wrds/## Contents - [Query Enforcement](#query-enforcement) - [Quick Reference: Table Names](#quick-reference-table-names) - [Connection](#connection) - [Critical Filters](#critical-filters) - [Parameterized Queries](#parameterized-queries) - [Additional Resources](#additional-resources) # WRDS Data Access WRDS (Wharton Research Data Services) provides academic research data via PostgreSQL at `wrds-pgdata.wharton.upenn.edu:9737`. ## Query Enforcement ### IRON LAW: NO QUERY WITHOUT FILTER VALIDATION FIRST Before executing ANY WRDS query, you MUST: 1. **IDENTIFY** what filters are required for this dataset 2. **VALIDATE** the query includes those filters 3. **VERIFY** parameterized queries (never string formatting) 4. **EXECUTE** the query 5. **INSPECT** a sample of results before claiming success This is not negotiable. Claiming query success without sample inspection is LYING to the user about data quality. ### Rationalization Table - STOP If You Think: | Excuse | Reality | Do Instead | |--------|---------|------------| | "I'll add filters later" | You'll forget and pull bad data | Add filters NOW, before execution | | "User didn't specify filters" | Standard filters are ALWAYS required | Apply Critical Filters section defaults | | "Just a quick test query" | Test queries with bad filters teach bad patterns | Use production filters even for tests | | "I'll let the user filter in pandas" | Pulling millions of unnecessary rows wastes time/memory | Filter at database level FIRST | | "The query worked, so it's correct" | Query success ≠ data quality | INSPECT sample for invalid records | | "I can use f-strings for simple queries" | SQL injection risk + wrong type handling | ALWAYS use parameterized queries | ### Red Flags - STOP Immediately If You Think: - "Let me run this query quickly to see what's there" → NO. Check Critical Filters section first. - "I'll just pull everything and filter later" → NO. Database-level filtering is mandatory. - "The table name is obv