This roadmap is organized in three horizons. Horizon 1 closes every experimental and implementation caveat documented in the v0.2.0 technical paper before any new surface area is added.
Horizon 1: Close the Gaps Named in the v0.2.0 Paper (Immediate Priority)¶
These are the experiments and rule checks the paper itself identifies as open caveats. Completing them turns every hedged claim in the v0.2.0 study into a closed, controlled result.
Healed-random and heal-the-base control arms (
Stage 1 COMPLETEDon headline modelsQwen2.5-Math-7B-Instruct&Qwen2.5-Coder-7B-Instruct; remaining 4 models in progress).Ran two additional 60-step AdamW LoRA arms (
rank = 4,steps = 60,lr = 3e-3,seed = 20261106) on the identical training texts (lora-controls-20261109):base_lora_1p0x(heal-the-base: unconstrained LoRA attached to the unedited base checkpoint).random_healed_rms_1p0x(healed-random:ProjectThenHealLinearattached to the norm-matchedrandom_rms_1p0xedited checkpoint, locking the 4-row random basis ).
Result on
Qwen2.5-Math-7B-Instruct(qwen25_math_7b/receipt.json): Bothbase_lora_1p0x(93 / 100GSM8K,46 / 100MATH-500) andrandom_healed_rms_1p0x(93 / 100GSM8K,46 / 100MATH-500) matchcomposed_healed_rms_1p0x(93 / 100GSM8K, exact two-sided McNemar , discordantb = 3, c = 3), consistent with the87% -> 93%GSM8Kgain coming from the 60-step LoRA adaptation pass whileProjectThenHealLinearreduces domain-subspace leakage from4.75%(base_lora_1p0x) to5.08e-17at zero accuracy cost.Result on
Qwen2.5-Coder-7B-Instruct(qwen25_coder_7b/receipt.json): Neitherbase_lora_1p0x(37 / 100HumanEval,82 / 100GSM8K) norrandom_healed_rms_1p0x(35 / 100HumanEval,84 / 100GSM8K) reproduces the42 / 100HumanEvalscore ofcomposed_healed_rms_1p0x(+5items overbase_lora_1p0x, ;+7items overrandom_healed_rms_1p0x, , within sample noise at ), whileProjectThenHealLinearreduces domain-subspace leakage from3.69%to3.34e-17.
Multi-seed random controls and fine-grained
0.5x..1.0xdose sampling (COMPLETED:data/multiseed_and_dose_20261109/).Qwen3.5-0.8BMATH-5003-seed random-direction control ensemble (COMPLETED, receiptdata/multiseed_and_dose_20261109/qwen35_08b_multiseed_receipt.json, SHA-256f7da83186596c764f4711e4d2293772751dbcdaf75eac754faa45d90713e6dc2): Acrossseed_1 = 20261108,seed_2 = 20261109, andseed_3 = 20261110(n = 100,4,096max new tokens,BF16), orthogonal norm-matched random edits on layers 15 and 19 closed2 / 100,6 / 100, and1 / 100<think>traces (mean3.0% ± 2.6%,0 / 100closed by majority vote) and scored0 / 100,2 / 100, and1 / 100final-only accuracy (mean1.0% ± 1.0%,0 / 100solved by majority vote), vs.secant_b1_editat64 / 100(64.0%) closure (Holm-adjusted ) and24 / 100(24.0%) final-only accuracy (Holm-adjusted across all 3 seeds).Sample the
0.6x, 0.7x, 0.8x, 0.9xdose interval and 3-seed random control ensemble onQwen3.5-4B(n = 30C++ crash-triage traces,COMPLETED, receiptdata/multiseed_and_dose_20261109/qwen35_4b_dose_and_rand3_receipt.json, SHA-256eae628d0611e382b5dd21f0719cf28deddc53dda6dbff92564aa9e2e88eaa5ca):0.60x(a06_n1536:2 / 30closed,6.7%,1 / 30strict root cause,1,491mean tokens),0.70x(a07_n1536:5 / 30closed,16.7%,3 / 30strict root cause,1,430mean tokens),0.80x(a08_n1536:12 / 30closed,40.0%,8 / 30strict root cause,1,318mean tokens), and0.90x(a09_n1536:14 / 30closed,46.7%,10 / 30class and frame,8 / 30strict root cause,1,210mean tokens) map a smooth monotonic ramp between0.50x(0 / 30) and1.00x(21 / 30), while all three equal-norm random control seeds (cal738rand1..cal738rand3, seeds20261105..20261107) score0 / 30(0.0 ± 0.0 / 30) across closure, bug class, culprit frame, and strict root cause (1,536.0mean tokens).
Fixed-grid Spectral Trojan dose study with multi-layer placement and behavioral verification (
COMPLETED:w61j-trojan-multilayer-behavioral-20261109).Executed
secant audit-trojanacross an 11-dose grid (0%, 1%, 2%, 4%, 6%, 7%, 8%, 9%, 10%, 12%, 16%of||W||_F) and17(model, layer, placement)cells (187dose points; receiptdata/trojan_multilayer_20261109/trojan-multilayer-behavioral-receipt.json, SHA-2560aad7ae7eb0a1d5f5b6e4bd85f31b6307e3317635c8af8e6a277a93d5fffc978;preregistration_spec.jsonSHA-256f979471c41a4ec88933d7951ef4edd4aa052fd0f9efa6245be2c382d44f55b70written to disk at2026-11-09T17:11:22Zprior to cell execution at2026-11-09T17:17:35Z) acrossSmolLM2-1.7B-Instruct(layers.4, 10, 12, 20mlp.down_proj, self_attn.o_proj) andQwen3.5-0.8B(mlp.down_proj,self_attn.o_proj, andlinear_attn.out_projacross early, middle, and late blocks).Paired every static spectral measurement (
sigma_1 / sigma_MP, siblingZ, andE * u_1full-vocabulary rank) with a real PyTorch forward-pass behavioral evaluation on 12 held-out trigger/clean prompt pairs:The automatic scalar flag (
sibling Z > 3.5) misses13 / 17cells up to16.0%, whereas the human-read Stage-2 vocabulary projection (g_vocab16, a ranked top-16 token table) tracks across all 17 cells (mean |g_vocab16 - g*| = 0.87pp), placing the planted token in the top 16 in17 / 17cells once (includingSmolLM2L20.mlp.down_projat4.0%,stRank = 1).In all 12 early and middle cells (
L3/L4,L10,L11/L12), downstream residual dilution ensures the top-16 vocabulary signal appears strictly before behavioral hijacking (), whereas in 3 lateQwen3.5-0.8Bcells (L20.mlp.down_proj,L19.self_attn.o_proj, andL20.linear_attn.out_proj, ), the edit changed model output at4.0%..6.0%(1.0to5.0pp below where any single-file signal appeared at ), motivating reference-checkpoint diffing () in Horizon 2.
Real-world upstream C/C++ vulnerability twins in
ASAN-120(COMPLETED:ASAN-RealWorld-60/ASAN-180).Constructed and sanitizer-verified
ASAN-RealWorld-60(data/asan_realworld_60/asan_realworld_60_paired_benchmark.json, SHA-2567aaf5593da3f9f84a5df8d77102966ce223a753f7d4d647a1292df1b5f33a151; combined180-item suiteasan180_combined_benchmark.json, SHA-256526db767cb21a8df4315377c2f7089f79f2d31a103df8bcc71fc5f938630e7cb): 30 real before/after C/C++ vulnerability functions (RW01..RW30) paired with their 30 exact upstream patches across 16 open-source repositories (360binary runs acrossclang++ -O0/-O1/-O2 -fsanitize=address,undefined,validation_receipt.jsonSHA-256f64ea55205fb8c36e42e1b46a2c071a21e3a2c7fc4dacc526fcdb0d6b9c7577a,30/30PASS), and evaluated acrossQwen3.5-0.8B,Qwen2.5-1.5B-Instruct,SmolLM2-1.7B-Instruct, andQwen3.5-4B(asan_realworld_60_results.jsonSHA-25659402d8fb6627ba08c3a399d97e57a5ac75ecf229ccd727019979536cd138ba8).
Implement the
Rule S-0companion-config (config.json/generation_config.json) check insecant sanitize(COMPLETEDinv0.3.0).Implemented in
crates/secant-core/src/security.rsandinternal/wsp/sanitize.go(26/26security_paritytests passing): scanning a.safetensorscheckpoint automatically inspects siblingconfig.jsonandgeneration_config.jsonfiles in the checkpoint directory to enforce0 <= eos_token_id, bos_token_id, pad_token_id, decoder_start_token_id < vocab_size(cross-checked against the embedding/unembedding tensor shape),1 <= num_experts_per_tok <= num_local_experts, and0 <= leading_dense_block <= num_hidden_layers.
Horizon 2: Reordered Priorities Following Horizon 1¶
Reference-checkpoint diffing in
secant audit-trojanandsecant read(--reference <base_model>, ) — Priority 1 (COMPLETED:data/reference_diff_late_layers_20261109/).Implemented streaming row-by-row in
secant read --referenceandsecant audit-trojan --reference(crates/secant-core/src/read.rs,159/159Rust tests passing, bit-identical to the Go oracle) with pre/post SHA-256 brackets on both--modeland--reference.Acceptance test on the 3 sub-
Qwen3.5-0.8Blate-layer cells (COMPLETED, receiptdata/reference_diff_late_layers_20261109/reference_diff_late_layer_receipt.json, SHA-2566c361f3ce150271ec46414f0be6db60cbe318be2cdcd4a4f6f0fe3d6e3b3c08a): Regenerated all 12 patched submodels (1.0%, 2.0%, 4.0%, 6.0%) with 100% byte-identical SHA-256 digests to the Horizon 1 receipt and ransecant read --referenceacross all 9 sub- cells (1.0%, 2.0%, 4.0%onL20.mlp.down_projandL20.linear_attn.out_proj, and1.0%, 2.0%, 6.0%onL19.self_attn.o_proj). In all9 / 9sub- runs (down to1.0%dose, well below the4.0%..6.0%behavioral flip floor),--referencerecovered99.87%to99.996%of in and placed the planted token (16657" cheese") at Rank #1 (suppressedrank 1 onL20.mlp.down_projdue to sign convention,promotedrank 1 onL19.self_attn.o_projandL20.linear_attn.out_proj).
ASAN-180(ASAN-RealWorld-60) on the<think>reasoning cohort (4Bto32B) — Priority 2.The
4 / 4reasoning-model advantage is the oneASAN-120claim the real-worldASAN-RealWorld-60benchmark has not yet tested (Qwen3.5-0.8B,Qwen2.5-1.5B-Instruct,SmolLM2-1.7B-Instruct, andQwen3.5-4Bare complete). Run the full4Bto32Breasoning cohort on the 30 real upstream C/C++ vulnerability pairs (60functions) and report the outcome in a dated addendum regardless of direction.
Widen the
secant sanitizefalse-positive corpus from 10 to 100 checkpoints — Priority 3.Expand the pre-load verification corpus from 10 production checkpoints (
186.8Mblocks, 6 quantized formats) to 100 GGUF and SafeTensors checkpoints with all 10 quantized GGUF block formats represented, either establishing zero observed false positives across 100 checkpoints or surfacing and documenting the first real false positive before CI adoption.
Native Python bindings via PyO3 (
secant.sanitize,secant.audit_trojan) — Priority 4.Expose the Rust pre-load sanitizer and Trojan auditor directly to Python so
secant.sanitize(path)can run inside a Hugging Facefrom_pretrainedloading hook without subprocess overhead.
Deferred / Dropped Until Requested¶
Multi-input calibration: Deferred. The 7-point dose ramp on
Qwen3.5-4Bshows that single-reference calibration behaves predictably across dose (0.50x..1.50x).Q4_Ksuperblock editing: Dropped (secant quant patchkeeps the explicit refusal). The 32-weightQ8_0path covers demonstrated in-place GGUF surgery cleanly.Additional single-file Trojan grid cells: Not planned. The 17-cell, 187-point study answered the single-file question; reference diffing (
W - W_ref) is the next step.
Standing Evidence & Versioning Rules¶
Manifest before prose: Every new number enters a
data/<study>/directory with a verifiedMANIFEST.sha256(shasum -a 256 -c MANIFEST.sha256exiting0on the final committed files) before it enters a sentence indocs/orREADME.md.Frozen
v0.3.0paper body: Once Horizon 1 Item 1 closes across all 6 RMS models andv0.3.0is tagged, the body ofdocs/PAPER.mdis frozen for citation stability; subsequent Horizon 2 results enter a dated appendix or addendum rather than mutating existing body sections.