Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add LuuOW/meridian-mcp --skill nextjs-dashboardgit clone --depth 1 https://github.com/LuuOW/meridian-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/luuow/meridian-mcp/nextjs-dashboard)<a href="https://agentmods.dev/skills/luuow/meridian-mcp/nextjs-dashboard"><img src="https://agentmods.dev/badge/skills/luuow/meridian-mcp/nextjs-dashboard/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/luuow/meridian-mcp/nextjs-dashboard"><img src="https://agentmods.dev/badge/skills/luuow/meridian-mcp/nextjs-dashboard.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00035 | $0.02310 |
| Opus 5 | $0.00017 | $0.01155 |
| Sonnet 5 | $0.00007 | $0.00462 |
| Haiku 4.5 | $0.00003 | $0.00231 |
Grade A, and why
nextjs-dashboard scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 285 lines — stays where its author put it; the contents beside it link to each section on GitHub.
nextjs-dashboard
Expert knowledge for building production-ready dashboards with Next.js App Router (v15+), React 19, Tailwind CSS v4, and token-driven design systems.
1) App Router Mental Model
- Server Components (default): fetch data, access server resources, no hooks, no browser APIs
- Client Components (
'use client'): hooks, events, browser APIs, polling, real-time state - Rule: push
'use client'as far down the tree as possible — layouts and page shells should stay server-side - Data fetching: server components fetch directly; client components use
useEffect+fetchor SWR/React Query
// page.tsx — Server Component (no 'use client')
import { DomainList } from './DomainList' // client island
export default async function DomainsPage() {
const domains = await getDomains() // server-side fetch
return <DomainList initialDomains={domains} />
}
// DomainList.tsx — Client Component
'use client'
export function DomainList({ initialDomains }: { initialDomains: Domain[] }) {
const [domains, setDomains] = useState(initialDomains)
// ... polling, mutations
}
2) Mobile Navigation Pattern (Sidebar + Drawer)
The most common gap in dashboard UIs. Sidebar must work as a drawer on mobile.
'use client'
import { useState, useEffect } from 'react'
import { usePathname } from 'next/navigation'
import { Menu, X } from 'lucide-react'
export function Sidebar() {
const [open, setOpen] = useState(false)
const pathname = usePathname()
// Close drawer on navigation
useEffect(() => { setOpen(false) }, [pathname])
// Prevent body scroll when drawer open
useEffect(() => {
document.body.style.overflow = open ? 'hidden' : ''
return () => { document.body.style.overflow = '' }
}, [open])
return (
<>
{/* Mobile top bar */}
<header className="sticky top-0 z-40 flex items-center justify-between px-4 h-14 lg:hidden"
style={{ background: '#0c1a2e', borderBottom: '1px solid rgba(255,255,255,0.08)' }}>
<Logo />
<button onClick={() => setOpen(true)} aria-label="Open menu"
className="flex h-9 w-9 items-center justify-center rounded-lg text-white/70 hover:bg-white/10">
<Menu size={20} />
</button>
</header>
{/* Backdrop */}
{open && (
<div className="fixed inset-0 z-40 bg-black/60 lg:hidden backdrop-blur-sm"
onClick={() => setOpen(false)} />
)}
{/* Sidebar — drawer on mobile, sticky on desktop */}
<aside className={`
fixed inset-y-0 left-0 z-50 w-[280px] transition-transform duration-300 ease-out
lg:sticky lg:top-0 lg:h-screen lg:translate-x-0
${open ? 'translate-x-0' : '-translate-x-full'}
`}>
<button onClick={() => setOpen(false)} className="absolute right-3 top-3 lg:hidden ...">
<X size={18} />
</button>
{/* nav content */}
</aside>
</>
)
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 285 lines · 35 tokens per session scan A c7e3e603737b
nextjs-dashboard is a skill published in the GitHub repository LuuOW/meridian-mcp (0 stars, last pushed yesterday), licensed MIT. It adds 35 tokens to every session and 2,310 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
shadcn
Manages shadcn components and projects — adding, searching, fixing, debugging, styling, and composing UI, including chat interfaces. Provides project context, component docs, and usage examples. Applies when working with shadcn/ui, component registries, presets, --preset codes, or any project with a components.json…
magic-ui
Use this skill when users want to add, customize, or troubleshoot Magic UI components in React/Next.js projects. It covers component selection, shadcn registry installation (@magicui/), integration patterns, and practical quality checks for accessibility and maintainability.
stitch-react-native
Convert Stitch HTML designs into React Native screens, or sync existing native components to updated Stitch designs, using native primitives, StyleSheet rules, and mobile platform checks.
react-aria
Build accessible UI components with React Aria Components. Use when developers mention React Aria, react-aria-components, accessible components, or need unstyled accessible primitives. Provides documentation for building custom accessible UI with hooks and components.
modern-frontend-design
How to design and build modern, premium-quality frontend interfaces that look like high-end SaaS products, modern AI tools, and award-winning design websites — not generic templates. Use this skill whenever the user asks to build a frontend, create a landing page, design a dashboard, scaffold a web app UI, build a…
frontend-best-practices
Use this skill when creating or modifying React frontend components. It defines UI/UX, styling, and architecture standards.