{"id":"33e1beb1-29fd-46ed-8ad9-0057e81153c6","entityType":"agent","slug":"fagnersouza666-ai-stories-generator","name":"ai-stories-generator","canonicalUrl":"https://www.xpersona.co/agent/fagnersouza666-ai-stories-generator","canonicalPath":"/agent/fagnersouza666-ai-stories-generator","generatedAt":"2026-10-09T16:43:24.217Z","source":"GITHUB_OPENCLEW","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":null},"description":"AI Stories Generator --- name: ai-stories-generator description: Automated AI news curation and Instagram Stories generation (1080x1920). Curate AI/tech news from RSS feeds, filter by recency and keywords, generate visual Stories with screenshot backgrounds and text overlays. Use when: (1) Creating Instagram/social media Stories about AI/tech news, (2) Automating content curation from RSS feeds, (3) Generating visual content at scale (3x","descriptionLabel":"Technical summary","evidenceSummary":"Published capability contract available. No trust telemetry is available yet. Last updated 4/15/2026.","installCommand":"git clone https://github.com/fagnersouza666/ai-stories-generator.git","sourceUrl":"https://github.com/fagnersouza666/ai-stories-generator","homepage":null,"primaryLinks":[{"label":"View Source","url":"https://github.com/fagnersouza666/ai-stories-generator","kind":"source"}],"safetyScore":89,"overallRank":41.5,"popularityScore":0,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"AI Stories Generator --- name: ai-stories-generator description: Automated AI news curation and Instagram Stories generation (1080x1920). Curate AI/tech news fr"},"coverage":{"evidence":{"source":"capability-contract + public-profile","verified":true,"confidence":"high","updatedAt":"2026-02-24T19:41:43.862Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"no-adoption-signals","verified":false,"confidence":"low","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":"No source adoption metrics were available."},"stars":0,"forks":0,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":null},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-03-01T06:02:26.723Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T05:21:22.124Z","lastCrawledAt":"2026-03-01T06:02:26.723Z","lastIndexedAt":null,"nextCrawlAt":"2026-03-02T06:02:26.723Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"capability-contract","verified":true,"confidence":"high","updatedAt":"2026-02-24T19:41:43.862Z","emptyReason":null},"installCommand":"git clone https://github.com/fagnersouza666/ai-stories-generator.git","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"ready","authModes":["api_key"],"requires":["openclew","lang:typescript"],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":"https://github.com/fagnersouza666/ai-stories-generator#input","outputSchemaRef":"https://github.com/fagnersouza666/ai-stories-generator#output","dataRegion":"global","contractUpdatedAt":"2026-02-24T19:41:43.862Z","sourceUpdatedAt":"2026-02-24T19:41:43.862Z","freshnessSeconds":19602100},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/fagnersouza666-ai-stories-generator/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/fagnersouza666-ai-stories-generator/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/fagnersouza666-ai-stories-generator/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/fagnersouza666-ai-stories-generator/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/fagnersouza666-ai-stories-generator/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/fagnersouza666-ai-stories-generator/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"GITHUB_OPENCLEW","generatedAt":"2026-10-09T16:43:24.216Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/fagnersouza666-ai-stories-generator/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/fagnersouza666-ai-stories-generator/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/fagnersouza666-ai-stories-generator/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/fagnersouza666-ai-stories-generator/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":[],"safeUseWhen":["Contract is available with explicit auth and schema references.","Trust confidence is not low and verification freshness is acceptable."],"riskFlags":["trust_data_unavailable"],"operationalConfidence":"medium"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"GITHUB OPENCLEW","verified":false,"confidence":"high","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":null},"readme":"---\nname: ai-stories-generator\ndescription: Automated AI news curation and Instagram Stories generation (1080x1920). Curate AI/tech news from RSS feeds, filter by recency and keywords, generate visual Stories with screenshot backgrounds and text overlays. Use when: (1) Creating Instagram/social media Stories about AI/tech news, (2) Automating content curation from RSS feeds, (3) Generating visual content at scale (3x/day workflows), (4) Building news aggregation pipelines with visual output.\n---\n\n# AI Stories Generator\n\nAutomated pipeline for curating AI/tech news from RSS feeds and generating Instagram Stories (1080×1920) with screenshot backgrounds and text overlays.\n\n## What This Skill Provides\n\n1. **RSS News Curation** - Filter AI/tech news from multiple feeds by keywords, recency (last N hours), and deduplication\n2. **Visual Story Generation** - Create Instagram-ready Stories (1080×1920) with:\n   - Screenshot backgrounds captured from article URLs\n   - Text overlays with title, subtitle, and impact text\n   - Professional composition using Pillow\n3. **Automation-Ready** - Designed for cron scheduling (e.g., 3x/day content generation)\n\n## Core Workflow\n\n```bash\n# 1. Curate news from RSS feeds (last 24h, AI-related, top 15)\npython scripts/pick_ai_news.py \\\n    --feeds feeds.txt \\\n    --hours 24 \\\n    --limit 15 > candidates.json\n\n# 2. Generate Stories from top 3 URLs\npython scripts/gen_stories_from_urls.py \\\n    --items items.json \\\n    --shots-dir shots/ \\\n    --out-dir out/\n```\n\n## Scripts\n\n### `pick_ai_news.py` - RSS News Curation\n\nFilters news from RSS feeds by keywords, recency, and deduplication.\n\n**Input**: Text file with feed URLs (one per line, `#` for comments)  \n**Output**: JSON array `[{title, url, source, published}]`\n\n**Keywords** (case-insensitive): `ai`, `artificial intelligence`, `llm`, `agent`, `copilot`, `gemini`, `openai`, `anthropic`, `deepmind`, `model`, `inference`, `training`, `chip`, `gpu`, `nvidia`\n\n**Usage**:\n```bash\npython scripts/pick_ai_news.py \\\n    --feeds feeds.txt \\\n    --hours 24 \\\n    --limit 15\n```\n\n**Arguments**:\n- `--feeds` (required): Path to feeds file\n- `--hours` (default: 24): Filter entries from last N hours\n- `--limit` (default: 15): Max candidates to return\n\n**Example feeds file**:\n```\nhttps://hnrss.org/newest?q=AI\nhttps://news.ycombinator.com/rss\n# TechCrunch AI\nhttps://techcrunch.com/category/artificial-intelligence/feed/\n```\n\n---\n\n### `gen_stories_from_urls.py` - Story Generation\n\nCaptures screenshots from URLs and generates final Stories with text overlays.\n\n**Input**: JSON with `[{title, url, subtitle, impact}]`  \n**Output**: 1080×1920 PNG files (Instagram Stories format)\n\n**Workflow**:\n1. Opens each URL in Playwright (headless browser)\n2. Captures screenshot \"above the fold\" (viewport 1080×1920, no scroll)\n3. Calls `make_story.py` to compose final Story (background + text overlay)\n4. Saves to `--out-dir`\n\n**Usage**:\n```bash\npython scripts/gen_stories_from_urls.py \\\n    --items items.json \\\n    --shots-dir shots/ \\\n    --out-dir out/\n```\n\n**Arguments**:\n- `--items` (default: `items.json`): Input JSON file\n- `--shots-dir` (default: `shots/`): Where to save screenshots\n- `--out-dir` (default: `out/`): Where to save final Stories\n- `--browser` (default: `chromium`): Browser type (`chromium`, `firefox`, `webkit`)\n- `--timeout` (default: 30000): Page load timeout (ms)\n- `--skip-screenshots`: Reuse existing screenshots (faster iteration)\n\n**Example `items.json`**:\n```json\n[\n  {\n    \"title\": \"OpenAI Releases GPT-5\",\n    \"url\": \"https://techcrunch.com/...\",\n    \"subtitle\": \"Multimodal reasoning breakthrough\",\n    \"impact\": \"Game changer for AI agents\"\n  }\n]\n```\n\n**Dependencies**:\n```bash\npip install playwright pillow feedparser\nplaywright install chromium\n```\n\n---\n\n### `make_story.py` - Story Compositor\n\nComposes final Story: screenshot background + darkened overlay + centered text.\n\n**Input**: Screenshot PNG + text fields  \n**Output**: Final 1080×1920 Story PNG\n\n**Usage** (typically called by `gen_stories_from_urls.py`):\n```bash\npython scripts/make_story.py \\\n    --bg shots/shot_01.png \\\n    --title \"OpenAI Releases GPT-5\" \\\n    --subtitle \"Multimodal reasoning\" \\\n    --impact \"Game changer\" \\\n    --out out/story_01.png\n```\n\n## Automation Example (3x/day)\n\n**Cron schedule** (9:00, 13:00, 18:00 BRT):\n```cron\n0 9,13,18 * * * cd /path/to/project && ./run_stories.sh\n```\n\n**`run_stories.sh`**:\n```bash\n#!/bin/bash\nset -e\n\n# 1. Curate news\npython scripts/pick_ai_news.py \\\n    --feeds feeds.txt \\\n    --hours 24 \\\n    --limit 15 > candidates.json\n\n# 2. Pick top 3 (manual or via LLM scoring)\n# ... selection logic ...\n\n# 3. Generate Stories\npython scripts/gen_stories_from_urls.py \\\n    --items items.json \\\n    --out-dir out/\n\n# 4. Send to Telegram/Instagram (optional)\n# ... delivery logic ...\n```\n\n## Customization\n\n- **Keywords**: Edit `KEYWORDS` regex in `pick_ai_news.py`\n- **Story Layout**: Adjust fonts, colors, overlay opacity in `make_story.py`\n- **Viewport Size**: Change `VIEWPORT_W`/`VIEWPORT_H` in `gen_stories_from_urls.py` for different aspect ratios\n\n## Common Issues\n\n**\"playwright not found\"**: Run `pip install playwright && playwright install chromium`  \n**Empty screenshots**: Increase `--timeout` or check if URL requires authentication  \n**Stories look cluttered**: Shorten `title`/`subtitle` fields or adjust font size in `make_story.py`\n","readmeExcerpt":"--- name: ai-stories-generator description: Automated AI news curation and Instagram Stories generation (1080x1920). Curate AI/tech news from RSS feeds, filter by recency and keywords, generate visual Stories with screenshot backgrounds and text overlays. Use when: (1) Creating Instagram/social media Stories about AI/tech news, (2) Automating content curation from RSS feeds, (3) Generating visual content at scale (3x","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"# 1. Curate news from RSS feeds (last 24h, AI-related, top 15)\npython scripts/pick_ai_news.py \\\n    --feeds feeds.txt \\\n    --hours 24 \\\n    --limit 15 > candidates.json\n\n# 2. Generate Stories from top 3 URLs\npython scripts/gen_stories_from_urls.py \\\n    --items items.json \\\n    --shots-dir shots/ \\\n    --out-dir out/"},{"language":"bash","snippet":"python scripts/pick_ai_news.py \\\n    --feeds feeds.txt \\\n    --hours 24 \\\n    --limit 15"},{"language":"text","snippet":"https://hnrss.org/newest?q=AI\nhttps://news.ycombinator.com/rss\n# TechCrunch AI\nhttps://techcrunch.com/category/artificial-intelligence/feed/"},{"language":"bash","snippet":"python scripts/gen_stories_from_urls.py \\\n    --items items.json \\\n    --shots-dir shots/ \\\n    --out-dir out/"},{"language":"json","snippet":"[\n  {\n    \"title\": \"OpenAI Releases GPT-5\",\n    \"url\": \"https://techcrunch.com/...\",\n    \"subtitle\": \"Multimodal reasoning breakthrough\",\n    \"impact\": \"Game changer for AI agents\"\n  }\n]"},{"language":"bash","snippet":"pip install playwright pillow feedparser\nplaywright install chromium"}],"parameters":{},"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["typescript"],"docsSourceLabel":"GITHUB OPENCLEW","editorialOverview":"AI Stories Generator --- name: ai-stories-generator description: Automated AI news curation and Instagram Stories generation (1080x1920). Curate AI/tech news from RSS feeds, filter by recency and keywords, generate visual Stories with screenshot backgrounds and text overlays. Use when: (1) Creating Instagram/social media Stories about AI/tech news, (2) Automating content curation from RSS feeds, (3) Generating visual content at scale (3x","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":376,"uniquenessScore":66,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T16:43:24.217Z","emptyReason":null},"items":[{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/github_openclew","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}