Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument mechanism / verified-clean

Smoking Pack-Year Calculator mechanism

The inspectable method record for Smoking Pack-Year Calculator, kept separate from implementation and qualification.

Status: VERIFIED_CLEANLifecycle: verified-clean

Model scope

The honest-label language is appropriate, but the specification must resolve the exact ambiguity between cigarettes/day and packs/day and explicitly define the pack-size assumption before release.

  • The stated formula is correct only when the input is packs per day, but the specified input is cigarettes per day; cigarettes/day must be divided by cigarettes per pack first.
  • The pack size is unspecified. A 20-cigarette pack is a common convention, but pack sizes vary, so the instrument must state or collect the assumed pack size.
  • For multiple smoking periods, the formula must sum each period: total pack-years = sum((cigarettes/day ÷ cigarettes/pack) × years) rather than applying one undifferentiated period formula.

Units and conventions

  • Unless otherwise specified, one pack is assumed to contain 20 cigarettes.
  • Years smoked are elapsed years and must be nonnegative; fractional years are allowed.
  • Cigarettes/day must be nonnegative and cigarettes/pack must be a positive integer.
  • Pack-years means packs per day multiplied by years, with output units of pack-years.

Inspectable vector

One of 4 source-bound review vectors:

{
  "inputs": {
    "cigarettes_per_day": 20,
    "years_smoked": 15,
    "assumed_cigarettes_per_pack": 20
  },
  "expected_outputs": {
    "total_pack_years": 15
  },
  "working": "packs/day = 20 cigarettes/day ÷ 20 cigarettes/pack = 1 pack/day; pack-years = 1 × 15 years = 15 pack-years."
}

Failure boundary

BREAK_CLAIMED · SELF_FLAGGED

The specification does not define the cigarettes-per-pack conversion, so the same cigarette history can produce different totals. Extreme finite inputs also overflow ordinary JavaScript arithmetic to Infinity, which requires validation or rejection.

Other records

Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

  • VERIFIED_LEDGER.json
  • evidence-tranche5/tranche5-results.json
  • BOUNDARY_HAZARD_CATALOG.json