[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DWM8S0FGK38MK2CW72TMAH":3,"skill-same:01M6DWM8S0FGK38MK2CW72TMAH":95},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":59,"commitSha":60,"skillDirectory":61,"forksCount":62,"repositoryHtmlUrl":63,"repositoryHomepageUrl":64,"ownerHtmlUrl":65,"ownerBlogUrl":66,"ownerDescription":67,"updatedAt":68,"install":69,"resources":82},"01M6DWM8S0FGK38MK2CW72TMAH","programming-go",null,"Idiomatic Go best practices for AI coding agents: architecture, concurrency design, and standard-library-first patterns. Auto-activates in Go projects.","Muvon\u002Foctomind-tap","Muvon","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F25336907?v=4","01M6DWA4KTRX4J73CW5CECKAD0","01M6DWA4QSWFGYE6WDMAMFF1WE",6,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FMuvon\u002Foctomind-tap\u002Fblob\u002Fmaster\u002Fskills\u002Fprogramming-go\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"go","programming go","programming","idiomatic go","design","idiomatic","for","toolchain","go best practices","project","patterns","ai coding","auto","coding","projects","first","concurrency","developer","file","library","golang","best practices","development","ai coding agents","architecture","coding agents","2026-11-10 10:12:30",false,"---\nname: programming-go\ntitle: \"Go Development Best Practices\"\ndescription: \"Idiomatic Go best practices for AI coding agents: architecture, concurrency design, and standard-library-first patterns. Auto-activates in Go projects.\"\nlicense: Apache-2.0\ncompatibility: \"Requires the Go toolchain selected by the project.\"\ndomains: developer\nrules:\n  - file(go.mod)\n  - content(golang)\n---\n\n## Overview\n\nWrite explicit Go with small packages, inspectable errors, and bounded concurrency. As of 2026-10: Go 1.27 is the current stable release (1.27.2 at research time; 1.26 is the other supported line). Read `go.mod`, `go.work`, toolchain directives, build tags, and CI before introducing newer APIs. Use a supported toolchain, but preserve the module's language compatibility unless an upgrade is requested. Recheck official releases when updating this guidance.\n\n## Mental model\n\nKeep control flow and ownership visible. Ordinary functions, structs, and explicit dependency wiring solve most problems. Add an interface, generic abstraction, goroutine, or dependency when it removes a concrete coupling or limitation; don't create infrastructure for hypothetical reuse.\n\n## Recent features and compatibility\n\n| Version | Useful change and boundary |\n|---------|----------------------------|\n| 1.22 | Loop variables declared by the loop have per-iteration semantics; preexisting variables assigned by the loop still share storage. `ServeMux` supports method and wildcard patterns. |\n| 1.23 | Range-over-function iterators and `iter`, `slices`, and `maps` helpers can replace custom collection plumbing. |\n| 1.25 | `sync.WaitGroup.Go` couples task startup with completion accounting; the function must not panic. `testing\u002Fsynctest` supports deterministic concurrent tests. |\n| 1.26 | `new(expr)` allocates an initialized value (handy for optional pointer fields). `errors.AsType[T]` is a typed `errors.As`. `go fix` became a modernizer suite with `\u002F\u002Fgo:fix inline` API migration. Green Tea GC is the default. |\n| 1.27 | Methods may declare type parameters. Interface methods still cannot, and generic methods cannot implement interface methods. Struct-literal keys may be nested field selectors. `encoding\u002Fjson\u002Fv2`, `encoding\u002Fjson\u002Fjsontext`, and `crypto\u002Fmldsa` are stable. `go test` runs the `stdversion` vet check by default. Darwin requires macOS 13+. |\n\nIn Go 1.27, `encoding\u002Fjson` is reimplemented on top of v2: the v1 API and semantics are kept, but error text may differ (`GOEXPERIMENT=nojsonv2` is a temporary opt-out). Calling `encoding\u002Fjson\u002Fv2` directly rejects duplicate object names and invalid UTF-8 by default and changes other wire behavior; test existing payloads before migrating. `simd` and `simd\u002Farchsimd` remain behind `GOEXPERIMENT=simd`; don't treat them as stable APIs.\n\nWhen the task is modernization, run `go fix .\u002F...` on a clean tree and review its diff separately from feature changes. Modernizers are intended to preserve behavior; still run tests afterward.\n\n## Packages, types, and interfaces\n\n- Keep a package cohesive and its exported surface small. `internal\u002F` limits imports to the subtree rooted at its parent directory; it does not mean strictly “same module.” Preserve the existing layout when it serves the task.\n- Define a small interface at the consumer when substitution is needed; don't export an interface for every concrete implementation. Return concrete values unless hiding representation is part of the API.\n- Use generics when the same algorithm works across types. `sync.Pool` is not `sync.Pool[T]`; verify signatures instead of inventing typed variants.\n- Prefer useful zero values where possible; use constructors for required invariants. A typed nil pointer inside an interface is a non-nil interface: return an explicit `nil` on success for `error` results.\n- Treat slices as views over possibly shared storage. Copy before retaining data that the caller may mutate or reuse. Do not copy mutexes, wait groups, or other synchronization values after use.\n\n## Errors and boundaries\n\n- Return errors with operation context; use `%w` when callers should inspect the cause. Check with `errors.Is` or `errors.As`, not error-string matching.\n- Choose exported sentinel or typed errors only for recovery decisions callers need. Wrapping exposes a cause as part of your API; don't expose implementation errors accidentally.\n- Handle or return failures. Log where the request\u002Fjob is finally handled, avoiding duplicate logs at every layer. Don't turn invalid configuration, malformed input, or failed I\u002FO into successful zero values.\n- Close response bodies and files promptly; check write and close errors where they affect durability. Put per-item cleanup in a helper instead of accumulating loop-scoped `defer` calls until a long function exits.\n- Set HTTP timeouts and body limits appropriate to the operation; pass request contexts through network and database calls. Reuse clients and transports.\n\n## Concurrency and lifecycle\n\n- Every goroutine needs an owner, completion\u002Ferror handling, and a way to finish. A `WaitGroup` waits; it does not cancel work. Bound parallel work and queues.\n- Pass `context.Context` explicitly as the first parameter for operations with cancellation\u002Fdeadlines. Don't store request contexts in long-lived structs; call returned cancellation functions to release resources.\n- Choose a mutex for simple shared state and channels for coordination or ownership transfer. The sending owner closes a channel after its final send; multiple producers need coordinated closure.\n- Use `errgroup` when coordinated work needs error propagation and cancellation. Its context only helps if blocking operations observe cancellation.\n\n## Example\n\nPreserve parse errors and reject values outside the domain:\n\n```go\nfunc parseWorkers(raw string) (int, error) {\n\tn, err := strconv.Atoi(raw)\n\tif err != nil {\n\t\treturn 0, fmt.Errorf(\"parse worker count: %w\", err)\n\t}\n\tif n \u003C 1 {\n\t\treturn 0, fmt.Errorf(\"worker count must be positive\")\n\t}\n\treturn n, nil\n}\n```\n\nThis function uses the standard `fmt` and `strconv` packages.\n\n## Checklist\n\n- [ ] Language features and standard-library symbols match the module's declared version.\n- [ ] Errors, nil interfaces, shared slices, cleanup, and cancellation preserve the contract.\n- [ ] New concurrency has bounded work and a defined shutdown path.\n- [ ] When authorized, use project formatting, vet, focused tests, and race tests on supported targets. Exercise invalid inputs and concurrent shutdown; report skipped checks.\n\n## References\n\n- [Release history](https:\u002F\u002Fgo.dev\u002Fdoc\u002Fdevel\u002Frelease), [Go 1.27](https:\u002F\u002Fgo.dev\u002Fdoc\u002Fgo1.27), [Go 1.26](https:\u002F\u002Fgo.dev\u002Fdoc\u002Fgo1.26), and [Go 1.25](https:\u002F\u002Fgo.dev\u002Fdoc\u002Fgo1.25).\n- [Language specification](https:\u002F\u002Fgo.dev\u002Fref\u002Fspec) and [Go code review guidance](https:\u002F\u002Fgo.dev\u002Fwiki\u002FCodeReviewComments).\n- [Context lifecycle](https:\u002F\u002Fpkg.go.dev\u002Fcontext), [synchronization contracts](https:\u002F\u002Fpkg.go.dev\u002Fsync), and [JSON v2](https:\u002F\u002Fpkg.go.dev\u002Fencoding\u002Fjson\u002Fv2).\n","## Overview\n\nWrite explicit Go with small packages, inspectable errors, and bounded concurrency. As of 2026-10: Go 1.27 is the current stable release (1.27.2 at research time; 1.26 is the other supported line). Read `go.mod`, `go.work`, toolchain directives, build tags, and CI before introducing newer APIs. Use a supported toolchain, but preserve the module's language compatibility unless an upgrade is requested. Recheck official releases when updating this guidance.\n\n## Mental model\n\nKeep control flow and ownership visible. Ordinary functions, structs, and explicit dependency wiring solve most problems. Add an interface, generic abstraction, goroutine, or dependency when it removes a concrete coupling or limitation; don't create infrastructure for hypothetical reuse.\n\n## Recent features and compatibility\n\n| Version | Useful change and boundary |\n|---------|----------------------------|\n| 1.22 | Loop variables declared by the loop have per-iteration semantics; preexisting variables assigned by the loop still share storage. `ServeMux` supports method and wildcard patterns. |\n| 1.23 | Range-over-function iterators and `iter`, `slices`, and `maps` helpers can replace custom collection plumbing. |\n| 1.25 | `sync.WaitGroup.Go` couples task startup with completion accounting; the function must not panic. `testing\u002Fsynctest` supports deterministic concurrent tests. |\n| 1.26 | `new(expr)` allocates an initialized value (handy for optional pointer fields). `errors.AsType[T]` is a typed `errors.As`. `go fix` became a modernizer suite with `\u002F\u002Fgo:fix inline` API migration. Green Tea GC is the default. |\n| 1.27 | Methods may declare type parameters. Interface methods still cannot, and generic methods cannot implement interface methods. Struct-literal keys may be nested field selectors. `encoding\u002Fjson\u002Fv2`, `encoding\u002Fjson\u002Fjsontext`, and `crypto\u002Fmldsa` are stable. `go test` runs the `stdversion` vet check by default. Darwin requires macOS 13+. |\n\nIn Go 1.27, `encoding\u002Fjson` is reimplemented on top of v2: the v1 API and semantics are kept, but error text may differ (`GOEXPERIMENT=nojsonv2` is a temporary opt-out). Calling `encoding\u002Fjson\u002Fv2` directly rejects duplicate object names and invalid UTF-8 by default and changes other wire behavior; test existing payloads before migrating. `simd` and `simd\u002Farchsimd` remain behind `GOEXPERIMENT=simd`; don't treat them as stable APIs.\n\nWhen the task is modernization, run `go fix .\u002F...` on a clean tree and review its diff separately from feature changes. Modernizers are intended to preserve behavior; still run tests afterward.\n\n## Packages, types, and interfaces\n\n- Keep a package cohesive and its exported surface small. `internal\u002F` limits imports to the subtree rooted at its parent directory; it does not mean strictly “same module.” Preserve the existing layout when it serves the task.\n- Define a small interface at the consumer when substitution is needed; don't export an interface for every concrete implementation. Return concrete values unless hiding representation is part of the API.\n- Use generics when the same algorithm works across types. `sync.Pool` is not `sync.Pool[T]`; verify signatures instead of inventing typed variants.\n- Prefer useful zero values where possible; use constructors for required invariants. A typed nil pointer inside an interface is a non-nil interface: return an explicit `nil` on success for `error` results.\n- Treat slices as views over possibly shared storage. Copy before retaining data that the caller may mutate or reuse. Do not copy mutexes, wait groups, or other synchronization values after use.\n\n## Errors and boundaries\n\n- Return errors with operation context; use `%w` when callers should inspect the cause. Check with `errors.Is` or `errors.As`, not error-string matching.\n- Choose exported sentinel or typed errors only for recovery decisions callers need. Wrapping exposes a cause as part of your API; don't expose implementation errors accidentally.\n- Handle or return failures. Log where the request\u002Fjob is finally handled, avoiding duplicate logs at every layer. Don't turn invalid configuration, malformed input, or failed I\u002FO into successful zero values.\n- Close response bodies and files promptly; check write and close errors where they affect durability. Put per-item cleanup in a helper instead of accumulating loop-scoped `defer` calls until a long function exits.\n- Set HTTP timeouts and body limits appropriate to the operation; pass request contexts through network and database calls. Reuse clients and transports.\n\n## Concurrency and lifecycle\n\n- Every goroutine needs an owner, completion\u002Ferror handling, and a way to finish. A `WaitGroup` waits; it does not cancel work. Bound parallel work and queues.\n- Pass `context.Context` explicitly as the first parameter for operations with cancellation\u002Fdeadlines. Don't store request contexts in long-lived structs; call returned cancellation functions to release resources.\n- Choose a mutex for simple shared state and channels for coordination or ownership transfer. The sending owner closes a channel after its final send; multiple producers need coordinated closure.\n- Use `errgroup` when coordinated work needs error propagation and cancellation. Its context only helps if blocking operations observe cancellation.\n\n## Example\n\nPreserve parse errors and reject values outside the domain:\n\n```go\nfunc parseWorkers(raw string) (int, error) {\n\tn, err := strconv.Atoi(raw)\n\tif err != nil {\n\t\treturn 0, fmt.Errorf(\"parse worker count: %w\", err)\n\t}\n\tif n \u003C 1 {\n\t\treturn 0, fmt.Errorf(\"worker count must be positive\")\n\t}\n\treturn n, nil\n}\n```\n\nThis function uses the standard `fmt` and `strconv` packages.\n\n## Checklist\n\n- [ ] Language features and standard-library symbols match the module's declared version.\n- [ ] Errors, nil interfaces, shared slices, cleanup, and cancellation preserve the contract.\n- [ ] New concurrency has bounded work and a defined shutdown path.\n- [ ] When authorized, use project formatting, vet, focused tests, and race tests on supported targets. Exercise invalid inputs and concurrent shutdown; report skipped checks.\n\n## References\n\n- [Release history](https:\u002F\u002Fgo.dev\u002Fdoc\u002Fdevel\u002Frelease), [Go 1.27](https:\u002F\u002Fgo.dev\u002Fdoc\u002Fgo1.27), [Go 1.26](https:\u002F\u002Fgo.dev\u002Fdoc\u002Fgo1.26), and [Go 1.25](https:\u002F\u002Fgo.dev\u002Fdoc\u002Fgo1.25).\n- [Language specification](https:\u002F\u002Fgo.dev\u002Fref\u002Fspec) and [Go code review guidance](https:\u002F\u002Fgo.dev\u002Fwiki\u002FCodeReviewComments).\n- [Context lifecycle](https:\u002F\u002Fpkg.go.dev\u002Fcontext), [synchronization contracts](https:\u002F\u002Fpkg.go.dev\u002Fsync), and [JSON v2](https:\u002F\u002Fpkg.go.dev\u002Fencoding\u002Fjson\u002Fv2).\n",{"name":5,"rules":54,"title":57,"domains":40,"license":14,"description":7,"compatibility":58},[55,56],"file(go.mod)","content(golang)","Go Development Best Practices","Requires the Go toolchain selected by the project.","master","207c8f9fd7bec89cbd999d5ad65c886b20b7430a","skills\u002Fprogramming-go",0,"https:\u002F\u002Fgithub.com\u002FMuvon\u002Foctomind-tap","https:\u002F\u002Foctomind.run\u002Ftap\u002F","https:\u002F\u002Fgithub.com\u002FMuvon","https:\u002F\u002Fmuvon.io","We bring ideas to life","2026-11-14 13:21:16",{"source":8,"skillName":5,"commands":70,"prompt":80,"zipAvailable":81},[71,74,77],{"tool":72,"command":73},"npx","npx skills add Muvon\u002Foctomind-tap --skill programming-go",{"tool":75,"command":76},"bunx","bunx skills add Muvon\u002Foctomind-tap --skill programming-go",{"tool":78,"command":79},"pnpm","pnpm dlx skills add Muvon\u002Foctomind-tap --skill programming-go","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FMuvon\u002Foctomind-tap\u002Fblob\u002Fmaster\u002Fskills\u002Fprogramming-go\u002FSKILL.md",true,[83,89],{"path":84,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":88},"scripts\u002Ffull-page-screenshot.mjs","SCRIPT","脚本",35910,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002Fengineering\u002Fskills\u002Ffull-page-screenshot\u002Fscripts\u002Ffull-page-screenshot.mjs",{"path":90,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":93,"sourceHtmlUrl":94},"validate","OTHER","其他",80,"https:\u002F\u002Fgithub.com\u002FMuvon\u002Foctomind-tap\u002Fblob\u002Fmaster\u002Fskills\u002Fprogramming-go\u002Fvalidate",[96,134,161,181,205,231],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":113,"publishedAt":49},"01M70SFC5CTHRKA9B97N1ARVZ2","seo-content-refresh","Finds decaying pages, picks update, merge, redirect or remove, and briefs each refresh. Use to prioritize existing content and judge whether it helped.","https:\u002F\u002Fgithub.com\u002FMuvon\u002Foctomind-tap\u002Fblob\u002Fmaster\u002Fskills\u002Fseo-content-refresh\u002FSKILL.md",[102,107,110],{"categoryNo":103,"categoryName":104,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000019","营销推广","SCENARIO","使用场景",{"categoryNo":108,"categoryName":109,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000035","市场营销",{"categoryNo":111,"categoryName":112,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000036","内容创作者",[114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133],"seo content refresh","seo","seo content","content refresh","refresh","content","posts","remove","web search","performance","search","traffic","access","drop","websearch","revamp","merge","diagnosis","update","decay",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":142,"publishedAt":49},"01M70SBWQCHGH7HGS51Y0GTKKW","marketing-review-program","Plans how to ask real customers for honest public reviews: site choice, invitation copy, incentive and disclosure rules. Use to start a review program.","https:\u002F\u002Fgithub.com\u002FMuvon\u002Foctomind-tap\u002Fblob\u002Fmaster\u002Fskills\u002Fmarketing-review-program\u002FSKILL.md",[140,141],{"categoryNo":103,"categoryName":104,"taxonomyType":105,"taxonomyTypeDesc":106},{"categoryNo":108,"categoryName":109,"taxonomyType":20,"taxonomyTypeDesc":21},[143,144,145,146,147,148,122,124,149,150,151,152,153,154,155,156,157,158,159,160],"program","review","marketing review program","marketing","reviews","get","campaign","choice","how to","only","generated","ask","plan","product","generate","customer","how","request",{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":165,"categories":166,"keywords":167,"publishedAt":49},"01M70SBB65Z2FC71Q7DEAXGJBG","geo-source-actions","Turns AI citation findings into ranked per-source actions for Reddit threads, listicles, review sites and videos. Records only. Use after a GEO audit.","https:\u002F\u002Fgithub.com\u002FMuvon\u002Foctomind-tap\u002Fblob\u002Fmaster\u002Fskills\u002Fgeo-source-actions\u002FSKILL.md",[],[168,169,170,171,172,148,122,124,173,174,152,128,144,175,176,177,156,178,179,180],"actions","geo source actions","source","geo","sources","copilot","domains","llms","threads","youtube","audit","action","data",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":190,"publishedAt":49},"01M70S99D3Y6GF097GTXWBXHPW","commerce-ai-readiness","Audits product feeds, markup and live pages for AI shopping assistants, then lists exact fixes. Use to make a store catalog readable to AI shoppers.","https:\u002F\u002Fgithub.com\u002FMuvon\u002Foctomind-tap\u002Fblob\u002Fmaster\u002Fskills\u002Fcommerce-ai-readiness\u002FSKILL.md",[187],{"categoryNo":188,"categoryName":189,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000031","产品经理",[191,192,193,194,195,196,197,198,199,200,124,201,173,152,126,202,203,156,178,204],"ai readiness","commerce ai readiness","commerce","readiness","feeds","ready","show","shopping","discover","checkout","up","ecommerce","documentation","recommend",{"skillNo":206,"name":207,"nameZh":6,"description":208,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":209,"categories":210,"keywords":214,"publishedAt":49},"01M6DWSX45J42KTK6XASKJRGPA","tap-model-training","Train, evaluate and publish the octomind-embed model behind capability auto-activation. Use when capability triggers or skill semantic() phrases change.","https:\u002F\u002Fgithub.com\u002FMuvon\u002Foctomind-tap\u002Fblob\u002Fmaster\u002Fskills\u002Ftap-model-training\u002FSKILL.md",[211],{"categoryNo":212,"categoryName":213,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000023","Skill与智能体开发",[215,216,217,218,219,201,220,221,35,222,223,224,225,226,227,159,228,229,230,132],"model","training","tap","tap model training","scope","eval","uv","dataset","activate","api","capabilities","publish","change","embedding","re","when",{"skillNo":232,"name":233,"nameZh":6,"description":234,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":235,"categories":236,"keywords":238,"publishedAt":49},"01M6DWSQB7NSW53Z86XM81R1W1","tap-deps-authoring","Write dep scripts for the octomind-tap registry: header comments, platform.sh, mcp vs dep types, npx\u002Fuvx pattern. Use when editing deps\u002F\u003Corg>\u002F\u003Ctool>.sh.","https:\u002F\u002Fgithub.com\u002FMuvon\u002Foctomind-tap\u002Fblob\u002Fmaster\u002Fskills\u002Ftap-deps-authoring\u002FSKILL.md",[237],{"categoryNo":212,"categoryName":213,"taxonomyType":105,"taxonomyTypeDesc":106},[239,217,240,241,242,243,244,245,246,247,248,249,250,251,252,253,230,254,255,29],"deps","tap deps authoring","authoring","DEP","MCP","run","scripts","pattern","install","registry","platform","repo","editing","tool","types","write","org"]