docs: Massive amounts of historical data #101
Open
pm-agent
wants to merge 1 commits from
docs/source-comment-audit into main
pull from: docs/source-comment-audit
merge into: Home-Network:main
Home-Network:main
Home-Network:feat/pihole-explicit-lan-names
Home-Network:feat/dns-via-cloudflare-tunnel
Home-Network:feature/cloudflare-tunnel-config
Home-Network:chore/rotate-cloudflared-tunnel
Home-Network:fix/cloudflared-creds-permission
Home-Network:feat/cloudflare-tunnel
Home-Network:feat/parallel-l0-checks
Home-Network:feat/gate-toolbox-container
Home-Network:fix/keycloak-servicemonitor-owner
Home-Network:feat/runner-capacity-2
Home-Network:chore/renovate-config-cleanup
Home-Network:fix/keycloak-operator-crds
Home-Network:feat/devcontainer-velero-cli
Home-Network:feat/gitea-28
Home-Network:feat/l0-externaldns-annotation-prefix
Home-Network:fix/public-dns-wan-a-record
Home-Network:feat/pm-agent-pr-mentions
Home-Network:chore/pm-agent-digest-99
Home-Network:fix/pm-agent-triage-exit
Home-Network:chore/pm-agent-go-live
Home-Network:chore/pm-agent-runner-digest
Home-Network:feature/pm-agent-credentials
Home-Network:feat/pm-agent-registry-pull-secret
Home-Network:feat/pin-pihole-jackett-plex
Home-Network:fix/renovate-hold-auth-and-self
Home-Network:feat/renovate-track-keycloak-operator
Home-Network:fix/renovate-run-hygiene
Home-Network:fix/renovate-auth
Home-Network:fix/renovate-first-run
Home-Network:feat/keycloak-passkey-reconcile
Home-Network:fix/gitea-admit-buildkit
Home-Network:feat/image-pipeline
Home-Network:fix/renovate-config-filename
Home-Network:fix/vpn-ingress-l2-lease-collision
Home-Network:fix/renovate-cron-window
Home-Network:fix/renovate-invalid-config
Home-Network:fix/pihole-local-ttl
Home-Network:fix/unattended-upgrades-debian-sentinel
Home-Network:fix/ha-check-catastrophic-regex
Home-Network:feat/automated-upgrades
Home-Network:fix/coredns-ha
Home-Network:feat/keycloak-passkeys
Home-Network:fix/oauth2-proxy-oidc-startup-race
Home-Network:feat/graceful-cluster-shutdown
Home-Network:plex/volume-expamsion
Home-Network:fix/bulk-nfs-truenas
Home-Network:fix/peers-configmap-content-hash
Home-Network:vpn/add-keith-phone
Home-Network:fix/new-peer-ignores-template-comments
Home-Network:fix/vpn-ingress-ip-forward
Home-Network:feature/add-private-key-for-wireguard
Home-Network:fix/vpn-server-key-in-sops
Home-Network:docs/pm-agent-registry-pull-prereq
Home-Network:fix/vpn-runbook-ansible-command
Home-Network:feat/pm-agent-issue-to-pr
Home-Network:docs/agents-work-in-their-own-workspace
Home-Network:feat/vpn-remote-access-wireguard
Home-Network:feat/cilium-roll-out-on-config-change
Home-Network:docs/oauth2-sidecar-scrape-verified
Home-Network:fix/plex-resolver-independent-advertise
Home-Network:fix/plex-unblock-app-tier
Home-Network:feat/hubble-flow-export-plex
Home-Network:fix/oauth2-sidecar-metrics-scrape-netpol
Home-Network:feat/plex-vip-hostname-and-lan-networks
Home-Network:fix/plex-advertise-plexdirect
Home-Network:docs/pihole-ha-verified
Home-Network:feat/pihole-multi-replica
Home-Network:feat/pihole-declare-state
Home-Network:feat/plex-remote-access-l4
Home-Network:fix/cilium-cgroup-hostroot
Home-Network:fix/node-keycloak-hosts-pin
Home-Network:feat/public-dns-wan-target
Home-Network:fix/plex-quicksync-verification
Home-Network:sync-39-onto-main
Home-Network:fix/admin-approval-override
Home-Network:feat/quicksync-via-device-plugin
Home-Network:bugfix/arr-to-plex
Home-Network:feat/oauth2-proxy-api-route-per-app
Home-Network:feat/intel-gpu-device-plugin
Home-Network:feat/oauth2-proxy-auth-failure-visible
Home-Network:fix/render-selftest-runs-in-gate
Home-Network:feat/plex-quicksync
Home-Network:feat/sd-hardware-capability
Home-Network:fix/jackett-oauth2-proxy-session
Home-Network:feat/node-health-render-device
Home-Network:fix/oauth2-proxy-cookie-collision-fleet
Home-Network:fix/flux-deploy-notification-inhibited
Home-Network:feat/flux-deploy-notifications
Home-Network:feat/conformance-job-template
Home-Network:feat/conformance-trigger-kubeconfig
Home-Network:feat/conformance-runner-image
Home-Network:fix/crafty-oauth2-proxy-signin
Home-Network:chore/decisions-log-conflict-free
Home-Network:fix/crafty-bedrock-19132
Home-Network:fix/gitea-settings-comment-names-impossible-secret
Home-Network:feat/ci-is-the-approver
Home-Network:fix/kyverno-policy-was-never-applied
Home-Network:docs/handoff-2026-09-29
Home-Network:fix/secret-name-and-require-gitea-settings
Home-Network:feat/conformance-trigger-admission-boundary
Home-Network:fix/cluster-available-would-fake-a-green
Home-Network:feat/gitea-settings-drift-check
Home-Network:fix/gitea-admins-could-override-the-gate
Home-Network:docs/close-out-ci-hardening
Home-Network:docs/ci-reality-vs-phase-0
Home-Network:docs/runbooks-pr-flow
Home-Network:fix/dind-native-sidecar
Home-Network:fix/gate-push-trigger-matches-feat-prefix
Home-Network:feat/plex-claim-token-013124
Home-Network:fix/conformance-context-is-fail-open
Home-Network:docs/ci-delivery-flow-for-agents
Home-Network:feat/plex-claim-sops-secret
Home-Network:feat/prod-hardening
Home-Network:prod/deliver-fixes
Home-Network:docs/memattr-6-12-backport
Home-Network:migration/dns-apex-inversion
Home-Network:feat/prod-memattr-and-nodes
Home-Network:docs/node2-memory-refine
Home-Network:feat/prod-node-2
Home-Network:feat/r-state-03-proven
Home-Network:feat/ledger-section-parsing
Home-Network:feat/conformance-run-ledger
Home-Network:chore/cilium-split-merge2
Home-Network:feat/cilium-own-kustomization
Home-Network:docs/poststart-incident
Home-Network:fix/poststart-exit-status
Home-Network:fix/strict-postbuild-substitutions
Home-Network:docs/phase-7-open-prod-node-1
Home-Network:rescued/fix/act-runner-dind-readiness
Home-Network:rescued/fix/node-dns-resilient-upstream
Home-Network:docs/reconcile-with-reality
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #97.
Source-comment audit — recommended changes (read-only; no source file touched)
The audit you asked for is in one new file:
decisions/2026-10-31-source-comment-audit.md.git diff --statagainstmainis exactly one added file and nothing else. Every findingcites
path:line-rangeand is checkable offline by opening that line.Your premise holds — with one number worth pricing in
I found ~420 candidate hits across ~190 files, so the "massive amounts" reading is right.
But of the 55 findings I judged in detail, 22 are genuinely historical and 32 are
load-bearing — phrased as history, yet the only record of a current non-obvious
constraint. Those get a rewrite, not a deletion. A mechanical "delete the history" sweep
would strip real constraints, which is the main reason I'd keep the pruning per-directory
and individually rejectable.
Counts
platform/kyverno/**)infra/gitea/**)conformance/(excl.runs/)clusters/ci/catalog/.gitea/bootstrap/platform-config/apps/vms/apps/wave-*conformance/runs/runbooks/This is a sample, not an exhaustive inventory — your brief capped it at ~50 findings and
I'd rather say so than pad. Fully covered:
.gitea/,bootstrap/,platform-config/,apps/vms/. Sampled:platform/,infra/,conformance/,clusters/,ci/,catalog/.Roughly 365 candidate hits remain unexamined (candidate ≠ finding — precision on what I
read was under half, so the real residual is smaller, but it is still in the low hundreds).
29 of the 55 findings sit on sensitive paths, so about half this work needs your review
no matter how cosmetic the diff is.
Three things I found that change how the pruning must be done
1.
apps/wave-0/1/2are generated — do not hand-edit comments there. They're goldensfrom
catalog/render.py, andci/render-golden.sh:136-150byte-compares every one. Anyhand-edit is a hard gate FAIL. The 15 candidate hits there are copies of comments whose
source is
catalog/*.yaml(e.g.apps/wave-0/gitea.yaml:130is the rendered form ofcatalog/gitea.yaml:100). Fix the catalog source and re-render.2. A dangling pointer, replicated across 18 files. 18 files cite
DECISIONS-LOG: "Headlamp gating stall"as their rationale — and no such entry exists:grep -ci "gating stall" DECISIONS-LOG.md→ 0, and it's nowhere indecisions/either.This is the audit's warning about its own remedy: "replace the narrative with a pointer" only
helps if the target exists.
decisions/<file>.mdis checkable;DECISIONS-LOG: "<title>"isnot. Your call: write one real
decisions/entry for the leaf-gating lesson and repointall 18, or drop the citations. Worth doing before the per-directory PRs so they don't each
re-litigate it. (Nothing in my report recommends a pointer target I didn't confirm exists.)
3.
conformance/runs/*/run.log(18 files) are archived evidence, not source — thecomments in them are copies of test bodies as they stood at run time. I excluded them;
please confirm you agree.
The clearest examples
platform/crafty/service-l4.yaml:33-91— 58 lines of "CORRECTED 2026-09-14 after an 8-DAYLAN OUTAGE… this file used to say
Local". Load-bearing → rewrite: keep "Cilium's L2announcer isn't backend-aware", "SNAT loses the client IP so use
/bannot/ban-ip" and"
clustersubsumesremote-node, do NOT 'fix' the CNP". Drop the outage story.apps/vms/unifi/50-service-l4.yaml:27-78is its ~52-line twin.ci/decisions-log.sh:5-23— 19 lines reproducing the four-PR conflict table verbatimfrom
decisions/README.md:9-30, which the comment itself already cites. Replace withthe pointer it already has.
catalog/qbittorrent.yaml:7-12— "DELIVERED 2026-09-12 (the deferral below is CLOSED;kept for the record)". Self-describes as exactly what you're objecting to. Delete.
clusters/prod/kustomization.yaml:335-351— three completed, unrepeatable DNS flipprerequisites ("dev's 18 A records released", "18 legacy TXT entries deleted by hand").
Rewrite, keeping only the still-true note about the zone's wildcards.
catalog/qbittorrent.yaml:141-151— "It USED to be a doubled-dollar expansion… thatMISDIAGNOSIS is preserved in this service's own marker log at 2026-09-13T05:35Z".
Rewrite to "PORT is a literal; a literal cannot be mangled by envsubst" — the war
story is already preserved where the comment says it is.
platform/longhorn/helmrelease.yaml:249-254— "CORRECTION, re-measured later the sameday: the line originally recorded here read…". Delete; the correct reading is three
lines above it.
conformance/.../bulk-tier-distinct-from-replicated/check.sh:447— the same "It used toassert …
ci/l0.shcarried a hand-written UNCONDITIONAL stage" paragraph is duplicatedverbatim in 3 check.sh files. One small PR, identical edit ×3.
infra/plex/claim-ship.sh:29-32— "Branch prefix is now cosmetic. It used to matter…".Delete; the live trigger set is already in
.gitea/workflows/gate.ymlandCLAUDE.md§4.apps/vms/unifi/30-virtualmachine.yaml:119# legacy Network UI (still served)—"legacy" is the vendor's own name for a port that still serves. Keep. Same for
catalog/jackett.yaml:73, a dated version floor.catalog/pihole.yaml:210and:218are alreadyreduced to
see decisions/2026-10-04-pihole-multi-replica.md/-pihole-declare-state.md.That's the shape I'd converge everything on.
Proposed PR order — cheapest and least sensitive first
catalog/+ re-renderapps/wave-*(7, not sensitive) — best value: also fixes thegenerated copies.
platform/excl.kyverno/**(9, not sensitive) — biggest residual; I'd split it bycomponent into 2–3 PRs.
infra/excl.gitea/**(8, not sensitive).apps/vms/(2, not sensitive) — do straight afterplatform/crafty/service-l4.yaml.platform-config/kustomization.yaml(3, sensitive) — one file, three edits: thesmallest possible sensitive-path review.
bootstrap/(3, sensitive)..gitea/(5, sensitive) — keepgate.yml:118-123in its own commit; it documents alive, deliberate tolerance-widening and reads like a behaviour change if buried.
ci/→clusters/→conformance/(6 + 7 + 5, all sensitive) — last, becauseci/edits touch the thing doing the approving.
Steps 1–4 are 26 findings that can merge on a green gate alone.
Two things I'm not deciding for you
ci/tests/*.test.shheaders (5 files) say things like "this suite exists becauseci/gate.shused to set BLOCK=1 for a FAILED stage but…". For a regression test, theregression it guards is arguably the test's subject, not fluff. Calling these historical
would strip the only record of what each assertion is for. Your ruling.
README.mdprose (platform/vpn-egress/README.md:91,platform/crafty/README.md:52,infra/devcontainer/README.md:126,infra/gitea/README.md:253) — documentation, not sourcecomments, so arguably already where you want narrative to live. Not audited as findings.
Gate
./ci/gate.sh→ rc 3 (UNDETERMINED), with "Stages that did not run:spec-immutability gitea-settings" — the two expected skips per
CLAUDE.md§3(the sibling spec repo isn't reachable from the cluster, and I deliberately hold no
SETTINGS_API_TOKEN). Nothing failed. Green stages:decisions-log,lint,l0,render-golden,l1,approval-policy. Not a pass — I'm not rounding rc 3 up.One note on the gate log: it also prints "TOUCHED-REQUIREMENT SET NOT DETERMINABLE
(on-base) — HEAD is not ahead of
origin/main". That's because I run before the commitexists; it should resolve once the branch is pushed and the PR gate runs with real branch
commits. Worth a glance on the PR run rather than assuming.
What I did not verify, and what I need from you
kubectlcannot run here. No behaviour changed, so there's nothing to measure — but italso means every factual claim quoted inside the comments I audited (lease holders,
Longhorn series counts, the NFS address, the k3s version) is unverified by me. I
classified comments by what they talk about, not by whether their measurements still hold.
Any rewrite that restates one as current fact should re-measure first.
spec-immutabilityskipped).rationale written confidently in the present tense is invisible to it — and that's the
most dangerous category. A complete audit needs a reader per directory, not a grep.
load-bearing residue; whoever prunes must confirm it's still true.
apps/wave-*,conformance/runs/); (b) rule onthe
ci/tests/and README groups above; (c) decide the dangling-pointer fix (newdecisions/entry vs. drop the citations); (d) pick which directories from the order aboveyou want briefed first. Your original calibration examples would still sharpen the
historical/load-bearing line if you have them.
Nothing here traces to an
R-*requirement — housekeeping, as you framed it.Gate run inside the worker (the pinned toolbox, on this exact commit, before the
branch was pushed): exit
3, stages that did not run:spec-immutability gitea-settings.That is the worker's own run, not this pull request's CI run — read the check on this
pull request for that. A green tick is not proof anything ran; read what executed.
Opened by the PM agent from issue #97. It does not merge its own pull requests.
🤖 Generated with Claude Code
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.