Files
LithosAnanake/docs/formal/scraps/experiments/02-experiments/L8_WIRING_PLAN.tex
T
rajamesandClaude Opus 5.5 7aed588f78 docs: reorganise -- current reference gathered, finished work archived, superseded and dead ideas marked as such
docs/CLAUDE.md Phase 2, 2026-10-14.  All moves by git mv; every archived
file carries a header saying what it is, why, and where to look instead.

- docs/reference/ (new): roadmap and versioning policy, M7.1, word-ACL
  design, kernel args, hosted acceptance test, dictionary, primitives,
  ontology, L8 table -- previously spread over docs/, docs/lithosananke/
  and docs/03-architecture/.
- docs/working/archive/historical/: finished work (session plan, test-gap
  audit, birthing plan, fix write-ups, the January architecture draft).
- docs/working/archive/superseded/: the Hermes-VM Tripod docs and July
  Hermes designs (-> FABRIC-3.5/3.6), the StarForth roadmap, every working
  doc already flagged superseded or obsolete.
- docs/working/archive/dead/: the hal_* target contract (never adopted),
  L4Re, metrics-and-knobs.
- Papers and proposals into docs/working/papers/.
- References rewritten across the repo (not logs/, not docs/patent/);
  CLAUDE.md's documentation section rewritten.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 16:03:56 -04:00

91 lines
3.9 KiB
TeX

%% SCRAP: experiments/02-experiments/L8_WIRING_PLAN
%% SOURCE: docs/working/archive/superseded/L8_WIRING_PLAN.md
%% STATUS: HISTORICAL
%% FITS: experiments/ch-l8
%% EDITORIAL: lifted — prose rewritten to press voice
\section{L8 Control-Wiring Plan}
\label{sec:l8-wiring-plan}
Prior to the wiring implementation, the L8 Jacquard Steady State Machine
(SSM) computed a 4-bit mode signal and set Boolean flags in
\texttt{vm->ssm\_config}, but the feedback loops L2, L3, L5, and L6 ran
unconditionally — the selector was, in the source's words, ``a supervisor
without authority.'' This plan defined the four code locations requiring gates
and specified the recommended implementation order.
\subsection{Loop Status Before Wiring}
\begin{center}
\begin{tabular}{clll}
\toprule
Loop & Name & Pre-wiring status & Control signal \\
\midrule
L1 & Heat tracking & Compile-time disabled & — (harmful in 86\% of configs) \\
L2 & Rolling window & Always on (needed gating) & L8 bit~3 (entropy-driven) \\
L3 & Linear decay & Always on (needed gating) & L8 bit~2 (temporal locality) \\
L4 & Pipelining metrics & Compile-time disabled & — (harmful in 100\% of configs) \\
L5 & Window inference & Always on (needed gating) & L8 bit~1 (CV-driven) \\
L6 & Decay inference & Always on (needed gating) & L8 bit~0 (CV + temporal) \\
L7 & Adaptive heartrate & Always on & — (beneficial in 71\% of configs) \\
L8 & Jacquard selector & Implemented & 4-bit mode controller (C0--C15) \\
\bottomrule
\end{tabular}
\end{center}
\subsection{Required Code Changes}
Four locations required modification, spanning three source files and
approximately 40--60 lines of new conditional logic.
\paragraph{L3 gate — \texttt{src/physics\_metadata.c}:176}
Insert an early-return check after the frozen-word and minimum-interval
guards in \texttt{physics\_metadata\_apply\_linear\_decay()}. The gate is
internal to the function, keeping call sites unchanged.
\paragraph{L5 gate — \texttt{src/inference\_engine.c}:538}
Replace the unconditional call to \texttt{find\_variance\_inflection()} with a
conditional block that preserves the previous \texttt{adaptive\_window\_width}
when L5 is off. A fallback to legacy mode (no \texttt{ssm\_config}) ensures
backward compatibility.
\paragraph{L6 gate — \texttt{src/inference\_engine.c}:546}
Symmetric to the L5 gate, guarding \texttt{infer\_decay\_slope\_q48()}.
Previous \texttt{adaptive\_decay\_slope} is preserved when L6 is off.
\paragraph{L2 gate — \texttt{src/vm.c}:1652}
Call-site gate in the hot path of \texttt{execute\_colon\_word()}, wrapping
\texttt{rolling\_window\_record\_execution()} in a null check on
\texttt{vm->ssm\_config} and a Boolean read. This option (Option~A) was
preferred over an internal gate inside the rolling-window subsystem for
separation-of-concerns reasons.
\subsection{Implementation Order}
The plan recommended proceeding from simplest to most complex:
\begin{enumerate}
\item L3 (linear decay) — internal gate, single function.
\item L5 (window inference) — preserve previous value, medium complexity.
\item L6 (decay inference) — symmetric to L5.
\item L2 (rolling window) — call-site gate in the hot execution path.
\end{enumerate}
\subsection{Validation}
Success was defined as all four loops consulting \texttt{ssm\_config} flags
before executing, mode transitions appearing in debug logs, the full test
suite passing under the default mode, and the ability to reproduce any of the
16 DoE configurations by forcing L8 to a specific mode.
\subsection{Open Questions Resolved Post-Implementation}
\begin{itemize}
\item \textbf{Default mode}: The VM initialises at C0 (minimal) and adapts
within $\sim$25~ms; C0 did not break any tests.
\item \textbf{L2 gate placement}: Option~A (call-site) was chosen.
\item \textbf{Mode override words}: Deferred to a future sprint; listed as
planned extensions (\texttt{L8-MODE!}, \texttt{L8-MODE@},
\texttt{L8-AUTO}).
\end{itemize}