[{"data":1,"prerenderedAt":1093},["ShallowReactive",2],{"navigation_docs":3,"-reference-agent-skills":528,"-reference-agent-skills-surround":1089},[4,29,76,122,304,435,496],{"title":5,"path":6,"stem":7,"children":8,"page":28},"Start","\u002Fstart","1.start",[9,13,18,23],{"title":10,"path":11,"stem":12},"Introduction","\u002Fstart\u002Fintroduction","1.start\u002F1.introduction",{"title":14,"path":15,"stem":16,"icon":17},"Why start with evlog","\u002Fstart\u002Fwhy-evlog","1.start\u002F2.why-evlog","i-lucide-rocket",{"title":19,"path":20,"stem":21,"icon":22},"Installation","\u002Fstart\u002Finstallation","1.start\u002F3.installation","i-lucide-download",{"title":24,"path":25,"stem":26,"icon":27},"Quick Start","\u002Fstart\u002Fquick-start","1.start\u002F4.quick-start","i-lucide-zap",false,{"title":30,"path":31,"stem":32,"children":33,"page":28},"Learn","\u002Flearn","2.learn",[34,38,43,48,53,58,62,67,72],{"title":35,"path":36,"stem":37},"Learn evlog","\u002Flearn\u002Foverview","2.learn\u002F0.overview",{"title":39,"path":40,"stem":41,"icon":42},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":44,"path":45,"stem":46,"icon":47},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":49,"path":50,"stem":51,"icon":52},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":54,"path":55,"stem":56,"icon":57},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":59,"path":60,"stem":61},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling",{"title":63,"path":64,"stem":65,"icon":66},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":68,"path":69,"stem":70,"icon":71},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":73,"path":74,"stem":75},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs",{"title":77,"path":78,"stem":79,"children":80,"page":28},"CLI","\u002Fcli","3.cli",[81,85,90,95,99,103,108,113,118],{"title":82,"path":83,"stem":84},"evlog CLI","\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":86,"path":87,"stem":88,"icon":89},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":91,"path":92,"stem":93,"icon":94},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":96,"path":97,"stem":98},"Map rules","\u002Fcli\u002Frules","3.cli\u002F3.rules",{"title":100,"path":101,"stem":102},"Map scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring",{"title":104,"path":105,"stem":106,"icon":107},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":109,"path":110,"stem":111,"icon":112},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":114,"path":115,"stem":116,"icon":117},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":119,"path":120,"stem":121},"evlog agents","\u002Fcli\u002Fagents","3.cli\u002F8.agents",{"title":123,"path":124,"stem":125,"children":126,"page":28},"Integrate","\u002Fintegrate","4.integrate",[127,132,216],{"title":128,"path":129,"stem":130,"icon":131},"Overview","\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":133,"path":134,"stem":135,"children":136,"page":28},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[137,141,171,196],{"title":128,"path":138,"stem":139,"icon":140},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview","i-lucide-list",{"title":142,"path":143,"stem":144,"children":145,"page":28},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[146,151,156,161,166],{"title":147,"path":148,"stem":149,"icon":150},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":152,"path":153,"stem":154,"icon":155},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":157,"path":158,"stem":159,"icon":160},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":162,"path":163,"stem":164,"icon":165},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":167,"path":168,"stem":169,"icon":170},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":172,"path":173,"stem":174,"children":175,"page":28},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[176,181,186,191],{"title":177,"path":178,"stem":179,"icon":180},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":182,"path":183,"stem":184,"icon":185},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":187,"path":188,"stem":189,"icon":190},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":192,"path":193,"stem":194,"icon":195},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":197,"path":198,"stem":199,"children":200,"page":28},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[201,206,211],{"title":202,"path":203,"stem":204,"icon":205},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":207,"path":208,"stem":209,"icon":210},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":212,"path":213,"stem":214,"icon":215},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":217,"path":218,"stem":219,"children":220,"page":28},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[221,225,230,235,240,245,250,255,260,265,270,275,280,285,289,294,299],{"title":128,"path":222,"stem":223,"icon":224},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":226,"path":227,"stem":228,"icon":229},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":231,"path":232,"stem":233,"icon":234},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":236,"path":237,"stem":238,"icon":239},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":241,"path":242,"stem":243,"icon":244},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":246,"path":247,"stem":248,"icon":249},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":251,"path":252,"stem":253,"icon":254},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":256,"path":257,"stem":258,"icon":259},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":261,"path":262,"stem":263,"icon":264},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":266,"path":267,"stem":268,"icon":269},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":271,"path":272,"stem":273,"icon":274},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":276,"path":277,"stem":278,"icon":279},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":281,"path":282,"stem":283,"icon":284},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":286,"path":287,"stem":288,"icon":71},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":290,"path":291,"stem":292,"icon":293},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":295,"path":296,"stem":297,"icon":298},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":300,"path":301,"stem":302,"icon":303},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":305,"path":306,"stem":307,"children":308,"page":28},"Use Cases","\u002Fuse-cases","5.use-cases",[309,312,317,346,374,407,427,431],{"title":305,"path":310,"stem":311},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":313,"path":314,"stem":315,"icon":316},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":318,"icon":319,"path":320,"stem":321,"children":322,"page":28},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[323,326,331,336,341],{"title":128,"path":324,"stem":325,"icon":140},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":327,"path":328,"stem":329,"icon":330},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":332,"path":333,"stem":334,"icon":335},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":337,"path":338,"stem":339,"icon":340},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":342,"path":343,"stem":344,"icon":345},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":347,"icon":348,"path":349,"stem":350,"children":351,"page":28},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[352,355,360,365,369],{"title":128,"path":353,"stem":354,"icon":140},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":356,"path":357,"stem":358,"icon":359},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":361,"path":362,"stem":363,"icon":364},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":366,"path":367,"stem":368,"icon":316},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":370,"path":371,"stem":372,"icon":373},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance","i-lucide-gauge",{"title":375,"icon":376,"path":377,"stem":378,"children":379,"page":28},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[380,383,388,393,398,402],{"title":128,"path":381,"stem":382,"icon":140},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":384,"path":385,"stem":386,"icon":387},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":389,"path":390,"stem":391,"icon":392},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":394,"path":395,"stem":396,"icon":397},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":399,"path":400,"stem":401,"icon":376},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":403,"path":404,"stem":405,"icon":406},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes","i-lucide-book-open",{"title":342,"icon":373,"path":408,"stem":409,"children":410,"page":28},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[411,414,419,423],{"title":128,"path":412,"stem":413,"icon":140},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":415,"path":416,"stem":417,"icon":418},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":420,"path":421,"stem":422},"Telemetry Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest",{"title":424,"path":425,"stem":426,"icon":406},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":428,"path":429,"stem":430},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers",{"title":432,"path":433,"stem":434},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve",{"title":436,"path":437,"stem":438,"children":439,"page":28},"Extend","\u002Fextend","6.extend",[440,444,449,454,458,463,467,471,476,481,486,491],{"title":128,"path":441,"stem":442,"icon":443},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":445,"path":446,"stem":447,"icon":448},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":450,"path":451,"stem":452,"icon":453},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":455,"path":456,"stem":457,"icon":448},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","6.extend\u002F11.diagnostics-channel",{"title":459,"path":460,"stem":461,"icon":462},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":403,"path":464,"stem":465,"icon":466},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":468,"path":469,"stem":470},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":472,"path":473,"stem":474,"icon":475},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers","i-lucide-sparkles",{"title":477,"path":478,"stem":479,"icon":480},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling","i-lucide-filter",{"title":482,"path":483,"stem":484,"icon":485},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":487,"path":488,"stem":489,"icon":490},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":492,"path":493,"stem":494,"icon":495},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":424,"path":497,"stem":498,"children":499,"page":28},"\u002Freference","7.reference",[500,504,507,512,516,520,524],{"title":501,"path":502,"stem":503},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration",{"title":370,"path":505,"stem":506,"icon":373},"\u002Freference\u002Fperformance","7.reference\u002F2.performance",{"title":508,"path":509,"stem":510,"icon":511},"Vite Plugin","\u002Freference\u002Fvite-plugin","7.reference\u002F3.vite-plugin","i-custom-vite",{"title":513,"path":514,"stem":515,"icon":376},"Best Practices","\u002Freference\u002Fbest-practices","7.reference\u002F4.best-practices",{"title":517,"path":518,"stem":519},"evlog vs pino, winston, consola","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers",{"title":521,"path":522,"stem":523,"icon":475},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"title":525,"path":526,"stem":527},"Log cost","\u002Freference\u002Fcost","7.reference\u002F7.cost",{"id":529,"title":521,"body":530,"description":1075,"extension":1076,"links":1077,"meta":1085,"navigation":1086,"path":522,"seo":1087,"stem":523,"__hash__":1088},"docs\u002F7.reference\u002F6.agent-skills.md",{"type":531,"value":532,"toc":1055},"minimark",[533,549,554,562,585,589,657,661,664,667,696,707,722,726,731,734,772,788,792,795,819,823,833,862,866,869,876,932,936,940,953,957,962,966,970,978,982,985,989,1000,1004,1015,1019,1030,1034,1051],[534,535,536,537,544,545,548],"p",{},"evlog includes agent skills that help AI assistants review your logging patterns and guide evlog adoption. Pair them with ",[538,539,540],"a",{"href":83},[541,542,543],"code",{},"@evlog\u002Fcli"," when you want a scoreable coverage map. The skills teach the patterns; ",[541,546,547],{},"evlog map"," points at the dark entry points.",[550,551,553],"h2",{"id":552},"what-are-agent-skills","What are Agent Skills?",[534,555,556,561],{},[538,557,521],{"href":558,"rel":559},"https:\u002F\u002Fagentskills.io\u002F",[560],"nofollow"," is an open specification for packaging AI assistant capabilities. Skills provide:",[563,564,565,573,579],"ul",{},[566,567,568,572],"li",{},[569,570,571],"strong",{},"Domain knowledge",": Best practices for wide events and structured errors",[566,574,575,578],{},[569,576,577],{},"Code review",": Identify logging anti-patterns in your codebase",[566,580,581,584],{},[569,582,583],{},"Guided adoption",": Step-by-step help migrating to evlog",[550,586,588],{"id":587},"available-skills","Available Skills",[590,591,592,605],"table",{},[593,594,595],"thead",{},[596,597,598,602],"tr",{},[599,600,601],"th",{},"Skill",[599,603,604],{},"Description",[606,607,608,622,643],"tbody",{},[596,609,610,616],{},[611,612,613],"td",{},[541,614,615],{},"skills\u002Freview-logging-patterns",[611,617,618,619,621],{},"Review logging patterns, suggest evlog adoption; optionally use ",[541,620,547],{}," for coverage",[596,623,624,629],{},[611,625,626],{},[541,627,628],{},"skills\u002Fbuild-audit-logs",[611,630,631,632,635,636,635,639,642],{},"Design, wire, and review tamper-aware audit trails: policy, ",[541,633,634],{},"auditEnricher",", ",[541,637,638],{},"auditOnly",[541,640,641],{},"signed",", denials, redaction, tests",[596,644,645,650],{},[611,646,647],{},[541,648,649],{},"skills\u002Fanalyze-logs",[611,651,652,653,656],{},"Analyze application logs from ",[541,654,655],{},".evlog\u002Flogs\u002F"," to debug errors, investigate performance, and understand behavior",[550,658,660],{"id":659},"installing-the-skill","Installing the Skill",[534,662,663],{},"Compatible agents (Cursor, Claude Code, etc.) can discover and use skills automatically.",[534,665,666],{},"To install with the skills CLI:",[668,669,675],"pre",{"className":670,"code":671,"filename":672,"language":673,"meta":674,"style":674},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx skills add https:\u002F\u002Fwww.evlog.dev\n","Terminal","bash","",[541,676,677],{"__ignoreMap":674},[678,679,682,686,690,693],"span",{"class":680,"line":681},"line",1,[678,683,685],{"class":684},"sBMFI","npx",[678,687,689],{"class":688},"sfazB"," skills",[678,691,692],{"class":688}," add",[678,694,695],{"class":688}," https:\u002F\u002Fwww.evlog.dev\n",[534,697,698,702,703,706],{},[538,699,700],{"href":120},[541,701,119],{}," runs that same command for you, and additionally writes a short block of evlog conventions into your project's ",[541,704,705],{},"AGENTS.md",", the rules an agent should follow on every logging change, which the skills then back with the detail:",[668,708,710],{"className":670,"code":709,"filename":672,"language":673,"meta":674,"style":674},"npx @evlog\u002Fcli agents\n",[541,711,712],{"__ignoreMap":674},[678,713,714,716,719],{"class":680,"line":681},[678,715,685],{"class":684},[678,717,718],{"class":688}," @evlog\u002Fcli",[678,720,721],{"class":688}," agents\n",[550,723,725],{"id":724},"what-the-skill-does","What the Skill Does",[727,728,730],"h3",{"id":729},"code-review","Code Review",[534,732,733],{},"The skill analyzes your codebase for:",[563,735,736,750,756,766],{},[566,737,738,741,742,745,746,749],{},[569,739,740],{},"Scattered logging",": Multiple ",[541,743,744],{},"console.log"," or ",[541,747,748],{},"logger.info"," calls in request handlers",[566,751,752,755],{},[569,753,754],{},"Missing context",": Logs without user, request, or business context",[566,757,758,761,762,765],{},[569,759,760],{},"Unhelpful errors",": ",[541,763,764],{},"throw new Error()"," without structured fields",[566,767,768,771],{},[569,769,770],{},"Correlation gaps",": Missing request IDs or trace IDs",[534,773,774,775,779,780,783,784,787],{},"On Nuxt, Nitro, Next.js, and TanStack Start, ask the assistant to try ",[538,776,777],{"href":92},[541,778,547],{}," first (",[541,781,782],{},"npx @evlog\u002Fcli map --no-write","): it scores every entry point and lists FIX FIRST. Agents that prefer structured output can use ",[541,785,786],{},"npx @evlog\u002Fcli map --json --no-write",". The skill still works without the CLI; map is a separate early package that makes the review faster when available.",[727,789,791],{"id":790},"adoption-guidance","Adoption Guidance",[534,793,794],{},"The skill helps you:",[563,796,797,800,803,816],{},[566,798,799],{},"Convert traditional logging to wide events",[566,801,802],{},"Design effective wide event schemas",[566,804,805,806,635,809,812,813],{},"Implement structured errors with ",[541,807,808],{},"why",[541,810,811],{},"fix",", and ",[541,814,815],{},"link",[566,817,818],{},"Set up evlog in Nuxt, Nitro, or standalone TypeScript",[727,820,822],{"id":821},"log-analysis","Log Analysis",[534,824,825,826,829,830,832],{},"The ",[541,827,828],{},"analyze-logs"," skill teaches your AI assistant to read structured logs from ",[541,831,655],{},":",[563,834,835,841,847,856],{},[566,836,837,840],{},[569,838,839],{},"Error debugging",": Find and explain errors, stack traces, and failure patterns",[566,842,843,846],{},[569,844,845],{},"Performance investigation",": Identify slow requests by duration",[566,848,849,852,853],{},[569,850,851],{},"Request tracing",": Follow a request across its lifecycle using ",[541,854,855],{},"requestId",[566,857,858,861],{},[569,859,860],{},"Pattern detection",": Spot recurring issues or anomalies",[727,863,865],{"id":864},"example-prompts","Example Prompts",[534,867,868],{},"Ask your AI assistant:",[870,871,875],"prompt",{":actions":872,"description":873,"icon":874},"[\"copy\",\"cursor\",\"claude\"]","Review my code for logging anti-patterns","i-lucide-search-code","Review this file for logging anti-patterns",[870,877,879,885,920],{":actions":872,"description":878,"icon":94},"Raise my evlog map score",[534,880,881,882,884],{},"Run ",[541,883,782],{}," in this project and read the report.",[563,886,887,890,897,914],{},[566,888,889],{},"Fix the entry points listed under FIX FIRST, in order",[566,891,892,893,896],{},"For each one, run ",[541,894,895],{},"npx @evlog\u002Fcli map \u003Cfile> --no-write"," first to see the suggested shape",[566,898,899,900,635,903,635,906,909,910,913],{},"Keep the changes minimal: add ",[541,901,902],{},"useLogger()",[541,904,905],{},"log.set()",[541,907,908],{},"log.audit()",", or ",[541,911,912],{},"createError({ why, fix })"," where the report says they are missing",[566,915,916,917,919],{},"Re-run ",[541,918,782],{}," and confirm the score went up",[534,921,922,923,927,928],{},"Docs: ",[538,924,925],{"href":925,"rel":926},"https:\u002F\u002Fwww.evlog.dev\u002Fcli\u002Fmap",[560],"\nRules: ",[538,929,930],{"href":930,"rel":931},"https:\u002F\u002Fwww.evlog.dev\u002Fcli\u002Frules",[560],[870,933,935],{":actions":872,"description":934,"icon":47},"Convert console.log calls to a wide event","Help me convert these console.log calls to a wide event",[870,937,939],{":actions":872,"description":938,"icon":475},"Suggest context to add to my wide event","What context should I add to this wide event?",[870,941,943,944,947,948,952],{":actions":872,"description":942,"icon":376},"Design or review an audit trail with evlog","Follow the ",[569,945,946],{},"build-audit-logs"," skill. Help me design, implement, or review an audit trail with evlog (",[538,949,950],{"href":950,"rel":951},"https:\u002F\u002Fwww.evlog.dev\u002Fuse-cases\u002Faudit\u002Foverview",[560],").",[870,954,956],{":actions":872,"description":955,"icon":52},"Structure this error with evlog","How do I structure this error with evlog?",[870,958,961],{":actions":872,"description":959,"icon":960},"Debug a failing endpoint from logs","i-lucide-bug","Why is the checkout endpoint failing?",[870,963,965],{":actions":872,"description":964,"icon":373},"Find the slowest requests from today","Show me the slowest requests from today",[550,967,969],{"id":968},"skill-structure","Skill Structure",[668,971,976],{"className":972,"code":974,"language":975},[973],"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├── build-audit-logs\u002F\n│   ├── SKILL.md              # Audit policy, wiring, review checklist\n│   └── references\u002F\n│       └── framework-wiring.md\n└── analyze-logs\u002F\n    └── SKILL.md              # Log analysis from .evlog\u002Flogs\u002F\n","text",[541,977,974],{"__ignoreMap":674},[550,979,981],{"id":980},"reference-documents","Reference Documents",[534,983,984],{},"The skill includes reference documents that provide:",[727,986,988],{"id":987},"wide-eventsmd","wide-events.md",[563,990,991,994,997],{},[566,992,993],{},"Wide event anatomy and best practices",[566,995,996],{},"Context grouping patterns",[566,998,999],{},"Output format examples",[727,1001,1003],{"id":1002},"structured-errorsmd","structured-errors.md",[563,1005,1006,1009,1012],{},[566,1007,1008],{},"Error field definitions",[566,1010,1011],{},"Status code guidelines",[566,1013,1014],{},"Frontend integration patterns",[727,1016,1018],{"id":1017},"code-reviewmd","code-review.md",[563,1020,1021,1024,1027],{},[566,1022,1023],{},"Checklist for logging code review",[566,1025,1026],{},"Common anti-patterns to identify",[566,1028,1029],{},"Migration suggestions",[550,1031,1033],{"id":1032},"next-steps","Next Steps",[563,1035,1036,1041,1046],{},[566,1037,1038,1040],{},[538,1039,24],{"href":25}," - Get started with evlog",[566,1042,1043,1045],{},[538,1044,44],{"href":45}," - Learn wide event design",[566,1047,1048,1050],{},[538,1049,49],{"href":50}," - Error handling patterns",[1052,1053,1054],"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":674,"searchDepth":1056,"depth":1056,"links":1057},2,[1058,1059,1060,1061,1068,1069,1074],{"id":552,"depth":1056,"text":553},{"id":587,"depth":1056,"text":588},{"id":659,"depth":1056,"text":660},{"id":724,"depth":1056,"text":725,"children":1062},[1063,1065,1066,1067],{"id":729,"depth":1064,"text":730},3,{"id":790,"depth":1064,"text":791},{"id":821,"depth":1064,"text":822},{"id":864,"depth":1064,"text":865},{"id":968,"depth":1056,"text":969},{"id":980,"depth":1056,"text":981,"children":1070},[1071,1072,1073],{"id":987,"depth":1064,"text":988},{"id":1002,"depth":1064,"text":1003},{"id":1017,"depth":1064,"text":1018},{"id":1032,"depth":1056,"text":1033},"AI-assisted code review and evlog adoption using Agent Skills. Let AI review your logging patterns and guide migration to wide events.","md",[1078],{"label":1079,"icon":1080,"to":1081,"target":1082,"color":1083,"variant":1084},"Agent Skills Spec","i-lucide-external-link","https:\u002F\u002Fagentskills.io","_blank","neutral","subtle",{},{"icon":475},{"title":521,"description":1075},"iPF7SHOCUe9wrau8V2rHv8Jry4AkwmM-w8jLeiz9OpM",[1090,1092],{"title":517,"path":518,"stem":519,"description":1091,"children":-1},"[object Object]",{"title":525,"path":526,"stem":527,"description":1091,"children":-1},1786793457300]