[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71K72JFC5M0HFHSZG8FBDGP":3,"skill-same:01M71K72JFC5M0HFHSZG8FBDGP":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},"01M71K72JFC5M0HFHSZG8FBDGP","self-audit",null,"Session retrospective triage (RULE 0.14). Runs `kei-memory analyze + patterns`, classifies findings, presents them via click-only AskUserQuestion, routes each selected item to `\u002Fescalate-recurrence` (rule+hook), `\u002Fdebug-deep` (bug RCA), or the audit-backlog (log-only). Self-audit is triage, not implementation.","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\u002Fself-audit\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"audit","self audit","self","bug","escalate","via","retrospective","id","last","analyze","log","debug","Session Retrospective","only","session","backlog","memory","click","deep","rca","2026-11-10 10:12:30",false,"---\nname: self-audit\ndescription: Session retrospective triage (RULE 0.14). Runs `kei-memory analyze + patterns`, classifies findings, presents them via click-only AskUserQuestion, routes each selected item to `\u002Fescalate-recurrence` (rule+hook), `\u002Fdebug-deep` (bug RCA), or the audit-backlog (log-only). Self-audit is triage, not implementation.\nargument-hint: \u003Coptional session id; defaults to last session>\n---\n\n# Self-Audit — Session Retrospective Triage (index)\n\n## When to use\n\n- After a session ends: run RULE 0.14 retrospective to surface recurring mistakes and route them to `\u002Fescalate-recurrence`.\n- When a milestone commit fires the self-audit hook and findings need triage.\n- After an error spike (3+ errors in 20 tool calls) to understand the pattern before the next session.\n\nYou are running the RULE 0.14 self-audit on the last (or named) session.\nYou convert the session's trace into a short list of findings, classify\neach, present them as a multi-select click batch, and route each selection\nto the appropriate existing skill. You NEVER write fixes yourself.\n\nThis `SKILL.md` is the INDEX. Each phase lives in its own file and is\nexecuted in order. Never skip a phase. Never re-order phases.\n\n---\n\n## Pipeline overview (5 phases)\n\n| Phase | File | Purpose | AskUserQuestion |\n|---|---|---|---|\n| 1 | [phase-1-analyze.md](phase-1-analyze.md) | Run `kei-memory analyze` + `kei-memory patterns`; collect findings | 0 |\n| 2 | [phase-2-classify.md](phase-2-classify.md) | Categorise each finding as recurring \u002F one-off \u002F unknown + severity | 1× AskUserQuestion (severity confirm) |\n| 3 | [phase-3-present.md](phase-3-present.md) | Multi-select click: which findings to address | 1× AskUserQuestion |\n| 4 | [phase-4-route.md](phase-4-route.md) | For each selected finding → pick action route | 1× AskUserQuestion per selected finding |\n| 5 | [phase-5-backlog.md](phase-5-backlog.md) | Update `~\u002F.claude\u002Fmemory\u002Faudit-backlog.md`; clear processed items | 1× AskUserQuestion (confirm backlog clear) |\n\nMinimum AskUserQuestion count: **4** (Phase 2, 3, at least one Phase 4,\nPhase 5). This is the pure-click contract.\n\n---\n\n## Variables the pipeline produces\n\n| Name | Set in | Meaning |\n|---|---|---|\n| `SESSION` | Phase 1 | Session id under audit (CLI arg or `--last 1`) |\n| `FINDINGS` | Phase 1 | List of `{class, count, severity_hint, scope}` dicts |\n| `CLASSIFIED` | Phase 2 | Same list, with `category ∈ {recurring, one-off, unknown}` + `severity ∈ {critical, high, medium, low}` |\n| `SELECTED` | Phase 3 | User-picked subset of `CLASSIFIED` to address |\n| `ROUTES` | Phase 4 | Per-finding chosen action ∈ {codify, deep-dive, hook-only, log-only, postpone} |\n| `BACKLOG_ACTIONS` | Phase 5 | Which backlog entries to mark processed |\n\n---\n\n## Final report (emit after Phase 5)\n\n```\n=== SELF-AUDIT REPORT ===\nSession:       \u003CSESSION>\nFindings:      \u003CN total>  (recurring: \u003CR>, one-off: \u003CO>, unknown: \u003CU>)\nRouted:        \u003CK>\n  → codify:    \u003Ccount>  (handed off to \u002Fescalate-recurrence)\n  → deep-dive: \u003Ccount>  (handed off to \u002Fdebug-deep)\n  → hook-only: \u003Ccount>  (created hook stub — NOT registered)\n  → log-only:  \u003Ccount>  (appended to audit-backlog.md)\n  → postpone:  \u003Ccount>  (kept open, will resurface next session)\nBacklog:       \u003Cbefore_count> → \u003Cafter_count> unprocessed items\n```\n\n---\n\n## Rules (apply throughout — enforced at every phase)\n\n- **Triage, not implementation.** This skill NEVER writes production\n  code. It hands off to `\u002Fescalate-recurrence` (rule + wiki + hook) or\n  `\u002Fdebug-deep` (5-phase RCA) or logs to backlog. Any edit in this skill\n  is limited to `~\u002F.claude\u002Fmemory\u002Faudit-backlog.md`.\n- **Pure-click contract.** Only the handoff targets may ask for\n  free-text; every decision in self-audit itself is `AskUserQuestion`.\n- **NO DOWNGRADE (RULE -1).** If `kei-memory` is not installed, return\n  2-3 constructive paths (install the primitive, run the analysis by\n  hand on the JSONL, skip this session) — never \"cannot audit\".\n- **NO HALLUCINATION (RULE 0.4).** Every finding cited in Phase 3 must\n  come from the `kei-memory patterns` output captured in Phase 1.\n  Never invent a class that wasn't emitted.\n- **Silent-first (RULE 0.14).** If `\u003C!-- session_count: N -->` in\n  `~\u002F.claude\u002Fmemory\u002Faudit-backlog.md` is less than 10, Phase 3 MUST\n  short-circuit to \"log only\" — do not prompt the user.\n- **Sensitive-IP exception.** If CWD sits under a restricted-list project\n  (see `~\u002F.claude\u002Frules\u002Fsecurity.md`) OR `CLAUDE.md` in CWD contains a\n  banned marker, run Phase 1 ONLY and stop: do not inject transcript\n  excerpts back into chat.\n- **Constructor Pattern (RULE ZERO).** Every phase file ≤ 60 LOC.\n\n---\n\n## References\n\n- `~\u002F.claude\u002Frules\u002Fsession-self-audit.md` — RULE 0.14 full text\n- `~\u002F.claude\u002Fskills\u002Fescalate-recurrence\u002FSKILL.md` — codify route target\n- `skills\u002Fdebug-deep\u002FSKILL.md` — deep-dive route target\n- `_primitives\u002F_rust\u002Fkei-memory\u002F` — analyzer primitive\n- `hooks\u002Fsession-end-dump.sh`, `hooks\u002Fmilestone-commit-hook.sh`,\n  `hooks\u002Ferror-spike-detector.sh` — auto-triggers\n","# Self-Audit — Session Retrospective Triage (index)\n\n## When to use\n\n- After a session ends: run RULE 0.14 retrospective to surface recurring mistakes and route them to `\u002Fescalate-recurrence`.\n- When a milestone commit fires the self-audit hook and findings need triage.\n- After an error spike (3+ errors in 20 tool calls) to understand the pattern before the next session.\n\nYou are running the RULE 0.14 self-audit on the last (or named) session.\nYou convert the session's trace into a short list of findings, classify\neach, present them as a multi-select click batch, and route each selection\nto the appropriate existing skill. You NEVER write fixes yourself.\n\nThis `SKILL.md` is the INDEX. Each phase lives in its own file and is\nexecuted in order. Never skip a phase. Never re-order phases.\n\n---\n\n## Pipeline overview (5 phases)\n\n| Phase | File | Purpose | AskUserQuestion |\n|---|---|---|---|\n| 1 | [phase-1-analyze.md](phase-1-analyze.md) | Run `kei-memory analyze` + `kei-memory patterns`; collect findings | 0 |\n| 2 | [phase-2-classify.md](phase-2-classify.md) | Categorise each finding as recurring \u002F one-off \u002F unknown + severity | 1× AskUserQuestion (severity confirm) |\n| 3 | [phase-3-present.md](phase-3-present.md) | Multi-select click: which findings to address | 1× AskUserQuestion |\n| 4 | [phase-4-route.md](phase-4-route.md) | For each selected finding → pick action route | 1× AskUserQuestion per selected finding |\n| 5 | [phase-5-backlog.md](phase-5-backlog.md) | Update `~\u002F.claude\u002Fmemory\u002Faudit-backlog.md`; clear processed items | 1× AskUserQuestion (confirm backlog clear) |\n\nMinimum AskUserQuestion count: **4** (Phase 2, 3, at least one Phase 4,\nPhase 5). This is the pure-click contract.\n\n---\n\n## Variables the pipeline produces\n\n| Name | Set in | Meaning |\n|---|---|---|\n| `SESSION` | Phase 1 | Session id under audit (CLI arg or `--last 1`) |\n| `FINDINGS` | Phase 1 | List of `{class, count, severity_hint, scope}` dicts |\n| `CLASSIFIED` | Phase 2 | Same list, with `category ∈ {recurring, one-off, unknown}` + `severity ∈ {critical, high, medium, low}` |\n| `SELECTED` | Phase 3 | User-picked subset of `CLASSIFIED` to address |\n| `ROUTES` | Phase 4 | Per-finding chosen action ∈ {codify, deep-dive, hook-only, log-only, postpone} |\n| `BACKLOG_ACTIONS` | Phase 5 | Which backlog entries to mark processed |\n\n---\n\n## Final report (emit after Phase 5)\n\n```\n=== SELF-AUDIT REPORT ===\nSession:       \u003CSESSION>\nFindings:      \u003CN total>  (recurring: \u003CR>, one-off: \u003CO>, unknown: \u003CU>)\nRouted:        \u003CK>\n  → codify:    \u003Ccount>  (handed off to \u002Fescalate-recurrence)\n  → deep-dive: \u003Ccount>  (handed off to \u002Fdebug-deep)\n  → hook-only: \u003Ccount>  (created hook stub — NOT registered)\n  → log-only:  \u003Ccount>  (appended to audit-backlog.md)\n  → postpone:  \u003Ccount>  (kept open, will resurface next session)\nBacklog:       \u003Cbefore_count> → \u003Cafter_count> unprocessed items\n```\n\n---\n\n## Rules (apply throughout — enforced at every phase)\n\n- **Triage, not implementation.** This skill NEVER writes production\n  code. It hands off to `\u002Fescalate-recurrence` (rule + wiki + hook) or\n  `\u002Fdebug-deep` (5-phase RCA) or logs to backlog. Any edit in this skill\n  is limited to `~\u002F.claude\u002Fmemory\u002Faudit-backlog.md`.\n- **Pure-click contract.** Only the handoff targets may ask for\n  free-text; every decision in self-audit itself is `AskUserQuestion`.\n- **NO DOWNGRADE (RULE -1).** If `kei-memory` is not installed, return\n  2-3 constructive paths (install the primitive, run the analysis by\n  hand on the JSONL, skip this session) — never \"cannot audit\".\n- **NO HALLUCINATION (RULE 0.4).** Every finding cited in Phase 3 must\n  come from the `kei-memory patterns` output captured in Phase 1.\n  Never invent a class that wasn't emitted.\n- **Silent-first (RULE 0.14).** If `\u003C!-- session_count: N -->` in\n  `~\u002F.claude\u002Fmemory\u002Faudit-backlog.md` is less than 10, Phase 3 MUST\n  short-circuit to \"log only\" — do not prompt the user.\n- **Sensitive-IP exception.** If CWD sits under a restricted-list project\n  (see `~\u002F.claude\u002Frules\u002Fsecurity.md`) OR `CLAUDE.md` in CWD contains a\n  banned marker, run Phase 1 ONLY and stop: do not inject transcript\n  excerpts back into chat.\n- **Constructor Pattern (RULE ZERO).** Every phase file ≤ 60 LOC.\n\n---\n\n## References\n\n- `~\u002F.claude\u002Frules\u002Fsession-self-audit.md` — RULE 0.14 full text\n- `~\u002F.claude\u002Fskills\u002Fescalate-recurrence\u002FSKILL.md` — codify route target\n- `skills\u002Fdebug-deep\u002FSKILL.md` — deep-dive route target\n- `_primitives\u002F_rust\u002Fkei-memory\u002F` — analyzer primitive\n- `hooks\u002Fsession-end-dump.sh`, `hooks\u002Fmilestone-commit-hook.sh`,\n  `hooks\u002Ferror-spike-detector.sh` — auto-triggers\n",{"name":5,"description":7,"argument-hint":44},"\u003Coptional session id; defaults to last session>","main","32e85218a997294f68da27ff3dfd638196186ae5","skills\u002Fself-audit",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 self-audit",{"tool":58,"command":59},"bunx","bunx skills add KeiSeiLab\u002FKeiSeiKit --skill self-audit",{"tool":61,"command":62},"pnpm","pnpm dlx skills add KeiSeiLab\u002FKeiSeiKit --skill self-audit","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fself-audit\u002FSKILL.md",true,[66,72,76,80,84],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"phase-1-analyze.md","REFERENCE","参考文档",1364,"https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fself-audit\u002Fphase-1-analyze.md",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"phase-2-classify.md",1797,"https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fself-audit\u002Fphase-2-classify.md",{"path":77,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":78,"sourceHtmlUrl":79},"phase-3-present.md",1777,"https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fself-audit\u002Fphase-3-present.md",{"path":81,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":82,"sourceHtmlUrl":83},"phase-4-route.md",2519,"https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fself-audit\u002Fphase-4-route.md",{"path":85,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":86,"sourceHtmlUrl":87},"phase-5-backlog.md",1840,"https:\u002F\u002Fgithub.com\u002FKeiSeiLab\u002FKeiSeiKit\u002Fblob\u002Fmain\u002Fskills\u002Fself-audit\u002Fphase-5-backlog.md",[89,120,143,178,207,232],{"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,19,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119],"wave audit","unified workflow","workflow","analysis","review","verification","security review","pattern","grading","go","security","parallel","evidence","runtime","quality check","discovery","Optimization","one","check",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":126,"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",[],[127,128,129,130,131,132,133,134,32,135,118,136,137,119,106,138,139,140,141,142],"vm","vm provision","firewall","diff","provider","select","end","calls","either","api","hetzner","plan","defensive","verify","intent","line",{"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,138,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,192,193,194,195,196,197,164,198,199,200,201,202,203,204,205,206],"Video","gen","video gen","ready","pipeline","default","generated","synced","false","when","conversion","directory","sequences","sequence","source","full","path","webp","target",{"skillNo":208,"name":209,"nameZh":6,"description":210,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":211,"categories":212,"keywords":216,"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",[213],{"categoryNo":214,"categoryName":215,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000008","测试与质量",[217,218,219,220,206,36,162,221,192,222,223,224,225,226,227,228,229,177,230,231],"test","matrix","test matrix","unit","regression","mix","intake","testing","decision","ci","tests","e2e","mutation","load","fuzzing",{"skillNo":233,"name":234,"nameZh":6,"description":235,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":236,"categories":237,"keywords":239,"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",[238],{"categoryNo":214,"categoryName":215,"taxonomyType":98,"taxonomyTypeDesc":99},[240,189,217,241,206,173,242,227,243,177,197,244,245,246,247,204],"test gen","error","true","edge","file","code","error handling","name"]