Skip to content

build(lint): enforce WH001 everywhere, drop vendored skill - #522

Merged
EricAndrechek merged 9 commits into
mainfrom
lint-wh001-everywhere
Aug 26, 2026
Merged

build(lint): enforce WH001 everywhere, drop vendored skill#522
EricAndrechek merged 9 commits into
mainfrom
lint-wh001-everywhere

Conversation

@EricAndrechek

@EricAndrechek EricAndrechek commented Aug 26, 2026

Copy link
Copy Markdown
Member

Two path-scoped configs — .github/.markdownlint.json and .claude/.markdownlint.json — held nothing but "WH001": false, silently switching the no-hard-wrapped-prose rule off for CI docs and agent prompts ever since #489 introduced it. CONTRIBUTING.md:97 tells contributors make lint enforces WH001 everywhere, while AGENTS.md:342 and the .markdownlint-cli2.jsonc header wrote up the carve-out — three descriptions of one rule, disagreeing.

That cost a round trip on #520: a reviewer correctly flagged a hard-wrapped bullet in .github/workflows/README.md, an agent pointed at "WH001": false for that path and pushed back, and the reviewer recorded a persistent learning never to flag WH001 there — the wrong invariant, learned off the wrong side of the contradiction.

What changed

  • Both configs deleted. Each held only extends + the override, so the root .markdownlint.json ("WH001": true) governs again. The ignores array is untouched — there is now no path-scoped carve-out of any kind.
  • 51 hard-wrapped paragraphs reflowed by make fix: 41 in .github/workflows/README.md (378 → 171 lines), 10 in .claude/skills/pm-triage/references/routine.md. Mechanical joins; no wording changed.
  • The vendored PostHog skill is deleted.claude/skills/integration-astro-view-transitions/, 9 files / ~1,456 lines including an 809-line EXAMPLE.md copied wholesale from PostHog/context-mill. Its integration job finished in feat(docs): prod-faithful dev loop, mermaid cache, favicon, doc fixes #277, nothing in the repo calls it, and the live docs-site setup is documented in docs/src/components/PostHog.astro and the CHANGELOG. Unowned third-party prose drifts silently on every upstream bump and nobody here reviews it — and it was the single file that would have needed a special-case exclusion, so removing it is what lets the rule apply with no exception at all rather than one documented one.
  • Docs reconciled so all four descriptions agree. AGENTS.md:342 and the config header rewritten; AGENTS.md:326 and CONTRIBUTING.md:97 already said "everywhere" and are now true. AGENTS.md:342 also tells future readers not to reintroduce a subtree override, pointing at an in-file markdownlint-disable as the visible escape hatch — verified to actually work, block form only.
  • Two dead denylist entries swept. docs/posthog-setup-report.md (the wizard's other artifact, deleted in docs: update README.md #502) and PERF-CLAIMS-REVIEW.md — which was never tracked at all, so it guarded a file that has never existed. The list's other general cases are patterns (*.draft.md, *.old.md) that already cover a one-off review document. Removed from all four lockstep locations; scripts/docs-prose.sh all still resolves the same 27-file prose set.

What review turned up

None of this was in #521's scope. All of it is the same defect class — documentation asserting a state of the world that had moved on — which is what made a whole-file read worth doing.

  • WH001 has a blind spot. no-hard-wrapped-prose.mjs:139 classifies any line indented four or more spaces as an indented code block, so a nested list item is never joined. Three hard-wrapped bullets sat in .github/workflows/README.md — in the very file this PR reflowed — invisible to the autofix. Unwrapped by hand; they were the last hard-wrapped prose paragraphs in the repo.
  • That made a documented rule false. AGENTS.md:326 and development.md:432 both promised "a list item is joined as a unit". Not for nested items — a contributor would expect make fix to unwrap one and it silently doesn't. Both now state the four-space caveat.
  • scripts/docs-prose.sh's header undercounted its own lockstep set, naming two sibling copies of the denylist when there are three. The missed one is .claude/agents/docs-reviewer.md — the gating subagent's own system prompt — which git log -S shows had been out of sync for the entire life of the posthog-setup-report.md exclusion, and agreed only by accident of this branch removing it.
  • The job graph contradicted itself. docs-deploy was drawn without its needs edges from unit, integration, and e2e, and ci/docs-preview were missing changes — while the legend three lines below states "Solid arrows are needs edges" and changes --> deploy was drawn. Five edges added; the diagram now matches ci.yml edge-for-edge in both directions.
  • claude-code.md deferred to work that had already shipped. It told readers that "when feat(observability): o11y dev-stack cleanup + wire into make #121 lands a SigNoz dev stack with make dev-obs" Grafana MCP would become useful. feat(observability): o11y dev-stack cleanup + wire into make #121 closed as completed in May, dev-obs exists nowhere in the tree (the real targets are obs-aspire / obs-grafana / obs-front), and deployment.md states outright that no heavy multi-node cluster like SigNoz is maintained for local development. Now points at make obs-grafana.

Filed rather than fixed here: #523, where deployment.md claims all three local observability stacks publish OTLP 4318, but only obs-front does.

Test plan

  • make ci green end to end on the final tree, marker matches HEAD.
  • markdownlint-cli2 reports 0 issues over all 42 tracked .md, and pnpm lint:md 0 over all 48 tracked .md + .mdx — "every tracked Markdown file" is literally, not approximately, true. make fix is a fixpoint.
  • Reflow safety proven, not eyeballed. Reviewers reconstructed the pre-image files, re-ran the repo's own markdownlint-cli2 --fix, and diffed: the branch files are byte-identical to the autofix output, ruling out a hand-edit in the reflow. Independently, word-level diffs against main show routine.md is word-for-word identical and .github/workflows/README.md's only content changes are the five graph edges and the past-tensed badges sentence.
  • "Last hard-wrapped prose in the repo" was checked against WH001's own blind spot rather than its 0-issue result: a scan of all 48 tracked files for nested list items with 4-space continuations found four hits, all YAML frontmatter. No prose.
  • Every drawn graph edge verified against ci.yml's needs, both directions — nine into ci, seven into docs-deploy, two into docs-preview, none spurious.
  • shellcheck + bash -n clean on docs-prose.sh; the new /deployment#local-observability-stack anchor is validated by starlight-links-validator during make ci's docs build.

Closes #521

EricAndrechek and others added 4 commits August 26, 2026 09:24
#502 dropped the Go Coverage badge from the README but left everything
that fed it running: the non-gating `badge` job kept firing on every main
push, holding ci.yml's only `contents: write`, publishing coverage-go.json
to the orphan `badges` branch for a badge no page rendered.

Retire rather than restore (#509). Removes the `badge` job, its two
producer steps in `coverage`, scripts/ci/publish-badge.sh, and the
`cov badge` subcommand. The coverage GATE is untouched — make cov,
threshold.total, per-suite minima, and the Code Quality PR comments all
still run; only the published badge surface is gone.

ci.yml now declares no `contents: write` in any job.

Also fixes a latent break this surfaced: `timing`'s needs still listed
`badge`, which is a workflow-level error once the job is gone.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MB4oPy9yfUHSe8FjnDmeZH
Four documentation-accuracy fixes from the pre-push code and docs
reviewers, both of which independently flagged the first two:

- The `badges` branch was described in the past tense as already gone.
  It isn't, and it can't be until this merges — while the `badge` job
  still exists on main, the next code push would recreate it. Both the
  workflows README and the CHANGELOG now state that sequencing.
- "for weeks" was wrong: #502 merged 2026-08-20, six days ago.
- ci.yml's header claimed docs-preview was the only job holding a write
  scope, undercounting coverage's `code-quality: write` — which it holds
  while executing the PR tree. Pre-existing, but exactly the class of
  stale permission claim this PR set out to correct.
- The "restoring a badge means restoring contents: write" note asserted
  an implication and then offered the alternative that disproves it. A
  shields endpoint hosted outside the repo needs no write scope at all.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MB4oPy9yfUHSe8FjnDmeZH
CodeRabbit flagged the new bullet in .github/workflows/README.md as
hard-wrapped, and it was right. I initially pushed back because
.github/.markdownlint.json sets "WH001": false — but that exclusion
contradicts CONTRIBUTING.md, which promises the rule is enforced
"everywhere", and AGENTS.md, which states it with no carve-out. The
config is the thing that's wrong, not the finding.

This commit fixes only the prose this PR introduced, so the change
stays scoped to the badge retirement. Removing both WH001 exclusions
(.github/ and .claude/) and reflowing the 53 hard-wrapped paragraphs
they were hiding (292 WH001 violation lines, since the rule reports
one per line) is tracked in #521.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MB4oPy9yfUHSe8FjnDmeZH
Two path-scoped configs — .github/.markdownlint.json and
.claude/.markdownlint.json — held nothing but "WH001": false, silently
switching the no-hard-wrapped-prose rule off for CI docs and agent
prompts ever since #489 introduced it. CONTRIBUTING.md tells
contributors it is enforced everywhere, while AGENTS.md and the
.markdownlint-cli2.jsonc header wrote up the carve-out — three
descriptions of one rule, disagreeing.

That cost a round trip on #520: a reviewer correctly flagged a
hard-wrapped bullet, an agent pointed at "WH001": false for that path
and pushed back, and the reviewer recorded a learning never to flag
WH001 there — the wrong invariant, learned off the wrong side of the
contradiction.

Both configs deleted; the 51 paragraphs they hid are joined (41 in
.github/workflows/README.md, 10 in pm-triage/references/routine.md),
mechanical joins only. The vendored PostHog skill goes too — 9 files,
~1,456 lines, job finished in #277, nothing references it, and it was
the only file that would have needed a special-case exclusion, so
removing it is what lets WH001 apply with no exception at all.

Review then found four more things the exclusion had hidden: WH001
skips lines indented 4+ spaces as code, so three nested bullets were
invisible to the autofix (unwrapped by hand) and the "a list item is
joined as a unit" claim was wrong for nested items; docs-prose.sh named
two lockstep copies of its denylist when there are three, missing the
gating subagent's own prompt; the config header overstated WH002's
scope; and the job graph omitted docs-deploy's suite needs edges.

Closes #521

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MB4oPy9yfUHSe8FjnDmeZH
@coderabbitai

coderabbitai Bot commented Aug 26, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 7f591952-24d7-4b35-95cd-4ea43c424cdc

📥 Commits

Reviewing files that changed from the base of the PR and between d2e9890 and 8c02808.

📒 Files selected for processing (8)
  • .claude/agents/docs-reviewer.md
  • .github/prompts/docs-review.md
  • .github/workflows/README.md
  • .markdownlint-cli2.jsonc
  • AGENTS.md
  • CHANGELOG.md
  • docs/src/content/docs/claude-code.md
  • scripts/docs-prose.sh

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 09ae5ef6-a3f7-45c4-8f3c-fbfd1ef8c639

📥 Commits

Reviewing files that changed from the base of the PR and between e2e7103 and d2e9890.

📒 Files selected for processing (20)
  • .claude/.markdownlint.json
  • .claude/skills/integration-astro-view-transitions/.posthog-wizard
  • .claude/skills/integration-astro-view-transitions/SKILL.md
  • .claude/skills/integration-astro-view-transitions/references/EXAMPLE.md
  • .claude/skills/integration-astro-view-transitions/references/astro.md
  • .claude/skills/integration-astro-view-transitions/references/basic-integration-1.0-begin.md
  • .claude/skills/integration-astro-view-transitions/references/basic-integration-1.1-edit.md
  • .claude/skills/integration-astro-view-transitions/references/basic-integration-1.2-revise.md
  • .claude/skills/integration-astro-view-transitions/references/basic-integration-1.3-conclude.md
  • .claude/skills/integration-astro-view-transitions/references/identify-users.md
  • .claude/skills/pm-triage/references/routine.md
  • .github/.markdownlint.json
  • .github/prompts/docs-review.md
  • .github/workflows/README.md
  • .markdownlint-cli2.jsonc
  • AGENTS.md
  • CHANGELOG.md
  • docs/src/content/docs/claude-code.md
  • docs/src/content/docs/development.md
  • scripts/docs-prose.sh
💤 Files with no reviewable changes (11)
  • .claude/skills/integration-astro-view-transitions/references/basic-integration-1.3-conclude.md
  • .claude/skills/integration-astro-view-transitions/references/basic-integration-1.1-edit.md
  • .claude/skills/integration-astro-view-transitions/references/basic-integration-1.2-revise.md
  • .claude/.markdownlint.json
  • .claude/skills/integration-astro-view-transitions/references/identify-users.md
  • .github/.markdownlint.json
  • .claude/skills/integration-astro-view-transitions/SKILL.md
  • .claude/skills/integration-astro-view-transitions/references/EXAMPLE.md
  • .claude/skills/integration-astro-view-transitions/references/astro.md
  • docs/src/content/docs/claude-code.md
  • .claude/skills/integration-astro-view-transitions/references/basic-integration-1.0-begin.md

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

📜 Recent review details
⏰ Context from checks skipped due to timeout. (6)
  • GitHub Check: E2E tests
  • GitHub Check: Coverage
  • GitHub Check: Integration tests
  • GitHub Check: Docs build
  • GitHub Check: Lint
  • GitHub Check: Analyze (go)
🧰 Additional context used
📓 Path-based instructions (1)
- **Never hard-wrap prose. One paragraph is one line.** No wrapping at 72/80 columns, no "semantic linefeeds" splitting a paragraph at sentence boundaries.

📄 CodeRabbit inference engine (AGENTS.md)

Files:

  • docs/src/content/docs/development.md
  • CHANGELOG.md
  • AGENTS.md
🧠 Learnings (1)
📚 Learning: 2026-06-10T15:01:09.027Z
Learnt from: EricAndrechek
Repo: Wave-RF/WaveHouse PR: 312
File: docs/src/content/docs/development.md:0-0
Timestamp: 2026-06-10T15:01:09.027Z
Learning: In this repo’s Markdown review (all .md files), do not flag capitalization/style issues for literal paths starting with ".github/" (or any substring that is a path beginning with ".github/"). Treat ".github" as the correct lowercase dotfile directory name, even when it appears inside prose or code spans; automated checks such as LanguageTool’s "(GITHUB)" rule commonly produce false positives for this literal filesystem path.

Applied to files:

  • .github/prompts/docs-review.md
  • CHANGELOG.md
  • AGENTS.md
🪛 LanguageTool
.github/prompts/docs-review.md

[uncategorized] ~3-~3: The official name of this software platform is spelled with a capital “H”.
Context: ... .md/.mdx file EXCEPT .claude/**, .github/**, CHANGELOG.md, AGENTS.md, `CLAU...

(GITHUB)

CHANGELOG.md

[typographical] ~20-~20: Consider using an em dash in dialogues and enumerations.
Context: - **WH001 (no hard-wrapped prose) now app...

(DASH_RULE)


[uncategorized] ~20-~20: The official name of this software platform is spelled with a capital “H”.
Context: ...ked Markdown file, with no carve-out** (.github/.markdownlint.json (deleted), `.claude...

(GITHUB)


[uncategorized] ~20-~20: The official name of this software platform is spelled with a capital “H”.
Context: ... (deleted), .markdownlint-cli2.jsonc, .github/workflows/README.md, `.claude/skills/p...

(GITHUB)


[uncategorized] ~20-~20: The official name of this software platform is spelled with a capital “H”.
Context: ..., AGENTS.md, scripts/docs-prose.sh, .github/prompts/docs-review.md, `docs/src/cont...

(GITHUB)


[uncategorized] ~20-~20: The official name of this software platform is spelled with a capital “H”.
Context: ...ed configs had switched WH001 off under .github/ and .claude/ ever since [#489](http...

(GITHUB)


[uncategorized] ~20-~20: The official name of this software platform is spelled with a capital “H”.
Context: ...aphs they were hiding are joined: 41 in .github/workflows/README.md and 10 in `.claude...

(GITHUB)


[uncategorized] ~20-~20: The official name of this software platform is spelled with a capital “H”.
Context: ...ies of that denylist in AGENTS.md and .github/prompts/docs-review.md, which the scri...

(GITHUB)


[uncategorized] ~20-~20: The official name of this software platform is spelled with a capital “H”.
Context: ...hich left three hard-wrapped bullets in .github/workflows/README.md §"Adding a job" th...

(GITHUB)


[style] ~20-~20: The word ‘caveat’ is a legal term. To make your text as clear as possible to all readers, do not use this foreign term unless it is used with its legal meaning. Possible alternatives are “caution” or “warning”.
Context: ...ed items (both now state the four-space caveat); the scripts/docs-prose.sh header to...

(CAVEAT)

AGENTS.md

[uncategorized] ~297-~297: The official name of this software platform is spelled with a capital “H”.
Context: ...acked .md/.mdx EXCEPT .claude/**, .github/**, CHANGELOG.md, AGENTS.md, `CLAU...

(GITHUB)


[style] ~326-~326: This word has been used in one of the immediately preceding sentences. Using a synonym could make your text more interesting to read, unless the repetition is intentional.
Context: ...prose makes every later edit rewrap the whole block, so a one-word change lands as a ...

(EN_REPEATEDWORDS_WHOLE)


[uncategorized] ~342-~342: The official name of this software platform is spelled with a capital “H”.
Context: ...ve-out** — AGENTS.md, CHANGELOG.md, .github/ CI docs and .claude/ agent prompts ...

(GITHUB)


[uncategorized] ~342-~342: The official name of this software platform is spelled with a capital “H”.
Context: ...scoped .markdownlint.json files under .github/ and .claude/ used to switch it off ...

(GITHUB)


[uncategorized] ~342-~342: The official name of this software platform is spelled with a capital “H”.
Context: ...ripts/docs-prose.sh, which still skips .github/and.claude/`: mechanical style is c...

(GITHUB)

.claude/skills/pm-triage/references/routine.md

[style] ~7-~7: Since ownership is already implied, this phrasing may be redundant.
Context: ...state`** — shares no history with main (its own thing), checked out in its own worktree...

(PRP_OWN)


[style] ~11-~11: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... and idiomatic, and it's versioned. - vs. a plain gitignored dir: untracked fi...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

.github/workflows/README.md

[typographical] ~3-~3: The word ‘How’ starts a question. Add a question mark (“?”) at the end of the sentence.
Context: ...itecture How ci.yml is shaped and why. This is the canonical reference — the w...

(WRB_QUESTION_MARK)


[uncategorized] ~51-~51: The official name of this software platform is spelled with a capital “H”.
Context: ...re owned end-to-end by setup-env** ([.github/actions/setup-env](../actions/setup-env...

(GITHUB)


[style] ~87-~87: Since ownership is already implied, this phrasing may be redundant.
Context: ...caches the half that pays for itself on its own key (gobuild-v3-<os>-go-release-, ~0....

(PRP_OWN)


[grammar] ~91-~91: Use a hyphen to join words.
Context: ...ng but a retry can ever read. If release wall-clock ever does matter, the lever i...

(QB_NEW_EN_HYPHEN)


[style] ~93-~93: Since ownership is already implied, this phrasing may be redundant.
Context: ... goreleaser-validate.yml opts out on its own grounds: its --single-target snapshot...

(PRP_OWN)


[style] ~149-~149: This sentence is over 40 words long. Consider splitting it up, as shorter sentences make the text easier to read.
Context: ..."instead, as the docs jobs do. - **Make sure the job's make target reachesgo-mod-download.** Every ci.ymlGo job races to save the shared unsuffixedgomod-v1, so a job that only fetches the modules it happens to import can store a partial tree that then exact-hits for everyone until the next rotation. This is why cov` carries the prerequis...

(TOO_LONG_SENTENCE)


[style] ~151-~151: This word has been used in one of the immediately preceding sentences. Using a synonym could make your text more interesting to read, unless the repetition is intentional.
Context: ...olls one, as publish-dev.yml does. 4. Need a build product / data from another job...

(EN_REPEATEDWORDS_NEED)


[style] ~151-~151: Since ownership is already implied, this phrasing may be redundant.
Context: ...d the producer), or — when this job has its own setup to overlap and sits on the critic...

(PRP_OWN)

🔇 Additional comments (8)
CHANGELOG.md (1)

18-20: LGTM!

.markdownlint-cli2.jsonc (1)

35-42: LGTM!

AGENTS.md (1)

297-297: LGTM!

Also applies to: 326-326, 342-342

docs/src/content/docs/development.md (1)

432-432: LGTM!

.github/prompts/docs-review.md (1)

3-3: LGTM!

scripts/docs-prose.sh (1)

15-18: LGTM!

Also applies to: 27-27, 47-47

.claude/skills/pm-triage/references/routine.md (1)

3-15: LGTM!

Also applies to: 27-27, 40-50, 70-70

.github/workflows/README.md (1)

3-3: LGTM!

Also applies to: 29-69, 85-111, 120-124, 137-160


📝 Walkthrough

Summary by CodeRabbit

  • Documentation

    • Updated Markdown linting guidance and enforcement across all tracked Markdown and MDX files.
    • Clarified handling of nested list items and documented inline exceptions.
    • Expanded documentation review coverage to include setup reports and additional directories.
    • Improved CI workflow documentation, including unit, integration, and end-to-end deployment relationships.
    • Reformatted PM triage documentation for improved readability.
  • Chores

    • Removed unused Astro View Transitions integration guidance and related examples.
    • Removed obsolete directory-specific lint configurations.

Walkthrough

The change enforces WH001 across tracked Markdown files, updates related documentation and prose selection, reformats documentation, updates the CI architecture graph, and removes the unused vendored Astro View Transitions skill.

Changes

Lint and documentation cleanup

Layer / File(s) Summary
Repository-wide WH001 scope
.markdownlint-cli2.jsonc, AGENTS.md, .github/prompts/docs-review.md, scripts/docs-prose.sh, docs/src/content/docs/development.md, .github/.markdownlint.json, .claude/.markdownlint.json
Removes path-specific WH001 overrides and updates lint, prose-review, and documentation scope guidance.
Documentation prose and CI architecture updates
.claude/skills/pm-triage/references/routine.md, .github/workflows/README.md
Reformats prose and adds unit, integration, and e2e dependencies to the deploy graph.
Vendored skill removal
.claude/skills/integration-astro-view-transitions/*, docs/src/content/docs/claude-code.md, CHANGELOG.md
Deletes the unused Astro View Transitions skill, removes its documentation inventory entries, and records the changes under Unreleased.

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

Merge Risk: ⚪ Minimal · up to d2e98

The change enables the existing Markdown rule across tracked documentation, reflows affected prose, reconciles guidance, and removes unused vendored content; no actionable merge-blocking risk remains beyond normal checks and review.

Suggested reviewers: taitelee

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning The PR includes changes explicitly identified as outside #521, including the docs-deploy job-graph dependency correction and additional denylist and nested-list documentation fixes. Remove unrelated changes from this PR, especially the docs-deploy graph correction, or link issues and provide explicit objectives that require them.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The PR satisfies issue #521 by deleting both path-scoped overrides, reflowing affected prose, removing the vendored skill and its references, and reconciling WH001 documentation.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. (7 skipped: 7 …
Title check ✅ Passed The title clearly summarizes the main changes: enforcing WH001 across all paths and removing the vendored skill.
Description check ✅ Passed The description is detailed and directly explains the WH001 enforcement, documentation updates, vendored skill removal, additional fixes, and validation results.
Full details: Docstring Coverage

Explanation

Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. (7 skipped: 7 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch lint-wh001-everywhere
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch lint-wh001-everywhere

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.

@github-actions github-actions Bot added documentation Improvements or additions to documentation github_actions Pull requests that update GitHub Actions code area/docs Documentation, site/, README area/infra CI, build, deploy, Docker, release labels Aug 26, 2026
Base automatically changed from ci-509 to main August 26, 2026 17:32
# Conflicts:
#	.github/workflows/README.md
#	CHANGELOG.md
@github-actions github-actions Bot added go Pull requests that update go code and removed go Pull requests that update go code labels Aug 26, 2026
@github-actions

github-actions Bot commented Aug 26, 2026

Copy link
Copy Markdown

📚 Docs preview is livehttps://7437674f-wavehouse-docs.wave-rf.workers.dev

  • Commit8c02808: docs: finish the job-graph audit, split the changelog entry
  • Author@EricAndrechek, Claude Opus 5 (1M context)
  • Committed — 2026-08-26 14:22 (UTC-04:00)
  • Deployed — 2026-08-26 15:04 EDT

coderabbitai[bot]
coderabbitai Bot previously approved these changes Aug 26, 2026
@github-code-quality

github-code-quality Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: Go

Go

The overall line coverage in commit 8c02808 in the lint-wh001-everywher... branch remains at 91%, unchanged from commit e2e7103 in the main branch.


Updated August 26, 2026 19:05 UTC

@EricAndrechek
EricAndrechek marked this pull request as ready for review August 26, 2026 17:43
@EricAndrechek
EricAndrechek requested review from a team and taitelee August 26, 2026 17:43
EricAndrechek and others added 3 commits August 26, 2026 13:47
Unlike docs/posthog-setup-report.md — a real file deleted in #502 that
left a stale reference behind — PERF-CLAIMS-REVIEW.md was never tracked
at all (`git log --all` finds nothing) and isn't gitignored, so the
entry guarded a document that has never existed in this repo.

The denylist's other general cases are patterns (*.draft.md, *.old.md)
that already cover a one-off review write-up. A literal filename for a
hypothetical file, restated in four places, is the outlier — and this
PR is about not leaving speculative claims lying around in comments.

Removed from all four lockstep locations, per the header rule the
previous commit corrected. `scripts/docs-prose.sh all` still resolves
the same 27-file prose set.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MB4oPy9yfUHSe8FjnDmeZH
Two review findings.

The workflows README still told readers the orphan `badges` branch "is
deleted separately once this lands: while the job still exists on main,
the next code push would just recreate it." Both clauses stopped being
true when #520 merged and the branch was deleted — so the canonical CI
reference was handing readers an open action item that is already done.
Past-tensed, keeping the reason it had to be sequenced that way.

The twin sentence in CHANGELOG.md is deliberately NOT changed: that
entry records what #520 did and planned at the time, and Keep a
Changelog entries aren't rewritten as reality moves. The living
reference doc tracks current state; the changelog tracks history.

Also rewrapped a 112-character comment line in .markdownlint-cli2.jsonc
to match the ~80 of its neighbours — hand-wrapped prose maintenance
cost, in the file that configures the rule against it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MB4oPy9yfUHSe8FjnDmeZH
claude-code.md told readers that "when #121 lands a SigNoz dev stack
with `make dev-obs`", Grafana MCP would become useful for trace/log
inspection. Three ways wrong:

- #121 closed as COMPLETED on 2026-05-24.
- `dev-obs` exists nowhere in the tree — the real targets are
  obs-aspire, obs-grafana, and obs-front.
- The project went the other way. deployment.md states outright that no
  heavy multi-node cluster like SigNoz is maintained for local dev, and
  deployments/signoz/ is gone.

So the page deferred to future work that had already shipped under a
different name, and handed readers a command that errors out.

Now points at `make obs-grafana` and links the deployment section.

Pre-existing rather than introduced here, but claude-code.md is in the
docs-prose set and already edited by this PR — and stale prose that
outlived its subject is precisely what this PR is about.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MB4oPy9yfUHSe8FjnDmeZH
Two review findings.

The job graph still omitted two real `needs` edges — `changes --> ci`
and `changes --> preview` — while the legend three lines below says
flatly "Solid arrows are `needs` edges". Not a deliberate
simplification either: `changes --> deploy` IS drawn, so the diagram
contradicted itself. Adding both makes the edges into `ci` exactly the
aggregator's nine `needs`. The earlier commit in this PR audited that
diagram and stopped two edges short, which is the same defect class the
PR exists to remove.

The Grafana MCP fix also moves out of the WH001 entry into its own
`### Fixed` bullet. That entry's headline is about WH001 applying
everywhere; its last two sentences were about `make obs-grafana` and a
closed issue, which a reader scanning for either would not find. The
repo's convention is one thorough bullet per change.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MB4oPy9yfUHSe8FjnDmeZH
@EricAndrechek
EricAndrechek merged commit 7b3c25e into main Aug 26, 2026
20 checks passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in WaveHouse Task Board Aug 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/docs Documentation, site/, README area/infra CI, build, deploy, Docker, release documentation Improvements or additions to documentation github_actions Pull requests that update GitHub Actions code

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

lint: enforce WH001 everywhere — drop the .github/.claude exclusions and the vendored PostHog skill

1 participant