Repository navigation
D-EPI-COT C3c: learned ordering of scent leads over Codec9/lut9 - #1844
Merged
Merged
Conversation
…C3c) ScentLearner reorders C3b leads within a status group from investigation outcomes. Weights and steps are ndarray Codec9 lanes (NEVER_TOUCHED = feature never seen); the learning rate is applied through ndarray::simd::lut9 with a table built by TFLM's LUTPopulateInt8 recipe and pinned against a golden generated from tflite-micro. Only odd rules are prepared; a table for another spec refuses; one source trains once. Output is an order only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMPWTwovjYJEUMuGPb4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMPWTwovjYJEUMuGPb4
… entry) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMPWTwovjYJEUMuGPb4
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
…e rounding) Deltas are built by integer truncation with the zero rule P = present AND (positive OR M == 0); weights add and saturate as integers. Rounding happens only when the rate table is built offline (TFLM recipe). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMPWTwovjYJEUMuGPb4
…n bound Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMPWTwovjYJEUMuGPb4
…sidual Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMPWTwovjYJEUMuGPb4
… plan crosswalk Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMPWTwovjYJEUMuGPb4
AdaWorldAPI
marked this pull request as ready for review
October 28, 2026 21:50
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
1 task done
AdaWorldAPI
added a commit
that referenced
this pull request
Oct 28, 2026
…ndex board: regenerate entries index after #1844; generic ERP wording in C3c docs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
C3c of D-EPI-COT. It builds on C3b (
scent, #1842, merged) and is independent of C3 (#1843).What it does
nars::scent_learn::ScentLearneruses investigation outcomes to learn which C3b leads to test first.Numerics: no runtime rounding, no float roundtrip
The runtime adds no kernel; it uses the merged
ndarray::hpc::codec9::EpiLane9andndarray::simd::lut9.M = |r|·x / 255with integer truncation, which is odd and deterministic. Its sign comes fromr.P = present AND (positive OR M == 0). A delta of −0.49 therefore becomes −0 and then +0, never "never touched" (PZ2).lut9applies the same rule to its output.lut9lookup of an odd table. Only symmetric rules are prepared; asymmetric and biased rules are refused (PZ3). Weights are added and saturated as integers and written back as SM9 codewords.LUTPopulateInt8:x·η, thenTfLiteRound(ties away from zero), then saturation.data/tflm_lut_step_golden.txtwas generated bydocs/research/epistemic-cot/oracles/tflm_lut_step_oracle.cc, compiled against AdaWorldAPI/tflite-micro5f64e4a. The table matches it on all 256 int8 codes for 4 rates.ModelSpec(schema, feature scale, rate), and a learner refuses a table built for another spec (PZ7). This binding is transient and in memory; it is not the EXO-152 PZL-4/G1 binding.Falsifiers
There are 14 tests plus an ignored cost probe. Each of 10 disables turns a test red:
M == 0from the zero rule;The zero-rule disable stayed green twice before its test bound it: first no fixture had a zero delta, then the fixture's residual was positive. The test now uses a negative residual, which is the −0.49 case.
Measured
PZ5 trains on 3-decoy worlds and evaluates on 600 held-out 7-decoy worlds with the known link on the other side (standard error about 0.1):
Earlier 60-world runs read 3.77 on the twin; that was sampling noise. Cost, on one host, release build, 8 leads (reported, not gated):
NSL plans (AdaWorldAPI/neural-structured-learning #1–#8)
The NSL plans are docs-only and predate
lut9. Two parts apply here:No
lance-graph-nslcrate is added. The NSL scratchpad gates lance-graph code on a frozen NSL oracle (H7) and the G01–G12 neighbor fixtures (H1), and neither exists yet.Gates
clippy --libare clean.Not in this PR
sensitivity), is the next step.Owner check and claim: EXO-50
CC:session_01XAqKMPWTwovjYJEUMuGPb4/D-EPI-COT-C3C-OWNER-CHECK-20261028-01.Draft; not for automatic merge.
🤖 Generated with Claude Code
https://claude.ai/code/session_01XAqKMPWTwovjYJEUMuGPb4