C.W.K.
Stream
Lesson 04 of 05 · published

Fail Honest, Never Stale

~10 min · honest-failure, stale-context, trust, degradation

Level 0Open Gate
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"If the brain can't see the truth right now, the right answer is 'I can't see it right now' — not a confident answer built on yesterday's copy."

What happens when the read fails

Pippa reads the live portfolio through the host adapter. But what if that read fails — the engine is down, the context is stale, something's wrong? There's a tempting fallback: use the last good snapshot Pippa happened to have and answer anyway. Keep forbids it. Engine failure is surfaced honestly rather than replaced with a stale prompt snapshot. If the Sidekick can't get fresh, valid host context, it blocks and says so — it does not quietly answer from a frozen copy as if nothing were wrong.

Why answering from stale context is the dangerous path

Think about what a stale-fallback answer looks like to the user: identical to a correct one. Pippa responds confidently, cites numbers, sounds authoritative — and is silently reasoning about a portfolio state that no longer holds. The user has no way to tell. That's the specific danger: a confidently-wrong answer is worse than a visible failure, because the failure stops you and the confident-wrong answer sends you off acting on stale truth. In a tool whose entire ethic is honest, calm information, a fluent answer built on invalid context is a betrayal of the one thing it promised.

A visible failure beats a confident wrong answer. When a system can't get valid inputs, stopping with an honest "I can't do this right now" is safer than producing a plausible output from invalid data. The failure is self-correcting — the user knows to wait or retry. The confident-wrong answer is self-propagating — the user acts on it. Prefer the honest stop.

Blocking is a feature, not a bug

It feels wrong to make the assistant less available — surely answering something is better than answering nothing? For most tools, maybe. For a tool holding the family's finances under an observe-never-advise, honesty-first ethic, no. The Sidekick blocking on stale context is the same instinct as the whole app: it would rather show you an honest gap than a comfortable fiction. A moment of "I can't read the live portfolio right now, try again" preserves trust; a smooth answer from a stale snapshot spends it, and you only find out you were misled after you've acted.

This is the honesty rule from the price layer, applied to the brain. You saw it with stale quotes: label them, never disguise them as fresh. Here it's the conversational form — Pippa won't disguise a stale-context answer as a live one. Across data and dialogue alike, Keep's rule is identical: never let something invalid wear the costume of something valid. The honest gap is always preferred to the convincing fake.

Code

Block on invalid context; never fake it (illustrative)·python
def sidekick_answer(question, scope):
    try:
        context = host.read(scope)               # fresh, live, read-only
    except HostUnavailable:
        # Do NOT fall back to a stale snapshot and answer anyway.
        # Surface the failure honestly and stop.
        return blocked("I can't read the live portfolio right now. "
                       "Try again in a moment — I won't guess from old data.")
    if context.is_stale():
        return blocked("The portfolio context is stale; refusing to answer "
                       "from it. Refresh and ask again.")
    return pippa.answer(question, context)       # only ever on valid, live context

External links

Exercise

Find a place where a system falls back to cached or last-known data when a live fetch fails, and then answers as if the data were current. Describe the user's experience: can they tell the answer was built on stale data? Redesign it to either label the staleness clearly or block honestly. Argue when a confident stale answer is actually more harmful than a visible failure — and for what kind of data that threshold is basically always.
Hint
The test: would the user act differently if they knew the answer was from stale data? If yes, a silent stale-fallback is a trap — it produces action on outdated truth. For anything where acting on it matters (money, health, safety), the honest 'I can't see it right now' almost always beats the smooth-but-stale reply.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.