Lab Objective

Create a local importer that accepts only the metadata needed for a current-status brief, rejects content-bearing or stale records, and refuses to claim completion without a separate artifact.

Lab Environment

  • Environment: local JSON fixtures, an allowlist validator, and a temporary ledger
  • Accepted fields: stable task ID, normalized state, source timestamp, and project/workspace ID
  • Rejected fields: previews, summaries, bodies, transcript paths, and raw session exports
  • Freshness limit: choose and document a short window, such as forty-eight hours

Scenario

A daily report must show which tasks are active. Importing entire conversations would expand the privacy boundary and make the report difficult to audit. The report also must not call a task complete merely because an inventory entry exists.

Step 1 - Define the Allowlist

Write the accepted schema first. Reject unknown fields rather than persisting them and filtering later. Include the source timestamp and adapter name so the observation can be explained.

Step 2 - Validate Fixtures

Accept a valid metadata-only receipt. Reject fixtures containing a preview, summary, transcript path, duplicate task, malformed timestamp, or unsupported state. Record only the rejection reason and stable test ID.

Step 3 - Enforce Freshness

Compare each source timestamp with the current time. Label records outside the freshness window as stale and exclude them from current-state decisions. A fresh record remains an observation, not completion proof.

Step 4 - Separate Status From Completion

Render “observed active” or “last status received.” Require a separate completion artifact before rendering “completed.” A task title, count, or AI-generated sentence is not enough.

Step 5 - Verify the No-Send Preview

Run a preview that updates only the temporary ledger and produces no outbound delivery. Confirm that a second run does not create a duplicate receipt for the same source observation.

Security Takeaways

  1. Reject sensitive fields at the source boundary.
  2. Freshness is part of the meaning of a status record.
  3. Historical context must not masquerade as current state.
  4. “Not proven” is a useful, testable outcome.
  5. Independent checks should verify the producer’s claim rather than repeat it.

Where This Applies Beyond the Lab

This pattern fits SOC dashboards, incident queues, backup reports, deployment monitors, and compliance evidence where a small, current receipt is safer than a copied transcript.