Skip to content

craft: production-tier ladder v0 + first module (checked-vs-unchecked)#208

Open
AceHack wants to merge 4 commits intomainfrom
craft/production-dotnet-checked-vs-unchecked-v0
Open

craft: production-tier ladder v0 + first module (checked-vs-unchecked)#208
AceHack wants to merge 4 commits intomainfrom
craft/production-dotnet-checked-vs-unchecked-v0

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented Apr 23, 2026

Summary

Aaron Otto-47 directive: "this is production code training level not onboarding materials". Lands the production-tier Craft ladder distinctly from onboarding, plus the first module exemplifying it.

What landed

  • docs/craft/subjects/production-dotnet/README.md — tier intro (different audience, different prerequisites, different lessons from onboarding tier); 4 neighbour module stubs named
  • docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md — first production-tier module (~260 lines) with:
    • Six-class site decision matrix
    • Decision tree + measurement gate (≥5% BenchmarkDotNet delta required per demotion)
    • Three bound-proving techniques (type-system / algebraic / FsCheck)
    • Zeta-specific choice (canonical src/Core/ZSet.fs:227-230 kept Checked; concrete demotion candidates named)
    • Self-check section with 4 observable outcomes
  • docs/hygiene-history/loop-tick-history.md — Otto-48 row

Why now / why this sequencing

Module teaches the decision framework; the audit BACKLOG row (PR #207) produces specific decisions. Framework doesn't depend on audit outcome — audit will use the framework as its classification spine. Landing the taxonomy now prevents ad-hoc classification later.

What this PR is NOT

Test plan

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings April 23, 2026 22:14
@AceHack AceHack enabled auto-merge (squash) April 23, 2026 22:14
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 37d3771294

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/hygiene-history/loop-tick-history.md Outdated
AceHack added a commit that referenced this pull request Apr 23, 2026
)

Companion benchmark harness for the production-tier Craft module
`docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md`
(PR #208). Proves the module's >=5% throughput-delta gate claim with
runnable measurements; seeds the per-site audit BACKLOG row (PR #207)
with concrete numbers instead of vibes-perf.

New file: `bench/Benchmarks/CheckedVsUncheckedBench.fs` (~100 lines)

Three scenarios cover the module's two demotion archetypes and the
canonical keep-Checked exemplar:

- `SumScalar{Checked,Unchecked}` — scalar-loop cumulative sum; models
  NovelMath.fs:87 + CountMin.fs:77 counter increments (bounded-by-
  workload class)
- `SumUnrolled{Checked,Unchecked}` — 4x loop-unrolled partial sums;
  models ZSet.fs:289-295 SIMD-candidate class
- `MergeLike{Checked,Unchecked}` — predicated add matching ZSet.fs:227-
  230 merge-inner shape (canonical keep-Checked site; measures the
  cost we choose to leave on the table for correctness)

`[<MemoryDiagnoser>]` + `[<Params(1M, 10M, 100M)>]` sizes; baseline-
tagged on SumScalarChecked. Registered in Benchmarks.fsproj before
Program.fs (auto-discovered by BenchmarkSwitcher).

Verified: `dotnet build bench/Benchmarks/Benchmarks.fsproj -c Release`
= 0 Warning(s) + 0 Error(s) in 18.2s. TreatWarningsAsErrors gate
maintained.

Otto-49 tick-history row appended.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces a new “production” Craft tier for .NET contributors and adds an initial module that frames checked-vs-unchecked arithmetic decisions via a classification + measurement gate, plus records the work in loop tick history.

Changes:

  • Add docs/craft/subjects/production-dotnet/ tier README to define the production-tier ladder and its reading conventions.
  • Add the first production-tier module: checked-vs-unchecked arithmetic decision framework and proof/measurement guidance.
  • Append a new entry to docs/hygiene-history/loop-tick-history.md describing the tick that landed the ladder/module.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 9 comments.

File Description
docs/hygiene-history/loop-tick-history.md Appends a tick-history row documenting this Craft-tier/module landing.
docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md New production-tier module with decision matrix, benchmark gate, and Zeta-specific anchors.
docs/craft/subjects/production-dotnet/README.md New tier overview and module index for production .NET Craft content.

Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Comment thread docs/hygiene-history/loop-tick-history.md Outdated
Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Comment thread docs/craft/subjects/production-dotnet/README.md Outdated
Comment thread docs/hygiene-history/loop-tick-history.md Outdated
Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
AceHack added a commit that referenced this pull request Apr 23, 2026
Codex P2 finding: tick-history row timestamp "2026-04-24T" violates
the file's own schema (YYYY-MM-DDTHH:MM:SSZ). Also the date was wrong
— today is 2026-04-23, not 2026-04-24.

Corrected to `2026-04-23T21:45:00Z`.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 23, 2026
…before Otto-49) + fix Otto-49 timestamp to ISO schema
Copilot AI review requested due to automatic review settings April 23, 2026 22:23
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: aa0d34eb49

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/hygiene-history/loop-tick-history.md Outdated
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new “production” Craft tier for .NET performance/correctness discipline, with an initial module on checked-vs-unchecked arithmetic, plus a tick-history append recording the work.

Changes:

  • Added docs/craft/subjects/production-dotnet/ tier entry README and initial module checked-vs-unchecked.
  • Documented a decision framework (site classification + measurement gate) for Checked.(+)/Checked.(*) demotion decisions.
  • Appended an autonomous-loop tick entry to the hygiene-history log.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 7 comments.

File Description
docs/hygiene-history/loop-tick-history.md Appends new autonomous-loop tick entries describing the Craft ladder/module landing.
docs/craft/subjects/production-dotnet/README.md Introduces the production-tier Craft ladder and links to the first module.
docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Adds the first production-tier module: decision matrix, measurement gate, proof techniques, and Zeta-specific anchors.

Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Comment thread docs/craft/subjects/production-dotnet/README.md Outdated
Comment thread docs/hygiene-history/loop-tick-history.md Outdated
Comment thread docs/hygiene-history/loop-tick-history.md Outdated
AceHack added a commit that referenced this pull request Apr 23, 2026
Aaron Otto-52 directive on resolution register: "take the advice and
give good response on what you fix or didn't fix and why".

Findings addressed (all 7 are real):

CODEX P2 (line 6626) — date inconsistency:
  Fixed. Directive row said 2026-04-24; audit artifacts dated
  2026-04-23. Today is 2026-04-23 UTC; the -24 was a cross-tick
  date-drift error. Now consistent with the artifacts.

CODEX P2 (line 6664) — "PR #209, merged" cited on files absent
  from reviewed tree:
  The branch HEAD now contains the bench file (after merge of
  origin/main where #209 landed as 3e1b97f). Reworded to cite
  the specific merge commit (3e1b97f) rather than just the PR
  number, so auditors can resolve the claim.

CODEX P2 (line 6681) — Craft module cited as landed in #208 but
  file not in reviewed tree:
  Accepted — "landed" was wrong for an open PR. Reworded to
  "proposed in PR #208 — open; path does not yet exist on main".

COPILOT P1 (line 139) — tick numbering inconsistency
  (`auto-loop-49` appears twice; `auto-loop-47` appended after
  `auto-loop-48..50`):
  Accepted the intent of the finding; renumbering ~50 rows
  across a shared history file is high-risk and erases session
  boundaries. Instead: added a schema clarification at file
  top stating that `auto-loop-N` is a per-session counter
  (session compaction resets it), and UTC timestamp is the
  canonical ordering key. This documents the actual invariant
  rather than faking one we can't hold.

COPILOT P1 (line 6661) — per-user memory citation looks like a
  dead in-repo reference:
  Accepted the suggestion verbatim in spirit — added explicit
  "**out-of-repo** (per-user memory, not yet in-repo)" marker
  so readers don't chase a path that won't exist in-repo.

COPILOT P1 (line 6630) — PR description says "Two BACKLOG rows"
  but section adds 3:
  PR description will be updated separately (same tick).
  Section text unchanged.

COPILOT P1 (line 6697) — production-dotnet paths cited as
  current references, but directory not on main:
  Accepted. Added "**proposed in PR #208 — open; the directory
  itself is not yet on main**" marker where the paths appear.

Findings intentionally not applied (and why): none. All 7
landed honestly; none were false positives on this review
pass.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 23, 2026
…ft + Zeta audit) (#207)

* backlog: Otto-47 — checked/unchecked arithmetic discipline (production-tier Craft + Zeta audit)

Aaron 2026-04-24 directive: "make sure we are using uncheck and check
arithmatic approperatily, unchecked is much faster when its safe to use
it, this is production code training level not onboarding materials,
and make sure our production code does this backlog itmes".

Two BACKLOG rows filed under new `P2 — Production-code performance
discipline` section:

1. Zeta hot-path checked-vs-unchecked audit (~30 sites across
   src/Core/{ZSet, Operators, Aggregate, TimeSeries, Crdt, CountMin,
   NovelMath, IndexedZSet}.fs). Per-site bound classification
   (bounded-by-construction / bounded-by-workload / bounded-by-pre-check
   / unbounded / user-controlled / SIMD-candidate), FsCheck property
   tests for proved bounds, BenchmarkDotNet deltas required per
   demotion (>=5%). Naledi runs perf; Soraya validates bounds; Kenji
   integrates; Kira reviews. L effort.

2. Craft production-tier ladder with checked-vs-unchecked as first
   module. Distinct from onboarding tier (which lives at
   docs/craft/subjects/zeta/*); new structural concept = production-tier
   anchored on runnable BenchmarkDotNet harness + decision tree +
   bound-proving techniques. Naledi authorial; M effort.

Memory capture: feedback_checked_unchecked_arithmetic_production_tier_
craft_and_zeta_audit_2026_04_24.md (per-user). MEMORY.md index updated
newest-first. Otto-47 tick-history row appended.

Canonical "keep Checked" rationale at src/Core/ZSet.fs:227-230
(unbounded stream-weight sum sign-flip risk) stays intact — directive
is about demoting over-applied Checked sites, not removing all safety.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(#207): address Codex findings — verify source-of-truth paths + correct date

Codex P2 findings on this PR (2026-04-23 review of commit 1fd3edb):
1. BACKLOG row cited `memory/feedback_*_2026_04_24.md` as source-of-truth,
   but that file lives in per-user memory (~/.claude/projects/...), not
   in-repo `memory/`. Per-user memory is not reachable from the repo.
2. The row listed onboarding modules (zset-basics, operator-composition,
   semiring-basics) as if they exist in-tree, but only retraction-intuition
   lives on main (the others are still open PRs #200/#203/#206).
3. The row referenced "README section" for `docs/craft/README.md` but that
   file doesn't exist.
4. Date was wrong — today is 2026-04-23, not 2026-04-24.

Fixes:
- BACKLOG row now cites the per-user memory explicitly (flagged as
  Overlay-A migration candidate) + `src/Core/ZSet.fs:227-230` + the
  just-merged PR #209 bench harness as concrete in-repo artifacts.
- Module-list made honest: names retraction-intuition as merged + the
  others as in-flight PRs by number.
- docs/craft/README.md authoring broken out as a third BACKLOG row
  (S-effort hygiene follow-up; currently non-existent).
- Tick-history Otto-47 timestamp corrected to
  `2026-04-23T21:15:00Z` + memory filename reference dated _2026_04_23.

Per-user memory file renamed in place (not a repo change):
_2026_04_24.md -> _2026_04_23.md + dates corrected inside.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(#207): address 7 Codex/Copilot findings honestly

Aaron Otto-52 directive on resolution register: "take the advice and
give good response on what you fix or didn't fix and why".

Findings addressed (all 7 are real):

CODEX P2 (line 6626) — date inconsistency:
  Fixed. Directive row said 2026-04-24; audit artifacts dated
  2026-04-23. Today is 2026-04-23 UTC; the -24 was a cross-tick
  date-drift error. Now consistent with the artifacts.

CODEX P2 (line 6664) — "PR #209, merged" cited on files absent
  from reviewed tree:
  The branch HEAD now contains the bench file (after merge of
  origin/main where #209 landed as 3e1b97f). Reworded to cite
  the specific merge commit (3e1b97f) rather than just the PR
  number, so auditors can resolve the claim.

CODEX P2 (line 6681) — Craft module cited as landed in #208 but
  file not in reviewed tree:
  Accepted — "landed" was wrong for an open PR. Reworded to
  "proposed in PR #208 — open; path does not yet exist on main".

COPILOT P1 (line 139) — tick numbering inconsistency
  (`auto-loop-49` appears twice; `auto-loop-47` appended after
  `auto-loop-48..50`):
  Accepted the intent of the finding; renumbering ~50 rows
  across a shared history file is high-risk and erases session
  boundaries. Instead: added a schema clarification at file
  top stating that `auto-loop-N` is a per-session counter
  (session compaction resets it), and UTC timestamp is the
  canonical ordering key. This documents the actual invariant
  rather than faking one we can't hold.

COPILOT P1 (line 6661) — per-user memory citation looks like a
  dead in-repo reference:
  Accepted the suggestion verbatim in spirit — added explicit
  "**out-of-repo** (per-user memory, not yet in-repo)" marker
  so readers don't chase a path that won't exist in-repo.

COPILOT P1 (line 6630) — PR description says "Two BACKLOG rows"
  but section adds 3:
  PR description will be updated separately (same tick).
  Section text unchanged.

COPILOT P1 (line 6697) — production-dotnet paths cited as
  current references, but directory not on main:
  Accepted. Added "**proposed in PR #208 — open; the directory
  itself is not yet on main**" marker where the paths appear.

Findings intentionally not applied (and why): none. All 7
landed honestly; none were false positives on this review
pass.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 23, 2026
Aaron Otto-52 directive: agent-reviewer comments are critical (the
only reviewers); make long-term decisions not hacks; "won't fix,
backlog it" is valid for huge changes.

Real findings addressed in this commit:

1) BenchmarkDotNet type-name typo "ChecekedVsUnchecked" (Copilot x2,
   lines 98/97): Fixed to "CheckedVsUnchecked". Propagating a typo
   into copy-paste harnesses would have been self-defeating.

2) FsCheck snippet calls `sumWeights (ReadOnlySpan(bounded))` where
   bounded is int64[] but earlier `sumWeights` is defined over
   `ReadOnlySpan<ZEntry<'K>>` — snippet won't type-check (Copilot P?,
   module.md:184): Fixed by introducing a standalone `sumInt64s`
   helper the property operates on, with a comment explaining it
   mirrors the hot-path shape over plain int64 so the bound property
   stands alone. Preserves the lesson intent without the type mismatch.

3) Prereqs/composes-with point at `subjects/zeta/zset-basics/` and
   `operator-composition/` that don't exist on main (Copilot P?,
   module.md and README.md): Reworded to name `retraction-intuition`
   as the one that ships today + cite the in-flight PR numbers for
   the others. Future readers can resolve which are landed by PR state.

4) Composes-with cites per-user memory path as if in-repo (Copilot P?,
   module.md:277): Added explicit "**Out-of-repo** (per-user memory,
   not yet in-repo)" marker + Overlay-A migration note. Same treatment
   applied on #207 per Aaron's honest-citation policy.

5) Self-check says "Open an issue at docs/WONT-DO.md" (Copilot P?,
   module.md:324): WONT-DO.md is a curated decline-list, not an
   issue tracker. Reworded: open a GitHub issue or revision PR; keep
   WONT-DO.md for declined-with-reason entries post-triage.

6) BP policy violation — direct "Aaron" attribution in tick-history
   row 138 (Copilot P?): Fixed this row (`Aaron's Otto-47 directive`
   -> `the human maintainer's Otto-47 directive`). **Won't fix this
   PR** the ~100 historical "Aaron" references elsewhere in the same
   file — that's a massive retroactive rewrite that would rewrite
   extensive history across rows from sessions going back weeks.
   Backlog row to be filed as sibling hygiene pass.

7) Tick-ID duplicate `auto-loop-48` at line 138 (Copilot x3 + Codex,
   same finding three ways): **Won't renumber** per the same rationale
   applied on #207 — renumbering ~50 rows across a shared history
   file is high-risk. The real invariant is "compaction resets the
   per-session counter; UTC timestamp is the canonical ordering key."
   PR #207 landed a schema clarification stating exactly this; when
   this branch syncs after #207 merges, the file-top schema note
   will cover these duplicate-ID threads directly.

8) BACKLOG section reference "P2 — Production-code performance
   discipline" not present on #208's branch (Codex): This references
   a sibling PR (#207) where the section is proposed. Once #207
   merges, the reference is correct. Not fixable on this branch in
   isolation without duplicating the section.

Intentionally NOT fixed in this commit:

- Historical tick-history "Aaron" attribution sweep — too big;
  will file as dedicated BACKLOG row in a follow-up commit.
- Tick-ID numbering scheme change — would require either global
  renumber or a separate-namespace convention; landed schema note
  on #207 is the right long-term answer.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1c7f97d6c9

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/hygiene-history/loop-tick-history.md Outdated
Comment thread docs/hygiene-history/loop-tick-history.md Outdated
AceHack added a commit that referenced this pull request Apr 23, 2026
…tion

Human maintainer Otto-52 clarification: "'No name attribution in code,
docs, or skills' in history files are files like memory backlog and
other things like that for historical purposes".

Revised the P1 retroactive-sweep row to a P2 policy-clarification
row. History files (tick-history, MEMORY.md, hygiene-history,
ROUND-HISTORY, BACKLOG attribution lines, research logs) are
**EXEMPT** from the No-name-attribution rule because they record
historical reality. Sweeping them would erase the historical
record. The rule still applies to forward-looking surfaces (code,
skills, governance docs, agent personas outside memory/persona/,
user-facing docs, module bodies, forward-planning docs).

New scope: policy text update in AGENT-BEST-PRACTICES.md +
`tools/hygiene/audit-name-attribution-non-history.sh` +
FACTORY-HYGIENE row for cadenced execution. S effort.

Note: the single tick-history row fixed on PR #208 was an over-
correction in light of this clarification; harmless as neutral
prose, can be reverted if Copilot/Codex policy re-check wants.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 23, 2026
…n sweep (#210)

* backlog: Foundation aspirational-reference research + retroactive name-attribution sweep

Two BACKLOG rows from Otto-52:

1. P2 — Foundation (Asimov) aspirational-reference research.
   Human maintainer directive: "We are trying to build Foundation
   from Harry Seldon point of view... my brain works like
   Psychohistory... make something that last for melinia, i think
   in infinities. backlog." MIT-developer-friend externally
   attested the archetype. Scope: systematic read of Asimov
   Foundation novels + Apple TV adaptation (Genetic Dynasty modern
   spin); pattern-extraction to factory substrate (Psychohistory→
   Zeta algebra, Seldon Plan→Craft, Second Foundation→per-user
   memory, Emperor Clones→multi-agent Docker peer-review). L effort.
   Pre-research pattern map in row. Critical-read section required
   for where the analogy breaks. Not commitment to canon; not
   rename authorization; additive to Zora reference (different
   layer: architecture+continuity, not UX+personality).

2. P1 — retroactive name-attribution sweep.
   Copilot finding on PR #208 flagged direct "Aaron" attribution
   in a tick-history row, violating "No name attribution in code,
   docs, or skills" policy. Immediate row fixed in PR #208 commit.
   ~100 historical "Aaron" references remain in
   docs/hygiene-history/loop-tick-history.md and other docs from
   sessions going back weeks. Scope: full audit + classification +
   batched-rewrite PR (preserving quoted text; only wrapper prose
   changes) + prevention audit on cadence. M-L effort. Owner:
   Aarav (BP-rule owner) + Rune (sweep PR readability) + Kenji.

Per-user memory captured in:
feedback_human_maintainer_is_hari_seldon_archetype_foundation_as_factory_aspirational_reference_2026_04_23.md

MEMORY.md index updated newest-first.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(#210): revise name-attribution BACKLOG row per history-file exemption

Human maintainer Otto-52 clarification: "'No name attribution in code,
docs, or skills' in history files are files like memory backlog and
other things like that for historical purposes".

Revised the P1 retroactive-sweep row to a P2 policy-clarification
row. History files (tick-history, MEMORY.md, hygiene-history,
ROUND-HISTORY, BACKLOG attribution lines, research logs) are
**EXEMPT** from the No-name-attribution rule because they record
historical reality. Sweeping them would erase the historical
record. The rule still applies to forward-looking surfaces (code,
skills, governance docs, agent personas outside memory/persona/,
user-facing docs, module bodies, forward-planning docs).

New scope: policy text update in AGENT-BEST-PRACTICES.md +
`tools/hygiene/audit-name-attribution-non-history.sh` +
FACTORY-HYGIENE row for cadenced execution. S effort.

Note: the single tick-history row fixed on PR #208 was an over-
correction in light of this clarification; harmless as neutral
prose, can be reverted if Copilot/Codex policy re-check wants.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 23, 2026
Copilot AI review requested due to automatic review settings April 23, 2026 22:52
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b897de3efb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces a new “production” tier under Craft for .NET performance/correctness discipline, and adds the first module teaching a checked-vs-unchecked decision framework (with a hygiene-history tick entry documenting the landing).

Changes:

  • Add docs/craft/subjects/production-dotnet/ tier README describing audience, reading pattern, and upcoming modules.
  • Add first production-tier module checked-vs-unchecked/module.md with a decision matrix, measurement gate, and Zeta-specific sites.
  • Append new rows to docs/hygiene-history/loop-tick-history.md recording the relevant ticks/PR outcomes.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
docs/hygiene-history/loop-tick-history.md Adds tick-history rows documenting the craft tier + module landing and related merges.
docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md New production-tier module defining the checked/unchecked decision framework and Zeta-specific guidance.
docs/craft/subjects/production-dotnet/README.md New tier-level README introducing the production .NET ladder and its module list.

Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Comment thread docs/craft/subjects/production-dotnet/README.md
AceHack added a commit that referenced this pull request Apr 23, 2026
Human maintainer 2026-04-23 Otto-54 four-message cluster framed three
linked hygiene asks, anchored on the positioning statement "we are
git-native with github as our first host". Three P1 BACKLOG rows
filed adjacent to preserve the directive cluster:

1. Split `docs/BACKLOG.md` per-swim-lane. Current state: single ~6800-
   line file causes routine merge conflicts (observed on #207/#208/
   #210 this session). Scope: design doc naming split axis
   (recommended: by stream — core-algebra/formal-spec/samples/craft/
   hygiene/research/infra/frontier-readiness); migration PR with root
   as index pointing at per-stream files; hygiene audit rejecting new
   rows on root. M effort. Owner: Kenji design + Rune readability +
   Aarav audit.

2. CURRENT-<maintainer>.md freshness audit. Current state: CURRENT-
   aaron.md / CURRENT-amara.md updated ad-hoc. Scope: cadence trigger
   (N new memory entries OR M ticks), audit tool surfacing freshness
   gaps. Distillation itself stays human+Otto judgment. S effort.
   Owner: Daya + Kenji.

3. Git-hotspots audit on cadence. Scope: `tools/hygiene/audit-git-
   hotspots.sh` runs `git log --name-only` windowed; ranks top-N;
   emits report with suggested action (split/freeze/audit). Philosophy
   per Aaron: "we are frictionless" is the goal; hotspots are the
   measurement. S effort. Owner: Dejan (DevOps) + Aarav + Kenji.

Per-user memory filed: `project_factory_is_git_native_github_first_
host_hygiene_cadences_for_frictionless_operation_2026_04_23.md` with
verbatim four-message cluster (preserves corrections: "hose"→"host",
"github hotspots"→"git hotspots") per honor-those-that-came-before
discipline.

MEMORY.md index updated newest-first.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f5be65ccc2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Copilot AI review requested due to automatic review settings April 23, 2026 23:08
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 993cbb16d0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces the “production” tier for Craft modules under docs/craft/subjects/production-dotnet/, and lands the first production-tier module focused on a checked-vs-unchecked arithmetic decision framework (bound proofs + BenchmarkDotNet measurement gate), with a corresponding hygiene-history tick entry.

Changes:

  • Added docs/craft/subjects/production-dotnet/README.md to define the production-tier audience, pedagogy, and module index.
  • Added docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md with a decision matrix/tree, measurement gate, and Zeta-specific references.
  • Updated docs/hygiene-history/loop-tick-history.md with new tick rows referencing these landings.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.

File Description
docs/craft/subjects/production-dotnet/README.md Establishes the production Craft tier and links to the first module.
docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md New production-tier module defining the checked/unchecked decision framework and references into Zeta code/docs.
docs/hygiene-history/loop-tick-history.md Adds tick-history rows documenting the directive + module + benchmark harness sequence.

Comment thread docs/hygiene-history/loop-tick-history.md Outdated
Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e5be0caa75

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Copilot AI review requested due to automatic review settings April 24, 2026 00:39
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7ac6c120b0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces the production-tier Craft ladder for .NET performance/correctness work and lands the first module teaching a checked-vs-unchecked decision framework, plus records the PR landing in the hygiene tick-history log.

Changes:

  • Add docs/craft/subjects/production-dotnet/README.md to define the production tier audience, reading flow, and module list.
  • Add docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md as the first production-tier module with a site-class matrix, decision tree, measurement gate, and Zeta-specific citations.
  • Append new rows to docs/hygiene-history/loop-tick-history.md documenting the directive absorption + module/harness landings.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

File Description
docs/hygiene-history/loop-tick-history.md Adds new tick-history rows recording the checked/unchecked production-discipline work.
docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md New production-tier module defining the decision framework and citing Zeta hot-path sites/harnesses.
docs/craft/subjects/production-dotnet/README.md New tier README establishing the production-dotnet ladder structure and expectations.

Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cfc0fb6140

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Outdated
AceHack added a commit that referenced this pull request Apr 24, 2026
…rows (Amara Govern-stage 1/2)

Amara's 4th ferry (PR #221 absorb) named populating
docs/CONTRIBUTOR-CONFLICTS.md as the Govern-stage action: the
schema has existed since PR #166 but the Resolved table was
empty despite multiple session-observed contributor-level
disagreements that closed with evidence.

Backfills three genuine contributor-level conflicts observed
this session (narrow scope — not maintainer-directives,
which are out-of-scope per the schema's contributor-level
disagreement definition):

- CC-001: Copilot (PR reviewer) vs Aaron on no-name-attribution
  rule scope (history-file exemption). Resolved in Aaron's
  favor via Otto-52 clarification; policy BACKLOG row filed
  in PR #210.
- CC-002: Amara (4th ferry) vs Otto (pre-Otto-67 pattern) on
  Stabilize-vs-keep-opening-new-frames. Resolved in Amara's
  favor; Otto pivoted at Otto-68 to execute her roadmap;
  3/3 Stabilize + 3/5 Determinize landed via PRs
  #222/#223/#224/#225/#226.
- CC-003: Codex (PR reviewer) vs Otto (initial framing) on
  citing-absent-artifacts. Resolved in Codex's favor via fix
  commits 29872af/1c7f97d on PRs #207/#208; pattern now
  discipline (distinguish merged-on-main from
  proposed-in-PR-open).

All three rows follow the schema's 8-column layout and include
the full Resolution-so-far / Scope / Source cells the schema
requires. No retroactive Aaron→human-maintainer sweep of prior
rows; schema's rule 1 (resolutions are additive) honored.

This is 1/2 of Amara's Govern-stage work. 2/2 is the
authority-envelope + escalation-path ADR (deferred, M-effort).

Part of Amara's 4-stage remediation roadmap
(Stabilize → Determinize → Govern → Assure).

Otto-75 tick.
AceHack and others added 4 commits April 24, 2026 10:35
Aaron Otto-47 directive: "this is production code training level
not onboarding materials". Lands the production-tier Craft ladder
distinctly from onboarding, plus the first module exemplifying it.

New structure:
- `docs/craft/subjects/production-dotnet/` — production tier root
- `docs/craft/subjects/production-dotnet/README.md` — tier intro
  (different audience, prerequisites, lessons from onboarding tier;
  4 neighbour module stubs named for future landing)
- `docs/craft/subjects/production-dotnet/checked-vs-unchecked/
  module.md` — first production-tier module

Module content (~260 lines):
- Six-class site decision matrix: bounded-by-construction /
  bounded-by-workload / bounded-by-pre-check / unbounded-stream-sum
  / user-controlled-product / SIMD-candidate
- Decision tree + measurement gate (>=5% BenchmarkDotNet delta
  required per demotion)
- Three bound-proving techniques (type-system / algebraic-comment /
  FsCheck property test)
- Zeta-specific choice: src/Core/ZSet.fs:227-230 cited as canonical
  "keep Checked" (unbounded stream sum); concrete demotion
  candidates named (ZSet.fs:289-295 SIMD / NovelMath.fs:87 counter /
  CountMin.fs:77 bounded-by-workload)
- Self-check section with 4 observable outcomes for bidirectional-
  alignment audit

Sibling to the audit BACKLOG row from PR #207 (not blocked by it):
module teaches the decision framework; audit produces specific
decisions. Framework doesn't depend on audit outcome.

Otto-48 tick-history row appended.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Codex P2 finding: tick-history row timestamp "2026-04-24T" violates
the file's own schema (YYYY-MM-DDTHH:MM:SSZ). Also the date was wrong
— today is 2026-04-23, not 2026-04-24.

Corrected to `2026-04-23T21:45:00Z`.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Aaron Otto-52 directive: agent-reviewer comments are critical (the
only reviewers); make long-term decisions not hacks; "won't fix,
backlog it" is valid for huge changes.

Real findings addressed in this commit:

1) BenchmarkDotNet type-name typo "ChecekedVsUnchecked" (Copilot x2,
   lines 98/97): Fixed to "CheckedVsUnchecked". Propagating a typo
   into copy-paste harnesses would have been self-defeating.

2) FsCheck snippet calls `sumWeights (ReadOnlySpan(bounded))` where
   bounded is int64[] but earlier `sumWeights` is defined over
   `ReadOnlySpan<ZEntry<'K>>` — snippet won't type-check (Copilot P?,
   module.md:184): Fixed by introducing a standalone `sumInt64s`
   helper the property operates on, with a comment explaining it
   mirrors the hot-path shape over plain int64 so the bound property
   stands alone. Preserves the lesson intent without the type mismatch.

3) Prereqs/composes-with point at `subjects/zeta/zset-basics/` and
   `operator-composition/` that don't exist on main (Copilot P?,
   module.md and README.md): Reworded to name `retraction-intuition`
   as the one that ships today + cite the in-flight PR numbers for
   the others. Future readers can resolve which are landed by PR state.

4) Composes-with cites per-user memory path as if in-repo (Copilot P?,
   module.md:277): Added explicit "**Out-of-repo** (per-user memory,
   not yet in-repo)" marker + Overlay-A migration note. Same treatment
   applied on #207 per Aaron's honest-citation policy.

5) Self-check says "Open an issue at docs/WONT-DO.md" (Copilot P?,
   module.md:324): WONT-DO.md is a curated decline-list, not an
   issue tracker. Reworded: open a GitHub issue or revision PR; keep
   WONT-DO.md for declined-with-reason entries post-triage.

6) BP policy violation — direct "Aaron" attribution in tick-history
   row 138 (Copilot P?): Fixed this row (`Aaron's Otto-47 directive`
   -> `the human maintainer's Otto-47 directive`). **Won't fix this
   PR** the ~100 historical "Aaron" references elsewhere in the same
   file — that's a massive retroactive rewrite that would rewrite
   extensive history across rows from sessions going back weeks.
   Backlog row to be filed as sibling hygiene pass.

7) Tick-ID duplicate `auto-loop-48` at line 138 (Copilot x3 + Codex,
   same finding three ways): **Won't renumber** per the same rationale
   applied on #207 — renumbering ~50 rows across a shared history
   file is high-risk. The real invariant is "compaction resets the
   per-session counter; UTC timestamp is the canonical ordering key."
   PR #207 landed a schema clarification stating exactly this; when
   this branch syncs after #207 merges, the file-top schema note
   will cover these duplicate-ID threads directly.

8) BACKLOG section reference "P2 — Production-code performance
   discipline" not present on #208's branch (Codex): This references
   a sibling PR (#207) where the section is proposed. Once #207
   merges, the reference is correct. Not fixable on this branch in
   isolation without duplicating the section.

Intentionally NOT fixed in this commit:

- Historical tick-history "Aaron" attribution sweep — too big;
  will file as dedicated BACKLOG row in a follow-up commit.
- Tick-ID numbering scheme change — would require either global
  renumber or a separate-namespace convention; landed schema note
  on #207 is the right long-term answer.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…ked module

Correctness fixes (Codex P1):
- FsCheck bound-proof sound: add joint length-cap + per-element cap,
  cross-check unchecked int64 fold against BigInteger reference (not
  abs-on-wrapped-result). Fixes threads about non-wrapping accumulator
  + unbounded input length.
- ReadOnlySpan<int64> explicit type argument (thread 3).
- SIMD overflow detection: sign-flip / sum-of-absolutes called out as
  unsound; three sound alternatives added (Int128 block accumulator,
  per-block magnitude cap, periodic checked reduce). Fixes threads 6+15.
- assert-in-production: replace F# `assert` (compiled out in Release)
  with explicit if-check + metric + optional circuit-breaker (thread 16).
- CountMin site reclassified Unbounded-stream-sum (no hard cap in code);
  KLL Add site reclassified Unbounded-stream-sum (same argument as
  ZSet.fs:227-230 stream-weight-sum). Fixes threads 12+13.
- Workload-bounded class tightened: "hard numeric cap" required, not
  "unlikely within reasonable lifetime" (thread 18).

Doc hygiene (Copilot P1/P2):
- BenchmarkDotNet example now points at bench/Benchmarks/
  CheckedVsUncheckedBench.fs shape ([<Params>] + [<GlobalSetup>],
  1M/10M/100M sizes) instead of 100M in type body (thread 17).
- Inline-code spans no longer wrap across lines in 5 places (threads
  8, 10, 11 + sweep).
- Prerequisite path uses `subjects/zeta/...` not `docs/craft/...`
  to match the module-relative convention (thread 14).
- Tick-history row line count updated (thread 7).

Obsolete after rebase (already fixed in 1c7f97d):
- Double-pipe table rows (threads 2, 4) — tables now single-pipe.

Build: `dotnet build -c Release` → 0 Warning(s) 0 Error(s).
Copilot AI review requested due to automatic review settings April 24, 2026 14:41
@AceHack AceHack force-pushed the craft/production-dotnet-checked-vs-unchecked-v0 branch from cfc0fb6 to 4ec930e Compare April 24, 2026 14:41
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds a new “production” Craft tier for .NET performance/correctness guidance and seeds it with a first module on checked vs. unchecked arithmetic, plus records the related hygiene-history tick entry.

Changes:

  • Introduces docs/craft/subjects/production-dotnet/ as a distinct production-tier ladder with a tier README.
  • Adds the first production-tier module: checked-vs-unchecked decision framework + proof techniques + Zeta-specific guidance.
  • Appends an Otto-48/auto-loop-48 entry to loop tick history describing the landing of this ladder/module.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

File Description
docs/hygiene-history/loop-tick-history.md Adds a new tick-history row documenting the Craft production-tier/module landing.
docs/craft/subjects/production-dotnet/checked-vs-unchecked/module.md Adds the first production-tier module detailing a decision framework for checked vs unchecked arithmetic.
docs/craft/subjects/production-dotnet/README.md Adds a production-tier index/intro and points to the first module plus planned neighbors.
Comments suppressed due to low confidence (1)

docs/hygiene-history/loop-tick-history.md:1

  • The new history row (171) has an earlier timestamp (2026-04-23) than the preceding rows (168–170 are 2026-04-24) but is appended after them. If this file is intended to be chronological, insert this entry at the correct position by timestamp (or adjust the timestamp if it was meant to be 2026-04-24) so future scans don’t misread the sequence of events.
# Loop-tick history

Comment on lines +70 to +77
| Class | Definition | Default |
|---|---|---|
| **Bounded-by-construction** | The type system or a compile-time constant proves overflow impossible (e.g. `byte + byte → int32`). | unchecked (F# default) |
| **Bounded-by-workload** | A **hard**, stated invariant of the running system proves the sum cannot reach `MaxValue` — e.g. a loop counter with a known iteration cap, a cell count multiplied by a per-cell cap. "Unlikely within a reasonable lifetime" is not a bound; it is a vibe. | unchecked + comment stating the numeric cap |
| **Bounded-by-pre-check** | A cheap upstream guard makes overflow impossible inside the hot loop (the guard is outside the loop). | unchecked inside loop; check at boundary |
| **Unbounded stream sum** | A cumulative value over an unbounded stream — no bound is provable because the stream never ends. | **keep `Checked.`** |
| **User-controlled product** | A product of two caller-provided values that a hostile caller could pick adversarially. | **keep `Checked.`** |
| **SIMD-candidate** | A loop eligible for `Vector<int64>` vectorisation where checked arithmetic is architecturally unavailable. | unchecked with block-boundary overflow detection |
Comment on lines +42 to +44
| Module | Focus | Zeta touchpoint |
|---|---|---|
| [`checked-vs-unchecked`](checked-vs-unchecked/module.md) | When F# `Checked.(+)` is load-bearing vs. when `(+)` is fine | `src/Core/ZSet.fs:227-230` rationale |
counter monotonic, lifetime < 2^63 ops)? → **unchecked with
a citing comment pointing at the invariant.**
4. Is the loop **SIMD-vectorisable** and the width would
material-ise a measured speedup? → **unchecked in the inner
@@ -0,0 +1,421 @@
# Checked vs unchecked arithmetic — when safety is free and when it costs throughput
AceHack added a commit that referenced this pull request Apr 24, 2026
…rows (Amara Govern 1/2) (#227)

* govern: CONTRIBUTOR-CONFLICTS backfill — 3 resolved session-observed rows (Amara Govern-stage 1/2)

Amara's 4th ferry (PR #221 absorb) named populating
docs/CONTRIBUTOR-CONFLICTS.md as the Govern-stage action: the
schema has existed since PR #166 but the Resolved table was
empty despite multiple session-observed contributor-level
disagreements that closed with evidence.

Backfills three genuine contributor-level conflicts observed
this session (narrow scope — not maintainer-directives,
which are out-of-scope per the schema's contributor-level
disagreement definition):

- CC-001: Copilot (PR reviewer) vs Aaron on no-name-attribution
  rule scope (history-file exemption). Resolved in Aaron's
  favor via Otto-52 clarification; policy BACKLOG row filed
  in PR #210.
- CC-002: Amara (4th ferry) vs Otto (pre-Otto-67 pattern) on
  Stabilize-vs-keep-opening-new-frames. Resolved in Amara's
  favor; Otto pivoted at Otto-68 to execute her roadmap;
  3/3 Stabilize + 3/5 Determinize landed via PRs
  #222/#223/#224/#225/#226.
- CC-003: Codex (PR reviewer) vs Otto (initial framing) on
  citing-absent-artifacts. Resolved in Codex's favor via fix
  commits 29872af/1c7f97d on PRs #207/#208; pattern now
  discipline (distinguish merged-on-main from
  proposed-in-PR-open).

All three rows follow the schema's 8-column layout and include
the full Resolution-so-far / Scope / Source cells the schema
requires. No retroactive Aaron→human-maintainer sweep of prior
rows; schema's rule 1 (resolutions are additive) honored.

This is 1/2 of Amara's Govern-stage work. 2/2 is the
authority-envelope + escalation-path ADR (deferred, M-effort).

Part of Amara's 4-stage remediation roadmap
(Stabilize → Determinize → Govern → Assure).

Otto-75 tick.

* govern: annotate CC-002/CC-003 Source cells — PR #221/#219 open, not yet on main

Applies CC-003's own discipline (cite-as-open-not-landed) to CC-002 and CC-003
themselves. Both rows cited `docs/aurora/2026-04-23-amara-memory-drift-*` and
`docs/aurora/2026-04-23-amara-decision-proxy-*` without the "not yet on main"
marker — the files are added by PRs #221 / #219 which are still open.

Drain for PR #227 review threads PRRT_kwDOSF9kNM59RFIx and
PRRT_kwDOSF9kNM59RFJE (dangling file refs at lines 132, 133).

* fix: markdownlint auto-fixes on governance doc

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants