bench-rule-enable
Enable an existing or newly-added markuplint rule on the nu-validator bench by editing tests/external/bench/config.ts.
Skill by markuplint
Chalk Labs
Need help deploying bench-rule-enable?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/markuplint-bench-rule-enable
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/bench-rule-enable
What's inside
- Skill name
bench-rule-enable- Description
- 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.
- License
- MIT
- Metadata
- internal: true
- Instructions
- 99 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Bench Rule Enable Skill
`tests/external/bench/config.ts` curates rules explicitly (no
`extends: ['markuplint:html-standard']`). A rule that exists in the
markuplint registry will not affect bench verdicts until it is added
to that file. This skill covers the two non-virtual-rule patterns:
- **Flat enable**: adding `'<rule-name>': true` for a rule whose
default behaviour matches the bench's spec-conformance lens.
- **Severity override**: adding `'<rule-name>': { severity: 'error' }`
for a rule whose default severity is `'warning'` but whose
underlying assertion is a MUST / MUST NOT in the spec text.
For preset-defined virtual rules (`nodeRules[]` selectors), use
`bench-virtual-rule` instead.
## When to add a rule to the bench
The bench is the spec-conformance comparison surface. A rule belongs
in `bench/config.ts` only when its assertions map onto a
nu-validator capability. Use this checklist:
1. The rule is registered in `packages/@markuplint/rules/src/index.ts`. On the v6 line, confirm where the rule actually lives before editing anything: that branch carries a second rule implementation under `crates/markuplint-rules`, governed by `crates/markuplint-rules/CLAUDE.md`.
2. The rule reports diagnostics with severity `'error'` (or you
intend to override severity — see the next section).
3. Either:
- nu-validator currently fires on the same markup pattern, OR
- the spec the rule cites contains MUST / MUST NOT language and
the discrepancy in nu's coverage is documented in
`bench-triage`'s [audit log](../bench-triage/audit-log.md).
If both nu and the spec are silent, do **not** enable the rule in
the bench — it would inflate `ml-only` without producing a
spec-aligned signal.
## Pattern 1: flat enable
Most new conformance rules ship as flat enable: add
`'<rule-name>': true` to `rules` in `tests/external/bench/config.ts`
(entries kept alphabetical). After editing:
```sh
yarn build --scope @markuplint/rules
yarn bench:update --target markuplint --filter '<bench fixture path>'
```
Expect the targeted fixtures to flip from `nu-only` to
`match-error`. If a fixture stays `nu-only`, the rule is not
matching that specific HTML (re-read the rule and the fixture).
## Pattern 2: severity override
A rule whose default `meta.defaultSeverity` is `'warning'` does not
contribute to bench verdicts (see `compare.ts#judgeMlState` — only
errors flip ml state). Override for the bench-only run by adding
`'<rule-name>': { severity: 'error' }` to `bench/config.ts`.
The inline comment on the override must include:
- The spec citation that justifies treating the rule as error
- A reason why the user-facing default stays at `'warning'` (so the
next maintainer does not "harmonise" by raising the user-facing
default unconditionally)
## Side-effect check
Severity overrides have ripple effects: fixtures that previously
were `match-clean` (both clean) may flip to `ml-only` (ml strict, nu
lax). This is **not a regression** when:
- The spec the rule cites is a MUST / MUST NOT, and
- The fixture's filename includes `-haswarn` (nu fires only a
warning, not an error)
Confirm by inspecting
`tests/external/snapshots/diff/markuplint-only.json` after the bench
run: filter `entries[]` to those whose `ruleIds` include the rule.
Each affected fixture should be a legitimate "ml strict, nu lax"
case per the bench-triage SKILL ml-only readings. Anything else is a
real over-detection — back out the severity override.
## Verification
```sh
yarn bench:update --target markuplint
yarn bench:compare
```
Compare `tests/external/snapshots/diff/summary.md`:
- Per-category match-error count for the rule's domain should rise
- nu-only count should fall by the same amount (within nu-validator
parallel-load flicker)
- ml-only delta should match the side-effect analysis above
Pin against `--concurrency 1` before filing for a stable verdict.From markuplint/markuplint, MIT.
More from markuplint/markuplint
- 0.817score
impl
markuplint
Implementation orchestrator — takes an agreed plan through implementation, carry-over approval, code review, security review, QA, docs consistency, lint/test…
SkillAFreshness: A★ 629Claude Code +9 - 0.811score
issue
markuplint
Analyze or create a GitHub Issue and build a TDD resolution plan.
SkillAFreshness: A★ 629Claude Code +9 - 0.811score
qa-engineer
markuplint
Review a diff of this repository as a QA engineer: test quality (coverage, test-faking code, swallowed exceptions, conditional logic in tests, hardcoded…
SkillAFreshness: A★ 629Claude Code +9 - 0.811score
pr-review
markuplint
Review an external pull request for the owner: check it against the intake conditions of CONTRIBUTING.md (eligible issue, required body sections, no burst of…
SkillAFreshness: A★ 629Claude Code +9 - 0.811score
verify-docs
markuplint
Verify documentation claims (README, JSDoc) in spec-heavy packages — @markuplint/types (attribute value types; WHATWG/W3C/RFC/CSS/SVG grammars) and…
SkillAFreshness: A★ 629Claude Code +9 - 0.811score
release
markuplint
Release markuplint — branch promotion, version bump (lerna fixed mode), tag push, publish workflow monitoring, npm-state verification, GitHub Release notes…
SkillAFreshness: A★ 629Claude Code +9 - 0.811score
git
markuplint
Git operation rules for this repository — branch guard, commit granularity, package commit order, Conventional Commits message format, and pre-commit checks.
SkillAFreshness: A★ 629Claude Code +9 - 0.811score
product-manager
markuplint
Review a diff of this repository from a Product Manager (PdM) perspective: documentation consistency (JSDoc placement, comment policy, README accuracy)…
SkillAFreshness: A★ 629Claude Code +9 - 0.811score
framework-parsers
markuplint
Create and maintain framework parser and spec packages for markuplint — package types, naming, and the architectural constraints that break the build or…
SkillAFreshness: A★ 629Claude Code +9 - 0.811score
pr
markuplint
Create and push a pull request — pre-flight checks, base tracking, PR body drafting, conflict detection, and CI watch loop.
SkillAFreshness: A★ 629Claude Code +9 - 0.811score
list-rule-test
markuplint
List rule test IDs with filtering and stats.
SkillAFreshness: A★ 629Claude Code +9 - 0.811score
doc
markuplint
Documentation policy — JSDoc-first; no code-derivable markdown.
SkillAFreshness: A★ 629Claude Code +9
Signals
- Stars
- 629
- Forks
- 70
- Open issues
- 52
- Last commit (this folder)
- Oct 16, 2026 (15 days ago)
- Last release
- Oct 21, 2026 (10 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/markuplint/markuplint
- Website
- markuplint.dev
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from markuplint
- 0.817score
impl
markuplint
Implementation orchestrator — takes an agreed plan through implementation, carry-over approval, code review, security review, QA, docs consistency, lint/test…
SkillAFreshness: A★ 629Claude Code +9 - 0.811score
release
markuplint
Release markuplint — branch promotion, version bump (lerna fixed mode), tag push, publish workflow monitoring, npm-state verification, GitHub Release notes…
SkillAFreshness: A★ 629Claude Code +9 - 0.811score
qa-engineer
markuplint
Review a diff of this repository as a QA engineer: test quality (coverage, test-faking code, swallowed exceptions, conditional logic in tests, hardcoded…
SkillAFreshness: A★ 629Claude Code +9 - 0.811score
product-manager
markuplint
Review a diff of this repository from a Product Manager (PdM) perspective: documentation consistency (JSDoc placement, comment policy, README accuracy)…
SkillAFreshness: A★ 629Claude Code +9 - 0.811score
verify-docs
markuplint
Verify documentation claims (README, JSDoc) in spec-heavy packages — @markuplint/types (attribute value types; WHATWG/W3C/RFC/CSS/SVG grammars) and…
SkillAFreshness: A★ 629Claude Code +9 - 0.811score
pr-review
markuplint
Review an external pull request for the owner: check it against the intake conditions of CONTRIBUTING.md (eligible issue, required body sections, no burst of…
SkillAFreshness: A★ 629Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get bench-rule-enable running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
bench-rule-enable skill. Agent Mart. https://agentmart.dev/skills/markuplint-bench-rule-enable (last updated 2026-10-24)