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.zip

Installs 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.
125 charsno explicit “when” trigger
Intermediate

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

You give it
An ETF ticker (e.g., 'TLT')
You get back
The ETF added to the ProphitAI market database with proper classification

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

FilePurpose
packages/data/src/prophitai_data/db/add_etf.pyOptimizedETFDataLoader and load_single_etf()
packages/data/src/prophitai_data/db/config.pyMarketSession for DB connections
packages/data/src/prophitai_data/db/models/market.pyTicker 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

Pythonprophitai_data package

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.

SkillInstallsUpdatedSafetyDifficulty
add-etf (this skill)04moReviewIntermediate
senior-data-engineer217moReviewAdvanced
finance-manager129moReviewIntermediate
hugging-face-datasets16moReviewIntermediate

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.

2179

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.

1221

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.

14

extract-test-set

tradingstrategy-ai

Extract raw price dataframe for a test case

11

bsl-model-builder

boringdata

Build BSL semantic models with dimensions, measures, joins, and YAML config. Use for creating/modifying data models.

01

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.

00

Search skills

Search the agent skills registry