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, alreadystatus: 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
pantryplusimplementation 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
proposeduntil 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: proposeduntil 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
statusmoves pastproposed.
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.mdQ5,implementation-alignment.md) — confirmed not greenfield. - [x] Drafted ADR-0015 via the
new-adrskill; determined next number (0015) by inspectingdocs/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
statuscan move toapproved. - 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.