Skip to content

Shelfery Food-Safety Claim Decision (GitHub Issue #3)

Objective

Answer the question posed in GitHub issue #3 — whether expiration dates constitute a food-safety claim — as a formal, reviewable decision record, reconciling it with the existing (unratified) Shelfery trust/food-claims domain standard rather than deciding it independently of that document.

Scope

  • Draft ADR-0015, answering the specific question the issue raised: raw expiration dates and date-based alerts are data/notifications, not food-safety claims; assertions of safety/spoilage derived from those dates ARE food-safety claims and require human review.
  • Reconcile with ventures/shelfery/docs/domain/trust-safety-and-food-claims.md (DD-SHELFERY-023, already status: proposed, already covering this ground in more depth) rather than duplicating or contradicting it — ADR-0015 ratifies the specific distinction the issue asked about, while explicitly declining to ratify the whole standard (which still needs legal review and has an unresolved open question, Q5, about authoritative sourcing).
  • Update docs/decisions/README.md's ADR index.

Out of scope

  • Fully ratifying ventures/shelfery/docs/domain/trust-safety-and-food-claims.md — that document's own text says it needs legal review given the subject matter; not something this task can or should resolve.
  • Resolving open question Q5 (authoritative shelf-life data source) — flagged by ADR-0015 as now urgent, but not resolved by it.
  • Actually updating the pantryplus implementation repository to reference this decision — that's a change to a different repository, listed as a follow-up action, not executed here.
  • Issues #1 and #2 — handled separately, see work/archive/.

Applicable authority

  • docs/governance/decision-rights.md — food-safety claims are explicitly listed as a category an AI agent may never independently approve.
  • docs/company/customer-trust-principles.md (DD-COMPANY-007) — names food-safety claims as requiring human review before being final.
  • ventures/shelfery/docs/domain/trust-safety-and-food-claims.md — the existing preliminary domain standard this ADR must reconcile with, not duplicate or contradict.
  • CLAUDE.md — hard prohibition context: food-safety-adjacent decisions require explicit human review; status stays proposed until the Founder explicitly ratifies, naming the document.

Files expected to change

  • docs/decisions/ADR-0015-expiration-dates-are-data-not-food-safety-claims.md (new)
  • docs/decisions/README.md

Assumptions

  • The issue's own recommendation ("dates are fine... saying gone bad or still safe based on the date is not ok") is the Founder's stated position to formalize, not merely an example to consider — treated as the basis for the ADR's Decision section, subject to the Founder's actual review and possible revision.
  • A "default expiry window" feature (the app supplying a typical shelf-life estimate, as opposed to a user- or package-supplied date) is materially different from showing a plain date, and falls on the "claim" side of the line requiring sourcing under the domain standard's rule 1 — called out explicitly in ADR-0015's consequences so this distinction isn't lost when the expiry-alert feature is actually built.

Risks

  • This is explicitly a food-safety-claims decision — the highest-friction category in decision-rights.md. ADR-0015 must remain status: proposed until the Founder reviews and explicitly approves, naming the document.
  • Risk of the ADR being read as fully ratifying the broader domain standard when it deliberately does not — mitigated by an explicit "Alternatives Considered" entry rejecting that scope and a named follow-up action for the standard's own separate approval path.

Validation plan

  • python scripts/check.py — all validators.
  • python -m unittest discover tests — full suite.
  • Human (Founder) review and explicit approval before status moves past proposed.

Progress checklist

  • [x] Surveyed existing Shelfery domain/company docs for a de facto position (found trust-safety-and-food-claims.md, customer-trust-principles.md, assumptions-and-open-questions.md Q5, implementation-alignment.md) — confirmed not greenfield.
  • [x] Drafted ADR-0015 via the new-adr skill; determined next number (0015) by inspecting docs/decisions/ and confirming no gaps in git history.
  • [x] Updated the ADR index.
  • [x] Ran python scripts/check.py — all checks passed.
  • [x] Ran python -m unittest discover tests (38 tests, OK).
  • [x] Presented to user for review. User approved explicitly ("sounds good"), in direct response to ADR-0015 specifically, 2026-07-12. Set status: approved, approved_by: Stuart M. Davis (Founder), approved_date: 2026-07-12, effective_date: 2026-07-12.
  • [x] Closed GitHub issue #3.
  • [x] Archived this plan.

Decisions required

  • Founder must review and explicitly approve ADR-0015 (naming the document) before its status can move to approved.
  • Founder should confirm whether the narrower scope (ratifying only the "dates vs. claims" line, not the whole domain standard) matches their intent, or whether they want the fuller standard's approval path (legal review, Q5) pursued now instead.

Handoff notes

ADR-0015 is drafted and validated but still status: proposed as of this session. If picked up later: check whether Founder approval has since been recorded before assuming it's binding, and check whether the follow-up actions (pantryplus cross-reference, Q5 update) have been completed.


Report an issue about this page