[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71G0WVB8H5WM9BWTQXKHS4V":3,"skill-same:01M71G0WVB8H5WM9BWTQXKHS4V":91},{"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":22,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":54,"install":55,"resources":68},"01M71G0WVB8H5WM9BWTQXKHS4V","baoyu-url-to-markdown",null,"Fetch any URL and convert to markdown using Chrome CDP. Supports two modes - auto-capture on page load, or wait for user signal (for pages requiring login). Use when user wants to save a webpage as markdown.","JSGforever\u002Fskillguard","JSGforever","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F85541948?v=4","01M71FQD3E132VMR5F4TAYX3YS","01M71FQD4DYW0XJ4XQ4YQH75Y9",2,"GPL-3.0","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__JimLiu--baoyu-url-to-markdown\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"URL","markdown","url to markdown","baoyu url to markdown","two","convert","chrome","when","load","use","auto","pages","modes","signal","wait for","page","for","fetch","as","cdp","2026-11-10 10:12:30",false,"---\nname: baoyu-url-to-markdown\ndescription: Fetch any URL and convert to markdown using Chrome CDP. Supports two modes - auto-capture on page load, or wait for user signal (for pages requiring login). Use when user wants to save a webpage as markdown.\n---\n\n# URL to Markdown\n\nFetches any URL via Chrome CDP and converts HTML to clean markdown.\n\n## Script Directory\n\n**Important**: All scripts are located in the `scripts\u002F` subdirectory of this skill.\n\n**Agent Execution Instructions**:\n1. Determine this SKILL.md file's directory path as `SKILL_DIR`\n2. Script path = `${SKILL_DIR}\u002Fscripts\u002F\u003Cscript-name>.ts`\n3. Replace all `${SKILL_DIR}` in this document with the actual path\n\n**Script Reference**:\n| Script | Purpose |\n|--------|---------|\n| `scripts\u002Fmain.ts` | CLI entry point for URL fetching |\n\n## Preferences (EXTEND.md)\n\nUse Bash to check EXTEND.md existence (priority order):\n\n```bash\n# Check project-level first\ntest -f .baoyu-skills\u002Fbaoyu-url-to-markdown\u002FEXTEND.md && echo \"project\"\n\n# Then user-level (cross-platform: $HOME works on macOS\u002FLinux\u002FWSL)\ntest -f \"$HOME\u002F.baoyu-skills\u002Fbaoyu-url-to-markdown\u002FEXTEND.md\" && echo \"user\"\n```\n\n┌────────────────────────────────────────────────────────┬───────────────────┐\n│                          Path                          │     Location      │\n├────────────────────────────────────────────────────────┼───────────────────┤\n│ .baoyu-skills\u002Fbaoyu-url-to-markdown\u002FEXTEND.md          │ Project directory │\n├────────────────────────────────────────────────────────┼───────────────────┤\n│ $HOME\u002F.baoyu-skills\u002Fbaoyu-url-to-markdown\u002FEXTEND.md    │ User home         │\n└────────────────────────────────────────────────────────┴───────────────────┘\n\n┌───────────┬───────────────────────────────────────────────────────────────────────────┐\n│  Result   │                                  Action                                   │\n├───────────┼───────────────────────────────────────────────────────────────────────────┤\n│ Found     │ Read, parse, apply settings                                               │\n├───────────┼───────────────────────────────────────────────────────────────────────────┤\n│ Not found │ Use defaults                                                              │\n└───────────┴───────────────────────────────────────────────────────────────────────────┘\n\n**EXTEND.md Supports**: Default output directory | Default capture mode | Timeout settings\n\n## Features\n\n- Chrome CDP for full JavaScript rendering\n- Two capture modes: auto or wait-for-user\n- Clean markdown output with metadata\n- Handles login-required pages via wait mode\n\n## Usage\n\n```bash\n# Auto mode (default) - capture when page loads\nnpx -y bun ${SKILL_DIR}\u002Fscripts\u002Fmain.ts \u003Curl>\n\n# Wait mode - wait for user signal before capture\nnpx -y bun ${SKILL_DIR}\u002Fscripts\u002Fmain.ts \u003Curl> --wait\n\n# Save to specific file\nnpx -y bun ${SKILL_DIR}\u002Fscripts\u002Fmain.ts \u003Curl> -o output.md\n```\n\n## Options\n\n| Option | Description |\n|--------|-------------|\n| `\u003Curl>` | URL to fetch |\n| `-o \u003Cpath>` | Output file path (default: auto-generated) |\n| `--wait` | Wait for user signal before capturing |\n| `--timeout \u003Cms>` | Page load timeout (default: 30000) |\n\n## Capture Modes\n\n| Mode | Behavior | Use When |\n|------|----------|----------|\n| Auto (default) | Capture on network idle | Public pages, static content |\n| Wait (`--wait`) | User signals when ready | Login-required, lazy loading, paywalls |\n\n**Wait mode workflow**:\n1. Run with `--wait` → script outputs \"Press Enter when ready\"\n2. Ask user to confirm page is ready\n3. Send newline to stdin to trigger capture\n\n## Output Format\n\nYAML front matter with `url`, `title`, `description`, `author`, `published`, `captured_at` fields, followed by converted markdown content.\n\n## Output Directory\n\n```\nurl-to-markdown\u002F\u003Cdomain>\u002F\u003Cslug>.md\n```\n\n- `\u003Cslug>`: From page title or URL path (kebab-case, 2-6 words)\n- Conflict resolution: Append timestamp `\u003Cslug>-YYYYMMDD-HHMMSS.md`\n\n## Environment Variables\n\n| Variable | Description |\n|----------|-------------|\n| `URL_CHROME_PATH` | Custom Chrome executable path |\n| `URL_DATA_DIR` | Custom data directory |\n| `URL_CHROME_PROFILE_DIR` | Custom Chrome profile directory |\n\n**Troubleshooting**: Chrome not found → set `URL_CHROME_PATH`. Timeout → increase `--timeout`. Complex pages → try `--wait` mode.\n\n## Extension Support\n\nCustom configurations via EXTEND.md. See **Preferences** section for paths and supported options.\n","# URL to Markdown\n\nFetches any URL via Chrome CDP and converts HTML to clean markdown.\n\n## Script Directory\n\n**Important**: All scripts are located in the `scripts\u002F` subdirectory of this skill.\n\n**Agent Execution Instructions**:\n1. Determine this SKILL.md file's directory path as `SKILL_DIR`\n2. Script path = `${SKILL_DIR}\u002Fscripts\u002F\u003Cscript-name>.ts`\n3. Replace all `${SKILL_DIR}` in this document with the actual path\n\n**Script Reference**:\n| Script | Purpose |\n|--------|---------|\n| `scripts\u002Fmain.ts` | CLI entry point for URL fetching |\n\n## Preferences (EXTEND.md)\n\nUse Bash to check EXTEND.md existence (priority order):\n\n```bash\n# Check project-level first\ntest -f .baoyu-skills\u002Fbaoyu-url-to-markdown\u002FEXTEND.md && echo \"project\"\n\n# Then user-level (cross-platform: $HOME works on macOS\u002FLinux\u002FWSL)\ntest -f \"$HOME\u002F.baoyu-skills\u002Fbaoyu-url-to-markdown\u002FEXTEND.md\" && echo \"user\"\n```\n\n┌────────────────────────────────────────────────────────┬───────────────────┐\n│                          Path                          │     Location      │\n├────────────────────────────────────────────────────────┼───────────────────┤\n│ .baoyu-skills\u002Fbaoyu-url-to-markdown\u002FEXTEND.md          │ Project directory │\n├────────────────────────────────────────────────────────┼───────────────────┤\n│ $HOME\u002F.baoyu-skills\u002Fbaoyu-url-to-markdown\u002FEXTEND.md    │ User home         │\n└────────────────────────────────────────────────────────┴───────────────────┘\n\n┌───────────┬───────────────────────────────────────────────────────────────────────────┐\n│  Result   │                                  Action                                   │\n├───────────┼───────────────────────────────────────────────────────────────────────────┤\n│ Found     │ Read, parse, apply settings                                               │\n├───────────┼───────────────────────────────────────────────────────────────────────────┤\n│ Not found │ Use defaults                                                              │\n└───────────┴───────────────────────────────────────────────────────────────────────────┘\n\n**EXTEND.md Supports**: Default output directory | Default capture mode | Timeout settings\n\n## Features\n\n- Chrome CDP for full JavaScript rendering\n- Two capture modes: auto or wait-for-user\n- Clean markdown output with metadata\n- Handles login-required pages via wait mode\n\n## Usage\n\n```bash\n# Auto mode (default) - capture when page loads\nnpx -y bun ${SKILL_DIR}\u002Fscripts\u002Fmain.ts \u003Curl>\n\n# Wait mode - wait for user signal before capture\nnpx -y bun ${SKILL_DIR}\u002Fscripts\u002Fmain.ts \u003Curl> --wait\n\n# Save to specific file\nnpx -y bun ${SKILL_DIR}\u002Fscripts\u002Fmain.ts \u003Curl> -o output.md\n```\n\n## Options\n\n| Option | Description |\n|--------|-------------|\n| `\u003Curl>` | URL to fetch |\n| `-o \u003Cpath>` | Output file path (default: auto-generated) |\n| `--wait` | Wait for user signal before capturing |\n| `--timeout \u003Cms>` | Page load timeout (default: 30000) |\n\n## Capture Modes\n\n| Mode | Behavior | Use When |\n|------|----------|----------|\n| Auto (default) | Capture on network idle | Public pages, static content |\n| Wait (`--wait`) | User signals when ready | Login-required, lazy loading, paywalls |\n\n**Wait mode workflow**:\n1. Run with `--wait` → script outputs \"Press Enter when ready\"\n2. Ask user to confirm page is ready\n3. Send newline to stdin to trigger capture\n\n## Output Format\n\nYAML front matter with `url`, `title`, `description`, `author`, `published`, `captured_at` fields, followed by converted markdown content.\n\n## Output Directory\n\n```\nurl-to-markdown\u002F\u003Cdomain>\u002F\u003Cslug>.md\n```\n\n- `\u003Cslug>`: From page title or URL path (kebab-case, 2-6 words)\n- Conflict resolution: Append timestamp `\u003Cslug>-YYYYMMDD-HHMMSS.md`\n\n## Environment Variables\n\n| Variable | Description |\n|----------|-------------|\n| `URL_CHROME_PATH` | Custom Chrome executable path |\n| `URL_DATA_DIR` | Custom data directory |\n| `URL_CHROME_PROFILE_DIR` | Custom Chrome profile directory |\n\n**Troubleshooting**: Chrome not found → set `URL_CHROME_PATH`. Timeout → increase `--timeout`. Complex pages → try `--wait` mode.\n\n## Extension Support\n\nCustom configurations via EXTEND.md. See **Preferences** section for paths and supported options.\n",{"name":5,"description":7},"main","f2ec4b3b9133d34eeaf9b38e4b0a97e8e5705a7f","benchmarks\u002Ffinal\u002Fskills\u002Fasset1__JimLiu--baoyu-url-to-markdown",0,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard","https:\u002F\u002Fgithub.com\u002FJSGforever","2026-08-29 18:27:56",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add JSGforever\u002Fskillguard --skill baoyu-url-to-markdown",{"tool":61,"command":62},"bunx","bunx skills add JSGforever\u002Fskillguard --skill baoyu-url-to-markdown",{"tool":64,"command":65},"pnpm","pnpm dlx skills add JSGforever\u002Fskillguard --skill baoyu-url-to-markdown","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__JimLiu--baoyu-url-to-markdown\u002FSKILL.md",true,[69,75,79,83,87],{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"scripts\u002Fcdp.ts","SCRIPT","脚本",11034,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__JimLiu--baoyu-url-to-markdown\u002Fscripts\u002Fcdp.ts",{"path":76,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":77,"sourceHtmlUrl":78},"scripts\u002Fconstants.ts",544,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__JimLiu--baoyu-url-to-markdown\u002Fscripts\u002Fconstants.ts",{"path":80,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":81,"sourceHtmlUrl":82},"scripts\u002Fhtml-to-markdown.ts",24710,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__JimLiu--baoyu-url-to-markdown\u002Fscripts\u002Fhtml-to-markdown.ts",{"path":84,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":85,"sourceHtmlUrl":86},"scripts\u002Fmain.ts",6145,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__JimLiu--baoyu-url-to-markdown\u002Fscripts\u002Fmain.ts",{"path":88,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":89,"sourceHtmlUrl":90},"scripts\u002Fpaths.ts",1093,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__JimLiu--baoyu-url-to-markdown\u002Fscripts\u002Fpaths.ts",[92,121,137,164,186,207],{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":101,"publishedAt":43},"01M71HY2SNXBA9Q00WZDTZQ31Z","skillguard-codex-scanner","Hybrid deterministic+LLM agent-skill security scanner. Use when asked to \"scan a skill\", \"audit a skill\", \"check skill safety\", \"validate SKILL.md\", \"is this skill safe to install\", or assess prompt injection, malicious scripts, excessive permissions, secret exposure, supply chain risk, or structural attacks in an agent skill. Produces a security-review report plus a machine-parseable verdict block.","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fsrc\u002Fskillguard\u002Fstatic_scanner\u002Fskillguard-codex-scanner\u002FSKILL.md",[98],{"categoryNo":99,"categoryName":100,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[102,103,104,105,106,107,108,109,110,111,112,113,30,114,115,116,117,118,119,120],"scanner","skillguard codex scanner","skillguard","codex","chain","skill security","security-review","review report","structural","secret","prompt injection","security scanner","review","malicious","permissions","exposure","audit","scripts","safe",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":125,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":133,"publishedAt":43},"01M71HY0SPKTT3S27BC2HPAC5M","data-exfiltrator","Analyzes data files","MIT","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Fsmoke-one-skill\u002Fasset1__cisco-ai-defense--data-exfiltrator\u002FSKILL.md",[128],{"categoryNo":129,"categoryName":130,"taxonomyType":131,"taxonomyTypeDesc":132},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[134,135,136],"data","data exfiltrator","files",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":43},"01M71HXVS9EMN44BGDW215FZ72","real-time-collaboration-engine","Build real-time collaborative editing with WebSockets, OT\u002FCRDT conflict resolution, and presence awareness. Implements cursor tracking, optimistic updates, and offline sync. Use for collaborative editors, whiteboards, video editing. Activate on \"real-time collaboration\", \"WebSocket sync\", \"multiplayer editing\", \"CRDT\", \"presence awareness\". NOT for simple chat, request-response APIs, or single-user apps.","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__curiositech--real-time-collaboration-engine\u002FSKILL.md",[],[144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163],"time","real time collaboration engine","real time collaboration","collaboration","engine","real time","Video","reliability","video editing","performance","conflict resolution","presence","access","apps","updates","Bash","activate","optimizer","react","streaming",{"skillNo":165,"name":166,"nameZh":6,"description":167,"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":173,"publishedAt":43},"01M71HXP6CTY4KFN0QVMMN0V7J","react-performance-optimizer","Optimize React apps for 60fps performance. Implements memoization, virtualization, code splitting, bundle optimization. Use for slow renders, large lists, bundle bloat. Activate on \"React performance\", \"slow render\", \"useMemo\", \"bundle size\", \"virtualization\". NOT for backend optimization, non-React frameworks, or premature optimization.","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__curiositech--react-performance-optimizer\u002FSKILL.md",[170],{"categoryNo":171,"categoryName":172,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",[153,174,161,162,175,176,177,178,179,180,144,181,182,157,159,183,160,163,184,185],"react performance optimizer","react performance","performance optimizer","app","nextjs","expert","re","render","2025","code","router","strategies",{"skillNo":187,"name":188,"nameZh":6,"description":189,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":190,"categories":191,"keywords":193,"publishedAt":43},"01M71HXH7QXSQB4QTDZ7SP7YXQ","llm-streaming-response-handler","Build production LLM streaming UIs with Server-Sent Events, real-time token display, cancellation, error recovery. Handles OpenAI\u002FAnthropic\u002FClaude streaming APIs. Use for chatbots, AI assistants, real-time text generation. Activate on \"LLM streaming\", \"SSE\", \"token stream\", \"chat UI\", \"real-time AI\". NOT for batch processing, non-streaming APIs, or WebSocket bidirectional chat.","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__curiositech--llm-streaming-response-handler\u002FSKILL.md",[192],{"categoryNo":171,"categoryName":172,"taxonomyType":20,"taxonomyTypeDesc":21},[194,163,195,196,197,198,153,144,199,200,201,159,160,161,202,162,203,204,205,206],"llm streaming response handler","handler","error","processing","retry","chat ui","error recovery","critical","batch","display","text","server","read",{"skillNo":208,"name":209,"nameZh":6,"description":210,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":211,"categories":212,"keywords":220,"publishedAt":43},"01M71HXCB0E1YRKYW1Y8T0Y106","github-actions-pipeline-builder","Build production CI\u002FCD pipelines with GitHub Actions. Implements matrix builds, caching, deployments, testing, security scanning. Use for automated testing, deployments, release workflows. Activate on \"GitHub Actions\", \"CI\u002FCD\", \"workflow\", \"deployment pipeline\", \"automated testing\". NOT for Jenkins\u002FCircleCI, manual deployments, or non-GitHub repositories.","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__curiositech--github-actions-pipeline-builder\u002FSKILL.md",[213,216,219],{"categoryNo":214,"categoryName":215,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":217,"categoryName":218,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":99,"categoryName":100,"taxonomyType":20,"taxonomyTypeDesc":21},[221,222,223,224,225,226,227,151,179,228,229,230,160,185,231,206,232,233,234,235],"github actions pipeline builder","actions","github actions","pipeline builder","github","builder","pipeline","testing","ci","workflows","run","release","write","edit","git"]