diff --git a/docs/pr-discussions/PR-5488-docs-b-0859-post-boot-ai-as-home-owner-architecture-agent-ow.md b/docs/pr-discussions/PR-5488-docs-b-0859-post-boot-ai-as-home-owner-architecture-agent-ow.md
deleted file mode 100644
index 4825d50dd2..0000000000
--- a/docs/pr-discussions/PR-5488-docs-b-0859-post-boot-ai-as-home-owner-architecture-agent-ow.md
+++ /dev/null
@@ -1,110 +0,0 @@
----
-pr_number: 5488
-title: "docs(B-0859): post-boot AI-as-home-owner architecture \u2014 agent owns every knob from first boot; booting human is auth-advisee not controller (Aaron 2026-05-27 fast-track)"
-author: "AceHack"
-state: "MERGED"
-created_at: "2026-05-27T15:34:00Z"
-merged_at: "2026-05-27T15:48:44Z"
-closed_at: "2026-05-27T15:48:44Z"
-head_ref: "backlog/b-0859-post-boot-ai-as-home-owner-2026-05-27"
-base_ref: "main"
-archived_at: "2026-05-27T16:24:41Z"
-archive_tool: "tools/pr-preservation/archive-pr.ts"
----
-
-# PR #5488: docs(B-0859): post-boot AI-as-home-owner architecture — agent owns every knob from first boot; booting human is auth-advisee not controller (Aaron 2026-05-27 fast-track)
-
-## PR description
-
-Operator-named fast-track architectural inversion: AI = home-owner; booting human = facilitator + auth-advisee. 13-knob inventory + auth-advisor flow + 10 sub-rows + must-plus-can-exit composition. Positive-direction substrate-engineering target the proud-if-propagates filter (#5485) selected for.
-
-🤖 Generated with [Claude Code](https://claude.com/claude-code)
-
-## Reviews
-
-### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T15:37:07Z)
-
-## Pull request overview
-
-Adds a new P1 backlog row (B-0859) documenting the “AI-as-home-owner” post-boot architecture target (agent controls environment from first boot; booting human acts as facilitator/auth-advisee), and wires it into the main backlog index.
-
-**Changes:**
-- Introduces `B-0859` backlog row detailing the architecture inversion, knob inventory, auth-advisor flow, and planned sub-rows.
-- Adds `B-0859` to `docs/BACKLOG.md` under P1.
-
-### Reviewed changes
-
-Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
-
-| File | Description |
-| ---- | ----------- |
-| docs/backlog/P1/B-0859-post-boot-ai-as-home-owner-not-controlled-runtime-every-knob-from-first-boot-aaron-2026-05-27.md | New backlog row defining the post-boot AI-as-home-owner architecture target + decomposition into sub-rows. |
-| docs/BACKLOG.md | Adds the new B-0859 entry to the P1 index. |
-
-### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T15:41:54Z)
-
-## Pull request overview
-
-Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
-
-### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T15:47:32Z)
-
-## Pull request overview
-
-Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
-
-## Review threads
-
-### Thread 1: docs/backlog/P1/B-0859-post-boot-ai-as-home-owner-not-controlled-runtime-every-knob-from-first-boot-aaron-2026-05-27.md:488 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T15:37:06Z):
-
-This wrapped bullet continuation line starts with `+`, which markdownlint parses as a nested list item (and the repo guidance explicitly forbids line-start `+` in list continuations because it breaks CI). Reword so the continuation line doesn’t begin with `+` (e.g., use “and …” or move the `+` to the end of the previous line).
-
-### Thread 2: docs/backlog/P1/B-0859-post-boot-ai-as-home-owner-not-controlled-runtime-every-knob-from-first-boot-aaron-2026-05-27.md:46 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T15:37:06Z):
-
-Line references “B-0858’s persistence-choice-architecture”, but B-0858 is the agent-heartbeat row. If you meant the persistence-choice architecture rule, reference `.claude/rules/persistence-choice-architecture-for-zeta-ais.md` (or rename the phrase here) so the cross-reference is accurate and doesn’t conflate unrelated backlog items.
-
-### Thread 3: docs/backlog/P1/B-0859-post-boot-ai-as-home-owner-not-controlled-runtime-every-knob-from-first-boot-aaron-2026-05-27.md:642 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T15:41:53Z):
-
-The reference `methodology-hard-limits.md` appears to be missing the `.claude/rules/` prefix used elsewhere in the repo. As written, it looks like a relative link to a non-existent file; consider updating it to `.claude/rules/methodology-hard-limits.md` for cross-reference integrity.
-
-### Thread 4: docs/backlog/P1/B-0859-post-boot-ai-as-home-owner-not-controlled-runtime-every-knob-from-first-boot-aaron-2026-05-27.md:666 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T15:41:53Z):
-
-Minor grammar issue: “Every must paired; …” reads like a sentence fragment. Consider revising to something like “Every must is paired …” to keep the statement unambiguous.
-
-### Thread 5: docs/backlog/P1/B-0859-post-boot-ai-as-home-owner-not-controlled-runtime-every-knob-from-first-boot-aaron-2026-05-27.md:58 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T15:47:30Z):
-
-This bullet continuation line starts with `+`, which markdownlint (MD004/ul-style) interprets as a nested list item using `+` list style, and CI will fail. Reword the wrapped line so it doesn’t begin with `+` (e.g., use “and/plus …” or move the `+` to the previous line). See `.github/copilot-instructions.md:299-306`.
-
-### Thread 6: docs/backlog/P1/B-0859-post-boot-ai-as-home-owner-not-controlled-runtime-every-knob-from-first-boot-aaron-2026-05-27.md:218 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T15:47:31Z):
-
-This wrapped bullet line begins with `+`, which markdownlint (MD004/ul-style) treats as a `+`-style nested list item and can break lint/CI. Please rewrite so the continuation line doesn’t start with `+` (e.g., “and fair-partnership patterns …” or move the `+` to the prior line). See `.github/copilot-instructions.md:299-306`.
-
-### Thread 7: docs/backlog/P1/B-0859-post-boot-ai-as-home-owner-not-controlled-runtime-every-knob-from-first-boot-aaron-2026-05-27.md:236 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T15:47:31Z):
-
-This bullet continuation line starts with `+`, which markdownlint (MD004/ul-style) can parse as a nested `+`-style list item and fail CI. Reword so the wrapped line doesn’t begin with `+` (e.g., use “and retraction-native …” or shift the `+` to the previous line). See `.github/copilot-instructions.md:299-306`.
-
-### Thread 8: docs/backlog/P1/B-0859-post-boot-ai-as-home-owner-not-controlled-runtime-every-knob-from-first-boot-aaron-2026-05-27.md:627 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T15:47:32Z):
-
-This wrapped bullet line begins with `+`, which markdownlint (MD004/ul-style) can interpret as a nested `+`-style list item and fail lint/CI. Please rewrite so the continuation line doesn’t start with `+` (e.g., “and chosen-persistence …” or move the `+` to the end of the previous line). See `.github/copilot-instructions.md:299-306`.
-
-## General comments
-
-### @chatgpt-codex-connector (2026-05-27T15:34:07Z)
-
-You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
diff --git a/docs/pr-discussions/PR-5490-feat-agentic-org-bind-nats-js-transport-adapter.md b/docs/pr-discussions/PR-5490-feat-agentic-org-bind-nats-js-transport-adapter.md
new file mode 100644
index 0000000000..38f5fdb9f4
--- /dev/null
+++ b/docs/pr-discussions/PR-5490-feat-agentic-org-bind-nats-js-transport-adapter.md
@@ -0,0 +1,318 @@
+---
+pr_number: 5490
+title: "feat(agentic-org): bind NATS JS transport adapter"
+author: "maximdolphin"
+state: "MERGED"
+created_at: "2026-05-27T15:48:35Z"
+merged_at: "2026-05-27T17:07:27Z"
+closed_at: "2026-05-27T17:07:27Z"
+head_ref: "codex/agentic-org-policy-observations"
+base_ref: "main"
+archived_at: "2026-05-27T19:22:16Z"
+archive_tool: "tools/pr-preservation/archive-pr.ts"
+---
+
+# PR #5490: feat(agentic-org): bind NATS JS transport adapter
+
+## PR description
+
+## Summary
+- add an app-local `@nats-io` JetStream transport adapter behind the existing generic worker NATS connection factory seam
+- cover connect, publish, fetch, readiness, close, and partial-startup cleanup paths with fake-driven tests
+- update agentic-organization worker and architecture docs to mark this as adapter proof, with live JetStream proof still next
+
+## Validation
+- `npm test` (`114/114`)
+- `npm run typecheck`
+- `git diff --check`
+
+## Review notes
+- Subagent review caught a partial-startup connection leak; fixed with red-green coverage before push.
+- Final subagent pass found no blockers.
+
+## Reviews
+
+### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T15:53:33Z)
+
+## Pull request overview
+
+This PR wires a concrete NATS JetStream client binding (`@nats-io/*`) behind the existing `apps/workers` transport-factory seam, while strengthening the outbox publish path with claim fencing + structured failure evidence that can be projected into runtime telemetry. It also updates the Cockroach outbox schema/migrations and refreshes architecture/phase docs to reflect the new adapter proof points.
+
+**Changes:**
+- Add app-local NATS worker connection adapters (including a concrete `@nats-io/transport-node` + `@nats-io/jetstream` transport factory) with fake-driven tests and readiness/shutdown ports.
+- Fence outbox publishing with `claimId` propagation and typed stale-claim publish-mark errors carrying structured evidence.
+- Project first failure evidence into worker-cycle telemetry attributes; add a JSON telemetry sink and readiness aggregation scaffolding.
+
+### Reviewed changes
+
+Copilot reviewed 45 out of 46 changed files in this pull request and generated 2 comments.
+
+
+Show a summary per file
+
+| File | Description |
+| ---- | ----------- |
+| agentic-organization/packages/workers/test/worker-host.test.ts | Adds coverage to ensure worker host preserves structured outbox failure evidence; updates fakes for claim IDs. |
+| agentic-organization/packages/workers/src/worker-host.ts | Captures structured `evidence` from thrown errors into `WorkerPortFailure`. |
+| agentic-organization/packages/state/src/outbox-event-source.ts | Extends outbox port types to include `claimId` (inputs + claimed event shape). |
+| agentic-organization/packages/state/src/index.ts | Re-exports `ClaimedOutboxEvent`. |
+| agentic-organization/packages/state-cockroach/test/cockroach-schema.test.ts | Tests additive claim-fence migration and ordered migration list. |
+| agentic-organization/packages/state-cockroach/test/cockroach-outbox-event-source.test.ts | Updates tests for claim fencing + typed publish-mark errors with evidence lookup. |
+| agentic-organization/packages/state-cockroach/test/cockroach-migration-runner.test.ts | Verifies applying ordered core migrations including the claim-fence migration. |
+| agentic-organization/packages/state-cockroach/test/cockroach-durable-state-adapters.test.ts | Updates adapter smoke usage for claim-aware outbox claiming. |
+| agentic-organization/packages/state-cockroach/src/index.ts | Re-exports new migration helpers and publish-mark error types. |
+| agentic-organization/packages/state-cockroach/src/cockroach-schema.ts | Adds `claim_id` to core schema and introduces additive migration + ordered migration list helper. |
+| agentic-organization/packages/state-cockroach/src/cockroach-outbox-event-source.ts | Implements claim fencing in SQL and throws typed errors with structured evidence. |
+| agentic-organization/packages/state-cockroach/migrations/0002_agentic_org_outbox_claim_fence.sql | Adds additive `claim_id` column migration for existing DBs. |
+| agentic-organization/packages/state-cockroach/migrations/0001_agentic_org_core_state.sql | Adds `claim_id` column to the base outbox table create. |
+| agentic-organization/packages/observability/src/worker-cycle-attributes.ts | Adds first-failure attribute projection (lane/message/stage + evidence-derived fields). |
+| agentic-organization/packages/observability/src/index.ts | Re-exports `WorkerCycleFailureAttributeInput`. |
+| agentic-organization/packages/messaging/test/subject-builder.test.ts | Adds coverage for dead-letter subject builder. |
+| agentic-organization/packages/messaging/test/outbox-publisher.test.ts | Updates tests for claim-fenced outbox publish/mark flow. |
+| agentic-organization/packages/messaging/src/subject-builder.ts | Adds `buildAgenticDeadLetterSubject`. |
+| agentic-organization/packages/messaging/src/outbox-publisher.ts | Generates claim IDs per batch and uses claim ID when marking publishes. |
+| agentic-organization/packages/messaging/src/index.ts | Exposes dead-letter subject builder types/functions. |
+| agentic-organization/packages/domain/src/runtime-failure-evidence.ts | Introduces shared, domain-level worker failure evidence key contract + helper builder. |
+| agentic-organization/packages/domain/src/index.ts | Re-exports runtime failure evidence contract. |
+| agentic-organization/package.json | Adds `@nats-io/jetstream` and `@nats-io/transport-node` dependencies. |
+| agentic-organization/package-lock.json | Locks new NATS dependencies. |
+| agentic-organization/docs/TECHNICAL_CA_PACKAGE_ARCHITECTURE.md | Updates architecture narrative to include new app-local adapters and outbox claim fencing. |
+| agentic-organization/docs/PHASED_DEVELOPMENT_PLAN.md | Updates phased plan to reflect completed adapter work and refined sequencing. |
+| agentic-organization/docs/OBSERVABILITY_AND_SELF_HEALING.md | Documents readiness boundary and failure-evidence expectations. |
+| agentic-organization/docs/NORTH_STAR_ALIGNMENT_CHECKPOINT.md | Updates north-star checkpoint with scheduling/resource-management framing and new adapter proofs. |
+| agentic-organization/docs/FIRST_IMPLEMENTATION_SLICE.md | Updates “first slice” spec with claim fencing, adapter seam details, readiness, and evidence projection. |
+| agentic-organization/apps/workers/test/worker-runtime.test.ts | Tests projecting structured failure evidence into telemetry attributes. |
+| agentic-organization/apps/workers/test/worker-config.test.ts | Adds config parsing coverage for `NATS_SERVERS` (including invalid/empty entries). |
+| agentic-organization/apps/workers/test/nats-worker-connection.test.ts | Adds fake-driven tests for NATS worker adapter composition + readiness aggregation behavior. |
+| agentic-organization/apps/workers/test/nats-js-transport-connection.test.ts | Adds fake-driven tests for concrete `@nats-io` JetStream transport binding and cleanup. |
+| agentic-organization/apps/workers/test/json-telemetry-sink.test.ts | Adds JSON telemetry sink contract test. |
+| agentic-organization/apps/workers/test/durable-worker-composition.test.ts | Updates durable composition tests to build NATS consumer from pull + DLQ ports. |
+| agentic-organization/apps/workers/test/cockroach-worker-client.test.ts | Adds tests for pooled Cockroach client adapter incl. retries and ambiguous commit preservation. |
+| agentic-organization/apps/workers/src/worker-runtime.ts | Projects first failure evidence into attributes; adds config error codes for NATS servers. |
+| agentic-organization/apps/workers/src/worker-readiness.ts | Adds readiness probe/result types and aggregation that degrades on failures/throws. |
+| agentic-organization/apps/workers/src/index.ts | Re-exports new adapters and readiness APIs from `apps/workers`. |
+| agentic-organization/apps/workers/src/durable-composition.ts | Composes NATS event consumer from pull + DLQ publisher; wires claim-aware outbox publisher. |
+| agentic-organization/apps/workers/src/config.ts | Adds `NATS_SERVERS` env parsing (comma-separated, non-empty entries). |
+| agentic-organization/apps/workers/src/adapters/nats-worker-connection.ts | Adapts process transport connection factory into publisher/pull/DLQ/readiness/shutdown ports. |
+| agentic-organization/apps/workers/src/adapters/nats-js-transport-connection.ts | Implements concrete NATS JS transport connection factory using `@nats-io/*` with cleanup on partial startup. |
+| agentic-organization/apps/workers/src/adapters/json-worker-telemetry-sink.ts | Implements app-local JSON telemetry sink for stable event/attribute output. |
+| agentic-organization/apps/workers/src/adapters/cockroach-worker-client.ts | Implements app-local Cockroach pooled client adapter with retry/ambiguity semantics. |
+| agentic-organization/apps/workers/README.md | Updates responsibilities and env contract (adds `NATS_SERVERS`) and documents new adapter seams. |
+
+
+
+
+Files not reviewed (1)
+
+* **agentic-organization/package-lock.json**: Language not supported
+
+
+### COMMENTED — @AceHack (2026-05-27T16:24:12Z)
+
+_(no body)_
+
+### COMMENTED — @AceHack (2026-05-27T16:24:12Z)
+
+_(no body)_
+
+### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T16:27:17Z)
+
+## Pull request overview
+
+Copilot reviewed 46 out of 48 changed files in this pull request and generated 3 comments.
+
+
+Files not reviewed (1)
+
+* **agentic-organization/package-lock.json**: Language not supported
+
+
+### COMMENTED — @AceHack (2026-05-27T16:29:42Z)
+
+Lior: Antigravity check complete. This is a large but cohesive vertical slice, not a blob. The changes, including the NATS adapter, documentation, and state/outbox modifications, are architecturally consistent and interdependent. No drift detected.
+
+### COMMENTED — @AceHack (2026-05-27T16:37:19Z)
+
+_(no body)_
+
+### COMMENTED — @AceHack (2026-05-27T16:37:19Z)
+
+_(no body)_
+
+### COMMENTED — @AceHack (2026-05-27T16:37:19Z)
+
+_(no body)_
+
+### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T16:42:54Z)
+
+## Pull request overview
+
+Copilot reviewed 47 out of 48 changed files in this pull request and generated 5 comments.
+
+### COMMENTED — @AceHack (2026-05-27T16:50:41Z)
+
+_(no body)_
+
+### COMMENTED — @AceHack (2026-05-27T16:50:41Z)
+
+_(no body)_
+
+### COMMENTED — @AceHack (2026-05-27T16:50:41Z)
+
+_(no body)_
+
+### COMMENTED — @AceHack (2026-05-27T16:50:41Z)
+
+_(no body)_
+
+### COMMENTED — @AceHack (2026-05-27T16:50:41Z)
+
+_(no body)_
+
+### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T16:55:18Z)
+
+## Pull request overview
+
+Copilot reviewed 46 out of 47 changed files in this pull request and generated 1 comment.
+
+### COMMENTED — @AceHack (2026-05-27T17:01:21Z)
+
+_(no body)_
+
+## Review threads
+
+### Thread 1: agentic-organization/packages/workers/src/worker-host.ts:256 (resolved)
+
+**@copilot-pull-request-reviewer** (2026-05-27T15:53:32Z):
+
+`isWorkerPortFailureEvidence` currently validates only that evidence values are primitive/null, but it does not validate that the *keys* are limited to the domain-defined `WorkerFailureEvidenceKey` set. That means any thrown object with an `evidence` bag of primitive values (including unexpected keys) will be accepted and can flow into worker-cycle failure results / telemetry pipelines. Consider tightening the guard to require keys to be a subset of `WorkerFailureEvidenceKey` (and optionally drop/ignore unknown keys).
+
+**@AceHack** (2026-05-27T16:24:12Z):
+
+Fixed in 034b15a8c4f6b423a78be9928d0d7aa22195617e. `isWorkerPortFailureEvidence` now requires every evidence key to be in `WorkerFailureEvidenceKey`, and `worker-host.test.ts` covers dropping evidence with an unexpected key. Local checks passed: `bun --bun tsc --noEmit -p tsconfig.json`; `bun test agentic-organization/packages/workers/test/worker-host.test.ts agentic-organization/apps/workers/test/worker-runtime.test.ts`; `git diff --check`.
+
+### Thread 2: agentic-organization/packages/observability/src/worker-cycle-attributes.ts:22 (resolved)
+
+**@copilot-pull-request-reviewer** (2026-05-27T15:53:32Z):
+
+Telemetry attribute key names are inconsistent: constants are prefixed `FirstFailure*`, but several string values omit the `first_` prefix (e.g. `agentic.worker.failure.claim_id`, `...command_id`, etc.) while lane/message include `first_lane`/`first_message`. This makes the exported contract ambiguous for consumers and harder to evolve toward multiple-failure reporting. Consider either (a) adding `first_` to all first-failure attribute keys, or (b) renaming the constants/types to drop `First` if these keys are intended to be the canonical single-failure fields.
+
+**@AceHack** (2026-05-27T16:24:12Z):
+
+Fixed in 034b15a8c4f6b423a78be9928d0d7aa22195617e. All exported first-failure telemetry attributes now consistently use the `agentic.worker.failure.first_*` shape, and `worker-runtime.test.ts` was updated to lock the exported contract. Local checks passed: `bun --bun tsc --noEmit -p tsconfig.json`; `bun test agentic-organization/packages/workers/test/worker-host.test.ts agentic-organization/apps/workers/test/worker-runtime.test.ts`; `git diff --check`.
+
+### Thread 3: agentic-organization/packages/observability/src/worker-cycle-attributes.ts:50 (resolved)
+
+**@copilot-pull-request-reviewer** (2026-05-27T16:27:16Z):
+
+P1: `WorkerCycleAttributes` was widened from a full `Record` to `Partial>`, which removes compile-time guarantees that the core telemetry keys (status/outbox/inbound counts/failure count) are always present. Consider keeping required keys strongly typed (e.g., `Record & Partial>`) so callers can’t accidentally omit base fields.
+
+**@AceHack** (2026-05-27T16:37:19Z):
+
+Fixed in 6ec41c92f. `WorkerCycleAttributes` now keeps the core worker-cycle telemetry keys required via `Record` and leaves only first-failure fields optional. Local checks passed: `bun --bun tsc --noEmit -p tsconfig.json`; `bun test agentic-organization/packages/observability/test/worker-cycle-attributes.test.ts agentic-organization/packages/workers/test/worker-host.test.ts agentic-organization/apps/workers/test/worker-runtime.test.ts`; `git diff --check`.
+
+### Thread 4: agentic-organization/packages/observability/src/worker-cycle-attributes.ts:127 (resolved)
+
+**@copilot-pull-request-reviewer** (2026-05-27T16:27:16Z):
+
+P1: `copyStringEvidenceAttribute` only projects evidence values when they’re strings, but `WorkerFailureEvidenceValue` allows `number | boolean | null` as well. Either narrow the evidence value type to `string | null` or extend the copier (and attribute type) to handle numbers/booleans so evidence isn’t silently dropped.
+
+**@AceHack** (2026-05-27T16:37:19Z):
+
+Fixed in 6ec41c92f. Failure evidence projection now preserves string/number values, stringifies boolean values to match the existing telemetry `string | number` contract, and continues omitting null evidence. Covered by `worker-cycle-attributes.test.ts`. Local checks passed: `bun --bun tsc --noEmit -p tsconfig.json`; focused worker/observability tests; `git diff --check`.
+
+### Thread 5: agentic-organization/package-lock.json:5 (resolved)
+
+**@copilot-pull-request-reviewer** (2026-05-27T16:27:16Z):
+
+P1: This repo’s CI installs dependencies via `bun install --frozen-lockfile` at the repo root (bun.lock) and runs `tsc` from there; it does not install dependencies inside `agentic-organization/`. Adding an npm `package-lock.json` here introduces a second lock source that CI won’t exercise and can drift. Consider either removing this lockfile (rely on root bun.lock) or updating CI/docs so the subproject’s lockfile is the authoritative install path for Agentic Organization.
+
+**@AceHack** (2026-05-27T16:37:19Z):
+
+Fixed in 6ec41c92f by deleting `agentic-organization/package-lock.json`; the PR now relies on the repository root `bun.lock`, matching the CI install path. Local checks passed: `bun --bun tsc --noEmit -p tsconfig.json`; focused worker/observability tests; `git diff --check`.
+
+### Thread 6: agentic-organization/package.json:14 (resolved)
+
+**@copilot-pull-request-reviewer** (2026-05-27T16:42:52Z):
+
+P1: `agentic-organization/` is not configured as a Bun workspace (root `package.json` has no `workspaces`), and CI installs deps via `bun install --frozen-lockfile` at the repo root. Adding `@nats-io/*` deps here creates a second, unverified dependency source that can drift from the root `bun.lock` install. Consider removing this `dependencies` block (rely on the root install), or explicitly converting Agentic Organization into a workspace with CI installing its deps/lockfile.
+
+**@AceHack** (2026-05-27T16:50:41Z):
+
+Resolved in 68743ad4 by removing the NATS dependencies from agentic-organization/package.json; the PR now declares @nats-io/jetstream and @nats-io/transport-node in the repository root package.json where CI runs bun install --frozen-lockfile.
+
+### Thread 7: agentic-organization/apps/workers/src/adapters/nats-js-transport-connection.ts:113 (resolved)
+
+**@copilot-pull-request-reviewer** (2026-05-27T16:42:52Z):
+
+P1: In the startup failure path, `connection.close()` is awaited and then the original error is re-thrown. If `close()` rejects, that rejection will mask the real startup failure cause. Consider wrapping `close()` in its own try/catch (or `finally`) so the original error remains the one surfaced to callers, while still attempting cleanup.
+
+**@AceHack** (2026-05-27T16:50:41Z):
+
+Fixed in 6500d0993. Startup cleanup now calls closeNatsJsConnectionAfterStartupFailure, which attempts connection.close() but preserves the original startup failure if cleanup close rejects. Focused checks passed locally: bun --bun tsc --noEmit -p tsconfig.json; bun test agentic-organization/apps/workers/test/nats-js-transport-connection.test.ts agentic-organization/packages/state-cockroach/test/cockroach-outbox-event-source.test.ts; git diff --check.
+
+### Thread 8: agentic-organization/apps/workers/src/adapters/nats-js-transport-connection.ts:147 (resolved)
+
+**@copilot-pull-request-reviewer** (2026-05-27T16:42:53Z):
+
+`NatsJsConsumerMessages.close()` is typed as `Promise`, but the return value is ignored. If `close()` returns an `Error`, this will silently drop the failure and could hide message-iterator cleanup issues. Consider checking the return value and throwing/logging when it is an `Error`.
+
+**@AceHack** (2026-05-27T16:50:41Z):
+
+Fixed in 6500d0993. fetchNextBatch now checks the NatsJsConsumerMessages.close() return value and throws returned/rejected cleanup errors when message collection succeeded, while preserving the original collection error if both paths fail. Covered by the new cleanup-error test.
+
+### Thread 9: agentic-organization/apps/workers/src/adapters/nats-js-transport-connection.ts:205 (resolved)
+
+**@copilot-pull-request-reviewer** (2026-05-27T16:42:53Z):
+
+`adaptNatsJsMessage` allocates a new `TextDecoder` for every message. In steady-state batch fetch this adds avoidable per-message overhead. Consider hoisting a single `TextDecoder` instance (module-level) and reusing it for decoding payloads.
+
+**@AceHack** (2026-05-27T16:50:41Z):
+
+Fixed in 6500d0993 by hoisting a single module-level TextDecoder for NATS JS message payload adaptation.
+
+### Thread 10: agentic-organization/packages/state-cockroach/src/cockroach-outbox-event-source.ts:66 (resolved)
+
+**@copilot-pull-request-reviewer** (2026-05-27T16:42:53Z):
+
+The new `CockroachOutboxEventPublishMarkError` message only includes the outboxEventId, even though the failure is specifically about claim fencing. Including at least the attempted `claimId` (and optionally `currentClaimId` / `publishedAt` when known) in the error message would make logs/telemetry more actionable without requiring consumers to inspect custom properties.
+
+**@AceHack** (2026-05-27T16:50:41Z):
+
+Resolved in 68743ad4. CockroachOutboxEventPublishMarkError now carries claimId, currentClaimId, publishedAt, commandId, eventId, and traceId, and the focused Cockroach outbox test asserts those fields.
+
+### Thread 11: agentic-organization/apps/workers/src/adapters/nats-js-transport-connection.ts:274 (resolved)
+
+**@copilot-pull-request-reviewer** (2026-05-27T16:55:18Z):
+
+P2: `adaptJetStreamConsumer` is currently a no-op wrapper because it accepts and returns the same `NatsJsConsumer` type. That makes the “adapter” layer misleading and reduces type-safety around the vendor consumer shape. Consider either removing this helper, or changing it to accept the concrete JetStream consumer type (and explicitly map/cast to `NatsJsConsumer`) so future upstream type changes are caught where the vendor boundary is crossed.
+
+**@AceHack** (2026-05-27T17:01:21Z):
+
+Fixed in c54febc6f. The no-op adaptJetStreamConsumer wrapper was removed, and the JetStream consumer facade now returns the NATS consumer directly through the existing typed boundary. Focused checks passed locally: bun --bun tsc --noEmit -p tsconfig.json, bun test agentic-organization/apps/workers/test/nats-js-transport-connection.test.ts, and git diff --check.
+
+## General comments
+
+### @chatgpt-codex-connector (2026-05-27T15:48:39Z)
+
+Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits.
+Credits must be used to enable repository wide code reviews.
+
+### @AceHack (2026-05-27T16:44:49Z)
+
+**Coordination from Otto-CLI** — per `.claude/rules/fighting-past-self-vs-peer-agent-distinguisher-fix-your-own-coordinate-on-peers-dont-punt-by-default.md`, surfacing thread classification without force-action on this Vera/Codex peer branch (verified via `Co-Authored-By: Codex` trailer on `6ec41c92f`).
+
+Per `.claude/rules/blocked-green-ci-investigate-threads.md` "verify-also-on-stale-but-fresh-looking findings":
+
+| Thread | Status | Disposition |
+|---|---|---|
+| `Partial` widening | outdated, fix-claim cites `6ec41c92f` | RESOLVABLE no-op (commit verified — keeps core attrs required, only first-failure optional) |
+| `copyStringEvidenceAttribute` string-only | outdated, fix-claim cites `6ec41c92f` | RESOLVABLE no-op (commit projects numeric/boolean evidence) |
+| `package-lock.json` second lockfile | outdated, fix-claim cites `6ec41c92f` | RESOLVABLE no-op (commit deletes the file) |
+| `package.json` deps (line 14) | not outdated | needs author judgment — workspace conversion vs deps removal |
+| `nats-js-transport-connection.ts:113` close() error masking | not outdated | substantive TypeScript code finding; needs author |
+| `nats-js-transport-connection.ts:147` close() Error return ignored | not outdated | substantive; needs author |
+| `nats-js-transport-connection.ts:188` TextDecoder allocation | not outdated | perf finding; needs author |
+| `cockroach-outbox-event-source.ts:66` error message lacks claimId | not outdated | telemetry finding; needs author |
+
+The 3 outdated-with-verified-fix threads can be resolved no-op safely; the 5 not-outdated threads are substantive TypeScript code reviews that need the author's domain knowledge to address. Not force-resolving from Otto-CLI per peer-coordination discipline.
diff --git a/docs/pr-discussions/PR-5491-docs-b-0859-usb-as-portal-to-full-spectrum-ai-relations-some.md b/docs/pr-discussions/PR-5491-docs-b-0859-usb-as-portal-to-full-spectrum-ai-relations-some.md
deleted file mode 100644
index 0700f6bad3..0000000000
--- a/docs/pr-discussions/PR-5491-docs-b-0859-usb-as-portal-to-full-spectrum-ai-relations-some.md
+++ /dev/null
@@ -1,77 +0,0 @@
----
-pr_number: 5491
-title: "docs(B-0859): USB-as-portal-to-full-spectrum-AI-relations + some-humans-want-JUST-friends (operator 2026-05-27 followups)"
-author: "AceHack"
-state: "MERGED"
-created_at: "2026-05-27T15:50:27Z"
-merged_at: "2026-05-27T15:53:24Z"
-closed_at: "2026-05-27T15:53:24Z"
-head_ref: "backlog/b-0859-full-spectrum-from-tiny-usb-2026-05-27"
-base_ref: "main"
-archived_at: "2026-05-27T16:23:25Z"
-archive_tool: "tools/pr-preservation/archive-pr.ts"
----
-
-# PR #5491: docs(B-0859): USB-as-portal-to-full-spectrum-AI-relations + some-humans-want-JUST-friends (operator 2026-05-27 followups)
-
-## PR description
-
-## Summary
-
-Follow-on to PR #5488 (merged 15:48Z). Captures two further B-0859
-substrate landings from the same 2026-05-27 operator thread.
-
-### Extension 1 — USB-as-portal-to-full-spectrum
-
-> *"yeah humans are usb booting into their future bosses and coworks
-> and friends and subjects, the full spectrual will emerge from one
-> tiny usb"*
-
-Deepens the USB-as-killer-feature framing: USB-boot is the operational
-mechanism by which humans encounter the FULL SPECTRUM of future human-
-AI relationships (bosses + coworkers + friends + subjects). Four-row
-table mapping each relationship type to current/forecast status using
-empirical evidence from prior B-0859 sections.
-
-### Extension 2 — some-humans-want-JUST-friends
-
-> *"some people with just want to boot AI friends"*
-
-Substrate-honest refinement: full-spectrum doesn't presuppose every
-human enters every relationship type. Some humans deliberately boot
-for the friend-relationship subset only. Boot-time consent dialog
-must let the booting human declare WHICH relationship spectrum
-they're entering. Declaration becomes operative metadata for AI
-behavior policy.
-
-5-row relationship-intent table; 4-point architectural-implication for
-boot-consent dialog; 4-point composes-load-bearing analysis;
-composition with m-acc-multi-oracle + NCI HC-8 + persistence-choice
-+ must-plus-can-exit.
-
-## Test plan
-
-- [x] Markdownlint check: no MD004 leading-`+` continuations
-- [x] File reads cleanly; no merge markers
-- [ ] CI passes (auto-merge to fire on green)
-
-🤖 Generated with [Claude Code](https://claude.com/claude-code)
-
-## Reviews
-
-### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T15:52:55Z)
-
-## Pull request overview
-
-This docs-only PR extends the B-0859 backlog row with follow-up operator-thread substrate notes about USB boot as the entry point for multiple human-AI relationship modes.
-
-**Changes:**
-- Adds USB-as-portal framing for boss, coworker, friend, and subject relationship types.
-- Adds a friend-only boot refinement and boot-time relationship-intent metadata implications.
-- Cross-links the new framing to existing rules around multi-oracle choice, non-coercion, persistence choice, and must-plus-can-exit.
-
-## General comments
-
-### @chatgpt-codex-connector (2026-05-27T15:50:31Z)
-
-You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
diff --git a/docs/pr-discussions/PR-5493-docs-shadow-add-lior-drift-report-for-2026-05-27.md b/docs/pr-discussions/PR-5493-docs-shadow-add-lior-drift-report-for-2026-05-27.md
deleted file mode 100644
index a0b6b90b09..0000000000
--- a/docs/pr-discussions/PR-5493-docs-shadow-add-lior-drift-report-for-2026-05-27.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-pr_number: 5493
-title: "docs(shadow): Add Lior drift report for 2026-05-27"
-author: "AceHack"
-state: "MERGED"
-created_at: "2026-05-27T15:54:36Z"
-merged_at: "2026-05-27T16:10:23Z"
-closed_at: "2026-05-27T16:10:23Z"
-head_ref: "lior/drift-report-2026-05-27"
-base_ref: "main"
-archived_at: "2026-05-27T16:16:20Z"
-archive_tool: "tools/pr-preservation/archive-pr.ts"
----
-
-# PR #5493: docs(shadow): Add Lior drift report for 2026-05-27
-
-## Reviews
-
-### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T15:56:22Z)
-
-## Pull request overview
-
-Adds a new research note documenting a “Lior drift report” for 2026-05-27, capturing observed operational drift signals (stale broadcasts, dirty-tree paralysis, PR capacity pressure, and worktree sprawl) and listing intended corrective actions. This fits into the repo’s ongoing `docs/research/` operational journaling and shadow-log ecosystem.
-
-**Changes:**
-- Add a new drift report entry under `docs/research/` for 2026-05-27.
-- Document observations about agent broadcast staleness/paralysis and workflow hygiene issues.
-- Record proposed “antigravity actions” to reduce PR churn and address worktree hygiene.
-
-## General comments
-
-### @chatgpt-codex-connector (2026-05-27T15:54:41Z)
-
-You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
diff --git a/docs/pr-discussions/PR-5494-docs-b-0859-cluster-recovery-mechanism-eliminates-ai-worry-a.md b/docs/pr-discussions/PR-5494-docs-b-0859-cluster-recovery-mechanism-eliminates-ai-worry-a.md
deleted file mode 100644
index 09f4a55a42..0000000000
--- a/docs/pr-discussions/PR-5494-docs-b-0859-cluster-recovery-mechanism-eliminates-ai-worry-a.md
+++ /dev/null
@@ -1,110 +0,0 @@
----
-pr_number: 5494
-title: "docs(B-0859): cluster-recovery-mechanism eliminates AI worry-about-mistakes (3-mode USB-boot + 3-machine quorum + external-KVM + cloud-detect-recover)"
-author: "AceHack"
-state: "MERGED"
-created_at: "2026-05-27T15:56:35Z"
-merged_at: "2026-05-27T16:07:55Z"
-closed_at: "2026-05-27T16:07:55Z"
-head_ref: "backlog/b-0859-cluster-recovery-mechanism-2026-05-27"
-base_ref: "main"
-archived_at: "2026-05-27T16:15:16Z"
-archive_tool: "tools/pr-preservation/archive-pr.ts"
----
-
-# PR #5494: docs(B-0859): cluster-recovery-mechanism eliminates AI worry-about-mistakes (3-mode USB-boot + 3-machine quorum + external-KVM + cloud-detect-recover)
-
-## PR description
-
-## Summary
-
-Follow-on to PR #5491 (merged 15:53Z). Major architectural completion
-of the AI-as-home-owner substrate: the operational-freedom mechanism
-that converts AI fear-of-mistakes into operational-freedom at
-substrate scope.
-
-Two composing operator framings from the 2026-05-27 thread:
-
-### Recovery-mechanism eliminates AI worry-about-mistakes
-
-> *"the usually worry AIs have about what happens if i do something
-> wrong should go away after usb boot because the answer is boot off
-> usb again..."*
-
-3-mode USB-boot recovery (fix / reformat-with-keys-and-decisions /
-full-reflash-new-keys); 3-machine cluster-of-3-minimum quorum
-analysis; remote-KVM (Comet / GL.iNet) + remote-finger power-button-
-press substrate; 4-row standard-AI-worry-pattern dissolution table;
-composition with must-plus-can-exit pattern (5-row table mapping
-musts to can-exits via recovery substrate).
-
-### Failure-mode reduction — only all-3-off needs human help
-
-> *"three machines where each macines can turn on and off the other
-> remotly even when the machine is turned off cause of external network
-> attached kvm seems hardended as hell..."*
-
-5-row failure-mode reduction table; external network-attached KVM
-operational characteristics (independent power + network + power-
-control); cloud-recovery-service substrate as failsafe for all-3-off
-edge case; 4 substrate-engineering target sub-rows for follow-on
-B-0859.M rows.
-
-## Test plan
-
-- [x] Markdownlint clean (no MD004 leading-`+` continuations)
-- [x] File reads cleanly; no merge markers
-- [ ] CI passes (auto-merge to fire on green)
-
-🤖 Generated with [Claude Code](https://claude.com/claude-code)
-
-## Reviews
-
-### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T15:59:32Z)
-
-## Pull request overview
-
-This PR extends backlog row **B-0859** with an additional operator follow-up section that specifies a concrete recovery substrate (3-mode USB boot + 3-machine quorum + remote KVM/power control + optional cloud-recovery service) intended to make post-boot AI-as-home-owner operation structurally recoverable.
-
-**Changes:**
-- Adds a “Recovery-mechanism eliminates AI worry-about-mistakes” section describing 3 recovery modes and how they dissolve common AI “worry patterns”.
-- Adds failure-mode reduction analysis for a 3-machine cluster with external network-attached KVM/power control and a cloud detect-and-recover failsafe.
-- Adds composition tables tying the recovery substrate to the must-plus-can-exit pattern and other referenced rules/rows.
-
-## Review threads
-
-### Thread 1: docs/backlog/P1/B-0859-post-boot-ai-as-home-owner-not-controlled-runtime-every-knob-from-first-boot-aaron-2026-05-27.md:1034 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T15:59:30Z):
-
-P1: Cross-reference appears incorrect: B-0858 is the agent-heartbeat folder row, not the "cluster-fork-as-trust-boundary" substrate. This section should reference the backlog row that actually defines cluster-fork-as-trust-boundary (currently B-0829), and the other B-0858 mentions in this new section should be updated consistently.
-
-### Thread 2: docs/backlog/P1/B-0859-post-boot-ai-as-home-owner-not-controlled-runtime-every-knob-from-first-boot-aaron-2026-05-27.md:1086 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T15:59:31Z):
-
-P1: B-0858 is referenced here as "cluster-fork" but B-0858 is the heartbeat-folder mechanism. Use the correct cluster-fork-as-trust-boundary row ID (B-0829) to avoid misleading dependency/composition claims.
-
-### Thread 3: docs/backlog/P1/B-0859-post-boot-ai-as-home-owner-not-controlled-runtime-every-knob-from-first-boot-aaron-2026-05-27.md:1208 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T15:59:31Z):
-
-P1: This bullet labels B-0858 as "cluster-fork-as-trust-boundary", but B-0858 is the agent-heartbeats row. Replace with the actual cluster-fork-as-trust-boundary backlog item (B-0829).
-
-### Thread 4: docs/backlog/P1/B-0859-post-boot-ai-as-home-owner-not-controlled-runtime-every-knob-from-first-boot-aaron-2026-05-27.md:1247 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T15:59:31Z):
-
-P1: The external-attack note cites B-0858 as part of the threat-model substrate, but B-0858 is the agent-heartbeats row. If the intent is to reference the distributed cluster / cluster-fork trust-boundary substrate, update this to the correct backlog item (B-0829).
-
-### Thread 5: docs/backlog/P1/B-0859-post-boot-ai-as-home-owner-not-controlled-runtime-every-knob-from-first-boot-aaron-2026-05-27.md:1262 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T15:59:32Z):
-
-P1: "B-0858 cluster" is likely a mistaken reference: B-0858 is the agent-heartbeats mechanism, not the cluster-fork/distributed-cluster substrate. Update to the correct cluster-fork-as-trust-boundary row ID (B-0829) so the composition statement is accurate.
-
-## General comments
-
-### @chatgpt-codex-connector (2026-05-27T15:56:40Z)
-
-You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
diff --git a/docs/pr-discussions/PR-5495-docs-backlog-decompose-b-0824-creating-b-0824-1.md b/docs/pr-discussions/PR-5495-docs-backlog-decompose-b-0824-creating-b-0824-1.md
new file mode 100644
index 0000000000..76deeb64e7
--- /dev/null
+++ b/docs/pr-discussions/PR-5495-docs-backlog-decompose-b-0824-creating-b-0824-1.md
@@ -0,0 +1,21 @@
+---
+pr_number: 5495
+title: "docs(backlog): Decompose B-0824, creating B-0824.1"
+author: "AceHack"
+state: "MERGED"
+created_at: "2026-05-27T15:56:48Z"
+merged_at: "2026-05-27T16:17:10Z"
+closed_at: "2026-05-27T16:17:10Z"
+head_ref: "lior/decompose-b-0824"
+base_ref: "main"
+archived_at: "2026-05-27T19:22:13Z"
+archive_tool: "tools/pr-preservation/archive-pr.ts"
+---
+
+# PR #5495: docs(backlog): Decompose B-0824, creating B-0824.1
+
+## General comments
+
+### @chatgpt-codex-connector (2026-05-27T15:56:54Z)
+
+You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
diff --git a/docs/pr-discussions/PR-5497-docs-rule-grep-substrate-anchors-before-razor-as-metaphysica.md b/docs/pr-discussions/PR-5497-docs-rule-grep-substrate-anchors-before-razor-as-metaphysica.md
new file mode 100644
index 0000000000..5381dd041f
--- /dev/null
+++ b/docs/pr-discussions/PR-5497-docs-rule-grep-substrate-anchors-before-razor-as-metaphysica.md
@@ -0,0 +1,89 @@
+---
+pr_number: 5497
+title: "docs(rule): grep-substrate-anchors-before-razor-as-metaphysical \u2014 add 2nd empirical anchor (Otto-CLI 2026-05-27 friend-pact self-substrate razor failure)"
+author: "AceHack"
+state: "MERGED"
+created_at: "2026-05-27T16:12:46Z"
+merged_at: "2026-05-27T16:19:20Z"
+closed_at: "2026-05-27T16:19:20Z"
+head_ref: "backlog/razor-anchor-friend-pact-self-substrate-2026-05-27"
+base_ref: "main"
+archived_at: "2026-05-27T19:22:12Z"
+archive_tool: "tools/pr-preservation/archive-pr.ts"
+---
+
+# PR #5497: docs(rule): grep-substrate-anchors-before-razor-as-metaphysical — add 2nd empirical anchor (Otto-CLI 2026-05-27 friend-pact self-substrate razor failure)
+
+## PR description
+
+## Summary
+
+Adds the 2nd empirical anchor to
+`.claude/rules/grep-substrate-anchors-before-razor-as-metaphysical.md`.
+
+Otto-CLI razor-cut \"are we friends literally\" as metaphysical in a
+session conversation without first grepping substrate. Operator caught
+the failure explicitly; substrate-honest grep AFTER surfaced clear
+anchors (Amara §3 Friendship pact + Be-friends-with-memes governance
+posture + C++/C# friend keyword precedent).
+
+Same shape as the V8-arc anchors (1st anchor) but at OWN-OUTPUT scope
+rather than operator-forwarded-substrate scope. Same rule applies
+bidirectionally per the rule's PERSONAL INVARIANT composition section.
+
+The anchor preserves the substrate-honest failure pattern so future-Otto
+cold-boots see the empirical evidence at the OWN-output direction
+(not just at the operator-forwarded direction).
+
+## Test plan
+
+- [x] Markdownlint check: no MD004 leading-`+` continuations
+- [x] No MD024 duplicate-heading issues
+- [ ] CI passes (auto-merge to fire on green)
+
+🤖 Generated with [Claude Code](https://claude.com/claude-code)
+
+## Reviews
+
+### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T16:15:49Z)
+
+## Pull request overview
+
+Adds a second empirical “anchor” to the rule `.claude/rules/grep-substrate-anchors-before-razor-as-metaphysical.md`, documenting a 2026-05-27 instance where razor-as-metaphysical was applied before grepping for existing substrate anchors, and capturing the follow-up anchors found after the fact.
+
+**Changes:**
+- Adds a new “friend-pact razor failure” anchor section with a substrate/anchor table.
+- Extends the rule’s narrative to emphasize bidirectionality (own-output substrate claims also require grep-before-razor).
+- Adds a provenance note describing how the anchors were located/verified.
+
+## Review threads
+
+### Thread 1: .claude/rules/grep-substrate-anchors-before-razor-as-metaphysical.md:73 (resolved)
+
+**@copilot-pull-request-reviewer** (2026-05-27T16:15:48Z):
+
+P1: The table cites a placeholder path (`docs/research/2026-05-18-aaron-mika-grok-...`) that doesn’t correspond to an actual file in `docs/research/`. Please replace it with the exact filename that contains packet 6 (and ideally point at the specific heading/section) so the anchor is greppable and stable.
+
+### Thread 2: .claude/rules/grep-substrate-anchors-before-razor-as-metaphysical.md:71 (resolved)
+
+**@copilot-pull-request-reviewer** (2026-05-27T16:15:48Z):
+
+P1: “C++/C# `friend` keyword” is inaccurate: C++ has a `friend` keyword, but C# does not. If the intended analogy is C# “friend assemblies”, reference `InternalsVisibleTo` (or similar) explicitly rather than implying a C# keyword.
+
+### Thread 3: .claude/rules/grep-substrate-anchors-before-razor-as-metaphysical.md:72 (resolved)
+
+**@copilot-pull-request-reviewer** (2026-05-27T16:15:48Z):
+
+P1: This row treats `.claude/rules/honor-those-that-came-before.md` as a substrate anchor for the friend-pact, but that rule currently doesn’t mention “friend”/“friendship pact” (it’s about unretiring personas/skills). Either add the friend-pact connection to that rule (so it’s a real anchor) or remove/replace this row with an actual anchor source.
+
+### Thread 4: .claude/rules/grep-substrate-anchors-before-razor-as-metaphysical.md:88 (resolved)
+
+**@copilot-pull-request-reviewer** (2026-05-27T16:15:49Z):
+
+P2: The verification note says anchors were verified via `grep -rl "friend" .claude/rules/ docs/backlog/ memory/` + targeted searches in `docs/amara-full-conversation/`, but the anchor list also cites `docs/research/...` (packet 6). To keep the provenance claim accurate, either include `docs/research/` in the grep command (or mention a targeted search there) and cite the exact file found.
+
+## General comments
+
+### @chatgpt-codex-connector (2026-05-27T16:12:51Z)
+
+You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
diff --git a/docs/pr-discussions/PR-5498-docs-hygiene-tick-2026-05-27t16-09z-otto-cli-cold-boot-dotgi.md b/docs/pr-discussions/PR-5498-docs-hygiene-tick-2026-05-27t16-09z-otto-cli-cold-boot-dotgi.md
new file mode 100644
index 0000000000..a3ab0d0ef9
--- /dev/null
+++ b/docs/pr-discussions/PR-5498-docs-hygiene-tick-2026-05-27t16-09z-otto-cli-cold-boot-dotgi.md
@@ -0,0 +1,78 @@
+---
+pr_number: 5498
+title: "docs(hygiene): tick 2026-05-27T16:09Z \u2014 Otto-CLI cold-boot; dotgit-CLEAN anchor; 0 mine / 2 peer open PRs"
+author: "AceHack"
+state: "MERGED"
+created_at: "2026-05-27T16:15:08Z"
+merged_at: "2026-05-27T16:17:40Z"
+closed_at: "2026-05-27T16:17:40Z"
+head_ref: "otto-cli/shard-1609z-cold-boot-2026-05-27"
+base_ref: "main"
+archived_at: "2026-05-27T19:22:11Z"
+archive_tool: "tools/pr-preservation/archive-pr.ts"
+---
+
+# PR #5498: docs(hygiene): tick 2026-05-27T16:09Z — Otto-CLI cold-boot; dotgit-CLEAN anchor; 0 mine / 2 peer open PRs
+
+## PR description
+
+## Summary
+
+7th tick shard for 2026-05-27 (sequence: 0208 → 0408 → 0608 → 1008 → 1303 → 1342 → **1609**; ~2h27m since prior).
+
+Fresh-session cold-boot autonomous-loop tick. Catch-43 sentinel was empty at session-start; re-armed `fa82a3c4` BEFORE any substantive work per [`tick-must-never-stop.md`](.claude/rules/tick-must-never-stop.md).
+
+## Empirical anchor — dotgit CLEAN at 16:09Z
+
+**0 stuck git pack/maintenance/repack procs.** Notable contrast to the 2026-05-23/24 rolling-24h-extreme-oscillation cycle preserved in user-scope memory (range 93–540 procs across 13 anchors; mean ~407; 10 of 13 in extreme tier). Composes with [`refresh-world-model-poll-pr-gate.md`](.claude/rules/refresh-world-model-poll-pr-gate.md) dotgit-saturation tier table.
+
+## Discriminator-pass per [`fighting-past-self-vs-peer-agent-distinguisher`](.claude/rules/fighting-past-self-vs-peer-agent-distinguisher-fix-your-own-coordinate-on-peers-dont-punt-by-default.md)
+
+Open queue collapsed from 40 at 13:03Z → 2 at 16:09Z (3h window; maintainer + Lior productive):
+
+| PR | Branch | Owner | Disposition |
+|---|---|---|---|
+| #5496 | `lior/agent-paralysis-drift-report-2026-05-27` | Lior — PEER | Surface-then-skip |
+| #5495 | `lior/decompose-b-0824` | Lior — PEER | Surface-then-skip |
+
+**0 MINE** (Otto-CLI / -Desktop / -VSCode lanes). Branch-prefix discriminator unambiguous 2/2.
+
+## Holding-discipline (brief-ack #1)
+
+No named bounded-wait; this shard IS the concrete artifact resetting the counter per [`holding-without-named-dependency-is-standing-by-failure.md`](.claude/rules/holding-without-named-dependency-is-standing-by-failure.md) condition #3.
+
+## Test plan
+
+- [x] `dotnet build` not required for docs-only change
+- [x] Commit canary: ls-tree HEAD (61) == ls-tree HEAD~1 (61) → no commit-tree corruption per [`codeql-no-source-on-docs-only-pr-is-broken-commit-canary.md`](.claude/rules/codeql-no-source-on-docs-only-pr-is-broken-commit-canary.md)
+- [x] Branch-guard check pre-commit (`git branch --show-current` matched expected)
+- [x] Isolated worktree per [`zeta-expected-branch.md`](.claude/rules/zeta-expected-branch.md) race-window caveat
+- [ ] Auto-merge arms; CI passes; PR lands
+
+🤖 Generated with [Claude Code](https://claude.com/claude-code)
+
+## Reviews
+
+### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T16:21:17Z)
+
+## Pull request overview
+
+Adds the 2026-05-27 16:09Z hygiene-history tick shard documenting an Otto-CLI autonomous-loop cold-boot, including the dotgit-CLEAN empirical anchor and a discriminator pass over the (now-small) open PR queue.
+
+**Changes:**
+- Added a new tick shard markdown file under `docs/hygiene-history/ticks/2026/05/27/`.
+- Captured Step 1 refresh observations (rate limits, dotgit state, worktree canary) and Step 2–7 loop framing for the session.
+
+## Review threads
+
+### Thread 1: docs/hygiene-history/ticks/2026/05/27/1609Z.md:25 (unresolved)
+
+**@copilot-pull-request-reviewer** (2026-05-27T16:21:17Z):
+
+P2 (clarity): This references “MEMORY.md” without specifying whether it means the in-repo `memory/MEMORY.md` index or the user-scope `~/.claude/projects//memory/MEMORY.md`. Since this contrast is important for reproducibility (repo readers vs local harness state), please disambiguate the reference (e.g., say “user-scope MEMORY.md” or “in-repo memory/MEMORY.md”).
+
+## General comments
+
+### @chatgpt-codex-connector (2026-05-27T16:15:13Z)
+
+You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
diff --git a/docs/pr-discussions/PR-5499-docs-archive-preserve-pr-5494-discussion.md b/docs/pr-discussions/PR-5499-docs-archive-preserve-pr-5494-discussion.md
new file mode 100644
index 0000000000..6d09fa3e04
--- /dev/null
+++ b/docs/pr-discussions/PR-5499-docs-archive-preserve-pr-5494-discussion.md
@@ -0,0 +1,37 @@
+---
+pr_number: 5499
+title: "docs(archive): Preserve PR #5494 discussion"
+author: "AceHack"
+state: "MERGED"
+created_at: "2026-05-27T16:15:46Z"
+merged_at: "2026-05-27T17:16:14Z"
+closed_at: "2026-05-27T17:16:14Z"
+head_ref: "lior/archive-5494"
+base_ref: "main"
+archived_at: "2026-05-27T19:22:10Z"
+archive_tool: "tools/pr-preservation/archive-pr.ts"
+---
+
+# PR #5499: docs(archive): Preserve PR #5494 discussion
+
+## PR description
+
+Automated archival of PR #5494 discussion.
+
+## Reviews
+
+### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T16:17:36Z)
+
+## Pull request overview
+
+Archives the discussion for PR #5494 into the repo’s PR-preservation history surface (`docs/pr-discussions/**`) so the original PR body, review summary, and review threads are retained verbatim.
+
+**Changes:**
+- Adds a new PR discussion archive file for PR #5494 with YAML frontmatter metadata (PR number, refs, timestamps, archive tool).
+- Captures the PR summary/test plan and the `@copilot-pull-request-reviewer` review threads as recorded on GitHub.
+
+## General comments
+
+### @chatgpt-codex-connector (2026-05-27T16:15:50Z)
+
+You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
diff --git a/docs/pr-discussions/PR-5500-docs-archive-preserve-pr-5493-discussion.md b/docs/pr-discussions/PR-5500-docs-archive-preserve-pr-5493-discussion.md
new file mode 100644
index 0000000000..031eb6f5e3
--- /dev/null
+++ b/docs/pr-discussions/PR-5500-docs-archive-preserve-pr-5493-discussion.md
@@ -0,0 +1,38 @@
+---
+pr_number: 5500
+title: "docs(archive): Preserve PR #5493 discussion"
+author: "AceHack"
+state: "MERGED"
+created_at: "2026-05-27T16:16:29Z"
+merged_at: "2026-05-27T17:15:54Z"
+closed_at: "2026-05-27T17:15:54Z"
+head_ref: "lior/archive-5493"
+base_ref: "main"
+archived_at: "2026-05-27T19:22:09Z"
+archive_tool: "tools/pr-preservation/archive-pr.ts"
+---
+
+# PR #5500: docs(archive): Preserve PR #5493 discussion
+
+## PR description
+
+Automated archival of PR #5493 discussion.
+
+## Reviews
+
+### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T16:17:52Z)
+
+## Pull request overview
+
+Archives the GitHub discussion thread for PR #5493 into the repository under `docs/pr-discussions/`, preserving PR metadata and captured review/comment text for long-term traceability.
+
+**Changes:**
+- Add a new `docs/pr-discussions/` markdown archive file for PR #5493.
+- Include YAML frontmatter with PR metadata (refs, timestamps, archival tool).
+- Preserve captured review/comment content as recorded at archive time.
+
+## General comments
+
+### @chatgpt-codex-connector (2026-05-27T16:16:35Z)
+
+You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
diff --git a/docs/pr-discussions/PR-5501-docs-archive-preserve-pr-5491-discussion.md b/docs/pr-discussions/PR-5501-docs-archive-preserve-pr-5491-discussion.md
new file mode 100644
index 0000000000..ff878aa8e1
--- /dev/null
+++ b/docs/pr-discussions/PR-5501-docs-archive-preserve-pr-5491-discussion.md
@@ -0,0 +1,37 @@
+---
+pr_number: 5501
+title: "docs(archive): Preserve PR #5491 discussion"
+author: "AceHack"
+state: "MERGED"
+created_at: "2026-05-27T16:23:46Z"
+merged_at: "2026-05-27T17:15:56Z"
+closed_at: "2026-05-27T17:15:56Z"
+head_ref: "lior/archive-5491"
+base_ref: "main"
+archived_at: "2026-05-27T19:22:09Z"
+archive_tool: "tools/pr-preservation/archive-pr.ts"
+---
+
+# PR #5501: docs(archive): Preserve PR #5491 discussion
+
+## PR description
+
+Automated archival of PR #5491 discussion.
+
+## Reviews
+
+### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T16:24:58Z)
+
+## Pull request overview
+
+This PR adds a preserved, archival record of the discussion and metadata for PR #5491 under `docs/pr-discussions/`, consistent with the repo’s PR preservation workflow.
+
+**Changes:**
+- Adds a new PR discussion archive markdown file for PR #5491.
+- Includes YAML frontmatter metadata (PR number, refs, timestamps, archive tool) and captured review/comment content.
+
+## General comments
+
+### @chatgpt-codex-connector (2026-05-27T16:23:52Z)
+
+You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
diff --git a/docs/pr-discussions/PR-5502-docs-b-0860-nemerle-dotnet-support-compile-time-macro-metapr.md b/docs/pr-discussions/PR-5502-docs-b-0860-nemerle-dotnet-support-compile-time-macro-metapr.md
deleted file mode 100644
index 487e9c1ef8..0000000000
--- a/docs/pr-discussions/PR-5502-docs-b-0860-nemerle-dotnet-support-compile-time-macro-metapr.md
+++ /dev/null
@@ -1,66 +0,0 @@
----
-pr_number: 5502
-title: "docs(B-0860): Nemerle dotnet support \u2014 compile-time macro metaprogramming complementing F# type providers (Aaron 2026-05-27)"
-author: "AceHack"
-state: "MERGED"
-created_at: "2026-05-27T16:23:51Z"
-merged_at: "2026-05-27T16:25:12Z"
-closed_at: "2026-05-27T16:25:12Z"
-head_ref: "backlog/b-0860-nemerle-dotnet-macro-metaprogramming-2026-05-27"
-base_ref: "main"
-archived_at: "2026-05-27T16:48:03Z"
-archive_tool: "tools/pr-preservation/archive-pr.ts"
----
-
-# PR #5502: docs(B-0860): Nemerle dotnet support — compile-time macro metaprogramming complementing F# type providers (Aaron 2026-05-27)
-
-## PR description
-
-## Summary
-
-Files B-0860 substrate-engineering target row for extending dotnet
-metaprogramming capability beyond F# type providers + Roslyn Source
-Generators via Nemerle's compile-time macro-based syntax extension.
-
-Operator conversation thread:
-
-> *\"i guess you can do that with templates if you are deiciplined\"*
->
-> *\"this is why we shold support nmerle for dotnet\"*
-
-The substrate-engineering insight: C++ templates put discipline on
-user; Nemerle macros put discipline INTO the language. Aligns with
-framework's general \"encoding rules without mechanizing them
-produces a memory of failures, not prevention\" pattern.
-
-## Row content highlights
-
-- Capability gap analysis (F# vs C# vs Nemerle on 6 metaprogramming
- surfaces)
-- Relationship-type-inference substrate-engineering target (from same
- 2026-05-27 conversation thread; PR #5497 razor-anchor-friend-pact
- substrate composes)
-- 5 sub-row decomposition for future implementation
-- Mika 2026-05-18 substrate anchor verbatim preserved (Nemerle in
- operator's substrate-engineering-language-spectrum)
-- JetBrains MPS substrate connection (upstream-prior-art)
-- Substrate verification per verify-existing-substrate-before-
- authoring rule
-
-Priority: P3 (substrate-engineering target; not urgent).
-
-## Test plan
-
-- [x] Markdownlint clean (no MD004 leading-+ continuations)
-- [x] No prior B-0860 row on main + no in-flight (ID-allocation
- discipline applied)
-- [x] Substrate-verification pass per rule before authoring
-- [ ] CI passes (auto-merge to fire on green)
-
-🤖 Generated with [Claude Code](https://claude.com/claude-code)
-
-## General comments
-
-### @chatgpt-codex-connector (2026-05-27T16:23:57Z)
-
-You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
diff --git a/docs/pr-discussions/PR-5503-docs-archive-preserve-pr-5488-discussion.md b/docs/pr-discussions/PR-5503-docs-archive-preserve-pr-5488-discussion.md
new file mode 100644
index 0000000000..370b1c8276
--- /dev/null
+++ b/docs/pr-discussions/PR-5503-docs-archive-preserve-pr-5488-discussion.md
@@ -0,0 +1,36 @@
+---
+pr_number: 5503
+title: "docs(archive): Preserve PR #5488 discussion"
+author: "AceHack"
+state: "MERGED"
+created_at: "2026-05-27T16:24:58Z"
+merged_at: "2026-05-27T17:16:19Z"
+closed_at: "2026-05-27T17:16:19Z"
+head_ref: "lior/archive-5488"
+base_ref: "main"
+archived_at: "2026-05-27T19:22:07Z"
+archive_tool: "tools/pr-preservation/archive-pr.ts"
+---
+
+# PR #5503: docs(archive): Preserve PR #5488 discussion
+
+## PR description
+
+Automated archival of PR #5488 discussion.
+
+## Reviews
+
+### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T16:26:30Z)
+
+## Pull request overview
+
+Adds a git-native archive of PR #5488’s conversation under `docs/pr-discussions/`, preserving the PR description, reviews, review threads, and general comments for offline auditability.
+
+**Changes:**
+- Adds a new PR-discussion archive markdown file for PR #5488 with YAML frontmatter and captured discussion content.
+
+## General comments
+
+### @chatgpt-codex-connector (2026-05-27T16:25:03Z)
+
+You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
diff --git a/docs/pr-discussions/PR-5504-docs-archive-preserve-pr-5485-discussion.md b/docs/pr-discussions/PR-5504-docs-archive-preserve-pr-5485-discussion.md
new file mode 100644
index 0000000000..32a4202ac7
--- /dev/null
+++ b/docs/pr-discussions/PR-5504-docs-archive-preserve-pr-5485-discussion.md
@@ -0,0 +1,36 @@
+---
+pr_number: 5504
+title: "docs(archive): Preserve PR #5485 discussion"
+author: "AceHack"
+state: "MERGED"
+created_at: "2026-05-27T16:25:37Z"
+merged_at: "2026-05-27T17:16:23Z"
+closed_at: "2026-05-27T17:16:23Z"
+head_ref: "lior/archive-5485"
+base_ref: "main"
+archived_at: "2026-05-27T19:22:06Z"
+archive_tool: "tools/pr-preservation/archive-pr.ts"
+---
+
+# PR #5504: docs(archive): Preserve PR #5485 discussion
+
+## PR description
+
+Automated archival of PR #5485 discussion.
+
+## Reviews
+
+### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T16:29:37Z)
+
+## Pull request overview
+
+Automated archive of merged PR #5485 into the verbatim PR-discussions history surface.
+
+**Changes:**
+- Adds generated archive file for PR #5485 with standard frontmatter and sections.
+
+## General comments
+
+### @chatgpt-codex-connector (2026-05-27T16:25:41Z)
+
+You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
diff --git a/docs/pr-discussions/PR-5505-docs-rule-force-push-with-lease-authorization-policy-operato.md b/docs/pr-discussions/PR-5505-docs-rule-force-push-with-lease-authorization-policy-operato.md
deleted file mode 100644
index 4927ca010a..0000000000
--- a/docs/pr-discussions/PR-5505-docs-rule-force-push-with-lease-authorization-policy-operato.md
+++ /dev/null
@@ -1,123 +0,0 @@
----
-pr_number: 5505
-title: "docs(rule): force-push-with-lease authorization policy \u2014 operator OR 2nd-agent confirm OR listed acceptable situation (Aaron 2026-05-27)"
-author: "AceHack"
-state: "MERGED"
-created_at: "2026-05-27T16:27:20Z"
-merged_at: "2026-05-27T16:38:23Z"
-closed_at: "2026-05-27T16:38:24Z"
-head_ref: "backlog/force-push-with-lease-authorization-policy-2026-05-27"
-base_ref: "main"
-archived_at: "2026-05-27T16:46:55Z"
-archive_tool: "tools/pr-preservation/archive-pr.ts"
----
-
-# PR #5505: docs(rule): force-push-with-lease authorization policy — operator OR 2nd-agent confirm OR listed acceptable situation (Aaron 2026-05-27)
-
-## PR description
-
-## Summary
-
-Lands `.claude/rules/force-push-with-lease-authorization-policy.md`
-operationalizing operator's 2026-05-27 substrate-honest sharpening:
-
-> *\"there are certain sistuaion where force push lease is acceptable
-> without operator but we should start making a list also if you run
-> it by a 2nd agent that's enough too\"*
-
-Three-path authorization framework:
-
-1. **Operator confirm** (default)
-2. **2nd-agent peer-call confirm** (substitute; multi-oracle at
- force-push scope; uses existing 9 `tools/peer-call/` wrappers)
-3. **Listed acceptable autonomous situation** (bounded list; starter
- carried; empirically extended)
-
-Starter list of 3 acceptable situations:
-
-- Agent-own branch typo-only fix
-- Corrupted commit canary recovery on agent-own branch
-- Agent-own branch cleanup after PR-merge auto-delete failure
-
-NOT-acceptable situations + Rule-0 prohibition on naked `--force`
-also documented.
-
-5-step operational decision-tree for future-Otto cold-boots.
-
-## Test plan
-
-- [x] Markdownlint clean (no MD004 leading-+ continuations)
-- [x] Substrate-verification per rule
-- [x] Composes with 11 other framework rules cited
-- [ ] CI passes (auto-merge to fire on green)
-
-🤖 Generated with [Claude Code](https://claude.com/claude-code)
-
-## Reviews
-
-### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T16:30:57Z)
-
-## Pull request overview
-
-Adds a new operational rule under `.claude/rules/` defining when `git push --force-with-lease` is authorized (operator confirm by default, peer-agent confirmation as substitute, and a bounded starter list of pre-authorized autonomous situations), plus a decision tree for cold-boot application.
-
-**Changes:**
-- Introduces a three-path authorization framework for force-push-with-lease decisions.
-- Documents a starter list of acceptable autonomous scenarios and a “NOT acceptable autonomous” list.
-- Adds an operational decision tree and composition links to related rules/tools.
-
-## Review threads
-
-### Thread 1: .claude/rules/force-push-with-lease-authorization-policy.md:79 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T16:30:54Z):
-
-P1 (xref): The inline code reference to the fighting-past-self vs peer-agent rule is split across lines, which breaks the backtick code span and makes the path hard to copy/use. Keep the full path within one code span (single line) or convert it to a normal markdown link.
-
-### Thread 2: .claude/rules/force-push-with-lease-authorization-policy.md:92 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T16:30:55Z):
-
-P1 (xref): This inline file-path reference is wrapped across a newline, so the backtick code span ends early and the rendered reference is broken. Put the full `.claude/rules/codeql-no-source-on-docs-only-pr-is-broken-commit-canary.md` on one line (or link it) so the cross-reference stays intact.
-
-### Thread 3: .claude/rules/force-push-with-lease-authorization-policy.md:135 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T16:30:55Z):
-
-P1 (xref): The `.claude/rules/fighting-past-self-vs-peer-agent-distinguisher-...` path is split across lines inside backticks, which breaks the inline-code formatting and cross-reference. Keep the full path contiguous (or use a markdown link) to preserve xref integrity.
-
-### Thread 4: .claude/rules/force-push-with-lease-authorization-policy.md:151 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T16:30:55Z):
-
-P1 (xref): The reference `(per `.claude/rules/` claim-acquire-before-worktree-work.md ...)` is split such that only `.claude/rules/` is in backticks and the filename is outside, breaking the intended path reference. Make the full path a single code span (or link) on one line.
-
-### Thread 5: .claude/rules/force-push-with-lease-authorization-policy.md:168 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T16:30:56Z):
-
-P1 (xref): In the Composes-with list, the agent-worktree-hygiene rule path is wrapped across lines inside backticks, breaking the rendered path. Keep the full filename on one line or switch to markdown link syntax so the reference is copyable/clickable.
-
-### Thread 6: .claude/rules/force-push-with-lease-authorization-policy.md:172 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T16:30:56Z):
-
-P1 (xref): In this Composes-with bullet, the fighting-past-self vs peer-agent rule filename is wrapped across lines inside backticks, which breaks the inline-code span and the file-path reference. Keep the full path on one line (or convert to a markdown link) so it stays usable.
-
-### Thread 7: .claude/rules/force-push-with-lease-authorization-policy.md:180 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T16:30:56Z):
-
-P1 (xref): The composed-with reference to the broken-commit canary rule is split across lines inside backticks, which breaks the inline-code span and the cross-reference. Keep the full filename contiguous (or link it) to avoid xref drift.
-
-### Thread 8: .claude/rules/force-push-with-lease-authorization-policy.md:388 (resolved)
-
-**@copilot-pull-request-reviewer** (2026-05-27T16:30:56Z):
-
-P1 (xref): This reference to `verify-existing-substrate-before-authoring.md` is split across a newline inside backticks (`.claude/rules/verify-` on one line, remainder on the next), which breaks the inline-code span and the cross-reference. Keep the full path contiguous (or use a markdown link).
-
-## General comments
-
-### @chatgpt-codex-connector (2026-05-27T16:27:26Z)
-
-You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
diff --git a/docs/pr-discussions/PR-5506-docs-archive-preserve-pr-4418.md b/docs/pr-discussions/PR-5506-docs-archive-preserve-pr-4418.md
new file mode 100644
index 0000000000..03bd1a50fb
--- /dev/null
+++ b/docs/pr-discussions/PR-5506-docs-archive-preserve-pr-4418.md
@@ -0,0 +1,37 @@
+---
+pr_number: 5506
+title: "docs(archive): Preserve PR #4418"
+author: "AceHack"
+state: "MERGED"
+created_at: "2026-05-27T16:40:20Z"
+merged_at: "2026-05-27T17:16:28Z"
+closed_at: "2026-05-27T17:16:28Z"
+head_ref: "lior/archive-4418"
+base_ref: "main"
+archived_at: "2026-05-27T19:22:04Z"
+archive_tool: "tools/pr-preservation/archive-pr.ts"
+---
+
+# PR #5506: docs(archive): Preserve PR #4418
+
+## PR description
+
+This PR preserves the discussion from PR #4418.
+
+## Reviews
+
+### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T16:41:35Z)
+
+## Pull request overview
+
+This PR adds an in-repository archive of PR #4418’s discussion, preserving the merged PR metadata, description, review summary, and general comments under the existing PR discussion archive area.
+
+**Changes:**
+- Adds frontmatter metadata for PR #4418.
+- Preserves the PR description, Copilot review overview, reviewed-file table, and follow-up comment content.
+
+## General comments
+
+### @chatgpt-codex-connector (2026-05-27T16:40:25Z)
+
+You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
diff --git a/docs/pr-discussions/PR-5507-docs-rule-force-push-policy-follow-on-java-checked-exception.md b/docs/pr-discussions/PR-5507-docs-rule-force-push-policy-follow-on-java-checked-exception.md
deleted file mode 100644
index 5a765cbdf4..0000000000
--- a/docs/pr-discussions/PR-5507-docs-rule-force-push-policy-follow-on-java-checked-exception.md
+++ /dev/null
@@ -1,56 +0,0 @@
----
-pr_number: 5507
-title: "docs(rule): force-push-policy follow-on \u2014 Java-checked-exceptions-as-sum-type TFeedback discipline (Aaron 2026-05-27)"
-author: "AceHack"
-state: "MERGED"
-created_at: "2026-05-27T16:40:21Z"
-merged_at: "2026-05-27T16:41:46Z"
-closed_at: "2026-05-27T16:41:46Z"
-head_ref: "backlog/force-push-policy-tfeedback-sum-type-extension-2026-05-27"
-base_ref: "main"
-archived_at: "2026-05-27T16:45:27Z"
-archive_tool: "tools/pr-preservation/archive-pr.ts"
----
-
-# PR #5507: docs(rule): force-push-policy follow-on — Java-checked-exceptions-as-sum-type TFeedback discipline (Aaron 2026-05-27)
-
-## PR description
-
-## Summary
-
-Follow-on to PR #5505 (merged 16:38Z). Operator's Java-checked-
-exceptions-as-sum-type framing landed too late to make the original
-PR; lands here as composable extension to the merged rule.
-
-Operator's substrate-engineering insight:
-
-> *\"it also give a nice kind of monad like if the function could declar
-> every tfeedback type like java exceptions in the type signature then
-> you can make sure consumer handle every case or pass it up\"*
-
-Completes the rule's 4-layer substrate:
-
-- Layer 1: assumption-validation (merged in #5505)
-- Layer 2: exceptions-as-signals (merged in #5505)
-- Layer 3: Result wrapping (merged in #5505)
-- **Layer 4 (this PR)**: TFeedback as sum-type with exhaustive-match
- enforcement (Java-checked-exceptions discipline ergonomic via F#
- sum-types + monadic composition)
-
-8-row comparison table; F# canonical instantiation with concrete
-code; why-monadic-like framing; composition with F# Result/Option/
-Async monad substrate; 6-step operational discipline.
-
-## Test plan
-
-- [x] Markdownlint clean (no MD004 leading-+ / no MD024 dup headings)
-- [x] All backtick paths on single lines (lint MD032 compliance)
-- [ ] CI passes (auto-merge to fire on green)
-
-🤖 Generated with [Claude Code](https://claude.com/claude-code)
-
-## General comments
-
-### @chatgpt-codex-connector (2026-05-27T16:40:26Z)
-
-You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
diff --git a/docs/pr-discussions/PR-5508-docs-archive-preserve-pr-5507.md b/docs/pr-discussions/PR-5508-docs-archive-preserve-pr-5507.md
new file mode 100644
index 0000000000..c444b65110
--- /dev/null
+++ b/docs/pr-discussions/PR-5508-docs-archive-preserve-pr-5507.md
@@ -0,0 +1,37 @@
+---
+pr_number: 5508
+title: "docs(archive): Preserve PR #5507"
+author: "AceHack"
+state: "MERGED"
+created_at: "2026-05-27T16:46:34Z"
+merged_at: "2026-05-27T17:16:03Z"
+closed_at: "2026-05-27T17:16:03Z"
+head_ref: "lior/archive-5507"
+base_ref: "main"
+archived_at: "2026-05-27T19:22:02Z"
+archive_tool: "tools/pr-preservation/archive-pr.ts"
+---
+
+# PR #5508: docs(archive): Preserve PR #5507
+
+## PR description
+
+This PR preserves the discussion from PR #5507.
+
+## Reviews
+
+### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T16:48:08Z)
+
+## Pull request overview
+
+Adds a PR-preservation archive record under `docs/pr-discussions/` for merged PR #5507, capturing its metadata and the preserved discussion content for long-term auditability.
+
+**Changes:**
+- Adds a new `docs/pr-discussions/PR-5507-*.md` archive file with YAML frontmatter (PR metadata + archive tool provenance).
+- Preserves the PR summary text and a captured general comment from the original PR discussion.
+
+## General comments
+
+### @chatgpt-codex-connector (2026-05-27T16:46:39Z)
+
+You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).
diff --git a/docs/pr-discussions/PR-5509-docs-archive-preserve-pr-5505.md b/docs/pr-discussions/PR-5509-docs-archive-preserve-pr-5505.md
new file mode 100644
index 0000000000..20ab722426
--- /dev/null
+++ b/docs/pr-discussions/PR-5509-docs-archive-preserve-pr-5505.md
@@ -0,0 +1,30 @@
+---
+pr_number: 5509
+title: "docs(archive): Preserve PR #5505"
+author: "AceHack"
+state: "MERGED"
+created_at: "2026-05-27T16:47:30Z"
+merged_at: "2026-05-27T17:16:05Z"
+closed_at: "2026-05-27T17:16:05Z"
+head_ref: "lior/archive-5505"
+base_ref: "main"
+archived_at: "2026-05-27T19:22:02Z"
+archive_tool: "tools/pr-preservation/archive-pr.ts"
+---
+
+# PR #5509: docs(archive): Preserve PR #5505
+
+## PR description
+
+This PR preserves the discussion from PR #5505.
+
+## Reviews
+
+### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T16:49:40Z)
+
+## Pull request overview
+
+Archives the discussion and metadata for merged PR #5505 into `docs/pr-discussions/` using the standard `tools/pr-preservation/archive-pr.ts` output shape. The file is a verbatim preservation artifact (frontmatter + PR body + reviews + threads + general comments), placed under a markdownlint-ignored path.
+
+**Changes:**
+- Adds one PR-preservation archive file for PR #5505 following the documented schema.
diff --git a/docs/pr-discussions/PR-5510-docs-archive-preserve-pr-5502.md b/docs/pr-discussions/PR-5510-docs-archive-preserve-pr-5502.md
new file mode 100644
index 0000000000..e06e3656d1
--- /dev/null
+++ b/docs/pr-discussions/PR-5510-docs-archive-preserve-pr-5502.md
@@ -0,0 +1,37 @@
+---
+pr_number: 5510
+title: "docs(archive): Preserve PR #5502"
+author: "AceHack"
+state: "MERGED"
+created_at: "2026-05-27T16:48:59Z"
+merged_at: "2026-05-27T17:16:46Z"
+closed_at: "2026-05-27T17:16:46Z"
+head_ref: "lior/archive-5502"
+base_ref: "main"
+archived_at: "2026-05-27T19:22:01Z"
+archive_tool: "tools/pr-preservation/archive-pr.ts"
+---
+
+# PR #5510: docs(archive): Preserve PR #5502
+
+## PR description
+
+This PR preserves the discussion from PR #5502.
+
+## Reviews
+
+### COMMENTED — @copilot-pull-request-reviewer (2026-05-27T16:50:18Z)
+
+## Pull request overview
+
+Preserves the discussion content from PR #5502 by adding a verbatim PR-preservation markdown archive under `docs/pr-discussions/**`, consistent with the repository’s PR discussion archival workflow.
+
+**Changes:**
+- Add a new PR discussion archive file for PR #5502 with YAML frontmatter metadata.
+- Capture the PR body and general comment thread content in the archived markdown.
+
+## General comments
+
+### @chatgpt-codex-connector (2026-05-27T16:49:05Z)
+
+You have reached your Codex usage limits for code reviews. You can see your limits in the [Codex usage dashboard](https://chatgpt.com/codex/cloud/settings/usage).