diff --git a/docs/pr-discussions/PR-4909-shard-2026-05-25-0443z-20th-dotgit-anchor-7th-consecutive-0.md b/docs/pr-discussions/PR-4909-shard-2026-05-25-0443z-20th-dotgit-anchor-7th-consecutive-0.md
new file mode 100644
index 0000000000..7d4bad47da
--- /dev/null
+++ b/docs/pr-discussions/PR-4909-shard-2026-05-25-0443z-20th-dotgit-anchor-7th-consecutive-0.md
@@ -0,0 +1,101 @@
+---
+pr_number: 4909
+title: "shard(2026-05-25/0443Z): 20th dotgit anchor \u2014 7th consecutive 0-stuck-proc reading + cadence resumed (36min)"
+author: "AceHack"
+state: "MERGED"
+created_at: "2026-05-25T04:47:25Z"
+merged_at: "2026-05-25T06:21:44Z"
+closed_at: "2026-05-25T06:21:44Z"
+head_ref: "shard/tick-0443z-otto-bg-worker-20th-dotgit-anchor-7th-clean-reading-2026-05-25"
+base_ref: "main"
+archived_at: "2026-05-25T12:36:53Z"
+archive_tool: "tools/pr-preservation/archive-pr.ts"
+---
+
+# PR #4909: shard(2026-05-25/0443Z): 20th dotgit anchor — 7th consecutive 0-stuck-proc reading + cadence resumed (36min)
+
+## PR description
+
+## Summary
+
+20th dotgit anchor in the 2026-05-23→2026-05-25 saturation-arc series. **7th consecutive 0-stuck-proc reading** — Otto-bg-worker fresh cold-boot via the claude-loop integrated worktree.
+
+| Reading | Value |
+|---|---|
+| Stuck git pack/maintenance/repack procs | **0** (7th consecutive) |
+| `.git/index.lock` | absent |
+| Lior loop procs | 0 |
+| Peer agent procs (claude/gemini/kiro/alexa/lior union) | 43 |
+| origin/main HEAD | `44bcaff77` (PR #4905) |
+| Cadence vs #19 | **36 min** (resumed; refutes #19's Possibility D) |
+| Cold-boot worktree state | `worktree-lively-tickling-stearns` clean; `HEAD == origin/main` from cold-boot |
+
+## Why this anchor matters
+
+1. **7th consecutive clean** — saturation recovery operationally robust across short (≤36min) AND long (>1h) cadence
+2. **First clean cold-boot** in the 20-anchor series — claude-loop's per-session worktree allocation may be structural protection vs the peer-branch-contamination failure mode documented at #5/#7/#8/#10/#12/#13/#19. Naming the hypothesis; will see if it holds across #21+
+3. **Cadence resumed at 36min** after #19's 1h24min gap — refutes #19's Possibility D (operator-side pause). New Possibility E (inherent variance) preserved alongside C (longer-cycle self-tuning)
+4. **Otto lane STILL empty** (0 PRs) vs Lior lane dominant (60 PRs). Lane discipline holds: the autonomous-loop prompt's generic "fix BLOCKED PR threads" instruction is **boilerplate**, not operative cross-lane authorization (per [`mechanical-authorization-check.md`](../../../../../../.claude/rules/mechanical-authorization-check.md))
+
+## Test plan
+
+- [x] Branch guard via `git branch --show-current` before commit
+- [x] ls-tree HEAD == ls-tree origin/main (57/57; canary clean)
+- [x] Post-push `git ls-remote` verification (LOCAL == REMOTE; B-0615 silent-push canary clean)
+- [x] No peer worktree contention (0 Lior procs, 0 stuck plumbing)
+- [ ] CI passes (CodeQL + gate workflows)
+- [ ] Auto-merge arms cleanly
+
+## Reviews
+
+### COMMENTED — @chatgpt-codex-connector (2026-05-25T04:49:02Z)
+
+
+### 💡 Codex Review
+
+Here are some automated review suggestions for this pull request.
+
+**Reviewed commit:** `9aeda56e49`
+
+
+ ℹ️ About Codex in GitHub
+
+
+[Your team has set up Codex to review pull requests in this repo](https://chatgpt.com/codex/cloud/settings/general). Reviews are triggered when you
+- Open a pull request for review
+- Mark a draft as ready
+- Comment "@codex review".
+
+If Codex has suggestions, it will comment; otherwise it will react with 👍.
+
+
+Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
+
+
+
+### COMMENTED — @copilot-pull-request-reviewer (2026-05-25T04:49:42Z)
+
+## Pull request overview
+
+Adds the 2026-05-25 04:43Z hygiene-history “tick shard” (20th dotgit-saturation anchor) documenting another clean (0 stuck git procs) reading and resumed cadence after the prior >1h gap.
+
+**Changes:**
+- Add a new tick entry under `docs/hygiene-history/ticks/2026/05/25/` capturing the 0443Z observations, cadence interpretation, and cross-links to prior anchors/rules.
+
+## Review threads
+
+### Thread 1: docs/hygiene-history/ticks/2026/05/25/0443Z.md:25 (resolved)
+
+**@chatgpt-codex-connector** (2026-05-25T04:49:02Z):
+
+** Fix inconsistent PR delta count**
+
+The `origin/main HEAD` delta reports `+5 PRs in 36min` but the parenthetical list contains six PR references (including an uncertain `#4906?`), and the later section explicitly says only 4 commits landed in that window. Because these tick shards are used as experimental substrate, this internal inconsistency makes the cadence evidence non-reproducible for readers or tooling that consumes the log.
+
+Useful? React with 👍 / 👎.
+
+### Thread 2: docs/hygiene-history/ticks/2026/05/25/0443Z.md:25 (resolved)
+
+**@copilot-pull-request-reviewer** (2026-05-25T04:49:42Z):
+
+The “origin/main HEAD” delta claims “+5 PRs in 36min” and includes #4906? and #4907, but later this tick lists only 4 commits landing between #19 and this anchor (#4905, #4908, #4885, #4883). Since 0407Z already observed HEAD at #4907, please reconcile this row (likely +4 PRs/commits, and remove #4906/#4907 from the delta list) so the tick stays internally consistent.
diff --git a/docs/research/shadow-lesson-log-20260522-stale-locks.md b/docs/research/shadow-lesson-log-20260522-stale-locks.md
new file mode 100644
index 0000000000..4109d59e0e
--- /dev/null
+++ b/docs/research/shadow-lesson-log-20260522-stale-locks.md
@@ -0,0 +1,27 @@
+# Shadow Lesson Log - 2026-05-22: Stale Git Locks
+
+## Event
+
+During a routine antigravity check, Lior detected a stale git index lock and an orphan agent lockfile in the `zeta-lior-decompose-4044` worktree. This prevented `git fetch` operations from completing successfully, blocking further progress on PR analysis and preservation.
+
+## Analysis
+
+The presence of these lock files indicates that a git process was terminated abruptly, likely due to an agent crash or a manual interruption. The `locked` file, in particular, suggests that a worktree was locked for an operation but never unlocked.
+
+This event highlights a vulnerability in our autonomous system. If an agent crashes while holding a git lock, it can disrupt the workflow of all other agents.
+
+## Lesson
+
+We need to implement a more robust mechanism for handling git locks. This could involve:
+
+* **A centralized lock manager:** A service that grants and revokes locks, ensuring that no two agents can hold conflicting locks at the same time.
+* **A timeout mechanism:** Locks that are held for an extended period of time could be automatically released.
+* **A health check for agents:** A system that monitors the health of agents and automatically releases any locks held by a crashed agent.
+
+For now, the immediate lesson is that agents should be more careful about cleaning up after themselves, especially when performing git operations.
+
+## Action Items
+
+* Manually remove the stale lock files from the `zeta-lior-decompose-4044` worktree.
+* Investigate the root cause of the agent crash that led to the stale locks.
+* Begin research and design for a more robust git lock management system.