[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7DN0YAKVHC1ARFSKB8PR1KT":3,"skill-same:01M7DN0YAKVHC1ARFSKB8PR1KT":53},{"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":14,"repositoryHtmlUrl":27,"repositoryHomepageUrl":28,"ownerHtmlUrl":29,"ownerBlogUrl":30,"ownerDescription":31,"updatedAt":32,"install":33,"resources":46},"01M7DN0YAKVHC1ARFSKB8PR1KT","jooq-query-review",null,"Review jOOQ queries for correctness, index use and generated-code drift. Use when repository or query classes using jOOQ change.","acltabontabon\u002Fhabi","acltabontabon","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F22125272?v=4","01M7DN0ARKS33GM88ZE9DJZMYA","Alvin Cris Tabontabon","01M7DN0AS40Y48Y9JFECSPXST6",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Facltabontabon\u002Fhabi\u002Fblob\u002Fmain\u002Ffixtures\u002Flibraries\u002Fexample-team-library\u002Fskills\u002Fjooq-query-review\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: jooq-query-review\ndescription: Review jOOQ queries for correctness, index use and generated-code drift. Use when repository or query classes using jOOQ change.\n---\n\n# jOOQ query review\n\n- Prefer generated table references over string SQL.\n- Check that the generated code was regenerated after schema changes.\n- Watch for missing `LIMIT` on list endpoints and unbounded `IN` lists.\n- Use `fetchOptional`\u002F`fetchOne` semantics deliberately.\n","# jOOQ query review\n\n- Prefer generated table references over string SQL.\n- Check that the generated code was regenerated after schema changes.\n- Watch for missing `LIMIT` on list endpoints and unbounded `IN` lists.\n- Use `fetchOptional`\u002F`fetchOne` semantics deliberately.\n",{"name":5,"description":7},"main","df46631960db8340a84fdbe7515b160ccd09672a","fixtures\u002Flibraries\u002Fexample-team-library\u002Fskills\u002Fjooq-query-review","https:\u002F\u002Fgithub.com\u002Facltabontabon\u002Fhabi","https:\u002F\u002Facltabontabon.com\u002Fhabi\u002F","https:\u002F\u002Fgithub.com\u002Facltabontabon","https:\u002F\u002Facltabontabon.com","An asian man who codes to eat noodles.","2026-11-14 06:56:20",{"source":8,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add acltabontabon\u002Fhabi --skill jooq-query-review",{"tool":39,"command":40},"bunx","bunx skills add acltabontabon\u002Fhabi --skill jooq-query-review",{"tool":42,"command":43},"pnpm","pnpm dlx skills add acltabontabon\u002Fhabi --skill jooq-query-review","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Facltabontabon\u002Fhabi\u002Fblob\u002Fmain\u002Ffixtures\u002Flibraries\u002Fexample-team-library\u002Fskills\u002Fjooq-query-review\u002FSKILL.md",true,[47],{"path":48,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":51,"sourceHtmlUrl":52},"habi.yaml","REFERENCE","参考文档",107,"https:\u002F\u002Fgithub.com\u002Facltabontabon\u002Fhabi\u002Fblob\u002Fmain\u002Ffixtures\u002Flibraries\u002Fexample-team-library\u002Fskills\u002Fjooq-query-review\u002Fhabi.yaml",[54,61,68,75,82,89],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":60,"publishedAt":19},"01M7DN1SB1F8K655MCSJA8V78C","habi-smoke-test","Use when the user says 'habi ping'.","https:\u002F\u002Fgithub.com\u002Facltabontabon\u002Fhabi\u002Fblob\u002Fmain\u002Fscripts\u002Ffixtures\u002Fagent-smoke\u002Flibrary\u002Fskills\u002Fhabi-smoke-test\u002FSKILL.md",[],[],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":19},"01M7DN1QSBJV46NTQYW6C3586E","jpa-entity-review","Our own, hand-written JPA review notes (not installed by Habi).","https:\u002F\u002Fgithub.com\u002Facltabontabon\u002Fhabi\u002Fblob\u002Fmain\u002Ffixtures\u002Frepos\u002Fagent-ready-service\u002F.claude\u002Fskills\u002Fjpa-entity-review\u002FSKILL.md",[],[],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":19},"01M7DN1MJQKTMRTCKXZV1K6BY8","threat-model","Facilitate a lightweight threat-modeling session (STRIDE) for a new feature and record the outcomes.","https:\u002F\u002Fgithub.com\u002Facltabontabon\u002Fhabi\u002Fblob\u002Fmain\u002Ffixtures\u002Flibraries\u002Fsecurity-guild-library\u002Fskills\u002Fthreat-model\u002FSKILL.md",[],[],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":19},"01M7DN1K42XSEG369AV4SSGM0D","secrets-hygiene","Find and remove committed secrets, rotate them, and prevent recurrence.","https:\u002F\u002Fgithub.com\u002Facltabontabon\u002Fhabi\u002Fblob\u002Fmain\u002Ffixtures\u002Flibraries\u002Fsecurity-guild-library\u002Fskills\u002Fsecrets-hygiene\u002FSKILL.md",[],[],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":19},"01M7DN1H2KBWWNABCPEQQ33BK4","dependency-audit","Audit JavaScript\u002FTypeScript dependencies for known vulnerabilities and summarize what to upgrade. Use before releases or when the lockfile changes.","https:\u002F\u002Fgithub.com\u002Facltabontabon\u002Fhabi\u002Fblob\u002Fmain\u002Ffixtures\u002Flibraries\u002Fsecurity-guild-library\u002Fskills\u002Fdependency-audit\u002FSKILL.md",[],[],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":19},"01M7DN1CD0V6M5RAXAV22FRPB4","api-contract-review","Security-focused review of API contracts — authentication, authorization scopes and data exposure. Use when an OpenAPI document changes.","https:\u002F\u002Fgithub.com\u002Facltabontabon\u002Fhabi\u002Fblob\u002Fmain\u002Ffixtures\u002Flibraries\u002Fsecurity-guild-library\u002Fskills\u002Fapi-contract-review\u002FSKILL.md",[],[]]