Architecture & Method
Nobody types
the weights.
BPOS learns which routes through its knowledge work. We decide how it learns. The work decides what it learns. Nobody sets a weight by hand, and that is a rule, not a habit.
A learned weight only means something while it is a function of what happened. Type it in once by hand and it stops meaning anything, even if the number looks sensible.
Three ways to move a weight
Our graph’s conductivity follows one law, explained in the pigeon article:
Dt+1(e) = (1 − λ)·Dt(e) + λ·(D0 + f0 + f1)
It settles at D* = D0 + E[f0 + f1]. There are three ways anyone could try to move a weight. Two are legal.
Everything the world has to say enters as an observation. Everything we have to say enters as the rule. The state is the system’s to compute.
Legal 1: change the rule. The parameters and the form of the food: λ, D0, how the class baseline is read, and the shapes of f0 and f1.
These are global, rare and versioned. A change here ships as an engine release, with property tests that must pass on every build.
Legal 2: add an observation. A job walked a link and scored s over a path of length L. A retry through the link was decided, with a known effect. An approved change created a link, with a starting value the rule then owns.
Each of these enters through f. An operator’s approval is an observation too, with a stated weight. It enters exactly the way a job’s result does, and is counted rather than imposed.
Illegal: type the answer. D ← c. Writing a value straight into the state.
Why the third door is locked
It is locked for a reason you can check, not a matter of taste. The settled value only means something while D is a function of the observations alone.
Type D in once, and on that link the settled value is no longer the average of what the work fed it. The properties we test stop describing it.
Any ranking built on that link becomes a recipe wearing a weight. It looks learned. It is somebody’s opinion with a decimal point.
An illustration, not data. The fed link ends where the work puts it. The typed link ends where someone put it.
The rule is ours to write. The observations are the work’s to make. The state is the system’s to compute.
The knob that was a trap
We learned the cost of a loose parameter the expensive way. The earlier rule had a growth constant beside the decay rate. It only behaved when the two were equal.
A knob that must never be turned on its own is not a knob. It reads as permission. When the rule changed on 14 September, the update kept a slot for that old constant that nothing filled.
For eight days, until 21 September, every update to every link was refused. Meanwhile a test of the old law passed on every build. It checked the law against its own arithmetic, not against the running system.
A green test and a stopped system, for eight days. The fix was to remove the knob, not to guard it.
So the constant is gone. The law now states its own limits: a floor, so a link can always recover, and a ceiling, so the value stays readable.
A parameter that must never change on its own belongs inside the rule, not beside it.
How we will know it learns
Here is the test that separates learning from a recipe. Change what the jobs do, and the weights must change by themselves, with nobody touching the rule.
If they do, the graph is learning from the work. If they only move when someone edits a number, it is a recipe with extra steps.
That test has only begun. The law has had few observations, and most links still sit at their prior. We will publish the result when the record can carry it.
Common questions
Why not let people set weights directly?
Because the weight would stop summarising what happened. Every property of the rule assumes the weight is computed from observations.
Is an operator’s judgement ignored, then?
No. It enters as an observation with a stated weight, the same way a job’s result does. It is counted, not imposed.
What counts as changing the rule?
Its parameters and the form of its inputs. Those changes are rare, versioned, and tested on every build before they ship.
How do you know the system learns rather than follows a recipe?
Change what the jobs do and watch whether the weights move without anyone touching the rule. That test has begun and is not yet conclusive.
Related writing
- The Pigeon Was Not Superstitious. The Reader Was.. The law, where it comes from, and what our graph has earned.
- A Green Build Is Not Knowledge. Why a passing test is not the same as a working system.
- Limitations, Perceived and Real. The one real limit made no noise at all.