
press-format
by gehuybre
SKILL.md
name: press-format description: Search press releases using press-ndjson-search and format results for blog post references. Generates press_references.json files that can be displayed with the PressReferences component.
Press Format Skill
Overview
The press-format skill searches the emv-pers press release dataset and formats results as blog-ready JSON files. It's a wrapper around the press-ndjson-search tool that adds formatting and file management for the data-blog system.
When to Use ✅
- User wants to add press release citations to a blog post
- User asks to "find relevant press releases" for a specific topic
- User wants to generate
press_references.jsonfor a blog analysis
How It Works
- Searches the press.normalized.ndjson dataset using the press-ndjson-search script
- Formats results into blog-friendly JSON structure
- Saves to
embuild-analyses/analyses/<slug>/results/press_references.json - Returns summary of results found
Usage
Command Line
python3 .github/press-format/scripts/format_press.py \
--query "vergunningen" \
--slug "vergunningen-aanvragen" \
--limit 5
# Publish a copy to embuild-analyses/public/press-references (useful for dev server)
python3 .github/press-format/scripts/format_press.py \
--query "faillissementen" \
--slug "faillissementen" \
--limit 5 \
--publish
# Publish any existing results in the repo to public/press-references (local convenience)
python3 .github/press-format/scripts/format_press.py \
--publish-existing
This command scans `embuild-analyses/analyses/*/results/press_references.json` and copies any found files to `embuild-analyses/public/press-references/<slug>.json` for serving in the dev server.
Parameters
--query(required): Search query- Supports quoted phrases:
"exact phrase" - Supports OR operator:
vergunning|PFAS - Case-insensitive
- Supports quoted phrases:
--slug(required): Blog analysis slug (e.g.,vergunningen-aanvragen)--limit(optional): Maximum results (default: 10)--start-date(optional): Start date filter (YYYY-MM-DD)--end-date(optional): End date filter (YYYY-MM-DD)
Examples
# Basic search
python3 .github/press-format/scripts/format_press.py \
--query "vergunningen" \
--slug "vergunningen-aanvragen" \
--limit 5
# Search with date range
python3 .github/press-format/scripts/format_press.py \
--query "PFAS" \
--slug "vergunningen-aanvragen" \
--start-date 2025-01-01 \
--end-date 2025-12-31
# Complex query with OR operator
python3 .github/press-format/scripts/format_press.py \
--query "vergunning|PFAS" \
--slug "vergunningen-aanvragen" \
--limit 10
Output Format
Creates embuild-analyses/analyses/<slug>/results/press_references.json:
{
"query": "vergunningen",
"generated_at": "2026-01-19T10:30:00Z",
"references": [
{
"id": "6d5e44b6...",
"title": "Bouwsector opgelucht over PFAS-initiatief",
"date": "2025-06-20",
"url": "https://www.embuildvlaanderen.be/press-room/...",
"excerpt": "Verbatim quote from the press release..."
}
]
}
Using in Blog Posts
After generating the JSON file, add the component to your MDX:
---
title: Your Blog Post
...
---
import { PressReferences } from "@/components/analyses/shared/PressReferences"
... blog content ...
<PressReferences slug="vergunningen-aanvragen" />
Component Props
The PressReferences component accepts:
slug(required): Analysis slug to load data fromtitle(optional): Section title (default: "Gerelateerde persberichten")showYear(optional): Group by year (default: false)maxExcerptLength(optional): Excerpt truncation (default: 200)
Programmatic Usage
From Python code:
from press_format import format_press_references
data = format_press_references(
query="vergunningen",
slug="vergunningen-aanvragen",
limit=5
)
print(f"Found {len(data['references'])} references")
Installation (Optional)
To use as a command globally:
cd .github/press-format
./install.sh
Then use:
press-format --query "vergunningen" --slug "vergunningen-aanvragen" --limit 5
Dependencies
Requires:
- Python 3.8+
- emv-pers repository cloned to
~/pyprojects/emv-pers - press-ndjson-search script at
~/pyprojects/emv-pers/.github/press-ndjson-search/scripts/search_ndjson.py - Press data file at
~/pyprojects/emv-pers/press.normalized.ndjson
Error Handling
The script validates:
- Search script exists
- Press data file exists
- Query returns valid results
- Output directory can be created
Common errors:
FileNotFoundError: emv-pers repository not found or missing filessubprocess.CalledProcessError: Search script failed (invalid query, etc.)
LLM/Agent Instructions
When a user asks to add press references to a blog:
- Ask for the search query if not provided
- Run the press-format script with appropriate parameters
- Verify the JSON file was created
- Add the
<PressReferences />component to the blog's content.mdx - Suggest viewing the results in the dev server
Example workflow:
User: "Add relevant press releases about permits to the vergunningen-aanvragen blog"
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon