$npx -y skills add PolicyEngine/policyengine-claude --skill policyengine-research-lookupFind and cite PolicyEngine's published blog posts and research articles as evidence or proof points — for talks, pitches, grant narratives, and "has PolicyEngine written about X?" Triggers: "find a blog post", "PolicyEngine research on", "published analysis", "proof point", "has
| 1 | # PolicyEngine research lookup |
| 2 | |
| 3 | Find existing PolicyEngine articles to cite as evidence or to model tone against. PolicyEngine |
| 4 | has published ~185 articles — US and UK policy analyses, model/methodology notes, and org |
| 5 | announcements. Paths below are verified against the policyengine-app-v2 mirror. |
| 6 | |
| 7 | ## Where posts live |
| 8 | |
| 9 | In policyengine-app-v2: |
| 10 | |
| 11 | - **Article bodies** (plain markdown, some Jupyter `.ipynb`): `app/src/data/posts/articles/<filename>` |
| 12 | - **Post index** (title, description, date, tags, authors, image): `app/src/data/posts/posts.json` |
| 13 | - **Author records** (slug → name/bio): `app/src/data/posts/authors.json` |
| 14 | |
| 15 | Article files are **plain markdown — metadata is not in per-file YAML frontmatter.** Each post's |
| 16 | title, date, tags, and authors live in `posts.json`, keyed to the article's `filename`; the |
| 17 | `authors` field holds slugs that resolve in `authors.json`. A `posts.json` entry: |
| 18 | |
| 19 | ```json |
| 20 | { |
| 21 | "title": "How we used Claude Code to apply for the Public Benefit Innovation Fund", |
| 22 | "description": "Treating writing as software development...", |
| 23 | "date": "2025-08-28", |
| 24 | "tags": ["us", "org", "ai", "featured"], |
| 25 | "authors": ["max-ghenis"], |
| 26 | "filename": "policyengine-atlas-pbif-grant.md", |
| 27 | "image": "policyengine-atlas-demo.png" |
| 28 | } |
| 29 | ``` |
| 30 | |
| 31 | A post's public URL is `policyengine.org/<country>/research/<filename-without-extension>`. |
| 32 | |
| 33 | ## Lookup recipes |
| 34 | |
| 35 | ```bash |
| 36 | POSTS=~/PolicyEngine/policyengine-app-v2/app/src/data/posts |
| 37 | |
| 38 | # Full-text search article bodies for a topic |
| 39 | grep -rli "child tax credit" "$POSTS/articles/" | head |
| 40 | |
| 41 | # Search titles/descriptions in the index |
| 42 | python3 -c 'import json;[print(p["date"],p["filename"]) for p in json.load(open("'"$POSTS"'/posts.json")) if "eitc" in (p["title"]+p.get("description","")).lower()]' |
| 43 | |
| 44 | # Filter by tag (e.g. everything tagged "featured" or "uk") |
| 45 | python3 -c 'import json;[print(p["date"],p["title"]) for p in json.load(open("'"$POSTS"'/posts.json")) if "featured" in p.get("tags",[])]' |
| 46 | |
| 47 | # Most recent posts |
| 48 | python3 -c 'import json;[print(p["date"],p["title"]) for p in sorted(json.load(open("'"$POSTS"'/posts.json")),key=lambda p:p["date"],reverse=True)[:10]]' |
| 49 | ``` |
| 50 | |
| 51 | Prefer these recipes over any hardcoded list — the corpus changes weekly, so a static index of |
| 52 | filenames goes stale. Search live, then cite the exact filename and date you found. |
| 53 | |
| 54 | ## Frequently cited proof points |
| 55 | |
| 56 | Verified filenames worth knowing (confirm current framing in the index before quoting): |
| 57 | |
| 58 | | Topic | filename | Use for | |
| 59 | |---|---|---| |
| 60 | | UK government adoption | `policyengine-10-downing-street.md` | credibility, state capacity | |
| 61 | | US state tax coverage | `state-tax-model-beta.md` | federal + 50-state reach | |
| 62 | | Grant-writing with AI | `policyengine-atlas-pbif-grant.md` | tooling, org velocity | |
| 63 | | US federal proposals | `harris-ctc.md`, `harris-eitc.md` | CTC/EITC analysis depth | |
| 64 | | UK fiscal events | `autumn-budget-2024-employer-nic-pension-contributions.md` | budget/manifesto costing | |
| 65 | |
| 66 | ## Related skills |
| 67 | |
| 68 | - **policyengine-writing** — match the tone and neutrality standard of published posts. |
| 69 | - **policyengine-us** / **policyengine-uk** — for "do we cover program/state X?" answer from the |
| 70 | model, not just the blog. |