IX · Validate / CHAPTER 64
Scorecard → v1.0 / minors
v1.1.1
Why it exists
Version is earned from a weighted board, not marketing. v1.0 is 100/100 on the engine board. Minor/patch tags (v1.1.0, v1.1.1, …) pack features without a new board. Apps, stubs, and NPU sit off-board.
What it is
version = 0.{round(earned)} until 100 → v1.0. Scorecard today 100/100; this book tags v1.1.1. Training credit is §9 on the board (8 pts), not an afterthought.
| § | Area | Wt | Earned |
|---|---|---|---|
| 1 | Foundation | 15 | 15 |
| 2 | Dense MatVec microkernel | 15 | 15 |
| 3 | Transformer stack | 14 | 14 |
| 4 | CNN / RNN / LSTM | 6 | 6 |
| 5 | Extended layers (GDN, ConvT, Mamba, Parallel, …) | 7 | 7 |
| 6 | Runtime + architecture | 8 | 8 |
| 7 | Systems | 5 | 5 |
| 8 | Model / IO | 8 | 8 |
| 9 | Training credit (29 named TrainModes + BranchModes) | 8 | 8 |
| 10 | Peak fused / no host ALU | 14 | 14 |
| Total → v1.0 board | 100 | 100 |
v1.0 cut
- w2a [0] ALL — 246,032 cells, FAIL 0, RESULT PASS (§63)
- Training credit — StepBP, Tween*, Split, Alt, HeadProxy, FastProxy, Linear, Sparse, Step* pipe twins, Mesh* (§67)
- Cameral — Hemispheres, Mix BranchModes, Sandwich, ResidualGraft, cameral .entity (§68)
- CamSync — soft/hard inter-cameral + cross-layer same-shape weight blend (§70)
- Nested Sequential/Residual mixed children (Dense/SwiGLU/RMSNorm/LayerNorm)
- lucy — SoftAcc / Availability / Score +
BuildLPDdensity (§66 · §69) - v1.0.3 — Dense FormatNone SIMD forward: WireF64/
DotTileF64, expand-once, BF16 convert; ~4.3× geo-mean on 34-dtype deep suite vs prior Go; Dense-backed projs inherit (§6 · §11) - v1.1.1 — Cam adjusting fixed: CamSync on all layers (§70)
- v1.1.0 — CamSync +
training_modes.md+ Lucy Lean density + book §70 (§70 · §69)
Off this board
apps/octo, stub/*, NPU/Metal/QNN (later welvet.cpp).
FastProxy can match/beat StepBP Acc on sine/copy toys; Sparse wins Lucy Score via Avail.
Do not write “Sparse is better backprop.” Engine v1 ≠ “beats PyTorch.”Go example
Run:
cd welvet/examples/64-scorecard && source ../env.sh && go run .package main
import "fmt"
func main() {
earned := 100.0
fmt.Println("v1.1.1")
fmt.Printf("scorecard %.0f/100\n", earned)
}
Output
v1.1.1
scorecard 100/100