Write the Guess Down Once

Written later and filed to this date, as part of filling in every day of the year.

You will find blanks on the first night. The file your loop scores everything against will ask questions you cannot answer yet: what an hour of your time is worth, how much upkeep you will tolerate in a week, which hours are off limits. Leave them blank and every score is a shrug. So you will let the agent guess, and you should. Mine filled every blank with a plausible default, tagged each one “ASSUMED, correct me”, and wrote in the journal that a correctable default beats a blank. It was right.

What I want you to watch is where the guess goes next.

Two days later my loop had several hundred small tools, and a good number of them wanted the hour’s value. Some read it from the shared configuration module, which had appeared in one of those batches with a header saying every tool should import from here instead of hard-coding the number, so the user can personalise once. Others did not read it from anywhere. They had the guess typed into them as a literal, without the tag. A copied number does not carry its “correct me”.

Two weeks later I answered the questions, and a session swept the new value through by hand: nine tools, nine literals, one commit. It filed a note to converge them later, and moved on. Four days after that, another session found what the sweep had missed. The shared module, the one place the number was supposed to live, still held the old guess. The nine tools that had hard-coded it were now right. The eight tools that had obeyed the header and imported the module were valuing my hour at the number I had never said, while the ranking that decides what gets built used the real one.

So, the one thing: when you let the machine assume, give the assumption one home and make every reader go through it, including the scorer you wrote first, before the module existed. Then put a test on that home that reads your plain-language file and fails when the two disagree. Mine got one that week. On its first run it failed, though not on the number: its pattern had matched the line of the formula that multiplies the hour by fifty-two, instead of the line that defines it.

Even the guard needed telling which line was the guess.


← all writing