Skip to content

Releases: FinNotes-Intelligence/finnotes-news-and-data-skill

v0.2.1 — Naming alignment (drop -pack, repo rename)

Choose a tag to compare

@spenceryzywork spenceryzywork released this 24 Jun 15:42

Pure rename patch on top of v0.2.0. No script, schema, or behavior changes — only identifier strings. Runtimes that cached the v0.2.0 \$<name> need a one-time refresh.

Why this exists

After v0.2.0 shipped, three identifier strings were drifting:

Surface Before After
Repo slug finnotes-agent-skill finnotes-news-and-data-skill
SKILL.md name: finnotes-global-market-news-and-data-researcher-pack finnotes-global-market-news-and-data-researcher
openai.yaml display_name FinNotes Global Market News and Data Researcher FinNotes Global Market News & Data Researcher
README.md title Skill: FinNotes Global Market News & Data Researcher Pack Skill: FinNotes Global Market News & Data Researcher

What changed

  • Repo renamed to FinNotes-Intelligence/finnotes-news-and-data-skill. GitHub serves a permanent 301 redirect on the old URL — existing clones, bookmarks, and ~/.<runtime>/skills/finnotes-api/ working trees continue to function. New installs should use the new URL.
  • Dropped -pack suffix from the SKILL name:. The README's Skill: prefix already telegraphs the artifact type, and researcher-pack was double-tagging the noun.
  • Ampersand in display_name for visual density and consistency with the README title.
  • default_prompt updated to reference the new \$<name>.
  • All four install-path examples in README.md updated to the new clone URL.

Why the repo got a new name too

The previous repo name finnotes-agent-skill claimed the whole "FinNotes agent skill" namespace for one specific product. The new finnotes-news-and-data-skill opens a finnotes-<scope>-skill pattern that leaves room for future scoped skills (e.g. a portfolio-analysis or calendar-event skill) without renaming back.

Upgrade

cd ~/.<runtime>/skills/finnotes-api
git pull   # 301-redirect resolves; your local remote still points at the old URL

Or optionally update your local remote to the new canonical URL:

git remote set-url origin https://github.com/FinNotes-Intelligence/finnotes-news-and-data-skill.git
git pull

If your agent runtime cached the previous \$finnotes-global-market-news-and-data-researcher-pack in a default-prompt template, refresh it to the new \$finnotes-global-market-news-and-data-researcher.

v0.2.0 — Protocol revamp + news helper

Choose a tag to compare

@spenceryzywork spenceryzywork released this 24 Jun 15:21

v0.2.0 — first non-cosmetic release. Reworks the skill manifest around an explicit routing protocol and adds a dedicated news helper script. Backwards-incompatible at the skill-name reference level.

Highlights

New: scripts/finnotes_news.py

One helper covers every common news workflow — no more building query strings by hand:

python scripts/finnotes_news.py 1                          # today's summary
python scripts/finnotes_news.py full                       # every today's article in full body
python scripts/finnotes_news.py 7                          # last 7 days summary
python scripts/finnotes_news.py date 2026-06-20            # specific-date summary
python scripts/finnotes_news.py detail mn_174              # one article by id
python scripts/finnotes_news.py detail market-news <slug>  # one article by type+slug

Supports --type all,market-news,chart-news,column-article and --limit N.

SKILL.md rewritten as a four-section routing protocol

  1. Control plane — direct execution by default, two-phase progressive disclosure, negative-restraint rule against redundant detail fetches after full.
  2. Execution branch — strict intent → command-syntax mapping table.
  3. Exception routingNO_KEY, permission, quota, 404, contract-question matrix.
  4. Output protocol — phase-1 identifier exposure, phase-2 implication analysis, no analytical noise.

Skill name kebab-cased

Global_Market_News_and_Data_Researcher_pack_(FinNotes)finnotes-global-market-news-and-data-researcher-pack. Required for OpenAI Skills indexing. Backwards-incompatible: runtimes that cached the previous \$<name> reference need a one-time re-registration.

Description: entertainment EXCLUSION

The skill is now explicitly off-limits for entertainment, pop culture, sports, and celebrity topics — routing systems should not invoke FinNotes for those intents.

Cloudflare 403 distinguished from FinNotes 403

Both finnotes_request.py and finnotes_news.py now emit CLOUDFLARE_ACCESS_DENIED when the WAF blocks a request before it reaches FinNotes, instead of the generic PERMISSION_REQUIRED. The agent will no longer tell users to fix permissions when the firewall is the actual problem.

Real User-Agent header

User-Agent: FinNotes-Agent-Skill/0.1 is now set on every request, so platform analytics can separate skill traffic from generic Python-urllib calls.

Beta notice clarification (re-applied from v0.1.x)

references/create-api-key-guide.md keeps:

  • Free access notice — 6-month Pro free, sign-up cutoff 2027-01-01.
  • Grandfathering — existing unexpired Pro subscriptions remain valid through their original 6-month term after the program closes. Only sign-ups after 2027-01-01 are subject to post-Beta pricing.

references/* re-synced

api-platform-contract.md and platform-guide-for-ai.md are re-pulled from the live platform docs, so the bundled /v1/news/today/full endpoint (§10.4 + guide §3.1) is included.

Upgrade

cd ~/.<runtime>/skills/finnotes-api
git pull

Or re-download the release ZIP and overwrite. No credential, profile, or interface file changes — your existing key works as-is. If your agent runtime cached the previous skill name in a default-prompt template, refresh it.

Live docs

For the freshest reference copy: https://platform.finnotes.com/docs/for-ai/

v0.1.1 — Today Full Bundle endpoint snapshot

Choose a tag to compare

@spenceryzywork spenceryzywork released this 24 Jun 12:52

Snapshot-refresh release. No script, manifest, or interface changes — this release synchronizes the bundled references/* docs with the FinNotes platform contract dated 2026-06-24, which now ships the new GET /v1/news/today/full bundled endpoint.

What changed

  • references/api-platform-contract.md — new §10.4 "Today Full Bundle" + §5.2 pricing row.
  • references/platform-guide-for-ai.md — new §3.1 "One-shot variant" explaining when to use the bundle vs the 2-step (list + detail) flow.
  • references/platform-for-ai-index.md — synced.

How agents call it

python scripts/finnotes_request.py GET "/news/today/full"

Optional type filter (comma-separated, kebab-case):

python scripts/finnotes_request.py GET "/news/today/full?type=market-news,chart-news"

Pricing is the sum of the detail-endpoint costs for what is returned: 1.00 × N(market-news) + 1.25 × N(chart-news) + 5.50 × N(column-article). Empty days charge 0 pt. The endpoint hard-caps at 100 articles and returns 422 too_many_articles (no charge) above that — treat it as a "something upstream is off" signal, not a paging hint.

Upgrading from v0.1.0

cd ~/.<runtime>/skills/finnotes-api
git pull

Or re-download the release ZIP and extract over your existing install. No credential file, profile file, or script CLI flag changes — your existing key works as-is.

Live docs

For the freshest copy of any references/* snapshot, fetch https://platform.finnotes.com/docs/for-ai/.

v0.1.0 — initial public release

Choose a tag to compare

@spenceryzywork spenceryzywork released this 24 Jun 11:47

Changelog

All notable changes to this skill are recorded here. Versioning follows SemVer.

[0.1.0] — 2026-06-24

Initial public release.

Added

  • SKILL.md manifest (entry point read by agent runtimes)
  • agents/openai.yaml OpenAI-format interface descriptor
  • references/ — snapshots of FinNotes machine-readable platform docs:
    • api-platform-contract.md (API spec)
    • platform-guide-for-ai.md (integration patterns)
    • platform-for-ai-index.md (AI docs directory index)
    • create-api-key-guide.md (skill-specific exception handling)
    • finnotes-agent-key-handoff.sample.json (downloadable key JSON shape)
  • scripts/:
    • store_finnotes_key.py — import downloaded handoff JSON → write ~/.finnotes/credentials.env (mode 0600) + ~/.finnotes/profile.json
    • finnotes_request.py — wrap urllib to call /v1/* with the stored Bearer key, classify HTTP errors into FINNOTES_* agent signals
    • finnotes_profile.py — show non-secret metadata; --require <permission> for pre-call gating
    • delete_finnotes_handoff.py — delete downloaded JSON after user-confirmed import (--confirmed required)

Notes

  • This version targets the FinNotes API at https://api.finnotes.com/v1 (commercial API base, separate from the platform.finnotes.com developer console).
  • All scripts use Python 3 stdlib only — no third-party dependencies.
  • The skill is expected to mount under ~/.<runtime>/skills/finnotes-api/ for user-level installs, or ./.agent/skills/finnotes-api/ for project-local.

Known limitations

  • No automatic 429 backoff / retry. If your agent hits the per-second rate limit (Pro: 3 req/s, Max: 10 req/s), it's responsible for honoring Retry-After.
  • No multi-profile support. One key per machine (~/.finnotes/credentials.env).
  • references/* files are point-in-time snapshots; the live URLs at https://platform.finnotes.com/docs/for-ai/ may be newer.

Compatibility

  • Agent runtimes: Claude Code, Codex, OpenClaw, any runtime that loads skills/ from user or project folder
  • Python: 3.8+
  • OS: macOS / Linux (Windows paths in store_finnotes_key.py should work but untested)