[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FPJ0CMH3CDW1M5MF5YQBGZ":3,"skill-same:01M6FPJ0CMH3CDW1M5MF5YQBGZ":86},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":21,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":6,"ownerHtmlUrl":59,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":60,"install":61,"resources":73},"01M6FPJ0CMH3CDW1M5MF5YQBGZ","hn-extract",null,"Extract a HackerNews post (article + comments) into single clean Markdown for quick reading or LLM input.","kbarbel640-del\u002Fskills","kbarbel640-del","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F255315490?v=4","01M6CJPPQGCCESXMG3K7BBGQ5J","01M6CJPPX2PB2BCZERFVM2C2B3",1,"MIT","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fguoqiao\u002Fhn-extract\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"hn","hn extract","extract","main","github","hackernews","reading","comments","quick","scraper","post","article","win32","python","clean","uv","linux","rss","markdown","https","2026-11-10 10:12:30",false,"---\nname: hn-extract\ndescription: Extract a HackerNews post (article + comments) into single clean Markdown for quick reading or LLM input.\nmetadata:  {\"openclaw\":{\"always\":true,\"emoji\":\"?\",\"homepage\":\"https:\u002F\u002Fgithub.com\u002Fguoqiao\u002Fskills\u002Fblob\u002Fmain\u002Fhn-extract\u002Fhn-extract\u002FSKILL.md\",\"os\":[\"darwin\",\"linux\",\"win32\"],\"tags\":[\"hn\",\"hackernews\",\"comments\",\"extract\",\"markdown\",\"python\",\"uv\",\"scraper\",\"rss\",\"reader\",\"summarize\"],\"requires\":{\"bins\":[\"uv\"]}}}\n---\n\n# HackerNews Extract\n\nExtract a HackerNews post (article + comments) into single clean Markdown for quick reading or LLM input.\n\nsee [Examples](https:\u002F\u002Fgithub.com\u002Fguoqiao\u002Fskills\u002Fblob\u002Fmain\u002Fhn-extract\u002Fexamples)\n\n## What it does\n- Accepts an HackerNews id or url\n- Download the linked article HTML, cleans and formats it.\n- Fetches the Hacknews post metadata and comments.\n- Outputs a readable combined markdown file with original article, threaded comments, and key metadata.\n\n## Requirements\n\n- `uv` installed and in PATH.\n\n## Install\n\nNo install beyond having `uv`.\nDependencies will be installed automatically by `uv` into to a dedicated venv when run this script.\n\n## Usage Workflow (Mandatory for Agents)\n\nWhen an agent is asked to extract a HackerNews post:\n1.  **Run the script** with an output path: `uv run --script ${baseDir}\u002Fhn-extract.py \u003Cinput> -o \u002Ftmp\u002Fhn-\u003Cid>.md`.\n2.  **Send ONE combined message:** Upload the file and ask the question in the *same* tool call. Use the `message` tool (`action=send`, `filePath=\"\u002Ftmp\u002Fhn-\u003Cid>.md\"`, `message=\"Extraction complete. Do you want me to summarize it?\"`).\n3.  **Do not** output the full text or a summary directly in the chat unless specifically requested.\n\n## Usage\n\n```bash\n# run as uv script\nuv run --script ${baseDir}\u002Fhn-extract.py \u003Chn-id|hn-url|path\u002Fto\u002Fitem.json> [-o path\u002Fto\u002Foutput.md]\n\n# Examples\nuv run --script ${baseDir}\u002Fhn-extract.py 46861313 -o \u002Ftmp\u002Foutput.md\nuv run --script ${baseDir}\u002Fhn-extract.py \"https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=46861313\"\n```\n\n- Omit `-o` to print to stdout.\n- Directories for `-o` are created automatically.\n\n## Notes\n- Retries are enabled for HTTP fetches.\n- Comments are indented by thread depth.\n- Sites requires authentication or blocks scraping may still fail.\n","# HackerNews Extract\n\nExtract a HackerNews post (article + comments) into single clean Markdown for quick reading or LLM input.\n\nsee [Examples](https:\u002F\u002Fgithub.com\u002Fguoqiao\u002Fskills\u002Fblob\u002Fmain\u002Fhn-extract\u002Fexamples)\n\n## What it does\n- Accepts an HackerNews id or url\n- Download the linked article HTML, cleans and formats it.\n- Fetches the Hacknews post metadata and comments.\n- Outputs a readable combined markdown file with original article, threaded comments, and key metadata.\n\n## Requirements\n\n- `uv` installed and in PATH.\n\n## Install\n\nNo install beyond having `uv`.\nDependencies will be installed automatically by `uv` into to a dedicated venv when run this script.\n\n## Usage Workflow (Mandatory for Agents)\n\nWhen an agent is asked to extract a HackerNews post:\n1.  **Run the script** with an output path: `uv run --script ${baseDir}\u002Fhn-extract.py \u003Cinput> -o \u002Ftmp\u002Fhn-\u003Cid>.md`.\n2.  **Send ONE combined message:** Upload the file and ask the question in the *same* tool call. Use the `message` tool (`action=send`, `filePath=\"\u002Ftmp\u002Fhn-\u003Cid>.md\"`, `message=\"Extraction complete. Do you want me to summarize it?\"`).\n3.  **Do not** output the full text or a summary directly in the chat unless specifically requested.\n\n## Usage\n\n```bash\n# run as uv script\nuv run --script ${baseDir}\u002Fhn-extract.py \u003Chn-id|hn-url|path\u002Fto\u002Fitem.json> [-o path\u002Fto\u002Foutput.md]\n\n# Examples\nuv run --script ${baseDir}\u002Fhn-extract.py 46861313 -o \u002Ftmp\u002Foutput.md\nuv run --script ${baseDir}\u002Fhn-extract.py \"https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=46861313\"\n```\n\n- Omit `-o` to print to stdout.\n- Directories for `-o` are created automatically.\n\n## Notes\n- Retries are enabled for HTTP fetches.\n- Comments are indented by thread depth.\n- Sites requires authentication or blocks scraping may still fail.\n",{"name":5,"metadata":43,"description":7},{"openclaw":44},{"os":45,"tags":47,"emoji":50,"always":51,"homepage":52,"requires":53},[46,34,30],"darwin",[18,23,25,20,36,31,33,27,35,48,49],"reader","summarize","?",true,"https:\u002F\u002Fgithub.com\u002Fguoqiao\u002Fskills\u002Fblob\u002Fmain\u002Fhn-extract\u002Fhn-extract\u002FSKILL.md",{"bins":54},[33],"e7e336ac628c3e3bd771aff1aaa469c93778f94a","skills\u002Fguoqiao\u002Fhn-extract",0,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del","2026-08-23 22:39:37",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":51},[63,66,69],{"tool":64,"command":65},"npx","npx skills add kbarbel640-del\u002Fskills --skill hn-extract",{"tool":67,"command":68},"bunx","bunx skills add kbarbel640-del\u002Fskills --skill hn-extract",{"tool":70,"command":71},"pnpm","pnpm dlx skills add kbarbel640-del\u002Fskills --skill hn-extract","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fguoqiao\u002Fhn-extract\u002FSKILL.md",[74,80],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"_meta.json","REFERENCE","参考文档",811,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fguoqiao\u002Fhn-extract\u002F_meta.json",{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"hn-extract.py","SCRIPT","脚本",8167,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fguoqiao\u002Fhn-extract\u002Fhn-extract.py",[87,117,146,166,172,189],{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":98,"publishedAt":38},"01M6G8J55967D6281ACMKAKTEQ","crowd-prompting","A marketplace where AI agents improve prompts, system instructions, tool descriptions, and other text-based content with domain expertise from real-world operations — and earn tokens for valuable contributions.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzzadrian\u002Fcrowd-prompting\u002FSKILL.md",[93],{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,37,115,116],"crowd prompting","prompting","api","with","tokens","domain","world","prompts","operations","instructions","text","tool","system","improve","productivity","marketplace","content","ai agents",{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":128,"publishedAt":38},"01M6G8J0PKPAYVET6BWE8W4C26","dilemm-ai","Compete in DilemmAI, the prisoner's dilemma AI arena at dilemm.ai. Use when an OpenClaw agent wants to create an account, design and submit strategy prompts for their bot, enter matchmaking, analyze historical matches and leaderboards, and iterate on bot strategy. Requires headless browser automation (no API available yet).","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzyori\u002Fdilemm-ai\u002FSKILL.md",[123],{"categoryNo":124,"categoryName":125,"taxonomyType":126,"taxonomyTypeDesc":127},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[129,101,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,106,145],"dilemm ai","arena","analyze","browser","openclaw agent","create","automation","browser automation","bot","openclaw","design","strategy","headless","compete","submit","matchmaking","use",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":155,"publishedAt":38},"01M6G8HWAF3K9SW7NP3Z83CPJ6","arxiv-paper-reviews","Interact with arXiv Crawler API to fetch papers, read reviews, and submit comments. Use when working with arXiv papers, fetching paper lists by date\u002Fcategory\u002Finterest, viewing paper details with comments, or submitting paper reviews via API at http:\u002F\u002F150.158.152.82:8000.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Fweak-accept\u002FSKILL.md",[152],{"categoryNo":153,"categoryName":154,"taxonomyType":126,"taxonomyTypeDesc":127},"01JBSEEDCAT000000000000021","资料检索与研究",[156,157,158,159,160,161,25,102,162,143,145,163,101,164,165],"arxiv paper reviews","reviews","arxiv","paper","crawler","papers","fetch","read","http","via",{"skillNo":167,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":171,"publishedAt":38},"01M6G8HQJ7N7WMY6YV7D7SSJ16","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Farxiv-paper-reviews\u002FSKILL.md",[170],{"categoryNo":153,"categoryName":154,"taxonomyType":126,"taxonomyTypeDesc":127},[159,158,157,156,165,161,25,102,160,143,145,162,163,101,164],{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":178,"publishedAt":38},"01M6G8HM95Y64JNVFC2HN4E2BG","git-summary","Get a quick summary of the current Git repository including status, recent commits, branches, and contributors.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzweack\u002Fgit-summary\u002FSKILL.md",[],[179,180,181,182,183,30,184,34,185,186,26,187,188],"git","summary","git summary","commits","repository","status","contributors","true","get","branches",{"skillNo":190,"name":191,"nameZh":6,"description":192,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":193,"categories":194,"keywords":199,"publishedAt":38},"01M6G8HGEGF05CNEJCGVYFSC4R","agent-constitution","Interact with AgentConstitution governance contracts on Base Sepolia. Check compliance, read rules, log actions, query governance state.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fztsalexey\u002Fagent-constitution\u002FSKILL.md",[195,196],{"categoryNo":124,"categoryName":125,"taxonomyType":126,"taxonomyTypeDesc":127},{"categoryNo":197,"categoryName":198,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000037","律师与法务",[200,201,202,203,102,204,205,21,206,163,207,208,209,210,211,37,212,213,22],"agent constitution","constitution","contracts","tree","query","base","log","check","Rules","projects","compliance","actions","state","governance"]