[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71K3QRPEQ3A0PQ2NKSESVMV":3,"skill-same:01M71K3QRPEQ3A0PQ2NKSESVMV":88},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":51,"install":52,"resources":65},"01M71K3QRPEQ3A0PQ2NKSESVMV","auth-setup",null,"Hub-and-spoke pipeline that produces a production-grade auth\u002FIAM plan for a new or existing app — user flows, identity providers, session strategy, authorization model, and threat mitigations — via pure-click decisions across five phases. Emits a scaffolded env-var list, library picks, and a per-threat checklist; never writes secrets.","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\u002Fauth-setup\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"auth setup","setup","auth","google","secrets","line","passkeys","next","plan","hub-and-spoke","iam","across","new","flows","pipeline","model","postgres","never","click","app","2026-11-10 10:12:30",false,"---\nname: auth-setup\ndescription: Hub-and-spoke pipeline that produces a production-grade auth\u002FIAM plan for a new or existing app — user flows, identity providers, session strategy, authorization model, and threat mitigations — via pure-click decisions across five phases. Emits a scaffolded env-var list, library picks, and a per-threat checklist; never writes secrets.\nargument-hint: \u003Cone-line app description, e.g. \"B2C SaaS, Next.js + Postgres, needs Google + passkeys\">\n---\n\n# Auth-Setup — Identity, Session & Authorization Pipeline (index)\n\n## When to use\n\n- Setting up user authentication for a new or existing app (social login, passkeys, magic link).\n- Choosing and configuring an identity provider, session strategy, or authorization model.\n- Auditing an app's auth\u002FIAM posture and generating a threat mitigation checklist.\n\n> See `_blocks\u002Fpipeline-5phase-template.md` for the 5-phase wizard contract\n> and `_blocks\u002Frule-pure-click-contract.md` for the AskUserQuestion rule.\n> Skill-specific phase tables are inline below.\n\nYou are converting \"I need auth for app X\" into a concrete, reviewable plan:\nwhich identity methods to ship, which providers to register, which session\nstrategy to pick, which authorization model to enforce, and which threats to\nmitigate up front. Every decision is a click; the only typed input is the\none-line app description in Phase 1.\n\nThis skill does NOT write production code. It emits a plan, the env-var\nscaffold, the library picks, and a per-threat checklist. Code scaffolding\nis a separate task owned by `new-agent` or the project's own\ncode-implementer.\n\nThe skill reads the four companion blocks heavily — every phase references\nat least one of them:\n\n- `_blocks\u002Fauth-oauth2-oidc.md` — OAuth2 \u002F OIDC flows, PKCE, providers.\n- `_blocks\u002Fauth-passkeys.md` — WebAuthn registration + assertion, RP ID.\n- `_blocks\u002Fauth-sessions.md` — server sessions vs JWT tradeoff, cookies.\n- `_blocks\u002Fauth-authorization.md` — RBAC \u002F ABAC \u002F ReBAC, policy engines.\n\n---\n\n## Pipeline overview (5 phases, ≥6 AskUserQuestion calls)\n\n| Phase | File | Purpose | AskUserQuestion |\n|---|---|---|---|\n| 1 | [phase-1-intake.md](phase-1-intake.md) | App flows, stack, storage, MFA | 4× |\n| 2 | [phase-2-identity-provider.md](phase-2-identity-provider.md) | Pick + configure IdPs; env scaffold | 1× |\n| 3 | [phase-3-session-strategy.md](phase-3-session-strategy.md) | Server-session vs JWT; cookie flags | 1× |\n| 4 | [phase-4-authorization.md](phase-4-authorization.md) | RBAC \u002F ABAC \u002F ReBAC; permission matrix | 1× |\n| 5 | [phase-5-threats.md](phase-5-threats.md) | CSRF \u002F XSS \u002F timing \u002F enumeration | 1× |\n\nMinimum AskUserQuestion count across a full session: **8** (4 in Phase 1 +\n1 each in Phases 2–5). Exceeds the ≥6 hub-and-spoke contract.\n\n---\n\n## Variables the pipeline produces\n\n| Name | Set in | Meaning |\n|---|---|---|\n| `FLOWS` | Phase 1 | subset of {email+password, magic-link, OAuth, passkey, SSO} |\n| `STACK` | Phase 1 | Next \u002F Remix \u002F SvelteKit \u002F Astro \u002F Rust axum \u002F FastAPI \u002F other |\n| `STORAGE` | Phase 1 | Postgres \u002F SQLite \u002F MySQL \u002F Supabase \u002F managed-auth |\n| `MFA` | Phase 1 | none \u002F TOTP \u002F passkey \u002F WebAuthn-as-2FA |\n| `PROVIDERS` | Phase 2 | list of OAuth\u002FOIDC providers with env-var names |\n| `SESSION` | Phase 3 | server-session OR JWT + cookie config |\n| `AUTHZ` | Phase 4 | RBAC \u002F ABAC \u002F ReBAC + policy engine (or none) |\n| `THREATS` | Phase 5 | mitigation checklist, per threat class |\n\n---\n\n## Final report (emit after Phase 5)\n\n```\n=== AUTH-SETUP REPORT ===\nApp:        \u003Cfirst 80 chars of intake>...\nStack:      \u003CSTACK> + \u003CSTORAGE>\nFlows:      \u003CFLOWS list>  MFA: \u003CMFA>\nProviders:  \u003CPROVIDERS with env var names>\nSession:    \u003CSESSION summary line>\nAuthz:      \u003CAUTHZ model + engine if any>\nThreats:    \u003CN mitigations selected>\nLibraries:  \u003Cpick per language, one line>\nEnv vars:   \u003Ccount> new entries for secrets\u002F\u003Cfile>.env\nNext:       run `compose-solution` or hand off to project code-implementer\n```\n\n---\n\n## Rules (apply throughout)\n\n- **Pure-click contract.** Only the Phase 1 intake paragraph is typed.\n  Every other decision is `AskUserQuestion`.\n- **RULE 0.8 Secrets SSoT.** The skill emits env VARIABLE NAMES only\n  (`GOOGLE_CLIENT_ID`, `APPLE_TEAM_ID`, ...). It NEVER echoes a token\n  value, never writes to `secrets\u002F*.env`, never suggests hard-coding.\n  Storage path is `\u003Crepo>\u002Fsecrets\u002Fauth.env` per `domain-has-secrets.md`.\n- **NO DOWNGRADE.** If the chosen combination is unsafe (e.g.\n  passkey-only without a recovery flow) the skill returns 2–3 constructive\n  alternatives, never \"not supported\".\n- **Fail-closed default.** Every authz \u002F session \u002F threat decision\n  defaults to the safer option when the user is unsure.\n- **Surgical scope.** Reads the four auth blocks; writes nothing outside\n  its own phase files. Production scaffolding is delegated.\n\n---\n\n## References\n\n- `_blocks\u002Fauth-oauth2-oidc.md`, `_blocks\u002Fauth-passkeys.md`,\n  `_blocks\u002Fauth-sessions.md`, `_blocks\u002Fauth-authorization.md`.\n- `_blocks\u002Fdomain-has-secrets.md` — storage path + loading convention.\n- `_blocks\u002Frule-pre-dev-gate.md` — analogue check before inventing.\n- Evidence grade [E2] — pipeline mirrors OWASP ASVS v4.0.3 chapters 2–4.\n","# Auth-Setup — Identity, Session & Authorization Pipeline (index)\n\n## When to use\n\n- Setting up user authentication for a new or existing app (social login, passkeys, magic link).\n- Choosing and configuring an identity provider, session strategy, or authorization model.\n- Auditing an app's auth\u002FIAM posture and generating a threat mitigation checklist.\n\n> See `_blocks\u002Fpipeline-5phase-template.md` for the 5-phase wizard contract\n> and `_blocks\u002Frule-pure-click-contract.md` for the AskUserQuestion rule.\n> Skill-specific phase tables are inline below.\n\nYou are converting \"I need auth for app X\" into a concrete, reviewable plan:\nwhich identity methods to ship, which providers to register, which session\nstrategy to pick, which authorization model to enforce, and which threats to\nmitigate up front. Every decision is a click; the only typed input is the\none-line app description in Phase 1.\n\nThis skill does NOT write production code. It emits a plan, the env-var\nscaffold, the library picks, and a per-threat checklist. Code scaffolding\nis a separate task owned by `new-agent` or the project's own\ncode-implementer.\n\nThe skill reads the four companion blocks heavily — every phase references\nat least one of them:\n\n- `_blocks\u002Fauth-oauth2-oidc.md` — OAuth2 \u002F OIDC flows, PKCE, providers.\n- `_blocks\u002Fauth-passkeys.md` — WebAuthn registration + assertion, RP ID.\n- `_blocks\u002Fauth-sessions.md` — server sessions vs JWT tradeoff, cookies.\n- `_blocks\u002Fauth-authorization.md` — RBAC \u002F ABAC \u002F ReBAC, policy engines.\n\n---\n\n## Pipeline overview (5 phases, ≥6 AskUserQuestion calls)\n\n| Phase | File | Purpose | AskUserQuestion |\n|---|---|---|---|\n| 1 | [phase-1-intake.md](phase-1-intake.md) | App flows, stack, storage, MFA | 4× |\n| 2 | [phase-2-identity-provider.md](phase-2-identity-provider.md) | Pick + configure IdPs; env scaffold | 1× |\n| 3 | [phase-3-session-strategy.md](phase-3-session-strategy.md) | Server-session vs JWT; cookie flags | 1× |\n| 4 | [phase-4-authorization.md](phase-4-authorization.md) | RBAC \u002F ABAC \u002F ReBAC; permission matrix | 1× |\n| 5 | [phase-5-threats.md](phase-5-threats.md) | CSRF \u002F XSS \u002F timing \u002F enumeration | 1× |\n\nMinimum AskUserQuestion count across a full session: **8** (4 in Phase 1 +\n1 each in Phases 2–5). Exceeds the ≥6 hub-and-spoke contract.\n\n---\n\n## Variables the pipeline produces\n\n| Name | Set in | Meaning |\n|---|---|---|\n| `FLOWS` | Phase 1 | subset of {email+password, magic-link, OAuth, passkey, SSO} |\n| `STACK` | Phase 1 | Next \u002F Remix \u002F SvelteKit \u002F Astro \u002F Rust axum \u002F FastAPI \u002F other |\n| `STORAGE` | Phase 1 | Postgres \u002F SQLite \u002F MySQL \u002F Supabase \u002F managed-auth |\n| `MFA` | Phase 1 | none \u002F TOTP \u002F passkey \u002F WebAuthn-as-2FA |\n| `PROVIDERS` | Phase 2 | list of OAuth\u002FOIDC providers with env-var names |\n| `SESSION` | Phase 3 | server-session OR JWT + cookie config |\n| `AUTHZ` | Phase 4 | RBAC \u002F ABAC \u002F ReBAC + policy engine (or none) |\n| `THREATS` | Phase 5 | mitigation checklist, per threat class |\n\n---\n\n## Final report (emit after Phase 5)\n\n```\n=== AUTH-SETUP REPORT ===\nApp:        \u003Cfirst 80 chars of intake>...\nStack:      \u003CSTACK> + \u003CSTORAGE>\nFlows:      \u003CFLOWS list>  MFA: \u003CMFA>\nProviders:  \u003CPROVIDERS with env var names>\nSession:    \u003CSESSION summary line>\nAuthz:      \u003CAUTHZ model + engine if any>\nThreats:    \u003CN mitigations selected>\nLibraries:  \u003Cpick per language, one line>\nEnv vars:   \u003Ccount> new entries for secrets\u002F\u003Cfile>.env\nNext:       run `compose-solution` or hand off to project code-implementer\n```\n\n---\n\n## Rules (apply throughout)\n\n- **Pure-click contract.** Only the Phase 1 intake paragraph is typed.\n  Every other decision is `AskUserQuestion`.\n- **RULE 0.8 Secrets SSoT.** The skill emits env VARIABLE NAMES only\n  (`GOOGLE_CLIENT_ID`, `APPLE_TEAM_ID`, ...). It NEVER echoes a token\n  value, never writes to `secrets\u002F*.env`, never suggests hard-coding.\n  Storage path is `\u003Crepo>\u002Fsecrets\u002Fauth.env` per `domain-has-secrets.md`.\n- **NO DOWNGRADE.** If the chosen combination is unsafe (e.g.\n  passkey-only without a recovery flow) the skill returns 2–3 constructive\n  alternatives, never \"not supported\".\n- **Fail-closed default.** Every authz \u002F session \u002F threat decision\n  defaults to the safer option when the user is unsure.\n- **Surgical scope.** Reads the four auth blocks; writes nothing outside\n  its own phase files. Production scaffolding is delegated.\n\n---\n\n## References\n\n- `_blocks\u002Fauth-oauth2-oidc.md`, `_blocks\u002Fauth-passkeys.md`,\n  `_blocks\u002Fauth-sessions.md`, `_blocks\u002Fauth-authorization.md`.\n- `_blocks\u002Fdomain-has-secrets.md` — storage path + loading convention.\n- `_blocks\u002Frule-pre-dev-gate.md` — analogue check before inventing.\n- Evidence grade [E2] — pipeline mirrors OWASP ASVS v4.0.3 chapters 2–4.\n",{"name":5,"description":7,"argument-hint":44},"\u003Cone-line app description, e.g. \"B2C SaaS, Next.js + Postgres, needs Google + passkeys\">","main","32e85218a997294f68da27ff3dfd638196186ae5","skills\u002Fauth-setup",8,"https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit","https:\u002F\u002Fgithub.com\u002FKeiSeiLab","2026-10-11 11:17:46",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add KeiSeiLab\u002FKeiSeiKit --skill auth-setup",{"tool":58,"command":59},"bunx","bunx skills add KeiSeiLab\u002FKeiSeiKit --skill auth-setup",{"tool":61,"command":62},"pnpm","pnpm dlx skills add KeiSeiLab\u002FKeiSeiKit --skill auth-setup","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fauth-setup\u002FSKILL.md",true,[66,72,76,80,84],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"phase-1-intake.md","REFERENCE","参考文档",4366,"https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fauth-setup\u002Fphase-1-intake.md",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"phase-2-identity-provider.md",3275,"https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fauth-setup\u002Fphase-2-identity-provider.md",{"path":77,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":78,"sourceHtmlUrl":79},"phase-3-session-strategy.md",3532,"https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fauth-setup\u002Fphase-3-session-strategy.md",{"path":81,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":82,"sourceHtmlUrl":83},"phase-4-authorization.md",3497,"https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fauth-setup\u002Fphase-4-authorization.md",{"path":85,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":86,"sourceHtmlUrl":87},"phase-5-threats.md",4171,"https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fauth-setup\u002Fphase-5-threats.md",[89,121,143,178,206,231],{"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":100,"publishedAt":39},"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",[95],{"categoryNo":96,"categoryName":97,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120],"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":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":127,"publishedAt":39},"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",[],[128,129,130,131,132,133,134,135,136,137,119,138,139,120,107,27,140,141,142,24],"vm","vm provision","firewall","diff","provider","select","end","calls","only","either","api","hetzner","defensive","verify","intent",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":147,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":158,"publishedAt":39},"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",[150,153],{"categoryNo":151,"categoryName":152,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":154,"categoryName":155,"taxonomyType":156,"taxonomyTypeDesc":157},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[159,160,161,162,163,164,165,166,27,167,168,169,170,171,172,173,174,175,176,177],"visual","visual explainer","explainer","project","files","image","you","architecture","generate","present","concepts","table","as","view","for","ascii table","ascii","surf","use",{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":187,"publishedAt":39},"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",[184],{"categoryNo":185,"categoryName":186,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000016","图像与多媒体",[188,189,190,191,33,192,193,194,195,196,164,197,198,199,200,201,202,203,204,205],"Video","gen","video gen","ready","default","generated","synced","false","when","conversion","directory","sequences","sequence","source","full","path","webp","target",{"skillNo":207,"name":208,"nameZh":6,"description":209,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":210,"categories":211,"keywords":215,"publishedAt":39},"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",[212],{"categoryNo":213,"categoryName":214,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000008","测试与质量",[216,217,218,219,205,37,162,220,33,221,222,223,224,225,226,227,228,177,229,230],"test","matrix","test matrix","unit","regression","mix","intake","testing","decision","ci","tests","e2e","mutation","load","fuzzing",{"skillNo":232,"name":233,"nameZh":6,"description":234,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":235,"categories":236,"keywords":238,"publishedAt":39},"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",[237],{"categoryNo":213,"categoryName":214,"taxonomyType":98,"taxonomyTypeDesc":99},[239,189,216,240,205,173,241,226,242,177,196,243,244,245,246,203],"test gen","error","true","edge","file","code","error handling","name"]