[{"data":1,"prerenderedAt":722},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-agent-skills":258,"-getting-started-agent-skills-surround":717},[4,30,115,174,228,244],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","\u002Fgetting-started","1.getting-started",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-zap",{"title":25,"path":26,"stem":27,"icon":28},"Agent Skills","\u002Fgetting-started\u002Fagent-skills","1.getting-started\u002F4.agent-skills","i-lucide-sparkles",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Frameworks","\u002Fframeworks","2.frameworks",[35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,110],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Fframeworks\u002Foverview","2.frameworks\u002F00.overview","i-lucide-layout-grid",{"title":41,"path":42,"stem":43,"icon":44},"Nuxt","\u002Fframeworks\u002Fnuxt","2.frameworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":46,"path":47,"stem":48,"icon":49},"Next.js","\u002Fframeworks\u002Fnextjs","2.frameworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":51,"path":52,"stem":53,"icon":54},"SvelteKit","\u002Fframeworks\u002Fsveltekit","2.frameworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":56,"path":57,"stem":58,"icon":59},"Nitro","\u002Fframeworks\u002Fnitro","2.frameworks\u002F04.nitro","i-custom-nitro",{"title":61,"path":62,"stem":63,"icon":64},"TanStack Start","\u002Fframeworks\u002Ftanstack-start","2.frameworks\u002F05.tanstack-start","i-custom-tanstack",{"title":66,"path":67,"stem":68,"icon":69},"NestJS","\u002Fframeworks\u002Fnestjs","2.frameworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":71,"path":72,"stem":73,"icon":74},"Express","\u002Fframeworks\u002Fexpress","2.frameworks\u002F07.express","i-simple-icons-express",{"title":76,"path":77,"stem":78,"icon":79},"Hono","\u002Fframeworks\u002Fhono","2.frameworks\u002F08.hono","i-simple-icons-hono",{"title":81,"path":82,"stem":83,"icon":84},"Fastify","\u002Fframeworks\u002Ffastify","2.frameworks\u002F09.fastify","i-simple-icons-fastify",{"title":86,"path":87,"stem":88,"icon":89},"Elysia","\u002Fframeworks\u002Felysia","2.frameworks\u002F10.elysia","i-custom-elysia",{"title":91,"path":92,"stem":93,"icon":94},"React Router","\u002Fframeworks\u002Freact-router","2.frameworks\u002F11.react-router","i-simple-icons-reactrouter",{"title":96,"path":97,"stem":98,"icon":99},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","2.frameworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":101,"path":102,"stem":103,"icon":104},"Standalone","\u002Fframeworks\u002Fstandalone","2.frameworks\u002F13.standalone","i-simple-icons-typescript",{"title":106,"path":107,"stem":108,"icon":109},"Astro","\u002Fframeworks\u002Fastro","2.frameworks\u002F14.astro","i-simple-icons-astro",{"title":111,"path":112,"stem":113,"icon":114},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","2.frameworks\u002F15.custom-integration","i-lucide-puzzle",{"title":116,"path":117,"stem":118,"children":119,"page":29},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[120,125,130,135,140,145,150,154,159,164,169],{"title":121,"path":122,"stem":123,"icon":124},"Request Lifecycle","\u002Fcore-concepts\u002Flifecycle","3.core-concepts\u002F0.lifecycle","i-lucide-arrow-right-left",{"title":126,"path":127,"stem":128,"icon":129},"Wide Events","\u002Fcore-concepts\u002Fwide-events","3.core-concepts\u002F1.wide-events","i-lucide-layers",{"title":131,"path":132,"stem":133,"icon":134},"Vite Plugin","\u002Fcore-concepts\u002Fvite-plugin","3.core-concepts\u002F10.vite-plugin","i-custom-vite",{"title":136,"path":137,"stem":138,"icon":139},"AI SDK Integration","\u002Fcore-concepts\u002Fai-sdk","3.core-concepts\u002F11.ai-sdk","i-lucide-scan-eye",{"title":141,"path":142,"stem":143,"icon":144},"Structured Errors","\u002Fcore-concepts\u002Fstructured-errors","3.core-concepts\u002F2.structured-errors","i-lucide-shield-alert",{"title":146,"path":147,"stem":148,"icon":149},"Best Practices","\u002Fcore-concepts\u002Fbest-practices","3.core-concepts\u002F3.best-practices","i-lucide-shield-check",{"title":151,"path":152,"stem":153,"icon":104},"Typed Fields","\u002Fcore-concepts\u002Ftyped-fields","3.core-concepts\u002F4.typed-fields",{"title":155,"path":156,"stem":157,"icon":158},"Sampling","\u002Fcore-concepts\u002Fsampling","3.core-concepts\u002F5.sampling","i-lucide-filter",{"title":160,"path":161,"stem":162,"icon":163},"Client Logging","\u002Fcore-concepts\u002Fclient-logging","3.core-concepts\u002F6.client-logging","i-lucide-monitor",{"title":165,"path":166,"stem":167,"icon":168},"Configuration","\u002Fcore-concepts\u002Fconfiguration","3.core-concepts\u002F7.configuration","i-lucide-settings",{"title":170,"path":171,"stem":172,"icon":173},"Performance","\u002Fcore-concepts\u002Fperformance","3.core-concepts\u002F8.performance","i-lucide-gauge",{"title":175,"path":176,"stem":177,"children":178,"page":29},"Adapters","\u002Fadapters","4.adapters",[179,183,188,193,198,203,208,213,218,223],{"title":36,"path":180,"stem":181,"icon":182},"\u002Fadapters\u002Foverview","4.adapters\u002F1.overview","i-custom-plug",{"title":184,"path":185,"stem":186,"icon":187},"Browser","\u002Fadapters\u002Fbrowser","4.adapters\u002F10.browser","i-lucide-globe",{"title":189,"path":190,"stem":191,"icon":192},"Axiom","\u002Fadapters\u002Faxiom","4.adapters\u002F2.axiom","i-custom-axiom",{"title":194,"path":195,"stem":196,"icon":197},"OTLP","\u002Fadapters\u002Fotlp","4.adapters\u002F3.otlp","i-simple-icons-opentelemetry",{"title":199,"path":200,"stem":201,"icon":202},"PostHog","\u002Fadapters\u002Fposthog","4.adapters\u002F4.posthog","i-simple-icons-posthog",{"title":204,"path":205,"stem":206,"icon":207},"Sentry","\u002Fadapters\u002Fsentry","4.adapters\u002F5.sentry","i-simple-icons-sentry",{"title":209,"path":210,"stem":211,"icon":212},"Better Stack","\u002Fadapters\u002Fbetter-stack","4.adapters\u002F6.better-stack","i-simple-icons-betterstack",{"title":214,"path":215,"stem":216,"icon":217},"File System","\u002Fadapters\u002Ffs","4.adapters\u002F7.fs","i-lucide-hard-drive",{"title":219,"path":220,"stem":221,"icon":222},"Custom Adapters","\u002Fadapters\u002Fcustom","4.adapters\u002F8.custom","i-lucide-code",{"title":224,"path":225,"stem":226,"icon":227},"Pipeline","\u002Fadapters\u002Fpipeline","4.adapters\u002F9.pipeline","i-lucide-workflow",{"title":229,"path":230,"stem":231,"children":232,"page":29},"Enrichers","\u002Fenrichers","5.enrichers",[233,236,240],{"title":36,"path":234,"stem":235,"icon":28},"\u002Fenrichers\u002Foverview","5.enrichers\u002F1.overview",{"title":237,"path":238,"stem":239,"icon":114},"Built-in","\u002Fenrichers\u002Fbuilt-in","5.enrichers\u002F2.built-in",{"title":241,"path":242,"stem":243,"icon":222},"Custom","\u002Fenrichers\u002Fcustom","5.enrichers\u002F3.custom",{"title":245,"path":246,"stem":247,"children":248,"page":29},"NuxtHub","\u002Fnuxthub","6.nuxthub",[249,253],{"title":36,"path":250,"stem":251,"icon":252},"\u002Fnuxthub\u002Foverview","6.nuxthub\u002F1.overview","i-lucide-database",{"title":254,"path":255,"stem":256,"icon":257},"Retention","\u002Fnuxthub\u002Fretention","6.nuxthub\u002F2.retention","i-lucide-clock",{"id":259,"title":25,"body":260,"description":703,"extension":704,"links":705,"meta":713,"navigation":714,"path":26,"seo":715,"stem":27,"__hash__":716},"docs\u002F1.getting-started\u002F4.agent-skills.md",{"type":261,"value":262,"toc":683},"minimark",[263,267,272,281,304,308,353,357,360,363,392,396,401,404,442,446,449,474,478,488,517,521,524,539,550,561,572,583,594,598,606,610,613,617,628,632,643,647,658,662,679],[264,265,266],"p",{},"evlog includes agent skills that help AI assistants review your logging patterns and guide evlog adoption.",[268,269,271],"h2",{"id":270},"what-are-agent-skills","What are Agent Skills?",[264,273,274,280],{},[275,276,25],"a",{"href":277,"rel":278},"https:\u002F\u002Fagentskills.io\u002F",[279],"nofollow"," is an open specification for packaging AI assistant capabilities. Skills provide:",[282,283,284,292,298],"ul",{},[285,286,287,291],"li",{},[288,289,290],"strong",{},"Domain knowledge",": Best practices for wide events and structured errors",[285,293,294,297],{},[288,295,296],{},"Code review",": Identify logging anti-patterns in your codebase",[285,299,300,303],{},[288,301,302],{},"Guided adoption",": Step-by-step help migrating to evlog",[268,305,307],{"id":306},"available-skills","Available Skills",[309,310,311,324],"table",{},[312,313,314],"thead",{},[315,316,317,321],"tr",{},[318,319,320],"th",{},"Skill",[318,322,323],{},"Description",[325,326,327,339],"tbody",{},[315,328,329,336],{},[330,331,332],"td",{},[333,334,335],"code",{},"skills\u002Freview-logging-patterns",[330,337,338],{},"Review code for logging patterns, suggest evlog adoption, guide wide event design",[315,340,341,346],{},[330,342,343],{},[333,344,345],{},"skills\u002Fanalyze-logs",[330,347,348,349,352],{},"Analyze application logs from ",[333,350,351],{},".evlog\u002Flogs\u002F"," to debug errors, investigate performance, and understand behavior",[268,354,356],{"id":355},"installing-the-skill","Installing the Skill",[264,358,359],{},"Compatible agents (Cursor, Claude Code, etc.) can discover and use skills automatically.",[264,361,362],{},"To manually install with the skills CLI:",[364,365,371],"pre",{"className":366,"code":367,"filename":368,"language":369,"meta":370,"style":370},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx skills add hugorcd\u002Fevlog\n","Terminal","bash","",[333,372,373],{"__ignoreMap":370},[374,375,378,382,386,389],"span",{"class":376,"line":377},"line",1,[374,379,381],{"class":380},"sBMFI","npx",[374,383,385],{"class":384},"sfazB"," skills",[374,387,388],{"class":384}," add",[374,390,391],{"class":384}," hugorcd\u002Fevlog\n",[268,393,395],{"id":394},"what-the-skill-does","What the Skill Does",[397,398,400],"h3",{"id":399},"code-review","Code Review",[264,402,403],{},"The skill analyzes your codebase for:",[282,405,406,420,426,436],{},[285,407,408,411,412,415,416,419],{},[288,409,410],{},"Scattered logging",": Multiple ",[333,413,414],{},"console.log"," or ",[333,417,418],{},"logger.info"," calls in request handlers",[285,421,422,425],{},[288,423,424],{},"Missing context",": Logs without user, request, or business context",[285,427,428,431,432,435],{},[288,429,430],{},"Unhelpful errors",": ",[333,433,434],{},"throw new Error()"," without structured fields",[285,437,438,441],{},[288,439,440],{},"Correlation gaps",": Missing request IDs or trace IDs",[397,443,445],{"id":444},"adoption-guidance","Adoption Guidance",[264,447,448],{},"The skill helps you:",[282,450,451,454,457,471],{},[285,452,453],{},"Convert traditional logging to wide events",[285,455,456],{},"Design effective wide event schemas",[285,458,459,460,463,464,467,468],{},"Implement structured errors with ",[333,461,462],{},"why",", ",[333,465,466],{},"fix",", and ",[333,469,470],{},"link",[285,472,473],{},"Set up evlog in Nuxt, Nitro, or standalone TypeScript",[397,475,477],{"id":476},"log-analysis","Log Analysis",[264,479,480,481,484,485,487],{},"The ",[333,482,483],{},"analyze-logs"," skill teaches your AI assistant to read structured logs from ",[333,486,351],{},":",[282,489,490,496,502,511],{},[285,491,492,495],{},[288,493,494],{},"Error debugging",": Find and explain errors, stack traces, and failure patterns",[285,497,498,501],{},[288,499,500],{},"Performance investigation",": Identify slow requests by duration",[285,503,504,507,508],{},[288,505,506],{},"Request tracing",": Follow a request across its lifecycle using ",[333,509,510],{},"requestId",[285,512,513,516],{},[288,514,515],{},"Pattern detection",": Spot recurring issues or anomalies",[397,518,520],{"id":519},"example-prompts","Example Prompts",[264,522,523],{},"Ask your AI assistant:",[525,526,527],"code-collapse",{},[364,528,533],{"className":529,"code":530,"filename":531,"language":532,"meta":370,"style":370},"language-txt shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","Review this file for logging anti-patterns\n","Prompt","txt",[333,534,535],{"__ignoreMap":370},[374,536,537],{"class":376,"line":377},[374,538,530],{},[525,540,541],{},[364,542,544],{"className":529,"code":543,"filename":531,"language":532,"meta":370,"style":370},"Help me convert these console.log calls to a wide event\n",[333,545,546],{"__ignoreMap":370},[374,547,548],{"class":376,"line":377},[374,549,543],{},[525,551,552],{},[364,553,555],{"className":529,"code":554,"filename":531,"language":532,"meta":370,"style":370},"What context should I add to this wide event?\n",[333,556,557],{"__ignoreMap":370},[374,558,559],{"class":376,"line":377},[374,560,554],{},[525,562,563],{},[364,564,566],{"className":529,"code":565,"filename":531,"language":532,"meta":370,"style":370},"How do I structure this error with evlog?\n",[333,567,568],{"__ignoreMap":370},[374,569,570],{"class":376,"line":377},[374,571,565],{},[525,573,574],{},[364,575,577],{"className":529,"code":576,"filename":531,"language":532,"meta":370,"style":370},"Why is the checkout endpoint failing?\n",[333,578,579],{"__ignoreMap":370},[374,580,581],{"class":376,"line":377},[374,582,576],{},[525,584,585],{},[364,586,588],{"className":529,"code":587,"filename":531,"language":532,"meta":370,"style":370},"Show me the slowest requests from today\n",[333,589,590],{"__ignoreMap":370},[374,591,592],{"class":376,"line":377},[374,593,587],{},[268,595,597],{"id":596},"skill-structure","Skill Structure",[364,599,604],{"className":600,"code":602,"language":603},[601],"language-text","skills\u002F\n├── review-logging-patterns\u002F\n│   ├── SKILL.md              # Main skill instructions\n│   └── references\u002F\n│       ├── wide-events.md    # Wide event patterns\n│       ├── structured-errors.md # Error handling guide\n│       └── code-review.md    # Review checklist\n└── analyze-logs\u002F\n    └── SKILL.md              # Log analysis from .evlog\u002Flogs\u002F\n","text",[333,605,602],{"__ignoreMap":370},[268,607,609],{"id":608},"reference-documents","Reference Documents",[264,611,612],{},"The skill includes reference documents that provide:",[397,614,616],{"id":615},"wide-eventsmd","wide-events.md",[282,618,619,622,625],{},[285,620,621],{},"Wide event anatomy and best practices",[285,623,624],{},"Context grouping patterns",[285,626,627],{},"Output format examples",[397,629,631],{"id":630},"structured-errorsmd","structured-errors.md",[282,633,634,637,640],{},[285,635,636],{},"Error field definitions",[285,638,639],{},"Status code guidelines",[285,641,642],{},"Frontend integration patterns",[397,644,646],{"id":645},"code-reviewmd","code-review.md",[282,648,649,652,655],{},[285,650,651],{},"Checklist for logging code review",[285,653,654],{},"Common anti-patterns to identify",[285,656,657],{},"Migration suggestions",[268,659,661],{"id":660},"next-steps","Next Steps",[282,663,664,669,674],{},[285,665,666,668],{},[275,667,20],{"href":21}," - Get started with evlog",[285,670,671,673],{},[275,672,126],{"href":127}," - Learn wide event design",[285,675,676,678],{},[275,677,141],{"href":142}," - Error handling patterns",[680,681,682],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":370,"searchDepth":684,"depth":684,"links":685},2,[686,687,688,689,696,697,702],{"id":270,"depth":684,"text":271},{"id":306,"depth":684,"text":307},{"id":355,"depth":684,"text":356},{"id":394,"depth":684,"text":395,"children":690},[691,693,694,695],{"id":399,"depth":692,"text":400},3,{"id":444,"depth":692,"text":445},{"id":476,"depth":692,"text":477},{"id":519,"depth":692,"text":520},{"id":596,"depth":684,"text":597},{"id":608,"depth":684,"text":609,"children":698},[699,700,701],{"id":615,"depth":692,"text":616},{"id":630,"depth":692,"text":631},{"id":645,"depth":692,"text":646},{"id":660,"depth":684,"text":661},"AI-assisted code review and evlog adoption using Agent Skills. Let AI review your logging patterns and guide migration to wide events.","md",[706],{"label":707,"icon":708,"to":709,"target":710,"color":711,"variant":712},"Agent Skills Spec","i-lucide-external-link","https:\u002F\u002Fagentskills.io","_blank","neutral","subtle",{},{"icon":28},{"title":25,"description":703},"BPPQZXIgvdA-sc0Voe0SBumBrr6RPDCkKYzxXH4jRfY",[718,720],{"title":20,"path":21,"stem":22,"description":719,"icon":23,"children":-1},"Get up and running with evlog in minutes. Learn useLogger, createError, parseError, and the log API for wide events and structured errors.",{"title":36,"path":37,"stem":38,"description":721,"icon":39,"children":-1},"evlog supports every major TypeScript framework. Choose your stack and get started in minutes.",1774103706365]