LobeHub Alint Rule Set Maintenance
lobehub/lobehub
Maintains LobeHub's model-backed alint rule set: writing rules, removing false positives against real code, deciding warn versus error and tracking token cost.
Find and fix broken or SEO unfriendly links in a Nuxt app with the nuxt-link-checker module.
$ npx skills add harlan-zw/nuxt-link-checker --skill nuxt-link-checker -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install harlan-zw/nuxt-link-checker nuxt-link-checker --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/harlan-zw/nuxt-link-checker.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/nuxt-link-checker .claude/skills/nuxt-link-checker && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "nuxt-link-checker" agent skill from https://github.com/harlan-zw/nuxt-link-checker/tree/main/skills/nuxt-link-checker into .claude/skills/nuxt-link-checker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nuxt-link-checker", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/harlan-zw/nuxt-link-checker/tree/main/skills/nuxt-link-checkerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add harlan-zw/nuxt-link-checker --skill nuxt-link-checker -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install harlan-zw/nuxt-link-checker nuxt-link-checker --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/harlan-zw/nuxt-link-checker.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/nuxt-link-checker .agents/skills/nuxt-link-checker && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "nuxt-link-checker" agent skill from https://github.com/harlan-zw/nuxt-link-checker/tree/main/skills/nuxt-link-checker into .agents/skills/nuxt-link-checker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nuxt-link-checker", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add harlan-zw/nuxt-link-checker --skill nuxt-link-checker -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install harlan-zw/nuxt-link-checker nuxt-link-checker --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/harlan-zw/nuxt-link-checker.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/nuxt-link-checker .cursor/skills/nuxt-link-checker && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "nuxt-link-checker" agent skill from https://github.com/harlan-zw/nuxt-link-checker/tree/main/skills/nuxt-link-checker into .cursor/skills/nuxt-link-checker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nuxt-link-checker", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/harlan-zw/nuxt-link-checker.git --path skills/nuxt-link-checker--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add harlan-zw/nuxt-link-checker --skill nuxt-link-checker -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install harlan-zw/nuxt-link-checker nuxt-link-checker --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/harlan-zw/nuxt-link-checker.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/nuxt-link-checker .gemini/skills/nuxt-link-checker && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "nuxt-link-checker" agent skill from https://github.com/harlan-zw/nuxt-link-checker/tree/main/skills/nuxt-link-checker into .gemini/skills/nuxt-link-checker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nuxt-link-checker", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install harlan-zw/nuxt-link-checker nuxt-link-checkerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add harlan-zw/nuxt-link-checker --skill nuxt-link-checker -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/harlan-zw/nuxt-link-checker.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/nuxt-link-checker .github/skills/nuxt-link-checker && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "nuxt-link-checker" agent skill from https://github.com/harlan-zw/nuxt-link-checker/tree/main/skills/nuxt-link-checker into .github/skills/nuxt-link-checker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nuxt-link-checker", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add harlan-zw/nuxt-link-checker --skill nuxt-link-checker -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install harlan-zw/nuxt-link-checker nuxt-link-checker --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/harlan-zw/nuxt-link-checker.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/nuxt-link-checker .opencode/skills/nuxt-link-checker && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "nuxt-link-checker" agent skill from https://github.com/harlan-zw/nuxt-link-checker/tree/main/skills/nuxt-link-checker into .opencode/skills/nuxt-link-checker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nuxt-link-checker", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
nuxt-link-checkerFind and fix broken or SEO unfriendly links in a Nuxt app with the nuxt-link-checker module.
Nuxt Link Checker is an agent skill from harlan-zw/nuxt-link-checker. Find and fix broken or SEO unfriendly links in a Nuxt app with the nuxt-link-checker module. Use when a task mentions broken links, 404 links, link checking on build, failOnError, excludeLinks, excludePages, skipInspections, link checker reports, live inspections, the linkChecker config key, or the link-checker/valid-route ESLint rule. Gives the build scan scope, verified config, and the traps that make the checker pass silently or flag valid links.
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Linting and formatting. It works with Nuxt and ESLint. The repository describes itself as: Find and magically fix 12+ link issues that may be negatively effecting your Nuxt SEO. The licence is MIT.
Read from SKILL.md and the folder at commit 7eebc81. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript and javascript).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
nuxtseo.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Nuxt Link Checker loads about 1.9k tokens when it runs. Until then it costs about 118 tokens; SKILL.md has 841 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from harlan-zw/nuxt-link-checker at commit 7eebc81, republished under its MIT licence (© harlan-zw). 841 words, ~1,911 tokens.
.claude/skills/nuxt-link-checker/SKILL.md (or your agent's skills folder).Tested against the nuxt-link-checker release after 5.3.0 on Nuxt 4.5 (peer range Nuxt 3.9 to 5).
The module inspects every <a href> in rendered HTML with 15 rules, at build time and in dev.
It also ships two ESLint rules. Docs: https://nuxtseo.com/docs/link-checker
Config key: linkChecker. The module installs nuxt-site-config for you.
@nuxtjs/seo already includes this module. Do not add it twice.
Set site.url to the production origin. The checker resolves internal links against it (see Traps).
The trailing-slash rule reads site.trailingSlash, not a linkChecker option.
nuxt build with no prerendered routes runs no inspections and logs Nuxt Link Checker scanned no pages. Use nuxt generate, or add routes to nitro.prerender.routes.<Teleport to="body"> links. An <a> without href gets a no-missing-href warning unless it has role="button".excludeLinks starts with /^\/_/ and /^\/llms(-[\w-]+)?\.txt$/. Your entries are added to these; they do not replace them. With a non root app.baseURL, the base URL is also excluded.fetchRemoteUrls is false, so every absolute external link counts as a 200.public/ pass without a request./__link-checker__/* server routes. On page squiggles need showLiveInspections: true.@nuxt/eslint, the module registers link-checker/valid-route (error) and link-checker/valid-sitemap-link (warn) for .vue, .ts, and .md files.export default defineNuxtConfig({
modules: ['nuxt-link-checker'],
site: { url: 'https://example.com' },
nitro: { prerender: { routes: ['/'], crawlLinks: true } },
linkChecker: {
failOnError: true,
report: { json: true, markdown: true },
},
})Only errors fail the build. Errors come from no-error-response, missing-hash, and no-javascript. Every other rule is a warning.
The count is the number of links with an error, not the number of errors.
With crawlLinks: true, Nitro crawls the broken link too and fails the build on its 404 before failOnError matters. To keep the build green and still get the report, set nitro.prerender.failOnError: false.
report.html, report.markdown, and report.json write link-checker-report.<ext> to .output/.
When any report is on, the console shows only the summary. Read the report file for the link list.
report.storage: a path relative to the root, or unstorage options.report.publish: true writes to .output/public/__link-checker__/. It adds X-Robots-Tag: noindex and a robots.txt disallow. The report is still public.The JSON report is an array of { route, reports }. Each report has link, textContent, error[], warning[], and fix. fix is the suggested link, such as /about for a typo /abot.
export default defineNuxtConfig({
linkChecker: {
excludeLinks: ['/admin/**', '/api/*', /\.(pdf|zip)$/],
excludePages: ['/embed/**'],
skipInspections: ['link-text', 'no-underscores'],
},
})excludeLinks matches the link. excludePages matches the page that contains the link and skips all its links.* is one whole segment and ** is any depth. /_nuxt/file_*.pdf never matches. Use a RegExp for part of a segment.skipInspections takes rule ids. The ids are: absolute-site-urls, link-text, missing-hash, no-baseless, no-double-slashes, no-duplicate-query-params, no-error-response, no-javascript, no-missing-href, no-non-ascii-chars, no-underscores, no-uppercase-chars, no-whitespace, redirects, trailing-slash. An unknown id does nothing and gives no warning.// eslint.config.mjs
import linkCheckerPlugin from 'nuxt-link-checker/eslint'
import vueParser from 'vue-eslint-parser'
export default [
{
files: ['**/*.vue', '**/*.ts'],
languageOptions: { parser: vueParser },
plugins: { 'link-checker': linkCheckerPlugin },
rules: {
'link-checker/valid-route': 'error',
'link-checker/valid-sitemap-link': 'warn',
},
},
// Markdown: same plugin and rules, plus processor: 'link-checker/markdown'
]The rules read .nuxt/link-checker/routes.json. Run nuxt prepare or nuxt dev before eslint in CI.
valid-sitemap-link checks nothing until nuxt dev merges the @nuxtjs/sitemap URLs into that file.
Pass { rootDir } or { routesFile } as the rule option when ESLint runs from another directory.
Only literal links that start with / are checked. Skip one link with rel="nofollow" or an eslint-disable-next-line comment.
routes.json, no ESLint errors. Without nuxt prepare, both ESLint rules pass every link. ESLint prints one [nuxt-link-checker] ... not found warning, and still exits 0.HEAD request to site.url + path. A new SSR only page that is not deployed yet reports a 404. A page that exists only in production passes. Add such pages to excludeLinks, or prerender them.HEAD with 405 or 501 gets a GET retry. A DNS error or a refused connection reports Could not reach the link (ENOTFOUND) with the cause code. A timeout reports 408./about/ that 404s reports only the 404, not the trailing slash.excludeLinks.These v1 options are gone. The module logs a warning that names the replacement, then ignores them:
exclude: use excludeLinks.failOn404: use failOnError.siteUrl and trailingSlash: set site.url and site.trailingSlash.The ESLint rules and nuxt-link-checker/eslint exist from v5.0.0.
enabled (true), runOnBuild (true), failOnError (false), debug (false).fetchTimeout (10000 ms), fetchRemoteUrls (false). With fetchRemoteUrls: true the module checks that you are online first and turns itself off if not./__link-checker__/debug.json in dev shows the resolved config, including the serialized exclude patterns.debug: true writes debug-link-responses.json next to the reports, with the status the module used for each link.© harlan-zw, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/nuxt-link-checker of harlan-zw/nuxt-link-checker.
Open the folder on GitHubat commit 7eebc81
Nuxt Link Checker next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Nuxt Link Checker this skillharlan-zw/nuxt-link-checker | 101 | — | ~1.9k | Automated safety check: Pass | MIT | |
| LobeHub Alint Rule Set Maintenancelobehub/lobehub | 83k | — | ~1.9k | Automated safety check: Pass | Custom licence | |
| Eslint Migrate Optionsbiomejs/biome | 26k | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Ultraciteagustinusnathaniel/nextarter-tailwind | 125 | 2 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Code Qualityredis/RedisInsight | 8.9k | — | ~1.2k | Automated safety check: Pass | Custom licence | |
| Boundaries Architectjavierbrea/eslint-plugin-boundaries | 997 | — | ~4.2k | Automated safety check: Pass | MIT |
lobehub/lobehub
Maintains LobeHub's model-backed alint rule set: writing rules, removing false positives against real code, deciding warn versus error and tracking token cost.
biomejs/biome
A skill your agent uses when biome migrate eslint must preserve configurable ESLint rule options through source-option models, Biome conversions, typed rule variants, and migration fixtures.
agustinusnathaniel/nextarter-tailwind
Ultracite is a zero-config linting and formatting preset for JavaScript/TypeScript projects.
redis/RedisInsight
Code-quality standards for RedisInsight: TypeScript strictness, naming conventions (camelCase, PascalCase, UPPERSNAKECASE), linting rules, no any without reason, no !important in styles, and…
javierbrea/eslint-plugin-boundaries
Act as a software architect: analyze a repository's folder structure and cross-file import dependencies, detect its architectural pattern, design element/file boundaries with the user, and configure…
web-infra-dev/rslint
Port a new ESLint core or plugin rule to rslint, including explicitly requested batches.
Categories
Find and fix broken or SEO unfriendly links in a Nuxt app with the nuxt-link-checker module. Nuxt Link Checker is an agent skill from harlan-zw/nuxt-link-checker. Find and fix broken or SEO unfriendly links in a Nuxt app with the nuxt-link-checker module.
Nuxt Link Checker fits situations like: A task mentions broken links; link checking on build; skipInspections; link checker reports.
Run `npx skills add harlan-zw/nuxt-link-checker --skill nuxt-link-checker -a claude-code`. Or copy the skill folder (skills/nuxt-link-checker in harlan-zw/nuxt-link-checker) into .claude/skills/nuxt-link-checker in your project. Claude Code loads it when a task matches its description.
Run `npx skills add harlan-zw/nuxt-link-checker --skill nuxt-link-checker -a codex`. Or copy the skill folder (skills/nuxt-link-checker in harlan-zw/nuxt-link-checker) into .agents/skills/nuxt-link-checker in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add harlan-zw/nuxt-link-checker --skill nuxt-link-checker -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/nuxt-link-checker, .gemini/skills/nuxt-link-checker, .github/skills/nuxt-link-checker and .opencode/skills/nuxt-link-checker in your project.
SKILL.md names no scripts, command-line tools or credentials: Nuxt Link Checker is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: nuxtseo.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Nuxt Link Checker is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Nuxt Link Checker: LobeHub Alint Rule Set Maintenance (lobehub/lobehub, 83k stars), Eslint Migrate Options (biomejs/biome, 26k stars), Ultracite (agustinusnathaniel/nextarter-tailwind, 125 stars) and Code Quality (redis/RedisInsight, 8.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
harlan-zw (a GitHub user) maintains it in harlan-zw/nuxt-link-checker, which has 101 GitHub stars. The repository was last updated on October 8, 2026.
Source: harlan-zw/nuxt-link-checker on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.