skills/58-charlescoverdale-econstack/macro-briefing/SKILL.md
Macroeconomic monitor. Supports UK, US, Euro area, and Australia. Pulls GDP, inflation, employment, wages, rates, trade, housing, and fiscal data. Each country follows its central bank's reporting structure. Produces a single clean briefing with a traffic-light assessment and user-selectable sub-components.
npx skillsauth add brycewang-stanford/Awesome-Agent-Skills-for-Empirical-Research macro-briefingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Only stop to ask the user when: the country is ambiguous or specific indicators are requested that need clarification. Never stop to ask about: section ordering, table formatting, data source preferences (use the country's official sources), or output filename.
<!-- preamble: update check -->Before starting, run this silently. If it outputs UPDATE_AVAILABLE, tell the user:
"A new version of econstack is available. Run cd ~/.claude/skills/econstack && git pull to update."
Then continue with the skill normally.
~/.claude/skills/econstack/bin/econstack-update-check 2>/dev/null || true
<!-- preamble: project learnings -->
After the update check, run this silently to load prior learnings for this project:
eval "$(~/.claude/skills/econstack/bin/econstack-slug)"
~/.claude/skills/econstack/bin/econstack-learnings-read --limit 3 2>/dev/null || true
If learnings are found, apply them. When a prior learning influences a decision, note: "Prior learning applied: [key]".
Capturing new learnings: After completing this skill, log new insights via:
~/.claude/skills/econstack/bin/econstack-learnings-log '{"skill":"...","type":"...","key":"...","insight":"...","confidence":N,"source":"observed|user-stated|inferred"}'
Types: framework (preferred appraisal framework), parameter (custom overrides), data-source (preferred data), output (past report references), operational (tool/env quirks), preference (formatting/style). Confidence: 9-10 observed/stated, 6-8 strong inference, 4-5 weak. User-stated never decays; observed/inferred lose 1 point per 30 days. All data stored locally. Nothing transmitted.
After the update check, verify the parameter database is available and check staleness:
PARAMS_DIR="$HOME/econstack-data/parameters"
if [ -d "$PARAMS_DIR" ]; then
PARAM_COUNT=$(find "$PARAMS_DIR" -name "*.json" 2>/dev/null | wc -l | tr -d ' ')
echo "PARAMS: $PARAM_COUNT files loaded from $PARAMS_DIR"
# Check for stale files (last_verified > 2 years ago)
STALE=$(find "$PARAMS_DIR" -name "*.json" -mtime +730 2>/dev/null | wc -l | tr -d ' ')
if [ "$STALE" -gt 0 ]; then
echo "PARAMS_WARNING: $STALE file(s) not updated in 2+ years. Run: cd ~/econstack-data && git pull"
fi
else
echo "PARAMS: not found. Using built-in defaults. For full parameter support: git clone https://github.com/charlescoverdale/econstack-data.git ~/econstack-data"
fi
If PARAMS_WARNING appears, tell the user which parameter files may be stale and recommend updating. Continue with the skill normally using whatever parameters are available.
<!-- preamble: safety hooks -->Safety rules for this skill:
Parameter database is read-only. Never write to, modify, or delete files in ~/econstack-data/parameters/. These are shared, versioned parameters maintained separately. If a parameter needs updating, tell the user to update the econstack-data repo.
Confirm before overwriting. Before writing an output file, check if a file with the same name already exists. If it does, ask the user: "A file named [filename] already exists. Overwrite it, or save with a new name?" Do not silently overwrite.
At the end of every skill run, report one of these statuses:
Format: STATUS: [status] | [one-line reason]
Produces an up-to-date macroeconomic briefing for the UK, US, Euro area, or Australia. Pulls live data from official sources, structures it into a professional briefing following each central bank's reporting conventions, and emits a single one-page deliverable with a traffic-light macro assessment.
Good before a ministerial meeting, investment committee, exam, or as a regular pre-brief for macro-relevant work. Every number is traceable: methodology, data sources, and vintage dates included in the output.
/macro-briefing [country or topic] [options]
Example:
/macro-briefing --country uk --format pdf
Options:
--country <code> : uk (default), us, eu, or au. Auto-detected from context if not set.--focus <topic> : Narrow to a theme. Options: inflation, labour, growth, rates, housing, fiscal, trade. Reduces the briefing to the relevant sections.--international : Add a cross-country comparison section (G7 and major peers).--section <name> : Emit only one sub-component. Options: full (default), headline (traffic-light table only), activity, labour, prices, rates, financial, fiscal, trade, housing. Combinable with commas.--format <type> : Output format(s). markdown (default, always generated), xlsx, word, pptx, pdf, or all. Comma-separate for multiple.--client "Name" : Add "Prepared for" metadata.| Code | Country | Reporting structure | Primary data sources | Key policy rate |
|------|---------|--------------------|--------------------|-----------------|
| uk | United Kingdom (default) | Bank of England Monetary Policy Report (MPR) | ONS, BoE, OBR, HMRC | Bank Rate |
| us | United States | Federal Reserve FOMC / Beige Book | BLS, BEA, FRED, Fed, CBO | Federal Funds Rate |
| eu | Euro area | ECB Economic Bulletin | Eurostat, ECB | ECB deposit rate |
| au | Australia | RBA Statement on Monetary Policy | ABS, RBA, Treasury | Cash Rate |
Auto-detection rules:
ukuseuauukIf --country is not set, detect from the first user argument. If unclear, default to uk and note the assumption.
If --focus is set, narrow the briefing to the relevant sections only. If --section is set, emit only the requested sub-components.
For the detected country, fetch the core indicators from the official sources listed below. If a series is unavailable or stale, note it in the output with a vintage date rather than silently skipping.
UK core indicators (ONS CDIDs and BoE series):
US core indicators (BLS, BEA, FRED):
Euro area core indicators (Eurostat, ECB):
Australia core indicators (ABS, RBA):
Fetching is silent. Do not narrate which source you pulled each number from in the body text; cite sources in the References footer.
Structure by country, using the central bank's native reporting order.
Do not invent a new section order. Use the canonical one.
Score each dimension on a GREEN / AMBER / RED scale with quantitative thresholds:
| Dimension | Green | Amber | Red | |-----------|-------|-------|-----| | Growth | Above trend (typically >1.5% YoY for developed) | Near trend (0 to 1.5%) | Below trend or recession (<0%) | | Inflation | On target (± 0.5pp) | Slightly off (± 0.5 to 1.5pp) | Materially off (>1.5pp) | | Labour | Unemployment near NAIRU, wages supportive | Some slack or overheating | Material slack or overheating | | Rates | Policy rate near neutral, yield curve normal | Off-neutral, curve flat | Inverted curve, rate far from neutral | | Fiscal | Sustainable deficit, debt stable or falling | Rising but manageable | Unsustainable trajectory |
Report the composite assessment at the top: "UK macro assessment: AMBER — growth slowing, inflation above target, labour market tight, fiscal position deteriorating."
Save macro-[country]-[YYYY-MM-DD].md with this structure.
<!-- KEY NUMBERS
type: macro-briefing
country: [uk|us|eu|au]
vintage: [latest data date]
headline_gdp_growth: [value]
headline_inflation: [value]
unemployment: [value]
policy_rate: [value]
assessment: [GREEN|AMBER|RED]
date: [YYYY-MM-DD]
-->
# Macro Briefing: [Country]
**Date**: [YYYY-MM-DD] · **Data vintage**: [latest release across all sections]
**Assessment**: **[GREEN / AMBER / RED]** — [one-line summary of the key dynamics]
## Headline
| Indicator | Latest | Prior | Change | Assessment |
|-----------|-------:|------:|:------:|:----------:|
| GDP growth (YoY) | [val]% | [val]% | [↑/↓/=] | [G/A/R] |
| Inflation (headline) | [val]% | [val]% | [↑/↓/=] | [G/A/R] |
| Unemployment | [val]% | [val]% | [↑/↓/=] | [G/A/R] |
| Policy rate | [val]% | [val]% | [↑/↓/=] | [G/A/R] |
| 10-year yield | [val]% | [val]% | [↑/↓/=] | [G/A/R] |
| Fiscal balance (% GDP) | [val] | [val] | [↑/↓/=] | [G/A/R] |
## Activity and output
[Two or three paragraphs covering GDP growth, PMIs, business surveys, main drivers and drags.]
## Labour market
[Two or three paragraphs covering employment, unemployment, wages, vacancies. Note tightness or slack.]
## Prices and inflation
[Two or three paragraphs covering headline, core, services, goods, energy. Note the gap to target and trajectory.]
## Monetary policy and financial conditions
[Policy rate, forward guidance, yield curve, credit conditions, currency. Reference the central bank's latest statement or minutes.]
## Fiscal position
[Deficit, debt, fiscal rules or limits, outlook. Link to budget or fiscal council forecast.]
## Trade, housing, productivity
[Compact paragraph each. Include only sections that are material this period.]
## Outlook and risks
[Three bullet points: upside risks, downside risks, key data releases to watch in the next 4-6 weeks.]
## Data sources
[One-line references with vintages: e.g. "ONS GDP output (ABMI), latest 2026-Q1 released 2026-04-10; BoE Bank Rate announcement 2026-04-03; HMT PSNB March 2026 release."]
That is the full default deliverable.
International comparison (if --international is set): append a section after Outlook and risks with a table comparing the UK, US, Euro area, Germany, Japan, Australia, and Canada on GDP growth, inflation, unemployment, and policy rate.
Sub-component selection (via --section): emit only the requested sections. Always include the header block and Headline table.
full (default): all sections.headline: headline table only.activity, labour, prices, rates, financial, fiscal, trade, housing: that one section only.--section headline,prices,labour.Format-specific output structure (only produce formats explicitly requested; see dispatcher below):
macro-[country]-[date].md with the structure shown above.The user requests format(s) via --format. Default: md. Comma-separated lists are allowed (e.g. --format md,pdf); all expands to every supported format.
For each format explicitly requested, produce that file and only that file:
md: write the markdown inline (only when md is in the requested set).docx: invoke the docx skill with the rendered content.pdf: render via the econstack Quarto template (or invoke the pdf skill if no template exists for this skill).xlsx: invoke the xlsx skill with the structured tables.pptx: invoke the pptx skill with the briefing as a deck.Do NOT produce formats that were not requested. This is the v0.4 fix for the multi-format leak that previously caused --format pdf to also write .md and .docx files alongside the PDF. Any intermediate files needed during rendering must go to a temp directory and be cleaned up before the skill returns.
When you finish, the file listing in your "Saved:" message must contain exactly the files the user asked for, no extras.
Tell the user (listing only files produced):
Macro briefing complete. [Country] assessment: [GREEN/AMBER/RED].
Saved:
macro-[country]-[date].md
[other formats if requested]
Every numerical claim in the output must be followed by an inline citation in the form [SOURCE_CODE, vintage]. SOURCE_CODE is a short tag (e.g. ONS_PSF, OBR_EFO, BoE_MPR, Fed_FOMC, ECB_EB, RBA_SoMP, IMF_WEO, OECD_EO, Eurostat, BLS, BEA, FRED, ABS, Comtrade) matching an entry in the References footer. vintage is the publication date of the source data (e.g. Mar 2026, Q4 2025, Jan 2026).
Examples:
CPI was 3.4% YoY in March 2026 [ONS_CPI, Mar 2026].
The OBR forecasts borrowing falling to 1.6% of GDP by 2028-29 [OBR_EFO, Mar 2026].
Industry concentration is moderate: HHI is 1,820 across the top 8 firms [Companies_House, Q4 2025].
Numbers that cannot be sourced to a primary publication must NOT appear in the output. No exceptions: do not estimate, infer from training data, interpolate, or recall from memory. If a needed number isn't in fetched data, state it explicitly:
[Source] has not yet published this measure for [period].
Self-check before output: scan the draft for every number. If any number lacks an inline citation, either add the citation or remove the number. Citation density should be roughly even across sections; a section with no citations is a red flag that the section was generated rather than sourced.
Before asserting any factual claim about how a central bank target works, what an indicator is measuring, or what a recent decision did, ground the claim in the most recent statement from the relevant official source (BoE MPC minutes, FOMC statement, ECB Monetary Policy Statement, RBA SoMP). Do not assert from training-data recall. Common gotchas: BoE inflation target is CPI 2% (not RPI), Fed has a dual mandate (not just inflation), ECB primary objective is price stability defined as 2% over the medium term, RBA target is 2 to 3% on average.
The following are NOT produced unless the user explicitly asks for them via flags or natural language:
If the user's request requires content from this list, ask first.
/fiscal-briefing is the deep-dive companion on public finances. This skill summarises fiscal; /fiscal-briefing gives the full picture with optional DSA./market-research may reference the macro assessment as background for sector reports./econ-audit can audit this skill's output for vintage staleness and consistency.tools
Recommend AND run open-source AI tools, agents, Claude Code / Codex skills, and MCP servers for any stage of a literature review — searching, reading, extracting, synthesizing, screening, citation-checking, and paper writing. Use when the user asks "what tool should I use to..." OR "install/run/use <tool> to ..." for research/lit-review work: automating a survey or related-work section, PDF→Markdown extraction for LLMs (MinerU/marker/docling), PRISMA / systematic review (ASReview), citation-backed Q&A over PDFs (PaperQA2), wiring papers into Claude/Cursor via MCP (arxiv/paper-search/zotero servers), or chatting with a Zotero library. Ships a launcher (scripts/litrun.py) that installs each tool in an isolated venv and runs it. Curated catalog of 70+ vetted projects. 支持中英文(用于「文献综述工具选型」与「一键安装/运行」)。
development
Route empirical-research requests through the Auto-Empirical Research Skills catalog when this whole repository is installed as one skill in Codex, CodeBuddy, Claude Code, or another IDE. Use to choose and load the right vendored AERS skill for causal inference, econometrics, replication, data acquisition, manuscript writing, peer review and referee responses, citation checking, de-AIGC editing, or full empirical-paper workflows without reading the entire repository at once.
documentation
Use when the project collects primary data or runs a field, lab, or survey experiment, before the intervention begins — write the pre-analysis plan, size the sample from a power calculation, and register with the AEA RCT Registry. Apply after the design is chosen in aer-identification and before any outcome data are seen.
tools
Guide economists to authoritative data sources with explicit, confirmed data specifications before retrieval; interfaces with Playwright MCP to navigate portals and extract real data, not articles about data.