Market Brief Setup logo

Market Brief Setup

Community
somnus0x
market-brief-setup

Set up a reliable daily live-data brief: deterministic fetch scripts feed AI clean numbers instead of letting it browse half-loaded pages while writing. Use for morning market or metrics summaries.

Overview

Publishersomnus0x
Repositoryagt-skill-pack
Skill namemarket-brief-setup
Stars
74
Forks
17
Bundled files
2
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 2 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by somnus0x on GitHub. Read the source before you install it.

Installation

Install the Market Brief Setup AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/somnus0x/agt-skill-pack/tree/main/skills/market-brief-setup
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/somnus0x/agt-skill-pack.git /tmp/agt-skill-pack
mkdir -p .claude/skills
cp -r /tmp/agt-skill-pack/skills/market-brief-setup .claude/skills/market-brief-setup
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Market Brief Setup in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Market Brief Setup on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Market Brief Setup is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Live-Data Brief Setup — stop making AI guess from half-loaded pages

You want AI to summarize live data every morning — market prices, metrics, whatever updates daily. The obvious way is to let it browse and fetch while it writes the summary. That way is wrong, and it's why your numbers come out garbled.

This skill gives you the pattern that fixes it: separate the fetch from the generation.

Why your numbers come out wrong

When you ask AI to "go check the price and summarize," it fetches a page mid-generation, reads whatever loaded, and writes confidently from incomplete data. It doesn't know the page wasn't done loading. So it guesses — yesterday's number, a half-rendered value, or a hallucinated one — and presents it like fact.

The AI isn't dumb. It just has nothing complete to read, so it fills the gap. The fix isn't a smarter model. It's not asking it to fetch and reason at the same time.

The pattern — two beats, never one

Beat 1 — fetch ahead of time (cron). Pull each data source, write it to a JSON file. This runs before you (or the AI) need the brief.

Beat 2 — one prompt reads the files. The AI never touches the network. It reads the cached files and summarizes. Complete data in, no guessing.

cron (fetch) ──> data/*.json ──> one prompt (read + summarize) ──> brief

When to use

Any recurring "summarize live data" job: morning market brief, daily metrics digest, ops dashboard summary, anything where AI reasons over numbers that change.

Say: "setup data brief", "morning brief pipeline", "stop AI guessing numbers", "cron data cache for AI".

Step 1 — The default source stack, write fetchers

These 6 free sources are the working default for a crypto/macro morning brief. All free, two need no key. Start here, then drop the ones you don't read and add the ones you do — but you start with a stack that works, not a blank file.

  1. Prices — CoinGecko (no key)
  2. Fear & Greed — alternative.me (no key)
  3. MACD / RSI — derived from historical candles (CoinGecko market_chart)
  4. Long/Short ratio — Binance Futures (open)
  5. Rates + yield curve — FRED (free key, 1-min signup)
  6. Stocks / VIX / gold — yfinance (free)

Each fetcher does one thing: hit the source, write the response to a file. No parsing, no logic.

bash
mkdir -p data

# 1. prices — free, no key
curl -s 'https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum,solana&vs_currencies=usd&include_24hr_change=true' \
  > data/crypto-prices.json

# 2. fear & greed — free, no key
curl -s 'https://api.alternative.me/fng/' > data/fear-greed.json

# 3. candles for MACD/RSI — free, no key (derive indicators from this)
curl -s 'https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=90&interval=daily' \
  > data/candles.json

# 4. long/short ratio — free, no key
curl -s 'https://fapi.binance.com/futures/data/globalLongShortAccountRatio?symbol=BTCUSDT&period=1d&limit=1' \
  > data/long-short.json

# 5. rates + yield curve — needs FRED key (see below)
curl -s "https://api.stlouisfed.org/fred/series/observations?series_id=T10Y2Y&api_key=${FRED_API_KEY}&file_type=json&sort_order=desc&limit=1" \
  > data/fred.json

# 6. stocks/VIX/gold — yfinance, run via python (see fetch-macro.py)
python3 fetch-macro.py > data/macro.json

This is a default, not a law. The first four need no key and run immediately — wire those, see the brief, then decide if FRED and macro earn their place. Swap in whatever your domain needs (a metrics API, a status endpoint, a CSV feed) the same way: hit it, write the file.

Secrets: never hardcode keys

Sources that need a key — read it from the environment, never inline:

python
import os
FRED_API_KEY = os.environ.get("FRED_API_KEY", "")   # from .env, not in the code

Put the key in .env, add .env to .gitignore, load it before the fetch runs. A key committed to a repo is a key you have to rotate.

Step 2 — Schedule the fetch

Run the fetchers on cron, before you need the brief. They land in one folder.

bash
# crontab -e  →  fetch at 06:50, brief reads it after
50 6 * * *  cd /path/to/project && bash fetch-all.sh

The fetch and the brief are now decoupled. If a source is down, that one file is stale or empty — it doesn't block the others, and the brief still runs.

Step 3 — One prompt reads the cache

This is the whole generation step. The AI reads files, summarizes, never fetches.

Read every file in data/ :
- crypto-prices.json — price + 24h change
- fear-greed.json    — sentiment index (fear/greed)
- candles.json       — historical candles → derive MACD/RSI
- long-short.json    — Binance long/short ratio
- fred.json          — rates (DFF) + yield curve (T10Y2Y)
- macro.json         — S&P, VIX, gold

Summarize into a short brief with sections:
📊 MARKET PULSE — how prices moved, risk-on or risk-off
📈 TECHNICALS   — what MACD/RSI say
🏛️ MACRO        — rates + yield curve tightening or easing

If a file is missing or empty, write "n/a" for that item.
Do NOT guess any number. If it's not in the files, it's n/a.

The last two lines matter most. "Do not guess" is the guardrail — when a feed is down, the AI writes n/a instead of inventing a value. That single instruction is the difference between a brief you can trust and one that lies to you on a bad-data day.

Step 4 — Verify it's not guessing

Test the failure case on purpose: empty one file, run the brief.

bash
echo '{}' > data/crypto-prices.json   # simulate a dead feed
# run the brief prompt

The brief should say n/a for price, not produce a number. If it invents one, your "do not guess" line is missing or too weak — strengthen it and re-test. A pipeline you haven't tested broken is a pipeline you can't trust.

Step 5 — Grow one source at a time

Add a source only after you've read the brief enough to know you'd actually use it. Each new source is: a fetcher (Step 1) + a line in the cron + a line in the prompt. Three small additions, no architecture change.

Resist wiring everything up front. A brief with 3 sources you read beats a brief with 15 you skim.

The principle

The bug was never "AI can't read data." It was "AI fetching while it reasons guesses from incomplete pages." Split the two beats — cache first, read second — and the guessing stops. Not because the model got smarter, but because you stopped asking it to do two things at once.

Add to your CLAUDE.md

markdown
### Live-data briefs
When summarizing live data, never fetch during generation.
1. Fetch sources to data/*.json ahead of time (cron)
2. The summary prompt reads files only — no network access
3. Always include "do not guess numbers; missing = n/a" in the prompt
4. Add sources one at a time, only after confirming you read them

Output discipline

When this skill is invoked:

  1. Help the user pick 2-3 starting sources (not ten)
  2. Write the fetchers (one job each: hit source, write file)
  3. Set up the cron schedule
  4. Write the read-only summary prompt WITH the "do not guess" guard
  5. Test the broken-feed case before calling it done

Don't build the analysis layer for them — that's their domain edge. Ship the pipeline; the judgment on top is theirs.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Market Brief Setup AI skill do?

Set up a reliable daily live-data brief: deterministic fetch scripts feed AI clean numbers instead of letting it browse half-loaded pages while writing. Use for morning market or metrics summaries.

Why use Market Brief Setup on TypingMind?

Because you install it once and use it with any model. Market Brief Setup is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Market Brief Setup in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/somnus0x/agt-skill-pack/tree/main/skills/market-brief-setup. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Market Brief Setup?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Market Brief Setup?

As many as you like. As long as a model supports skills, you can use Market Brief Setup with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Market Brief Setup AI skill free?

Yes. It is published on GitHub by somnus0x under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇