From daa126f51f442e979b1498e9d6554e7871c338bd Mon Sep 17 00:00:00 2001 From: Aaron Stainback Date: Thu, 23 Apr 2026 15:48:34 -0400 Subject: [PATCH 1/5] =?UTF-8?q?frontier-readiness:=20gap=20#5=20audit=20?= =?UTF-8?q?=E2=80=94=20TECH-RADAR.md=20+=20FACTORY-HYGIENE.md=20(batched)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ninth + tenth audits in gap #5. TECH-RADAR.md: both (coupled). ThoughtWorks-style radar framework is factory-generic (Legend / Adopt-Trial-Assess- Hold vocabulary / Usage). Entry rows heavily Zeta-library- specific (DBSP / Z-sets / Bloom / FastCDC / etc.). Strategy: Frontier inherits shape + empty Rings table stubs; Zeta retains entry rows. Effort: S. FACTORY-HYGIENE.md: factory-generic (self-classifying). Every row already declares Scope (project/factory/both); the file IS the factory's meta-hygiene substrate, by construction. The split-execution plan reads directly off the Scope column — no retrofit audit needed. Gold standard for how rule substrates should be designed. Confirms gap Progress: 10 of ~16 files audited (Otto-7/9/10/12/13/14/15/ 16). Past the midpoint; ~6 files remaining. Projected completion ~Otto-22. Attribution: Otto (loop-agent PM hat). Co-Authored-By: Claude Opus 4.7 --- .../factory-vs-zeta-separation-audit.md | 103 +++++++++++++++++- 1 file changed, 100 insertions(+), 3 deletions(-) diff --git a/docs/frontier-readiness/factory-vs-zeta-separation-audit.md b/docs/frontier-readiness/factory-vs-zeta-separation-audit.md index b6434981..a12d4411 100644 --- a/docs/frontier-readiness/factory-vs-zeta-separation-audit.md +++ b/docs/frontier-readiness/factory-vs-zeta-separation-audit.md @@ -60,14 +60,14 @@ For each audited file: - **docs/AGENT-BEST-PRACTICES.md** (below, fire #13) - **docs/ALIGNMENT.md** (below, fire #14) - **docs/AUTONOMOUS-LOOP.md** (below, fire #15) -- **docs/WONT-DO.md** (below, fire #15) +- **docs/WONT-DO.md** (below, fire #15) — also ALIGNMENT.md on PR #185 +- **docs/TECH-RADAR.md** (below, fire #16) +- **docs/FACTORY-HYGIENE.md** (below, fire #16) — also AGENT-BEST-PRACTICES.md on PR #184, ALIGNMENT.md on PR #185 ### Files to audit (not yet classified; add rows as they land) - `docs/GLOSSARY.md` -- `docs/FACTORY-HYGIENE.md` - `docs/ROUND-HISTORY.md` -- `docs/TECH-RADAR.md` - `docs/BACKLOG.md` - `docs/ROADMAP.md` - `docs/VISION.md` @@ -574,6 +574,18 @@ own maintainer stack. **Length:** 840 lines. **21 clauses** (HC-1..HC-7, SD-1..SD-9, DIR-1..DIR-5). +## Audit — docs/TECH-RADAR.md + +**Overall classification:** **both (coupled)** — ThoughtWorks- +style radar framework is factory-generic; entry rows are +heavily Zeta-library-specific. + +**File location post-split:** Frontier (shape + Legend + Ring +vocab + Usage pattern); Zeta repo keeps current entry rows. + +**Length:** 122 lines. **Legend + Rings (Techniques / Tools / +infra) + Usage.** + ### Section-by-section breakdown | Section | Class | Notes | @@ -632,6 +644,91 @@ factory-generic by design. The overall class is **both file through the "both" refactor path at split time — not because the substance is non-generic. +### Section-by-section breakdown — TECH-RADAR.md + +| Section | Class | Notes | +|---|---|---| +| Preamble | factory-generic | ThoughtWorks radar attribution. | +| Legend (Adopt / Trial / Assess / Hold) | factory-generic | Standard ring vocabulary. | +| Rings — Techniques table | zeta-library-specific | ~30 rows: DBSP algebra / Z-sets / semi-naive LFP / Bloom / FastCDC / residuated lattices / etc. All Zeta-library technical decisions. | +| Rings — Tools / infra table | **both** | Tooling decisions: some Zeta-specific (NuGet, F# tooling), some factory-generic (CI, auto-merge). Mixed per-row. | +| Usage | factory-generic | How to add a row, ring-motion protocol. | + +### Refactor notes — TECH-RADAR.md + +Before split: +1. Frontier inherits Legend + Usage + empty Rings table + stubs (Techniques / Tools sections). +2. Zeta retains full current entry rows as the library's + technology-research record. +3. Tools/infra section has mixed entries — move + factory-generic entries to Frontier as examples; + Zeta-specific entries stay. + +Effort: **S** — mostly extraction; shape transfer is trivial. + +### Classification rationale — TECH-RADAR.md + +TECH-RADAR.md is a research-tracking substrate. Shape is +Universal (ThoughtWorks pattern is explicit); adopters fork +the shape and fill in their own research. The Zeta-specific +content is exactly what makes the radar useful for Zeta; in +Frontier, adopters get the shape to fill with their own +content. + +## Audit — docs/FACTORY-HYGIENE.md + +**Overall classification:** **factory-generic** (self- +classifying) — the file IS a meta-audit of the factory's +hygiene discipline, and already has a Scope column per row +declaring project / factory / both. The shape + content are +purely factory-generic. + +**File location post-split:** Frontier as-is with trivial +adopter-fill-in of project-scoped rows. + +**Length:** 203 lines + the Scope column's inline +classification per row (already done by gap #8 discovery: +gap #8 in the Frontier readiness roadmap was closed on +re-inspection because this file self-classifies). + +### Meta-audit insight + +FACTORY-HYGIENE.md's Scope column IS the factory-vs-Zeta +separation done inline per hygiene-row: + +- Rows marked `factory` → move to Frontier verbatim +- Rows marked `project` → move to Zeta's own hygiene doc +- Rows marked `both` → replicate in both repos with + surgical cross-references + +The "Ships to project-under-construction" section projects +the adopter subset that ships with Frontier adoption. + +### Refactor notes — FACTORY-HYGIENE.md + +Trivial. The file's own Scope column is the split manifest: + +1. Filter rows where Scope = `factory` or `both` → Frontier +2. Filter rows where Scope = `project` or `both` → Zeta +3. Preserve the "Ships to project-under-construction" + projection in Frontier as the canonical adopter subset + +Effort: **S** — mechanical filtering using existing Scope +column. + +### Classification rationale — FACTORY-HYGIENE.md + +FACTORY-HYGIENE.md is the factory's meta-hygiene substrate, +by construction. Every row already declares its scope; the +split-execution plan reads directly off the Scope column. +This file is the gold standard for how rule substrates +should be designed from the start — self-classifying, no +retrofit audit needed. Confirms gap #8's closure: the +hypothesis "hygiene rows not tagged" was wrong; the rows +were all tagged. This audit formalises the self- +classification as the file's purpose. + ## How this audit connects to the multi-repo split Gap #5 (this audit) is load-bearing for gap #1 (multi-repo From f37f5cb136344acf036d5aed37f084c0c76d0b65 Mon Sep 17 00:00:00 2001 From: Aaron Stainback Date: Fri, 24 Apr 2026 11:16:23 -0400 Subject: [PATCH 2/5] =?UTF-8?q?frontier-readiness:=20address=20PR=20#188?= =?UTF-8?q?=20review=20threads=20=E2=80=94=20FACTORY-HYGIENE=20reclass=20+?= =?UTF-8?q?=20TECH-RADAR=20completeness?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drain all 6 review threads on gap #5 audit: - Codex P1 (thread PRRT...9NJbm): reclassify FACTORY-HYGIENE from `factory-generic` + "Frontier as-is" to `both (coupled)` with asymmetric derivation (Frontier keeps canonical, Zeta derives project-scoped rows). Internal consistency with the Scope-column split manifest. - Copilot P1 (thread ...LhE, outdated): Otto persona registry — out of scope for this PR; registration is backlog-level work tracked separately. Acknowledging for audit-trail only. - Copilot P1 (thread ...LhG): TECH-RADAR length corrected (122 -> 128 lines) and "Legend + Rings ... + Usage" summary expanded to include Upstreams / Hardware intrinsics. - Copilot P1 (thread ...LhS): TECH-RADAR section-by-section table expanded with two missing section rows (Upstreams / prior art; Hardware intrinsics / platform). - Copilot P2 (thread ...LiC): FACTORY-HYGIENE length corrected (203 -> 206 lines; file grew on main between audit and now). - Copilot P1 (thread ...LiT): FACTORY-HYGIENE post-split plan rewritten for internal consistency — Frontier keeps canonical, Zeta derives; "Ships to project-under-construction" is a Frontier-only projection over the canonical table. Rebased onto origin/main; resolved merge-list conflict in "Files audited" section preserving both sets of additions. Co-Authored-By: Claude Opus 4.7 --- .../factory-vs-zeta-separation-audit.md | 84 ++++++++++++------- 1 file changed, 52 insertions(+), 32 deletions(-) diff --git a/docs/frontier-readiness/factory-vs-zeta-separation-audit.md b/docs/frontier-readiness/factory-vs-zeta-separation-audit.md index a12d4411..a20e1fd7 100644 --- a/docs/frontier-readiness/factory-vs-zeta-separation-audit.md +++ b/docs/frontier-readiness/factory-vs-zeta-separation-audit.md @@ -583,8 +583,8 @@ heavily Zeta-library-specific. **File location post-split:** Frontier (shape + Legend + Ring vocab + Usage pattern); Zeta repo keeps current entry rows. -**Length:** 122 lines. **Legend + Rings (Techniques / Tools / -infra) + Usage.** +**Length:** 128 lines. **Legend + Rings (Techniques / Tools / +infra / Upstreams / Hardware intrinsics) + Usage.** ### Section-by-section breakdown @@ -652,6 +652,8 @@ because the substance is non-generic. | Legend (Adopt / Trial / Assess / Hold) | factory-generic | Standard ring vocabulary. | | Rings — Techniques table | zeta-library-specific | ~30 rows: DBSP algebra / Z-sets / semi-naive LFP / Bloom / FastCDC / residuated lattices / etc. All Zeta-library technical decisions. | | Rings — Tools / infra table | **both** | Tooling decisions: some Zeta-specific (NuGet, F# tooling), some factory-generic (CI, auto-merge). Mixed per-row. | +| Rings — Upstreams / prior art | zeta-library-specific | Prior-art and upstream references for the library's technical direction; part of Zeta's research and implementation context, not factory substrate. | +| Rings — Hardware intrinsics / platform | zeta-library-specific | Platform / hardware-sensitive implementation concerns belong with DBSP library performance/runtime choices, not the generic factory. | | Usage | factory-generic | How to add a row, ring-motion protocol. | ### Refactor notes — TECH-RADAR.md @@ -678,16 +680,21 @@ content. ## Audit — docs/FACTORY-HYGIENE.md -**Overall classification:** **factory-generic** (self- -classifying) — the file IS a meta-audit of the factory's -hygiene discipline, and already has a Scope column per row -declaring project / factory / both. The shape + content are -purely factory-generic. - -**File location post-split:** Frontier as-is with trivial -adopter-fill-in of project-scoped rows. - -**Length:** 203 lines + the Scope column's inline +**Overall classification:** **both (coupled)** — the file +is the factory's meta-hygiene substrate (factory-generic +shape), but the per-row Scope column already tags rows as +`project` / `factory` / `both`, meaning execution of the +split is not a whole-file move. Classifying as +`factory-generic` + "Frontier as-is" would drop +project-scoped hygiene rows out of Zeta at split time. + +**File location post-split:** Frontier keeps the canonical +`FACTORY-HYGIENE.md` intact as the factory's meta-hygiene +substrate; Zeta derives a project-specific hygiene doc by +filtering rows whose Scope is `project` or `both`. The +split is asymmetric (derivation, not duplication). + +**Length:** 206 lines + the Scope column's inline classification per row (already done by gap #8 discovery: gap #8 in the Frontier readiness roadmap was closed on re-inspection because this file self-classifies). @@ -695,39 +702,52 @@ re-inspection because this file self-classifies). ### Meta-audit insight FACTORY-HYGIENE.md's Scope column IS the factory-vs-Zeta -separation done inline per hygiene-row: +separation manifest, but the intended post-split shape is +asymmetric: -- Rows marked `factory` → move to Frontier verbatim -- Rows marked `project` → move to Zeta's own hygiene doc -- Rows marked `both` → replicate in both repos with - surgical cross-references +- Frontier keeps the canonical `FACTORY-HYGIENE.md` intact + as the factory's meta-hygiene substrate +- Zeta derives its own project-specific hygiene doc from + the rows whose Scope is `project` or `both` +- Rows marked `both` remain canonical in Frontier and are + mirrored into the derived Zeta doc with surgical + cross-references where needed -The "Ships to project-under-construction" section projects -the adopter subset that ships with Frontier adoption. +The "Ships to project-under-construction" section is a +Frontier-side projection over the canonical table: the +adopter subset that ships with Frontier adoption. ### Refactor notes — FACTORY-HYGIENE.md Trivial. The file's own Scope column is the split manifest: -1. Filter rows where Scope = `factory` or `both` → Frontier -2. Filter rows where Scope = `project` or `both` → Zeta +1. Keep `FACTORY-HYGIENE.md` in Frontier as the canonical + source of truth; do not split the main table into peer + Frontier-vs-Zeta copies +2. Derive Zeta's project-specific hygiene doc by filtering + rows where Scope = `project` or `both` 3. Preserve the "Ships to project-under-construction" - projection in Frontier as the canonical adopter subset + projection in Frontier only, because it is a projection + over the canonical table rather than part of the + derived Zeta doc -Effort: **S** — mechanical filtering using existing Scope -column. +Effort: **S** — mechanical derivation using the existing +Scope column. ### Classification rationale — FACTORY-HYGIENE.md FACTORY-HYGIENE.md is the factory's meta-hygiene substrate, -by construction. Every row already declares its scope; the -split-execution plan reads directly off the Scope column. -This file is the gold standard for how rule substrates -should be designed from the start — self-classifying, no -retrofit audit needed. Confirms gap #8's closure: the -hypothesis "hygiene rows not tagged" was wrong; the rows -were all tagged. This audit formalises the self- -classification as the file's purpose. +by construction. Every row already declares its scope, so +split execution reads directly off the Scope column +without re-classification: Frontier keeps the canonical +file, and Zeta receives a derived project-facing hygiene +doc. This file is the gold standard for how rule +substrates should be designed from the start — +self-classifying, no retrofit audit needed. Confirms gap +#8's closure: the hypothesis "hygiene rows not tagged" +was wrong; the rows were all tagged. This audit +formalises that self-classification as the file's +purpose. ## How this audit connects to the multi-repo split From 74ff9d84d6956b9ce6ad820e8714524b12811883 Mon Sep 17 00:00:00 2001 From: Aaron Stainback Date: Fri, 24 Apr 2026 11:30:17 -0400 Subject: [PATCH 3/5] =?UTF-8?q?frontier-readiness:=20address=20PR=20#188?= =?UTF-8?q?=20review=20threads=20=E2=80=94=20ThoughtWorks-style=20hyphen?= =?UTF-8?q?=20wrap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thread PRRT_kwDOSF9kNM59b9Q5 (P1, copilot-pull-request-reviewer): Rewrap sentence so "ThoughtWorks-style" stays together without the end-of-line hyphen that rendered as "ThoughtWorks- style". Thread PRRT_kwDOSF9kNM59b9RY (P1, copilot-pull-request-reviewer) on FACTORY-HYGIENE length: keeping stated "Length: 206 lines" — ground truth at this HEAD (and at origin/main) is `wc -l docs/FACTORY-HYGIENE.md` = 206, not 207 as the reviewer estimated. No change needed. Composes with prior 74de42d review-thread batch. Co-Authored-By: Claude Opus 4.7 --- docs/frontier-readiness/factory-vs-zeta-separation-audit.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/frontier-readiness/factory-vs-zeta-separation-audit.md b/docs/frontier-readiness/factory-vs-zeta-separation-audit.md index a20e1fd7..ee5d3d90 100644 --- a/docs/frontier-readiness/factory-vs-zeta-separation-audit.md +++ b/docs/frontier-readiness/factory-vs-zeta-separation-audit.md @@ -576,9 +576,9 @@ SD-1..SD-9, DIR-1..DIR-5). ## Audit — docs/TECH-RADAR.md -**Overall classification:** **both (coupled)** — ThoughtWorks- -style radar framework is factory-generic; entry rows are -heavily Zeta-library-specific. +**Overall classification:** **both (coupled)** — ThoughtWorks-style +radar framework is factory-generic; entry rows are heavily +Zeta-library-specific. **File location post-split:** Frontier (shape + Legend + Ring vocab + Usage pattern); Zeta repo keeps current entry rows. From 61ba292abbdbb4536c708fdb7ad303d238e7286a Mon Sep 17 00:00:00 2001 From: Aaron Stainback Date: Fri, 24 Apr 2026 15:45:01 -0400 Subject: [PATCH 4/5] fix: markdownlint auto-fixes on tech-radar/factory-hygiene audit Co-Authored-By: Claude Opus 4.7 --- .../factory-vs-zeta-separation-audit.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/frontier-readiness/factory-vs-zeta-separation-audit.md b/docs/frontier-readiness/factory-vs-zeta-separation-audit.md index ee5d3d90..48c26023 100644 --- a/docs/frontier-readiness/factory-vs-zeta-separation-audit.md +++ b/docs/frontier-readiness/factory-vs-zeta-separation-audit.md @@ -659,6 +659,7 @@ because the substance is non-generic. ### Refactor notes — TECH-RADAR.md Before split: + 1. Frontier inherits Legend + Usage + empty Rings table stubs (Techniques / Tools sections). 2. Zeta retains full current entry rows as the library's @@ -743,11 +744,11 @@ without re-classification: Frontier keeps the canonical file, and Zeta receives a derived project-facing hygiene doc. This file is the gold standard for how rule substrates should be designed from the start — -self-classifying, no retrofit audit needed. Confirms gap -#8's closure: the hypothesis "hygiene rows not tagged" -was wrong; the rows were all tagged. This audit -formalises that self-classification as the file's -purpose. +self-classifying, no retrofit audit needed. Confirms +gap #8's closure: the hypothesis "hygiene rows not +tagged" was wrong; the rows were all tagged. This +audit formalises that self-classification as the +file's purpose. ## How this audit connects to the multi-repo split From b337c3616a656da18681be23803a2b48b51bb633 Mon Sep 17 00:00:00 2001 From: Aaron Stainback Date: Fri, 24 Apr 2026 15:52:29 -0400 Subject: [PATCH 5/5] drain: resolve 4 threads on #188 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Audited-files list: qualify AGENT-BEST-PRACTICES.md and ALIGNMENT.md with docs/ prefix (P1, copilot). - TECH-RADAR refactor notes (1): stubs cover all four Rings sections — Techniques, Tools/infra, Upstreams/prior art, Hardware intrinsics/platform (P1 copilot + P2 codex). - TECH-RADAR refactor notes (3): mixed Tools/infra rows are *copied* (not moved); canonical ownership is Frontier; Zeta keeps its historical entry rows (P2 codex). Co-Authored-By: Claude Opus 4.7 --- .../factory-vs-zeta-separation-audit.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/docs/frontier-readiness/factory-vs-zeta-separation-audit.md b/docs/frontier-readiness/factory-vs-zeta-separation-audit.md index 48c26023..a540b66c 100644 --- a/docs/frontier-readiness/factory-vs-zeta-separation-audit.md +++ b/docs/frontier-readiness/factory-vs-zeta-separation-audit.md @@ -60,9 +60,9 @@ For each audited file: - **docs/AGENT-BEST-PRACTICES.md** (below, fire #13) - **docs/ALIGNMENT.md** (below, fire #14) - **docs/AUTONOMOUS-LOOP.md** (below, fire #15) -- **docs/WONT-DO.md** (below, fire #15) — also ALIGNMENT.md on PR #185 +- **docs/WONT-DO.md** (below, fire #15) — also docs/ALIGNMENT.md on PR #185 - **docs/TECH-RADAR.md** (below, fire #16) -- **docs/FACTORY-HYGIENE.md** (below, fire #16) — also AGENT-BEST-PRACTICES.md on PR #184, ALIGNMENT.md on PR #185 +- **docs/FACTORY-HYGIENE.md** (below, fire #16) — also docs/AGENT-BEST-PRACTICES.md on PR #184, docs/ALIGNMENT.md on PR #185 ### Files to audit (not yet classified; add rows as they land) @@ -661,12 +661,19 @@ because the substance is non-generic. Before split: 1. Frontier inherits Legend + Usage + empty Rings table - stubs (Techniques / Tools sections). + stubs for all current Rings sections (Techniques, + Tools / infra, Upstreams / prior art, Hardware + intrinsics / platform). 2. Zeta retains full current entry rows as the library's technology-research record. -3. Tools/infra section has mixed entries — move - factory-generic entries to Frontier as examples; - Zeta-specific entries stay. +3. Tools/infra section has mixed entries — **copy** (do + not move) factory-generic entries to Frontier as + examples. Canonical ownership of each carried row is + **Frontier** (the factory-generic example ring), + with Zeta's Tools/infra table as a decision record + that may reference them. No row is removed from + Zeta during split; duplication is intentional so + Zeta's historical radar record stays complete. Effort: **S** — mostly extraction; shape transfer is trivial.