Navigate FRED categories and series using fredapi, supporting natural-language queries with intent recognition and double validation.
Scanned 9/7/2026
Install to Claude Code
npx -y skills add modbender/skill-library-mcp --skill fred-navigator --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Fred Navigator?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/modbender-fred-navigator)More formats (shields.io, HTML) on the badges page.
---
name: fred-navigator
description: Navigate FRED categories and series using fredapi, supporting natural-language queries with intent recognition and double validation.
metadata:
short-description: FRED navigation and lookup
---
# FRED Navigator
## Purpose
Provide a reliable workflow to navigate FRED categories and series, with support for:
1. Direct `category_id`
2. Direct `series_id`
3. Natural-language `query` → intent recognition → double validation
## Inputs
- `category_id`: FRED category id
- `series_id`: FRED series id
- `query`: natural language request
- `limit`: number of candidates to return (default 5)
- `api_key`: read from environment `FRED_API_KEY` only
## Required Resources
- `references/fred_categories_tree.json`
- `references/fred_categories_flat.json`
- Optional: `references/category_paths.json` (precomputed)
- Optional: `references/synonyms.json`
- Helper script: `scripts/fred_query.py`
- Path builder: `scripts/build_paths.py`
### Optional Resource Structure Notes
- `references/category_paths.json` format:
- `{ "category_id": { "id": <int>, "name": "<str>", "path": "<str>" }, ... }`
- `references/synonyms.json` format:
- `{ "concept": ["alias1", "alias2", ...], ... }`
## Workflow
### 1. Category Exploration
1. Load `fred_categories_tree.json` for hierarchical browsing.
2. If user provides `category_id`, validate it exists.
3. If user provides `category_name`, fuzzy match against `flat` names and return candidates.
### 2. Series Discovery
1. Use `search_by_category(category_id)` to list available series.
2. Prefer `scripts/fred_query.py category <id>` for consistent output.
2. Return key columns:
- `id`, `title`, `frequency`, `units`, `seasonal_adjustment`, `last_updated`.
### 3. Series Retrieval
1. Use `get_series(series_id)` for time series.
2. Use `get_series_info(series_id)` for metadata.
3. Prefer `scripts/fred_query.py series <id>` and `scripts/fred_query.py series-info <id>`.
3. Provide:
- data head/tail
- missing counts
- latest value and date
### 4. Natural Language Query
#### 4.1 Intent Identification (Top-K)
1. Use the IDE agent (Codex) to interpret the natural-language intent.
2. Select the single best-matching category.
3. If confidence is low, ask the user to confirm the category before proceeding.
4. Use `references/category_paths.json` and `references/synonyms.json` as supporting context if available.
#### 4.2 Double Validation
**Structural validation**
- Candidate must exist in `fred_categories_tree.json`.
- Pass if at least one:
- `children` non-empty
- `search_by_category(id)` returns >= 1 series
- Prefer `scripts/fred_query.py check-category <id>` for a quick check
**Semantic validation (agent)**
- Compare `query` with candidate `name/path`.
- Return `pass/fail` or numeric relevance score.
#### 4.3 Decision
- If structural + semantic validation both pass → accept category.
- Otherwise:
- return Top-5 candidates
- ask user to choose one explicitly
## Failure Handling
- Always provide Top-5 candidates when uncertain.
- Never proceed to series retrieval if category validation fails.
## Notes
- Do not hardcode API keys.
- Keep heavy reference data in `references/`, not in this file.
- When running Python functions for querying, execute them inside the sandbox environment.
## Maintenance
- Update workflow or constraints: edit `SKILL.md`.
- Update category data: replace files in `references/`.
- Improve natural-language matching: add or edit `references/synonyms.json` (key → list of related terms).
- Regenerate precomputed paths (optional): run `scripts/build_paths.py`.
- Add helper scripts (optional): place in `scripts/` and document usage here.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!