{"id":"b59ebe6b-faf6-42e4-b7d3-f1af3787cb86","shortId":"UnS7Hv","kind":"skill","title":"Daily News Report","tagline":"Antigravity Awesome Skills skill by Sickn33","description":"# Daily News Report v3.0\n\n> **Architecture Upgrade**: Main Agent Orchestration + SubAgent Execution + Browser Scraping + Smart Caching\n\n## Core Architecture\n\n```\n┌─────────────────────────────────────────────────────────────────────┐\n│                        Main Agent (Orchestrator)                    │\n│  Role: Scheduling, Monitoring, Evaluation, Decision, Aggregation    │\n├─────────────────────────────────────────────────────────────────────┤\n│                                                                      │\n│   ┌─────────────┐    ┌─────────────┐    ┌─────────────┐    ┌─────────────┐     │\n│   │ 1. Init     │ → │ 2. Dispatch │ → │ 3. Monitor  │ → │ 4. Evaluate │     │\n│   │ Read Config │    │ Assign Tasks│    │ Collect Res │    │ Filter/Sort │     │\n│   └─────────────┘    └─────────────┘    └─────────────┘    └─────────────┘     │\n│         │                  │                  │                  │           │\n│         ▼                  ▼                  ▼                  ▼           │\n│   ┌─────────────┐    ┌─────────────┐    ┌─────────────┐    ┌─────────────┐     │\n│   │ 5. Decision │ ← │ Enough 20?  │    │ 6. Generate │ → │ 7. Update   │     │\n│   │ Cont/Stop   │    │ Y/N         │    │ Report File │    │ Cache Stats │     │\n│   └─────────────┘    └─────────────┘    └─────────────┘    └─────────────┘     │\n│                                                                      │\n└──────────────────────────────────────────────────────────────────────┘\n         ↓ Dispatch                          ↑ Return Results\n┌─────────────────────────────────────────────────────────────────────┐\n│                        SubAgent Execution Layer                      │\n├─────────────────────────────────────────────────────────────────────┤\n│                                                                      │\n│   ┌─────────────┐   ┌─────────────┐   ┌─────────────┐              │\n│   │ Worker A    │   │ Worker B    │   │ Browser     │              │\n│   │ (WebFetch)  │   │ (WebFetch)  │   │ (Headless)  │              │\n│   │ Tier1 Batch │   │ Tier2 Batch │   │ JS Render   │              │\n│   └─────────────┘   └─────────────┘   └─────────────┘              │\n│         ↓                 ↓                 ↓                        │\n│   ┌─────────────────────────────────────────────────────────────┐   │\n│   │                    Structured Result Return                 │   │\n│   │  { status, data: [...], errors: [...], metadata: {...} }    │   │\n│   └─────────────────────────────────────────────────────────────┘   │\n│                                                                      │\n└─────────────────────────────────────────────────────────────────────┘\n```\n\n## Configuration Files\n\nThis skill uses the following configuration files:\n\n| File | Purpose |\n|------|---------|\n| `sources.json` | Source configuration, priorities, scrape methods |\n| `cache.json` | Cached data, historical stats, deduplication fingerprints |\n\n## Execution Process Details\n\n### Phase 1: Initialization\n\n```yaml\nSteps:\n  1. Determine date (user argument or current date)\n  2. Read sources.json for source configurations\n  3. Read cache.json for historical data\n  4. Create output directory NewsReport/\n  5. Check if a partial report exists for today (append mode)\n```\n\n### Phase 2: Dispatch SubAgents\n\n**Strategy**: Parallel dispatch, batch execution, early stopping mechanism\n\n```yaml\nWave 1 (Parallel):\n  - Worker A: Tier1 Batch A (HN, HuggingFace Papers)\n  - Worker B: Tier1 Batch B (OneUsefulThing, Paul Graham)\n\nWait for results → Evaluate count\n\nIf < 15 high-quality items:\n  Wave 2 (Parallel):\n    - Worker C: Tier2 Batch A (James Clear, FS Blog)\n    - Worker D: Tier2 Batch B (HackerNoon, Scott Young)\n\nIf still < 20 items:\n  Wave 3 (Browser):\n    - Browser Worker: ProductHunt, Latent Space (Require JS rendering)\n```\n\n### Phase 3: SubAgent Task Format\n\nTask format received by each SubAgent:\n\n```yaml\ntask: fetch_and_extract\nsources:\n  - id: hn\n    url: https://news.ycombinator.com\n    extract: top_10\n  - id: hf_papers\n    url: https://huggingface.co/papers\n    extract: top_voted\n\noutput_schema:\n  items:\n    - source_id: string      # Source Identifier\n      title: string          # Title\n      summary: string        # 2-4 sentence summary\n      key_points: string[]   # Max 3 key points\n      url: string            # Original URL\n      keywords: string[]     # Keywords\n      quality_score: 1-5     # Quality Score\n\nconstraints:\n  filter: \"Cutting-edge Tech/Deep Tech/Productivity/Practical Info\"\n  exclude: \"General Science/Marketing Puff/Overly Academic/Job Posts\"\n  max_items_per_source: 10\n  skip_on_error: true\n\nreturn_format: JSON\n```\n\n### Phase 4: Main Agent Monitoring & Feedback\n\nMain Agent Responsibilities:\n\n```yaml\nMonitoring:\n  - Check SubAgent return status (success/partial/failed)\n  - Count collected items\n  - Record success rate per source\n\nFeedback Loop:\n  - If a SubAgent fails, decide whether to retry or skip\n  - If a source fails persistently, mark as disabled\n  - Dynamically adjust source selection for subsequent batches\n\nDecision:\n  - Items >= 25 AND HighQuality >= 20 → Stop scraping\n  - Items < 15 → Continue to next batch\n  - All batches done but < 20 → Generate with available content (Quality over Quantity)\n```\n\n### Phase 5: Evaluation & Filtering\n\n```yaml\nDeduplication:\n  - Exact URL match\n  - Title similarity (>80% considered duplicate)\n  - Check cache.json to avoid history duplicates\n\nScore Calibration:\n  - Unify scoring standards across SubAgents\n  - Adjust weights based on source credibility\n  - Bonus points for manually curated high-quality sources\n\nSorting:\n  - Descending order by quality_score\n  - Sort by source priority if scores are equal\n  - Take Top 20\n```\n\n### Phase 6: Browser Scraping (MCP Chrome DevTools)\n\nFor pages requiring JS rendering, use a headless browser:\n\n```yaml\nProcess:\n  1. Call mcp__chrome-devtools__new_page to open page\n  2. Call mcp__chrome-devtools__wait_for to wait for content load\n  3. Call mcp__chrome-devtools__take_snapshot to get page structure\n  4. Parse snapshot to extract required content\n  5. Call mcp__chrome-devtools__close_page to close page\n\nApplicable Scenarios:\n  - ProductHunt (403 on WebFetch)\n  - Latent Space (Substack JS rendering)\n  - Other SPA applications\n```\n\n### Phase 7: Generate Report\n\n```yaml\nOutput:\n  - Directory: NewsReport/\n  - Filename: YYYY-MM-DD-news-report.md\n  - Format: Standard Markdown\n\nContent Structure:\n  - Title + Date\n  - Statistical Summary (Source count, items collected)\n  - 20 High-Quality Items (Template based)\n  - Generation Info (Version, Timestamps)\n```\n\n### Phase 8: Update Cache\n\n```yaml\nUpdate cache.json:\n  - last_run: Record this run info\n  - source_stats: Update stats per source\n  - url_cache: Add processed URLs\n  - content_hashes: Add content fingerprints\n  - article_history: Record included articles\n```\n\n## SubAgent Call Examples\n\n### Using general-purpose Agent\n\nSince custom agents require session restart to be discovered, use general-purpose and inject worker prompts:\n\n```\nTask Call:\n  subagent_type: general-purpose\n  model: haiku\n  prompt: |\n    You are a stateless execution unit. Only do the assigned task and return structured JSON.\n\n    Task: Scrape the following URLs and extract content\n\n    URLs:\n    - https://news.ycombinator.com (Extract Top 10)\n    - https://huggingface.co/papers (Extract top voted papers)\n\n    Output Format:\n    {\n      \"status\": \"success\" | \"partial\" | \"failed\",\n      \"data\": [\n        {\n          \"source_id\": \"hn\",\n          \"title\": \"...\",\n          \"summary\": \"...\",\n          \"key_points\": [\"...\", \"...\", \"...\"],\n          \"url\": \"...\",\n          \"keywords\": [\"...\", \"...\"],\n          \"quality_score\": 4\n        }\n      ],\n      \"errors\": [],\n      \"metadata\": { \"processed\": 2, \"failed\": 0 }\n    }\n\n    Filter Criteria:\n    - Keep: Cutting-edge Tech/Deep Tech/Productivity/Practical Info\n    - Exclude: General Science/Marketing Puff/Overly Academic/Job Posts\n\n    Return JSON directly, no explanation.\n```\n\n### Using worker Agent (Requires session restart)\n\n```\nTask Call:\n  subagent_type: worker\n  prompt: |\n    task: fetch_and_extract\n    input:\n      urls:\n        - https://news.ycombinator.com\n        - https://huggingface.co/papers\n    output_schema:\n      - source_id: string\n      - title: string\n      - summary: string\n      - key_points: string[]\n      - url: string\n      - keywords: string[]\n      - quality_score: 1-5\n    constraints:\n      filter: Cutting-edge Tech/Deep Tech/Productivity/Practical Info\n      exclude: General Science/Marketing Puff/Overly Academic\n```\n\n## Output Template\n\n```markdown\n# Daily News Report (YYYY-MM-DD)\n\n> Curated from N sources today, containing 20 high-quality items\n> Generation Time: X min | Version: v3.0\n>\n> **Warning**: Sub-agent 'worker' not detected. Running in generic mode (Serial Execution). Performance might be degraded.\n\n---\n\n## 1. Title\n\n- **Summary**: 2-4 lines overview\n- **Key Points**:\n  1. Point one\n  2. Point two\n  3. Point three\n- **Source**: Link\n- **Keywords**: `keyword1` `keyword2` `keyword3`\n- **Score**: ⭐⭐⭐⭐⭐ (5/5)\n\n---\n\n## 2. Title\n...\n\n---\n\n*Generated by Daily News Report v3.0*\n*Sources: HN, HuggingFace, OneUsefulThing, ...*\n```\n\n## Constraints & Principles\n\n1.  **Quality over Quantity**: Low-quality content does not enter the report.\n2.  **Early Stop**: Stop scraping once 20 high-quality items are reached.\n3.  **Parallel First**: SubAgents in the same batch execute in parallel.\n4.  **Fault Tolerance**: Failure of a single source does not affect the whole process.\n5.  **Cache Reuse**: Avoid re-scraping the same content.\n6.  **Main Agent Control**: All decisions are made by the Main Agent.\n7.  **Fallback Awareness**: Detect sub-agent availability, gracefully degrade if unavailable.\n\n## Expected Performance\n\n| Scenario | Expected Time | Note |\n|---|---|---|\n| Optimal | ~2 mins | Tier1 sufficient, no browser needed |\n| Normal | ~3-4 mins | Requires Tier2 supplement |\n| Browser Needed | ~5-6 mins | Includes JS rendered pages |\n\n## Error Handling\n\n| Error Type | Handling |\n|---|---|\n| SubAgent Timeout | Log error, continue to next |\n| Source 403/404 | Mark disabled, update sources.json |\n| Extraction Failed | Return raw content, Main Agent decides |\n| Browser Crash | Skip source, log entry |\n\n## Compatibility & Fallback\n\nTo ensure usability across different Agent environments, the following checks must be performed:\n\n1.  **Environment Check**:\n    -   In Phase 1 initialization, attempt to detect if `worker` sub-agent exists.\n    -   If not exists (or plugin not installed), automatically switch to **Serial Execution Mode**.\n\n2.  **Serial Execution Mode**:\n    -   Do not use parallel block.\n    -   Main Agent executes scraping tasks for each source sequentially.\n    -   Slower, but guarantees basic functionality.\n\n3.  **User Alert**:\n    -   MUST include a clear warning in the generated report header indicating the current degraded mode.\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.","tags":["daily","news","report","antigravity","awesome","skills","sickn33"],"capabilities":["skill","source-sickn33","category-antigravity-awesome-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/daily-news-report","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"install_from":"skills.sh"}},"qualityScore":"0.300","qualityRationale":"deterministic score 0.30 from registry signals: · indexed on skills.sh · published under sickn33/antigravity-awesome-skills","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:v1","enrichmentVersion":1,"enrichedAt":"2026-04-25T09:40:46.129Z","embedding":null,"createdAt":"2026-04-18T20:36:58.529Z","updatedAt":"2026-04-25T09:40:46.129Z","lastSeenAt":"2026-04-25T09:40:46.129Z","tsv":"'-4':286,843,980 '-5':306,781 '-6':988 '/papers':268,690,761 '0':719 '1':36,120,124,174,305,489,780,839,848,879,1041,1046 '10':261,327,687 '15':198,395 '2':38,132,161,204,285,500,717,842,851,865,892,971,1070 '20':54,225,391,404,470,580,811,898 '25':388 '3':40,138,228,239,293,513,854,905,979,1093 '4':42,144,336,525,713,916 '403':546 '403/404':1007 '5':51,149,413,532,930,987 '5/5':864 '6':55,472,940 '7':57,558,952 '8':592 '80':423 'academ':794 'academic/job':321,733 'across':437,1031 'action':1123 'add':612,617 'adjust':380,439 'affect':926 'agent':17,28,338,342,632,635,742,825,942,951,958,1018,1033,1055,1080 'aggreg':35 'alert':1095 'antigrav':4 'append':158 'applic':543,556,1117 'architectur':14,26 'argument':128 'articl':620,624 'assign':46,669 'attempt':1048 'automat':1064 'avail':407,959 'avoid':429,933 'awar':954 'awesom':5 'b':74,185,188,219 'base':441,586 'basic':1091 'batch':80,82,167,179,187,209,218,385,399,401,912 'block':1078 'blog':214 'bonus':445 'browser':21,75,229,230,473,486,976,985,1020 'c':207 'cach':24,63,110,594,611,931 'cache.json':109,140,427,597 'calibr':433 'call':490,501,514,533,626,651,747 'category-antigravity-awesome-skills' 'check':150,346,426,1037,1043 'chrome':476,493,504,517,536 'chrome-devtool':492,503,516,535 'clear':212,1099 'close':538,541 'collect':48,352,579 'compat':1026 'config':45 'configur':92,99,105,137 'consid':424 'constraint':309,782,877 'cont/stop':59 'contain':810 'content':408,511,531,570,615,618,682,886,939,1016 'continu':396,1003 'control':943 'core':25 'count':196,351,577 'crash':1021 'creat':145 'credibl':444 'criteria':721 'curat':449,805 'current':130,1108 'custom':634 'cut':312,724,785 'cutting-edg':311,723,784 'd':216 'daili':1,10,798,869 'data':89,111,143,701 'date':126,131,573 'dd':804 'decid':365,1019 'decis':34,52,386,945 'dedupl':114,417 'degrad':838,961,1109 'descend':455 'describ':1124 'detail':118 'detect':828,955,1050 'determin':125 'devtool':477,494,505,518,537 'differ':1032 'direct':737 'directori':147,563 'disabl':378,1009 'discov':641 'dispatch':39,65,162,166 'done':402 'duplic':425,431 'dynam':379 'earli':169,893 'edg':313,725,786 'enough':53 'ensur':1029 'enter':889 'entri':1025 'environ':1034,1042 'equal':467 'error':90,330,714,994,996,1002 'evalu':33,43,195,414 'exact':418 'exampl':627 'exclud':317,729,790 'execut':20,69,116,168,664,834,913,1068,1072,1081,1119 'exist':155,1056,1059 'expect':964,967 'explan':739 'extract':253,259,269,529,681,685,691,755,1012 'fail':364,374,700,718,1013 'failur':919 'fallback':953,1027 'fault':917 'feedback':340,359 'fetch':251,753 'file':62,93,100,101 'filenam':565 'filter':310,415,720,783 'filter/sort':50 'fingerprint':115,619 'first':907 'follow':98,678,1036 'format':242,244,333,567,696 'fs':213 'function':1092 'general':318,630,644,655,730,791 'general-purpos':629,643,654 'generat':56,405,559,587,816,867,1103 'generic':831 'get':522 'grace':960 'graham':191 'guarante':1090 'hackernoon':220 'haiku':658 'handl':995,998 'hash':616 'header':1105 'headless':78,485 'hf':263 'high':200,451,582,813,900 'high-qual':199,450,581,812,899 'highqual':390 'histor':112,142 'histori':430,621 'hn':181,256,704,874 'huggingfac':182,875 'huggingface.co':267,689,760 'huggingface.co/papers':266,688,759 'id':255,262,276,703,765 'identifi':279 'includ':623,990,1097 'indic':1106 'info':316,588,603,728,789 'init':37 'initi':121,1047 'inject':647 'input':756 'instal':1063 'item':202,226,274,324,353,387,394,578,584,815,902 'jame':211 'js':83,236,481,552,991 'json':334,674,736 'keep':722 'key':289,294,707,771,846 'keyword':300,302,710,776,859 'keyword1':860 'keyword2':861 'keyword3':862 'last':598 'latent':233,549 'layer':70 'line':844 'link':858 'load':512 'log':1001,1024 'loop':360 'low':884 'low-qual':883 'made':947 'main':16,27,337,341,941,950,1017,1079 'manual':448 'mark':376,1008 'markdown':569,797 'match':420 'max':292,323 'mcp':475,491,502,515,534 'mechan':171 'metadata':91,715 'method':108 'might':836 'min':819,972,981,989 'mm':803 'mode':159,832,1069,1073,1110 'model':657 'monitor':32,41,339,345 'must':1038,1096 'n':807 'need':977,986 'new':495 'news':2,11,799,870 'news.ycombinator.com':258,684,758 'newsreport':148,564 'next':398,1005 'normal':978 'note':969 'one':850 'oneusefulth':189,876 'open':498 'optim':970 'orchestr':18,29 'order':456 'origin':298 'output':146,272,562,695,762,795 'overview':845,1127 'page':479,496,499,523,539,542,993 'paper':183,264,694 'parallel':165,175,205,906,915,1077 'pars':526 'partial':153,699 'paul':190 'per':325,357,608 'perform':835,965,1040 'persist':375 'phase':119,160,238,335,412,471,557,591,1045 'plugin':1061 'point':290,295,446,708,772,847,849,852,855 'post':322,734 'principl':878 'prioriti':106,463 'process':117,488,613,716,929 'producthunt':232,545 'prompt':649,659,751 'puff/overly':320,732,793 'purpos':102,631,645,656 'qualiti':201,303,307,409,452,458,583,711,778,814,880,885,901 'quantiti':411,882 'rate':356 'raw':1015 're':935 're-scrap':934 'reach':904 'read':44,133,139 'receiv':245 'record':354,600,622 'render':84,237,482,553,992 'report':3,12,61,154,560,800,871,891,1104 'requir':235,480,530,636,743,982 'res':49 'respons':343 'restart':638,745 'result':67,86,194 'retri':368 'return':66,87,332,348,672,735,1014 'reus':932 'role':30 'run':599,602,829 'scenario':544,966 'schedul':31 'schema':273,763 'science/marketing':319,731,792 'score':304,308,432,435,459,465,712,779,863 'scott':221 'scrape':22,107,393,474,676,896,936,1082 'select':382 'sentenc':287 'sequenti':1087 'serial':833,1067,1071 'session':637,744 'sickn33':9 'similar':422 'sinc':633 'singl':922 'skill':6,7,95,1115 'skip':328,370,1022 'slower':1088 'smart':23 'snapshot':520,527 'sort':454,460 'sourc':104,136,254,275,278,326,358,373,381,443,453,462,576,604,609,702,764,808,857,873,923,1006,1023,1086 'source-sickn33' 'sources.json':103,134,1011 'spa':555 'space':234,550 'standard':436,568 'stat':64,113,605,607 'stateless':663 'statist':574 'status':88,349,697 'step':123 'still':224 'stop':170,392,894,895 'strategi':164 'string':277,281,284,291,297,301,766,768,770,773,775,777 'structur':85,524,571,673 'sub':824,957,1054 'sub-ag':823,956,1053 'subag':19,68,163,240,248,347,363,438,625,652,748,908,999 'subsequ':384 'substack':551 'success':355,698 'success/partial/failed':350 'suffici':974 'summari':283,288,575,706,769,841 'supplement':984 'switch':1065 'take':468,519 'task':47,241,243,250,650,670,675,746,752,1083 'tech/deep':314,726,787 'tech/productivity/practical':315,727,788 'templat':585,796 'three':856 'tier1':79,178,186,973 'tier2':81,208,217,983 'time':817,968 'timeout':1000 'timestamp':590 'titl':280,282,421,572,705,767,840,866 'today':157,809 'toler':918 'top':260,270,469,686,692 'true':331 'two':853 'type':653,749,997 'unavail':963 'unifi':434 'unit':665 'updat':58,593,596,606,1010 'upgrad':15 'url':257,265,296,299,419,610,614,679,683,709,757,774 'usabl':1030 'use':96,483,628,642,740,1076,1113 'user':127,1094 'v3.0':13,821,872 'version':589,820 'vote':271,693 'wait':192,506,509 'warn':822,1100 'wave':173,203,227 'webfetch':76,77,548 'weight':440 'whether':366 'whole':928 'worker':71,73,176,184,206,215,231,648,741,750,826,1052 'workflow':1121 'x':818 'y/n':60 'yaml':122,172,249,344,416,487,561,595 'young':222 'yyyi':802 'yyyy-mm-dd':801 'yyyy-mm-dd-news-report.md':566","prices":[{"id":"d818a3b0-b20e-4d60-a1d7-79fba837ebf5","listingId":"b59ebe6b-faf6-42e4-b7d3-f1af3787cb86","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T20:36:58.529Z"}],"sources":[{"listingId":"b59ebe6b-faf6-42e4-b7d3-f1af3787cb86","source":"github","sourceId":"sickn33/antigravity-awesome-skills/daily-news-report","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/daily-news-report","isPrimary":false,"firstSeenAt":"2026-04-18T21:35:30.046Z","lastSeenAt":"2026-04-25T06:50:56.631Z"},{"listingId":"b59ebe6b-faf6-42e4-b7d3-f1af3787cb86","source":"skills_sh","sourceId":"sickn33/antigravity-awesome-skills/daily-news-report","sourceUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/daily-news-report","isPrimary":true,"firstSeenAt":"2026-04-18T20:36:58.529Z","lastSeenAt":"2026-04-25T09:40:46.129Z"}],"details":{"listingId":"b59ebe6b-faf6-42e4-b7d3-f1af3787cb86","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"daily-news-report","source":"skills_sh","category":"antigravity-awesome-skills","skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/daily-news-report"},"updatedAt":"2026-04-25T09:40:46.129Z"}}