Summary
PR #43 review (CodeRabbit) caught a couple of markdownlint violations (MD031 "blanks-around-fences", MD040 "fenced-code-language") in .claude/skills/release/SKILL.md that had to be fixed by hand after the fact:
#43 (comment)
Right now the only thing catching markdown lint issues is CodeRabbit's advisory review comments on a PR -- nothing in CI actually enforces it, so these can land un-noticed if a PR isn't reviewed carefully enough, or ships without a CodeRabbit pass.
Proposal
Add a markdown linter (e.g. markdownlint-cli2, matching what CodeRabbit already uses under the hood) as a CI check in this repo. Worth considering whether it should also cover pgxntool's markdown (.claude/*.md, .github/*.md) -- most of the actual documentation in that repo is Asciidoc (README.asc, HISTORY.asc), so the surface area there is smaller, but the .claude/ skill/agent docs are markdown in both repos.
Scope
- Decide which markdown files are in scope (e.g.
.claude/**/*.md, CLAUDE.md, *.md at repo root) vs. excluded (vendored/generated content, if any).
- Pick a rule set / config (default
markdownlint-cli2 rules are fairly aggressive; may want a .markdownlint.yaml tuned to this project's existing style).
- Wire it into
ci.yml as a new job, gated the same way other lint-only jobs are (shouldn't block on the full Postgres test matrix).
Summary
PR #43 review (CodeRabbit) caught a couple of
markdownlintviolations (MD031 "blanks-around-fences", MD040 "fenced-code-language") in.claude/skills/release/SKILL.mdthat had to be fixed by hand after the fact:#43 (comment)
Right now the only thing catching markdown lint issues is CodeRabbit's advisory review comments on a PR -- nothing in CI actually enforces it, so these can land un-noticed if a PR isn't reviewed carefully enough, or ships without a CodeRabbit pass.
Proposal
Add a markdown linter (e.g.
markdownlint-cli2, matching what CodeRabbit already uses under the hood) as a CI check in this repo. Worth considering whether it should also coverpgxntool's markdown (.claude/*.md,.github/*.md) -- most of the actual documentation in that repo is Asciidoc (README.asc,HISTORY.asc), so the surface area there is smaller, but the.claude/skill/agent docs are markdown in both repos.Scope
.claude/**/*.md,CLAUDE.md,*.mdat repo root) vs. excluded (vendored/generated content, if any).markdownlint-cli2rules are fairly aggressive; may want a.markdownlint.yamltuned to this project's existing style).ci.ymlas a new job, gated the same way other lint-only jobs are (shouldn't block on the full Postgres test matrix).