<!DOCTYPE html><html lang="en" class=" astro-sckkx6r4"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="canonical" href="https://alexop.dev/prompts/claude/claude-nuxt-content-skill/"><meta name="generator" content="Astro v5.16.8"><!-- General Meta Tags --><title>Nuxt Content Documentation Reference Skill | alexop.dev</title><meta name="title" content="Nuxt Content Documentation Reference Skill ...
Scanned 9/7/2026
Install to Claude Code
npx -y skills add roboalchemist/llm-code-docs --skill llms --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Llms?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/roboalchemist-llms-llm-code-docs)More formats (shields.io, HTML) on the badges page.
# Source: https://alexop.dev/prompts/claude/claude-nuxt-content-skill
<!DOCTYPE html><html lang="en" class=" astro-sckkx6r4"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="canonical" href="https://alexop.dev/prompts/claude/claude-nuxt-content-skill/"><meta name="generator" content="Astro v5.16.8"><!-- General Meta Tags --><title>Nuxt Content Documentation Reference Skill | alexop.dev</title><meta name="title" content="Nuxt Content Documentation Reference Skill | alexop.dev"><meta name="description" content="Skill that ensures Claude fetches current Nuxt Content documentation before answering questions or implementing features"><meta name="author" content="Alexander Opalic"><link rel="sitemap" href="/sitemap-index.xml"><!-- KaTeX CSS for math rendering --><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css" integrity="sha384-n8MVd4RsNIU0tAv4ct0nTaAbDJwPJzDEaqSD1odI+WdtXRGWt2kTvGFasHpSy3SV" crossorigin="anonymous"><!-- KaTeX Auto-render Extension --><script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js" integrity="sha384-+VBxd3r6XgURycqtZ117nYw44OOcIax56Z4dCRWbxyPt0Koah1uHoK0o4+/RRE05" crossorigin="anonymous"></script><script>
document.addEventListener("DOMContentLoaded", function () {
if (typeof renderMathInElement === "function") {
renderMathInElement(document.body, {
delimiters: [
{ left: "$$", right: "$$", display: true },
{ left: "$", right: "$", display: false },
{ left: "\\(", right: "\\)", display: false },
{ left: "\\[", right: "\\]", display: true },
],
throwOnError: false,
trust: true,
strict: false,
output: "html",
});
}
});
</script><!-- Open Graph / Facebook --><meta property="og:title" content="Nuxt Content Documentation Reference Skill | alexop.dev"><meta property="og:description" content="Skill that ensures Claude fetches current Nuxt Content documentation before answering questions or implementing features"><meta property="og:url" content="https://alexop.dev/prompts/claude/claude-nuxt-content-skill/"><meta property="og:image" content="https://alexop.dev/prompts/claude/claude-nuxt-content-skill/index.png"><meta property="og:type" content="website"><!-- Article Published/Modified time --><meta property="article:published_time" content="2025-11-16T00:00:00.000Z"><!-- Twitter --><meta property="twitter:card" content="summary_large_image"><meta property="twitter:url" content="https://alexop.dev/prompts/claude/claude-nuxt-content-skill/"><meta property="twitter:title" content="Nuxt Content Documentation Reference Skill | alexop.dev"><meta property="twitter:description" content="Skill that ensures Claude fetches current Nuxt Content documentation before answering questions or implementing features"><meta property="twitter:image" content="https://alexop.dev/prompts/claude/claude-nuxt-content-skill/index.png"><meta name="google-site-verification" content="QV58fXjaYnMlTiRdFU7vB1JiPoClRYialURT2HtWaI4"><!-- Google JSON-LD Structured data --><script type="application/ld+json">{"@context":"https://schema.org","@type":"TechArticle","headline":"Nuxt Content Documentation Reference Skill | alexop.dev","description":"Skill that ensures Claude fetches current Nuxt Content documentation before answering questions or implementing features","datePublished":"2025-11-16T00:00:00.000Z","author":{"@type":"Person","name":"Alexander Opalic","url":"https://alexop.dev"}}</script><!-- Plausible --><script defer data-domain="alexop.dev" src="/js/script.js"></script><!-- Google Font --><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,200;0,400;0,500;0,600;0,700;1,400;1,600&display=swap" rel="stylesheet"><meta name="theme-color" content="#1d1f21"><meta name="astro-view-transitions-enabled" content="true"><meta name="astro-view-transitions-fallback" content="animate"><script type="module" src="/_astro/ClientRouter.astro_astro_type_script_index_0_lang.CDGfc0hd.js"></script><script src="/toggle-theme.js"></script><link rel="stylesheet" href="/_astro/about.C7UzwVpf.css">
<style>.breadcrumb:where(.astro-ilhxcym7){margin-left:auto;margin-right:auto;margin-bottom:.25rem;margin-top:2rem;width:100%;max-width:64rem;padding-left:1rem;padding-right:1rem}.breadcrumb:where(.astro-ilhxcym7) ul:where(.astro-ilhxcym7) li:where(.astro-ilhxcym7){display:inline}.breadcrumb:where(.astro-ilhxcym7) ul:where(.astro-ilhxcym7) li:where(.astro-ilhxcym7) a:where(.astro-ilhxcym7){text-transform:capitalize;opacity:.7}.breadcrumb:where(.astro-ilhxcym7) ul:where(.astro-ilhxcym7) li:where(.astro-ilhxcym7) span:where(.astro-ilhxcym7){opacity:.7}.breadcrumb:where(.astro-ilhxcym7) ul:where(.astro-ilhxcym7) li:where(.astro-ilhxcym7):not(:last-child) a:where(.astro-ilhxcym7):hover{opacity:1}
.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{scroll-margin-top:2rem}.heading-link{margin-left:.5rem;text-decoration-line:none;opacity:0;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.heading-link:hover{--tw-text-opacity: 1;color:rgba(var(--color-accent),var(--tw-text-opacity, 1))}.heading-link:focus{opacity:1}.group:hover .heading-link{opacity:1}.heading-link-icon{--tw-text-opacity: 1;color:rgba(var(--color-accent),var(--tw-text-opacity, 1))}
.jazz-demo-root[data-v-1a336f1a]{background:#030712;border:1px solid #374151;border-radius:.75rem;padding:1rem;font-family:system-ui,-apple-system,sans-serif;color:#e5e7eb;font-size:14px}.jazz-demo-header[data-v-1a336f1a]{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.jazz-demo-title[data-v-1a336f1a]{color:#fff;font-size:1rem;font-weight:600}.jazz-demo-toggles[data-v-1a336f1a]{display:flex;align-items:center;gap:.75rem}.jazz-demo-toggle-wrap[data-v-1a336f1a]{display:flex;align-items:center;gap:.5rem}.jazz-demo-toggle-label[data-v-1a336f1a]{color:#d1d5db;font-size:.75rem}.jazz-demo-toggle[data-v-1a336f1a]{position:relative;display:inline-flex;height:1.25rem;width:2.25rem;align-items:center;border-radius:9999px;transition:background-color .2s;border:none;cursor:pointer;padding:0}.jazz-demo-toggle-on[data-v-1a336f1a]{background:#2563eb}.jazz-demo-toggle-off[data-v-1a336f1a]{background:#4b5563}.jazz-demo-toggle-dot[data-v-1a336f1a]{display:inline-block;height:.875rem;width:.875rem;border-radius:9999px;background:#fff;transition:transform .2s}.jazz-demo-toggle-dot-on[data-v-1a336f1a]{transform:translate(1.125rem)}.jazz-demo-toggle-dot-off[data-v-1a336f1a]{transform:translate(.125rem)}.jazz-demo-covalue-id[data-v-1a336f1a]{display:flex;align-items:center;gap:.375rem;margin-bottom:.5rem;padding:.25rem .5rem;background:#1e1b4b;border:1px solid #3730a3;border-radius:.375rem;overflow:hidden}.jazz-demo-covalue-label[data-v-1a336f1a]{color:#a78bfa;font-size:.625rem;font-weight:600;white-space:nowrap}.jazz-demo-covalue-code[data-v-1a336f1a]{color:#c4b5fd;font-size:.625rem;font-family:ui-monospace,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jazz-demo-card[data-v-1a336f1a]{background:#111827;border:1px solid #374151;border-radius:.75rem;padding:1rem}.jazz-demo-loading[data-v-1a336f1a]{color:#9ca3af;text-align:center;padding:2rem 0}.jazz-demo-card[data-v-1a336f1a]{padding:1.5rem}.jazz-counter-display[data-v-1a336f1a]{font-size:3rem;font-weight:700;color:#fff;text-align:center;padding:1rem 0;font-variant-numeric:tabular-nums}.jazz-counter-controls[data-v-1a336f1a]{display:flex;gap:.5rem}.jazz-counter-btn[data-v-1a336f1a]{flex:1;padding:.5rem;font-size:1.25rem;font-weight:600;border:1px solid #374151;border-radius:.5rem;background:#1f2937;color:#e5e7eb;cursor:pointer;transition:background-color .2s}.jazz-counter-btn[data-v-1a336f1a]:hover{background:#374151}.jazz-counter-btn-primary[data-v-1a336f1a]{background:#2563eb;border-color:#2563eb;color:#fff}.jazz-counter-btn-primary[data-v-1a336f1a]:hover{background:#1d4ed8}
.jazz-demo-root[data-v-d8349330]{background:#030712;border:1px solid #374151;border-radius:.75rem;padding:1rem;font-family:system-ui,-apple-system,sans-serif;color:#e5e7eb;font-size:14px}.jazz-demo-header[data-v-d8349330]{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.jazz-demo-title[data-v-d8349330]{color:#fff;font-size:1rem;font-weight:600}.jazz-demo-toggles[data-v-d8349330]{display:flex;align-items:center;gap:.75rem}.jazz-demo-toggle-wrap[data-v-d8349330]{display:flex;align-items:center;gap:.5rem}.jazz-demo-toggle-label[data-v-d8349330]{color:#d1d5db;font-size:.75rem}.jazz-demo-toggle[data-v-d8349330]{position:relative;display:inline-flex;height:1.25rem;width:2.25rem;align-items:center;border-radius:9999px;transition:background-color .2s;border:none;cursor:pointer;padding:0}.jazz-demo-toggle-on[data-v-d8349330]{background:#2563eb}.jazz-demo-toggle-off[data-v-d8349330]{background:#4b5563}.jazz-demo-toggle-dot[data-v-d8349330]{display:inline-block;height:.875rem;width:.875rem;border-radius:9999px;background:#fff;transition:transform .2s}.jazz-demo-toggle-dot-on[data-v-d8349330]{transform:translate(1.125rem)}.jazz-demo-toggle-dot-off[data-v-d8349330]{transform:translate(.125rem)}.jazz-demo-covalue-id[data-v-d8349330]{display:flex;align-items:center;gap:.375rem;margin-bottom:.5rem;padding:.25rem .5rem;background:#1e1b4b;border:1px solid #3730a3;border-radius:.375rem;overflow:hidden}.jazz-demo-covalue-label[data-v-d8349330]{color:#a78bfa;font-size:.625rem;font-weight:600;white-space:nowrap}.jazz-demo-covalue-code[data-v-d8349330]{color:#c4b5fd;font-size:.625rem;font-family:ui-monospace,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jazz-demo-card[data-v-d8349330]{background:#111827;border:1px solid #374151;border-radius:.75rem;padding:1rem}.jazz-demo-loading[data-v-d8349330]{color:#9ca3af;text-align:center;padding:2rem 0}.jazz-demo-card-title[data-v-d8349330]{font-size:1.25rem;font-weight:700;color:#fff;margin:0 0 .75rem}.jazz-demo-form[data-v-d8349330]{margin-bottom:.75rem;display:flex;flex-direction:column;gap:.5rem}.jazz-demo-input[data-v-d8349330]{width:100%;padding:.375rem .625rem;background:#1f2937;border:1px solid #4b5563;border-radius:.5rem;color:#fff;font-size:.8125rem;outline:none;box-sizing:border-box}.jazz-demo-input[data-v-d8349330]:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f64d}.jazz-demo-input[data-v-d8349330]::-moz-placeholder{color:#6b7280}.jazz-demo-input[data-v-d8349330]::placeholder{color:#6b7280}.jazz-demo-add-btn[data-v-d8349330]{width:100%;padding:.375rem .75rem;background:#2563eb;color:#fff;border:none;border-radius:.5rem;font-weight:500;font-size:.8125rem;cursor:pointer;transition:background-color .2s}.jazz-demo-add-btn[data-v-d8349330]:hover{background:#1d4ed8}.jazz-demo-list[data-v-d8349330]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.jazz-demo-item[data-v-d8349330]{display:flex;align-items:center;gap:.5rem;padding:.375rem;border-radius:.5rem}.jazz-demo-item[data-v-d8349330]:hover{background:#1f2937}.jazz-demo-item:hover .jazz-demo-delete[data-v-d8349330]{opacity:1}.jazz-demo-drag[data-v-d8349330]{cursor:grab;color:#4b5563;transition:color .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none;display:flex;align-items:center}.jazz-demo-drag[data-v-d8349330]:active{cursor:grabbing}.jazz-demo-item:hover .jazz-demo-drag[data-v-d8349330]{color:#9ca3af}.jazz-demo-svg[data-v-d8349330]{width:1rem;height:1rem}.jazz-demo-checkbox[data-v-d8349330]{width:.875rem;height:.875rem;accent-color:#2563eb}.jazz-demo-text[data-v-d8349330]{flex:1;color:#e5e7eb;font-size:.8125rem}.jazz-demo-text-done[data-v-d8349330]{text-decoration:line-through;color:#6b7280}.jazz-demo-delete[data-v-d8349330]{opacity:0;transition:opacity .2s;color:#6b7280;background:none;border:none;padding:.125rem;cursor:pointer;display:flex;align-items:center}.jazz-demo-delete[data-v-d8349330]:hover{color:#f87171}.jazz-demo-empty[data-v-d8349330]{color:#6b7280;text-align:center;padding:1rem 0;margin:0;font-size:.8125rem}
</style></head> <body class="astro-sckkx6r4"> <div class="conference-wrapper border-b border-skin-line bg-skin-fill px-4 py-3 text-center text-skin-base astro-z2v4rtzb"><div class="mx-auto flex max-w-3xl flex-col items-center justify-center gap-3 sm:flex-row sm:gap-4 astro-z2v4rtzb"><div class="text-center sm:text-left astro-z2v4rtzb"><p class="text-lg font-semibold astro-z2v4rtzb"><span class="pulse-dot astro-z2v4rtzb"></span>
Next Talk: How to Build Local-First Apps with Vue</p><p class="text-sm opacity-80 astro-z2v4rtzb">March 12, 2026 — Vue.js Amsterdam</p></div><a href="https://vuejs.amsterdam/" class="conference-button inline-flex transform items-center justify-center gap-2 whitespace-nowrap rounded-md bg-skin-card px-4 py-2 font-medium text-skin-accent shadow transition-all duration-200 ease-in-out hover:scale-105 hover:bg-skin-card-muted hover:shadow-md astro-z2v4rtzb" target="_blank" rel="noopener noreferrer"><svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 astro-z2v4rtzb" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" class="astro-z2v4rtzb"></path><polyline points="15 3 21 3 21 9" class="astro-z2v4rtzb"></polyline><line x1="10" y1="14" x2="21" y2="3" class="astro-z2v4rtzb"></line></svg>
Conference
</a></div></div> <header class="astro-3ef6ksr2"> <a id="skip-to-content" href="#main-content" class="astro-3ef6ksr2">Skip to content</a> <div class="nav-container astro-3ef6ksr2"> <div class="top-nav-wrap astro-3ef6ksr2"> <a href="/" class="logo whitespace-nowrap astro-3ef6ksr2"> alexop.dev </a> <nav id="nav-menu" aria-label="Main" class="astro-3ef6ksr2"> <button class="hamburger-menu focus-outline astro-3ef6ksr2" aria-label="Open Menu" aria-expanded="false" aria-controls="menu-items"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="menu-icon astro-3ef6ksr2"> <line x1="7" y1="12" x2="21" y2="12" class="line astro-3ef6ksr2"></line> <line x1="3" y1="6" x2="21" y2="6" class="line astro-3ef6ksr2"></line> <line x1="12" y1="18" x2="21" y2="18" class="line astro-3ef6ksr2"></line> <line x1="18" y1="6" x2="6" y2="18" class="close astro-3ef6ksr2"></line> <line x1="6" y1="6" x2="18" y2="18" class="close astro-3ef6ksr2"></line> </svg> </button> <ul id="menu-items" class="display-none sm:flex astro-3ef6ksr2"> <li class="astro-3ef6ksr2"> <a href="/posts/" class=" astro-3ef6ksr2">
📝 Posts
</a> </li> <li class="astro-3ef6ksr2"> <a href="/tils/" class=" astro-3ef6ksr2">
💡 TILs
</a> </li> <li class="astro-3ef6ksr2"> <a href="/notes/" class=" astro-3ef6ksr2">
📔 Notes
</a> </li> <li class="astro-3ef6ksr2"> <a href="/talks/" class=" astro-3ef6ksr2">
🎤 Talks
</a> </li> <li class="astro-3ef6ksr2"> <a href="/projects/" class=" astro-3ef6ksr2">
🚀 Projects
</a> </li> <li class="astro-3ef6ksr2"> <a href="/prompts/" class="active astro-3ef6ksr2">
🤖 Prompts
</a> </li> <li class="astro-3ef6ksr2"> <a href="/tags/" class=" astro-3ef6ksr2">
🏷️ Tags
</a> </li> <li class="astro-3ef6ksr2"> <a href="/about/" class=" astro-3ef6ksr2">
👤 About
</a> </li> <li class="astro-3ef6ksr2"> <a href="/search/" class="group inline-block hover:text-skin-accent focus-outline p-3 sm:p-1 flex items-center astro-3ef6ksr2" aria-label="search" title="Search"> <svg xmlns="http://www.w3.org/2000/svg" class="scale-125 sm:scale-100 astro-3ef6ksr2"><path d="M19.023 16.977a35.13 35.13 0 0 1-1.367-1.384c-.372-.378-.596-.653-.596-.653l-2.8-1.337A6.962 6.962 0 0 0 16 9c0-3.859-3.14-7-7-7S2 5.141 2 9s3.14 7 7 7c1.763 0 3.37-.66 4.603-1.739l1.337 2.8s.275.224.653.596c.387.363.896.854 1.384 1.367l1.358 1.392.604.646 2.121-2.121-.646-.604c-.379-.372-.885-.866-1.391-1.36zM9 14c-2.757 0-5-2.243-5-5s2.243-5 5-5 5 2.243 5 5-2.243 5-5 5z" class="astro-3ef6ksr2"></path> </svg> <span class="sr-only astro-3ef6ksr2">Search</span> <span class="hidden text-sm sm:inline astro-3ef6ksr2">Search (⌘K)</span> </a> </li> </ul> </nav> </div> </div> </header> <script type="module">function c(){const e=document.querySelector(".hamburger-menu"),t=document.querySelector(".menu-icon"),r=document.querySelector("#menu-items");e?.addEventListener("click",()=>{const n=e.getAttribute("aria-expanded")==="true";t?.classList.toggle("is-active"),e.setAttribute("aria-expanded",n?"false":"true"),e.setAttribute("aria-label",n?"Open Menu":"Close Menu"),r?.classList.toggle("display-none")})}function a(){document.addEventListener("keydown",e=>{if((e.metaKey||e.ctrlKey)&&e.key==="k"){e.preventDefault();const t=document.querySelector('a[href="/search/"]');t&&t instanceof HTMLElement&&t.click()}})}c();a();document.addEventListener("astro:after-swap",()=>{c(),a()});</script> <nav class="breadcrumb astro-ilhxcym7" aria-label="breadcrumb"> <ul class="astro-ilhxcym7"> <li class="astro-ilhxcym7"> <a href="/" class="astro-ilhxcym7">Home</a> <span aria-hidden="true" class="astro-ilhxcym7">»</span> </li> <li class="astro-ilhxcym7"> <a href="/prompts/" class="astro-ilhxcym7">prompts</a> <span aria-hidden="true" class="astro-ilhxcym7">»</span> </li><li class="astro-ilhxcym7"> <a href="/claude/" class="astro-ilhxcym7">claude</a> <span aria-hidden="true" class="astro-ilhxcym7">»</span> </li><li class="astro-ilhxcym7"> <span class="lowercase astro-ilhxcym7" aria-current="page"> claude-nuxt-content-skill </span> </li> </ul> </nav> <main id="main-content" class="mx-auto max-w-4xl px-4 pb-12 pt-8"> <!-- Back Link --> <div class="mb-6"> <a href="/prompts/claude/" class="focus:ring-skin-accent inline-flex items-center gap-1 rounded-md px-3 py-1.5 text-sm text-skin-accent transition-colors hover:bg-skin-card focus:outline-none focus:ring-2 focus:ring-offset-2" onclick="event.preventDefault(); history.back();">
← Back to Claude Prompts
</a> </div> <!-- Header --> <header class="mb-8"> <h1 class="mb-4 text-3xl font-bold text-skin-base">Nuxt Content Documentation Reference Skill</h1> <div class="mb-4 flex flex-wrap items-center gap-2"> <span class="inline-block rounded-md bg-skin-card px-2 py-1 text-xs " role="img" aria-label="Category: Skill"><span aria-hidden="true">🎯</span> <!-- -->Skill</span> <span class="inline-block rounded-md bg-skin-card px-2 py-1 text-xs"> Claude </span> </div> <div class="flex flex-wrap gap-2"> <a href="/prompts/?q=nuxt" class="text-sm text-skin-base/70 transition-colors hover:text-skin-accent hover:underline">
#nuxt </a><a href="/prompts/?q=nuxt-content" class="text-sm text-skin-base/70 transition-colors hover:text-skin-accent hover:underline">
#nuxt-content </a><a href="/prompts/?q=documentation" class="text-sm text-skin-base/70 transition-colors hover:text-skin-accent hover:underline">
#documentation </a><a href="/prompts/?q=mdc" class="text-sm text-skin-base/70 transition-colors hover:text-skin-accent hover:underline">
#mdc </a><a href="/prompts/?q=webfetch" class="text-sm text-skin-base/70 transition-colors hover:text-skin-accent hover:underline">
#webfetch </a> </div> </header> <!-- Description and Metadata --> <section class="mb-8"> <p class="mb-4 text-skin-base">Skill that ensures Claude fetches current Nuxt Content documentation before answering questions or implementing features</p> <dl class="space-y-2 text-sm text-skin-base/70"> <div> <dt class="inline font-medium text-skin-base">
💡 Use Case:
</dt> <dd class="ml-2 inline">Use when working with Nuxt Content queries, MDC components, or document-driven mode - especially when API accuracy is critical</dd> </div> <div> <dt class="inline font-medium text-skin-base">
📤 Expected Output:
</dt> <dd class="ml-2 inline">Targeted documentation extraction (1-3k tokens) followed by accurate answers or implementations based on current API</dd> </div> <div> <dt class="inline font-medium text-skin-base">
✅ Success Rate:
</dt> <dd class="ml-2 inline capitalize">High - prevents stale API usage and reduces context bloat through targeted extraction</dd> </div> </dl> </section> <!-- Prompt Content --> <section class="mb-8"> <div class="mb-4 flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between"> <h2 class="text-lg font-semibold text-skin-base">Prompt Content</h2> <style>astro-island,astro-slot,astro-static-slot{display:contents}</style><script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).load=e;window.dispatchEvent(new Event("astro:load"));})();</script><script>(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var d=(i,o,a)=>g(i,typeof o!="symbol"?o+"":o,a);{let i={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>1/0*t},o=t=>{let[l,e]=t;return l in i?i[l](e):void 0},a=t=>t.map(o),m=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map(([l,e])=>[l,o(e)]));class y extends HTMLElement{constructor(){super(...arguments);d(this,"Component");d(this,"hydrator");d(this,"hydrate",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest("astro-island[ssr]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let c=this.querySelectorAll("astro-slot"),n={},h=this.querySelectorAll("template[data-astro-template]");for(let r of h){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("data-astro-template")||"default"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("name")||"default"]=r.innerHTML)}let p;try{p=this.hasAttribute("props")?m(JSON.parse(this.getAttribute("props"))):{}}catch(r){let s=this.getAttribute("component-url")||"<unknown>",v=this.getAttribute("component-export");throw v&&(s+=` (export ${v})`),console.error(`[hydrate] Error parsing props for component ${s}`,this.getAttribute("props"),r),r}let u;await this.hydrator(this)(this.Component,p,n,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});d(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute("opts")),c=this.getAttribute("client");if(Astro[c]===void 0){window.addEventListener(`astro:${c}`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute("renderer-url"),[h,{default:p}]=await Promise.all([import(this.getAttribute("component-url")),n?import(n):()=>()=>{}]),u=this.getAttribute("component-export")||"default";if(!u.includes("."))this.Component=h[u];else{this.Component=h;for(let f of u.split("."))this.Component=this.Component[f]}return this.hydrator=p,this.hydrate},e,this)}catch(n){console.error(`[astro-island] Error hydrating ${this.getAttribute("component-url")}`,n)}}attributeChangedCallback(){this.hydrate()}}d(y,"observedAttributes",["props"]),customElements.get("astro-island")||customElements.define("astro-island",y)}})();</script><astro-island uid="1lCs9C" prefix="r3" component-url="/_astro/prompts.BTh7qZgL.js" component-export="PromptCopyButton" renderer-url="/_astro/client.DGA1VMK9.js" props="{"content":[0,"---\n\nname: nuxt-content\ndescription: Use when answering questions about OR implementing features with Nuxt Content (queries, MDC components, document-driven mode), especially when uncertain about current API - Nuxt Content is frequently updated with breaking changes, so fetch current documentation from llms.txt before responding to ensure accuracy over training data\n\n---\n\n## Nuxt Content Documentation Reference\n\n## Overview\n\n**Nuxt Content evolves rapidly. Training data is stale. Fetch current docs FIRST, implement/answer SECOND.**\n\nCore principle: https://content.nuxt.com/llms.txt is the source of truth for ALL Nuxt Content questions AND implementations, regardless of how simple the task seems or how confident you feel about the API.\n\n## When to Use\n\nUse this skill for ANY question OR implementation task about:\n\n- Nuxt Content queries (`queryContent`, `where`, operators)\n- MDC (Markdown Components) syntax\n- Document-driven mode\n- Content rendering components\n- API references\n- Version-specific features\n- Troubleshooting Nuxt Content issues\n\n**Especially use when:**\n\n- Implementing a feature using Nuxt Content\n- Not confident about current API syntax\n- Aware training data might be stale\n- About to write code involving Nuxt Content\n- User mentions \"Nuxt Content\" and you need to take action\n\n## Mandatory Workflow\n\n**Step 1: Fetch Documentation with Targeted Extraction**\n\n**CRITICAL:** Use targeted WebFetch prompts that extract ONLY the specific sections needed. Do NOT ask for full documentation dumps.\n\n```\nUse WebFetch on: https://content.nuxt.com/llms.txt\n\nPrompt format:\n\"Extract ONLY the documentation for [specific API/feature/concept].\n\nInclude:\n- API syntax with parameters\n- Code examples\n- Version-specific notes\n- Common gotchas\n\nExclude everything else. Return a concise summary.\"\n```\n\n**Why targeted extraction matters:**\n\n- Full docs are 50k+ tokens\n- Targeted extraction returns 1-3k tokens\n- 20-50x context savings vs full dump\n- Faster responses, cleaner context\n\n**Exception for reusing:** Reuse docs from same conversation ONLY if ALL conditions met:\n\n- You already fetched docs for this topic in this conversation AND\n- The previous fetch explicitly covered the SAME specific API/feature/concept AND\n- You can answer the new question completely with the previous result AND\n- Less than 10 minutes have passed\n\n**When in doubt, fetch again with targeted prompt.** Be specific about what to extract.\n\n**Step 2: Answer Using Extracted Documentation**\n\n- Use extracted documentation as PRIMARY source\n- Reference training data only to supplement or provide context\n- Include links to relevant docs sections\n- Cite what came from llms.txt vs. general knowledge\n\n**NO EXCEPTIONS to targeted fetch:** Fetch docs even when:\n\n- User says \"quick question\"\n- Question seems simple\n- You feel confident about the answer\n- User mentions they already looked at docs\n- It's a yes/no question\n- It's a version confirmation\n- You're late in the conversation\n\n## Red Flags - STOP and Dispatch Subagent First\n\nIf you're thinking ANY of these thoughts, STOP. Dispatch subagent to fetch docs FIRST:\n\n**Question-answering red flags:**\n\n- \"This is a straightforward question I know\"\n- \"User needs this fast\"\n- \"Fetching docs would take extra time\"\n- \"Low risk if I'm wrong\"\n- \"I can fetch later if needed\"\n- \"They already looked at docs\"\n- \"This feature is mature, my knowledge is current\"\n- \"Just need to confirm what I know\"\n\n**Implementation red flags:**\n\n- \"I'll implement based on what I know\"\n- \"This seems straightforward to implement\"\n- \"Let me write the code quickly\"\n- \"I know how queryContent works\"\n- \"I remember the MDC syntax\"\n- \"I've used Nuxt Content before\" (in training data)\n- \"I can update if the code fails\"\n- \"Just need to write simple query code\"\n\n**Context-bloat red flags (CRITICAL):**\n\n- \"I'll fetch the full documentation\"\n- \"Let me get all the docs to be thorough\"\n- \"I'll load llms.txt completely\"\n- \"Better to have all the info\"\n- \"Generic WebFetch prompt is fine\"\n\n**ABSOLUTELY FORBIDDEN:** Fetching full documentation dump. This bloats context with 50k+ tokens.\n\n**REQUIRED:** Use targeted WebFetch prompts that extract ONLY the specific section needed (1-3k tokens).\n\n**All of these mean: Use targeted extraction. Specify EXACTLY what to extract. No full dumps.**\n\n## Why Training Data Fails\n\nNuxt Content v3 introduced breaking changes. API evolves. Features change. Your training data is from January 2025 - documentation is updated continuously.\n\n**Real examples from testing:**\n\n- Agent suggested `$contains` without checking current operator syntax\n- Agent confirmed MDC without verifying v3-specific changes\n- Agent provided query patterns without checking current API\n\nEvery case: Agent was confident. Every case: Should have fetched docs.\n\n## Common Mistakes\n\n| Mistake | Why It Happens | Fix |\n| -------------------------------- | ---------------------------- | ------------------------------------------------------------ |\n| Answer from memory | Confidence in training data | Fetch llms.txt with targeted extraction first |\n| Skip docs for \"simple\" questions | Assume simplicity = accuracy | Simple questions need current docs too - fetch targeted |\n| Postpone fetching | \"Can fetch if wrong\" | Wrong answers waste user time - fetch first |\n| Trust version knowledge | \"Feature is mature\" | Mature features still change - verify with docs |\n| Cite \"official docs say\" | User mentioned docs | Fetch to verify what docs actually say |\n| Fetch full documentation | \"Better to be thorough\" | Targeted extraction (1-3k tokens) vs full dump (50k+ tokens) |\n| Generic WebFetch prompt | Laziness | Specify EXACTLY what section to extract |\n\n## Quick Reference\n\n**Every Nuxt Content interaction:**\n\n1. Use WebFetch on https://content.nuxt.com/llms.txt with TARGETED prompt\n2. Extract ONLY relevant sections (not full docs)\n3. Use extracted info as primary source\n4. Provide answer/implementation based on extracted docs\n5. Supplement with training knowledge only if needed\n6. Cite source (docs vs. general knowledge)\n\n**Targeted WebFetch prompt template:**\n\n```\n\"Extract ONLY the documentation for [specific API/feature/concept] from Nuxt Content.\n\nInclude:\n- API syntax with parameters\n- Code examples\n- Version-specific notes\n- Common gotchas\n\nExclude everything else. Return a concise summary (1-3k tokens max).\"\n```\n\n**Context savings:** Targeted extraction (1-3k tokens) vs full dump (50k+ tokens) = 20-50x savings\n\n## Rationalization Table\n\n| Excuse | Reality |\n| ----------------------------------------- | ----------------------------------------------------------------- |\n| \"User needs fast answer/implementation\" | Fast wrong answer wastes more time than slow correct answer |\n| \"I know this from training\" | Training data is stale; Nuxt Content v3 has breaking changes |\n| \"Straightforward question/implementation\" | Simple tasks still need current API syntax |\n| \"Low risk if wrong\" | Wrong answer/code blocks user; high cost to be wrong |\n| \"They already looked at docs\" | Verify what docs actually say - might have misread |\n| \"Feature is mature\" | Mature features get updates and deprecations |\n| \"Can fetch later if needed\" | Fetch now = right first time; fetch later = wasted round trip |\n| \"Just confirming what I know\" | Confirmation requires checking source, not memory |\n| \"I'll implement then test\" | Implementing wrong API = debugging time for user |\n| \"I can update if it fails\" | Test-fix cycle wastes time; fetch docs first prevents failures |\n| \"I'll fetch all the docs to be thorough\" | Full dump = 50k+ tokens; targeted extraction = 1-3k tokens |\n| \"Generic WebFetch prompt is fine\" | Targeted prompt extracts only what's needed; saves 20-50x context |\n| \"The docs are small enough\" | llms.txt is 50k+ tokens; always use targeted extraction |\n\n## Real-World Impact\n\n**Without this skill:** Agents provide outdated API syntax, wrong operator names, incorrect version information, implement features with stale APIs based on training data, blow up context with full documentation dumps.\n\n**With this skill:** Agents fetch current documentation with targeted extraction before answering OR implementing, provide accurate syntax, cite correct version info, save user debugging time, keep conversation context efficient.\n\n**Context savings:** Targeted extraction (1-3k tokens) vs full dump (50k+ tokens) = 20-50x savings per interaction\n\n**Time cost:** Targeted fetch adds 5-10 seconds. User debugging incorrect information or broken implementations adds 5-30 minutes. Always fetch with targeted extraction first."]}" ssr client="load" opts="{"name":"PromptCopyButton","value":true}" await-children><button class="focus:ring-skin-accent/20 inline-flex items-center gap-2 whitespace-nowrap rounded-lg border-2 border-skin-line bg-skin-card px-4 py-2.5 text-sm font-medium text-skin-base shadow-sm transition-all hover:border-skin-accent/50 hover:text-skin-accent focus:border-skin-accent focus:outline-none focus:ring-2" aria-label="Copy prompt to clipboard"><svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor"><path d="M8 3a1 1 0 011-1h2a1 1 0 110 2H9a1 1 0 01-1-1z"></path><path d="M6 3a2 2 0 00-2 2v11a2 2 0 002 2h8a2 2 0 002-2V5a2 2 0 00-2-2 3 3 0 01-3 3H9a3 3 0 01-3-3z"></path></svg>Copy Prompt</button><!--astro:end--></astro-island> </div> <div class="overflow-x-auto rounded-md border border-skin-line bg-skin-card p-4"> <div class="prose prose-sm max-w-none text-skin-base prose-headings:text-skin-base prose-p:text-skin-base prose-a:text-skin-accent prose-strong:text-skin-base prose-code:text-skin-base prose-pre:bg-skin-fill"> <hr>
<p>name: nuxt-content
description: Use when answering questions about OR implementing features with Nuxt Content (queries, MDC components, document-driven mode), especially when uncertain about current API - Nuxt Content is frequently updated with breaking changes, so fetch current documentation from llms.txt before responding to ensure accuracy over training data</p>
<hr>
<h2 id="nuxt-content-documentation-reference">Nuxt Content Documentation Reference<a class="heading-link" aria-label="Link to section" href="#nuxt-content-documentation-reference"><span class="heading-link-icon">#</span></a></h2>
<h2 id="overview">Overview<a class="heading-link" aria-label="Link to section" href="#overview"><span class="heading-link-icon">#</span></a></h2>
<p><strong>Nuxt Content evolves rapidly. Training data is stale. Fetch current docs FIRST, implement/answer SECOND.</strong></p>
<p>Core principle: <a href="https://content.nuxt.com/llms.txt" rel="noopener noreferrer" target="_blank">https://content.nuxt.com/llms.txt</a> is the source of truth for ALL Nuxt Content questions AND implementations, regardless of how simple the task seems or how confident you feel about the API.</p>
<h2 id="when-to-use">When to Use<a class="heading-link" aria-label="Link to section" href="#when-to-use"><span class="heading-link-icon">#</span></a></h2>
<p>Use this skill for ANY question OR implementation task about:</p>
<ul>
<li>Nuxt Content queries (<code>queryContent</code>, <code>where</code>, operators)</li>
<li>MDC (Markdown Components) syntax</li>
<li>Document-driven mode</li>
<li>Content rendering components</li>
<li>API references</li>
<li>Version-specific features</li>
<li>Troubleshooting Nuxt Content issues</li>
</ul>
<p><strong>Especially use when:</strong></p>
<ul>
<li>Implementing a feature using Nuxt Content</li>
<li>Not confident about current API syntax</li>
<li>Aware training data might be stale</li>
<li>About to write code involving Nuxt Content</li>
<li>User mentions “Nuxt Content” and you need to take action</li>
</ul>
<h2 id="mandatory-workflow">Mandatory Workflow<a class="heading-link" aria-label="Link to section" href="#mandatory-workflow"><span class="heading-link-icon">#</span></a></h2>
<p><strong>Step 1: Fetch Documentation with Targeted Extraction</strong></p>
<p><strong>CRITICAL:</strong> Use targeted WebFetch prompts that extract ONLY the specific sections needed. Do NOT ask for full documentation dumps.</p>
<pre class="astro-code tokyo-night" style="background-color:#1a1b26;color:#a9b1d6; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;" tabindex="0" data-language="plaintext"><code><span class="line"><span>Use WebFetch on: https://content.nuxt.com/llms.txt</span></span>
<span class="line"><span></span></span>
<span class="line"><span>Prompt format:</span></span>
<span class="line"><span>"Extract ONLY the documentation for [specific API/feature/concept].</span></span>
<span class="line"><span></span></span>
<span class="line"><span>Include:</span></span>
<span class="line"><span>- API syntax with parameters</span></span>
<span class="line"><span>- Code examples</span></span>
<span class="line"><span>- Version-specific notes</span></span>
<span class="line"><span>- Common gotchas</span></span>
<span class="line"><span></span></span>
<span class="line"><span>Exclude everything else. Return a concise summary."</span></span></code><button type="button" class="copy" data-code="Use WebFetch on: https://content.nuxt.com/llms.txt
Prompt format:
"Extract ONLY the documentation for [specific API/feature/concept].
Include:
- API syntax with parameters
- Code examples
- Version-specific notes
- Common gotchas
Exclude everything else. Return a concise summary."" onclick="
navigator.clipboard.writeText(this.dataset.code);
this.classList.add('copied');
setTimeout(() => this.classList.remove('copied'), 3000);
" aria-label="Copy code"><span class="ready"></span><span class="success"></span></button></pre>
<p><strong>Why targeted extraction matters:</strong></p>
<ul>
<li>Full docs are 50k+ tokens</li>
<li>Targeted extraction returns 1-3k tokens</li>
<li>20-50x context savings vs full dump</li>
<li>Faster responses, cleaner context</li>
</ul>
<p><strong>Exception for reusing:</strong> Reuse docs from same conversation ONLY if ALL conditions met:</p>
<ul>
<li>You already fetched docs for this topic in this conversation AND</li>
<li>The previous fetch explicitly covered the SAME specific API/feature/concept AND</li>
<li>You can answer the new question completely with the previous result AND</li>
<li>Less than 10 minutes have passed</li>
</ul>
<p><strong>When in doubt, fetch again with targeted prompt.</strong> Be specific about what to extract.</p>
<p><strong>Step 2: Answer Using Extracted Documentation</strong></p>
<ul>
<li>Use extracted documentation as PRIMARY source</li>
<li>Reference training data only to supplement or provide context</li>
<li>Include links to relevant docs sections</li>
<li>Cite what came from llms.txt vs. general knowledge</li>
</ul>
<p><strong>NO EXCEPTIONS to targeted fetch:</strong> Fetch docs even when:</p>
<ul>
<li>User says “quick question”</li>
<li>Question seems simple</li>
<li>You feel confident about the answer</li>
<li>User mentions they already looked at docs</li>
<li>It’s a yes/no question</li>
<li>It’s a version confirmation</li>
<li>You’re late in the conversation</li>
</ul>
<h2 id="red-flags---stop-and-dispatch-subagent-first">Red Flags - STOP and Dispatch Subagent First<a class="heading-link" aria-label="Link to section" href="#red-flags---stop-and-dispatch-subagent-first"><span class="heading-link-icon">#</span></a></h2>
<p>If you’re thinking ANY of these thoughts, STOP. Dispatch subagent to fetch docs FIRST:</p>
<p><strong>Question-answering red flags:</strong></p>
<ul>
<li>“This is a straightforward question I know”</li>
<li>“User needs this fast”</li>
<li>“Fetching docs would take extra time”</li>
<li>“Low risk if I’m wrong”</li>
<li>“I can fetch later if needed”</li>
<li>“They already looked at docs”</li>
<li>“This feature is mature, my knowledge is current”</li>
<li>“Just need to confirm what I know”</li>
</ul>
<p><strong>Implementation red flags:</strong></p>
<ul>
<li>“I’ll implement based on what I know”</li>
<li>“This seems straightforward to implement”</li>
<li>“Let me write the code quickly”</li>
<li>“I know how queryContent works”</li>
<li>“I remember the MDC syntax”</li>
<li>“I’ve used Nuxt Content before” (in training data)</li>
<li>“I can update if the code fails”</li>
<li>“Just need to write simple query code”</li>
</ul>
<p><strong>Context-bloat red flags (CRITICAL):</strong></p>
<ul>
<li>“I’ll fetch the full documentation”</li>
<li>“Let me get all the docs to be thorough”</li>
<li>“I’ll load llms.txt completely”</li>
<li>“Better to have all the info”</li>
<li>“Generic WebFetch prompt is fine”</li>
</ul>
<p><strong>ABSOLUTELY FORBIDDEN:</strong> Fetching full documentation dump. This bloats context with 50k+ tokens.</p>
<p><strong>REQUIRED:</strong> Use targeted WebFetch prompts that extract ONLY the specific section needed (1-3k tokens).</p>
<p><strong>All of these mean: Use targeted extraction. Specify EXACTLY what to extract. No full dumps.</strong></p>
<h2 id="why-training-data-fails">Why Training Data Fails<a class="heading-link" aria-label="Link to section" href="#why-training-data-fails"><span class="heading-link-icon">#</span></a></h2>
<p>Nuxt Content v3 introduced breaking changes. API evolves. Features change. Your training data is from January 2025 - documentation is updated continuously.</p>
<p><strong>Real examples from testing:</strong></p>
<ul>
<li>Agent suggested <code>$contains</code> without checking current operator syntax</li>
<li>Agent confirmed MDC without verifying v3-specific changes</li>
<li>Agent provided query patterns without checking current API</li>
</ul>
<p>Every case: Agent was confident. Every case: Should have fetched docs.</p>
<h2 id="common-mistakes">Common Mistakes<a class="heading-link" aria-label="Link to section" href="#common-mistakes"><span class="heading-link-icon">#</span></a></h2>
<table><thead><tr><th>Mistake</th><th>Why It Happens</th><th>Fix</th></tr></thead><tbody><tr><td data-label="Mistake">Answer from memory</td><td data-label="Why It Happens">Confidence in training data</td><td data-label="Fix">Fetch llms.txt with targeted extraction first</td></tr><tr><td data-label="Mistake">Skip docs for “simple” questions</td><td data-label="Why It Happens">Assume simplicity = accuracy</td><td data-label="Fix">Simple questions need current docs too - fetch targeted</td></tr><tr><td data-label="Mistake">Postpone fetching</td><td data-label="Why It Happens">”Can fetch if wrong”</td><td data-label="Fix">Wrong answers waste user time - fetch first</td></tr><tr><td data-label="Mistake">Trust version knowledge</td><td data-label="Why It Happens">”Feature is mature”</td><td data-label="Fix">Mature features still change - verify with docs</td></tr><tr><td data-label="Mistake">Cite “official docs say”</td><td data-label="Why It Happens">User mentioned docs</td><td data-label="Fix">Fetch to verify what docs actually say</td></tr><tr><td data-label="Mistake">Fetch full documentation</td><td data-label="Why It Happens">”Better to be thorough”</td><td data-label="Fix">Targeted extraction (1-3k tokens) vs full dump (50k+ tokens)</td></tr><tr><td data-label="Mistake">Generic WebFetch prompt</td><td data-label="Why It Happens">Laziness</td><td data-label="Fix">Specify EXACTLY what section to extract</td></tr></tbody></table>
<h2 id="quick-reference">Quick Reference<a class="heading-link" aria-label="Link to section" href="#quick-reference"><span class="heading-link-icon">#</span></a></h2>
<p><strong>Every Nuxt Content interaction:</strong></p>
<ol>
<li>Use WebFetch on <a href="https://content.nuxt.com/llms.txt" rel="noopener noreferrer" target="_blank">https://content.nuxt.com/llms.txt</a> with TARGETED prompt</li>
<li>Extract ONLY relevant sections (not full docs)</li>
<li>Use extracted info as primary source</li>
<li>Provide answer/implementation based on extracted docs</li>
<li>Supplement with training knowledge only if needed</li>
<li>Cite source (docs vs. general knowledge)</li>
</ol>
<p><strong>Targeted WebFetch prompt template:</strong></p>
<pre class="astro-code tokyo-night" style="background-color:#1a1b26;color:#a9b1d6; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;" tabindex="0" data-language="plaintext"><code><span class="line"><span>"Extract ONLY the documentation for [specific API/feature/concept] from Nuxt Content.</span></span>
<span class="line"><span></span></span>
<span class="line"><span>Include:</span></span>
<span class="line"><span>- API syntax with parameters</span></span>
<span class="line"><span>- Code examples</span></span>
<span class="line"><span>- Version-specific notes</span></span>
<span class="line"><span>- Common gotchas</span></span>
<span class="line"><span></span></span>
<span class="line"><span>Exclude everything else. Return a concise summary (1-3k tokens max)."</span></span></code><button type="button" class="copy" data-code=""Extract ONLY the documentation for [specific API/feature/concept] from Nuxt Content.
Include:
- API syntax with parameters
- Code examples
- Version-specific notes
- Common gotchas
Exclude everything else. Return a concise summary (1-3k tokens max)."" onclick="
navigator.clipboard.writeText(this.dataset.code);
this.classList.add('copied');
setTimeout(() => this.classList.remove('copied'), 3000);
" aria-label="Copy code"><span class="ready"></span><span class="success"></span></button></pre>
<p><strong>Context savings:</strong> Targeted extraction (1-3k tokens) vs full dump (50k+ tokens) = 20-50x savings</p>
<h2 id="rationalization-table">Rationalization Table<a class="heading-link" aria-label="Link to section" href="#rationalization-table"><span class="heading-link-icon">#</span></a></h2>
<table><thead><tr><th>Excuse</th><th>Reality</th></tr></thead><tbody><tr><td data-label="Excuse">”User needs fast answer/implementation”</td><td data-label="Reality">Fast wrong answer wastes more time than slow correct answer</td></tr><tr><td data-label="Excuse">”I know this from training”</td><td data-label="Reality">Training data is stale; Nuxt Content v3 has breaking changes</td></tr><tr><td data-label="Excuse">”Straightforward question/implementation”</td><td data-label="Reality">Simple tasks still need current API syntax</td></tr><tr><td data-label="Excuse">”Low risk if wrong”</td><td data-label="Reality">Wrong answer/code blocks user; high cost to be wrong</td></tr><tr><td data-label="Excuse">”They already looked at docs”</td><td data-label="Reality">Verify what docs actually say - might have misread</td></tr><tr><td data-label="Excuse">”Feature is mature”</td><td data-label="Reality">Mature features get updates and deprecations</td></tr><tr><td data-label="Excuse">”Can fetch later if needed”</td><td data-label="Reality">Fetch now = right first time; fetch later = wasted round trip</td></tr><tr><td data-label="Excuse">”Just confirming what I know”</td><td data-label="Reality">Confirmation requires checking source, not memory</td></tr><tr><td data-label="Excuse">”I’ll implement then test”</td><td data-label="Reality">Implementing wrong API = debugging time for user</td></tr><tr><td data-label="Excuse">”I can update if it fails”</td><td data-label="Reality">Test-fix cycle wastes time; fetch docs first prevents failures</td></tr><tr><td data-label="Excuse">”I’ll fetch all the docs to be thorough”</td><td data-label="Reality">Full dump = 50k+ tokens; targeted extraction = 1-3k tokens</td></tr><tr><td data-label="Excuse">”Generic WebFetch prompt is fine”</td><td data-label="Reality">Targeted prompt extracts only what’s needed; saves 20-50x context</td></tr><tr><td data-label="Excuse">”The docs are small enough”</td><td data-label="Reality">llms.txt is 50k+ tokens; always use targeted extraction</td></tr></tbody></table>
<h2 id="real-world-impact">Real-World Impact<a class="heading-link" aria-label="Link to section" href="#real-world-impact"><span class="heading-link-icon">#</span></a></h2>
<p><strong>Without this skill:</strong> Agents provide outdated API syntax, wrong operator names, incorrect version information, implement features with stale APIs based on training data, blow up context with full documentation dumps.</p>
<p><strong>With this skill:</strong> Agents fetch current documentation with targeted extraction before answering OR implementing, provide accurate syntax, cite correct version info, save user debugging time, keep conversation context efficient.</p>
<p><strong>Context savings:</strong> Targeted extraction (1-3k tokens) vs full dump (50k+ tokens) = 20-50x savings per interaction</p>
<p><strong>Time cost:</strong> Targeted fetch adds 5-10 seconds. User debugging incorrect information or broken implementations adds 5-30 minutes. Always fetch with targeted extraction first.</p> </div> </div> </section> <!-- Usage Hint --> <aside class="text-sm text-skin-base/70"> <p>
💡 <strong class="text-skin-base">Tip:</strong> Click "Copy Prompt" to copy
the entire content including any frontmatter.
Save this to your `.claude/` directory to use it. </p> </aside> </main> <footer class="mt-auto astro-sz7xmlte"> <div class="max-w-5xl mx-auto px-4"> <hr class="border-skin-line" aria-hidden="true"> </div> <div class="footer-wrapper astro-sz7xmlte"> <div class="footer-content astro-sz7xmlte"> <div class="copyright-wrapper astro-sz7xmlte"> <span class="astro-sz7xmlte">Copyright © 2026</span> <span class="separator astro-sz7xmlte"> | </span> <span class="astro-sz7xmlte">All rights reserved.</span> </div> <div class="rss-prompt astro-sz7xmlte"> <a href="/rss.xml" class="rss-link group astro-sz7xmlte" title="Never miss a post - Subscribe via RSS" onclick="if (window.plausible) window.plausible('RSS Subscribe', { props: { location: 'footer' } })"> <div class="flex items-center gap-2 astro-sz7xmlte"> <svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 text-skin-accent group-hover:animate-pulse astro-sz7xmlte"><path fill="currentColor" d="M19 20.001C19 11.729 12.271 5 4 5v2c7.168 0 13 5.832 13 13.001h2z" class="astro-sz7xmlte"></path><path fill="currentColor" d="M12 20.001h2C14 14.486 9.514 10 4 10v2c4.411 0 8 3.589 8 8.001z" class="astro-sz7xmlte"></path><circle cx="6" cy="18" r="2" fill="currentColor" class="astro-sz7xmlte"></circle> </svg> <span class="text-sm astro-sz7xmlte">Subscribe via RSS</span> </div> </a> </div> <div class="social-icons flex astro-upu6fzxr"> <a href="https://github.com/alexanderop" class="group inline-block hover:text-skin-accent link-button astro-upu6fzxr" title=" alexop.dev on Github" target="_blank" rel="noopener noreferrer"> <svg
xmlns="http://www.w3.org/2000/svg"
class="icon-tabler"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path
d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"
></path>
</svg> <span class="sr-only astro-upu6fzxr"> alexop.dev on Github</span> </a><a href="https://de.linkedin.com/in/alexander-opalic-55464a169" class="group inline-block hover:text-skin-accent link-button astro-upu6fzxr" title="alexop.dev on LinkedIn" target="_blank" rel="noopener noreferrer"> <svg
xmlns="http://www.w3.org/2000/svg"
class="icon-tabler"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<rect x="4" y="4" width="16" height="16" rx="2"></rect>
<line x1="8" y1="11" x2="8" y2="16"></line>
<line x1="8" y1="8" x2="8" y2="8.01"></line>
<line x1="12" y1="16" x2="12" y2="11"></line>
<path d="M16 16v-3a2 2 0 0 0 -4 0"></path>
</svg> <span class="sr-only astro-upu6fzxr">alexop.dev on LinkedIn</span> </a><a href="mailto:alex.opalic.dev@gmail.com" class="group inline-block hover:text-skin-accent link-button astro-upu6fzxr" title="Send an email to alexop.dev" target="_blank" rel="noopener noreferrer"> <svg
xmlns="http://www.w3.org/2000/svg"
class="icon-tabler"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<rect x="3" y="5" width="18" height="14" rx="2"></rect>
<polyline points="3 7 12 13 21 7"></polyline>
</svg> <span class="sr-only astro-upu6fzxr">Send an email to alexop.dev</span> </a><a href="https://twitter.com/alexanderopalic" class="group inline-block hover:text-skin-accent link-button astro-upu6fzxr" title="alexop.dev on X" target="_blank" rel="noopener noreferrer"> <svg
xmlns="http://www.w3.org/2000/svg"
class="icon-tabler"
stroke-linecap="round"
stroke-linejoin="round"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M22 4.01c-1 .49 -1.98 .689 -3 .99c-1.121 -1.265 -2.783 -1.335 -4.38 -.737s-2.643 2.06 -2.62 3.737v1c-3.245 .083 -6.135 -1.395 -8 -4c0 0 -4.182 7.433 4 11c-1.872 1.247 -3.739 2.088 -6 2c3.308 1.803 6.913 2.423 10.034 1.517c3.58 -1.04 6.522 -3.723 7.651 -7.742a13.84 13.84 0 0 0 .497 -3.753c-.002 -.249 1.51 -2.772 1.818 -4.013z"></path>
</svg> <span class="sr-only astro-upu6fzxr">alexop.dev on X</span> </a><a href="https://bsky.app/profile/alexvue.bsky.social" class="group inline-block hover:text-skin-accent link-button astro-upu6fzxr" title="alexop.dev on BlueSky" target="_blank" rel="noopener noreferrer"> <svg
xmlns="http://www.w3.org/2000/svg"
class="icon-tabler"
viewBox="0 0 64 57"
>
<path fill="none" stroke="currentColor" stroke-width="2" d="M13.873 3.805C21.21 9.332 29.103 20.537 32 26.55v15.882c0-.338-.13.044-.41.867-1.512 4.456-7.418 21.847-20.923 7.944-7.111-7.32-3.819-14.64 9.125-16.85-7.405 1.264-15.73-.825-18.014-9.015C1.12 23.022 0 8.51 0 6.55 0-3.268 8.579-.182 13.873 3.805ZM50.127 3.805C42.79 9.332 34.897 20.537 32 26.55v15.882c0-.338.13.044.41.867 1.512 4.456 7.418 21.847 20.923 7.944 7.111-7.32 3.819-14.64-9.125-16.85 7.405 1.264 15.73-.825 18.014-9.015C62.88 23.022 64 8.51 64 6.55c0-9.818-8.578-6.732-13.873-2.745Z"></path>
</svg> <span class="sr-only astro-upu6fzxr">alexop.dev on BlueSky</span> </a> </div> </div> <div class="license-info astro-sz7xmlte"> <a href="https://creativecommons.org/licenses/by/4.0/" target="_blank" rel="noopener noreferrer" class="cc-license astro-sz7xmlte"> <img src="https://mirrors.creativecommons.org/presskit/icons/cc.svg" alt="CC" class="cc-icon astro-sz7xmlte"> <img src="https://mirrors.creativecommons.org/presskit/icons/by.svg" alt="BY" class="cc-icon astro-sz7xmlte">
Content licensed under CC BY 4.0
</a> </div> <div class="legal-links astro-sz7xmlte"> <a href="/imprint/" class="legal-link astro-sz7xmlte"> Imprint </a> <span class="separator astro-sz7xmlte">|</span> <a href="/data-privacy/" class="legal-link astro-sz7xmlte"> Data Privacy </a> </div> </div> </footer> <!-- Wiki link preview card hover script --> <script>
function initInternalLinks() {
const wrappers = document.querySelectorAll(".internal-link-wrapper");
wrappers.forEach(wrapper => {
const card = wrapper.querySelector(".preview-card");
const link = wrapper.querySelector(".internal-link");
if (!card || !link) return;
// Skip if already initialized
if (wrapper.dataset.initialized === "true") return;
wrapper.dataset.initialized = "true";
// Function to hide the card
const hideCard = () => {
card.classList.remove("is-fixed");
card.style.removeProperty("--pc-top");
card.style.removeProperty("--pc-left");
card.style.opacity = "";
card.style.visibility = "";
// Remove scroll listener when hiding
window.removeEventListener("scroll", hideCard);
};
wrapper.addEventListener("mouseenter", () => {
// Make visible first so it has size
card.style.opacity = "1";
card.style.visibility = "visible";
// Use fixed positioning to escape overflow clipping
const linkRect = link.getBoundingClientRect();
const cardRect = card.getBoundingClientRect();
// Position above by default; flip below if too close to top
const aboveTop = linkRect.top - 8 - cardRect.height;
const belowTop = linkRect.bottom + 8;
const top = aboveTop < 10 ? belowTop : aboveTop;
// Center horizontally on the link
const left = linkRect.left + linkRect.width / 2 - cardRect.width / 2;
// Constrain to viewport
const vw = document.documentElement.clientWidth;
const safeLeft = Math.max(8, Math.min(left, vw - cardRect.width - 8));
// Apply fixed position with coordinates
card.classList.add("is-fixed");
card.style.setProperty("--pc-top", `${Math.round(top)}px`);
card.style.setProperty("--pc-left", `${Math.round(safeLeft)}px`);
// Hide card on scroll
window.addEventListener("scroll", hideCard, { passive: true });
});
wrapper.addEventListener("mouseleave", hideCard);
});
}
// Initialize on both initial load and after client-side navigation
document.addEventListener("astro:page-load", initInternalLinks);
</script> </body> </html> <script>
/** Make headings groups for hover effect on anchor links */
function makeHeadingsGroups() {
const headings = Array.from(
document.querySelectorAll(".prose h2, .prose h3, .prose h4, .prose h5, .prose h6")
);
for (const heading of headings) {
heading.classList.add("group");
}
}
// Run after DOM is loaded
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", makeHeadingsGroups);
} else {
makeHeadingsGroups();
}
</script>Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!