From ba514d858915577709f984c7ac69fc50e3fdf15a Mon Sep 17 00:00:00 2001 From: Chris0Jeky Date: Fri, 4 Sep 2026 22:24:57 +0100 Subject: [PATCH 1/2] docs(memory): refresh the active pointer for the Claude lanes and record the #2198 retired head --- .codex/memories/00_ACTIVE.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/.codex/memories/00_ACTIVE.md b/.codex/memories/00_ACTIVE.md index c778da78a..290bd75bc 100644 --- a/.codex/memories/00_ACTIVE.md +++ b/.codex/memories/00_ACTIVE.md @@ -1,8 +1,8 @@ # Active Taskdeck Agent Context -Last updated: 2026-09-03 +Last updated: 2026-09-04 -This file is the Codex active-gate pointer for Taskdeck. It intentionally summarizes routing only; the canonical state remains in `docs/STATUS.md`. +This file is the active-gate pointer for every implementation agent on Taskdeck (Claude Code lanes today; Codex when its review credits return). It intentionally summarizes routing only; the canonical state remains in `docs/STATUS.md`. **This file is a pointer, not a record.** It carries routing, standing constraints, and unpushed-work protection only. Shipped reality belongs in `docs/STATUS.md`; delivery history and roadmap sequencing belong in `docs/IMPLEMENTATION_MASTERPLAN.md`, the split that `.codex/README.md` and that file both declare; release state, milestone counts, PR status, and CI colour come from live GitHub. All three outrank anything written here. If you are about to add a dated delivery narrative to this file, put it in `docs/IMPLEMENTATION_MASTERPLAN.md` instead. @@ -44,8 +44,19 @@ The architecture for "speak, type, paste, or drop" is `docs/decisions/ADR-0065-c No saved head currently holds unshipped work. Record one here the moment a slice is parked without a PR, and say what it contains and how to resume it. +- Retired, check before resuming: `origin/issue-2198/batch-approve-focus@9a2d723771b8fda0a04bb22e87056a5ee5b63289`. Not an ancestor of `main`. `#2198` closed 2026-09-04 on PR `#2534` (merge `d11bd4ada`, branch `issue-2198/batch-approve-focus-v2`). The alpha lane's 2026-09-03 release note says the original branch preserves a verified composable-only settle-outcome slice that never opened a PR; whether that slice is still wanted after `#2534` is unrecorded, so read `#2198` first and do not recreate a worktree from it blindly. + - Retired, do not resume: `origin/issue-1940/provenance-shortcut@c9135fef3b64da5d6c578bd4d9c76fe4fdb7eb65`. The ref still exists and is not an ancestor of `main`, but the slice it held shipped as PR `#2323` (merge `221aa88c8`), recorded in `docs/STATUS.md`. Recreating a worktree from it would redo landed work. `#1940` stays open for the two MEDIUM residuals named on the issue, not for this branch. +## Lane coordination (2026-09-04) + +- Two implementation lanes run concurrently: `alpha-product-trust` (human work loop: Capture/Inbox, proposals, Review, Board/Paper/Legacy, a11y, product semantics) and `beta-platform-integrity` (runtime, security, delivery, CI, harness). An issue belongs to the lane that owns its primary acceptance outcome, not to whichever layer its files sit in. A programme coordinator session owns issue topology, milestones, Project state, this file, `autodoc/AGENT_INDEX.md` and `docs/releases/V0_3_0_READINESS.md`; it does not implement or merge. +- Claim before writing: post `[Claude lane claim v2]` on the issue (lane, base SHA, owned paths, shared-path leases, parallel-safe work, status) and `[Claude lane release v2]` with the exact head and result when done. A stale claim is one with no release and no branch activity; the coordinator reconciles it, not the other lane. +- One writer per canonical doc: the lane that merges a slice writes its own bounded `docs/STATUS.md` block and `OUTSTANDING_TASKS.md` tick; cross-lane reconciliation blocks and the readiness view are the coordinator's. Never edit a canonical doc that an open PR already edits without agreeing the order first. +- Control-plane PRs (`.github/workflows/**`, `ci/**`, `scripts/ci/**`, runner or branch-protection paths, and the `ci/policy.v1.json` control paths) merge only after the maintainer's own review plus one fresh-context review (ADR-0066 amendment 2026-09-03). Open them ready-for-review, then park them under `OUTSTANDING_TASKS.md` SC-10; green is not authority. +- Codex review credits are exhausted (SC-9, since 2026-09-03 22:34Z): every PR carries one fresh-context independent review instead, and the connector's usage-limit notice is informational, not a finding. +- Stacked PRs: a PR whose base is a merged-but-undeleted branch merges into that branch, not `main`. Re-target with `gh pr edit N --base main` before merging. + ## Start of session 1. Refresh Git, GitHub, ProjectV2, CI, review threads, milestones, releases, and worktrees. Live state outranks this file. From d4f9b3c77c20a6e3fae1fb1a797554b473042be4 Mon Sep 17 00:00:00 2001 From: Chris0Jeky Date: Fri, 4 Sep 2026 22:36:51 +0100 Subject: [PATCH 2/2] docs(memory): guard the stacked-PR rule, name both claim marker forms, route the pointer for Claude --- .codex/memories/00_ACTIVE.md | 8 ++++---- CLAUDE.md | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.codex/memories/00_ACTIVE.md b/.codex/memories/00_ACTIVE.md index 290bd75bc..37def0d81 100644 --- a/.codex/memories/00_ACTIVE.md +++ b/.codex/memories/00_ACTIVE.md @@ -2,7 +2,7 @@ Last updated: 2026-09-04 -This file is the active-gate pointer for every implementation agent on Taskdeck (Claude Code lanes today; Codex when its review credits return). It intentionally summarizes routing only; the canonical state remains in `docs/STATUS.md`. +This file is the active-gate pointer for every implementation agent on Taskdeck: Codex reaches it through `AGENTS.md` and `.codex/README.md`, Claude Code through the `CLAUDE.md` orient list (it is not auto-loaded for Claude). It intentionally summarizes routing only; the canonical state remains in `docs/STATUS.md`. **This file is a pointer, not a record.** It carries routing, standing constraints, and unpushed-work protection only. Shipped reality belongs in `docs/STATUS.md`; delivery history and roadmap sequencing belong in `docs/IMPLEMENTATION_MASTERPLAN.md`, the split that `.codex/README.md` and that file both declare; release state, milestone counts, PR status, and CI colour come from live GitHub. All three outrank anything written here. If you are about to add a dated delivery narrative to this file, put it in `docs/IMPLEMENTATION_MASTERPLAN.md` instead. @@ -50,12 +50,12 @@ No saved head currently holds unshipped work. Record one here the moment a slice ## Lane coordination (2026-09-04) -- Two implementation lanes run concurrently: `alpha-product-trust` (human work loop: Capture/Inbox, proposals, Review, Board/Paper/Legacy, a11y, product semantics) and `beta-platform-integrity` (runtime, security, delivery, CI, harness). An issue belongs to the lane that owns its primary acceptance outcome, not to whichever layer its files sit in. A programme coordinator session owns issue topology, milestones, Project state, this file, `autodoc/AGENT_INDEX.md` and `docs/releases/V0_3_0_READINESS.md`; it does not implement or merge. -- Claim before writing: post `[Claude lane claim v2]` on the issue (lane, base SHA, owned paths, shared-path leases, parallel-safe work, status) and `[Claude lane release v2]` with the exact head and result when done. A stale claim is one with no release and no branch activity; the coordinator reconciles it, not the other lane. +- Two implementation lanes run concurrently: `alpha-product-trust` (human work loop: Capture/Inbox, proposals, Review, Board/Paper/Legacy, a11y, product semantics) and `beta-platform-integrity` (runtime, security, delivery, CI, harness). An issue belongs to the lane that owns its primary acceptance outcome, not to whichever layer its files sit in. A programme coordinator session owns issue topology, milestones, Project state, this file, `autodoc/AGENT_INDEX.md` and `docs/releases/V0_3_0_READINESS.md`; it does not implement in a path a lane has leased, and it merges only its own coordination PRs under the ordinary tier gate (`.agent-harness/tier.json` is the authority, not this line). +- Claim before writing: post `[Claude lane claim v2]` on the issue (lane, base SHA, owned paths, shared-path leases, parallel-safe work, status) and `[Claude lane release v2]` with the exact head and result when done. `[Codex lane claim v2]` / `[Codex lane release v2]` are the same protocol with the same fields; search for both forms before claiming, because an existing open PR plus a current claim in either form outranks a new claim. A stale claim is one with no release and no branch activity; the coordinator reconciles it, not the other lane. - One writer per canonical doc: the lane that merges a slice writes its own bounded `docs/STATUS.md` block and `OUTSTANDING_TASKS.md` tick; cross-lane reconciliation blocks and the readiness view are the coordinator's. Never edit a canonical doc that an open PR already edits without agreeing the order first. - Control-plane PRs (`.github/workflows/**`, `ci/**`, `scripts/ci/**`, runner or branch-protection paths, and the `ci/policy.v1.json` control paths) merge only after the maintainer's own review plus one fresh-context review (ADR-0066 amendment 2026-09-03). Open them ready-for-review, then park them under `OUTSTANDING_TASKS.md` SC-10; green is not authority. - Codex review credits are exhausted (SC-9, since 2026-09-03 22:34Z): every PR carries one fresh-context independent review instead, and the connector's usage-limit notice is informational, not a finding. -- Stacked PRs: a PR whose base is a merged-but-undeleted branch merges into that branch, not `main`. Re-target with `gh pr edit N --base main` before merging. +- Stacked PRs: a PR whose base is another PR's branch merges into that branch, not `main`. Merge the parent first, always; only after the parent has actually merged, re-target the child with `gh pr edit N --base main`, then confirm the new base via the API before merging it. Never re-target a child whose parent is still open, because that pulls the parent's unmerged commits into the child. Never `--delete-branch` a stacked base PR. ## Start of session diff --git a/CLAUDE.md b/CLAUDE.md index 4735a4cc0..e463a02b2 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -20,6 +20,8 @@ evidence report is its acceptance bar before real execution is enabled). The rep 1. `autodoc/AGENT_INDEX.md` — the seam map. Start here, find your region, jump to entry points. 2. `docs/STATUS.md` — shipped reality, **section-read only**. Precedence: STATUS > AGENTS.md > this file. 3. `OUTSTANDING_TASKS.md` — the human-action file (global law 5). Surface open `[ ]` items in every summary. + `.codex/memories/00_ACTIVE.md` §Lane coordination — read it before claiming an issue: lane split, claim + and release markers, control-plane PR parking, stacked-PR order. It is not auto-loaded for Claude. 4. Region rules auto-load by path: `backend/CLAUDE.md`, `frontend/taskdeck-web/CLAUDE.md`, `scripts/agent_hooks/CLAUDE.md`, `.claude/rules/ci-control.md` (`.github/**`, `ci/**`, `scripts/ci/**`), `.claude/rules/docs.md` (`docs/**`, root `*.md`). Workflow skills: `.claude/skills/README.md` — local