[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M718DN4QBSCJN1M8EJC8MA36":3,"skill-same:01M718DN4QBSCJN1M8EJC8MA36":196},{"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},"01M718DN4QBSCJN1M8EJC8MA36","dbos-golang",null,"Guide for building reliable, fault-tolerant Go applications with DBOS durable workflows. Use when adding DBOS to existing Go 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\u002Fglobal\u002Fdbos-golang\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"golang","dbos golang","guide","docs","queues","go","safe","https","2026","concurrency","control","with","code","when","workflows","Existing","use","dev","applications","for","2026-11-10 10:12:30",false,"---\nname: dbos-golang\ndescription: \"Guide for building reliable, fault-tolerant Go applications with DBOS durable workflows. Use when adding DBOS to existing Go 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 Go Best Practices\n\nGuide for building reliable, fault-tolerant Go applications with DBOS durable workflows.\n\n## When to Use\nReference these guidelines when:\n- Adding DBOS to existing Go 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 the DBOS Client 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### Installation\n\nInstall the DBOS Go module:\n\n```bash\ngo get github.com\u002Fdbos-inc\u002Fdbos-transact-golang\u002Fdbos@latest\n```\n\n### DBOS Configuration and Launch\n\nA DBOS application MUST create a context, register workflows, and launch before running any workflows:\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"log\"\n\t\"os\"\n\t\"time\"\n\n\t\"github.com\u002Fdbos-inc\u002Fdbos-transact-golang\u002Fdbos\"\n)\n\nfunc main() {\n\tctx, err := dbos.NewDBOSContext(context.Background(), dbos.Config{\n\t\tAppName:     \"my-app\",\n\t\tDatabaseURL: os.Getenv(\"DBOS_SYSTEM_DATABASE_URL\"),\n\t})\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tdefer dbos.Shutdown(ctx, 30*time.Second)\n\n\tdbos.RegisterWorkflow(ctx, myWorkflow)\n\n\tif err := dbos.Launch(ctx); err != nil {\n\t\tlog.Fatal(err)\n\t}\n}\n```\n\n### Workflow and Step Structure\n\nWorkflows are comprised of steps. Any function performing complex operations or accessing external services must be run as a step using `dbos.RunAsStep`:\n\n```go\nfunc fetchData(ctx context.Context) (string, error) {\n\tresp, err := http.Get(\"https:\u002F\u002Fapi.example.com\u002Fdata\")\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tdefer resp.Body.Close()\n\tbody, _ := io.ReadAll(resp.Body)\n\treturn string(body), nil\n}\n\nfunc myWorkflow(ctx dbos.DBOSContext, input string) (string, error) {\n\tresult, err := dbos.RunAsStep(ctx, fetchData, dbos.WithStepName(\"fetchData\"))\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn result, nil\n}\n```\n\n### Key Constraints\n\n- Do NOT start or enqueue workflows from within steps\n- Do NOT use uncontrolled goroutines to start workflows - use `dbos.RunWorkflow` with queues or `dbos.Go`\u002F`dbos.Select` for concurrent steps\n- Workflows MUST be deterministic - non-deterministic operations go in steps\n- Do NOT modify global variables from workflows or steps\n- All workflows and queues MUST be registered before calling `Launch()`\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-golang\n","# DBOS Go Best Practices\n\nGuide for building reliable, fault-tolerant Go applications with DBOS durable workflows.\n\n## When to Use\nReference these guidelines when:\n- Adding DBOS to existing Go 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 the DBOS Client 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### Installation\n\nInstall the DBOS Go module:\n\n```bash\ngo get github.com\u002Fdbos-inc\u002Fdbos-transact-golang\u002Fdbos@latest\n```\n\n### DBOS Configuration and Launch\n\nA DBOS application MUST create a context, register workflows, and launch before running any workflows:\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"log\"\n\t\"os\"\n\t\"time\"\n\n\t\"github.com\u002Fdbos-inc\u002Fdbos-transact-golang\u002Fdbos\"\n)\n\nfunc main() {\n\tctx, err := dbos.NewDBOSContext(context.Background(), dbos.Config{\n\t\tAppName:     \"my-app\",\n\t\tDatabaseURL: os.Getenv(\"DBOS_SYSTEM_DATABASE_URL\"),\n\t})\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tdefer dbos.Shutdown(ctx, 30*time.Second)\n\n\tdbos.RegisterWorkflow(ctx, myWorkflow)\n\n\tif err := dbos.Launch(ctx); err != nil {\n\t\tlog.Fatal(err)\n\t}\n}\n```\n\n### Workflow and Step Structure\n\nWorkflows are comprised of steps. Any function performing complex operations or accessing external services must be run as a step using `dbos.RunAsStep`:\n\n```go\nfunc fetchData(ctx context.Context) (string, error) {\n\tresp, err := http.Get(\"https:\u002F\u002Fapi.example.com\u002Fdata\")\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tdefer resp.Body.Close()\n\tbody, _ := io.ReadAll(resp.Body)\n\treturn string(body), nil\n}\n\nfunc myWorkflow(ctx dbos.DBOSContext, input string) (string, error) {\n\tresult, err := dbos.RunAsStep(ctx, fetchData, dbos.WithStepName(\"fetchData\"))\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn result, nil\n}\n```\n\n### Key Constraints\n\n- Do NOT start or enqueue workflows from within steps\n- Do NOT use uncontrolled goroutines to start workflows - use `dbos.RunWorkflow` with queues or `dbos.Go`\u002F`dbos.Select` for concurrent steps\n- Workflows MUST be deterministic - non-deterministic operations go in steps\n- Do NOT modify global variables from workflows or steps\n- All workflows and queues MUST be registered before calling `Launch()`\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-golang\n",{"name":5,"risk":25,"source":44,"date_added":45,"description":7},"https:\u002F\u002Fdocs.dbos.dev\u002F","2026-02-27","main","7a38d8e7073e61c16eda85681cb32fb68a8657a5","skills-store\u002Fglobal\u002Fdbos-golang","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-golang",{"tool":58,"command":59},"bunx","bunx skills add sapsapshen\u002Fai-memory-router --skill dbos-golang",{"tool":61,"command":62},"pnpm","pnpm dlx skills add sapsapshen\u002Fai-memory-router --skill dbos-golang","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002FSKILL.md",true,[66,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"AGENTS.md","REFERENCE","参考文档",2641,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\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\u002Fglobal\u002Fdbos-golang\u002FCLAUDE.md",{"path":77,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002F_sections.md",1444,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002F_sections.md",{"path":81,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002Fadvanced-patching.md",2894,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fadvanced-patching.md",{"path":85,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002Fadvanced-versioning.md",1880,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fadvanced-versioning.md",{"path":89,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":90,"sourceHtmlUrl":91},"references\u002Fclient-enqueue.md",2077,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fclient-enqueue.md",{"path":93,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":94,"sourceHtmlUrl":95},"references\u002Fclient-setup.md",1965,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fclient-setup.md",{"path":97,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":98,"sourceHtmlUrl":99},"references\u002Fcomm-events.md",2238,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fcomm-events.md",{"path":101,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":102,"sourceHtmlUrl":103},"references\u002Fcomm-messages.md",1986,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fcomm-messages.md",{"path":105,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":106,"sourceHtmlUrl":107},"references\u002Fcomm-streaming.md",2309,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fcomm-streaming.md",{"path":109,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":110,"sourceHtmlUrl":111},"references\u002Flifecycle-config.md",2064,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Flifecycle-config.md",{"path":113,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":114,"sourceHtmlUrl":115},"references\u002Fpattern-debouncing.md",1761,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fpattern-debouncing.md",{"path":117,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":118,"sourceHtmlUrl":119},"references\u002Fpattern-idempotency.md",1967,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fpattern-idempotency.md",{"path":121,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":122,"sourceHtmlUrl":123},"references\u002Fpattern-scheduled.md",2047,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fpattern-scheduled.md",{"path":125,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":126,"sourceHtmlUrl":127},"references\u002Fpattern-sleep.md",1467,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fpattern-sleep.md",{"path":129,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":130,"sourceHtmlUrl":131},"references\u002Fqueue-basics.md",1404,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fqueue-basics.md",{"path":133,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":134,"sourceHtmlUrl":135},"references\u002Fqueue-concurrency.md",1460,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fqueue-concurrency.md",{"path":137,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":138,"sourceHtmlUrl":139},"references\u002Fqueue-deduplication.md",1601,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fqueue-deduplication.md",{"path":141,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":142,"sourceHtmlUrl":143},"references\u002Fqueue-listening.md",1332,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fqueue-listening.md",{"path":145,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":146,"sourceHtmlUrl":147},"references\u002Fqueue-partitioning.md",1314,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fqueue-partitioning.md",{"path":149,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":150,"sourceHtmlUrl":151},"references\u002Fqueue-priority.md",1221,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fqueue-priority.md",{"path":153,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":154,"sourceHtmlUrl":155},"references\u002Fqueue-rate-limiting.md",1241,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fqueue-rate-limiting.md",{"path":157,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":158,"sourceHtmlUrl":159},"references\u002Fstep-basics.md",2353,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fstep-basics.md",{"path":161,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":162,"sourceHtmlUrl":163},"references\u002Fstep-concurrency.md",2419,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fstep-concurrency.md",{"path":165,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":166,"sourceHtmlUrl":167},"references\u002Fstep-retries.md",2069,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fstep-retries.md",{"path":169,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":170,"sourceHtmlUrl":171},"references\u002Ftest-setup.md",2311,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Ftest-setup.md",{"path":173,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":174,"sourceHtmlUrl":175},"references\u002Fworkflow-background.md",1598,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fworkflow-background.md",{"path":177,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":178,"sourceHtmlUrl":179},"references\u002Fworkflow-constraints.md",2081,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fworkflow-constraints.md",{"path":181,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":182,"sourceHtmlUrl":183},"references\u002Fworkflow-control.md",1692,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fworkflow-control.md",{"path":185,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":186,"sourceHtmlUrl":187},"references\u002Fworkflow-determinism.md",1499,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fworkflow-determinism.md",{"path":189,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":190,"sourceHtmlUrl":191},"references\u002Fworkflow-introspection.md",1865,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fworkflow-introspection.md",{"path":193,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":194,"sourceHtmlUrl":195},"references\u002Fworkflow-timeout.md",1324,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fdbos-golang\u002Freferences\u002Fworkflow-timeout.md",[197,220,245,255,268,286],{"skillNo":198,"name":199,"nameZh":6,"description":200,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":201,"categories":202,"keywords":208,"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",[203],{"categoryNo":204,"categoryName":205,"taxonomyType":206,"taxonomyTypeDesc":207},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[209,210,211,212,213,214,215,216,217,218,219,30],"wechat search","wechat","search","capabilities","openclaw","design","web search","compliance","web","official","fetch",{"skillNo":221,"name":222,"nameZh":6,"description":223,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":224,"categories":225,"keywords":226,"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",[],[227,228,229,230,231,232,211,233,234,235,236,32,237,238,239,240,241,242,243,244],"trend","trend tap","tap","api keys","Bash","time","trending","hacker","aggregator","do","brew","live","data","google","install","read","across","api",{"skillNo":246,"name":247,"nameZh":6,"description":248,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":249,"categories":250,"keywords":251,"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",[],[252,253,227,237,238,239,240,231,211,242,254,243,244,32,235,234,233,241,232,230],"trend radar","radar","pulse",{"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},"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",[],[262,263,264,265,266,267],"news","tech","tech news daily","daily","rss","翻译",{"skillNo":269,"name":270,"nameZh":6,"description":271,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":272,"categories":273,"keywords":279,"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",[274],{"categoryNo":275,"categoryName":276,"taxonomyType":277,"taxonomyTypeDesc":278},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[270,217,280,281,282,30,237,283,26,284,229,285,241],"Audio","cli","youtube","images","files","pdfs",{"skillNo":287,"name":288,"nameZh":6,"description":289,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":290,"categories":291,"keywords":292,"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",[],[288,293,294,24,241,295,26,296,297,29,298,299],"status","play","latest","github","discover","cmd","volume"]