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

{
  "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, 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

CommandDescription
briefDaily market brief with macro, benchmarks, watchlist
macroDetailed macro economic overview
benchBenchmark ETF performance
listShow current watchlist
add <TICKER>Add stock to watchlist
add <TICKER> benchAdd as benchmark
remove <TICKER>Remove from watchlist
<TICKER>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.

# 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.
§Johnson's Space

© 2026 Johnson's Space. All rights reserved.

GitHubjohnson_chn@sina.com