docs: name the defect shape that produced eight issues in one day #592
No reviewers
Labels
No labels
move-to-repo
coilyco-bridge-deploy
move-to-repo
coilyco-flight-deck-agent-compose
move-to-repo
coilyco-gaming-eco-app
move-to-repo
coilysiren-inbox
move-to-repo
unknown
🔒⚠️📦⚠️🔒 SANDBOXED 🔒⚠️📦⚠️🔒
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/sirens-echo!592
Loading…
Reference in a new issue
No description provided.
Delete branch "docs/a-default-that-reads-as-an-answer"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
closes #591
Eight issues in this repository today were one shape. Every instance read as correct and none of them failed anything.
The shape
A value has a default, an empty state, or a fallback. A reader cannot tell that state apart from a real measurement, so they read it as one.
Four habits
Ask what the default looks like from the outside — not whether it is correct, but whether a reader can tell it apart from a real value. Prefer a distinct state to a plausible one. Check a field's own history before believing it, because "empty" and "newer than the image" look identical in a query. And preserve the old series when a meaning changes.
Why a document and not a check
There is no mechanical form of "a reader would misread this". It is a review habit, and the eight rows are the evidence that having it produces different answers.
One fix pattern is worth the space it takes: #534 was fixed by adding
mcp.tools.configuredandmcp.tools.reachedbeside the boolean rather than by changing what the boolean meant. Changing a live attribute's meaning is how these get created. I nearly did exactly that on #520 — my closed PR setmcp.tools.cachedas an int while main had just set it as a bool, which would have made the attribute unqueryable and recreated the defect I was fixing.70 lines, 3438 characters, inside both caps with room.
ward exec gategreen.