[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M715VR68ZD15GQDH4H1B2STA":3,"skill-same:01M715VR68ZD15GQDH4H1B2STA":206},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":14,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":51,"install":52,"resources":65},"01M715VR68ZD15GQDH4H1B2STA","dbos-python",null,"Guide for building reliable, fault-tolerant Python applications with DBOS durable workflows. Use when adding DBOS to existing Python code, creating workflows and steps, or using queues for concurrency control.","sapsapshen\u002Fai-memory-router","sapsapshen","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F20347959?v=4","01M6XDQEF1DP50DKF37H81J3J5","shenmian","01M6XDQEJPE41Y3DT2763X8ZJN",0,"MIT","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"dbos python","python","guide","docs","queues","safe","https","2026","concurrency","control","python code","with","code","when","workflows","Existing","use","dev","applications","for","2026-11-10 10:12:30",false,"---\nname: dbos-python\ndescription: \"Guide for building reliable, fault-tolerant Python applications with DBOS durable workflows. Use when adding DBOS to existing Python code, creating workflows and steps, or using queues for concurrency control.\"\nrisk: safe\nsource: \"https:\u002F\u002Fdocs.dbos.dev\u002F\"\ndate_added: \"2026-02-27\"\n---\n\n# DBOS Python Best Practices\n\nGuide for building reliable, fault-tolerant Python applications with DBOS durable workflows.\n\n## When to Use\nReference these guidelines when:\n- Adding DBOS to existing Python code\n- Creating workflows and steps\n- Using queues for concurrency control\n- Implementing workflow communication (events, messages, streams)\n- Configuring and launching DBOS applications\n- Using DBOSClient from external applications\n- Testing DBOS applications\n\n## Rule Categories by Priority\n\n| Priority | Category | Impact | Prefix |\n|----------|----------|--------|--------|\n| 1 | Lifecycle | CRITICAL | `lifecycle-` |\n| 2 | Workflow | CRITICAL | `workflow-` |\n| 3 | Step | HIGH | `step-` |\n| 4 | Queue | HIGH | `queue-` |\n| 5 | Communication | MEDIUM | `comm-` |\n| 6 | Pattern | MEDIUM | `pattern-` |\n| 7 | Testing | LOW-MEDIUM | `test-` |\n| 8 | Client | MEDIUM | `client-` |\n| 9 | Advanced | LOW | `advanced-` |\n\n## Critical Rules\n\n### DBOS Configuration and Launch\n\nA DBOS application MUST configure and launch DBOS inside its main function:\n\n```python\nimport os\nfrom dbos import DBOS, DBOSConfig\n\n@DBOS.workflow()\ndef my_workflow():\n    pass\n\nif __name__ == \"__main__\":\n    config: DBOSConfig = {\n        \"name\": \"my-app\",\n        \"system_database_url\": os.environ.get(\"DBOS_SYSTEM_DATABASE_URL\"),\n    }\n    DBOS(config=config)\n    DBOS.launch()\n```\n\n### Workflow and Step Structure\n\nWorkflows are comprised of steps. Any function performing complex operations or accessing external services must be a step:\n\n```python\n@DBOS.step()\ndef call_external_api():\n    return requests.get(\"https:\u002F\u002Fapi.example.com\").json()\n\n@DBOS.workflow()\ndef my_workflow():\n    result = call_external_api()\n    return result\n```\n\n### Key Constraints\n\n- Do NOT call `DBOS.start_workflow` or `DBOS.recv` from a step\n- Do NOT use threads to start workflows - use `DBOS.start_workflow` or queues\n- Workflows MUST be deterministic - non-deterministic operations go in steps\n- Do NOT create\u002Fupdate global variables from workflows or steps\n\n## How to Use\n\nRead individual rule files for detailed explanations and examples:\n\n```\nreferences\u002Flifecycle-config.md\nreferences\u002Fworkflow-determinism.md\nreferences\u002Fqueue-concurrency.md\n```\n\n## References\n\n- https:\u002F\u002Fdocs.dbos.dev\u002F\n- https:\u002F\u002Fgithub.com\u002Fdbos-inc\u002Fdbos-transact-py\n","# DBOS Python Best Practices\n\nGuide for building reliable, fault-tolerant Python applications with DBOS durable workflows.\n\n## When to Use\nReference these guidelines when:\n- Adding DBOS to existing Python code\n- Creating workflows and steps\n- Using queues for concurrency control\n- Implementing workflow communication (events, messages, streams)\n- Configuring and launching DBOS applications\n- Using DBOSClient from external applications\n- Testing DBOS applications\n\n## Rule Categories by Priority\n\n| Priority | Category | Impact | Prefix |\n|----------|----------|--------|--------|\n| 1 | Lifecycle | CRITICAL | `lifecycle-` |\n| 2 | Workflow | CRITICAL | `workflow-` |\n| 3 | Step | HIGH | `step-` |\n| 4 | Queue | HIGH | `queue-` |\n| 5 | Communication | MEDIUM | `comm-` |\n| 6 | Pattern | MEDIUM | `pattern-` |\n| 7 | Testing | LOW-MEDIUM | `test-` |\n| 8 | Client | MEDIUM | `client-` |\n| 9 | Advanced | LOW | `advanced-` |\n\n## Critical Rules\n\n### DBOS Configuration and Launch\n\nA DBOS application MUST configure and launch DBOS inside its main function:\n\n```python\nimport os\nfrom dbos import DBOS, DBOSConfig\n\n@DBOS.workflow()\ndef my_workflow():\n    pass\n\nif __name__ == \"__main__\":\n    config: DBOSConfig = {\n        \"name\": \"my-app\",\n        \"system_database_url\": os.environ.get(\"DBOS_SYSTEM_DATABASE_URL\"),\n    }\n    DBOS(config=config)\n    DBOS.launch()\n```\n\n### Workflow and Step Structure\n\nWorkflows are comprised of steps. Any function performing complex operations or accessing external services must be a step:\n\n```python\n@DBOS.step()\ndef call_external_api():\n    return requests.get(\"https:\u002F\u002Fapi.example.com\").json()\n\n@DBOS.workflow()\ndef my_workflow():\n    result = call_external_api()\n    return result\n```\n\n### Key Constraints\n\n- Do NOT call `DBOS.start_workflow` or `DBOS.recv` from a step\n- Do NOT use threads to start workflows - use `DBOS.start_workflow` or queues\n- Workflows MUST be deterministic - non-deterministic operations go in steps\n- Do NOT create\u002Fupdate global variables from workflows or steps\n\n## How to Use\n\nRead individual rule files for detailed explanations and examples:\n\n```\nreferences\u002Flifecycle-config.md\nreferences\u002Fworkflow-determinism.md\nreferences\u002Fqueue-concurrency.md\n```\n\n## References\n\n- https:\u002F\u002Fdocs.dbos.dev\u002F\n- https:\u002F\u002Fgithub.com\u002Fdbos-inc\u002Fdbos-transact-py\n",{"name":5,"risk":24,"source":44,"date_added":45,"description":7},"https:\u002F\u002Fdocs.dbos.dev\u002F","2026-02-27","main","7a38d8e7073e61c16eda85681cb32fb68a8657a5","skills-store\u002Fcursor\u002Fdbos-python","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router","https:\u002F\u002Fgithub.com\u002Fsapsapshen","2026-04-14 21:12:12",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add sapsapshen\u002Fai-memory-router --skill dbos-python",{"tool":58,"command":59},"bunx","bunx skills add sapsapshen\u002Fai-memory-router --skill dbos-python",{"tool":61,"command":62},"pnpm","pnpm dlx skills add sapsapshen\u002Fai-memory-router --skill dbos-python","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002FSKILL.md",true,[66,72,76,80,84,88,92,96,100,103,107,111,115,119,123,127,131,135,139,143,146,150,154,158,162,166,170,174,178,182,186,190,194,198,202],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"AGENTS.md","REFERENCE","参考文档",2748,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002FAGENTS.md",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"CLAUDE.md",9,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002FCLAUDE.md",{"path":77,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002F_sections.md",1415,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002F_sections.md",{"path":81,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002Fadvanced-async.md",2604,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fadvanced-async.md",{"path":85,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002Fadvanced-patching.md",1551,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fadvanced-patching.md",{"path":89,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":90,"sourceHtmlUrl":91},"references\u002Fadvanced-versioning.md",1628,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fadvanced-versioning.md",{"path":93,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":94,"sourceHtmlUrl":95},"references\u002Fclient-enqueue.md",1384,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fclient-enqueue.md",{"path":97,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":98,"sourceHtmlUrl":99},"references\u002Fclient-setup.md",1668,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fclient-setup.md",{"path":101,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":86,"sourceHtmlUrl":102},"references\u002Fcomm-events.md","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fcomm-events.md",{"path":104,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":105,"sourceHtmlUrl":106},"references\u002Fcomm-messages.md",1563,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fcomm-messages.md",{"path":108,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":109,"sourceHtmlUrl":110},"references\u002Fcomm-streaming.md",1570,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fcomm-streaming.md",{"path":112,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":113,"sourceHtmlUrl":114},"references\u002Flifecycle-config.md",1572,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Flifecycle-config.md",{"path":116,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":117,"sourceHtmlUrl":118},"references\u002Flifecycle-fastapi.md",1487,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Flifecycle-fastapi.md",{"path":120,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":121,"sourceHtmlUrl":122},"references\u002Fpattern-classes.md",1651,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fpattern-classes.md",{"path":124,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":125,"sourceHtmlUrl":126},"references\u002Fpattern-debouncing.md",1659,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fpattern-debouncing.md",{"path":128,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":129,"sourceHtmlUrl":130},"references\u002Fpattern-idempotency.md",1512,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fpattern-idempotency.md",{"path":132,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":133,"sourceHtmlUrl":134},"references\u002Fpattern-scheduled.md",1492,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fpattern-scheduled.md",{"path":136,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":137,"sourceHtmlUrl":138},"references\u002Fpattern-sleep.md",1378,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fpattern-sleep.md",{"path":140,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":141,"sourceHtmlUrl":142},"references\u002Fqueue-basics.md",1370,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fqueue-basics.md",{"path":144,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":137,"sourceHtmlUrl":145},"references\u002Fqueue-concurrency.md","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fqueue-concurrency.md",{"path":147,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":148,"sourceHtmlUrl":149},"references\u002Fqueue-deduplication.md",1591,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fqueue-deduplication.md",{"path":151,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":152,"sourceHtmlUrl":153},"references\u002Fqueue-listening.md",1607,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fqueue-listening.md",{"path":155,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":156,"sourceHtmlUrl":157},"references\u002Fqueue-partitioning.md",1800,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fqueue-partitioning.md",{"path":159,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":160,"sourceHtmlUrl":161},"references\u002Fqueue-priority.md",1509,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fqueue-priority.md",{"path":163,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":164,"sourceHtmlUrl":165},"references\u002Fqueue-rate-limiting.md",1358,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fqueue-rate-limiting.md",{"path":167,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":168,"sourceHtmlUrl":169},"references\u002Fstep-basics.md",1328,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fstep-basics.md",{"path":171,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":172,"sourceHtmlUrl":173},"references\u002Fstep-retries.md",1412,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fstep-retries.md",{"path":175,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":176,"sourceHtmlUrl":177},"references\u002Fstep-transactions.md",1741,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fstep-transactions.md",{"path":179,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":180,"sourceHtmlUrl":181},"references\u002Ftest-fixtures.md",1387,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Ftest-fixtures.md",{"path":183,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":184,"sourceHtmlUrl":185},"references\u002Fworkflow-background.md",1310,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fworkflow-background.md",{"path":187,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":188,"sourceHtmlUrl":189},"references\u002Fworkflow-constraints.md",1676,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fworkflow-constraints.md",{"path":191,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":192,"sourceHtmlUrl":193},"references\u002Fworkflow-control.md",2066,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fworkflow-control.md",{"path":195,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":196,"sourceHtmlUrl":197},"references\u002Fworkflow-determinism.md",1309,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fworkflow-determinism.md",{"path":199,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":200,"sourceHtmlUrl":201},"references\u002Fworkflow-introspection.md",1832,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fworkflow-introspection.md",{"path":203,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":204,"sourceHtmlUrl":205},"references\u002Fworkflow-timeout.md",1435,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fdbos-python\u002Freferences\u002Fworkflow-timeout.md",[207,230,255,265,278,296],{"skillNo":208,"name":209,"nameZh":6,"description":210,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":211,"categories":212,"keywords":218,"publishedAt":39},"01M71ATQRKG48SH06FQ697T5G9","wechat-search","Search WeChat Official Account articles using OpenClaw's web search and fetch capabilities with compliance-focused design.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fwechat-search-release\u002FSKILL.md",[213],{"categoryNo":214,"categoryName":215,"taxonomyType":216,"taxonomyTypeDesc":217},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[219,220,221,222,223,224,225,226,227,228,229,30],"wechat search","wechat","search","capabilities","openclaw","design","web search","compliance","web","official","fetch",{"skillNo":231,"name":232,"nameZh":6,"description":233,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":234,"categories":235,"keywords":236,"publishedAt":39},"01M71ATNAVGZB35PFYM2GC5N00","trend-tap","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend tap', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-tap\u002FSKILL.md",[],[237,238,239,240,241,242,221,243,244,245,246,32,247,248,249,250,251,252,253,254],"trend","trend tap","tap","api keys","Bash","time","trending","hacker","aggregator","do","brew","live","data","google","install","read","across","api",{"skillNo":256,"name":257,"nameZh":6,"description":258,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":259,"categories":260,"keywords":261,"publishedAt":39},"01M71ATJ9AM5KM15AA8PS302EB","trend-radar","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend pulse', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-radar\u002FSKILL.md",[],[262,263,237,247,248,249,250,241,221,252,264,253,254,32,245,244,243,251,242,240],"trend radar","radar","pulse",{"skillNo":266,"name":267,"nameZh":6,"description":268,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":269,"categories":270,"keywords":271,"publishedAt":39},"01M71ATGF095N3EJM9G8SD0BB5","tech-news-daily","每日科技新闻汇——从全球多个 RSS 源抓取最新科技新闻，翻译（英→中）、去重、排版成每日简报。当用户询问科技新闻、科技新鲜事、每日科技、技术动态、Daily Tech News 或类似表达时触发此技能。","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftech-news-daily\u002FSKILL.md",[],[272,273,274,275,276,277],"news","tech","tech news daily","daily","rss","翻译",{"skillNo":279,"name":280,"nameZh":6,"description":281,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":282,"categories":283,"keywords":289,"publishedAt":39},"01M71ATFAEAMQ17M70NQNY7SR8","summarize","Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsummarize\u002FSKILL.md",[284],{"categoryNo":285,"categoryName":286,"taxonomyType":287,"taxonomyTypeDesc":288},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[280,227,290,291,292,30,247,293,25,294,239,295,251],"Audio","cli","youtube","images","files","pdfs",{"skillNo":297,"name":298,"nameZh":6,"description":299,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":300,"categories":301,"keywords":302,"publishedAt":39},"01M71ATDNS3R0M4H936PACQAWZ","sonoscli","Control Sonos speakers (discover\u002Fstatus\u002Fplay\u002Fvolume\u002Fgroup).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsonoscli\u002FSKILL.md",[],[298,303,304,305,251,306,25,307,308,28,309,310],"status","play","go","latest","github","discover","cmd","volume"]