本文へ移動
cccskills
無料GitHub で公開

bench-setup

Set up the nu-validator benchmark environment — initialise the validator submodule, ensure Docker is running, populate the gitignored raw snapshots via yarn bench:update. Also covers Docker / nu-runner troubleshooting. Use when bench commands fail with "no snapshots found", "Docker daemon not reachable", port 28888 conflicts, or healthcheck timeouts; or when refreshing the bench after a long break. Trigger keywords: bench setup, bench Docker, validator submodule, no snapshots found, Docker daemon not reachable, healthcheck times out, port 28888, yarn bench:update first time, bench install, fresh clone bench.

日本語の概要は準備中です。原文の説明を表示しています。

markuplint/markuplintスター 630(GitHub 630 + cccskills 0)
連携ツールDocker

実行スコア 未検証

インストール方法を見る

含まれるファイル(1)

  • SKILL.md4.1 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

nu-validator Bench Setup Skill

Get the bench runnable on this machine, or recover when it isn't. Once this skill's checks pass, drop into bench-triage for actual coverage work.

Prerequisites

  • Docker Desktop / Engine (macOS / Linux; WSL2 on Windows). The bench does not install Docker for you.
  • Node 22+ (already required by the monorepo).
  • The validator submodule checked out:
    git submodule update --init tests/external/validator
    
    This path is deliberately narrow — it is the only submodule the bench needs. A branch may carry others for unrelated suites (the v6 line vendors html5lib-tests for the Rust parser), so do not widen it to a bare git submodule update --init and assume the result is bench setup.

Fresh-clone bootstrap

Raw snapshot trees are gitignored. Populate them once:

git submodule update --init tests/external/validator
yarn bench:update

This pulls the nu-validator Docker image (ghcr.io/validator/validator), runs both tools across all fixtures, and writes the snapshot trees, diffs, and generated spec. Takes ~2 minutes at default concurrency.

A worktree can skip the Docker leg when another checkout on the same machine already holds the raw trees for the same nu inputs. Compare tests/external/snapshots/meta.json in both checkouts first: the same submoduleSha and nuValidatorImage mean the nu tree there is the one this worktree would produce. Then copy the gitignored nu tree and regenerate the markuplint side against this worktree's build:

cp -r <other-checkout>/tests/external/snapshots/nu-validator tests/external/snapshots/
yarn bench:update:ml

Routine refresh after dev sync

git submodule update --remote tests/external/validator
yarn bench:update

Review snapshots/diff/summary.md and snapshots/diff/*.json in the PR. The raw snapshot trees stay local-only. What to do with the resulting diff — classifying new nu-only entries, re-pinning stale exclusions, syncing issue bodies — is the bench-maintain skill.

Markuplint rule change (skip the Docker leg)

yarn bench:update:ml

Only re-runs the markuplint side; reuses existing nu snapshots.

Commands reference

The yarn bench:* scripts are defined in the root package.json; their flags (--target, --filter, --concurrency, etc.) are parsed in the corresponding tests/external/bench/*.ts entry — read those when unsure. The non-derivable bit: nu output is only deterministic at --concurrency 1.

Troubleshooting

SymptomLikely cause and fix
Docker daemon not reachableStart Docker Desktop / the daemon. The bench does not install or start Docker.
docker pull faileddocker login ghcr.io if behind authenticated pulls, otherwise check connectivity.
Healthcheck times outnu-validator takes 10–30 s to come up cold. If > 60 s, docker logs ml-nu-validator.
Port 28888 already allocatedStop the conflicting container, or edit DEFAULT_PORT in bench/docker.ts.
yarn bench:verify / yarn bench:compare "no snapshots found"Raw trees are gitignored on a fresh clone. Run yarn bench:update.
One or two snapshot files flip between runsExpected nu parallelism flicker. Rerun with --concurrency 1 when reproducibility matters.
Unexpected diffs after a submodule bumpCheck tests/external/snapshots/meta.json for image-digest / markuplint-version changes.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

Maintenance of the nu-validator coverage benchmark: defend the invariants (nu-only = 0, xref audit green), follow up a nu-validator upstream update (submodule bump / Docker image drift), and regression-check after markuplint rule or spec changes. Use when updating the validator submodule, when a bench refresh surfaces new nu-only entries, when excluded-ids entries go stale, or for the periodic health check. Trigger keywords: bench maintain, bench maintenance, nu update, submodule bump, validator update, bench refresh, nu-only regression, stale excluded-ids, image digest.

日本語の概要は準備中です。原文の説明を表示しています。

markuplint/markuplint6302026年10月26日 更新

Enable an existing or newly-added markuplint rule on the nu-validator bench by editing tests/external/bench/config.ts. Covers the flat-rule case (rules: { '<name>': true }) and the severity override case (rules: { '<name>': { severity: 'error' } }) that bench-virtual-rule does not. Use when a rule exists in the registry but the relevant nu fixtures stay nu-only because the rule is not enabled in the bench config, or when a rule's default severity is warning but the spec text it mirrors is a MUST / MUST NOT. Trigger keywords: enable bench rule, bench config flat rule, severity override bench, rule not flagging on bench, warning vs error in bench, escalate severity bench, no-contradictory-aria-prop bench, bench coverage missing rule.

日本語の概要は準備中です。原文の説明を表示しています。

markuplint/markuplint6302026年10月26日 更新

Triage one nu-only fixture from tests/external/snapshots/diff/nu-only.json by reading the spec, then drive its verdict to match-error, match-clean, or nu-over by either fixing markuplint or recording an excluded-ids.json entry. The core per-fixture operation of the nu-validator coverage benchmark. Use when a bench refresh surfaces new nu-only entries, when checking a coverage-claim ("markuplint misses X" / "over-detects Y") against the bench, or when classifying a specific fixture. Trigger keywords: nu-only, ml-only, coverage gap, bench triage, verdict, match-error, match-clean, nu-over, excluded-ids, declare nu over-detection, claim audit, audit fixture, mark-up valid per spec, spec-cited exclusion.

日本語の概要は準備中です。原文の説明を表示しています。

markuplint/markuplint6302026年10月26日 更新

Mirror a preset virtual rule (selectors under `nodeRules` in preset.html-standard.jsonc and similar) into bench/config.ts so the benchmark exercises it. Use when a new disallowed-element / similar selector lands in a preset and the matching nu fixtures remain stuck at nu-only despite the new rule existing in markuplint. Trigger keywords: virtual rule, nodeRules, disallowed-element, preset html-standard, bench config mirror, rule does not fire on bench, preset rule not exercised.

日本語の概要は準備中です。原文の説明を表示しています。

markuplint/markuplint6302026年10月26日 更新

Sync benchmark cross-reference blocks onto GitHub Issue bodies via `yarn bench:xref`, manage `tests/external/bench/issue-xref.config.ts` mappings, and run the pre-release checklist. Use when adding / removing / updating a primary or secondary mapping, when an issue closes upstream, when the xref CLI's output disagrees with what's on the issue body, or before cutting a release that touches a rule the benchmark covers. Trigger keywords: bench-xref, issue-xref, xref CLI, GitHub issue body, primary mapping, secondary mapping, umbrella block, pre-release checklist, bench-xref-audit workflow, marker version.

日本語の概要は準備中です。原文の説明を表示しています。

markuplint/markuplint6302026年10月26日 更新

Investigate a problem to its root cause and file it as a GitHub Issue with the right labels and an As is / To be / Why / How body backed by primary sources. Use when asked to file, create, or open an issue, or when the `impl` skill hands over a carry-over. Trigger keywords: create issue, file an issue, open an issue, report a bug as an issue.

日本語の概要は準備中です。原文の説明を表示しています。

markuplint/markuplint6302026年10月26日 更新

markuplint のスキルをすべて見る

このスキルの問題を報告する