Borrowing it
Nothing to install: this file belongs to Meridiona/meridian. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Meridiona/meridian/main/.claude/skills/meridian-ui/SKILL.mdgit clone --depth 1 https://github.com/Meridiona/meridianWrote 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/meridiona/meridian/meridian-ui)<a href="https://agentmods.dev/skills/meridiona/meridian/meridian-ui"><img src="https://agentmods.dev/badge/skills/meridiona/meridian/meridian-ui/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/meridiona/meridian/meridian-ui"><img src="https://agentmods.dev/badge/skills/meridiona/meridian/meridian-ui.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.00044 | $0.01543 |
| Opus 5 | $0.00022 | $0.00772 |
| Sonnet 5 | $0.00009 | $0.00309 |
| Haiku 4.5 | $0.00004 | $0.00154 |
Grade C, and why
meridian-ui scanned grade C with 1 finding 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 11d 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.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
produces an `Invalid distDirRoot` panic; `rm -rf .next` from `ui/` clears it. How it starts
The opening of the file, as written. The whole thing — 148 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Meridian UI Skill
The dashboard is a Next.js static export (output: 'export' → ui/out) that runs
inside the Tauri tray webview. There is no Node server at runtime and there are no
/api route handlers - ui/app/api/ does not exist, and better-sqlite3 is not a
dependency of ui/. Everything that used to be a route handler is now Rust reached
over Tauri invoke.
If you are looking for the old route-handler / @/lib/db / @/lib/category-colors
world, it was removed in the Next fold. See CLAUDE.md → "Dashboard → Tauri fold".
Stack
- Next.js 16 (App Router), React 19
- TypeScript - strict, no
anywithout a justifying comment - Tailwind CSS 4 - utility classes, no CSS modules
- bun:test - test runner for
ui/__tests__/
Dev & Build
cd ui
npm run dev # dev server on :3939 (turbopack; NODE_ENV is unset deliberately)
npm run build # production build + copies the tray popover into out/
npm run typecheck # tsc --noEmit
bun test # dashboard tests
Two things worth knowing before you debug either:
- Never run
next devwithNODE_ENVset - that is why the script isenv -u NODE_ENV next dev. A stale.nextafter a branch or config switch produces anInvalid distDirRootpanic;rm -rf .nextfromui/clears it. - The popover works under
tauri devtoo.tauri.conf.json'sbeforeDevCommandrunsnode scripts/sync-popover.mjs dev, which copiestray/src/intoui/public/popover/, andnext devservespublic/at the root - so/popover/index.htmlresolves. The build does the same intoout/popover/. If it 404s, the sync step did not run: start the tray withnpm run tauri devfromtray/rather than startingnext devby hand.
Reaching data: the bridge, never fetch
All data crosses to Rust through ui/lib/bridge.ts:
import { load, mutate, subscribe } from '@/lib/bridge'
const today = await load<TodayResponse>('/today', 'get_today') // read
await mutate('/settings', 'save_settings', body, 'PATCH') // write
const stop = subscribe<Health>('/health', 'get_health', 'health', cb) // live stream
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.
- 11d ago First seen · 148 lines · 44 tokens per session scan C bf50652b3477
meridian-ui is a skill published in the GitHub repository Meridiona/meridian (336 stars, last pushed 5d ago), licensed MIT. It adds 44 tokens to every session and 1,543 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
bug-fix
Regression-first workflow for fixing a defect whose cause is known. Reproduce the confirmed defect, fix the root cause minimally, protect it with a regression test, and verify. If the root cause is still unknown, use the debugging skill first.
diagnosing-bugs
Diagnose bugs with a reproducible red signal, minimized case, ranked hypotheses, and regression test.
systematic-debugging
Systematic debugging approach for errors, test failures, and unexpected behavior. Use when encountering bugs, test failures, errors, or when debugging is needed. Prevents common anti-patterns like random fixes, skipping root cause analysis, and thrashing.
diagnose
A structured troubleshooting workflow for complex software bugs. TDD here means test-driven development; this skill defines the diagnosis phase, including gathering bug details, forming several possible causes, and checking them.
build-test
Run the project's build / typecheck / lint / test commands and emit the build.passing + tests.passing signals devloop convergence reads.
bug-fixing
Fix defects in the Composio SDK repository with focused reproduction, root-cause analysis, regression tests, and narrow verification. Use when the user reports a bug, failing test, CI regression, runtime defect, or incorrect SDK behavior. Do not use for new feature design or broad refactors.