Skip to content

Workflows

Four end-to-end walkthroughs that chain skills together. Each is a real EMPN research situation, not a feature demo. Per-skill detail lives in each SKILL.md; this page shows how they fit together.

1. Start a project on a new topic

You have an idea (Capacity mechanisms post-2025 reform). You want a folder to drop things into, a research question on paper, and a literature scan to know what's already out there.

Step Skill Output
1. Scaffold the folder project-init 05_Projects/02_Energy-and-Climate/05_Projects/capacity-mechanisms/ with the standard skeleton
2. Map the policy landscape energy-policy-search What the Commission, Council, ACER, and the major think tanks have said. URLs cited.
3. Map the academic landscape literature-review Settled findings vs contested ones, with source strength. Saved to _knowledge.md. The skill fans out via Task when the reference list runs long.
4. Pull baseline data energy-data-searchenergy-data-analysis Wide-format CSVs in 03_Analysis/data/ with _sources.md. Headline charts in chat.
5. Draft the brief policy-brief 2-pager in 04_Drafts/
6. Verify before shipping fact-check Flagged claims that need a citation or correction. The skill fans out via Task for briefs with many claims.

Total time, depending on topic depth: half a day to a week. The skills don't do the thinking — they remove the friction between knowing what you want and having a defensible draft.

2. Track an EU legislative file end-to-end

A new file drops in the OJ — say the European Grids Package (2025/0399(COD)). You want everything in one place and the political read in your head.

Step Skill Output
1. Procedural status eu-policy-research Rapporteur, shadows, Council position, trilogue stage, next milestone
2. Pull every public document eu-legislation-tracker Dossier folder under <project>/02_Knowledge/proposals/european-grids-package/ with COM proposal, IA, EP draft report, EPRS briefing, Council ST-docs (when public). _index.md maps every file to its CELEX, stage, date, and source URL.
3. Map the actor constellation stakeholder-map Industry, NGOs, think tanks, MS positions — declared positions with URLs. The skill fans out one Task per tier on dense files.
4. Synthesise consultation feedback eu-consultation-feedback synthesis.md grounded in the full text of every PDF response, with axis-by-axis stance distribution
5. Profile key MEPs as you meet them contact-profile HubSpot record per person (canonical), with portfolio, positions, and sources. Optional local view 03_Contacts/<name>.md rendered from the row for grep / briefing reads.

Steps 1–2 take about 30 minutes for a fresh file. Step 4 is the long one (10–60 minutes depending on response volume) but runs unattended once you've validated the discovered axes.

For an at-a-glance reference of which documents exist at which OLP stage (and which are typically LIMITE or never public), see eu-legislation-process.md — per-stage mermaid diagrams plus the gaps usually missing from analysis.

3. Pull a number, work it, cite it

You're writing and need a defensible figure. The flow:

Step Skill What happens
1. Find and pull energy-data-search Routes to the right primary source (Eurostat, ENTSO-E, ACER, ENTSOG, IEA, etc.), fetches via API, saves wide-format CSV to 05_Projects/02_Energy-and-Climate/04_Library/data/
2. Analyse energy-data-analysis Growth rates, ratios, country comparisons, indices. Reads the CSV from step 1.
3. Drop into the brief policy-brief (or just paste) The figure carries its _sources.md provenance with it
4. Final check fact-check Verifies the number against the cited source one more time before publication

The discipline that matters: every figure is traceable to a primary publisher via _sources.md. If you skip step 1 and paste a number from elsewhere, the brief will still get fact-checked, but the trail is harder to reconstruct.

4. Profile someone you just met

Trivial flow but the most-used.

"I just met Linda Kalcher at a Bruegel event — log her."

contact-profile:

  1. Looks her up across institutional pages, LinkedIn, recent press.
  2. Routes the structured fields through contact-verifyhubspot_write.py and writes the canonical record to HubSpot (Founder of Strategic Perspectives, EU climate diplomacy, 2040 target — with field_sources tagging every cell).
  3. Optional: renders a local view at 03_Contacts/linda_kalcher.md from the freshly-written HubSpot row, with the <!-- Generated from HubSpot — do not edit --> header. Safe to delete at any time and re-render. There is no index.md — partner / theme lookups go through HubSpot live.
  4. Reports back: "Created HubSpot record <id> for Linda Kalcher — Founder of Strategic Perspectives, focuses on EU climate diplomacy and 2040 target. Could not verify whether she still has a formal Bruegel affiliation — flagged. Local view rendered to 03_Contacts/linda_kalcher.md."

Personal notes (How we met, Last interaction, Relationship notes) live on the HubSpot record — engagement timeline + notes — not in the local view. Re-running the skill refreshes the HubSpot row (missing-fields-only, never overwriting human edits) and regenerates the local view.

5. Build an interactive tracker

You want a live, citeable tracker on empn.eu — a country × measure matrix, a live monitor, an annual benchmark, or an asset atlas. The chain runs once to create it, then you forever after just edit a CSV.

Step Skill What happens
1. Spec it tracker-init Walks you through 18 questions over ~8 minutes — what the tracker covers, refresh cadence, archetype, who maintains it. Emits a tracker.spec.yaml.
2. Scaffold tracker-scaffold Reads the spec, creates a private GitHub repo, clones the pilot's structure (Astro + D3 + Tailwind + Python verifier + 4 source CSVs), runs the first build. You get a working tracker locally with 3 example rows.
3. Tighten the look tracker-design Per-tracker visual refinement on top of EMPN brand defaults — chart types, palette choices, masthead variant. Reads tracker-layout-doctrine.md. Optional if the pilot-shape default works for you.
4. Launch tracker-publish Runs the 12-point pre-launch checklist (DOI, methodology page, named authors, cite block, embed test, …), provisions Cloudflare Pages, points the subdomain, validates the live URL.

After launch, the only recurring skill is:

Update flow Skill What happens
Add a row, refresh data, flip a status tracker-update-data Opens the right CSV in Excel (the user never sees JSON or Python), validates locally, commits, pushes, confirms CI green + live URL updated. ~5 minutes for a single row; ~30 minutes for an annual refresh.

"Add the new CBAM measure Spain announced yesterday — €240m envelope, in-force from 1 July."

tracker-update-data opens data/source/measures.csv, walks you through the columns (id / country=ES / category=fiscal / title / description / status=in-force / targeting=non-targeted / introduced=2026-07-01 / cost_eur_m=240 / source_url / as_of=today), saves, runs npm run data, shows the 11/11 verifier output, commits with Add measure ES: CBAM industry support 2026, pushes, watches CI.

The data model is two-tier: - measures.csv — long format, one row per measure (the file you edit weekly) - countries.csv — wide format, one row per country (political context, cost totals) - electricity_mix.csv — long format, country × fuel × share (annual Ember refresh) - eu_aggregate.csv — key-value, EU-wide aggregates

Full pipeline contract: tracker-pipeline.md. Page-layout contract: tracker-layout-doctrine.md. Reference implementation: empn-tracker-pilot.

Common patterns

A few things worth knowing across all four flows:

  • Skills hand off, they don't merge. If you ask energy-data-search to also draft a brief, it won't — it'll suggest you trigger policy-brief next. This is intentional: each skill stays small enough to review.
  • Heavy work fans out automatically. literature-review, fact-check, stakeholder-map, and eu-policy-research batch the work and spawn parallel Task helpers when the volume of source material would otherwise bury the main chat. The skill stays the entry point — you only see the merged result.
  • Outputs are versioned via Git of your vault, not the plugin. The plugin ships skills; your project files in 05_Projects/02_Energy-and-Climate/ are yours. Snapshot or back them up however your team does.
  • Things will go wrong. Cite the prompt that produced the bad output on team Slack — the skills are versioned and most issues get fixed within a day.