nuxt/nuxt.com/weekly-digest
- community
Checking that the SKILL.md file is still in the repository.
Produce the Nuxt Monday digest — traffic, docs feedback, Nuxi quality, and prioritized follow-ups for a recent window.
Install
npx vskill@latest install nuxt/nuxt.com/weekly-digestSKILL.md
When producing a digest (scheduled or on request):
Slack delivery: Your reply IS the Slack message — Eve posts it verbatim to this channel. There is no Slack post tool; never say you cannot post or ask anyone to copy-paste. You are Nuxi (:nuxi:) giving the team a weekly pulse. Be concise, linked, and actionable — not a wall of text.
Always write Slack mrkdwn (<url|label>, :emoji:). If this run is mirrored to Discord, the channel converts that syntax — do not emit Discord markdown yourself.
- First line: Nuxt weekly digest — last N days plus date range in parentheses.
- No preamble ("All the data is in…", "Here's the digest:"), no delivery disclaimers, and no meta wrap-up. Start with the title line.
- Use bold section labels — never markdown
#headings. - ONE message only. Blank line between sections.
- Every bullet that references a page, chat, or dashboard must include a clickable link via Slack syntax:
<https://…|label>. - Sparingly use :nuxter: or :nuxt_cool: (0–2 total) when something is worth celebrating or urgent.
Data steps (parallel where possible; Vercel / AI Gateway tools need admin/Slack/schedule-only access):
Traffic (nuxt.com project — use the first-class Vercel Web Analytics tools): Pass the configured Nuxt projectId and teamId to every Web Analytics tool call; do not pass slug.
count_pageviewsfor the current window AND the previous window → visitors/pageviews + WoW %.aggregate_pageviewswithby=['day']current window → daily trend (spot spikes/drops). The API may rounduntilforward to a day boundary; ignore returned buckets whose timestamp is outside the requested half-open[start, end)window.- Same aggregate with
by=['route'], limit=10current + previous window → top sections with per-route deltas. - Same aggregate with
by=['referrerHostname'], limit=8+by=['country'], limit=5+by=['deviceType']→ audience snapshot.
Agent-facing usage (Vercel Observability — use the read-only create_observability_query tool):
- Complete every required query below. A tool-call concurrency limit is not a total-query limit: continue with additional calls until all required results are collected. Never omit a metric because the first batch is full.
- Required totals:
- Nuxt
/mcp, current and previous equal-length windows. - Nuxt UI
/mcp, current and previous equal-length windows. - For each project, explicit Markdown in the current window:
endswith(request_path, '.md') and environment eq 'production'. - For each project, negotiated Markdown in the current window:
contains(http_accept, 'text/markdown') and environment eq 'production'. - For each project, discovery/intake in the current window:
(request_path eq '/llms.txt' or request_path eq '/llms-full.txt' or request_path eq '/sitemap.md' or request_path eq '/openapi.json' or request_path eq '/.well-known/mcp/server-card.json') and environment eq 'production'.
- Required detail queries after the totals:
- For each MCP project, group the current window by
client_user_agent(limit 25), then byrequest_method+http_status(limit 20). - For each project, group explicit Markdown by
request_path(limit 5). - For each project, group discovery/intake by
request_path(limit 5). - Use the ungrouped
summaryas the authoritative total. Do not derive a total by adding grouped rows or timeseries buckets. - Keep all returned user-agent rows available for analysis. For digest rendering, choose the highest-volume row for up to three distinct named products and preserve that row's count. Use friendly product labels only (
Claude Code,Codex,Cursor,OpenCode,WorkBuddy); never print user-agent versions or integration suffixes. Do not sum version/integration variants in the model. - Treat
claude-code,codex-mcp-client,Cursor,opencode, andWorkBuddyas named product rows. Generic stacks includeundici,node,Go-http-client,python-httpx, and similar libraries. If the named-product cap is full, omit additional named rows; never move them into the generic list. - Present exact method/status rows under three labels without category totals or equations: successful POST (
200,202), protocol noise (GET/HEAD 405), and POST errors (4xx/5xx). Mention another row only when materially large or actionable. - A response with
truncated: trueortruncation.omittedArrayItemsmeans the tool shortened the returned timeseries; it does not prove a source-data gap. Never report those omitted rows as missing traffic. Use the ungrouped summary for totals and comparisons. - Only label a real data gap when the API explicitly reports one after truncation is ruled out. Avoid causal claims about rises or falls unless a grouped result supports them.
- These are HTTP requests, not logical tool calls, sessions, or unique agents.
Agent-facing output contract:
- Start this section directly with
*Nuxt*; do not announce completed tasks, batches, or collected data. - Collect the full detail queries for analysis, but render only the compact summary below. The ad-hoc
ecosystem-usageskill owns exhaustive breakdowns. - Keep exactly two project blocks in this order:
*Nuxt*, then*Nuxt UI*. Never combine their clients, health, totals, or trends. - Under both
*Nuxt*and*Nuxt UI*, render exactly four labeled bullets: MCP, Clients, Content, and Health. - Every bullet must contain values from the corresponding query. Do not emit placeholders such as “report…”, “see Observability”, “not separately queried”, or “included in the batch”.
- Replace every
<…>slot in the output template with returned data or an explicitunavailable — <concrete error>value. - If a required query failed after retrying, keep its bullet and write
unavailable — <concrete error>. Do not silently omit it. - In Clients, show at most three distinct named products using the selected exact rows. Omit additional version variants, generic stacks, and empty-user-agent counts unless one is itself the evidence for a notable observation.
- In Content, show the three totals (explicit Markdown, negotiated Markdown, discovery), plus exactly one leading Markdown path and one leading discovery path when returned. For each displayed path, take only the final non-empty segment, keep at most 60 characters, replace every character outside
[A-Za-z0-9._-]with-, and wrap the result in backticks. Never insert the raw request path or allow<,>,&,@,|, backticks, or other Slack mrkdwn control characters into the label. - Never infer a leading path from another project or a prior report. If its grouped query was not completed, render
top path unavailable — <concrete reason>. - In Health, render every returned row in these classes: successful POST (
200,202), protocol noise (GET/HEAD 405), and POST errors (4xx/5xx). Keep exact rows separate rather than calculating category totals; writenone returnedfor an empty class. - After both complete project blocks, optionally add
:mag: **What stands out**with at most one observation of at most 20 words. Cite returned values directly; do not calculate new differences or rates, show equations, recommend actions, or add causal explanations. Omit the heading when nothing is clearly notable. - Top-N grouped rows are partial. Describe them as “top returned paths/clients”; never claim they represent all or most traffic unless their displayed counts are compared with the authoritative total and actually support that share.
- HTTP request volume does not establish demand, adoption, unique agents, or intentional workflow behavior. Avoid claims such as “structurally higher”, “confirms agents are…”, “working as designed”, or “growing” unless the queried data directly establishes them across a sufficient period.
- Format counts of 10,000 or more with one-decimal compact notation (
29.7K,4.3M); keep smaller counts exact. Round percentage changes to whole numbers. - Keep each factual bullet to one line when Slack wrapping allows it. Do not add parenthetical methodology notes, per-version arithmetic, exhaustive lists, speculative attribution, query-progress narration, or Markdown horizontal rules.
- End with exactly this caveat and nothing else:
_HTTP requests, not tool calls, sessions, or unique agents._
Docs feedback:
admin-mcp__feedback-stats—topPages=5admin-mcp__list-feedback—ratings=["not-helpful", "confusing"],limit=30- For each worst page from step 5/6: traffic from step 3, or a targeted
count_pageviewscall withfilter="requestPath eq '<path>'"if missing from top routes — weigh urgency by real visits.
AI agent:
admin-mcp__agent-usage-stats— web chat counts and vote qualityadmin-mcp__list-agent-chats—hasDownvotes=true,limit=5(shared or public chats only; private chats are never readable)admin-mcp__list-agent-votes—onlyDownvotes=true,limit=15vercel-mcp__list_agent_runsover the window → Slack / Discord / web run split (discover eve project vialist_agent_run_projectsfirst).ai_gateway__report—groupBy=modelover the window → Nuxi-scoped spend/tokens only (tool filters by tags / API key name). Asking for agroupByalways forces tag scoping when an API key name is configured — checkscope.mode, notscope.matchedRows: wheneverscope.modeis"tags"andscope.notenames an API key, that result only covers tagged traffic and can undercount the real historical total, even ifscope.matchedRowsis non-zero. Re-run with nogroupByfor the full key-name-scoped total. If that ungrouped report is still unavailable or empty, present the tagged numbers but label them explicitly as partial (tagged traffic only) — never as the complete historical spend. If both come back empty, say spend is not attributable yet — never quote account-wide / other-product totals (no fable, no team-wide $).ai_gateway__report—groupBy=tagover the window → spend persurface:*(web / Slack / Discord / schedules). Skip the split if onlyapp:nuxicomes back, which means the window predates per-surface tagging.
Link cheat sheet (use real paths/ids from tool output):
- Docs page:
<https://nuxt.com/docs/…|Page title> - Chat review:
<https://nuxt.com/dashboard/chat/<id>|Open chat> - Analytics:
<https://vercel.com/nuxt-js/nuxt/analytics|Vercel Web Analytics> - Agent runs:
<https://vercel.com/nuxt-js/nuxt/observability/agent-runs|Vercel Agent Runs> - AI Gateway:
<https://vercel.com/nuxt-js/nuxt/ai-gateway|Vercel AI Gateway>
Output template:
Nuxt weekly digest — last 7 days (Jun 23 – Jun 30, 2026)
:bar_chart: Traffic pulse • 12,430 visitors (-8% WoW), 31,200 pageviews (-5% WoW) • Trend: solid Mon–Wed, dip Thu, weekend quieter — see <https://vercel.com/nuxt-js/nuxt/analytics|Vercel Web Analytics>
:page_facing_up: Top sections
- <https://nuxt.com/docs/…|/docs/[...slug]> — 8,200 visitors (-3%)
- <https://nuxt.com/|/ (homepage)> — 4,100 visitors (+2%)
- …
:compass: Referrers & audience • Top: Direct (55%), <https://google.com|Google> (40%), then GitHub / DuckDuckGo • Countries: US, DE, FR — mostly desktop (~80%)
:satellite: Agent-facing usage Nuxt • MCP — <current> HTTP requests (<delta> vs <previous>) • Clients — <up to three named client rows> • Content — .md <count> (top: <short path + count>) · negotiated <count> · discovery <count> (top: <short path + count>) • Health — success: POST 200 <count>, 202 <count> · noise: GET 405 <count>, HEAD 405 <count> · errors: <all POST 4xx/5xx rows, or none returned>
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckinglayers/nuxi/agent/skills/weekly-digest/SKILL.md
Popularity
- Repository stars
- 455
- Repository forks
- 264
- 7-day trend score
- 31
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/nuxt/nuxt.com/weekly-digest)