Building The Longhand Archive

How a solo archival system gets built in public

View My GitHub Profile

Superseded by ADR 0002 — Date-first closure policy. Retained as historical record of the draft proposal and deliberation.


Draft policy — date-first closure semantics

Status: draft only — not yet implemented in collector runtime Last reviewed: 2026-04-20

Purpose

This note proposes an exact collector-layer rule for handling roles whose declared close date has passed. It is deliberately limited to collector/archive semantics and does not attempt to infer recruitment outcomes.

Collector principle

The collector layer should prioritize:

  1. preserving source field values accurately
  2. recording source visibility/disappearance over time
  3. avoiding downstream conclusions such as cancellation, successful hiring, or repost continuity

Under that principle, the declared source closing field (closes / normalized closes_iso) is the best collector-layer proxy for when the role should be treated as closed in the archive.

Proposed rule

Broad rule

If:

then the role’s broad archive status should be closed.

This remains true even if the role still appears in search results.

Proposed lifecycle behavior

Case 3 — before close date and disappears with strong evidence of withdrawal

Case 4 — close date has passed

This applies regardless of whether the role:

Why this rule is attractive

Pros

Cons / trade-offs

Important non-goals

This policy does not claim that a past-due role:

Those are insights-layer questions.

Suggested implementation shape

If adopted, implement conservatively:

  1. update lifecycle pass so past-due records become closed even if present in current search
  2. add targeted tests for “past-due but still visible” roles
  3. extend validator severity so past_due_not_closed becomes a first-class policy mismatch
  4. document that status=closed means “declared close date passed” rather than “guaranteed absent from search”

Suggested wording for maintainers

Use this phrasing:

In the collector layer, closed means the role’s declared source close date has passed. Search visibility after that point is preserved as evidence of source behavior, but does not keep the role in broad active status.