From 9468e4bba04ccdb773e1f2af799d9b1aadff40ee Mon Sep 17 00:00:00 2001 From: Aaron Stainback Date: Thu, 23 Apr 2026 20:37:35 -0400 Subject: [PATCH] =?UTF-8?q?determinize:=20live-state-before-policy=20?= =?UTF-8?q?=E2=80=94=20schema-enforcement=20section=20+=20BP-25=20promotio?= =?UTF-8?q?n=20candidate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Amara's 4th ferry (PR #221 absorb) Determinize-stage item: document "live-state-before-policy" as an explicit rule. The decision-proxy-evidence schema (PR #222) already has the `live_state_checks:` field that enforces it per-record; this PR adds the explicit principle section + candidates the rule for BP-25 promotion. What landed: 1. docs/decision-proxy-evidence/README.md — new section "Live-state-before-policy" covering: - Why the rule exists (Amara's HB-004 commit-sample showing same-day propose-from-symptoms → policy-stance → empirical- correction) - How the schema enforces it (live_state_checks: required for settings-change and branch-shaping task classes; examples from DP-001 worked record) - Scope (settings / branch-shaping / authority claims / roadmap assumptions) - What's excluded (pure reads, mechanical fixes) - BP-NN promotion candidacy note 2. docs/BACKLOG.md — new P2 row candidating BP-25 promotion via ADR. Aarav's call per BP-NN-promotion-cadence FACTORY-HYGIENE row. Rule text candidate provided; owner mapped to Aarav + Kenji + Rune; effort S. Not a unilateral promotion — just the candidate row. Promotion requires Aarav ADR drafting. Amara's Determinize-stage progress: 1/5 (this PR). ✓ Live-state-before-policy schema-enforcement + BP candidate Remaining: - Memory reference-existence lint (S) - Memory duplicate-title lint enforcement (partial via #220/AceHack#12) - Generated CURRENT-*.md views (L) - Memory reconciliation algorithm (L) Per Aaron Otto-72: "don't wait on me approved, mark down your decisions". This PR acts under standing authority (Otto-67 full GitHub grant); BP-25 consideration is logged as BACKLOG candidate for Aarav's promotion call. Frontier UI (future, Otto-63) will be Aaron's batch-review surface. Co-Authored-By: Claude Opus 4.7 --- docs/BACKLOG.md | 27 +++++++++++ docs/decision-proxy-evidence/README.md | 65 ++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) diff --git a/docs/BACKLOG.md b/docs/BACKLOG.md index da2157efb0..fee0acf36d 100644 --- a/docs/BACKLOG.md +++ b/docs/BACKLOG.md @@ -6883,6 +6883,33 @@ Keeping them adjacent preserves the directive cluster. schema for adversarial-training-corpus risks; Kenji synthesizes the dual-use deliverable. +## P2 — BP-25 promotion candidate — live-state-before-policy + +- [ ] **Promote "live-state-before-policy" to BP-25 via ADR.** + Amara's 4th ferry (PR #221 absorb) named the rule; Otto-72 + landed schema-enforcement of it via the `live_state_checks:` + field in `docs/decision-proxy-evidence/` records (documented + in the `README.md` "Live-state-before-policy" section + after PR ). BP-NN promotion is Aarav's call per the + BP-NN-promotion-cadence FACTORY-HYGIENE row; this row + queues the promotion consideration. Rule text candidate: + *"Never recommend a repository settings change, required- + check change, merge policy change, or branch-rule change + unless the current live state has been queried in the same + work unit."* **Scope:** draft ADR under + `docs/DECISIONS/YYYY-MM-DD-bp-25-live-state-before-policy.md` + citing the Amara ferry + the schema-enforcement in + `docs/decision-proxy-evidence/README.md` + the HB-004 + failure-mode evidence Amara sampled. If adopted, promote + to BP-25 in `docs/AGENT-BEST-PRACTICES.md` (current max + is BP-24). **Effort:** S (ADR drafting + policy + inclusion). **Owner:** Aarav drives the promotion call; + Kenji integrates; Rune readability. **Source of truth:** + `docs/aurora/2026-04-23-amara-memory-drift-alignment- + claude-to-memories-drift.md` (PR #221 absorb) + + `docs/decision-proxy-evidence/README.md` (PR #222 + this + PR's addendum). + ## P1 — Principle-adherence review cadence (Otto-58 new hygiene class) - [ ] **Principle-adherence review — cadenced agent judgment on diff --git a/docs/decision-proxy-evidence/README.md b/docs/decision-proxy-evidence/README.md index a7a570750c..065f61d7ea 100644 --- a/docs/decision-proxy-evidence/README.md +++ b/docs/decision-proxy-evidence/README.md @@ -205,6 +205,71 @@ author can set `false` with a one-line justification in --- +## Live-state-before-policy — the principle behind `live_state_checks:` + +Amara's 4th ferry (PR #221) named this as a Determinize- +stage rule, paired with the evidence-record format: + +> Never recommend a repository settings change, required- +> check change, merge policy change, or branch-rule change +> unless the current live state has been queried in the +> same work unit. + +**Why it exists:** Amara's commit-sample HB-004 arc shows +the failure mode — same-day propose-from-symptoms → policy- +stance → empirical-correction. The pattern generalizes +whenever an agent proposes substrate changes from inferred +state rather than verified state. The fix is mechanical: +run the `gh api` / `git log` / equivalent check **first**, +propose **second**. + +**How the schema enforces it:** + +The `live_state_checks:` field is required for every +`settings-change` and `branch-shaping` task class. At least +one entry must name an actual command that was executed to +verify the state the decision operates on. Examples from +the DP-001 worked example: + +- `gh api repos/Lucent-Financial-Group/Zeta/branches/main/protection` +- `gh api repos/AceHack/Zeta --jq '.fork // .parent.full_name'` +- `gh api users/AceHack/events (repo-level create/delete scan)` + +An evidence record with an empty `live_state_checks:` array +for those task classes is a flag: either the rule was +skipped (fix the record), or the task class was +misclassified (change the field). + +**Scope:** + +Applies whenever a durable change to state-with-public- +consequences is proposed: + +- Settings changes (repo, org, branch, workflow, + required-checks, rulesets) +- Branch-shaping (branch-protection, policy flips, merge + method changes) +- Scope / authority claims that assume repo state + ("I'll merge this because branch protection allows it") +- Roadmap edits that assume current capability state + ("this works because test X passes" — verify test X + actually passes) + +Does NOT apply to: + +- Pure read / observation work (research docs, memory + absorbs, BACKLOG row filings that don't assert state) +- Mechanical fixes where the state is self-evident in + the change (typo, lint, format) + +**Future BP-NN promotion candidate:** this rule meets the +bar for a stable BP rule per `docs/AGENT-BEST-PRACTICES.md` +(multiple occurrences + cross-agent applicability). Aarav +considers for BP-25 promotion via ADR; until then it lives +here as schema-enforced practice. + +--- + ## Relationship to the "hard rule" Across all four Amara ferries (PRs #196, #211, #219, #221)