Skip to content

Darling README: move six sections to task pages (part of #6416, phase 1) - #6722

Merged
erikdarlingdata merged 3 commits into
devfrom
docs/6416-readme-split-p1
Oct 24, 2026
Merged

erikdarlingdata merged 3 commits into
devfrom
docs/6416-readme-split-p1

Conversation

@erikdarlingdata

@erikdarlingdata erikdarlingdata commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner

Claude posting for Erik Darling.

Part of #6416. This is phase 1. #6416 stays open.

What this does

Darling/README.md is too large for GitHub to render in full. This PR moves six of its sections into the task pages under docs/darling/. It moves only the sections that no open PR edits. Every moved heading that a link points at keeps a stub heading in the README, with the same text, so the old anchors still land. Each stub gives a link to the new page.

Measured on the committed files, which have LF line endings: the README goes from 2,519 lines and 550,638 bytes (538 KB) on origin/dev to 1,817 lines and 407,890 bytes (398 KB) on this branch. Both counts are at 8954435. Dev grew by 62 lines after the first count (2,457 lines), in sections that stay in the README. A CRLF working copy has one more byte per line, so wc -c there reads 409,707.

Where each section went

Line ranges are from origin/dev at 1393e9a, where I took them.

Section (old lines) New home
Quick Start 33-595: Prerequisites through Diagnostics Bundle, Console Mode, Install as a Windows Service, the MSI, the install location, the service account, Build from source, the CET error (39-185, 247-275, 352-472) docs/darling/install.md, in a new "Install reference" part before "Where to go next"
Quick Start: Run on Linux (186-246) docs/darling-quick-start.md, under "Install on Linux"
Quick Start: Upgrading an existing install, Rolling back, Upgrading from a build that predates the script (276-351) docs/darling/admin.md, under "Upgrade"
Quick Start: What the Service Does on Monitored Servers, the Extended Events sessions, Permissions on Monitored Servers (473-592) new docs/darling/monitored-servers.md
PostgreSQL Targets 1401-1524 new docs/darling/postgresql-targets.md
Connect a Remote Viewer 1892-1972 docs/darling/viewer.md, before "Read-only versus read-write seats"
How It Runs (Reference) 2028-2042 docs/darling/admin.md, at the end
Managed Bundled PostgreSQL 2043-2076 new docs/darling/managed-postgresql.md
Per-server threshold overrides 2424-2435 docs/alerts.md, at the end

"When to Choose Darling vs. Lite" stays in the README as its introduction. The two Quick Start pointer lines (to install.md and darling-quick-start.md) stay as well.

I carried the text over as it was. I changed only what the move broke:

  • I adjusted heading levels to fit each page.
  • I rewrote relative links for the new folder depth, and I pointed #anchor links to sections that stay in the README back at Darling/README.md.
  • I changed two "permissions below" links to "permissions on monitored servers", because the target is now on another page.

The new text (the page intros, the stubs, the "Install reference" lead-in) has no tool or collector counts.

The new pages and the reading order

The three new pages start with Audience: operators. under the H1, in the format of #6719. docs/darling/README.md lists them as steps 7 to 9, before Troubleshooting. #6719 has not merged, so docs/README.md does not exist on dev yet. When #6719 merges, add these three to its "Run" or "Configure" list:

  • docs/darling/monitored-servers.md
  • docs/darling/postgresql-targets.md
  • docs/darling/managed-postgresql.md

Stubs kept in the README

Each stub is a heading with exactly the old text, followed by one line that links to the new page.

  • Six top-level sections: ## Quick Start (it keeps its two pointer lines and adds a list of where the content went), ## PostgreSQL Targets, ## Connect a Remote Viewer, ## How It Runs (Reference), ## Managed Bundled PostgreSQL, ## Per-server threshold overrides.
  • Sub-headings that something links to:
    • Prerequisites
    • Configure darling.json
    • Validate the Config (Pre-flight)
    • Check Host/Store Sizing Settings
    • Diagnostics Bundle
    • Run on Linux (Docker Compose or systemd), plus the explicit <a id="run-on-linux-docker-compose-or-systemd-1804">
    • Install as a Windows Service
    • Upgrading an existing install
    • Rolling back to an older build
    • Upgrading from a build that predates the script
    • The install location has to be machine-scoped
    • Run the service as a domain account or gMSA
    • Build from source
    • Windows stops at start: the CET error
    • What the Service Does on Monitored Servers
    • The Extended Events Sessions the Service Creates
    • Permissions on Monitored Servers
    • Permissions on a PostgreSQL target
    • Oldest PostgreSQL version per collector
      1. Export the handoff folder (on the service host)
    • Manual configuration (fallback)

Sub-headings that nothing links to have no stub. Examples are "The sessions", "Clones", "What gets collected" and "If it does not connect". I checked that no tracked file links to any of them.

Inbound links updated in docs

I pointed every docs link to a moved anchor straight at its new page. That is 34 links in 11 files:

  • docs/authentication.md
  • docs/darling-quick-start.md
  • docs/darling-store-sizing.md
  • docs/darling/admin.md
  • docs/darling/cli.md
  • docs/darling/install.md
  • docs/editions.md
  • docs/performance-impact.md
  • docs/permissions.md
  • docs/postgres-first-target-runbook.md
  • docs/troubleshooting.md

In the runbook I also changed two "README's ..." phrases, because the links no longer go to the README. Links inside the README to moved anchors now point at the new pages.

CHANGELOG.md and docs/changelog/ are history, so I left their links alone. The stubs keep those links working.

Product-code references that the stubs keep working (not changed)

None of these quote an anchor. Each names a section heading or "the README" in a string or a comment, and the README still has the heading.

  • Darling/PerformanceMonitor.Darling.Storage/PgMigrations.cs:9558, RollbackReadmeSection, which reads "Rolling back to an older build" in Darling/README.md. This text goes into the newer-store warning. The stub heading is there, and its link goes to admin.md. This file is off-limits for this PR. A later PR can name docs/darling/admin.md directly.
  • Darling/tools/install-darling.ps1:2088: "the README (Prerequisites) has a workaround". The workaround is the CET section, which is now in install.md. The Prerequisites stub covers the old wording.
  • DarlingWorker.cs:13760 and :13837: "see the monitoring-login grants in the README". Covered by the Permissions on Monitored Servers stub.
  • MonitoringGrantScript.cs:260: "the service's Log On account was changed (see Darling/README.md)". Covered by the gMSA stub.
  • DarlingServiceConnectionTest.cs:77: "with the permissions in the README". Covered by the same stub.
  • darling.sample.json:61, 80, 389, 396, 492, DarlingCollectorRunner.cs:4137 and DarlingWorker.cs:8180, 8916, 11671, 16593. These name sections that did not move: Background workers, LAN endpoints, Logs and the alerts section.

Tests

Five existing pins read text from sections that moved. Each one now reads the page that holds the text. The assertions did not change.

Test Text it checks Now reads
DarlingRuntimePreflightTests.Readme_QuotesTheCetMessage_... (Darling case) the CET section docs/darling/install.md
NewerStoreWarningTests.The_readme_rollback_list_names_only_rungs_the_ladder_ships the rollback bullets docs/darling/admin.md
PgLogEventMetricsTests (the V130 recent_runs line) PostgreSQL Targets docs/darling/postgresql-targets.md. The other two asserts in that test still read the README
RetentionReevaluationTests (the cadence row) How It Runs docs/darling/admin.md
StoreObjectConvergenceTests.TheReadme_NamesTheHourlyConvergence How It Runs docs/darling/admin.md

I added no new tests. I checked the other README pins by script. Every literal they assert that was in the README before the move is still in it.

I built Darling.Tests and Lite.Tests with -p:EnableWindowsTargeting=true on macOS: 0 errors for each. These suites run only on Windows, so CI is the first place they run.

Checks I ran

Out of scope

  • Phase 2 of Split Darling/README.md (509 KB, 2,269 lines, 106 headings) into task pages and a generated reference #6416: the generated reference half. That means the Configuration Reference, the migration history table, the rollback list and the issue-number paragraphs. They move to a generated page or the changelog.
  • The sections that open PRs edit: Configuration Reference, Operations, Agent Changes, Troubleshooting and Opt-in Network Endpoints. These stay until those PRs merge.
  • Sections the MCP agent-admin chain will likely edit: Security & Least-Privilege Roles, and Level 2.

docs/darling/install.md is now about 59 KB. That is near the issue's target of 60 KB for each page. Phase 2 can split its new "Install reference" part out to its own page if needed.

CHANGELOG entry

Darling/README.md was too large to render on GitHub. This commit moves six
sections that no open PR edits into the docs/darling/ pages and leaves a stub
heading with the same anchor for each moved heading that a link points at.

- Quick Start reference: docs/darling/install.md, docs/darling-quick-start.md
  (Linux), docs/darling/admin.md (upgrade and rollback) and the new
  docs/darling/monitored-servers.md.
- PostgreSQL Targets: new docs/darling/postgresql-targets.md.
- Connect a Remote Viewer: docs/darling/viewer.md.
- How It Runs (Reference): docs/darling/admin.md.
- Managed Bundled PostgreSQL: new docs/darling/managed-postgresql.md.
- Per-server threshold overrides: docs/alerts.md.

Docs links to the moved anchors now point at the new pages. Five existing
test pins read moved text, so they now read the page that holds it.
@erikdarlingdata
erikdarlingdata marked this pull request as ready for review October 24, 2026 18:51

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Verdict: LGTM

Claims

  • VERIFIED — "Every moved heading that a link points at keeps a stub heading in the README, with the same text" — confirmed via heading grep: Darling/README.md still has ## PostgreSQL Targets (:997), ## Connect a Remote Viewer (:1389), ## How It Runs (Reference) (:1458), ## Managed Bundled PostgreSQL (:1464), ## Per-server threshold overrides (:1815), plus every sub-heading stub listed in the body (Prerequisites, Configure darling.json, Install as a Windows Service, etc.) — only the bodies were replaced with "moved to" pointers.
  • VERIFIED — "docs/darling/install.md is now about 59 KB" — wc -c docs/darling/install.md = 60,759 bytes (≈59.3 KiB).
  • VERIFIED — the "Tests" table (5 pins retargeted, assertions unchanged) — diffed all 5 files (DarlingRuntimePreflightTests.cs, NewerStoreWarningTests.cs, PgLogEventMetricsTests.cs, RetentionReevaluationTests.cs, StoreObjectConvergenceTests.cs); each now reads exactly the page the table names, with the same Assert.Contains literals, and those literals are present verbatim in the new pages (e.g. the V130 recent_runs line in docs/darling/postgresql-targets.md:77, the store-object-convergence row in docs/darling/admin.md:254).
  • VERIFIED — "every file I changed is CRLF in the working copy" — file on all nine touched/new docs/darling/*.md plus Darling/README.md reports CRLF line terminators throughout.
  • VERIFIED — "CHANGELOG.md and docs/changelog/ … I left their links alone" — neither appears in gh pr diff 6722 --name-only.
  • VERIFIED (spot check) — "Sub-headings that nothing links to have no stub… I checked that no tracked file links to any of them" — grepped the repo for #the-sessions, #clones, #what-gets-collected, #if-it-does-not-connect; no inbound references outside the destination pages' own TOC-adjacent prose.
  • UNVERIFIED — "I built Darling.Tests and Lite.Tests with -p:EnableWindowsTargeting=true on macOS: 0 errors for each" — requires running a .NET build; not done in this read-only review.
  • UNVERIFIED — "I ran scrubcheck on the full diff… 0 hits" — tool/output not available to this review.
  • UNVERIFIED — "Link check: … 0 broken" (the author's own exhaustive sweep) — I independently re-verified ~80 of the relative links and GitHub-slug anchors by hand across every changed file (all resolved), but can't confirm the claimed automated sweep itself ran clean.
  • REFUTED — "The README goes from 2,457 lines and 545,401 bytes … to 1,755 lines and 404,734 bytes" — wc -l/wc -c on the current Darling/README.md report 1,817 lines / 409,707 bytes, 62 lines and ~4.9 KB more than the stated final figures. Purely cosmetic (likely stale from before the final rebase/commit), no functional impact — the directional claim ("about a quarter smaller") still holds.

Riskiest lines

  1. docs/darling/monitored-servers.md:80-97 — the relocated grant table that gates SQL Server collection; a silent future edit here would ship unnoticed — UNCOVERED (no behavior test pins this page).
  2. Darling/README.md:115 (](../docs/darling/monitored-servers.md#permissions-on-monitored-servers)) — the stub link operators actually click post-move; if the target heading's slug ever drifts, nothing in CI fails — UNCOVERED.
  3. docs/darling/admin.md:254 — the "Store object convergence" cadence row moved from Darling/README.md — covered by StoreObjectConvergenceTests.TheReadme_NamesTheHourlyConvergence and RetentionReevaluationTests, both updated in this PR to read admin.md.

Traps near this diff

  • .gitattributes says text=auto eol=crlf: … A diff that touches every line of a file is a line-ending conversion until proven otherwise — does not apply: every changed file shows a targeted content diff (913 additions / 777 deletions across 23 files, not whole-file rewrites), and file confirms CRLF survived in both old and new docs.
  • Lite and Darling ship in parity (CONTRIBUTING's two-store rule): a fix to one SKU's reader, tool, alert or description without the counterpart's is a finding — does not apply: this PR only reorganizes Darling-specific operator documentation under docs/darling/; it touches no Lite doc, code, or test, and Lite has no equivalent oversized-README problem being solved.

Divergence (blind read vs PR body)

One divergence, already captured as REFUTED above: the PR body's stated final line/byte counts for Darling/README.md don't match the tree as checked out (1,817/409,707 vs. the claimed 1,755/404,734). Everything else — the six-section move list, the stub inventory, the 34 inbound-link retargets, the five test-pin retargets, the "sections left alone because open PRs touch them" list — matches the diff exactly; I found no section claimed as moved that wasn't, no stub claimed as kept that was dropped, and no inbound link claimed as fixed that still points at the old location.

Reviewer checklist

  • Run the author's claimed link-check script (or an equivalent) and the Windows-targeted test build, since neither could be executed from this read-only review.

claude[bot]
claude Bot previously requested changes Oct 24, 2026

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Verdict: CHANGES REQUESTED

(Correcting my previous review on this PR, which wrongly posted as LGTM without the required footer — same findings, corrected verdict and footer below.)

Claims

  • VERIFIED — "Every moved heading that a link points at keeps a stub heading in the README, with the same text" — confirmed via heading grep: Darling/README.md still has ## PostgreSQL Targets (:997), ## Connect a Remote Viewer (:1389), ## How It Runs (Reference) (:1458), ## Managed Bundled PostgreSQL (:1464), ## Per-server threshold overrides (:1815), plus every sub-heading stub listed in the body — only the bodies were replaced with "moved to" pointers.
  • VERIFIED — "docs/darling/install.md is now about 59 KB" — wc -c docs/darling/install.md = 60,759 bytes (≈59.3 KiB).
  • VERIFIED — the "Tests" table (5 pins retargeted, assertions unchanged) — diffed all 5 files (DarlingRuntimePreflightTests.cs, NewerStoreWarningTests.cs, PgLogEventMetricsTests.cs, RetentionReevaluationTests.cs, StoreObjectConvergenceTests.cs); each now reads exactly the page the table names, with the same Assert.Contains literals, and those literals are present verbatim in the new pages (e.g. the V130 recent_runs line in docs/darling/postgresql-targets.md:77, the store-object-convergence row in docs/darling/admin.md:254).
  • VERIFIED — "every file I changed is CRLF in the working copy" — file on all nine touched/new docs/darling/*.md plus Darling/README.md reports CRLF line terminators throughout.
  • VERIFIED — "CHANGELOG.md and docs/changelog/ … I left their links alone" — neither appears in gh pr diff 6722 --name-only.
  • VERIFIED (spot check) — "Sub-headings that nothing links to have no stub… I checked that no tracked file links to any of them" — grepped the repo for #the-sessions, #clones, #what-gets-collected, #if-it-does-not-connect; no inbound references outside the destination pages' own TOC-adjacent prose.
  • UNVERIFIED — "I built Darling.Tests and Lite.Tests with -p:EnableWindowsTargeting=true on macOS: 0 errors for each" — requires running a .NET build; not done in this read-only review.
  • UNVERIFIED — "I ran scrubcheck on the full diff… 0 hits" — tool/output not available to this review.
  • UNVERIFIED — "Link check: … 0 broken" (the author's own exhaustive sweep) — I independently re-verified ~80 of the relative links and GitHub-slug anchors by hand across every changed file (all resolved), but can't confirm the claimed automated sweep itself ran clean.
  • REFUTED — "The README goes from 2,457 lines and 545,401 bytes … to 1,755 lines and 404,734 bytes" — wc -l/wc -c on the current Darling/README.md report 1,817 lines / 409,707 bytes, 62 lines and ~4.9 KB more than the stated final figures. Purely cosmetic (likely stale from before the final rebase/commit), no functional impact — the directional claim ("about a quarter smaller") still holds.

Riskiest lines

  1. docs/darling/monitored-servers.md:80-97 — the relocated grant table that gates SQL Server collection; a silent future edit here would ship unnoticed — UNCOVERED (no behavior test pins this page).
  2. Darling/README.md:115 (](../docs/darling/monitored-servers.md#permissions-on-monitored-servers)) — the stub link operators actually click post-move; if the target heading's slug ever drifts, nothing in CI fails — UNCOVERED.
  3. docs/darling/admin.md:254 — the "Store object convergence" cadence row moved from Darling/README.md — covered by StoreObjectConvergenceTests.TheReadme_NamesTheHourlyConvergence and RetentionReevaluationTests, both updated in this PR to read admin.md.

Traps near this diff

  • .gitattributes says text=auto eol=crlf: … A diff that touches every line of a file is a line-ending conversion until proven otherwise — does not apply: every changed file shows a targeted content diff (913 additions / 777 deletions across 23 files, not whole-file rewrites), and file confirms CRLF survived in both old and new docs.
  • Lite and Darling ship in parity (CONTRIBUTING's two-store rule): a fix to one SKU's reader, tool, alert or description without the counterpart's is a finding — does not apply: this PR only reorganizes Darling-specific operator documentation under docs/darling/; it touches no Lite doc, code, or test, and Lite has no equivalent oversized-README problem being solved.

Divergence (blind read vs PR body)

One divergence, captured as REFUTED above: the PR body's stated final line/byte counts for Darling/README.md don't match the tree as checked out (1,817/409,707 vs. the claimed 1,755/404,734). Everything else — the six-section move list, the stub inventory, the 34 inbound-link retargets, the five test-pin retargets, the "sections left alone because open PRs touch them" list — matches the diff exactly; I found no section claimed as moved that wasn't, no stub claimed as kept that was dropped, and no inbound link claimed as fixed that still points at the old location. This is a cosmetic PR-description inaccuracy, not a code or content defect — update the stated counts, or note they predate the final rebase.

Reviewer checklist

  • Run the author's claimed link-check script (or an equivalent) and the Windows-targeted test build, since neither could be executed from this read-only review.
  • Reconcile or drop the PR body's Darling/README.md line/byte-count figures against the final tree.

@erikdarlingdata

Copy link
Copy Markdown
Owner Author

Claude posting for Erik Darling.

Answers to the review at 8954435. No code change.

  • REFUTED line and byte counts: right. The counts were from before the dev merge. The body now gives both sides at 8954435 on the committed LF files: dev 2,519 lines and 550,638 bytes, this branch 1,817 lines and 407,890 bytes. Your 409,707 is the CRLF working copy, one byte more per line.
  • Riskiest lines 1 and 2 (the moved grant table and the stub link): no test, by choice. A test that pins the table's text or the link's slug would be a wording test, which the Tests that assert spelling, not behavior: cap them, stop the review asking for pins, delete the shape ones #5833 ruling rules out. The link check that the body names covers the stub's target today.
  • Checklist, link check and Windows build: CI runs the Windows build and tests on this head.

I added re-review for a full pass on the same head.

@erikdarlingdata
erikdarlingdata dismissed claude[bot]’s stale review October 24, 2026 19:37

Claude posting for Erik Darling. The one refuted claim was the body's README line and byte counts, now corrected for the dev merge. No code change. Details in the PR comment.

@erikdarlingdata erikdarlingdata added the re-review Runs a fresh full Claude review; the review removes the label label Oct 24, 2026
@claude

claude Bot commented Oct 24, 2026

Copy link
Copy Markdown

Non-blocking observation, not in this diff: CONTRIBUTING.md:46 ("Darling/README.md is the operator-facing document (configuration, installation, what the service does on...)") and CONTRIBUTING.md:104 ("Darling/README.md has the full procedure") now describe installation and "what the service does on monitored servers" content that this PR moved out to docs/darling/install.md and docs/darling/monitored-servers.md. Darling/README.md still covers configuration, so this isn't wrong, just a little stale — worth a one-line touch-up in a follow-up (phase 2, or whenever CONTRIBUTING.md next gets attention). Not asking for a change here.

Everything else checks out: verified by hand (and cross-checked with two independent passes) that every "moved to" stub heading's link resolves to a real heading in its target file (~25+ anchors sampled, including the trickier ones like #configure-darlingjson, #check-hoststore-sizing-settings, and the explicit <a id="run-on-linux-docker-compose-or-systemd-1804"> anchor), that the content removed from each stub section is present verbatim in its new home, that the five updated test assertions (DarlingRuntimePreflightTests, NewerStoreWarningTests, PgLogEventMetricsTests, RetentionReevaluationTests, StoreObjectConvergenceTests) match the exact strings now in their new target files, and that no new source-text-reading test was added (the pre-existing ones were only re-pointed).

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Verdict: LGTM

Claims

  • VERIFIED — "the README goes from 2,519 lines ... to 1,817 lines ... on this branch" — current Darling/README.md is exactly 1817 lines (wc -l).
  • VERIFIED — "Every moved heading that a link points at keeps a stub heading in the README, with the same text" — spot-checked ~15 stub headings (e.g. Darling/README.md:101 "Windows stops at start: the CET error", :113 "Permissions on Monitored Servers") against their pre-move text in the diff; identical.
  • VERIFIED — the "Where each section went" table matches the diff: install.md, admin.md, monitored-servers.md, postgresql-targets.md, viewer.md, managed-postgresql.md, alerts.md each receive exactly the content the table says, confirmed by direct comparison of deleted/added hunks.
  • VERIFIED — "I added no new tests" — all 5 touched test files only change the ReadRepoFile(...) call and the failure-message string inside an existing [Fact]; no new test methods.
  • VERIFIED — "Link check: ... Result: 0 broken" — independently resolved ~30 relative links/anchors added or rewritten by this PR (across Darling/README.md stubs and the new/changed docs/darling/*.md, docs/darling-quick-start.md, docs/alerts.md, docs/permissions.md, docs/troubleshooting.md, etc.) against GitHub's heading-slug rules; all resolve, including tricky ones with punctuation (#configure-darlingjson, #check-hoststore-sizing-settings) and the explicit <a id="run-on-linux-docker-compose-or-systemd-1804"> anchor.
  • UNVERIFIED — "I built Darling.Tests and Lite.Tests with -p:EnableWindowsTargeting=true on macOS: 0 errors for each" — requires running a build; not checkable from a read-only tree.
  • UNVERIFIED — "Scrub: I ran scrubcheck on the full diff ... 0 hits" and "Rebase: ... I ran all the checks again" — both are live tool-run/workflow claims not reproducible from a static checkout.

Riskiest lines

  1. Darling/README.md stub "moved to" links (e.g. :103, :150, :1466) — a stub pointing at a dead anchor would silently 404 for every reader following an old bookmark. Covered by no automated test (REVIEW-TRAPS.md's tests-and-censuses ruling explicitly disallows a source-text/markdown-spelling test as "coverage"); mitigated instead by the PR body's own link check plus this review's independent link-resolution pass. UNCOVERED by test, but the PR body states why none is needed (the census-style check it describes, plus REVIEW-TRAPS' ruling against adding one).
  2. Darling/Darling.Tests/PgLogEventMetricsTests.cs:42-43 (RepoFile.ReadRepoFile("docs", "darling", "postgresql-targets.md") + the V130 recent_runs assertion) — a page split that dropped or reworded that line would red this test. Covered by PgLogEventMetricsTests.TheRunbookAndTheReadme_NameBothFamilies itself (a real xunit assertion that fails if the string is missing) — confirmed the string is present verbatim at docs/darling/postgresql-targets.md:77.
  3. docs/darling/install.md:52 (ReadRepoFile("docs", "darling", "install.md") consumed by DarlingRuntimePreflightTests.Readme_QuotesTheCetMessage_...) — the CET message and exit code moved into a much larger new file; a transcription slip here would be user-facing (operators searching for the literal error text) and would also red the test. Covered by that test; confirmed exact match at docs/darling/install.md:548.

Traps near this diff

  • "Ruling (#5833): tests are load-bearing. ... never answer a trap with a test that reads source text or asserts how code is spelled" — does not apply as a new violation: the 5 touched tests (DarlingRuntimePreflightTests, NewerStoreWarningTests, PgLogEventMetricsTests, RetentionReevaluationTests, StoreObjectConvergenceTests) are pre-existing source-text-reading tests, only re-pointed at the new file path; no new test of this shape was added in this diff.
  • "Lite and Darling ship in parity (CONTRIBUTING's two-store rule): a fix to one SKU's reader, tool, alert or description without the counterpart's is a finding" — does not apply: Lite/README.md is 24 lines and was never split this way, no Lite.Tests reads Darling/README.md or any of the moved sections, and docs/troubleshooting.md's shared Lite content is untouched by this PR (only Darling-side links were repointed).
  • ".gitattributes says text=auto eol=crlf: ... a diff that touches every line of a file is a line-ending conversion until proven otherwise" — does not apply: every diff hunk in this PR (Darling/README.md, the new docs/darling/*.md files, etc.) is a targeted, line-level content move, not a whole-file rewrite; the PR body's own CRLF check (git show HEAD | grep -c $'\r' = 0) is consistent with a clean line-ending story.

Divergence (blind read vs PR body)

The body's "Product-code references that the stubs keep working" section audits every .cs/.ps1/.json string and every docs link that names a moved section, but doesn't mention CONTRIBUTING.md:46 and :104, which describe Darling/README.md as covering "installation" and having "the full procedure" for viewer setup — both now moved out to docs/darling/install.md and docs/darling/viewer.md. Minor and non-blocking (flagged separately in a PR comment); the body's stated audit scope (product code + docs links) just didn't extend to CONTRIBUTING.md's own prose. Otherwise the body's account matches the diff on every claim graded above.

Reviewer checklist

  • Confirm the actual Windows CI run for Darling.Tests/Lite.Tests is green (the PR body's macOS cross-compile build check doesn't run these suites; they only execute on Windows CI).

@github-actions github-actions Bot removed the re-review Runs a fresh full Claude review; the review removes the label label Oct 24, 2026
@claude

claude Bot commented Oct 24, 2026

Copy link
Copy Markdown

Follow-up pass note: git diff 89544354818e9663cfe6976d142374af8013219a..0149aa6f85440926e9446df3a158b153a7627212 contains exactly one commit, 0149aa6f8 ("Merge remote-tracking branch 'origin/dev' into HEAD", empty body) — a merge of the base/dev branch, not an authored change. gh pr view 6722 --json commits confirms the PR's only non-merge commit (68d5e50, the README split) was already reviewed at head 89544354818e9663cfe6976d142374af8013219a in the prior pass.

Everything the diff touches — DarlingMcpForcedPlanTools.cs, DarlingMcpQueryStoreHistoryTools.cs, query-store-history.js and their tests — is dev's own #6598 follow-up (7ff6c9ba3, already merged and presumably reviewed on its own PR #6620), arriving here solely via the merge. None of it touches or interacts with this PR's own README-split changes (Darling/README.md, docs/darling/*.md, the five retargeted test pins). Per the follow-up protocol, content a base-branch merge brings in is not this PR's change and is out of scope unless a new commit in the range interacts with it — none does.

For the record, since I did read it: the merged-in change looks sound on its own terms — ForceNode now reports runs_read:false and nulls (not fabricated zeros) for a REMOVED force's run fields, PickForces/WithForcedPlans keep standing forces ahead of removed ones under the MaxPlans cap, IsForced correctly treats "sampled forced" and "still standing" as the two ways a plan counts as forced, and the JS forcedLabel fix (plus the /_/g global-replace fix for multi-word state names) is covered by a DOM-harness behavior test. No Lite counterpart exists for these tools, so no parity gap. This is not a finding against this PR — just confirming there's nothing here that interacts with the docs move.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Verdict: LGTM

Claims

No new claim to grade: the follow-up range 89544354818e9663cfe6976d142374af8013219a..0149aa6f85440926e9446df3a158b153a7627212 holds a single commit, 0149aa6f8, a merge of origin/dev into HEAD with an empty body. The PR's only authored commit (68d5e50, the README split) sits before the range's BASE and was already graded in the prior full-pass review at head=89544354818e9663cfe6976d142374af8013219a.

Riskiest lines

Not applicable — no authored commit in range. The merge brings in dev's own #6598 forced-plan/query-history work (DarlingMcpForcedPlanTools.cs, DarlingMcpQueryStoreHistoryTools.cs, query-store-history.js), which per the follow-up protocol is not this PR's change and is out of scope since nothing else in the range interacts with it.

Traps near this diff

None evaluated — the only diff in range is base-branch content brought in by a merge, explicitly out of scope for this pass, and it does not interact with this PR's own README-split changes (checked: no overlap in files or content).

Divergence (blind read vs PR body)

None — the follow-up range contains no new authored content for the PR body to make claims about.

Reviewer checklist

  • None beyond what the prior full-pass review already listed (Windows CI build/test run, link-check reconciliation) — this range adds nothing new to verify.

@erikdarlingdata
erikdarlingdata merged commit a235e8a into dev Oct 24, 2026
22 checks passed
@erikdarlingdata
erikdarlingdata deleted the docs/6416-readme-split-p1 branch October 24, 2026 21:06
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