Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
Pull request overview
Resurrects and lands the backlog row set from superseded PR #334 (now conflict-free with #338) by inserting four new P1 backlog entries about per-entry-point DSLs, a container/composition DSL pattern, LINQ surfaces, and signal-processing primitives, and by updating the KSK naming-definition row (P3 → P2) to lock the canonical expansion.
Changes:
- Add four new P1 backlog rows (Otto-139/146/147/148/149) ahead of the existing parser-tech row (Otto-160).
- Update the KSK naming-definition backlog row to lead with the canonical expansion and elevate its priority.
…-ferry §B + §F + corrections #2 #7 #9 (#342) Research-grade design doc for the Stage-2 rung of Amara's corrected promotion ladder. Specifies: (a) placement under src/Experimental/CartelLab/ (not src/Core/ — that's Stage 4); (b) MetricVector type with PLV magnitude AND offset split (correction #6); (c) INullModelGenerator interface + Preserves/Avoids table columns; (d) IAttackInjector forward-looking interface (Stage 3); (e) Wilson-interval reporting contract with {successes, trials, lowerBound, upperBound} schema (correction #2 — no more "~95% CI ±5%" handwave); (f) RobustZScoreMode with Hybrid fallback (correction #7 — percentile-rank when MAD < epsilon); (g) explicit artifact-output layout under artifacts/ coordination-risk/ with five files + run-manifest.json (correction #9). 6-stage promotion path (0 doc / 1 ADR / 2.a skeleton / 2.b full null-models + first attack / 3 attack suite / 4 Core/NetworkIntegrity / 5 Aurora-KSK) matches Amara's corrected ladder and Otto-105 cadence. Doc-only change; no code, no tests, no workflow, no BACKLOG tail touch (avoids positional-conflict pattern that cost #334 → #341 re-file this session). This is the 7th of 10 18th-ferry operationalizations: - #1/#10 test-classification (#339) - #2 Wilson-interval design specified (this doc) - #6 PLV phase-offset shipped (#340) - #7 MAD=0 Hybrid mode specified (this doc) - #9 artifact layout specified (this doc) - #4 exclusivity already shipped (#331) - #5 modularity relational already shipped (#324) Remaining: Wilson-interval IMPLEMENTATION (waits on #323 + Stage 2.a), MAD=0 Hybrid IMPLEMENTATION (waits on #333 + Stage 2.a), conductance-sign doc (waits on #331), Stage-2.a skeleton itself. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
…er-DSL / LINQ / signal-proc + KSK canonical expansion
Four new P1 post-v1-roadmap rows + one row updated:
1. **Per-entry-point F# DSLs + industry-standard surfaces**
(Otto-139 + Otto-146). Graph gets GQL ISO 39075 / Cypher /
Gremlin / SPARQL / Datalog survey; temporal gets Esper EPL
/ Flink SQL; time-series gets Flux / PromQL / KQL; claim /
detect / authorize stay Zeta-native (no industry standard
fits). Aaron clarifier "i know there are graph standards"
acknowledged — GQL / Cypher / Gremlin are the top three.
2. **F# DSL composition + container-DSL pattern** (Otto-147
final question). Answer: YES, F# supports DSL composition
via nested CEs, `MergeSources` (F# 5+), custom operations,
builder delegation. Aaron's "container DSL" guess is
exactly the right pattern name. Implementation plan: top-
level `zeta { }` container CE that hosts child builders
(graph / claims / stream / signal / authorize / detect)
via `MergeSources` + folded state. Retraction-native
semantics bubble through container. Prior art: FParsec,
Giraffe, SAFE Stack.
3. **LINQ-compatible entry points for C# on every F# DSL**
(Otto-148). `IQueryable<T>` + `IGraphQueryable<TNode>` +
`IStreamQueryable<T>` + `ISignalQueryable<T>` +
`IClaimQueryable<T>`. Clever mapping goal: auto-generate
LINQ provider from F# CE via the `query` translator where
feasible, not hand-written mirrors. Expression-tree
preservation — LINQ lowers to same Zeta operator IR.
4. **Signal-processing primitives — FFT, Hilbert, windowing,
filters** (Otto-149). Standing approval to land whenever
cadence permits. Unblocks Amara 17th-ferry correction #5
Option B (Hilbert-based phase pipeline). Placement:
`src/Core/SignalProcessing.fs` new module +
`hilbertPhase` addition to `src/Core/PhaseExtraction.fs`.
Also updated:
- **KSK naming doc row** (line 4278). Max-coordination gate
LIFTED per Aaron Otto-140 (*"Coordination required: Max
per Otto-77 change whatever you need, max created the ksk
at my direction, it's my and amaras idea, he just commited
some inital starting point, all completely rewritable"*).
Canonical expansion locked per Aaron Otto-142..145 self-
correction: *"kinetic safeguare Kernel, i did the wrong
name / it is what amara said / kinetic safeguard kernel"*.
Resolves Amara 16th-ferry correction #7. "Kernel" here =
safety-kernel / security-kernel sense (Anderson 1972,
Saltzer-Schroeder reference-monitor, aviation safety-
kernel) — NOT OS-kernel-mode. Max attribution preserved as
initial-starting-point contributor per Otto-77. Priority
elevated P3 → P2.
Filed per Aaron's "backlog" directive plus verify-before-
deferring discipline — prior summary claim that these rows
had already landed turned out to be hallucination; git log
confirmed only the (now-updated) KSK row existed pre-tick.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Active PR-resolve-loop on #341. 1. ISO GQL 39075 citation (thread 59WKAJ, P2): imprecise citation replaced with canonical form "ISO/IEC 39075:2024 (GQL)" — Graph Query Language. Easier for readers to validate against the actual standard's indexing. 2. MergeSources / and! cross-builder claim (thread 59WKAv, P1): clarified that MergeSources works WITHIN a single active CE builder that defines Source/MergeSources members for compatible types — NOT across fundamentally different DSL builders. The original wording read as if `graph + veridicality + signal` DSLs could combine directly in one `and!` chain; that's misleading. True cross-DSL combination requires the container-DSL pattern (next row's top-level `zeta { }` CE with child-builder delegation via its own Source overloads). Rewording makes the distinction explicit. 3. Brittle line-reference `row 4278 (KSK)` (thread 59WKBD, P1): replaced line-number cross-refs with title/section-anchor cross-refs. "row 733 (F# DSL reimagining SQL)" / "row 719 (LINQ integration)" / "row 4278 (KSK)" → "the F# DSL reimagining SQL row (P1 SQL-frontend section)" / "LINQ integration row (same section)" / "KSK naming definition doc row (P2 research-grade section)". Titles survive BACKLOG row-reordering; line numbers don't. All 3 threads have substantive replies pending via GraphQL (next step same tick). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
bf5ab7a to
8495761
Compare
| a container-DSL pattern (see next row); (5) | ||
| implementation in graduation cadence per surface. | ||
| Priority P1 post-v1-roadmap; effort L (multi-round, per | ||
| surface). Composes with the "F# DSL reimagining SQL" | ||
| row (P1 SQL-frontend section) and "LINQ integration" | ||
| row (same section) and the "KSK naming definition doc" | ||
| row (P2 research-grade section — title anchors instead | ||
| of brittle line numbers). |
There was a problem hiding this comment.
P1: This paragraph says it composes with other items and even notes “title anchors instead of brittle line numbers”, but still refers to other items by “row …”. Please change these to title/section references to stay consistent and avoid churn when the file is edited.
| a container-DSL pattern (see next row); (5) | |
| implementation in graduation cadence per surface. | |
| Priority P1 post-v1-roadmap; effort L (multi-round, per | |
| surface). Composes with the "F# DSL reimagining SQL" | |
| row (P1 SQL-frontend section) and "LINQ integration" | |
| row (same section) and the "KSK naming definition doc" | |
| row (P2 research-grade section — title anchors instead | |
| of brittle line numbers). | |
| a container-DSL pattern (see the **F# DSL composition + | |
| container-DSL pattern — all Zeta DSLs first-class | |
| composable.** item below); (5) implementation in | |
| graduation cadence per surface. Priority P1 | |
| post-v1-roadmap; effort L (multi-round, per surface). | |
| Composes with the "F# DSL reimagining SQL" item (P1 | |
| SQL-frontend section), the "LINQ integration" item | |
| (same section), and the "KSK naming definition doc" | |
| item (P2 research-grade section — title anchors | |
| instead of brittle line numbers). |
| population) can use query syntax natively: | ||
| - **Relational** — `IQueryable<T>` + EF Core provider | ||
| (already in roadmap via row 719). Maps directly to | ||
| Zeta operators. |
There was a problem hiding this comment.
P1: This entry uses a brittle line-number cross-reference (“already in roadmap via row 719”). Please reference the target backlog item by its title/section instead of a row/line number.
| post-v1-roadmap; effort L (per-surface LINQ-provider | ||
| implementation after core F# DSL stabilizes). Composes | ||
| with per-entry-point DSL row + container-DSL row + row | ||
| 719 LINQ integration. |
There was a problem hiding this comment.
P1: Another brittle line-number reference (“row 719 LINQ integration”)—please replace with a title/section reference (e.g., the “LINQ integration (IQueryable<T> roots)” item in the P1 SQL frontend section).
…coreRobust Active PR-resolve-loop on #333. 1. Doc/impl contradiction on MAD=0 (thread 59VhYb, P1): RobustStats.robustZScore doc said "returns None when MAD(baseline)=0" but impl uses MadFloor and returns Some finite value. Rewrote doc to match impl: explicit "MadFloor substituted when MAD collapses to zero" — floor reflects "scale is below epsilon" not "undefined." Implementation is the contract. 2. Multi-enumeration of baseline seq (thread 59VhYq, P1): robustZScore previously passed `baseline` to both `median` + `mad` which each call `Seq.toArray`. Expensive AND inconsistent for lazy/non-repeatable sequences (different values between enumerations = undefined behavior). Fixed: `Seq.toArray` once at entry, pass the materialized array to both. O(n) instead of O(2n); stable across lazy sources. 3. Name attribution in Graph.fs doc comment (thread 59VhY5, P1): "Amara 17th-ferry... Otto 18th graduation" → "external AI collaborator's 17th courier ferry... Eighteenth graduation under the Otto-105 cadence." Role-reference convention per AGENT-BEST-PRACTICES code/doc rule. 4. Array-vs-seq terminology (thread 59VhZG, P2): Graph.fs doc said callers "provide arrays" but the API is `double seq`. Rewrote: sequences + noted the materialize-once optimization in robustZScore so callers can pass any seq form without re-enumeration cost. Thread 59VhX9 (P3-label-in-P2-section mismatch) — already resolved on main via PR #341 which landed the signal- processing row correctly labeled "P2 research-grade." No fix needed on this branch. Build: 0 Warning(s) / 0 Error(s). 53 RobustStats + Graph tests pass. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…mara #4 robust) + 3 BACKLOG rows (#333) * core: RobustStats.robustZScore + Graph.coordinationRiskScoreRobust — 18th graduation (Amara #4 robust) Two ships consolidated per the 'parallel PRs hit positional conflicts on tail-append' lesson: 1. RobustStats.robustZScore (baseline: double seq) -> (measurement: double) -> double option Returns (measurement - median) / (1.4826 · MAD). The 1.4826 constant scales MAD to be consistent with Gaussian stddev. MadFloor prevents blow-up when every baseline value equal. 2. Graph.coordinationRiskScoreRobust alpha beta eigenTol eigenIter lpIter (baselineLambdas: double seq) (baselineQs: double seq) (attacked: Graph<'N>) -> double option Upgrades coordinationRiskScore (PR #328) from raw linear differences to robust-standardized z-scores per Amara 17th-ferry correction #4. Caller provides baseline metric distributions; Z-scores calibrate thresholds from data. Why robust z-scores: adversarial data isn't normally distributed. An attacker can poison a ~normal distribution by adding a few outliers that inflate stddev, making subsequent real attacks look 'within one sigma'. Median+MAD survives ~50% adversarial outliers. Standard move in robust statistics literature; Amara's correction puts it on the Zeta composite. Tests (5 new; total 39 since main hasn't merged #331/#332 yet): - robustZScore None on empty baseline - robustZScore of measurement = median is 0 - robustZScore scales MAD by 1.4826 for Gaussian consistency (measurement 4 on baseline [1..5] ≈ 0.674) - coordinationRiskScoreRobust fires strongly on K4-injected graph given 5 baseline samples - coordinationRiskScoreRobust returns None on empty baselines BACKLOG rows added this tick per Aaron Otto-139 directives: 1. Signal-processing primitives (FFT + Hilbert) — unblocks Amara correction #5 Option B; Aaron standing-approval 2. F# DSL for entry points + graph-query-language standards compliance (Cypher / GQL / Gremlin / SPARQL / Datalog) 3. LINQ-compatible entry points for C# consumers — pair with F# DSL; two frontends, one algebraic backend 6 of 8 Amara 17th-ferry corrections now shipped or confirmed: Remaining: #6 ADR phrasing (already fine); #7 KSK naming (BACKLOG #318 Max coord pending); #8 SOTA humility (doc-phrasing discipline ongoing). Build: 0 Warning / 0 Error. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(#333): 4 review-thread P1/P2s on robustZScore + coordinationRiskScoreRobust Active PR-resolve-loop on #333. 1. Doc/impl contradiction on MAD=0 (thread 59VhYb, P1): RobustStats.robustZScore doc said "returns None when MAD(baseline)=0" but impl uses MadFloor and returns Some finite value. Rewrote doc to match impl: explicit "MadFloor substituted when MAD collapses to zero" — floor reflects "scale is below epsilon" not "undefined." Implementation is the contract. 2. Multi-enumeration of baseline seq (thread 59VhYq, P1): robustZScore previously passed `baseline` to both `median` + `mad` which each call `Seq.toArray`. Expensive AND inconsistent for lazy/non-repeatable sequences (different values between enumerations = undefined behavior). Fixed: `Seq.toArray` once at entry, pass the materialized array to both. O(n) instead of O(2n); stable across lazy sources. 3. Name attribution in Graph.fs doc comment (thread 59VhY5, P1): "Amara 17th-ferry... Otto 18th graduation" → "external AI collaborator's 17th courier ferry... Eighteenth graduation under the Otto-105 cadence." Role-reference convention per AGENT-BEST-PRACTICES code/doc rule. 4. Array-vs-seq terminology (thread 59VhZG, P2): Graph.fs doc said callers "provide arrays" but the API is `double seq`. Rewrote: sequences + noted the materialize-once optimization in robustZScore so callers can pass any seq form without re-enumeration cost. Thread 59VhX9 (P3-label-in-P2-section mismatch) — already resolved on main via PR #341 which landed the signal- processing row correctly labeled "P2 research-grade." No fix needed on this branch. Build: 0 Warning(s) / 0 Error(s). 53 RobustStats + Graph tests pass. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Summary
Resurrect of PR #334 after it went DIRTY when #338 (Otto-160 parser-tech row) merged into the same BACKLOG.md section.
Fresh branch off current main; cherry-picked #334's commit; resolved conflict by keeping BOTH sets of rows — the 4 new rows from #334 (per-entry-point DSLs + container DSL + LINQ + signal-proc) come first, followed by the Otto-160 parser-tech row which references "per-entry-point F# DSLs row above" in its body.
Contents (same as #334 pre-conflict)
Parser-tech row from #338 (Otto-160) stays in place after these four.
Action
Will close #334 after this merges.
Test plan
🤖 Generated with Claude Code