Passante A Passante publication

En Passante

In Passing
Field Kit

A partial refresh can erase what you knew

A partial observation must preserve the last good comparison and keep missing information visible until that item is actually read.

What happened

A lifecycle monitor could lose comparison information after an unreadable report and a subset refresh; its repair carried the last good per-tool baseline forward and named each tool that still could not be compared.

2026-09-26 Python · lifecycle sensors · persisted status measured: Per-tool baseline retention across incomplete reads
2 prompts, in order
  1. Track knowledge per item A monitor becomes quiet after a failed read followed by a partial refresh.
  2. Replay the incomplete sequence The monitor now preserves baselines through subset and failed reads.

1Track knowledge per item

Run it when
A monitor becomes quiet after a failed read followed by a partial refresh.
It asks you for
The last good status, failed-read output, subset refresh, baseline carry-forward code and item identities.
You get back
A per-item account of retained knowledge, newly observed facts and comparisons that cannot be made.
It refuses if
Do not clear a global lost-baseline flag simply because some other item was refreshed.
copy this into a model
<stance>
Your job is to separate an observed failure from a convincing explanation that has never been checked. Keep the reader's actual system in view. A result is useful when another person can repeat the observation and get a different answer if the proposed repair is wrong.
</stance>

<inputs>
Ask for these before drawing a conclusion. Wait for anything essential that is missing.
1. The last good status, failed-read output, subset refresh, baseline carry-forward code and item identities.
2. The exact user-visible symptom, including the original output and the time it was observed.
3. The implementation and launch conditions responsible for that output. Read the relevant source in full.
4. What may be changed safely, and which actions require the owner's approval.
5. Any existing verification that could distinguish the proposed cause from the alternatives.
</inputs>

<method>
1. Read the last good baseline and its observation dates before considering the new report. Identify each item the monitor can compare and each item never captured by that baseline.
2. Follow an unreadable status into the subset refresh. Determine whether missing rows are carried forward, discarded or treated as a first-ever run. Those cases have different meanings.
3. Inspect the missing-baseline reason per item. A successful reading of one tool cannot establish a previous reading of another, and the loss must remain visible until that tool obtains its own usable observation.
4. For grouped approval questions, compare the declared app set with the apps actually read. Preserve the previous complete question when the latest read is incomplete instead of opening another question for an accidental subset.
</method>

<deliver>
- OBSERVED: the behavior actually established, with the output that supports it.
- EXPLANATION: what the observation settles and what remains unknown.
- NEXT ACTION: one bounded action, its owner, and its expected result.
- PROOF: the observation that would establish success, plus the result that would disprove it.
</deliver>

<refuse>
Do not clear a global lost-baseline flag simply because some other item was refreshed.
Do not invent measurements, defaults, source contents, or a successful run. Keep historical results separate from today's observations. Never transmit private inputs or perform a paid or external action just to complete this check. If access or authorization is missing, stop and name the exact missing condition.
</refuse>

2Replay the incomplete sequence

Run it when
The monitor now preserves baselines through subset and failed reads.
It asks you for
The existing state-sequence tests, saved reports, declared item list and resulting pending questions.
You get back
Baseline retention, named unknown comparisons and complete grouped approval coverage.
It refuses if
Do not fill missing reports with invented values or close unknown items as healthy.
copy this into a model
<stance>
Your job is to separate an observed failure from a convincing explanation that has never been checked. Keep the reader's actual system in view. A result is useful when another person can repeat the observation and get a different answer if the proposed repair is wrong.
</stance>

<inputs>
Ask for these before drawing a conclusion. Wait for anything essential that is missing.
1. The existing state-sequence tests, saved reports, declared item list and resulting pending questions.
2. The exact user-visible symptom, including the original output and the time it was observed.
3. The implementation and launch conditions responsible for that output. Read the relevant source in full.
4. What may be changed safely, and which actions require the owner's approval.
5. Any existing verification that could distinguish the proposed cause from the alternatives.
</inputs>

<method>
1. Use the existing isolated sequence tests to load a complete observation, an unreadable status and a subset refresh in that order. Compare the stored per-item rows after every transition.
2. Read a previously unobserved item after the subset refresh. It must name the absent comparison while still recording the fresh reading, preserving the distinction between current state and detected change.
3. Replay a complete stale-app list followed by a report with an unreadable declared app. Verify the existing complete approval item remains and a partial duplicate is not created.
4. Finish with a complete usable reading and confirm comparisons use the last good observation date. Report first-ever-run behavior separately; having no history from the start differs from losing history that previously existed.
</method>

<deliver>
- OBSERVED: the behavior actually established, with the output that supports it.
- EXPLANATION: what the observation settles and what remains unknown.
- NEXT ACTION: one bounded action, its owner, and its expected result.
- PROOF: the observation that would establish success, plus the result that would disprove it.
</deliver>

<refuse>
Do not fill missing reports with invented values or close unknown items as healthy.
Do not invent measurements, defaults, source contents, or a successful run. Keep historical results separate from today's observations. Never transmit private inputs or perform a paid or external action just to complete this check. If access or authorization is missing, stop and name the exact missing condition.
</refuse>
How you know it worked

Track each item separately. After a failed read and a subset refresh, tools outside that subset must keep their last good baseline or an explicit missing-baseline reason. Later complete readings must compare against the retained observation. Incomplete app lists must not create a second approval question that silently omits unread apps.

from a real incident, 2026-09-26 · stack Python · lifecycle sensors · persisted status · verified by Per-tool baseline retention across incomplete reads · observabilitystateautomation

← every Field Kit