[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7B4CC3D3SY46YTM2F7F1JS7":3,"skill-same:01M7B4CC3D3SY46YTM2F7F1JS7":61},{"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":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":30,"ownerDescription":31,"updatedAt":32,"install":33,"resources":46},"01M7B4CC3D3SY46YTM2F7F1JS7","api-feature",null,"Implement new backend features following Clean Architecture. Use for tasks involving new endpoints, use cases, entities, repositories, or application-layer changes.","irosadie\u002Fopen-state","irosadie","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F25891018?v=4","01M6D9VT1T5RGGX753ARTN5J8N","Imron Rosadi","01M7B4C1HZ5R8XE60RF7GDHD9K",3,"MIT","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-state\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fapi-feature\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: api-feature\ndescription: Implement new backend features following Clean Architecture. Use for tasks involving new endpoints, use cases, entities, repositories, or application-layer changes.\n---\n\n# Skill: API Feature\n\n## Context (Required)\n- Folder scope + code examples: `references\u002Fcontext.md`\n- Execution checklist: `templates\u002Fchecklist.md`\n\nImplement backend features professionally, following Clean Architecture.\n\n## Workflow\n\n1. Read the API contract or requirement provided.\n\n2. Read the guide for **each folder** before creating files there:\n   - `.agents\u002Fguides\u002Fapi-dto.md`\n   - `.agents\u002Fguides\u002Fapi-entity.md`\n   - `.agents\u002Fguides\u002Fapi-repository.md`\n   - `.agents\u002Fguides\u002Fapi-usecase.md`\n   - `.agents\u002Fguides\u002Fapi-service.md`\n   - `.agents\u002Fguides\u002Fapi-db-repository.md`\n   - `.agents\u002Fguides\u002Fapi-controller.md`\n   - `.agents\u002Fguides\u002Fapi-route.md`\n   - `.agents\u002Fguides\u002Fapi-error.md`\n\n3. Create files **in order** by layer dependency:\n   ```\n   1. internal\u002Fapplication\u002Fdtos\u002F{domain}.go\n   2. internal\u002Fdomain\u002Fentities\u002F{domain}.go\n   3. internal\u002Fdomain\u002Frepositories\u002Fi_{domain}_repository.go\n   4. internal\u002Fdomain\u002Fuse-cases\u002F{verb}_{domain}.go   (one per operation)\n   5. internal\u002Fapplication\u002Fservices\u002F{domain}_service.go\n   6. internal\u002Finfrastructure\u002Fdatabase\u002Fpgx_{domain}_repository.go\n   7. internal\u002Finterfaces\u002Fhttp\u002Fcontrollers\u002F{domain}_controller.go\n   8. internal\u002Finterfaces\u002Fhttp\u002Froutes\u002Froutes.go       (register new routes)\n   9. db\u002Fqueries\u002F{domain}.sql                         (sqlc query file)\n   10. Run: sqlc generate\n   ```\n\n4. Error handling — do not catch in Service or Controller:\n   ```\n   UseCase returns DomainError → Echo ErrorHandler middleware\n   ```\n\n## Prohibitions\n\n- **NEVER** use `interface{}` or `any` without explicit justification.\n- **NEVER** put business logic in the Controller.\n- **NEVER** access the database directly in a Use Case — go through repository interface.\n- **NEVER** return `echo.HTTPError` from a Use Case — use `domain.DomainError` from `packages\u002Fgo-shared`.\n- **NEVER** change files unrelated to the task.\n- **NEVER** use plain `string` for fields with a fixed value set — define as typed Go constant.\n- **NEVER** edit sqlc-generated files in `internal\u002Finfrastructure\u002Fdb\u002F` — regenerate instead.\n\n## Pre-Completion Checklist\n\n- [ ] DTO created\n- [ ] Entity created\n- [ ] Repository interface created\n- [ ] Use case(s) created (one per operation)\n- [ ] Service created\n- [ ] sqlc query file created and `sqlc generate` run\n- [ ] pgx repository implementation created\n- [ ] Controller created\n- [ ] Route registered in `routes.go`\n- [ ] No `interface{}` \u002F `any` without justification\n- [ ] No business logic in Controller\n- [ ] No DB access in Use Case\n- [ ] `go build .\u002F...` passes\n- [ ] All files end with a newline (EOF)\n","# Skill: API Feature\n\n## Context (Required)\n- Folder scope + code examples: `references\u002Fcontext.md`\n- Execution checklist: `templates\u002Fchecklist.md`\n\nImplement backend features professionally, following Clean Architecture.\n\n## Workflow\n\n1. Read the API contract or requirement provided.\n\n2. Read the guide for **each folder** before creating files there:\n   - `.agents\u002Fguides\u002Fapi-dto.md`\n   - `.agents\u002Fguides\u002Fapi-entity.md`\n   - `.agents\u002Fguides\u002Fapi-repository.md`\n   - `.agents\u002Fguides\u002Fapi-usecase.md`\n   - `.agents\u002Fguides\u002Fapi-service.md`\n   - `.agents\u002Fguides\u002Fapi-db-repository.md`\n   - `.agents\u002Fguides\u002Fapi-controller.md`\n   - `.agents\u002Fguides\u002Fapi-route.md`\n   - `.agents\u002Fguides\u002Fapi-error.md`\n\n3. Create files **in order** by layer dependency:\n   ```\n   1. internal\u002Fapplication\u002Fdtos\u002F{domain}.go\n   2. internal\u002Fdomain\u002Fentities\u002F{domain}.go\n   3. internal\u002Fdomain\u002Frepositories\u002Fi_{domain}_repository.go\n   4. internal\u002Fdomain\u002Fuse-cases\u002F{verb}_{domain}.go   (one per operation)\n   5. internal\u002Fapplication\u002Fservices\u002F{domain}_service.go\n   6. internal\u002Finfrastructure\u002Fdatabase\u002Fpgx_{domain}_repository.go\n   7. internal\u002Finterfaces\u002Fhttp\u002Fcontrollers\u002F{domain}_controller.go\n   8. internal\u002Finterfaces\u002Fhttp\u002Froutes\u002Froutes.go       (register new routes)\n   9. db\u002Fqueries\u002F{domain}.sql                         (sqlc query file)\n   10. Run: sqlc generate\n   ```\n\n4. Error handling — do not catch in Service or Controller:\n   ```\n   UseCase returns DomainError → Echo ErrorHandler middleware\n   ```\n\n## Prohibitions\n\n- **NEVER** use `interface{}` or `any` without explicit justification.\n- **NEVER** put business logic in the Controller.\n- **NEVER** access the database directly in a Use Case — go through repository interface.\n- **NEVER** return `echo.HTTPError` from a Use Case — use `domain.DomainError` from `packages\u002Fgo-shared`.\n- **NEVER** change files unrelated to the task.\n- **NEVER** use plain `string` for fields with a fixed value set — define as typed Go constant.\n- **NEVER** edit sqlc-generated files in `internal\u002Finfrastructure\u002Fdb\u002F` — regenerate instead.\n\n## Pre-Completion Checklist\n\n- [ ] DTO created\n- [ ] Entity created\n- [ ] Repository interface created\n- [ ] Use case(s) created (one per operation)\n- [ ] Service created\n- [ ] sqlc query file created and `sqlc generate` run\n- [ ] pgx repository implementation created\n- [ ] Controller created\n- [ ] Route registered in `routes.go`\n- [ ] No `interface{}` \u002F `any` without justification\n- [ ] No business logic in Controller\n- [ ] No DB access in Use Case\n- [ ] `go build .\u002F...` passes\n- [ ] All files end with a newline (EOF)\n",{"name":5,"description":7},"main","e060e2bbccd2807300ada8189e092b68718e0359",".agents\u002Fskills\u002Fapi-feature",0,"https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-state","https:\u002F\u002Fgithub.com\u002Firosadie","http:\u002F\u002Fimronrosadi.com","The Hatless Engineer 👨‍💻","2026-09-06 12:39:29",{"source":8,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add irosadie\u002Fopen-state --skill api-feature",{"tool":39,"command":40},"bunx","bunx skills add irosadie\u002Fopen-state --skill api-feature",{"tool":42,"command":43},"pnpm","pnpm dlx skills add irosadie\u002Fopen-state --skill api-feature","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-state\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fapi-feature\u002FSKILL.md",true,[47,53,57],{"path":48,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":51,"sourceHtmlUrl":52},"agents\u002Fopenai.yaml","REFERENCE","参考文档",300,"https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-state\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fapi-feature\u002Fagents\u002Fopenai.yaml",{"path":54,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":55,"sourceHtmlUrl":56},"references\u002Fcontext.md",3489,"https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-state\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fapi-feature\u002Freferences\u002Fcontext.md",{"path":58,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":59,"sourceHtmlUrl":60},"templates\u002Fchecklist.md",1009,"https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-state\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fapi-feature\u002Ftemplates\u002Fchecklist.md",[62,69,76,83,90,97],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":19},"01M7B4H1NMAN0SQQ767BJNSA53","web-slicing","Convert screenshot\u002FFigma designs into pixel-perfect frontend UI with reusable components. Use when the task focuses on visual and layout implementation.","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-state\u002Fblob\u002Fmain\u002F.opencode\u002Fskill\u002Fweb-slicing\u002FSKILL.md",[],[],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":19},"01M7B4GZ1FCD08JC4YZ7H7ZARH","web-seo-geo-friendly","Optimize public Next.js App Router pages for SEO and GEO (Generative Engine Optimization). Use when the user explicitly requests SEO\u002FGEO optimization on public pages.","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-state\u002Fblob\u002Fmain\u002F.opencode\u002Fskill\u002Fweb-seo-geo-friendly\u002FSKILL.md",[],[],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":19},"01M7B4GWT5RGPSW001QN2757QV","web-code-review","Review frontend code with a firm senior-lead standard, focusing on bugs, regressions, architecture risks, and test gaps in apps\u002Fweb and the shared contracts the frontend depends on.","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-state\u002Fblob\u002Fmain\u002F.opencode\u002Fskill\u002Fweb-code-review\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":19},"01M7B4GTKEZZ7DFNA0X6BBY3A2","web-bugfix","Fix frontend bugs with minimum-touch changes, keep other surfaces stable, and sync schema, types, hooks, constants, tests, and related docs when impacted.","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-state\u002Fblob\u002Fmain\u002F.opencode\u002Fskill\u002Fweb-bugfix\u002FSKILL.md",[],[],{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":19},"01M7B4GR96WPQTF2V2KXVR7P9W","web-api-integrated","Integrate API endpoints into the frontend with Zod schemas, response types, constants, and react-query hooks. Use when implementing endpoints from an API contract, Postman, or Swagger.","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-state\u002Fblob\u002Fmain\u002F.opencode\u002Fskill\u002Fweb-api-integrated\u002FSKILL.md",[],[],{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":19},"01M7B4GNDTB3T51TP737R07VQS","skill-creator","Create a new skill from scratch with full structure — SKILL.md, references, templates, openai.yaml, Claude\u002FOpenCode wrappers, and registration in manifest + AGENTS.md + CLAUDE.md.","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-state\u002Fblob\u002Fmain\u002F.opencode\u002Fskill\u002Fskill-creator\u002FSKILL.md",[],[]]