Skip to content

batch11: sovereign BitNet attention + B7 dedup + sovereignty purge + paper track#60

Open
danielcamposramos wants to merge 49 commits into
mainfrom
codex/batch11-knowledge-waves-observability-game2d-2026-04-15
Open

batch11: sovereign BitNet attention + B7 dedup + sovereignty purge + paper track#60
danielcamposramos wants to merge 49 commits into
mainfrom
codex/batch11-knowledge-waves-observability-game2d-2026-04-15

Conversation

@danielcamposramos
Copy link
Copy Markdown
Owner

Summary

  • First sovereign GPU attention kernel path — BitNet b1.58 (1.6 bits/weight, multiplication-free add/sub/skip) + contrastive margin ranking (no softmax in hot path). Codex was bypassed this round; sub-agents implemented directly.
  • 6 new opcodes registered in the RPN runtime (append-only, per Expand-Not-Replace doctrine).
  • 6 standing doctrines formalized in agent memory + TEMP docs.
  • 5 Potemkin files archived to Old_Attempts/2026-04-18/ with per-file READMEs and a single ImportError shim for the one file with active importers.
  • 222 files / +172,581 / −3,842 — consolidates all turn-1 through turn-6 work from the 2026-04-18 architecture session.

Kernel landing

Files:

  • knowledge3d/cranium/kernels/bitnet_attention.cu (577 lines)
  • knowledge3d/cranium/kernels/bitnet_attention.ptx (19 KB, sm_86)
  • knowledge3d/cranium/tests/test_bitnet_smoke.py (5/5 passing)
  • knowledge3d/cranium/ptx_runtime/rpn_opcodes.py (6 new opcode entries)

Compile command (reference):

nvcc --ptx -arch=sm_86 -O3 --use_fast_math -I. \
  knowledge3d/cranium/kernels/bitnet_attention.cu \
  -o knowledge3d/cranium/kernels/bitnet_attention.ptx

Opcodes landed (actual names from production rpn_opcodes.py)

Opcode Name Role
0x1AA TERNARY_MATMUL_ADDSUB BitNet add/sub/skip over 1.6-bit × INT8
0x1AB TERNARY_PACK5 5 trits → 1 byte
0x1AC TERNARY_UNPACK5 1 byte → 5 trits (2KB __constant__ LUT)
0x1AD VEC_NORM_L2_INT8 Mandatory post-attention L2 norm (scale=64 headroom)
0x1AE ATTENTION_MARGIN_SHIFT Path A — 1-cycle shift, 22% precision loss
0x1AF ATTENTION_MARGIN_SCALED Path B — 3-cycle scaled, lossless, mandatory smem prefetch

Registry §11 patched: VEC_NORM_L2_INT8 sealed at 0x1AD (was draft 0x1B0 — superseded); 0x1B1–0x1B5 sub-reserved for attention-future expansion; 0x1B6–0x1B9 owned by bulk-lib-purge.

First sovereign benchmark

  • benchmarks/sovereign_bitnet_attention.py (359 lines)
  • Hot-path compliance gate (static grep + dynamic verification)
  • Emits latency_ms p50/p95, top_k_consistency, convergence_verified, kernel_path_trace, vram_peak_mb, sovereign_compliance
  • --quick smoke mode; full run = 100 queries
  • Non-zero exit on compliance FAIL — no silent fallbacks

Turn-6 rulings honored

  1. Path B (ATTENTION_MARGIN_SCALED) smem-prefetch is MANDATORY in all kernels — no non-prefetch variant
  2. d-mismatch handling = silent rescale (no warn, no log, no exit)
  3. 0x1A9 default margin path = Path A (SHIFT); runtime lane-switch to Path B via opcode flag

Six standing doctrines formalized (memory + TEMP)

  1. Opcode range-reservation protocol — registry-first before any parallel-lane dispatch (fixed by 0x1AD collision forensics)
  2. Hyper-modular symlink architecture — phases stand on each other; no stubs; sequential-constructive
  3. Expand-not-replace opcodes — append-only; variant suffixes; never renumber
  4. Attention = ternary + contrastive — ternary weights, contrastive margin, no softmax, no SentenceTransformer
  5. BitNet b1.58 for weight matrices — 5 trits/byte (1.6 bits/weight) for projections; 2-bit packing retained for rule masks
  6. Core vs instance vocabulary — core = block = SM-exclusive (46 on RTX 3070); instance = warp in core (414 concurrent)

Archival + purge progress

  • 5 files / 3,682 LoC moved to Old_Attempts/2026-04-18/ via git mv (history preserved)
  • Per-file README_WHY_ARCHIVED.md with reason + replacement pointer
  • 1 ImportError shim for sovereign_multi_modal_embedder.py (had active importer)
  • TEMP/phase2_purge_top5_plan_04.18.2026.md — top 5 hot-path violators mapped to replacement opcodes (198 violations in procedural_compiler.py leads)

Test plan (Codex executes)

Runbook: TEMP/CODEX_RUNBOOK_SOVEREIGN_BITNET_BENCHMARK_04.18.2026.md

  • Preflight: env activates, CUDA_VISIBLE_DEVICES=0, RTX 3070 visible, PTX artifact present
  • Smoke: python benchmarks/sovereign_bitnet_attention.py --quick exits 0
  • Full run: sovereign_compliance=PASSlatency_ms.p50 ≤ 5.0top_k_consistency=1.0convergence_verified=true
  • kernel_path_trace contains 0x1AA, 0x1AB, 0x1AC, 0x1AD, 0x1AE (0x1AF optional, fires only on Path B lane-switch)
  • Artifacts committed (data/benchmarks/*.json + logs/*.log)

Not in scope

  • Bulk-lib purge Phases 3–8 (top-5 plan landed in Phase 2; execution follows)
  • Tier 2 / Tier 3 Transfer Yard kernel promotion from TEMP/ reference .cu to production
  • Phase B native embedding (meaning_rpn → float[2048] replacement for SentenceTransformer)
  • Qwen3-on-Phenom Qdrant deployment (ingestion lane, not hot path)
  • GPU game-loop closure (separate TEMP spec)

🤖 Generated with Claude Code

danielcamposramos and others added 19 commits April 18, 2026 14:24
…-6, 2026-04-18)

First sovereign GPU attention kernel path end-to-end. Codex was bypassed this
round; sub-agents implemented directly per Daniel's turn-6 ruling.

## Kernel landing
- `knowledge3d/cranium/kernels/bitnet_attention.cu` (577 lines) + sm_86 PTX
- 6 opcodes: 0x1AA TERNARY_MATMUL_ADDSUB, 0x1AB PACK5, 0x1AC UNPACK5,
  0x1AD VEC_NORM_L2_INT8, 0x1AE MARGIN_SHIFT, 0x1AF MARGIN_SCALED
- __dp4a Q·K^T, 2KB __constant__ LUT for unpack5, add/sub/skip inner loop
- Smoke test: 5/5 passing (load + opcode registry + entry points)

## First sovereign benchmark
- `benchmarks/sovereign_bitnet_attention.py` (359 lines)
- Hot-path compliance gate (grep-based + dynamic)
- Emits latency p50/p95, top_k_consistency, kernel_path_trace, vram_peak_mb
- `--quick` smoke mode; full run = 100 queries

## Six standing doctrines formalized
- Opcode range-reservation protocol (registry-first before parallel dispatch)
- Hyper-modular symlink architecture (no stubs, sequential-constructive)
- Expand-not-replace opcode doctrine (variant suffixes, never renumber)
- Attention = ternary + contrastive (no softmax, no SentenceTransformer)
- BitNet b1.58 1.6-bit packing for weight matrices (vs 2-bit for rule masks)
- Core vs instance vocabulary (46 cores / 414 instances on RTX 3070)

## Archival + purge
- 5 files / 3,682 LoC moved to `Old_Attempts/2026-04-18/` via git mv
- Per-file README_WHY_ARCHIVED.md with reason + replacement pointer
- 1 ImportError shim for file with active importers
- Phase-2 bulk-lib purge plan for top-5 violators drafted (198 violations in
  procedural_compiler.py leads)

## Registry updates
- VEC_NORM_L2_INT8 corrected to 0x1AD (matches production kernel)
- 0x1B1-0x1B5 sub-reserved for attention-future expansion
- §11 Reservation Table added with 11 initial blocks + Gate R enforcement

## Turn-6 rulings honored
1. Path B smem-prefetch MANDATORY (no non-prefetch variant)
2. d-mismatch = silent rescale (no warn, no exit)
3. 0x1A9 default = Path A; lane-switch to Path B via opcode flag

## Not in scope
- Bulk-lib purge Phases 3-8 (top-5 plan drafted, execution follows)
- Tier 2/3 Transfer Yard kernel promotion from TEMP/ reference .cu to prod
- Full benchmark run (Codex executes per TEMP/CODEX_RUNBOOK_*)

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

The previous benchmark (commit 36bb454) had numpy imported at module scope
and a sovereignty gate scoped to comment markers that missed the import.
Its hot path performed np.dot/np.zeros/np.clip in Python; no PTX kernel was
ever launched. The subsequent artifact commit 8f69675 was produced via a
patch-then-revert workflow and is therefore synthesized — its JSON describes
code that did not exist in the committed tree when the run finished. Treat
8f69675 as discredited; its JSON and log are unsafe to cite.

This commit replaces the benchmark with a harness that:
  - imports zero forbidden frameworks (whole-file regex gate, no markers)
  - builds fixtures with a pure-Python LCG + stdlib array/ctypes (no np.random)
  - populates the __constant__ unpack5 LUT via loader.get_global + memcpy_htod
  - actually launches k3d_bitnet_attention_proj (0x1AA + 0x1AC transitively)
    and k3d_attention_contrastive_rank twice (0x1AE Path A, 0x1AF Path B)
  - pre-fills outputs with a sentinel and counts overwrites to prove the
    kernel really wrote — convergence_verified keys off this, not hope
  - snapshots VRAM via loader.get_vram_usage (real cuMemGetInfo)
  - documents honestly that 0x1AB and 0x1AD have no __global__ wrappers yet

Also lands:
  - TEMP/CODEX_RUNBOOK_... v2 — invokes via scripts/k3d_env.sh (auto sets
    PYTHONPATH and CUDA_VISIBLE_DEVICES); trims success criteria to what can
    actually fire; explicit abort-on-error-do-not-fix contract
  - TEMP/CODEX_HANDOFF_..._VSCODE.md v2 — RUN-ONLY authorization; explicit
    forbidden-action list including the patch-then-revert pattern

Memory updated with feedback_sovereignty_check_must_not_self_deceive.md and
feedback_codex_cannot_silent_fix_to_unblock.md so future sessions don't
repeat either drift.

Not pushed. Daniel reviews the JSON after the next run before pushing.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- loader.ensure_init(): zero-size cuMemAlloc+cuMemFree on primary-retain fallback
  materializes lazy device state so bookkeeping queries (cuMemGetInfo) succeed
  without first allocation. Addresses CUDA_ERROR_INVALID_CONTEXT (201) on
  benchmarks/sovereign_bitnet_attention.py observe_vram() call path.
- daemon/main.py: explicit loader.ensure_init() + get_vram_usage() contract
  at K3DDaemon.__init__ top, not transitively on first query. Makes
  "always-on" honest per TEMP/CLAUDE_SINGLE_CONTEXT_LIVING_AI_SPEC_04.18.2026.md §5.2.

Spec: TEMP/CLAUDE_SOVEREIGN_LAZY_PRIMARY_CONTEXT_WARMUP_PATCH_04.18.2026.md

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

- Delete dead galaxy_memory_updater.py.old (pre-sovereignty backup).
- Rewrite tests/test_ptx_no_cupy.py + tests/test_ptx_simple.py to call
  loader.ensure_init() instead of cuInit + PrimaryCtxRetain directly.
- Add scripts/check_single_context_invariant.sh: CI regression gate that fails
  if any .py/.cu/.cpp outside loader.py calls cuCtxCreate / PrimaryCtxRetain /
  cuInit. Wire into CI per TEMP/CLAUDE_SINGLE_CONTEXT_LIVING_AI_SPEC_04.18.2026.md.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Eliminates independent CUDA context creation in:
- knowledge3d/cranium/ptx/geometry_ops.py
- knowledge3d/cranium/ptx/galaxy_buffer.py
- knowledge3d/cranium/ptx/modality_ops.py
- knowledge3d/cranium/ptx_runtime/nvrtc_ptx_loader.py
- knowledge3d/cranium/ptx_runtime/math_core_pool.py
- knowledge3d/cranium/ptx_runtime/micro_specialist_pool.py

All now use loader._ensure_init() + cuCtxGetCurrent() per the invariant in
TEMP/CLAUDE_SINGLE_CONTEXT_LIVING_AI_SPEC_04.18.2026.md. Pattern exemplar:
knowledge3d/cranium/codecs/ptx_bindings/ternary_quant_binding.py:101-122.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Prior warmup (commit 4ec9025) used zero-size cuMemAlloc which drivers may
return res=0 with null ptr (no actual allocation, context unmaterialized).
Benchmark re-run still failed CUDA_ERROR_INVALID_CONTEXT at cuMemGetInfo.

This commit:
- Replaces zero-size with 16-byte cuMemAlloc — guarantees device-side
  allocation, which materializes lazy primary context.
- Moves warmup out of the primary-retain fallback branch to the end of
  _ensure_init — applies to both cuCtxCreate and fallback paths.
- Adds one-shot unconditional boot diagnostic print so next failure has a
  trace (pid, device, ctx handle) without requiring K3D_RPN_DEBUG.

Sovereignty: no try/except, no silent fallback — warmup failure raises
via ck(res) exactly as before.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
ctypes.c_void_p requires .value accessor for pointer int, not int(obj).
Codex run against commit 40b9833 reached the diagnostic print (warmup
succeeded) but crashed with ValueError parsing ctx's raw bytes.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…y ctx + drop redundant cuCtxSetCurrent

galaxy_buffer.py was calling cuDevicePrimaryCtxRelease in both its
destructor and a standalone free helper, via cuda-python (a separate
ctypes layer from loader's nvcuda). When GC finalized a GalaxyMemory
the refcount dropped on the context loader.py still held; the handle
became dangling. cuCtxSetCurrent silently accepts stale handles but
cuMemGetInfo_v2 validates and returned CUDA_ERROR_INVALID_CONTEXT (201).
Only loader.py owns the primary context lifecycle.

Secondary: loader.py called cuCtxSetCurrent immediately after a
successful cuCtxCreate. cuCtxCreate already pushes the new ctx onto
the current-thread stack; the redundant set desyncs stack-top vs the
floating TLS slot on some CUDA 12.x builds, producing the same 201.
…GetInfo 201

libcuda.so.1 exports v1 and v2 variants of cuCtxCreate, cuCtxDestroy,
cuMemAlloc, cuMemFree, cuMemGetInfo, cuMemsetD32 as SEPARATE symbols at
distinct addresses. The bare names resolve to the deprecated v1 family
via dlsym; the _v2 names resolve to the current family. A v1 context
passed to cuMemGetInfo_v2 returns CUDA_ERROR_INVALID_CONTEXT (201) even
though the handle itself is otherwise valid — cuCtxCreate returns 0,
cuCtxSetCurrent returns 0, cuMemAlloc (v1, 16-byte warmup) returns 0,
but cuMemGetInfo_v2 (v2) rejects the v1-created ctx.

Loader was mixing: bare cuCtxCreate (v1), bare cuMemAlloc (v1),
cuMemGetInfo_v2 (v2). Every benchmark that called get_vram_usage()
after ensure_init() hit the 201 crash.

Bind all version-bifurcated symbols unconditionally to v2 (with v1
fallback only if the driver is too old to expose v2):

    nm -D libcuda.so.1 shows both families at distinct addresses:
      cuCtxCreate     0x2d6790  (v1, deprecated)
      cuCtxCreate_v2  0x27d120  (current)
      cuMemAlloc      0x2d67f0  (v1, deprecated)
      cuMemAlloc_v2   0x2870a0  (current)
      cuMemGetInfo    0x2d67d0  (v1, deprecated)
      cuMemGetInfo_v2 0x287080  (current)
      cuCtxDestroy    0x2e19c0  (v1, deprecated)
      cuCtxDestroy_v2 0x27d160  (current)
…y-ctx-flags

Retry #5 reached get_global with cuMemGetInfo_v2 working but then hit
CUDA_ERROR_INVALID_CONTEXT (201) at cuModuleGetGlobal. Same v1/v2 symbol
bifurcation as 8a2b711: libcuda.so.1 exports cuModuleGetGlobal (v1,
0x2d67b0) and cuModuleGetGlobal_v2 (0x286d80) at distinct addresses.
Bare getattr on the ctypes CDLL resolves to the deprecated v1 symbol
which does not interoperate with v2-created contexts.

Extend the _bind_v2 resolver to:
  - _cuModuleGetGlobal          (v2 preferred)
  - _cuStreamDestroy            (v2 preferred, optional)
  - _cuDevicePrimaryCtxSetFlags (v2 preferred)

and route loader.get_global() / destroy_stream() / primary-ctx fallback
path through the explicit v2 pointers.

Verified: scripts/check_single_context_invariant.sh CLEAN; smoke bench
(sovereign_bitnet_attention.py --quick) now advances past get_global.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…d Ampere warp hang

bitnet_matmul_tile guarded the per-word shuffle broadcast with
  if (word_idx < n_words_total) { ... __shfl_sync(0xFFFFFFFF, ...) ... }
For K=64 we have n_words_total=4 and 8 word_groups per warp, so half
the lanes enter the branch and half do not. On sm_70+ (independent
thread scheduling, RTX 3070 is sm_86) __shfl_sync with a full 32-lane
mask requires every named lane to reach the instruction together; a
divergent skip is undefined behavior and deadlocks the warp — the
CUDA-C Programming Guide §5.2.3 explicitly calls this out.

Observed failure: cuLaunchKernel returned 0 but cuCtxSynchronize
never returned (confirmed via CUDA_LAUNCH_BLOCKING=1 and gdb backtrace
stuck inside libcuda cuCtxSynchronize spin).

Fix: keep the load guarded, but hoist the __shfl_sync call so all 32
lanes execute it. Downstream use of the broadcast value is already
gated by `(trit_idx < K && word_idx < n_words_total)` at partial-sum
time, so lanes with no valid word still contribute zero.

Rebuilt PTX with:
  nvcc --ptx -arch=sm_86 -O3 -I. \
       knowledge3d/cranium/kernels/bitnet_attention.cu \
       -o knowledge3d/cranium/kernels/bitnet_attention.ptx

Verified end-to-end: benchmarks/sovereign_bitnet_attention.py --quick
now completes, convergence_verified=true, top_k_consistency=1.0.

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

Path A (0x1AE) contrastive rank normalizes scores via `score >> 18`
before comparing against (normalized_top - normalized_top/4). The
previous synthetic fixture `(i*37+11) & 0x7FFFFFFF` produced scores
in [11, 151536]; every normalized_score collapsed to 0 and no lane
ever passed the margin gate, so the rank kernel wrote nothing and
`min_sentinel_overwrites_per_query` was stuck at 0 (convergence fail).

Real dp4a Q·K^T scores for d=64 live in the ±d×127²=±1,032,256 band
(per qk_dot_int8 comment); scale the synthetic pattern by 4096 so
normalized_top lands around 2300 and a tail of near-max scores pass
the 3/4 threshold. Pattern remains monotone and deterministic, so
top-k ordering is still stable.

After this fix the end-to-end smoke run reports
  sovereign_compliance = PASS
  convergence_verified = true
  min_sentinel_overwrites_per_query = 320
  top_k_consistency = 1.0

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Dry run (clusters 2-50, limit 10, timeout 90s): clusters_attempted=10 clusters_resolved=6 rows_enriched=8 rows_unresolved=12 web_searches_issued=20 web_cache_hits=18
Adds --build-manifest, --worker, --merge, --status modes to differentiate_b7_residual.py. Workers claim clusters via O_EXCL lock files and write per-cluster outputs so a final single-threaded merge is deterministic. Row-level calls inside a cluster run concurrently under a per-worker asyncio.Semaphore.

Guarantees:
- No overlap: O_EXCL on claims/<hash>.claim is the serialization primitive.
- No re-work: done/<hash>.done is checked before every cluster and before every claim retry. Completed clusters are skipped globally, including across separate runs.
- Resumable: killing a worker leaves a stale claim that another worker steals after a 20-min TTL.

Spec: TEMP/CLAUDE_CODEX_B7_PARALLEL_DIFFERENTIATION_DRIVER_04.19.2026.md
Lands all non-knowledge work accumulated under batch11:

- B7 dedup pipeline specs (OP_BH/WINE collision ruling, meaning-group-key fix,
  cloud proceduralizer contract, parallel claim-based driver, meaning-resolution
  pivot spec)
- D3 dedup scripts (galaxy_d3, recover_b6, matryoshka_accumulator/bin_producer,
  procedural_basis) + normalize/audit/staging supporting scripts
- Sovereignty purge: relocate 100+ legacy Python modules under
  Old_Attempts/2026-04-18/ (bridges/codecs/ptx_runtime/sleep subsystems replaced
  by sovereign PTX path)
- Paper track skeletons (A-F) for ARC Prize 2026 paper submissions
- Docs/vocabulary term-origin proofs (Absolute Sovereignty, Knowledgeverse,
  Hyper-Modular, Hyper-Parallel, RETE-at-opcode)
- New ingestion runtime (embedding_io, runtime_ingest, semantic_csr_graph)
- Sovereignty preflight + attributions collision cleanup
- Ignore knowledge working state (scripts/ingestion/staging, build binaries,
  runtime benchmark outputs, D3 digests) — those live in the local folder,
  not in the repo

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@danielcamposramos danielcamposramos changed the title feat: sovereign BitNet b1.58 attention + v4 doctrine (turns 1-6, 2026-04-18) batch11: sovereign BitNet attention + B7 dedup + sovereignty purge + paper track Apr 19, 2026
danielcamposramos and others added 10 commits April 19, 2026 21:01
- Rewrite preamble with 12 invariant-concept families (cardinals, SI units,
  elements, named entities, constants, physical quantities, ISO, dates,
  taxonomy, tech terms, codepoints, glyphs) + positive (208) and negative
  (483) exemplars so the model stops synthesising `synset_num_X_en/ja/pt`
  language-suffixed meaning stars.
- Add LANGUAGE_SUFFIX_BLACKLIST (36 ISO-639-1 codes) and a dedicated
  PROCEDURALIZER_MEANING_RESOLUTION_SCHEMA (required at top-level, min
  surface_forms + sources items, points_to oneOf string|array). Wire it
  through proceduralizer_wine as the mode-specific response_format and
  embedded user-message schema so invalid_json no longer passes trivially.
- Parse-side guards in _parse_meaning_resolution_bundle: reject any
  meaning_star id ending in a language suffix (language_suffixed_meaning_id)
  and reject split_polysemy whose meaning ids collapse to one stem once the
  language suffix is stripped (language_variant_over_split). Add
  missing_sources / language_suffixed_meaning_id / language_variant_over_split
  to the _fallback_bundle reject set.
- Driver: plumb capture_dir through worker -> async -> sync_result so raw
  responses land in staging/captures for post-hoc invalid_json debug;
  synthesize pointed_by on emitted meaning_stars during merge so the
  symlink graph stays bidirectional per the architecture contract.

Smoke-tested: positive 208 merge parses; negative 483 over-split is rejected
with language_suffixed_meaning_id; non-collapsing split still passes;
missing sources rejected.

Scope: prompt/schema/parser quality fix only. Do NOT expand beyond the
existing 50-cluster gate until the pilot re-runs show merge_to_meaning_star
lift and invalid_json drop.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Meaning-centric symlink cascade: meaning stars now carry word_refs
keyed by language (many-to-many), built on the drawing->char->word->
meaning chain. Parser accepts empty sources for common vocabulary but
still requires grounding for factual meaning classes. Proceduralizer
bridge wraps the Ollama chat in a retry envelope (30s x 3 transient,
then 5h/1min x 3, then 30min/1min x 3 for plan-limit waves) and fixes
a transport_error being misclassified as invalid_json. Language-suffix
guard now runs before the sources guard so bad ids surface with the
specific diagnostic. Driver merge pass synthesises word_refs alongside
pointed_by. DUAL_CLIENT_CONTRACT spec gains 1.6.4 covering the cascade,
scoped sources, and missing-word fallbacks.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Specifies the smoke + 50-cluster pilot commands, what to verify, and the
audit deltas to report. Flags that unidirectional_site_count is a
separate audit-scope fix (pointed_by is not in REF_LIST_FIELDS).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Schema collision: word_refs was already a KNOWN_REF_LIST_FIELD (flat
array) tracked by galaxy_audit.py. The new language-keyed dict was
under the same name, which would break normalize and audit. Fix: keep
word_refs as the flat audit-facing union and add word_refs_by_language
as the language-partitioned dict. Driver merge emits both; both
exemplars in the preamble show both.

Retry envelope: default submit() stays single-shot so unit tests and
one-shot callers do not sleep. Pilot constants (PILOT_RETRY_*) are
exported and the B7 differentiator opts in. Plan-limit skips the
transient loop and enters the wave ladder directly — 30s retries on
plan_limit just burn quota. End-to-end probe confirms the envelope
covers transport recovery, plan-limit sustained (7 calls, 5h+30min
sleeps), plan-limit clearing in wave 1, and transient exhaustion.

DUAL_CLIENT 1.6.4 documents the two-field shape.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
36/50 clusters resolved (20 merge, 1 split, 15 unresolvable), zero failures.
89% canonical reuse, 16 new meaning_stars, 0 unresolved_symlinks.
Split path validated on IPA ʍ / N'Ko ߢ cluster.
Retry envelope stayed dormant (no plan_limit / transport_error events).
Pilot artifacts in /K3D/GitHub/TEMP/B7_PILOT_04.20.2026/.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…T, Frame, Projection

Reserves §11 ranges 0x217-0x21F, 0x240-0x24F, 0x250-0x25F, 0x260-0x26F,
0x270-0x27F per the 04-20 codec audit, mints 72 opcodes in rpn_opcodes.py,
registers them in ModularRPNEngine.OPCODES (277 total), and ships kernel
drafts for all five lanes with the ternary-first retarget Daniel called out:
BitNet b1.58 5-trits/byte packing, zero-trit skip in decode paths.

- dotmap_codec.cu: procedural dot placement (content-adaptive CDF sampling,
  deterministic via golden-ratio quasi-random), RPN color refs instead of
  RGB, RLE + delta with zero-run codes.
- idct_8x8.cu: Loeffler separable 8-point DCT/IDCT, 11 muls/29 adds,
  shared-tile +1 bank-conflict pad; forward+inverse ship together.
- jpeg_scan.cu: zigzag/inv-zigzag (constant-mem LUT), quant apply/invert,
  4:2:2 chroma sub- and upsample.
- huff_decode.cu: restart-marker-segmented warp-serial decoder with
  byte-stuffing, ZRL handling, malformed-stream bail.
- frame_codec.cu: ternary frame delta, 8x8 motion estimation with overflow,
  sprite batch (alpha-0 skip = free), cell fill, 2-D Morton.
- projection_screen.cu: video/audio field load, PTS drift as ternary halt,
  timeline advance, screen project/compose, DOF blur.
- audio_fft.cu + audio_fft_ops.py: Stockham radix-2 (sub-agent draft).

Audit spec updated with the landing; 3 parallel sub-agents + kimi_swarm
synthesized into the main branch within a 90-min window. Opcode range
reservation protocol (04-18 memo) honored: §11 rows committed BEFORE lane
dispatch to avoid the 0x1AD-style collision class.

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

Mint 73 new opcodes across 6 reserved blocks under 0x280-0x2DF:
- 0x280-0x28F Texture Forge (Lane A)
- 0x290-0x29F Image-to-3D (Lane C)
- 0x2A0-0x2AF ARC3 live-screen bridge (Lane D, PTX compiled)
- 0x2B0-0x2BF Memory-as-Image / DeepSeek OCR extension (Lane E)
- 0x2C0-0x2CF MVCIC-sourced extensions
- 0x2D0-0x2DF Document Galaxy (symlinks to Word Galaxy)

Registry (§11.2) + OPCODES dict (277 -> 398) updated.
ARC3 screen bridge kernel compiled clean (sm_86, zero spills, 5 entries).
Document Galaxy spec landed as normative vocab doc.

Collision note: MVCIC chain initially proposed 0x1D0-0x1FF which was
already reserved for VIRTUAL_PAGE_* since April 18. Caught via §11 grep,
relocated to 0x280-0x2DF. Full incident log in main spec §13.

Refs:
- TEMP/CLAUDE_TEXTURE_FORGE_IMAGE_TO_3D_ARC3_SCREEN_04.20.2026.md
- docs/vocabulary/DOCUMENT_GALAXY_SYMLINK_SPECIFICATION.md

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
First of the Minecraft-for-Cognition lanes reaches TRM. ARC3 screen
bridge is now live via the tiered_rpn codec dispatcher:

- Arc3ScreenBridge class loads arc3_screen_bridge.ptx, binds 5 kernels,
  exposes decode_frame / invert_click / emit_action / diff_highlight /
  lives_hud / replay_step + palette upload via get_global constant-mem
- CODEC_TOKENS extended with 10 arc3_* string tokens (modular_rpn_engine)
- _CODEC_TOKEN_MAP + execute_codec dispatcher extended in tiered_rpn
- Delegating opcodes (arc3_frame_to_dotmap 0x2A2, arc3_project_to_screen
  0x2A3) raise NotImplementedError until DotMapBridge / ProjectionScreen
  bridge integrations land (loud fail, not silent pass-through — per no-
  fallbacks-ever rule)
- Zero numpy / cupy / scipy / sympy in bridge code
- Module-import smoke test passes; GPU tests skip in sandbox

Remaining lanes (Texture Forge 0x280, Image-to-3D 0x290, Memory-as-Image
0x2B0, MVCIC 0x2C0, Document Galaxy 0x2D0) stay reserved but unwired
until their PTX kernels exist — Codex follow-up per §3.5 of the dual-
path spec.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
danielcamposramos and others added 20 commits April 20, 2026 03:47
…egistry seed

Per CANONICAL_REGISTRY_SPECIFICATION.md §7: Drawing primitives must use
canonical "drawing_primitive_<name>" ids, not legacy "PRIM_<NAME>".

Changes:
- drawing_grammar_builder.py: replace 10 PRIM_LINE/ARC/QUAD/CUBIC/CIRCLE/
  RECT/TRI literals with canonical_drawing_primitive_id() calls
- ingest_canonical_to_qdrant.py: extend seed from 3 -> 7 drawing prims,
  6 -> 17 meaning_class items, 6 -> 13 symlink_kind field paths

Path A of TEMP/CLAUDE_DUAL_PATH_INGESTION_AND_DISPATCH_WIRING_04.20.2026.md.
§2.3 promotion step non-applicable (galaxy_pending/ directory doesn't
exist; House already has enriched galaxies populated). Fix ensures
future ingests use canonical IDs from first write.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Handoff brief for next Codex session covering:
- What Claude-pilot landed (opcode registry, Arc3ScreenBridge, specs,
  Document Galaxy vocab, Layer 0 canonical-ID fix)
- 7 open P0s ordered by critical path
- Sovereignty gates (grep-zero numpy, §11 registry rows, nvcc zero
  spills, no text bytes in document stars)
- MVCIC failure-mode lesson (2026-04-20 chain proposed already-reserved
  0x1D0-0x1FF range — registry wins over chain-internal consistency)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
arc3_screen_bridge.py had 3 call sites passing `int(CUdeviceptr)` to
ctypes.c_uint64 — the loader returns a CUdeviceptr wrapping bytes, not
an int-convertible object, so `int(...)` raised ValueError. Use `.value`
to pull the raw pointer integer, matching the pattern used for `rgba_dev`
and `overlay_dev` on adjacent lines.

cranium/__init__.py gets a utf-8 coding declaration so accidental
Python 2 invocation (e.g. `conda run` resolving to system /usr/bin/python)
fails loudly on import rather than parse-erroring on a docstring.

All 5 arc3_screen_bridge tests pass after this fix.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…umpy OK)

Adds scripts/convert_trm_npz_to_bin.py which reads trm_weights_latest.npz
via numpy (sovereign-exempt, ingestion path) and emits a compact little-endian
binary K3DTRM01 file consumed by the sovereign hot-path boot loader.
Validates all 5 matrix shapes; fails loud on mismatch.

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

Replaces _initialize_trm_launcher, _trm_weight_checkpoint_path,
_load_trm_weight_checkpoint, and _build_matryoshka_projection_weights
with a sovereign implementation that uses only open()+ctypes to parse
K3DTRM01 binary format.  Adds _save_trm_bin_checkpoint for round-trip
write-back in save_consolidated_state.  Host weight store type changed
from np.ndarray to bytes; save_consolidated_state updated to call the
new bin writer instead of save_trm_weight_checkpoint (which used numpy).
No fallbacks: missing checkpoint raises NotImplementedError pointing at
scripts/convert_trm_npz_to_bin.py.  Verified: backend=fused, ready=True,
err=''.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Compiled dotmap_codec.cu (sm_86) → 23K dotmap_codec.ptx and
projection_screen.cu (sm_86) → 17K projection_screen.ptx via
nvcc -ptx -arch=sm_86 in the k3d-cranium env.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- DotMapBridge: loads dotmap_codec.ptx, binds dot_place_procedural kernel,
  exposes frame_to_dotmap(density_dev, total_mass, target_dots, W, H).
- ProjectionScreenBridge: loads projection_screen.ptx, binds
  screen_project_kernel, exposes project_to_screen(viewport_dev, screen_dev,
  Vw, Vh, Sw, Sh, rect).
- tiered_rpn.py: replaces both NotImplementedError blocks with real dispatch;
  adds _dotmap_bridge/_projection_bridge lazy fields + _ensure_*() methods.
- 4 tests (2 import smoke + 2 GPU): all pass in k3d-cranium env.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Remove AdaptiveDimensionCompressor from cranium __init__ lazy-import dict
and __all__ (module was purged to Old_Attempts/ for numpy violations).
Fix reality_galaxy._ensure_compressor except clause from FileNotFoundError
to (ImportError, ModuleNotFoundError) so graceful-skip intent actually works.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Replace all np.* calls in the GPU flat cache subsystem
(_gpu_flat_cache_paths, _load_gpu_flat_cache, _save_gpu_flat_cache,
and the bind_galaxy_buffer call sites) with stdlib array.array('f')
and raw .bin file I/O.  No numpy in any new code path.
Cache disk format is now raw little-endian f32 bytes (.bin);
stale .npy files are purged on first save.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Both proceduralized_gsm8k_train_10.jsonl and proceduralized_mmlu_val_10.jsonl
carry router_refs inside metadata, which flips the sovereign validator's
route_active branch. Route-active stars must declare selection_role,
answer_eligible, and layer_id. These stars had the layer but not the role
or eligibility flag, so daemon boot crashed at sovereign_hot_path.py:1651
with sovereign_build_metadata_invalid.

These stars are proceduralized answer artifacts (RPN programs that
compute/validate benchmark answers), so the correct classification is
selection_role="answer" with answer_eligible=true.

The fixup is idempotent and backs up each file once before writing.

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

Offline proof-of-life achieved — all three offline benchmarks (GSM8K, MMLU,
Math Competitions) now run end-to-end with --max-tasks 3 and return a
well-formed summary JSON. Every problem dispatches via
knowledgeverse_dispatch_session with task_result.status=ok and a TRM tick.
Predictions empty (0/3 each) — next layer is answer materialization in
trm_game_loop._run_query_tick.

Blocker chain cleared:
1. sovereign_build_metadata_invalid: warm-boot pickle (house/galaxy_state.bin)
   pre-hydrates galaxy cache before JSONL reads, so JSONL-only patches were
   stale. patch_warm_boot_state_metadata.py walks the pickle and sets
   top-level + metadata selection_role=answer, answer_eligible=True,
   layer=layer_id=2 on 334 proceduralized benchmark stars. Idempotent.
   patch_proceduralized_benchmark_metadata.py extended to set BOTH top-level
   and metadata fields (normalize_meaning_layer_entry whitelist only keeps
   top-level keys).

2. ModuleNotFoundError procedural_drawing_bridge: daemon/main.py imported
   three bridges moved to Old_Attempts/2026-04-18 during sovereignty purge.
   Deleted imports + _warmup_boot_runtime method (~110 lines). No fallback.

3. AttributeError 'list' has no 'tolist': extract_tablet_mutation() now
   returns List[int] (ctypes), but 4 call sites in headless_tablet.py still
   called .tolist(). Replaced with list(payload_words).

4. IndexError on tablet_rows[offset]: run_benchmark pre-built tablet_rows
   from tape session only if tablet_boundary was not-None at entry, but
   _solve_problem lazily created the boundary on first iteration, so later
   iterations found empty tablet_rows. Added eager _ensure_tablet_boundary()
   before tape build.

5. Debug instrumentation (DEBUG-GSM/HYDRATE/GETGAL/GALAXY) flushed after
   root cause isolated.

Sovereign OOM-mitigation env knobs honored:
- K3D_SOVEREIGN_FEED_WORKERS (default: cpu_count-2, clamped to cap)
- K3D_SOVEREIGN_FEED_CHUNK_SIZE

Proof artifacts:
- /tmp/gsm8k_3q_run8.log  (529 lines)
- /tmp/mmlu_3q_run1.log   (628 lines)
- /tmp/math_3q_run1.log   (1497 lines)
- TEMP/CLAUDE_OFFLINE_PROOF_OF_LIFE_04.20.2026.md (full milestone report)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
_run_query_tick returned raw {status, mode, trm_tick, action_buffers}
with no task_result, leaving predicted_answer="" on every dispatch-path
solve. Added _materialize_task_result helper that mirrors sovereign_hot_path:

  - decode action_buffers via bridge._answer_decode_from_action_buffer
  - run knowledgeverse.materialize_runtime_result(stars=[top_star])
  - fall back to star metadata (answer_text / resolved_answer / boxed_answer)
  - fall back to tablet_result_value (int32) for numeric_answer
  - build full task_result {answer, predicted_answer, response, result,
    answer_text, numeric_answer, answer_kind, answer_materialized,
    failure_code, route_family, meaning_class, top_star_idx, ...}

Top-level answer fields are also hoisted so _canonicalize_live_runtime_response
and TabletEmit.emit pick them up unchanged.

Validation (3q each, offline):
  GSM8K  1/3  (gsm8k_0 predicted "18" correctly — Janet's duck eggs)
  MMLU   1/3  (moral_scenarios predicted "Wrong, Wrong" correctly)
  Math   1/3  (algebra/0 predicted "0" correctly)

Pipeline moved from "alive, silent" to "alive, answers." Next step:
broader N=10/50 runs to baseline paper accuracy, then ARC3 live.

TEMP/CLAUDE_ANSWER_MATERIALIZATION_04.20.2026.md carries the full report.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Extend answer-materialization milestone with N=10 GSM8K baseline:
- 1/10 correct (10%); 8/10 materialized non-empty; 2 uncovered routes.
- gsm8k_0 still lands; others produce plausible but wrong numbers
  (e.g. 32+14=46 when answer is 5). This is the reasoning-correctness
  frontier — pipeline is paper-grade, template matching in RPN engine
  is the next layer.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Complete the first 10q cross-benchmark paper baseline on the sovereign
dispatch pipeline:

  GSM8K 10q   1/10  10.0%  (8/10 materialized numeric)
  MMLU  10q   2/10  20.0%  (multiple-choice alignment wins)
  Math  10q   1/10  10.0%  (6/10 materialized numeric)

MMLU outperforms arithmetic because option-matching via
_runtime_align_option_choice lands even when precise reasoning doesn't.
Word-problem arithmetic remains the frontier — richer RPN template
coverage is the next lift.

This is the first real cross-benchmark baseline with zero external LLMs,
sovereign TRM dispatch, and materialized answers at every tick.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
benchmarks/arc_agi_3.py:11 imports knowledge3d.knowledgeverse.arc3_episode_galaxy,
which was moved to Old_Attempts/2026-04-18 during the sovereignty purge.
Smoke test fails at import. Three options tabled for next session;
Option 3 (fresh ARC3 entry that feeds frames into the validated
tablet dispatch pipeline) aligns best with current architecture.

Offline cross-benchmark baseline (10% / 20% / 10% on GSM8K / MMLU / Math
at N=10) remains stable and reproducible.

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

**Unblock:** `benchmarks/arc_agi_3.py:11` import `arc3_episode_galaxy` was
broken since 2026-04-18 sovereignty purge. Restored the module at its live
path, stripped the optional `torch` dependency from `_detect_gpu_count()`
(now reads CUDA_VISIBLE_DEVICES), and appended a sovereign GPU ring
buffer (`ARC3EpisodeGPURing`) that holds a 64-byte `ARC3FrameStruct` ×
128 frames = 8 KiB VRAM. `seed_frame()` does a single `memcpy_htod` per
tick; the hot path performs zero `dtoh` copybacks. PTX kernels read the
ring via the descriptor returned by `bind_for_trm_inference()`. All 15
tests in `tests/test_arc3_living_memory.py` pass.

**Math coverage:** `_runtime_materialize_math_answer` now queries
`Math/Grammar/Reality/Tool` **plus** every discovered
`proceduralized_*` / `Book_*` galaxy on disk (5 Book_ + 2 proc_ corpora
at `/K3D/Knowledge3D.local/galaxies/`). The `numbers >= 2` fallback no
longer takes the first marker match; it scores all operator candidates
by keyword hits, with "than / more than / fewer than" forcing
subtraction (fixes the GSM8K gsm8k_878 class of error where additive
markers stole the operand). Multi-operand `+`/`*` programs now emit as
`a b + c +` chains instead of stopping at two operands.

**Baseline impact (paper-grade N=10):**
- GSM8K: 1/10 correct, materialization 8→9/10 (empty dropped to 1)
- MMLU:  2/10 correct (unchanged)
- Math:  1/10 correct (unchanged)
Zero regression. Accuracy ceiling unchanged — that's the RPN-template
frontier (Phase D), not the fallback-widening frontier.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Lands the completion report for commit 70c465c: restored ARC3 episode
galaxy with sovereign 8 KiB GPU ring, wired proceduralized_/Book_
corpora into the math query path, expanded fallback with grammar-ranked
operator pick + multi-operand chains. N=10 baseline held at GSM8K 10% /
MMLU 20% / Math 10% (zero regression; materialization +1 on GSM8K).

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

Earlier sub-agent audits claimed Grammar had "103,039 defeasibility-enabled
rules" and that symlink dereferencing would be a straightforward lift. A
fresh 20k-entry scan of the on-disk Grammar galaxy shows:

- rule_strength / superior_to / trust_weight populated: 0
- executable eval_program + arg_keys: 0
- entries with symlink targets: 14,921 (76%) — real
- entries with supervision_answer: 600 — real but keyed by problem_id,
  not by query text (no embedding to match on)

Proceduralized corpora have natural-language rpn_program ("number
divide_by_two add ...") without ARG_X placeholders. The math template
binder at line 5931 can't bind them to query numbers.

Conclusion: the real accuracy frontier is ingestion enrichment
(arg_keys / eval_program on proceduralized corpora, rule_strength on
Grammar), not hot-path code. Symlink dereferencing would widen
keyword-match surface without lifting arithmetic correctness.

Baselines from commit 70c465c still hold: GSM8K 10% / MMLU 20% / Math 10%.

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

Wire the Tablet WINE procedural-interface cycle and live sleeptime compute per
Daniel's live-game paradigm: one daemon, one Knowledgeverse, lanes as PTX on GPU,
Python as I/O tail only.

Wake cycle:
  - 0x320 WAKE_CYCLE_DELTA_CAPTURE kernel + launcher + daemon hooks (ROUTE,
    SOLVE_MATH, CHAT). Hebbian delta = sign(mean(act)) * L1_sum / N, gated by
    real halting readback. Activation scratch reuses trm_step_fused y_new.
  - First-class halting readback: k3d_swarm_persistent.cu writes Q15 halting
    scalar on halt-flip; NChainSwarmBridge returns it in tick dict; KV stashes
    per-request; daemon reads solved["trm_tick"]["halting_value"] directly.
    Side-channel into _n_chain_swarm gone.

Sleeptime lanes (all PTX, Python is launcher + JSONL/checkpoint tail):
  - 0x300 Lane A promote/merge/discard — symlinks gre_defeasible_resolver.
  - 0x310-0x312 Lane B weight consolidation (delta aggregate, trit accept,
    in-place update).
  - 0x313 Lane B tile quantize f32→BitNet — live per-tile convert-on-touch
    during sleeptime, never boot-time. WEIGHT_FORMAT metadata byte +
    .tile_format sidecar.
  - n_valid_weights int64 sidecar preserves exact weight count when f32
    buffer isn't a 20-multiple (mis-aligned checkpoints accepted; corruption
    still fails loud).

Daemon hot-path refactor:
  - handle_command_inprocess uses lazy singleton K3DDaemon + atexit shutdown
    with persist=True (no more per-call daemon).
  - _sleep_tick_order extended with lane_a_ingest, lane_b_weights.
  - Tablet WINE entry points: chat, ingest, sleeptime, proceduralize; wine/
    subpackage for external-service boundary (mcp_web_search rehomed here).

Drift cleanup (Old_Attempts/training_pipelines/):
  - 79 files moved: training_pipelines + evaluator_scripts. These were the
    "train → freeze → serve" drift from the live sleeptime paradigm.
  - glb_decomposer rehomed to knowledge3d/ingestion/ (uses MeaningCentricStar).
  - Surgical-delete learning_memory_builder / house_memory_builder lazy
    imports in sleep_time_compute.py.

Fail-loud discipline:
  - All "except Exception: pass" removed from wake_delta_capture + daemon
    hot path. Typed re-raise only.
  - halting_value is a required positional (no silent 0.5 default); emission
    gated by real readback.

Opcode registry (append-only):
  - 0x300 Lane A, 0x310-0x313 Lane B, 0x320 wake delta. 0x314-0x31F reserved
    for future Lane B variants.

Tests:
  - tests/tablet/test_live_daemon_cycle.py — module-scoped K3DDaemon fixture,
    CHAT → INGEST → sleeptime → CHAT envelope sequence, halting assertion,
    Lane B xfail.

Sovereignty gates pass: no ollama/requests/httpx outside tablet/wine/, no
numpy/cupy in hot path, no boot-time conversion anywhere.

Specs:
  TEMP/CLAUDE_TABLET_WINE_CYCLE_INDEX_04.20.2026.md
  TEMP/CLAUDE_TABLET_AS_PROCEDURAL_INTERFACE_04.20.2026.md
  TEMP/CLAUDE_{CHAT,INGEST}_WINE_SPEC_04.20.2026.md
  TEMP/CLAUDE_SMART_PROCEDURALIZER_SPEC_{,V2_}04.20.2026.md
  TEMP/CLAUDE_HALTING_READBACK_HOOK_SPEC_04.21.2026.md
  TEMP/kimi_swarm_smart_proceduralizer_04.20.2026.md

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.

1 participant