Chapter 22
When rules stop being advice
Gary was not trying to control anyone.
He just noticed something.
Some albums had no publishing year.
Sometimes that was correct.
Some vinyl releases simply didn’t have one.
Sometimes it was unknown.
But often it was just forgotten.
He stared at the list.
“Is this wrong?” he asked.
Sam didn’t answer immediately.
“It’s not wrong,” Sam said finally.
“It’s incomplete.”
Gary nodded.
Incomplete felt different from incorrect.
“Should we block it?” Gary asked.
Sam shook his head.
“No. Not yet. Some albums really don’t have a year.”
Gary leaned back.
“So… we warn. Not punish.”
Sam smiled.
“Let’s start gentle.”
Starting with a gentle signal

They decided on something simple.
If an album has no publishing year,
the system should say:
You may want to look at this.
Not: You cannot save.
This wasn’t about control.
It was about awareness.
Giving the missing year a name

Sam didn’t start with a rule.
He opened a modal.
“Add value classification,” Gary read out loud.
“What are we calling it?”
Gary thought for a moment.
“Missing Publishing Year.”
Sam typed it into the name field.
Below it, the system suggested an API name.
missing_publishing_year.
They left it as it was.
“Table?” Sam asked.
“Album.”
“Column?”
“Year.”
Then they opened the predicate dropdown.
Has No Value.
Gary nodded.
“That’s exactly what we mean.”
They didn’t check Use as Filter.
This wasn’t about searching.
It was about describing a situation.
Sam clicked Save.
Nothing dramatic happened.
No one was blocked.
No one was warned.
They had not enforced anything.
They had simply given the absence a name.
From description to reaction
They went back to the list of value classifications.
There it was.

Missing Publishing Year.
Sam opened the menu next to it.
“Configure write rule.”
Gary folded his arms.
“If we add a rule… are we being strict?”
“Only if we choose to be,” Sam replied.
The write rule window opened.

They activated it.
Left the condition as When true.
“Meaning?” Gary asked.
“Meaning,” Sam said, “whenever the album would end up in this state.”
Gary frowned.
“Would end up?”
Sam pointed at the screen.
“The system doesn’t wait blindly for you to press save.
Every time you change something, it evaluates the result —
as if you had already saved it.”
Gary tilted his head.
“So it checks what the album would look like
if I committed this change right now?”
“Exactly.”
It wasn’t checking history.
It was checking outcome.
Then they chose the severity.
Warning.
Not Error that would have blocked.
Gary read the message field out loud.
Publishing year is missing.
Below it, they added a short explanation.
This album has no publishing year.
That may be correct — but if the year is known, add it.
Sam clicked Save.
Now the classification did more than describe.
It reacted.
Gently.
The system would evaluate each change.
If the result would be an album without a year,
it would say so.
But it would still allow the save.
Trying it in the form

They clicked Add Album.
A blank form appeared.
Gary typed the title.
Skipped the year.
Almost immediately, a warning appeared below the field.
Publishing year is missing.
Gary stopped.
“I haven’t saved yet.”
“You don’t need to,” Sam said.
“The system evaluates continuously.”
Gary looked at the empty year field.
“It’s already checking?”
Sam nodded.
“It asks: if you saved this right now,
what would the album look like?”
“And since the year is empty…”
“It predicts the outcome.”
The rule wasn’t waiting for commitment.
It was evaluating the current state
as if it had been saved.
Gary hovered over the warning.
Read the details.
Then he pressed Save.
The album was stored.
Nothing was blocked.
The warning remained visible.
The system had spoken.
But it had not refused.
Gary leaned back.
“It used to be advice,” he said.
“Something we hoped people would remember.”
Sam nodded.
“Now the system remembers.”
It wasn’t enforcement.
Not yet.
But something had changed.
The spreadsheet used to store data.
Now the system had started to care.
And it did so gently.
When advice becomes a boundary
Gary looked at the form again.
“What if something really shouldn’t be allowed?”
Sam raised an eyebrow.
“Like what?”
“An album without a title,” Gary said.
“That makes no sense at all.”
Sam nodded.
“That’s different.”
They went back to classifications.
Created another value classification.
This time on the Title column.
Predicate:
Has No Value.
They saved it.
Nothing changed yet.
It was still just a description.
Then Sam opened Configure write rule.
Same window.
Same steps.
Active.
When true.
But this time, under Severity, he chose:
Error.
Not Warning.
Gary watched.
“And that means?”
“It means the system will still evaluate continuously,” Sam said.
“But now it won’t allow the outcome.”
They opened the form again.

Left the title empty.
The message appeared.
Title is required.
Gary moved the cursor toward Save.
But the button was already disabled.
He couldn’t press it at all.
Sam nodded toward the greyed-out button.
“That’s the difference,” he said.
“A warning lets you continue.”
“An error removes the choice.”
Gary looked at the form again.
Warnings advised.
Errors enforced.
Gary nodded slowly.
“So it’s the same structure.”
“Yes,” Sam said.
“The only difference is how firm you want the boundary to be.”
Gary smiled.
Advice when something might be missing.
Enforcement when something must exist.
The spreadsheet used to rely on discipline.
Now the system carried it.
Continue reading
Warnings handled uncertainty.
Errors handled missing values.
But Gary looked at the album again.
“What if an album has no artist at all?”
Sam didn’t smile this time.
“That’s different.”
A missing year might be acceptable.
A missing subtitle might be optional.
But an album without an artist?
“That shouldn’t be allowed,” Gary said.
Sam nodded.
“Then we don’t check a column.”
“What do we check?”
“The connection.”
Gary frowned.
“You mean… whether at least one artist is linked?”
“Yes.”
“And if not?”
“Then it’s an error.”
Not a warning.
Not advice.
The album cannot exist
without at least one artist.