Skip to content

Close configuration gaps left by the rumdl migration (GH-1368) - #1371

Merged
laughingman7743 merged 3 commits into
masterfrom
docs/1368-rumdl-gaps
Nov 7, 2026
Merged

laughingman7743 merged 3 commits into
masterfrom
docs/1368-rumdl-gaps

Conversation

@laughingman7743

@laughingman7743 laughingman7743 commented Nov 7, 2026 •

Copy link
Copy Markdown
Member

WHAT

Closes the three configuration gaps left by the rumdl migration.

  1. .rumdl.toml includes .agents/skills/**/*.md, so just docs lint and the Docs Lint workflow check the agent skills. The separate rumdl check .agents/skills step in the development workflow skill is removed, and the list in AGENTS.md (CLAUDE.md) names the skills.
  2. The .jsonc entry of scripts/check_license_headers.py and its test row are removed; no tracked .jsonc file remains.
  3. MD044 is configured with names = ["PyAthena", "Athena", "SQLAlchemy", "fsspec", "Polars", "PyArrow", "pandas"], code-blocks = false and whole-words = true, and MD043 is dropped from enable with a note.
    The docs are updated to pass MD044:
    • library names in prose are written as their projects write them (pyarrow → PyArrow, polars → Polars, Pandas → pandas);
    • module paths in link text (pyarrow.Table, polars.DataFrame, polars.concat), pola-rs/polars#N references, SQLAlchemy dialect/driver/schema names in the dialect tables, and the engine option values of PandasCursor are now code;
    • the MyST targets (pyathena)=, (polars)= and (sqlalchemy)= are preceded by <!-- rumdl-disable-next-line MD044 -->, because rumdl 0.3.2 applies MD044 to MyST target lines.

The H1 of docs/pandas.md becomes pandas, so the page title in the navigation changes from "Pandas" to "pandas".
whole-words = true keeps MD044 from matching names inside identifiers such as AWS_ATHENA_S3_STAGING_DIR.
Inline code and code blocks are exempt, so pip install PyAthena[Pandas], engine="pyarrow" and import paths are unchanged.

WHY

Closes #1368.
The skills were not linted by CI, the .jsonc entry had no files, and MD043/MD044 were enabled without configuration, so they never reported anything.
For item 3, the maintainer chose to configure MD044, including the package names, over dropping it.
With only the first four names, MD044 reports nothing but the MyST targets; MD043 has no heading structure shared by the docs to configure.

TEST

Tested commit: 6cb0195.

  • mise exec -- rumdl check . (rumdl 0.3.2): no issues in 30 files, including the four .agents/skills files.
  • just lint: passed.
  • uv run --locked python -m pytest scripts/tests/ -q: 111 passed.
  • uv run sphinx-build -b html docs <out> on this branch and on origin/master (2a60ecc): the same warnings apart from paths and line numbers, and index.html, polars.html and sqlalchemy.html keep the pyathena, polars and sqlalchemy anchors.
    just docs build (sphinx-multiversion) builds committed refs only, so it was not used to check the working tree.
  • Markdown and script changes only; no AWS tests are needed.
  • Not verified: that the workflow's **.md path filter triggers on a PR that changes only .agents/skills files, as the issue states. The only earlier skills-only change (Add shared development and review skills for Codex and Claude Code #778) also changed AGENTS.md, and this PR changes root files too.

🤖 Generated with Claude Code

laughingman7743 and others added 3 commits November 7, 2026 13:57
`just docs lint` and the Docs Lint workflow skipped `.agents/skills`, so the
separate `rumdl check .agents/skills` step in the development workflow was
not enforced. Include the skills in `.rumdl.toml` and drop the separate step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Its only file, `.markdownlint-cli2.jsonc`, was removed with markdownlint-cli2,
and no tracked `.jsonc` file remains.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Both rules were enabled without `names` or `headings`, so neither reported
anything. MD044 now checks the spelling of PyAthena, Athena, SQLAlchemy,
fsspec, Polars, PyArrow and pandas outside code, and the docs follow it:
library names in prose are capitalized as their projects write them, and
module paths, driver names and option values are code. rumdl also checks
MyST `(label)=` targets, so the three labels with a lowercase name disable
MD044 for their line. MD043 is dropped because the docs share no single
heading structure.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Comment thread .rumdl.toml
# rumdl also checks MyST `(label)=` targets, so the labels that contain one of
# these names disable MD044 for their line.
[MD044]
names = ["PyAthena", "Athena", "SQLAlchemy", "fsspec", "Polars", "PyArrow", "pandas"]

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Self-review round one (implementation behavior)

  • Base: 2a60ecc1f2a7a6bd0d9293525a41ea0d642a0082 (merge-base with master)
  • Head: 6cb01956bb79e540567632677c463c825f151cd7
  • Covered: all 20 changed files — .rumdl.toml (include, enable, MD044), AGENTS.md, the development-workflow skill, scripts/check_license_headers.py and its test, and the 16 Markdown files changed for MD044.

Result: CLEAN

Checks:

  • rumdl check . lints 30 files, including the four .agents/skills files, with no issues; the skills' .claude/skills links are not added to include, so they are not linted twice.
  • MD044 skips inline code and code blocks (checked with a scratch file), so PyAthena[Pandas], engine="pyarrow" and import paths stay as they are; whole-words = true excludes AWS_ATHENA_* in docs/usage.md.
  • The rumdl-disable-next-line MD044 comments cover only the MyST targets (pyathena)=, (polars)= and (sqlalchemy)=. Without them, just docs format (rumdl check --fix) would rewrite the labels and break {ref} targets. A plain sphinx-build of this head and of the base produces the same warnings apart from paths and line numbers, and the anchors in index.html, polars.html and sqlalchemy.html are unchanged.
  • docs/polars.md and docs/sqlalchemy.md are in unheaded-files; a leading HTML comment does not affect scripts/check_license_headers.py (exit 0).
  • Removing the .jsonc entry removes only behavior that has no files; pytest scripts/tests/: 111 passed.
  • benchmarks/RESULTS.md is maintained by hand (no generator writes it), so the PyArrow spelling will not be reverted.

Noted for round two: docs/pandas.md's H1 becomes pandas, which changes the page title in the navigation.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correction to round one (found after merge, db5edc9)

Round one said that, without the rumdl-disable-next-line MD044 comments, just docs format would rewrite the labels and break {ref} targets.
The rewrite does not break the references: Sphinx normalizes label names to lowercase.
Checked with a plain sphinx-build of db5edc9 after removing the comments and changing (sqlalchemy)= to (SQLAlchemy)= and (polars)= to (Polars)=. No new warnings appeared, and {ref}sqlalchemy`` in docs/introduction.md and `docs/pandas.md` still links to `sqlalchemy.html#sqlalchemy`. The anchors stay `#sqlalchemy` and `#polars`.

The disable comments are still needed to keep MD044 from reporting the labels. Without them, the auto-fix makes a label's spelling differ from its {ref} uses.
The cause, rumdl not recognizing MyST targets under the MyST flavor, is reported as rvben/rumdl#983. The comments can be removed once a fixed rumdl is pinned.
The PR description and .rumdl.toml do not contain the incorrect statement.

Comment thread AGENTS.md
### Markdown Lint

`docs/**/*.md`, `benchmarks/*.md`, `scripts/**/*.md`, `cloudformation/**/*.md`, and project-root `*.md` files are linted with [rumdl](https://github.com/rvben/rumdl). The config lives at `.rumdl.toml`. CI runs lint + Sphinx build on PRs that touch docs (`.github/workflows/docs-lint.yaml`).
`docs/**/*.md`, `benchmarks/*.md`, `scripts/**/*.md`, `cloudformation/**/*.md`, `.agents/skills/**/*.md`, and project-root `*.md` files are linted with [rumdl](https://github.com/rvben/rumdl). The config lives at `.rumdl.toml`. CI runs lint + Sphinx build on PRs that touch docs (`.github/workflows/docs-lint.yaml`).

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Self-review round two (claims, callers, operational effects)

  • Base: 2a60ecc1f2a7a6bd0d9293525a41ea0d642a0082
  • Head: 6cb01956bb79e540567632677c463c825f151cd7
  • Covered: PR body, the three commit messages, the .rumdl.toml comments, AGENTS.md's Markdown Lint section, the development-workflow skill row, and the issue premises repeated by the change.

Result: FINDINGS (PR description only; no code or docs repair)

Claims checked:

  • "rumdl 0.3.2 applies MD044 to MyST target lines": reproduced. With [per-file-flavor] docs/**/*.md = "myst", (pyathena)= and (sqlalchemy)= were reported with the four-name list.
  • "whole-words = true keeps MD044 from matching AWS_ATHENA_S3_STAGING_DIR": without it, docs/usage.md:796/799 were reported; with it, they were not.
  • "Inline code and code blocks are exempt": a scratch file reported only the prose polars. The fenced import polars as pl examples in the docs produce no reports.
  • "With only the first four names, MD044 reports nothing but the MyST targets": two reports, both labels.
  • "just docs build builds committed refs only": its sources were read from a /tmp/.../<commit sha>/ checkout, so the plain sphinx-build comparison was used.
  • AGENTS.md's file list now matches .rumdl.toml's include. No other doc describes the lint file set or the removed rumdl check .agents/skills step.
  • Documentation reader: the remaining lowercase pyarrow/polars in the docs are code, URLs or import statements. Link URLs and {ref} targets are unchanged, and heading_anchors = 0, so no heading-slug anchor depends on the # pandas text.
  • Contributor/operator: just docs format (rumdl check --fix) now rewrites the listed names in new prose. The disable comments keep it from rewriting the three labels.

Corrections made to the PR body:

  1. It now states that docs/pandas.md's H1 change renames the page in the navigation.
  2. It now marks as not verified the issue's premise that the workflow's **.md filter triggers on a skills-only PR. Add shared development and review skills for Codex and Claude Code #778, the only earlier skills-only change, also touched AGENTS.md, and this PR touches root files, so its own run cannot show this either.

Comment thread .rumdl.toml
"scripts/**/*.md",
"cloudformation/**/*.md",
"/*.md",
".agents/skills/**/*.md",

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Independent review (relayed result; static review)

  • Reviewer: Codex CLI 0.166.0 (codex exec --sandbox read-only), model gpt-6-astra, session 01a1b461-da50-7af3-8709-c02ec9404044
  • Base: 2a60ecc1f2a7a6bd0d9293525a41ea0d642a0082
  • Head: 6cb01956bb79e540567632677c463c825f151cd7
  • Package: a detached snapshot of the head, the literal diff, and repository conventions. The prompt left out the PR number, PR description, commit messages and self-review findings.
  • Constraints: read-only; no edits, builds, tests, commits, pushes or GitHub access. Read-only rumdl checks were allowed.
  • After the review, the snapshot and the PR worktree were both clean and still at the head.

Result: CLEAN

Reviewer output:

Covered all 20 changed files: rumdl configuration and file discovery; documentation meaning, identifiers, links, MyST targets, headings and tables; related instructions and CI; and license-checker behavior and remaining test coverage.

CLEAN

  • rumdl 0.3.2 passes all 30 selected files with caching disabled and configuration warnings treated as errors. The include change adds exactly four canonical skill files and excludes no previously selected files.
  • MD044 recognizes the configured options and preserves code spelling. Removing the three suppression comments in stdin-only lint checks produces exactly the intended lowercase-target violations. Dropping MD043 is consistent with its previously empty heading requirements.
  • Documentation edits preserve identifiers, option values, link destinations and reference targets. No introduced meaning or structural defects, or stale related instructions, were found.
  • No .jsonc files or dangling references remain. The deleted test row covered the removed syntax; retained formats and the fallback remain represented in existing tests.

No actionable pre-existing issues were identified within scope.

Validation was read-only inspection and permitted rumdl checks. No builds, tests, edits or GitHub access occurred; rendered-output assessment was static.

@laughingman7743
laughingman7743 marked this pull request as ready for review November 7, 2026 05:05
@laughingman7743
laughingman7743 merged commit db5edc9 into master Nov 7, 2026
15 checks passed
@laughingman7743
laughingman7743 deleted the docs/1368-rumdl-gaps branch November 7, 2026 05:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Close configuration gaps left by the rumdl migration

1 participant