Article
Understanding Skill: A Deep Dive into Finance Lite
In this post, I'll walk you through what a Skill looks like in practice, using the Finance Lite skill as a real example. A Skill is essentially a reusable tool that extends an AI assistant's capabilities with specialized knowledge, workflows, or integrations.
What is a Skill?
A Skill is a domain-specific extension package that provides:
- Expert knowledge in a specific area
- Standardized workflows (SOPs)
- Executable tools or scripts
- Configuration and metadata
Finance Lite Skill Structure
finance-lite-1.0.1/
├── _meta.json # Skill metadata
├── SKILL.md # Skill definition and documentation
└── scripts/
└── finance_lite/
├── brief.mjs # Main executable script
└── watchlist.json # User data persistence
File-by-File Analysis
1. _meta.json - Skill Metadata
{
"ownerId": "kn7b1tjeks7ssb6xcz0z0vakfn81zaez",
"slug": "finance-lite",
"version": "1.0.1",
"publishedAt": 1772490849653
}
This file contains:
- ownerId: The unique identifier of the skill creator
- slug: The skill's URL-friendly name (used to invoke the skill)
- version: Semantic version number
- publishedAt: Unix timestamp of when the skill was published
2. SKILL.md - Skill Definition
This is the core configuration file that defines:
- name: The display name of the skill
- description: What the skill does
- user-invocable: Whether users can directly invoke the skill
- command-dispatch: How commands are routed (tool/exec)
- Runtime requirements: Environment variables and binaries needed
- Dispatch commands: Available commands users can call
- Behavior notes: How the skill behaves and persists data
- Scope and guardrails: Limitations and safety guidelines
- Required output floor: Mandatory output format
3. scripts/finance_lite/brief.mjs - The Core Logic
This is a Node.js script (ESM module) that implements:
- Macro data fetching: Retrieves inflation, labor, growth, rates, and housing data from FRED
- Benchmark tracking: SPY, GLD, and other ETFs with trend analysis
- Watchlist management: Add/remove stock tickers
- News aggregation: Market news and company-specific headlines
- Caching: Local file-based caching for API responses
Key functions include:
fredSeries(): Fetch macroeconomic data from FRED APIquote(): Get stock quotes from FinnhubbuildBrief(): Generate the daily market briefbuildMacro(): Construct macro economic overviewbuildTickerView(): Show individual stock analysis
4. scripts/finance_lite/watchlist.json - User Data
{
"version": 1,
"benchmarks": ["SPY", "GLD"],
"watchlist": ["NVDA", "NBIS", "BABA"],
"updatedAt": "2026-03-02T22:09:24.817Z"
}
This stores:
- benchmarks: Index ETFs to track (SPY = S&P 500, GLD = Gold)
- watchlist: User's custom stock watchlist
- updatedAt: Timestamp of last modification
How the Skill Works
When you invoke /finance_lite brief, the following happens:
- Command Dispatch: CodeBuddy routes the command to the skill based on SKILL.md dispatch rules
- Script Execution: The brief.mjs script runs with the "brief" argument
- Data Collection: Fetches macro data from FRED, gets stock quotes from Finnhub API, retrieves market news
- Data Processing: Calculates trends, moving averages, risk signals
- Output Generation: Formats everything into a readable brief
- Caching: Stores results locally to reduce API calls
Available Commands
| Command | Description |
|---|---|
| brief | Daily market brief with macro, benchmarks, watchlist |
| macro | Detailed macro economic overview |
| bench | Benchmark ETF performance |
| list | Show current watchlist |
| add <TICKER> | Add stock to watchlist |
| add <TICKER> bench | Add as benchmark |
| remove <TICKER> | Remove from watchlist |
| <TICKER> | View specific stock info |
Key Takeaways
- Skills are self-contained packages - Everything needed (code, config, data) is in one directory
- Configuration-driven - SKILL.md defines the contract between user and skill
- Executable scripts - Node.js scripts provide the actual functionality
- Data persistence - JSON files store user-specific data
- API integrations - Skills can connect to external services
- Clear dispatch rules - Users invoke skills through defined commands
Skills represent a powerful way to extend AI capabilities with domain-specific expertise and automated workflows.
# Understanding Skill: A Deep Dive into Finance Lite
In this post, I'll walk you through what a Skill looks like in practice, using the Finance Lite skill as a real example. A Skill is essentially a reusable tool that extends an AI assistant's capabilities with specialized knowledge, workflows, or integrations.
## What is a Skill?
A Skill is a domain-specific extension package that provides:
1. Expert knowledge in a specific area
2. Standardized workflows (SOPs)
3. Executable tools or scripts
4. Configuration and metadata
## Finance Lite Skill Structure
Let's examine the actual file structure of the Finance Lite skill (version 1.0.1):
```
finance-lite-1.0.1/
├── _meta.json # Skill metadata
├── SKILL.md # Skill definition and documentation
└── scripts/
└── finance_lite/
├── brief.mjs # Main executable script
└── watchlist.json # User data persistence
```
## File-by-File Analysis
### 1. _meta.json - Skill Metadata
```json
{
"ownerId": "kn7b1tjeks7ssb6xcz0z0vakfn81zaez",
"slug": "finance-lite",
"version": "1.0.1",
"publishedAt": 1772490849653
}
```
This file contains:
- **ownerId**: The unique identifier of the skill creator
- **slug**: The skill's URL-friendly name (used to invoke the skill)
- **version**: Semantic version number
- **publishedAt**: Unix timestamp of when the skill was published
### 2. SKILL.md - Skill Definition
This is the core configuration file that defines:
- **name**: The display name of the skill
- **description**: What the skill does
- **user-invocable**: Whether users can directly invoke the skill
- **command-dispatch**: How commands are routed (tool/exec)
- **Runtime requirements**: Environment variables and binaries needed
- **Dispatch commands**: Available commands users can call
- **Behavior notes**: How the skill behaves and persists data
- **Scope and guardrails**: Limitations and safety guidelines
- **Required output floor**: Mandatory output format
### 3. scripts/finance_lite/brief.mjs - The Core Logic
This is a Node.js script (ESM module) that implements:
- **Macro data fetching**: Retrieves inflation, labor, growth, rates, and housing data from FRED
- **Benchmark tracking**: SPY, GLD, and other ETFs with trend analysis
- **Watchlist management**: Add/remove stock tickers
- **News aggregation**: Market news and company-specific headlines
- **Caching**: Local file-based caching for API responses
Key functions include:
- `fredSeries()`: Fetch macroeconomic data from FRED API
- `quote()`: Get stock quotes from Finnhub
- `buildBrief()`: Generate the daily market brief
- `buildMacro()`: Construct macro economic overview
- `buildTickerView()`: Show individual stock analysis
### 4. scripts/finance_lite/watchlist.json - User Data
```json
{
"version": 1,
"benchmarks": ["SPY", "GLD"],
"watchlist": ["NVDA", "NBIS", "BABA"],
"updatedAt": "2026-03-02T22:09:24.817Z"
}
```
This stores:
- **benchmarks**: Index ETFs to track (SPY = S&P 500, GLD = Gold)
- **watchlist**: User's custom stock watchlist
- **updatedAt**: Timestamp of last modification
## How the Skill Works
When you invoke `/finance_lite brief`, the following happens:
1. **Command Dispatch**: CodeBuddy routes the command to the skill based on SKILL.md dispatch rules
2. **Script Execution**: The brief.mjs script runs with the "brief" argument
3. **Data Collection**:
- Fetches macro data from FRED (US Federal Reserve Economic Data)
- Gets stock quotes from Finnhub API
- Retrieves market news
4. **Data Processing**: Calculates trends, moving averages, risk signals
5. **Output Generation**: Formats everything into a readable brief
6. **Caching**: Stores results locally to reduce API calls
## Available Commands
| Command | Description |
|---------|-------------|
| `brief` | Daily market brief with macro, benchmarks, watchlist |
| `macro` | Detailed macro economic overview |
| `bench` | Benchmark ETF performance |
| `list` | Show current watchlist |
| `add ` | Add stock to watchlist |
| `add bench` | Add as benchmark |
| `remove ` | Remove from watchlist |
| `` | View specific stock info |
## Key Takeaways
1. **Skills are self-contained packages** - Everything needed (code, config, data) is in one directory
2. **Configuration-driven** - SKILL.md defines the contract between user and skill
3. **Executable scripts** - Node.js scripts provide the actual functionality
4. **Data persistence** - JSON files store user-specific data
5. **API integrations** - Skills can connect to external services
6. **Clear dispatch rules** - Users invoke skills through defined commands
Skills represent a powerful way to extend AI capabilities with domain-specific expertise and automated workflows.