Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add jayanthmb14/forthepeople --skill ai-news-intelligencegit clone --depth 1 https://github.com/jayanthmb14/forthepeopleWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jayanthmb14/forthepeople/ai-news-intelligence)<a href="https://agentmods.dev/skills/jayanthmb14/forthepeople/ai-news-intelligence"><img src="https://agentmods.dev/badge/skills/jayanthmb14/forthepeople/ai-news-intelligence/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/jayanthmb14/forthepeople/ai-news-intelligence"><img src="https://agentmods.dev/badge/skills/jayanthmb14/forthepeople/ai-news-intelligence.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00106 | $0.03675 |
| Opus 5.5 | $0.00042 | $0.01470 |
| Sonnet 5.5 | $0.00021 | $0.00735 |
| Haiku 4.5 | $0.00011 | $0.00367 |
Grade A, and why
ai-news-intelligence scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 29d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 434 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ForThePeople.in — AI News Intelligence Pipeline
Overview
4 AI engines integrated into the platform. This skill covers all of them.
Last updated: 2026-04-23 (Pune #10 launch added to news targets)
Status: All 4 engines COMPLETE and running in production
2026-04-23 addition: Pune added to news-pipeline targets via its activation
in the District table. findTargetDistricts() now surfaces Pune-specific
news. Maharashtra state-level news routing now covers 2 districts (Mumbai,
Pune) instead of 1. No new scraper jobs introduced. No cron schedule changes.
AI cost impact: one additional district's news volume, absorbed within the
existing $0.50/day news-pipeline budget guard.
Engine 1: News Intelligence Pipeline
What It Does
Scrapes news → classifies with AI → stores as AIInsight → queues for admin review.
Components
src/scraper/jobs/news.ts — RSS scraping (runs every 1h via Railway scheduler)
src/scraper/jobs/ai-analyzer.ts — AI classification (runs monthly)
Vercel cron: /api/cron/scrape-news — daily 6AM UTC (news scrape + dedup + expire stale)
Flow
1. RSS scraping (news.ts):
- Sources: Google News RSS, The Hindu, Deccan Herald
- 3 queries per district (generic + MLA/MP/budget/dam/school/police queries)
- 50-item limit per run per district
- DATE VALIDATION (isArticleFresh): reject if >3 days old, future-dated, or year < current-1
(Google News returns articles by relevance not recency — old articles silently re-appear)
- DEDUP — two layers:
1. URL dedup: discard duplicate article URLs (existing behavior)
2. Title dedup (isTitleDuplicate): normalize title → first 5 significant words (len>3) → key
Check in-memory Set + DB lookup (last 7 days, insensitive match). Discard if match found.
- Stores: NewsItem table (title — NOT headline — summary, url, source, publishedAt)
2. AI Classification (news-action-engine.ts classifyArticleWithAI):
- Receives publishedAt date — injects article age (days) into prompt
- CRITICAL DATE RULE in prompt:
* If event >2 days old → force module="news", confidence ≤ 0.4, no alerts/actions
* If event current/upcoming → classify normally
- Uses callAI() from src/lib/ai-provider.ts (Gemini 2.5 Flash or Claude)
- Returns: targetModule, moduleAction, confidence, extractedData, provider
3. AI Classification (ai-analyzer.ts — batch pipeline):
- Reads unanalyzed NewsItems
- Uses callAI() / callAIJSON() from src/lib/ai-provider.ts (Gemini 2.5 Flash or Claude)
- Extracts: targetModule, extractedData, confidence, summary, changes[]
- Stores: AIInsight records with status PENDING
- Creates: ReviewQueue entries for admin approval
3. Admin Review (/en/admin/review):
- Admin approves/rejects insights from ReviewQueue
- Approved insights display via AIInsightCard on module pages
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 29d ago Changed · -1 lines c2a24bfbc9d5
- 1mo ago First seen · 435 lines · 106 tokens per session scan A 08f2af194202
ai-news-intelligence is a skill published in the GitHub repository jayanthmb14/forthepeople (312 stars, last pushed 1mo ago), licensed MIT. It adds 106 tokens to every session and 3,675 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
portaljs-add-dcat
Make a PortalJS portal harvestable by national/EU/US open-data portals — emit standards-compliant DCAT catalog feeds (DCAT 2/3, DCAT-AP, DCAT-US, national profiles) in JSON-LD, Turtle, and RDF/XML at build, with autodiscovery and per-profile conformance checking. Use when a portal needs to be harvested by…
portaljs-architect
Recommend a data-portal architecture (storage, compute, catalog, access, hosting, metadata) from stated needs, then hand off to the build skills. The advisory entry point. Use when starting a new data-portal project and the underlying architecture has not yet been decided.
portaljs-define-schema
Define a dataset's metadata profile — infer a Frictionless Table Schema from its data, add Data Package metadata (license, sources, keywords), and write it into datasets.json so the showcase renders a typed field table. Extend or customize via the L0-L3 profile ladder. Use when a registered dataset needs field types…
portaljs-migrate
Migrate (harvest) datasets between open-data platforms. Reads CKAN, a DCAT-US /data.json catalog (DKAN, ArcGIS Hub, data.gov), a DCAT / DCAT-AP RDF feed (JSON-LD, Turtle, or RDF/XML), Socrata, OpenDataSoft, or an ArcGIS FeatureServer, and writes them to a static PortalJS catalog or pushes them into a CKAN instance…
rag-knowledge
Work with the RAG knowledge base — ingest documents, run semantic search, manage collections, or add a sync source/connector (Google Drive, S3). Use when populating or debugging the knowledge base, tuning retrieval, or adding a new document source. This project uses {{ cookiecutter.vectorstore }} + {{…
ckan-mcp
MCP server for exploring CKAN-based open data portals (dati.gov.it, data.gov, data.gov.uk, open.canada.ca, demo.ckan.org, and any other CKAN instance). Also covers data.europa.eu via its REST API (not CKAN). Use this skill whenever the user: asks about open data, public datasets, or data portals; mentions a country…