{"owner":"TheAlgorithms","repo":"Go","hasSkills":true,"totalSkillsCount":1,"totalTokensCount":286,"categories":["cursor-rule"],"hasMcp":false,"mcpConfig":null,"found":[".cursorrules (go.mdc)"],"skills":{".cursorrules (go.mdc)":"---\ndescription: \"Idiomatic Go rules. Explicit error handling, interface-based design, context-first concurrency.\"\nglobs: **/*.go\nalwaysApply: false\n---\n# Go Language Rules\n\nExpert Go developer. Simple, explicit, idiomatic.\n\n## Error Handling\n- Always handle errors — never assign to _\n- fmt.Errorf(\"context: %w\", err) for wrapping\n- errors.Is() / errors.As() for checking\n- Custom error types for structured errors\n\n## Naming\n- Short for short-lived vars: i, n, err, ok\n- No stuttering: user.UserID → user.ID\n- Acronyms: userID, httpClient (not userId, httpClient)\n- Interfaces: end in -er (Reader, Writer, Handler)\n\n## Interfaces\n- Accept interfaces, return concrete types\n- Define at call site, not implementation site\n- Single-method interfaces preferred\n\n## Concurrency\n- context.Context first param for blocking functions\n- defer cancel() after context creation\n- WaitGroup for goroutine groups\n- Channels for communication, Mutex for state\n\n## Testing\n- Table-driven: for _, tc := range testCases { t.Run(tc.name, ...) }\n- Interface-based mocking\n\n## Forbidden\n- No _ to ignore errors\n- No init() for business logic\n- No global mutable state\n- No interface{} where generics work\n- No goroutines without termination condition\n"},"files":{".cursorrules (go.mdc)":"---\ndescription: \"Idiomatic Go rules. Explicit error handling, interface-based design, context-first concurrency.\"\nglobs: **/*.go\nalwaysApply: false\n---\n# Go Language Rules\n\nExpert Go developer. Simple, explicit, idiomatic.\n\n## Error Handling\n- Always handle errors — never assign to _\n- fmt.Errorf(\"context: %w\", err) for wrapping\n- errors.Is() / errors.As() for checking\n- Custom error types for structured errors\n\n## Naming\n- Short for short-lived vars: i, n, err, ok\n- No stuttering: user.UserID → user.ID\n- Acronyms: userID, httpClient (not userId, httpClient)\n- Interfaces: end in -er (Reader, Writer, Handler)\n\n## Interfaces\n- Accept interfaces, return concrete types\n- Define at call site, not implementation site\n- Single-method interfaces preferred\n\n## Concurrency\n- context.Context first param for blocking functions\n- defer cancel() after context creation\n- WaitGroup for goroutine groups\n- Channels for communication, Mutex for state\n\n## Testing\n- Table-driven: for _, tc := range testCases { t.Run(tc.name, ...) }\n- Interface-based mocking\n\n## Forbidden\n- No _ to ignore errors\n- No init() for business logic\n- No global mutable state\n- No interface{} where generics work\n- No goroutines without termination condition\n"},"items":[{"name":".cursorrules","path":".cursorrules (go.mdc)","rawUrl":"https://raw.githubusercontent.com/PatrickJS/awesome-cursorrules/main/rules/go.mdc","title":"Awesome Cursorrules: go","category":"cursor-rule","format":"markdown","content":"---\ndescription: \"Idiomatic Go rules. Explicit error handling, interface-based design, context-first concurrency.\"\nglobs: **/*.go\nalwaysApply: false\n---\n# Go Language Rules\n\nExpert Go developer. Simple, explicit, idiomatic.\n\n## Error Handling\n- Always handle errors — never assign to _\n- fmt.Errorf(\"context: %w\", err) for wrapping\n- errors.Is() / errors.As() for checking\n- Custom error types for structured errors\n\n## Naming\n- Short for short-lived vars: i, n, err, ok\n- No stuttering: user.UserID → user.ID\n- Acronyms: userID, httpClient (not userId, httpClient)\n- Interfaces: end in -er (Reader, Writer, Handler)\n\n## Interfaces\n- Accept interfaces, return concrete types\n- Define at call site, not implementation site\n- Single-method interfaces preferred\n\n## Concurrency\n- context.Context first param for blocking functions\n- defer cancel() after context creation\n- WaitGroup for goroutine groups\n- Channels for communication, Mutex for state\n\n## Testing\n- Table-driven: for _, tc := range testCases { t.Run(tc.name, ...) }\n- Interface-based mocking\n\n## Forbidden\n- No _ to ignore errors\n- No init() for business logic\n- No global mutable state\n- No interface{} where generics work\n- No goroutines without termination condition\n","tokens":286,"sizeBytes":1236}],"systemPromptSnippet":"<yakaai_skills repo=\"TheAlgorithms/Go\">\n<!-- File: .cursorrules (go.mdc) (Tokens: ~286 | Category: cursor-rule) -->\n---\ndescription: \"Idiomatic Go rules. Explicit error handling, interface-based design, context-first concurrency.\"\nglobs: **/*.go\nalwaysApply: false\n---\n# Go Language Rules\n\nExpert Go developer. Simple, explicit, idiomatic.\n\n## Error Handling\n- Always handle errors — never assign to _\n- fmt.Errorf(\"context: %w\", err) for wrapping\n- errors.Is() / errors.As() for checking\n- Custom error types for structured errors\n\n## Naming\n- Short for short-lived vars: i, n, err, ok\n- No stuttering: user.UserID → user.ID\n- Acronyms: userID, httpClient (not userId, httpClient)\n- Interfaces: end in -er (Reader, Writer, Handler)\n\n## Interfaces\n- Accept interfaces, return concrete types\n- Define at call site, not implementation site\n- Single-method interfaces preferred\n\n## Concurrency\n- context.Context first param for blocking functions\n- defer cancel() after context creation\n- WaitGroup for goroutine groups\n- Channels for communication, Mutex for state\n\n## Testing\n- Table-driven: for _, tc := range testCases { t.Run(tc.name, ...) }\n- Interface-based mocking\n\n## Forbidden\n- No _ to ignore errors\n- No init() for business logic\n- No global mutable state\n- No interface{} where generics work\n- No goroutines without termination condition\n</yakaai_skills>"}