Research and adds new ETF data to the investment database with correct classification.
Install
mkdir -p .claude/skills/add-etf && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/13076" && unzip -o skill.zip -d .claude/skills/add-etf && rm skill.zipInstalls to .claude/skills/add-etf
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Add an ETF to the database with proper classification. Handles web research, DB format matching, confirmation, and execution.Key capabilities
- →Get the ETF ticker from the user
- →Check if the ETF ticker already exists in the database
- →Research ETF index/asset class and investment strategy
- →Pull distinct ETF classification values from the database
- →Map research findings to exact snake_case DB values
- →Execute the loader to add the ETF to the database
How it works
The skill obtains a ticker, checks for duplicates, researches the ETF online, matches its characteristics to database classifications, confirms with the user, and then loads the data.
Inputs & outputs
When to use add-etf
- →Add new ETF to database
- →Update ETF classification
- →Research ETF strategy
About this skill
Overview
Add a new ETF to the ProphitAI market database. This skill automates classification research (what the ETF tracks, asset class, strategy), matches it to the exact snake_case format used in the DB, and loads all data (prices, holdings, ETF info, dividends).
Workflow
Follow these steps in order. Do NOT skip the confirmation step.
Step 1: Get the ticker
Ask the user which ETF ticker to add (if not already provided).
Step 2: Dupe check
Run the embedded helper script to see if the ticker already exists:
source .venv/bin/activate && python .codex/skills/add-etf/scripts/db_lookup.py check <TICKER>
- If
exists: true, warn the user and show the existing classification. Ask if they want to proceed anyway (partial reload) or abort.
Step 3: Web research
Use WebSearch to research the ETF:
- What index/asset class does it track?
- What is the investment strategy? (e.g., sovereign bonds, corporate bonds, equity index, commodities)
- Who is the issuer? (e.g., iShares, Vanguard, SPDR)
Search query: "<TICKER> ETF what does it track asset class strategy"
This determines the appropriate sector/industry/sub-industry classification.
Step 4: DB query
Pull all distinct ETF classification values currently in the database:
source .venv/bin/activate && python .codex/skills/add-etf/scripts/db_lookup.py classifications
This returns the exact snake_case sectors, industries, and sub_industries used for ETFs in the DB.
Step 5: Match
Map the research findings to the exact snake_case values from the DB query.
Matching rules:
- ETF sectors:
etf,fixed_income_etfs,commodity_etfs,cryptocurrency_etfs, etc. - Industries/sub-industries: snake_case (e.g.,
corporate_bond_etfs,abs_and_mbs,sovereign) - Always use existing DB values when a match exists. Do NOT invent new classifications.
- If no exact match exists, pick the closest existing value and flag it for the user. If the ETF represents a genuinely new category, propose a new snake_case value following the existing naming convention.
Present the mapping to the user:
Ticker: TLT
Sector: etf
Industry: fixed_income_etfs
Sub-Industry: sovereign
Step 6: Confirm
Ask the user to confirm the ticker and classifications before proceeding. Use AskUserQuestion with the mapped values shown clearly.
Step 7: Execute
After confirmation, run the loader:
source .venv/bin/activate && python -c "
from prophitai_data.db.add_etf import load_single_etf
load_single_etf(
'<TICKER>',
sector='<matched_sector>',
industry='<matched_industry>',
sub_industry='<matched_sub_industry>'
)
"
Key References
| File | Purpose |
|---|---|
packages/data/src/prophitai_data/db/add_etf.py | OptimizedETFDataLoader and load_single_etf() |
packages/data/src/prophitai_data/db/config.py | MarketSession for DB connections |
packages/data/src/prophitai_data/db/models/market.py | Ticker model |
Classification Format Examples
Sectors: etf, fixed_income_etfs, commodity_etfs, cryptocurrency_etfs
Industries: fixed_income_etfs, commodity_etfs, equity_etfs
Sub-Industries: corporate_bond_etfs, abs_and_mbs, sovereign, senior_loans, credit
When not to use it
- →When skipping the confirmation step
- →When inventing new classification values instead of using existing DB values
- →When the ticker already exists and the user does not want a partial reload
Prerequisites
Limitations
- →Do NOT skip the confirmation step.
- →Always use existing DB values when a match exists. Do NOT invent new classifications.
- →If no exact match exists, pick the closest existing value and flag it for the user.
How it compares
This workflow automates ETF classification research and database loading using strict snake_case formatting and a confirmation step, unlike manual data entry.
Compared to similar skills
add-etf side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| add-etf (this skill) | 0 | 4mo | Review | Intermediate |
| senior-data-engineer | 21 | 7mo | Review | Advanced |
| finance-manager | 12 | 9mo | Review | Intermediate |
| hugging-face-datasets | 1 | 6mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
senior-data-engineer
davila7
World-class data engineering skill for building scalable data pipelines, ETL/ELT systems, and data infrastructure. Expertise in Python, SQL, Spark, Airflow, dbt, Kafka, and modern data stack. Includes data modeling, pipeline orchestration, data quality, and DataOps. Use when designing data architectures, building data pipelines, optimizing data workflows, or implementing data governance.
finance-manager
ailabs-393
Comprehensive personal finance management system for analyzing transaction data, generating insights, creating visualizations, and providing actionable financial recommendations. Use when users need to analyze spending patterns, track budgets, visualize financial data, extract transactions from PDFs, calculate savings rates, identify spending trends, generate financial reports, or receive personalized budget recommendations. Triggers include requests like "analyze my finances", "track my spending", "create a financial report", "extract transactions from PDF", "visualize my budget", "where is my money going", "financial insights", "spending breakdown", or any finance-related analysis tasks.
hugging-face-datasets
patchy631
Create and manage datasets on Hugging Face Hub. Supports initializing repos, defining configs/system prompts, streaming row updates, and SQL-based dataset querying/transformation. Designed to work alongside HF MCP server for comprehensive dataset workflows.
extract-test-set
tradingstrategy-ai
Extract raw price dataframe for a test case
bsl-model-builder
boringdata
Build BSL semantic models with dimensions, measures, joins, and YAML config. Use for creating/modifying data models.
data-quality-frameworks
Anhvu1107
ALWAYS use this when the request matches Data Quality Frameworks: Implement data quality validation with Great Expectations, dbt tests, and data contracts.