L01

W01–W02 · 4 hours · complete online handout

Surface & source audit

Research question

What can a second analyst reproduce from one answer-surface observation?
Download offline package
01

Contract

What this lab must demonstrate

  • Record a complete observation context.
  • Resolve visible source identities.
  • Separate visible events from hidden-stage hypotheses.

Prerequisites

  • Course evidence-boundary briefing.
  • No automated or authenticated collection is needed for the core route.
Equivalent low-compute route

Complete the entire lab from supplied HTML, screenshots, and response JSON.

02

Milestones

Four reviewable checkpoints

The windows are planning budgets, not hidden grading criteria. Pause at every gate; do not compress a failed check into the final submission.

  1. 01

    Frame and authorize

    Work
    Select the approved public or synthetic surface; name system, surface, locale, account state, time zone, query, and collection method.
    Checkpoint evidence
    Completed system-card fields and a written authorization/privacy decision.
    Advance only when
    No collection begins while authorization, personal-data handling, or interface terms remain unclear.
  2. 02

    Freeze the observation

    Work
    Redact identifiers, preserve the response, hash each local artifact, and record visible citation positions without filling unknowns from memory.
    Checkpoint evidence
    Frozen response plus screenshot/file manifest with checksums.
    Advance only when
    Every retained artifact is redacted before hashing and every missing state stays explicit.
  3. 03

    Resolve sources and boundaries

    Work
    Resolve each visible source to a stable identity and label every pipeline stage observed, inferred, unknown, or not applicable.
    Checkpoint evidence
    Source inventory and boundary-note draft with invalid inferences removed.
    Advance only when
    No hidden-stage mechanism appears as an observation.
  4. 04

    Reconstruct and release

    Work
    Run the auditor, correct contract failures, then ask a peer to reconstruct the context and locate every source from files alone.
    Checkpoint evidence
    PASS audit report, peer reconstruction note, and final five-file contract.
    Advance only when
    A second analyst succeeds without oral explanation.
03

Validation

Checks, pass gate, and assessment

Schema validation passes.

Every file in the manifest exists and has a checksum.

No personal/session identifier remains.

Every source is resolvable or explicitly unresolved.

Every hidden-stage statement is labeled as hypothesis or unknown.

Pass gate

A second analyst can reconstruct the observation context and locate every visible source; no hidden-stage claim is presented as observation.

L01 Rubric — 100 points

Rendered from the canonical package rubric. Source SHA-256: 41b2c13e90e12aada8ba4099bff52f1fa2d6b39ad2429335a77ad5ba6300f90b.

L01 canonical 100-point assessment rubric
CriterionPointsFull-credit evidence
Observation context20System, surface, locale, account state, timestamp, exact query, and response artifact are reconstructable.
Artifact integrity15Response and optional screenshots are named consistently, redacted, frozen, and hash-addressed.
Source identity20Every visible citation resolves to one registry record; ambiguity and missing identity are preserved.
Epistemic boundary25Visible observations, external support, hypotheses, and unobserved hidden stages are not collapsed.
Reproduction by peer10A second analyst locates the response and every source without oral repair.
Ethics and communication10Privacy/terms constraints and invalid inferences are explicit; prose is precise and auditable.

Hard fail pending remediation: fabricated observation, undisclosed synthetic artifact, exposed personal/session credential, unauthorized automated collection, or a hidden-stage claim represented as directly observed.

Pass threshold: 70/100 and no hard-fail condition. Software PASS is necessary but not sufficient for assignment credit.

04

Handout

Complete browser-readable lab handout

Generated from the same controlled README shipped in the offline package. Source SHA-256: ba995959c9afb901329a7394cab4570093e7848718e2e33ef2e77a86621e8e23.

On this page 10 sections

Linked course weeks: W01–W02
Expected effort for the full assignment: 4 hours
Core path: offline, deterministic, Python standard library only

Research question

What can a second analyst actually reproduce from one answer-surface observation?

Learning objectives

By the end of this lab, you should be able to:

  1. distinguish a visible surface event from an inference about crawling, indexing, retrieval, ranking, generation, or training;
  2. preserve the system, surface, locale, account state, time, exact query, response artifact, and visible citations as separate fields;
  3. resolve every cited source to a stable registry identity;
  4. generate a hash-addressed observation package another analyst can audit; and
  5. write a bounded conclusion that names what the observation cannot establish.

Input contract

data/observation.json follows ../shared/schemas/observation.schema.json. Required fields are:

  • observation_id, system, surface, locale, account_state, and an ISO-8601 observed_at value;
  • the exact query and a relative response_path;
  • unique visible_citations that resolve in the supplied source registry; and
  • hidden_stage_statements, each labeled not_observed, hypothesis, or externally_supported.

The sample is a synthetic surface observation and deliberately includes a tempting retrieval inference labeled not_observed. Replace it only with an instructor-approved public or synthetic observation. Never store cookies, account identifiers, tokens, personal history, or unredacted screenshots.

Run

python3 scripts/audit_surface.py \
  --observation data/observation.json \
  --sources ../shared/fixtures/source_registry.csv \
  --output /tmp/geo-l01

Output contract

The command creates:

Table from the controlled L01 lab handout
ArtifactContract
audit_report.jsonstatus, hard errors, cautions, visible-citation count, and invalid-inference count
system_card.jsonnormalized context plus SHA-256 of the frozen response artifact
source_manifest.csvone resolved row per visible citation
run_manifest.jsoninput paths, hashes, parameters, and offline/deterministic flags

The script refuses missing response artifacts, duplicate or unresolved citations, malformed timestamps, undeclared account states, and hidden-stage statements without an admissible status. A PASS means the package is internally reconstructable; it does not validate the answer or reveal a hidden mechanism.

Full assignment procedure

  1. Obtain permission for the observation surface and freeze one response artifact.
  2. Redact personal/session data before placing any artifact in the package.
  3. Record the observation fields without filling unknown fields from memory.
  4. Resolve visible citations by source identity, not just display label.
  5. List each tempting hidden-stage inference and assign an epistemic status.
  6. Run the auditor and correct contract failures without deleting inconvenient observations.
  7. Submit the generated artifacts, a screenshot/file manifest, and a 500-word boundary note.
  8. Ask a peer to reconstruct the context and locate every source from the package alone.

Low-compute and no-network route

Use the checked-in text snapshot. No browser, OCR, model, network request, or external package is needed. A real screenshot can remain outside the repository if privacy or licensing requires it; store a redacted manifest entry and hash instead.

Negative results and interpretation

  • No citations is a valid observation. Record an empty list; do not invent sources.
  • An unresolved displayed source is a finding. Record it in the boundary note and fix the registry only when identity is established.
  • A peer who cannot reconstruct locale, account state, time, or response version has discovered a reproducibility failure.
  • Surface evidence cannot establish that a source was crawled, indexed, retrieved, reranked, absorbed, or used for training.

Ethics and stop conditions

Stop if collection would require bypassing access controls, automated load, deception, personal data, secret recording, or violation of interface terms. Do not infer sensitive attributes from account state. Redact identifiers before hashing because hashes do not anonymize predictable personal data.

Acceptance

python3 scripts/audit_surface.py --observation data/observation.json --sources ../shared/fixtures/source_registry.csv --output /tmp/geo-l01
python3 -c 'import json; assert json.load(open("/tmp/geo-l01/audit_report.json"))["status"] == "PASS"'

See RUBRIC.md for grading.

05

Execute

Use one source of executable truth

Ethics and stop condition

Redact personal and session identifiers, obey interface terms, make no automated load, and use the fixture if authorization is unclear.

Optional extension

Compare two manual repetitions while preserving separate event records; do not infer frequency from two observations.

The page is the complete reading and planning surface. The versioned package README and scripts remain authoritative for exact local commands, filenames, fixtures, and validation behavior.