[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71K6F35ZD1AS2MV6J110GT0":3,"skill-same:01M71K6F35ZD1AS2MV6J110GT0":78},{"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":28,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":61,"repositoryHtmlUrl":62,"repositoryHomepageUrl":6,"ownerHtmlUrl":63,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":64,"install":65,"resources":77},"01M71K6F35ZD1AS2MV6J110GT0","quick-api",null,"Use when scaffolding a new API endpoint — types, test, handler, validation, route, docs","KeiSeiLab\u002FKeiSeiKit","KeiSeiLab","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F283315582?v=4","01M71K2EW81JRFHSGF0T844B32","KeiSei Lab","01M71K2EWXTB52KWC65E55S6M2",7,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fquick-api\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"quick api","api","quick","scaffolding","new","when","handler","true","types","post","users","docs","route","api endpoint","use","user","endpoint","validation","create","test","2026-11-10 10:12:30",false,"---\nname: quick-api\ndescription: Use when scaffolding a new API endpoint — types, test, handler, validation, route, docs\ndisable-model-invocation: true\narguments:\n  - name: endpoint\n    description: \"Endpoint description, e.g. 'POST \u002Fapi\u002Fusers — create user'\"\n    required: true\n---\n\n# Quick API Scaffold Workflow\n\n## Step 1: Detect Framework\n- Auto-detect from project:\n  - Python: FastAPI (main.py, routers\u002F), Flask, Django\n  - JS\u002FTS: Next.js (app\u002Fapi\u002F), Express, Hono\n  - Go: net\u002Fhttp, gin, echo\n- Find existing endpoint examples to match patterns\n\n## Step 2: API Contract (Types First)\n- Define request\u002Fresponse types BEFORE implementation\n- Place types where project keeps them (types\u002F, schemas\u002F, models\u002F)\n- Include validation rules in type definitions\n- Document in OpenAPI format if project uses it\n\n## Step 3: Write Test First\n- Create test file matching project conventions\n- Test cases:\n  - Happy path (valid request → expected response)\n  - Validation error (invalid input → 400\u002F422)\n  - Auth error if endpoint requires auth (no token → 401)\n  - Not found if applicable (→ 404)\n\n## Step 4: Checkpoint\n- `checkpoint: before quick-api $endpoint`\n\n## Step 5: Implement Handler\n- Follow existing handler patterns exactly\n- Input validation using project's validation approach\n- Error handling matching existing patterns\n- Keep handler thin — business logic in service layer if project uses one\n\n## Step 6: Register Route\n- Add route in the project's routing configuration\n- Match URL pattern, middleware, and auth guards from existing routes\n\n## Step 7: Verify\n- Run tests — all pass\n- Test manually with curl if appropriate\n- Check that OpenAPI\u002FSwagger docs update if auto-generated\n\n## Step 8: Commit\n- `feat: add $endpoint endpoint`\n","# Quick API Scaffold Workflow\n\n## Step 1: Detect Framework\n- Auto-detect from project:\n  - Python: FastAPI (main.py, routers\u002F), Flask, Django\n  - JS\u002FTS: Next.js (app\u002Fapi\u002F), Express, Hono\n  - Go: net\u002Fhttp, gin, echo\n- Find existing endpoint examples to match patterns\n\n## Step 2: API Contract (Types First)\n- Define request\u002Fresponse types BEFORE implementation\n- Place types where project keeps them (types\u002F, schemas\u002F, models\u002F)\n- Include validation rules in type definitions\n- Document in OpenAPI format if project uses it\n\n## Step 3: Write Test First\n- Create test file matching project conventions\n- Test cases:\n  - Happy path (valid request → expected response)\n  - Validation error (invalid input → 400\u002F422)\n  - Auth error if endpoint requires auth (no token → 401)\n  - Not found if applicable (→ 404)\n\n## Step 4: Checkpoint\n- `checkpoint: before quick-api $endpoint`\n\n## Step 5: Implement Handler\n- Follow existing handler patterns exactly\n- Input validation using project's validation approach\n- Error handling matching existing patterns\n- Keep handler thin — business logic in service layer if project uses one\n\n## Step 6: Register Route\n- Add route in the project's routing configuration\n- Match URL pattern, middleware, and auth guards from existing routes\n\n## Step 7: Verify\n- Run tests — all pass\n- Test manually with curl if appropriate\n- Check that OpenAPI\u002FSwagger docs update if auto-generated\n\n## Step 8: Commit\n- `feat: add $endpoint endpoint`\n",{"name":5,"arguments":54,"description":7,"disable-model-invocation":56},[55],{"name":45,"required":56,"description":57},true,"Endpoint description, e.g. 'POST \u002Fapi\u002Fusers — create user'","main","32e85218a997294f68da27ff3dfd638196186ae5","skills\u002Fquick-api",8,"https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit","https:\u002F\u002Fgithub.com\u002FKeiSeiLab","2026-10-11 11:17:46",{"source":8,"skillName":5,"commands":66,"prompt":76,"zipAvailable":56},[67,70,73],{"tool":68,"command":69},"npx","npx skills add KeiSeiLab\u002FKeiSeiKit --skill quick-api",{"tool":71,"command":72},"bunx","bunx skills add KeiSeiLab\u002FKeiSeiKit --skill quick-api",{"tool":74,"command":75},"pnpm","pnpm dlx skills add KeiSeiLab\u002FKeiSeiKit --skill quick-api","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fquick-api\u002FSKILL.md",[],[79,109,132,164,192,217],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":88,"publishedAt":49},"01M71K887N78V089XR5BWT0JAV","wave-audit","3-wave parallel audit — Wave 1 discovery (4 agents), Wave 2 verification (4 agents), Wave 3 cross-optimization (1 synthesizer). Each wave runs agents in parallel. Combines security review, runtime analysis, quality check, and constructor pattern into one unified workflow with evidence grading and Go\u002FNo-Go verdict.","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fwave-audit\u002FSKILL.md",[85],{"categoryNo":86,"categoryName":87,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108],"wave audit","audit","unified workflow","workflow","analysis","review","verification","security review","pattern","grading","go","security","parallel","evidence","runtime","quality check","discovery","Optimization","one","check",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":49},"01M71K85100JQS4Y10EGCTWQXW","vm-provision","End-to-end VPS provisioning — select provider → plan → provision → harden → verify (ssh-check + firewall-diff hard-gate) → handoff. 6 phases, ≥6 AskUserQuestion calls, defensive-only. Stops if either verification primitive fails.","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fvm-provision\u002FSKILL.md",[],[116,117,118,119,120,121,122,123,124,125,107,30,126,108,95,127,128,129,130,131],"vm","vm provision","firewall","diff","provider","select","end","calls","only","either","hetzner","plan","defensive","verify","intent","line",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":136,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":145,"publishedAt":49},"01M71K80ZRH2H5ES83QS97BB91","visual-explainer","Generate beautiful, self-contained HTML pages that visually explain systems, code changes, plans, and data. Use when the user asks for a diagram, architecture overview, diff review, plan review, project recap, comparison table, or any visual explanation of technical concepts. Also use proactively when you are about to render a complex ASCII table (4+ rows or 3+ columns) — present it as a styled HTML page instead.","MIT","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fvisual-explainer\u002FSKILL.md",[139,142],{"categoryNo":140,"categoryName":141,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":143,"categoryName":144,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000033","数据分析师",[146,147,148,149,150,151,152,153,127,154,155,156,157,158,159,160,161,162,163,43],"visual","visual explainer","explainer","project","files","image","you","architecture","generate","present","concepts","table","as","view","for","ascii table","ascii","surf",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":173,"publishedAt":49},"01M71K7VSD5ZWN26QJEC4T0770","video-gen","Use when generating video from frame sequences — FFmpeg extraction, WebP\u002FAVIF conversion, sprite sheets, scroll-synced playback, video encoding\u002Ftranscoding. Covers the full pipeline from video source to web-ready frame sequence or optimized video.","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fvideo-gen\u002FSKILL.md",[170],{"categoryNo":171,"categoryName":172,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[174,175,176,177,178,179,180,181,182,34,151,183,184,185,186,187,188,189,190,191],"Video","gen","video gen","ready","pipeline","default","generated","synced","false","conversion","directory","sequences","sequence","source","full","path","webp","target",{"skillNo":193,"name":194,"nameZh":6,"description":195,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":196,"categories":197,"keywords":201,"publishedAt":49},"01M71K7R88RM8ENVCRZHZSMM5T","test-matrix","Use when a project needs testing BEYOND unit tests — fuzzing, property-based, load, E2E, or mutation. Five-phase hub-and-spoke pipeline composes the right mix per language × critical path × CI target, scaffolds configs + corpus + fixtures, wires CI jobs, and defines the crash\u002Fregression triage workflow. Pure-click: every decision except intake is an AskUserQuestion.","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Ftest-matrix\u002FSKILL.md",[198],{"categoryNo":199,"categoryName":200,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[48,202,203,204,191,205,149,206,178,207,208,209,210,211,212,213,214,43,215,216],"matrix","test matrix","unit","click","regression","mix","intake","testing","decision","ci","tests","e2e","mutation","load","fuzzing",{"skillNo":218,"name":219,"nameZh":6,"description":220,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":221,"categories":222,"keywords":224,"publishedAt":49},"01M71K7N3ZY9FMMH3CSE1H8K5J","test-gen","Use when generating tests for untested code — happy path, edge cases, error handling","https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Ftest-gen\u002FSKILL.md",[223],{"categoryNo":199,"categoryName":200,"taxonomyType":21,"taxonomyTypeDesc":22},[225,175,48,226,191,160,36,212,227,43,34,228,229,230,231,189],"test gen","error","edge","file","code","error handling","name"]