Skip to content

chore(lint): replace markdownlint-cli with rumdl - #741

Merged
Jamie-BitFlight merged 1 commit into
mainfrom
chore/replace-markdownlint-with-rumdl
Oct 11, 2026
Merged

Jamie-BitFlight merged 1 commit into
mainfrom
chore/replace-markdownlint-with-rumdl

Conversation

@Jamie-BitFlight

@Jamie-BitFlight Jamie-BitFlight commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

Why

The Markdown linter brings in the smol-toml, KaTeX, and nested js-yaml dependency branches tracked in #739 and #740. Replace it with the selected rumdl tool.

Changes

  • Replace markdownlint-cli with rumdl@^0.2.79, using its npm-distributed native binary.
  • Consolidate rules and file exclusions in .rumdl.toml; retain the existing lint:markdown and lint:markdown:fix scripts.
  • Keep the 18 active checks, allowed HTML, question-mark heading punctuation, and backtick/fenced code policy. Disable line-length checking directly and omit the old proper-names rule, which had no configured names.
  • Use native GitHub annotation output and remove the Markdownlint problem matcher. Preserve the workflow's existing continue-on-error setting.
  • Update repository guidance and ignore the native cache.

Application sources and the production dependency graph are unchanged. Unrelated lockfile entries retain their versions and metadata.

Verification

Executed locally with Node 24.19.0:

  • Dependency installation, npm run check, npm run build, and all 722 tests in 25 files passed.
  • npm run lint:markdown passed on all 10 current Markdown files.
  • Executed both linters against examples for all 18 active rules and allowed/disabled controls.
  • Verified regular-file selection and exclusions, fix convergence, exit status for unresolved violations, missing/malformed configuration failures, and native GitHub annotations.
  • Production audit: zero findings. Full development audit: 21 remaining findings, tracked separately in Resolve remaining bundled npm selector-parser security update #739/Triage remaining development dependency audit findings #740.

The native directory scan skips symlinks, unlike the old glob walker; this repository's tracked symlinks are in excluded agent directories. Diagnostic wording and available autofixes differ between tools.

Independent review found no migration defects. Codex and CodeRabbit completed without actionable findings.

GitHub verification for head 518b210bd89918454f38a5588cb93f42d8ca9473:

Decoded logs establish checkout of this head, or its merge with the unchanged main base.

Refs #739
Refs #740

Summary by CodeRabbit

  • Chores
    • Updated Markdown linting to use rumdl, with refreshed lint rules and configuration.
    • Updated automated checks to report rumdl results in CI.
    • Updated repository guidance to reflect the new Markdown linting setup.

@coderabbitai

coderabbitai Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: bitflight-devops/github-action-readme-generator/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: e50c605c-0902-4473-8c28-4189e83cd1c4


📥 Commits

Reviewing files that changed from the base of the PR and between e6b72c6 and 518b210.



⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json


📒 Files selected for processing (10)
  • .claude/skills/holistic-linting/PROJECT-CONFIG.md
  • .claude/skills/holistic-linting/SKILL.md
  • .github/workflows/push_code_linting.yml
  • .gitignore
  • .markdownlint.json
  • .markdownlintignore
  • .rumdl.toml
  • AGENTS.md
  • package.json
  • vite.config.ts


💤 Files with no reviewable changes (2)
  • .markdownlintignore
  • .markdownlint.json


Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.




Walkthrough

The repository replaces markdownlint with rumdl for Markdown linting. The change updates lint configuration, package scripts, CI output settings, cache exclusions, and repository guidance.

Changes

Markdown Linter Migration

Layer / File(s) Summary
Define rumdl rules
.rumdl.toml, .markdownlint.json, .markdownlintignore
Removes the markdownlint configuration and ignore file. Adds rumdl rules, file inclusions, and path exclusions.
Wire rumdl into lint execution
package.json, .github/workflows/push_code_linting.yml, .gitignore
Changes the Markdown lint script and development dependency to rumdl. The CI step sets RUMDL_OUTPUT_FORMAT=github, and .gitignore excludes .rumdl_cache/.
Update repository guidance
AGENTS.md, .claude/skills/holistic-linting/*, vite.config.ts
Updates linting references and configuration guidance to identify rumdl and .rumdl.toml.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Suggested reviewers: bitflight-devops

Merge Risk: ⚪ Minimal · up to 518b2

The migration updates the matching npm lockfile. The only identified lint-coverage difference concerns lines longer than 99,999 characters, and no affected file was established. No material build or user-facing risk is indicated; normal checks are sufficient.

Pre-merge checks | Passed 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes the main change: replacing markdownlint-cli with rumdl.

✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR



🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR



  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Jamie-BitFlight
Jamie-BitFlight marked this pull request as ready for review October 11, 2026 06:04
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-11T06:09:39.831819Z 518b210 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Copy link
Copy Markdown
Contributor Author

Independent checker completed for head 518b210bd89918454f38a5588cb93f42d8ca9473: satisfied; no confirmed migration defects.

The checker independently ran both lint commands, exercised all 18 configured rules and permitted controls, tested suppression comments and file exclusions, traced the nested npm fix command to the installed native binary, checked fixes against excluded-file hashes, observed GitHub annotations and failure exit status, and compared the production/shared lockfile entries.

Known differences are recorded in the PR body: the native directory scan skips symlinks (none are active Markdown targets here), and diagnostic/fix behavior is not byte-for-byte identical. The existing repository-wide Git whitespace attribute also makes git diff --check complain about valid YAML space indentation; that command was not counted as passing. The workflow YAML was parsed successfully.

The published changed-file blob SHAs match the locally tested files, and the PR is now ready for GitHub review and CI reconciliation.

@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 94.05% 1012 / 1076
🔵 Statements 94.18% 1037 / 1101
🔵 Functions 96.95% 159 / 164
🔵 Branches 88.26% 564 / 639
File CoverageNo changed files found.
Generated in workflow #1123 for commit 518b210 by the Vitest Coverage Report Action

@Jamie-BitFlight
Jamie-BitFlight merged commit d188415 into main Oct 11, 2026
11 checks passed
@Jamie-BitFlight
Jamie-BitFlight deleted the chore/replace-markdownlint-with-rumdl branch October 11, 2026 06:13

Copy link
Copy Markdown
Contributor Author

Merged as d1884157efc9163eb88332c84e85dee491f12f5a. Its Git tree exactly matches the independently reviewed and locally tested PR tree.

Post-merge verification

All main-branch workflows completed successfully for that commit:

  • Tests and called release workflow: both Node matrix jobs passed checks, tests, coverage, build, and docs generation. The deploy job passed npm ci, engine compatibility, registry signatures/attestations, and build. Semantic-release explicitly reported that no new release was needed.
  • Oxlint and rumdl: passed. The actual native rumdl step and its decoded log were checked despite continue-on-error.
  • Both external integrations: packaged entry points, generation convergence, and contracts passed.
  • CodeQL: both language analyses passed.

The release runner created a local build commit, but did not advance main; main remains d1884157.

Dependency reconciliation

The merged lockfile and installed graph remove Markdownlint, smol-toml, KaTeX, and Markdownlint's nested js-yaml. The production dependency graph is unchanged. The fresh audit reports zero production findings and 21 affected development package entries, including propagated parent findings.

#739 now retains only the bundled npm selector-parser remediation. #740 records the removed nested YAML instance and the other remaining development-tool findings. Both issues retain the historical evidence.

@Jamie-BitFlight

Copy link
Copy Markdown
Contributor Author

🎉 This PR is included in version 2.0.7 🎉

The release is available on:

Your semantic-release bot 📦🚀

@Jamie-BitFlight Jamie-BitFlight added the released This issue/pull request has been released. label Oct 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

released This issue/pull request has been released.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant