mcpbeat

Add Diagnostic

vercel-labs/add-diagnostic

Add a new diagnostic code following the defineDiagnostics() conventions from nostics

366 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
190
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/vercel-labs/nostics --skill add-diagnostic

The instruction itself

1 sections, as written by the author

Add a New Diagnostic Code

  • Find the catalog. Grep for defineDiagnostics to locate the codes object the new entry belongs in. With several catalogs, pick by area.
  • Pick the code. PREFIX_XNNNN: PREFIX is the project name uppercased (NUXT, I18N); X is the area letter (B build, R runtime, C config, D deprecation); NNNN is the next free number. Read existing codes to choose. Never rename or reuse a published code.
  • Add the entry:
LIB_R0001: {
  why: (p: { hook: string }) => `${p.hook}() must run at the top of setup().`, // string or typed fn; becomes Error.message (required)
  fix: 'Move the call into setup() or a composable it calls.', // optional, but add whenever the fix is known
  docs: 'https://example.com/custom', // optional: overrides docsBase, or `false` to opt out
},
  • why is the only required field. Params from why and fix are intersected and required at the call site.
  • Runtime fields (cause, sources) are passed at the call site, never in the definition.
  • Call it: diagnostics.LIB_R0001({ hook }) to report, throw diagnostics.LIB_R0001({ hook, cause: err }) to raise. Both run the reporters.

Full API and reporter/formatter/plugin details: the nostics skill.

How to use it

Copy the folder

Take vercel-labs/add-diagnostic from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.