Prompts are pre-built templates that structure LLM conversations for specific tasks.
Analyze a Nuxt page and generate SEO improvements. Orchestrates multiple tools in sequence.
| Parameter | Type | Description |
|---|---|---|
filePath | string | Path to Vue file (e.g., app/pages/about.vue) |
fileContent | string | Content of the Vue file |
topic | string | Page topic for keyword research (optional, auto-detected) |
nuxtConfig | string | nuxt.config.ts content (optional, for module detection) |
liveUrl | string | Live URL to extract rendered meta (optional, compares source vs output) |
liveHtml | string | Raw HTML from local dev server (optional, for non-deployed pages) |
// Basic usage
improve_page_seo({
filePath: 'app/pages/tools/meta-checker.vue',
fileContent: '...',
topic: 'meta tag checker tool'
})
// With live comparison
improve_page_seo({
filePath: 'app/pages/tools/meta-checker.vue',
fileContent: '...',
liveUrl: 'https://mysite.com/tools/meta-checker'
})
// With local dev HTML
improve_page_seo({
filePath: 'app/pages/tools/meta-checker.vue',
fileContent: '...',
liveHtml: '<html>...</html>' // from $fetch('http://localhost:3000/tools/meta-checker')
})
The prompt runs these tools in sequence:
Returns:
liveUrl/liveHtml provided) - Comparison of what's in source vs what actually rendersuseSeoMeta() with researched keywordsuseSchemaOrg() for the page typedefineOgImage() configurationThe content prompts work together:
research_keywords → content_brief → article_generation
Generate a structured outline for an article. Use after keyword research.
| Parameter | Type | Description |
|---|---|---|
topic | string | Main topic for the article |
targetKeywords | string | Comma-separated target keywords (3-5) |
competitorUrls | string | Comma-separated URLs to differentiate from (optional) |
pageType | string | technical, marketing, or tutorial (default: technical) |
content_brief({
topic: 'Adding Schema.org to Nuxt Pages',
targetKeywords: 'nuxt schema.org, useSchemaOrg nuxt, nuxt structured data',
pageType: 'technical'
})
The prompt returns:
The brief follows the Writing Guide:
Generate a full article from an outline. Embeds the complete Writing Guide rules.
| Parameter | Type | Default | Description |
|---|---|---|---|
outline | string | required | Content brief from content_brief |
targetWordCount | string | "1500" | Target length (500-5000) |
includeCodeExamples | string | "true" | Include code examples (true/false) |
sitemapUrls | string | - | Comma-separated site URLs for internal linking |
article_generation({
outline: '# Content Brief\n\n## Primary Intent...',
targetWordCount: '2000',
includeCodeExamples: 'true',
sitemapUrls: '/docs/schema-org/getting-started, /docs/seo-utils/api/use-seo-meta'
})
The prompt includes:
Banned words: dive into, crucial, leverage, ensure, comprehensive...
Banned phrases: "it's important to note", "in today's X", "let's explore"...
Quick fixes:
| Slop | Fix |
|---|---|
| It's important to note... | just state it |
| This allows you to... | You can... |
| In order to... | To... |
Voice rules:
Structure rules:
The output includes markers for content that needs follow-up:
[STAT NEEDED: percentage of sites with broken meta tags]
[VERIFY: does this work in Nuxt 4?]
[EXAMPLE NEEDED: real-world product schema]
[LINK: internal link to related page]
Review the article and fill these gaps before publishing.
A full workflow for creating a new article:
// 1. Research keywords
const keywords = await research_keywords({ topic: 'nuxt meta tags' })
// 2. Create outline
const brief = await content_brief({
topic: 'Adding Meta Tags in Nuxt',
targetKeywords: keywords.keywords.map(k => k.keyword).slice(0, 5).join(', ')
})
// 3. Generate article
const article = await article_generation({
outline: brief,
targetWordCount: '1500'
})