{"id":"4187ebc6-950e-403c-978e-9fc44049c015","shortId":"WsykPG","kind":"skill","title":"feed-diet","tagline":"Audit your information diet across HN and RSS feeds — beautiful reports with category breakdowns, ASCII charts, and personalized recommendations.","description":"# 🍽️ Feed Diet\n\nAudit your information diet and get a gorgeous report showing what you actually consume.\n\n## Trigger\n\nActivate when the user mentions any of:\n- \"feed diet\"\n- \"information diet\"\n- \"audit my feeds\"\n- \"what am I reading\"\n- \"analyze my HN\"\n- \"reading habits\"\n- \"content diet\"\n- \"feed report\"\n\n## Instructions\n\n### Audit Mode (default)\n\n1. **Determine the data source.** Ask the user for one of:\n   - A **Hacker News username** (e.g., \"tosh\")\n   - An **OPML file** path containing RSS feed subscriptions\n\n2. **Fetch the content.** Run the appropriate fetch script:\n   ```bash\n   # For HN:\n   bash \"$SKILL_DIR/scripts/hn-fetch.sh\" USERNAME 100\n   \n   # For OPML:\n   bash \"$SKILL_DIR/scripts/opml-parse.sh\" /path/to/feeds.opml\n   ```\n\n3. **Classify items.** Pipe the fetched items through the classifier:\n   ```bash\n   cat items.jsonl | bash \"$SKILL_DIR/scripts/classify.sh\" > classified.jsonl\n   ```\n   The classifier uses LLM (if ANTHROPIC_API_KEY or OPENAI_API_KEY is set) or falls back to keyword matching.\n\n4. **Generate the report.** Run the main entry point:\n   ```bash\n   bash \"$SKILL_DIR/scripts/feed-diet.sh\" audit --hn USERNAME --limit 100\n   ```\n\n5. **Present the report** to the user. The output is Markdown — render it directly.\n\n### Digest Mode (weekly curated reading)\n\nWhen the user wants a filtered reading list based on their goals:\n\n```bash\nbash \"$SKILL_DIR/scripts/feed-diet.sh\" digest --hn USERNAME --goal \"systems programming, distributed systems\" --days 7\n```\n\n### Quick Reference\n\n| Command | Description |\n|---------|-------------|\n| `feed-diet audit --hn USER` | Full diet audit for an HN user |\n| `feed-diet audit --opml FILE` | Full diet audit from RSS feeds |\n| `feed-diet digest --hn USER --goal \"X\"` | Weekly digest filtered by goals |\n\n### Notes for the Agent\n\n- **Be conversational.** After presenting the report, offer observations like \"Looks like you're heavy on news — want me to suggest some deeper technical feeds?\"\n- **Suggest the digest mode** if the user seems interested in filtering their reading.\n- **The report is the star.** Don't summarize it — present it in full. It's designed to be screenshot-worthy.\n- If classification seems off, mention that setting an LLM API key improves accuracy.\n\n### Discord v2 Delivery Mode (OpenClaw v2026.2.14+)\n\nWhen the conversation is happening in a Discord channel:\n\n- Send a compact first summary (top category, diversity score, top 2 recommendations), then ask if the user wants the full report.\n- Keep the first response under ~1200 characters and avoid wide category tables in the first message.\n- If Discord components are available, include quick actions:\n  - `Show Full Diet Report`\n  - `Generate Weekly Digest`\n  - `Show Recommendations`\n- If components are not available, provide the same follow-ups as a numbered list.\n- Prefer short follow-up chunks (<=15 lines per message) when sharing long reports.\n\n## References\n\n- `scripts/feed-diet.sh` — Main entry point\n- `scripts/hn-fetch.sh` — Hacker News story fetcher\n- `scripts/opml-parse.sh` — OPML/RSS feed parser\n- `scripts/classify.sh` — Batch content classifier (LLM + fallback)\n- `scripts/common.sh` — Shared utilities and formatting\n\n## Examples\n\n### Example 1: HN Audit\n\n**User:** \"Audit my HN reading diet — my username is tosh\"\n\n**Agent runs:**\n```bash\nbash \"$SKILL_DIR/scripts/feed-diet.sh\" audit --hn tosh --limit 50\n```\n\n**Output:** A full Markdown report with category breakdown table, top categories with sample items, surprising finds, and recommendations.\n\n### Example 2: Weekly Digest\n\n**User:** \"Give me a digest of what's relevant to my work on compilers and programming languages\"\n\n**Agent runs:**\n```bash\nbash \"$SKILL_DIR/scripts/feed-diet.sh\" digest --hn tosh --goal \"compilers, programming languages, parsers\" --days 7\n```\n\n**Output:** A curated reading list of 10-20 items ranked by relevance to the user's goals.\n\n### Example 3: RSS Feed Audit\n\n**User:** \"Here's my OPML file, tell me what my feed diet looks like\"\n\n**Agent runs:**\n```bash\nbash \"$SKILL_DIR/scripts/feed-diet.sh\" audit --opml /path/to/feeds.opml\n```","tags":["feed","diet","cacheforge","skills","cacheforge-ai","agent-skills","ai-agents","clawhub","devops","discord-v2","kubernetes","openclaw"],"capabilities":["skill","source-cacheforge-ai","skill-feed-diet","topic-agent-skills","topic-ai-agents","topic-cacheforge","topic-clawhub","topic-devops","topic-discord-v2","topic-kubernetes","topic-openclaw","topic-prometheus"],"categories":["cacheforge-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/cacheforge-ai/cacheforge-skills/feed-diet","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add cacheforge-ai/cacheforge-skills","source_repo":"https://github.com/cacheforge-ai/cacheforge-skills","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 8 github stars · SKILL.md body (4,093 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:09:04.216Z","embedding":null,"createdAt":"2026-05-18T13:14:38.115Z","updatedAt":"2026-05-18T19:09:04.216Z","lastSeenAt":"2026-05-18T19:09:04.216Z","tsv":"'-20':547 '/path/to/feeds.opml':118,584 '1':71,461 '10':546 '100':112,173 '1200':377 '15':426 '2':96,361,504 '3':119,558 '4':156 '5':174 '50':484 '7':218,539 'accuraci':335 'across':8 'action':395 'activ':40 'actual':37 'agent':264,474,524,576 'analyz':58 'anthrop':141 'api':142,146,332 'appropri':102 'ascii':18 'ask':76,364 'audit':4,25,51,68,169,226,231,239,244,463,465,480,561,582 'avail':392,409 'avoid':380 'back':152 'base':201 'bash':105,108,115,129,132,165,166,205,206,476,477,526,527,578,579 'batch':449 'beauti':13 'breakdown':17,492 'cat':130 'categori':16,357,382,491,495 'channel':350 'charact':378 'chart':19 'chunk':425 'classif':324 'classifi':120,128,137,451 'classified.jsonl':135 'command':221 'compact':353 'compil':520,534 'compon':390,406 'consum':38 'contain':92 'content':63,99,450 'convers':266,344 'curat':191,542 'data':74 'day':217,538 'deeper':286 'default':70 'deliveri':338 'descript':222 'design':317 'determin':72 'diet':3,7,24,28,48,50,64,225,230,238,243,250,398,469,573 'digest':188,209,251,257,291,402,506,511,530 'dir/scripts/classify.sh':134 'dir/scripts/feed-diet.sh':168,208,479,529,581 'dir/scripts/hn-fetch.sh':110 'dir/scripts/opml-parse.sh':117 'direct':187 'discord':336,349,389 'distribut':215 'divers':358 'e.g':86 'entri':163,437 'exampl':459,460,503,557 'fall':151 'fallback':453 'feed':2,12,23,47,53,65,94,224,237,247,249,288,446,560,572 'feed-diet':1,223,236,248 'fetch':97,103,124 'fetcher':443 'file':90,241,567 'filter':198,258,299 'find':500 'first':354,374,386 'follow':414,423 'follow-up':413,422 'format':458 'full':229,242,314,370,397,487 'generat':157,400 'get':30 'give':508 'goal':204,212,254,260,533,556 'gorgeous':32 'habit':62 'hacker':83,440 'happen':346 'heavi':278 'hn':9,60,107,170,210,227,234,252,462,467,481,531 'improv':334 'includ':393 'inform':6,27,49 'instruct':67 'interest':297 'item':121,125,498,548 'items.jsonl':131 'keep':372 'key':143,147,333 'keyword':154 'languag':523,536 'like':273,275,575 'limit':172,483 'line':427 'list':200,419,544 'llm':139,331,452 'long':432 'look':274,574 'main':162,436 'markdown':184,488 'match':155 'mention':44,327 'messag':387,429 'mode':69,189,292,339 'news':84,280,441 'note':261 'number':418 'observ':272 'offer':271 'one':80 'openai':145 'openclaw':340 'opml':89,114,240,566,583 'opml/rss':445 'output':182,485,540 'parser':447,537 'path':91 'per':428 'person':21 'pipe':122 'point':164,438 'prefer':420 'present':175,268,311 'program':214,522,535 'provid':410 'quick':219,394 'rank':549 're':277 'read':57,61,192,199,301,468,543 'recommend':22,362,404,502 'refer':220,434 'relev':515,551 'render':185 'report':14,33,66,159,177,270,303,371,399,433,489 'respons':375 'rss':11,93,246,559 'run':100,160,475,525,577 'sampl':497 'score':359 'screenshot':321 'screenshot-worthi':320 'script':104 'scripts/classify.sh':448 'scripts/common.sh':454 'scripts/feed-diet.sh':435 'scripts/hn-fetch.sh':439 'scripts/opml-parse.sh':444 'seem':296,325 'send':351 'set':149,329 'share':431,455 'short':421 'show':34,396,403 'skill':109,116,133,167,207,478,528,580 'skill-feed-diet' 'sourc':75 'source-cacheforge-ai' 'star':306 'stori':442 'subscript':95 'suggest':284,289 'summar':309 'summari':355 'surpris':499 'system':213,216 'tabl':383,493 'technic':287 'tell':568 'top':356,360,494 'topic-agent-skills' 'topic-ai-agents' 'topic-cacheforge' 'topic-clawhub' 'topic-devops' 'topic-discord-v2' 'topic-kubernetes' 'topic-openclaw' 'topic-prometheus' 'tosh':87,473,482,532 'trigger':39 'up':415 'use':138 'user':43,78,180,195,228,235,253,295,367,464,507,554,562 'usernam':85,111,171,211,471 'util':456 'v2':337 'v2026.2.14':341 'want':196,281,368 'week':190,256,401,505 'wide':381 'work':518 'worthi':322 'x':255","prices":[{"id":"77f41e3f-18a9-4664-9465-0f2895b9169f","listingId":"4187ebc6-950e-403c-978e-9fc44049c015","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"cacheforge-ai","category":"cacheforge-skills","install_from":"skills.sh"},"createdAt":"2026-05-18T13:14:38.115Z"}],"sources":[{"listingId":"4187ebc6-950e-403c-978e-9fc44049c015","source":"github","sourceId":"cacheforge-ai/cacheforge-skills/feed-diet","sourceUrl":"https://github.com/cacheforge-ai/cacheforge-skills/tree/main/skills/feed-diet","isPrimary":false,"firstSeenAt":"2026-05-18T13:14:38.115Z","lastSeenAt":"2026-05-18T19:09:04.216Z"}],"details":{"listingId":"4187ebc6-950e-403c-978e-9fc44049c015","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"cacheforge-ai","slug":"feed-diet","github":{"repo":"cacheforge-ai/cacheforge-skills","stars":8,"topics":["agent-skills","ai-agents","cacheforge","clawhub","devops","discord-v2","kubernetes","openclaw","prometheus"],"license":"mit","html_url":"https://github.com/cacheforge-ai/cacheforge-skills","pushed_at":"2026-02-22T20:49:48Z","description":"⚡ SOTA agent skills for OpenClaw — observability, security, code quality, incident response, and more. Built by Anvil AI.","skill_md_sha":"973213f260dfe9538da00f0e4b2ffe8ccfcc161b","skill_md_path":"skills/feed-diet/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/cacheforge-ai/cacheforge-skills/tree/main/skills/feed-diet"},"layout":"multi","source":"github","category":"cacheforge-skills","frontmatter":{"name":"feed-diet","description":"Audit your information diet across HN and RSS feeds — beautiful reports with category breakdowns, ASCII charts, and personalized recommendations."},"skills_sh_url":"https://skills.sh/cacheforge-ai/cacheforge-skills/feed-diet"},"updatedAt":"2026-05-18T19:09:04.216Z"}}