← Crafts
Tether preview

Tether

Campus research Solo engineer

Lost-and-found lifecycle design for matching, custody, handover, and audit trails — four independent state machines with humans in the loop.

Design thesis

tether documents how mature lost-and-found systems separate moderation, matching intent, claim authorization, and physical custody. The docs/DESIGN.md spec in the repo is the source of truth: system proposes pairings; staff accept or reject; custody never duplicates digital status.

Four lifecycles

Reports handle moderation (pending → approved | rejected). Matches pair one lost and one found report (proposed → accepted). Claims authorize handover (initiated → verified → completed). Items track physical custody (with_finder ↔ in_custody → returned | disposed).

Principles

  • System proposes, humans accept — automation never finalizes a match
  • Physical custody tracked separately from digital intent
  • Tag IDs formatted SITE-YYYYMMDD-NNNN for shelf labeling
  • Finder-holds vs surrender-to-facility paths at report creation
Found report (surrender) Create Item + Tag ID Approve report Receive item (in_custody) Propose matches Accept match Claim + ID check Complete handover Finder System Admin Owner
Institution custody flow (from DESIGN.md)
class MatchRead(BaseModel):
    lost_report_id: str
    found_report_id: str
    score: float
    status: MatchStatus  # proposed | accepted | rejected | superseded | withdrawn
    scoring_version: int = 1
Tether match review placeholder
Screenshot placeholder — proposed match queue with score breakdown.