Skip to content

Add :description: to single-source stubs and lint for coverage - #664

Open
micheleRP wants to merge 2 commits into
mainfrom
add-description-lint
Open

Add :description: to single-source stubs and lint for coverage#664
micheleRP wants to merge 2 commits into
mainfrom
add-description-lint

Conversation

@micheleRP

@micheleRP micheleRP commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

What this does

Brings :description: coverage from 476/904 pages to 670/904 — every page that can have one today — and adds a CI lint with an allowlist ratchet so coverage only improves.

Why stubs were missing descriptions

Single-source stub pages inherit nothing from their include::...[tag=single-source] directives: Antora resolves page metadata with a header-only parse that stops at the stub's first blank line, so the include is never evaluated for attributes. Every affected stub ships the generic site-wide meta description (check any rpk cluster page's <meta name="description"> on the live site). The single-sourcing standard already calls for stubs to carry their own Title + :description: + include — this PR brings 191 stubs into that shape.

Changes

  • 191 stubs backfilled verbatim from upstream: 145 rpk stubs (docs repo) + 46 connect stubs (rp-connect-docs), covering bare, page$, and partial$ include families.
  • 3 hand-written descriptions: reference/glossary, develop/connect/cookbooks/index, develop/connect/guides/index.
  • .github/workflows/lint-metadata.yml: fails any PR that leaves a page without :description: unless the page is listed in .github/description-allowlist.txt; warns (non-blocking) when an allowlisted page gains a description (remove the entry) and when a changed page's description exceeds the 155-char style-guide recommendation.
  • .github/description-allowlist.txt: the 234 connect stubs whose rp-connect-docs upstream has no description yet. The fix path is upstream (docs-data/overrides.json in rp-connect-docs); as descriptions land there, re-copy into these stub headers and shrink the list.

Notes

  • The repo's ruleset has no required status checks today, so this lint is advisory until an org admin adds it as required.
  • Companion work already in flight: adp-docs#189 (same fix there) and docs-extensions-and-macros#245 (the rpk stub generator now emits :description: on newly created stubs).

🤖 Generated with Claude Code

Preview pages

194 pages updated (one :description: header line each; no visible body changes — check <meta name="description"> in page source). Representative samples:

micheleRP and others added 2 commits August 4, 2026 16:02
…ption

Stub pages inherit nothing from their single-source includes: Antora
resolves page metadata with a header-only parse, so all of these pages
shipped the generic site-wide meta description. This copies each stub's
description verbatim from its upstream counterpart (145 rpk stubs from
the docs repo, 46 connect stubs from rp-connect-docs) into the stub
header, where Antora picks it up. The 234 connect stubs whose upstream
has no description yet are unchanged; they are tracked in the CI
allowlist added in the next commit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Adds hand-written descriptions for the three remaining non-stub pages
(glossary and two index pages). The lint fails any page missing a
:description: unless it is listed in .github/description-allowlist.txt,
which tracks the 234 connect stubs whose rp-connect-docs upstream has no
description yet; a non-blocking hygiene step flags allowlist entries
that gain one. Over-155-char descriptions warn on changed files only.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@micheleRP
micheleRP requested a review from a team as a code owner August 4, 2026 22:30
@netlify

netlify Bot commented Aug 4, 2026

Copy link
Copy Markdown

Deploy Preview for rp-cloud ready!

Name Link
🔨 Latest commit 94ad80d
🔍 Latest deploy log https://app.netlify.com/projects/rp-cloud/deploys/6a726805a7b3bd00082e5bad
😎 Deploy Preview https://deploy-preview-664--rp-cloud.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 196 files, which is 46 over the limit of 150.

To get a review, reduce the PR to 150 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to Pro+ to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1c21b1ec-03b2-4404-96fc-301dd8d2944e

📥 Commits

Reviewing files that changed from the base of the PR and between a57972c and 94ad80d.

📒 Files selected for processing (196)
  • .github/description-allowlist.txt
  • .github/workflows/lint-metadata.yml
  • modules/develop/pages/connect/components/about.adoc
  • modules/develop/pages/connect/components/caches/redpanda.adoc
  • modules/develop/pages/connect/components/inputs/aws_cloudwatch_logs.adoc
  • modules/develop/pages/connect/components/inputs/aws_dynamodb_cdc.adoc
  • modules/develop/pages/connect/components/inputs/gateway.adoc
  • modules/develop/pages/connect/components/inputs/gcp_spanner_cdc.adoc
  • modules/develop/pages/connect/components/inputs/jira.adoc
  • modules/develop/pages/connect/components/inputs/microsoft_sql_server_cdc.adoc
  • modules/develop/pages/connect/components/inputs/oracledb_cdc.adoc
  • modules/develop/pages/connect/components/inputs/otlp_grpc.adoc
  • modules/develop/pages/connect/components/inputs/otlp_http.adoc
  • modules/develop/pages/connect/components/inputs/salesforce.adoc
  • modules/develop/pages/connect/components/inputs/salesforce_cdc.adoc
  • modules/develop/pages/connect/components/inputs/salesforce_graphql.adoc
  • modules/develop/pages/connect/components/metrics/open_telemetry_collector.adoc
  • modules/develop/pages/connect/components/outputs/arc.adoc
  • modules/develop/pages/connect/components/outputs/cyborgdb.adoc
  • modules/develop/pages/connect/components/outputs/drop.adoc
  • modules/develop/pages/connect/components/outputs/gcp_bigquery_write_api.adoc
  • modules/develop/pages/connect/components/outputs/iceberg.adoc
  • modules/develop/pages/connect/components/outputs/otlp_grpc.adoc
  • modules/develop/pages/connect/components/outputs/otlp_http.adoc
  • modules/develop/pages/connect/components/outputs/salesforce_sink.adoc
  • modules/develop/pages/connect/components/outputs/slack_reaction.adoc
  • modules/develop/pages/connect/components/processors/a2a_message.adoc
  • modules/develop/pages/connect/components/processors/jira.adoc
  • modules/develop/pages/connect/components/processors/string_split.adoc
  • modules/develop/pages/connect/components/processors/try_catch.adoc
  • modules/develop/pages/connect/components/scanners/json_array.adoc
  • modules/develop/pages/connect/components/tracers/open_telemetry_collector.adoc
  • modules/develop/pages/connect/components/tracers/redpanda.adoc
  • modules/develop/pages/connect/configuration/about.adoc
  • modules/develop/pages/connect/configuration/windowed_processing.adoc
  • modules/develop/pages/connect/cookbooks/dynamodb_cdc.adoc
  • modules/develop/pages/connect/cookbooks/enrichments.adoc
  • modules/develop/pages/connect/cookbooks/filtering.adoc
  • modules/develop/pages/connect/cookbooks/index.adoc
  • modules/develop/pages/connect/cookbooks/joining_streams.adoc
  • modules/develop/pages/connect/guides/bloblang/about.adoc
  • modules/develop/pages/connect/guides/bloblang/arithmetic.adoc
  • modules/develop/pages/connect/guides/bloblang/functions.adoc
  • modules/develop/pages/connect/guides/bloblang/methods.adoc
  • modules/develop/pages/connect/guides/bloblang/walkthrough.adoc
  • modules/develop/pages/connect/guides/cloud/aws-iam-aurora.adoc
  • modules/develop/pages/connect/guides/cloud/aws.adoc
  • modules/develop/pages/connect/guides/cloud/gcp.adoc
  • modules/develop/pages/connect/guides/index.adoc
  • modules/develop/pages/connect/guides/sync_responses.adoc
  • modules/reference/pages/glossary.adoc
  • modules/reference/pages/rpk/rpk-cloud/rpk-cloud-auth-delete.adoc
  • modules/reference/pages/rpk/rpk-cloud/rpk-cloud-auth-list.adoc
  • modules/reference/pages/rpk/rpk-cloud/rpk-cloud-auth-token.adoc
  • modules/reference/pages/rpk/rpk-cloud/rpk-cloud-auth-use.adoc
  • modules/reference/pages/rpk/rpk-cloud/rpk-cloud-auth.adoc
  • modules/reference/pages/rpk/rpk-cloud/rpk-cloud-byoc-install.adoc
  • modules/reference/pages/rpk/rpk-cloud/rpk-cloud-byoc-uninstall.adoc
  • modules/reference/pages/rpk/rpk-cloud/rpk-cloud-byoc.adoc
  • modules/reference/pages/rpk/rpk-cloud/rpk-cloud-cluster-select.adoc
  • modules/reference/pages/rpk/rpk-cloud/rpk-cloud-cluster.adoc
  • modules/reference/pages/rpk/rpk-cloud/rpk-cloud-login.adoc
  • modules/reference/pages/rpk/rpk-cloud/rpk-cloud-logout.adoc
  • modules/reference/pages/rpk/rpk-cloud/rpk-cloud-mcp-install.adoc
  • modules/reference/pages/rpk/rpk-cloud/rpk-cloud-mcp-proxy.adoc
  • modules/reference/pages/rpk/rpk-cloud/rpk-cloud-mcp-stdio.adoc
  • modules/reference/pages/rpk/rpk-cloud/rpk-cloud-mcp.adoc
  • modules/reference/pages/rpk/rpk-cloud/rpk-cloud.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-config-get.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-config-list.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-config-set.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-config-status.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-config.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-connections-list.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-connections.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-info.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-logdirs-describe.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-logdirs.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-quotas-alter.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-quotas-describe.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-quotas-import.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-quotas.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-storage-cancel-mount.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-storage-list-mount.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-storage-list-mountable.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-storage-mount.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-storage-status-mount.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-storage-unmount.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-storage.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-txn-describe-producers.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-txn-describe.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-txn-list.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster-txn.adoc
  • modules/reference/pages/rpk/rpk-cluster/rpk-cluster.adoc
  • modules/reference/pages/rpk/rpk-commands.adoc
  • modules/reference/pages/rpk/rpk-generate/rpk-generate-app.adoc
  • modules/reference/pages/rpk/rpk-generate/rpk-generate-grafana-dashboard.adoc
  • modules/reference/pages/rpk/rpk-generate/rpk-generate-shell-completion.adoc
  • modules/reference/pages/rpk/rpk-generate/rpk-generate.adoc
  • modules/reference/pages/rpk/rpk-group/rpk-group-delete.adoc
  • modules/reference/pages/rpk/rpk-group/rpk-group-describe.adoc
  • modules/reference/pages/rpk/rpk-group/rpk-group-list.adoc
  • modules/reference/pages/rpk/rpk-group/rpk-group-offset-delete.adoc
  • modules/reference/pages/rpk/rpk-group/rpk-group-seek.adoc
  • modules/reference/pages/rpk/rpk-group/rpk-group.adoc
  • modules/reference/pages/rpk/rpk-help.adoc
  • modules/reference/pages/rpk/rpk-plugin/rpk-plugin-install.adoc
  • modules/reference/pages/rpk/rpk-plugin/rpk-plugin-list.adoc
  • modules/reference/pages/rpk/rpk-plugin/rpk-plugin-uninstall.adoc
  • modules/reference/pages/rpk/rpk-plugin/rpk-plugin.adoc
  • modules/reference/pages/rpk/rpk-profile/rpk-profile-clear.adoc
  • modules/reference/pages/rpk/rpk-profile/rpk-profile-create.adoc
  • modules/reference/pages/rpk/rpk-profile/rpk-profile-current.adoc
  • modules/reference/pages/rpk/rpk-profile/rpk-profile-delete.adoc
  • modules/reference/pages/rpk/rpk-profile/rpk-profile-edit-globals.adoc
  • modules/reference/pages/rpk/rpk-profile/rpk-profile-edit.adoc
  • modules/reference/pages/rpk/rpk-profile/rpk-profile-list.adoc
  • modules/reference/pages/rpk/rpk-profile/rpk-profile-print-globals.adoc
  • modules/reference/pages/rpk/rpk-profile/rpk-profile-print.adoc
  • modules/reference/pages/rpk/rpk-profile/rpk-profile-prompt.adoc
  • modules/reference/pages/rpk/rpk-profile/rpk-profile-rename-to.adoc
  • modules/reference/pages/rpk/rpk-profile/rpk-profile-set-globals.adoc
  • modules/reference/pages/rpk/rpk-profile/rpk-profile-set.adoc
  • modules/reference/pages/rpk/rpk-profile/rpk-profile-use.adoc
  • modules/reference/pages/rpk/rpk-profile/rpk-profile.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-compatibility-level-get.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-compatibility-level-set.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-compatibility-level.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-context-delete.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-context-list.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-context.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-mode-get.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-mode-reset.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-mode-set.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-mode.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-schema-check-compatibility.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-schema-create.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-schema-delete.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-schema-get.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-schema-list.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-schema-references.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-schema.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-subject-delete.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-subject-list.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry-subject.adoc
  • modules/reference/pages/rpk/rpk-registry/rpk-registry.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-acl-create.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-acl-delete.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-acl-list.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-acl.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-role-assign.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-role-create.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-role-delete.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-role-describe.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-role-list.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-role-unassign.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-role.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-secret-create.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-secret-delete.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-secret-list.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-secret-update.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-secret.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-user-create.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-user-delete.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-user-list.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-user-update.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security-user.adoc
  • modules/reference/pages/rpk/rpk-security/rpk-security.adoc
  • modules/reference/pages/rpk/rpk-shadow/rpk-shadow-config-generate.adoc
  • modules/reference/pages/rpk/rpk-shadow/rpk-shadow-create.adoc
  • modules/reference/pages/rpk/rpk-shadow/rpk-shadow-delete.adoc
  • modules/reference/pages/rpk/rpk-shadow/rpk-shadow-describe.adoc
  • modules/reference/pages/rpk/rpk-shadow/rpk-shadow-failover.adoc
  • modules/reference/pages/rpk/rpk-shadow/rpk-shadow-list.adoc
  • modules/reference/pages/rpk/rpk-shadow/rpk-shadow-status.adoc
  • modules/reference/pages/rpk/rpk-shadow/rpk-shadow-update.adoc
  • modules/reference/pages/rpk/rpk-shadow/rpk-shadow.adoc
  • modules/reference/pages/rpk/rpk-topic/rpk-topic-add-partitions.adoc
  • modules/reference/pages/rpk/rpk-topic/rpk-topic-alter-config.adoc
  • modules/reference/pages/rpk/rpk-topic/rpk-topic-consume.adoc
  • modules/reference/pages/rpk/rpk-topic/rpk-topic-create.adoc
  • modules/reference/pages/rpk/rpk-topic/rpk-topic-delete.adoc
  • modules/reference/pages/rpk/rpk-topic/rpk-topic-describe.adoc
  • modules/reference/pages/rpk/rpk-topic/rpk-topic-list.adoc
  • modules/reference/pages/rpk/rpk-topic/rpk-topic-produce.adoc
  • modules/reference/pages/rpk/rpk-topic/rpk-topic-trim-prefix.adoc
  • modules/reference/pages/rpk/rpk-topic/rpk-topic.adoc
  • modules/reference/pages/rpk/rpk-transform/rpk-transform-build.adoc
  • modules/reference/pages/rpk/rpk-transform/rpk-transform-delete.adoc
  • modules/reference/pages/rpk/rpk-transform/rpk-transform-deploy.adoc
  • modules/reference/pages/rpk/rpk-transform/rpk-transform-init.adoc
  • modules/reference/pages/rpk/rpk-transform/rpk-transform-list.adoc
  • modules/reference/pages/rpk/rpk-transform/rpk-transform-logs.adoc
  • modules/reference/pages/rpk/rpk-transform/rpk-transform.adoc
  • modules/reference/pages/rpk/rpk-version.adoc
  • modules/reference/pages/rpk/rpk-x-options.adoc

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


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

@JakeSCahill

Copy link
Copy Markdown
Contributor

One note for the 145 rpk backfills: these copy descriptions that regeneration rewrites (doc-tools 5.3.3 alone rewrote ~36 rpk descriptions), and unlike adp-docs there's no sync workflow here, so the copied headers will drift over time — the lint checks presence, not freshness. docs-extensions-and-macros#246 prototypes the dynamic alternative (stubs inherit the description from the included partial at build time, verified against an Antora build with the production UI bundle) and composes with this PR: backfills stay correct now, and stubs that later adopt the two-include shape stop needing them. Doesn't affect this PR's merge-readiness or the Connect allowlist.

@JakeSCahill

Copy link
Copy Markdown
Contributor

Update on the 234-entry allowlist: it turns out the Connect situation is much smaller than scoped. The connector source data carries a summary for ~97% of components — the pages just predate the template emitting :description: and, as one-time first drafts, were never rewritten. rp-connect-docs#478 backfills 274 page headers mechanically from the source summaries (no prose authored), taking that repo from 101/411 to 375/411 coverage, and the tool behind it ships in docs-extensions-and-macros#246 so future generations self-heal. Once #478 merges, most of this allowlist becomes clearable — the true editorial backlog is seven components with no source summary at all (the slack family, inproc in/out, cypher).

@JakeSCahill

Copy link
Copy Markdown
Contributor

Correction to my earlier comment: I claimed the meta include would win over a coexisting literal description. @micheleRP tested it and the precedence is the opposite — the LATER header entry wins, so a literal below the include defeats it. Re-verified in the Antora test build. Consequence for the future conversion (DOC-2414, updated): it inserts the include AND strips the backfilled literal, scoped to generated reference stubs only — the ~262 prose stubs here keep their own descriptions and get no include. None of this changes anything about this PR: the backfills land as-is and are what these pages ship until the conversion.

@JakeSCahill JakeSCahill left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Verified: sampled Connect backfills match their rp-connect-docs upstreams byte-for-byte (aws_cloudwatch_logs, jira), rpk samples match the docs-repo partials, and the allowlist mechanics are genuinely self-shrinking — the stale-entry and has-a-description-now warnings mean the list can only trend down, which is the right shape for tracked debt.

Same two lint findings as adp-docs#189, both non-blocking here:

  1. The presence check matches :description: anywhere in the file, but only a header attribute (above the first blank line) reaches page metadata — the k-connect-helm-spec case in rp-connect-docs shows this class in the wild. Header-scoped awk closes it.
  2. Once the two-include stub shape lands (DOC-2414), converted reference stubs will carry include::...[tag=meta] and no literal — the lint should accept either form in the header, or it will block the conversion PR.

One happy update for the allowlist: rp-connect-docs#478 gives every upstream page a description (274 mechanical + 7 authored via overrides + 29 hand-maintained pages), so after it merges, all 234 entries here become clearable per the shrink protocol — the warnings this lint emits will tell you exactly when.

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.

2 participants