Skip to content

docs: clear the markdownlint backlog and gate structure tree-wide#265

Merged
sunib merged 13 commits into
mainfrom
fix/markdown-linting-fixes
Jul 23, 2026
Merged

docs: clear the markdownlint backlog and gate structure tree-wide#265
sunib merged 13 commits into
mainfrom
fix/markdown-linting-fixes

Conversation

@sunib

@sunib sunib commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Clears the markdownlint backlog across the tree and turns structure into a real
gate: lint-markdown now runs on every tracked file, so a new document cannot
regress it. 111 findings → 0 over all 175 linted files.

The gate is split, not widened

DOCS_SCOPE stays the single override knob, but the two linters now default
differently because their backlogs are two orders of magnitude apart:

Linter Scope Why
lint-doc-links (doccheck) every tracked file unchanged
lint-markdown every tracked file residue was mechanical, and it is gone
lint-prose (Vale) .docs-lint-scope 145 of 167 files still fail, almost all on em dashes

Gating Vale tree-wide would fail task lint on ~1,100 errors, and
docs/style-guide.md says that cleanup must not land as one sweeping commit. So
prose keeps the staged list and it grows as files are cleaned. The stale
"102 of 174 / 148 of 174" figures in .docs-lint-scope, CONTRIBUTING.md,
docs/design/docs-linting.md, AGENTS.md, and the Taskfile comments are
re-measured against the current tree.

A defect fixed along the way

An earlier MD040 pass on this branch tagged 36 closing fences as well as
opening ones (```bash … ```yaml). Each one turned the prose that followed
into a code block; in test/e2e/E2E_DEBUGGING.md that hid four MD029 findings
behind a phantom block. All 36, across 23 files, are back to bare ```.

What a reviewer should actually look at

The diff is 107 files, but most of it is mechanical:

  • 70 rewrapped lines — reflowed at the 100-column convention with links and
    inline code spans kept atomic, so nothing split mid-token. Verified by diffing
    every touched file with whitespace collapsed: no word changed.
  • Worth an eye: the closing-fence commit; the F3 heading in
    docs/future/flux-maintainer-review-status-and-config-model.md, shortened
    rather than wrapped (wrapping a heading breaks it); and three unwrappable
    PromQL/if: expressions moved into fenced blocks.

Validation

task lint, task test (77.7%, baseline 77.8%, within tolerance), and
task test-e2e (69 passed, 0 failed, 22 skipped) all pass locally.

🤖 Generated with Claude Code

sunib and others added 13 commits July 22, 2026 10:14
Apply mechanical markdown formatting fixes using markdownlint-cli2 --fix:
- 60 markdown files auto-fixed for structure and whitespace issues
- Renamed docs/facts/resource-types.md → resource-types.yaml (unfenced YAML)
  and updated inbound link in type-followability.md:365
- Updated stale file counts in .docs-lint-scope header comment

This leaves 251 non-auto-fixable findings (mostly line-length and missing fence
language tags) that require manual editing. task lint-docs passes with 0 errors.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
All 27 MD013 errors fixed by rewrapping lines to stay under 120 characters.
…quote

Fix MD040 errors (missing fence language) and MD028 (blank line in blockquote).
Fix MD028 (blank lines in blockquotes) in 11 files.
Fix MD040 (missing fence language) in 2 files.
Remove trailing whitespace from 10 files (fixes MD009 errors).
Fix all 4 MD040 errors (missing fence language) by adding appropriate language tags.
Add yaml language tag to unfenced code blocks in test fixture README files.
Fixes 19 MD040 errors.
Add text language tags to remaining unfenced code blocks.
Fixes 8 of 14 remaining MD040 errors.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The earlier batch MD040 fix tagged closing fences as well as opening ones,
which silently swallowed the following prose into a code block (and hid
four MD029 findings in E2E_DEBUGGING.md behind it). Also converts
emphasis-as-heading to real headings and fixes a heading-increment skip.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Emphasis-as-heading, a pipe inside inline code splitting a table cell,
a split blockquote and its unspaced list, and duplicate sibling
"Migration" headings demoted under their numbered parents.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Reflows prose and list lines at the 100-column convention, keeping inline
code spans and links atomic so nothing splits mid-token. Three queries
that cannot be wrapped move into fenced blocks, one over-long path
becomes a reference link, and the F3 heading is shortened rather than
wrapped. markdownlint is now clean over all 175 tracked files.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
markdownlint's backlog is cleared, so lint-markdown now runs on every
tracked file and a new document cannot regress structure. Vale still has
errors in 145 of 167 files, almost all em dashes, so lint-prose stays on
the .docs-lint-scope list. DOCS_SCOPE overrides either.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 107 files, which is 7 over the limit of 100.

To get a review, narrow the scope:
• coderabbit review --committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: ab06a8f3-3abe-4957-94d9-96315bb95b0b

📥 Commits

Reviewing files that changed from the base of the PR and between e956ad9 and 2b0f552.

📒 Files selected for processing (107)
  • .claude/settings.local.json
  • .devcontainer/README.md
  • .docs-lint-scope
  • .github/ISSUE_TEMPLATE/bug_report.md
  • .github/ISSUE_TEMPLATE/feature_request.md
  • .github/RELEASES.md
  • .github/pull_request_template.md
  • AGENTS.md
  • CONTRIBUTING.md
  • Taskfile-build.yml
  • charts/gitops-reverser/README.md
  • config/README.md
  • config/samples/README.md
  • docs/TODO.md
  • docs/UPGRADING.md
  • docs/attribution-setup-guide.md
  • docs/bi-directional.md
  • docs/bug-report.md
  • docs/ci/ci-root-user.md
  • docs/ci/findings.md
  • docs/ci/image-loading.md
  • docs/ci/windows-devcontainer.md
  • docs/config-flag-conventions.md
  • docs/demo/asciinema.md
  • docs/design/attribution-fact-identity.md
  • docs/design/docs-linting.md
  • docs/design/e2e-coverage-gaps-and-improvements-plan.md
  • docs/design/e2e-git-server-choice.md
  • docs/design/metrics-observability-plan.md
  • docs/design/reconcile-triggering.md
  • docs/design/release-image-reuse-plan.md
  • docs/design/support-boundary/acceptance-precision.md
  • docs/design/support-boundary/admission-consent.md
  • docs/design/support-boundary/argocd-bi-directional.md
  • docs/design/support-boundary/expansion-boundary-and-corpus-organisation.md
  • docs/design/support-boundary/gittarget-granularity-and-cross-environment-edits.md
  • docs/design/support-boundary/orchestrator-reconcile-trigger.md
  • docs/design/support-boundary/render-attribution.md
  • docs/design/support-boundary/render-fidelity.md
  • docs/design/support-boundary/repo-discovery-and-onboarding-scan.md
  • docs/design/watch-and-catalog-architecture.md
  • docs/design/watchrule-source-namespace/pr4-cluster-scope-only.md
  • docs/design/watchrule-source-namespace/pr5-retention-visibility.md
  • docs/design/watchrule-source-namespace/pr5-review-followups.md
  • docs/facts/audit-webhook-api-server-connectivity.md
  • docs/facts/expansion-provenance-markers.md
  • docs/facts/kubernetes-apf-and-inflight-tuning.md
  • docs/facts/kubernetes-api-resource-catalog.md
  • docs/facts/resource-types.yaml
  • docs/facts/subresources.md
  • docs/facts/watch-event-ordering-and-attribution-grace.md
  • docs/future/flux-maintainer-review-status-and-config-model.md
  • docs/future/idea-application-editing.md
  • docs/future/idea-cross-kind-dependency-watches.md
  • docs/images/README.md
  • docs/proud.md
  • docs/rbac.md
  • docs/security-model.md
  • docs/sops-age-guide.md
  • docs/spec/audit-readiness-probe-plan.md
  • docs/spec/commit-window-refactor.md
  • docs/spec/contextual-namespace-and-kustomize-folder-editing.md
  • docs/spec/current-manifest-support-review.md
  • docs/spec/deletecollection-attribution-expander.md
  • docs/spec/e2e-bi-directional-corner.md
  • docs/spec/e2e-test-design.md
  • docs/spec/gitpath-foreign-content-stringency.md
  • docs/spec/gittarget-isolation-on-rule-change.md
  • docs/spec/gittarget-new-file-placement-rules.md
  • docs/spec/gvk-gvr-mapping-layer.md
  • docs/spec/manifest-system.md
  • docs/spec/manifestedit-field-ownership-spike.md
  • docs/spec/reconcile-via-watchlist-mark-and-sweep.md
  • docs/spec/scale-subresource-audit-rehydration.md
  • docs/spec/sops-single-file-no-multidoc.md
  • docs/spec/status-conditions-guide.md
  • docs/spec/type-followability.md
  • docs/spec/type-lifecycle-events-and-wobble-settling.md
  • docs/spec/typeset-owns-discovery-grace.md
  • docs/spec/unsupported-folder-refusal-plan.md
  • docs/tasks-overview.md
  • internal/manifestanalyzer/testdata/scan-repo/supported/no-krm/docs/README.md
  • test/e2e/E2E_DEBUGGING.md
  • test/e2e/cluster/README.md
  • test/e2e/setup/argocd/README.md
  • test/e2e/setup/demo-only/README.md
  • test/e2e/setup/demo-only/cloudflared-public/README.md
  • test/fixtures/gitops-layouts/1-desired-state/argocd-app-of-apps/README.md
  • test/fixtures/gitops-layouts/1-desired-state/argocd-plain/README.md
  • test/fixtures/gitops-layouts/1-desired-state/flux-monorepo/README.md
  • test/fixtures/gitops-layouts/1-desired-state/repo-per-environment/README.md
  • test/fixtures/gitops-layouts/2-rendered/argocd-external-helm/README.md
  • test/fixtures/gitops-layouts/2-rendered/helm-chart/README.md
  • test/fixtures/gitops-layouts/2-rendered/helm-environment-values/README.md
  • test/fixtures/gitops-layouts/2-rendered/kustomize-overlay-minimal/README.md
  • test/fixtures/gitops-layouts/2-rendered/kustomize-overlays/README.md
  • test/fixtures/gitops-layouts/2-rendered/rendered-manifests/README.md
  • test/fixtures/gitops-layouts/3-expanded/argocd-applicationset-directories/README.md
  • test/fixtures/gitops-layouts/3-expanded/argocd-applicationset-files/README.md
  • test/fixtures/gitops-layouts/3-expanded/argocd-multicluster-matrix/README.md
  • test/fixtures/gitops-layouts/3-expanded/flux-helmrelease/README.md
  • test/fixtures/gitops-layouts/3-expanded/flux-resourceset-inline/README.md
  • test/fixtures/gitops-layouts/3-expanded/flux-resourceset-pull-requests/README.md
  • test/fixtures/gitops-layouts/4-machine-written/flux-image-automation/README.md
  • test/fixtures/gitops-layouts/5-opaque/sops-encrypted/README.md
  • test/fixtures/gitops-layouts/6-hostile/mixed-and-hostile/README.md
  • test/fixtures/gitops-layouts/README.md

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Review on demand using usage pricing
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/markdown-linting-fixes

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.

@sunib
sunib merged commit 81b7648 into main Jul 23, 2026
18 checks passed
@sunib
sunib deleted the fix/markdown-linting-fixes branch July 23, 2026 16:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant