{
 "note": "Tool database. Tier 1 = researched in depth (founder interview and/or published evaluation). Tier 2 = catalogued from public documentation and the mechanism literature, not evaluated. Vectors are Jacob's coding of each product's DEFAULT configuration, argued from the research report — not measurements. Tier 2 entries code only locus/act/exit (structural properties readable off the design); the judgement axes are null and those tools are scored on the reduced fit in rubric.json. Fields reading NEEDS VERIFICATION are unresolved open items and the site renders them as unverified rather than as facts. Each entry carries a `kind` — vendor, open_source, os_feature, category or practice — which decides which sections apply to it. Asking who funds a drawer, or what a drawer's privacy policy permits, is a category error, and the same block of questions applied to every entry produced several. The 19 mobile entries whose kind is `recipe` are no-code configurations assembled from features already on the phone. They are matchable like anything else: the claim that a phone offers no route of your own was too strong — what it forecloses is writing code, not assembling the OS. Their step-by-step instructions, design notes and undo procedures come from recipes-mobile.md, which ships alongside and is the fuller version.",
 "tier1Note": "Tier 1 seed. Vectors are Jacob's coding of each product's DEFAULT configuration, argued from the research report — not measurements. Fields marked NEEDS VERIFICATION must be sourced and dated before launch.",
 "tier2Note": "Tier 2 minimum set — a Phase 1 correctness requirement, not an enhancement. Takes harm x platform coverage from 5/24 to 23/24 cells at >=3 matches. Only locus/act/exit are coded (structural, readable off the design); the judgement axes are null, so these tools are scored on the REDUCED fit in the plan's 6.2 and can never be presented as equivalent to Tier 1.",
 "tools": [
  {
   "id": "light-phone",
   "name": "Light Phone",
   "tier": 1,
   "tierReason": "Founder or researcher interviewed, and/or published evaluation",
   "form": "Hardware — device substitution",
   "platforms": [
    "physical"
   ],
   "mechanisms": [
    "access_control"
   ],
   "harms": [
    "interference",
    "exposure"
   ],
   "vector": {
    "locus": 95,
    "act": 5,
    "author": 80,
    "auto": 35,
    "comp": 20,
    "dur": 25,
    "nego": 10,
    "exit": 70,
    "evid": 55
   },
   "priceBand": "over_50",
   "priceNote": "Light Phone III reported $599–799; Light Flip $299. Verified 2026-07-24 in the research report — RE-VERIFY.",
   "priceUrl": "",
   "evidence": {
    "strength": "published_trial",
    "summary": "The only device-level tool in this set with a published trial. Behaviour changed in both arms; wellbeing gains appeared in the self-selected motivated arm.",
    "limits": "The motivated arm was not randomised, and the randomised arm is small after substantial attrition. Do not read it as evidence the device improves wellbeing on its own.",
    "citations": [
     "See method.html — full references"
    ]
   },
   "structure": {
    "ownership": "NEEDS VERIFICATION — do not ship without a dated source",
    "funding": "NEEDS VERIFICATION — do not ship without a dated source",
    "dataPolicy": "NEEDS VERIFICATION — do not ship without a dated source",
    "enforcementActions": [],
    "verified": null
   },
   "why": "Chosen once at purchase, then no ongoing decisions. Nothing is taught, and Lee et al. found the behaviour change did not carry wellbeing gains for the unmotivated. Exit means giving up the device you paid for.",
   "kind": "vendor"
  },
  {
   "id": "wisephone",
   "name": "Wisephone",
   "tier": 1,
   "tierReason": "Founder or researcher interviewed, and/or published evaluation",
   "form": "Hardware — curated OS",
   "platforms": [
    "physical"
   ],
   "mechanisms": [
    "access_control",
    "knowledge_building"
   ],
   "harms": [
    "interference",
    "exposure"
   ],
   "vector": {
    "locus": 95,
    "act": 5,
    "author": 95,
    "auto": 15,
    "comp": 25,
    "dur": 20,
    "nego": 5,
    "exit": 90,
    "evid": 5
   },
   "priceBand": "hardware_plus_sub",
   "priceNote": "$399 device plus a required $14.99/month WiseOS subscription; utility degrades if the subscription lapses. Verified 2026-07-24 — RE-VERIFY.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this product.",
    "limits": "Any effect claim is vendor-stated or inferred from adjacent research on the mechanism.",
    "citations": []
   },
   "structure": {
    "ownership": "Techless",
    "funding": "Founder describes screening investors on motive rather than terms (founder interview)",
    "dataPolicy": "NEEDS VERIFICATION — do not ship without a dated source",
    "enforcementActions": [],
    "verified": "2026-08-11"
   },
   "why": "Kaspar is explicit that non-negotiability is the product — 'boundaries that you cannot change'. Curation is company-authored against principles that 'doesn't waver'. Exit is the most expensive in the set: $399 plus a subscription the device depends on.",
   "kind": "vendor"
  },
  {
   "id": "brick",
   "name": "Brick",
   "tier": 1,
   "tierReason": "Founder or researcher interviewed, and/or published evaluation",
   "form": "Hardware — NFC puck + free app",
   "platforms": [
    "ios",
    "physical"
   ],
   "mechanisms": [
    "access_control"
   ],
   "harms": [
    "time_displacement",
    "interference"
   ],
   "vector": {
    "locus": 70,
    "act": 90,
    "author": 25,
    "auto": 70,
    "comp": 35,
    "dur": 30,
    "nego": 40,
    "exit": 20,
    "evid": 5
   },
   "priceBand": "over_50",
   "priceNote": "$59 one-time for the device; the companion app is free. Verified 2026-08-12.",
   "priceUrl": "https://getbrick.com/pages/privacy-policy",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this product.",
    "limits": "Any effect claim is vendor-stated or inferred from adjacent research on the mechanism.",
    "citations": []
   },
   "structure": {
    "ownership": "Brick LLC, Chicago (privacy policy, getbrick.com/pages/privacy-policy, read 2026-08-12).",
    "funding": "NEEDS VERIFICATION — no dated primary source found for the funding position.",
    "dataPolicy": "Privacy policy last updated 19 May 2026: states \"we will never sell this data or share it with advertisers\", and separately that information is shared with service providers and with advertising platforms for remarketing. Blocking data is stored on Brick's servers; on iOS it is an encrypted Apple Screen Time token that the policy says cannot be used by Brick to identify which apps were blocked, and on Android it is app names. Read 2026-08-12.",
    "enforcementActions": [],
    "verified": "2026-08-12"
   },
   "why": "The user chooses the apps and performs the gesture, so authorship is theirs. But Harvey reports the tap being forgotten after the first week, which is what a habit that never became a capacity looks like.",
   "kind": "vendor"
  },
  {
   "id": "halo",
   "name": "Halo",
   "tier": 1,
   "tierReason": "Founder or researcher interviewed, and/or published evaluation",
   "form": "Hardware — Bluetooth geofence",
   "platforms": [
    "ios",
    "physical"
   ],
   "mechanisms": [
    "access_control"
   ],
   "harms": [
    "interference"
   ],
   "vector": {
    "locus": 90,
    "act": 10,
    "author": 30,
    "auto": 60,
    "comp": 15,
    "dur": 25,
    "nego": 30,
    "exit": 15,
    "evid": 5
   },
   "priceBand": "10_to_50",
   "priceNote": "$49 one-time for the device, no subscription; the companion app is free. US-only at the time of reading. Verified 2026-08-12.",
   "priceUrl": "https://screenzen.co/products/halo",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this product.",
    "limits": "Any effect claim is vendor-stated or inferred from adjacent research on the mechanism.",
    "citations": []
   },
   "structure": {
    "ownership": "ScreenZen LLC — halo is ScreenZen's own hardware, not a separate company (screenzen.co/products/halo, read 2026-08-12).",
    "funding": "Launched via Kickstarter by Scott Harvey; ScreenZen refuses outside capital (founder interview).",
    "dataPolicy": "Covered by ScreenZen's privacy policy (April 2026): the device pairs through the free ScreenZen app, and halo-related data — daily screen time, streaks, friend data — is stored in Google Firebase. Read 2026-08-12.",
    "enforcementActions": [],
    "verified": "2026-08-12"
   },
   "why": "User places the puck and picks the apps, then it works without them. Environmental rather than motivational — nothing is taught, which is the trade Harvey made deliberately.",
   "kind": "vendor"
  },
  {
   "id": "screenzen",
   "name": "ScreenZen",
   "tier": 1,
   "tierReason": "Founder or researcher interviewed, and/or published evaluation",
   "form": "App — pause before opening",
   "platforms": [
    "ios",
    "android"
   ],
   "mechanisms": [
    "friction",
    "self_regulation"
   ],
   "harms": [
    "interference"
   ],
   "vector": {
    "locus": 45,
    "act": 75,
    "author": 20,
    "auto": 80,
    "comp": 65,
    "dur": 55,
    "nego": 85,
    "exit": 2,
    "evid": 15
   },
   "priceBand": "free",
   "priceNote": "Free; donation-supported, no paid tier and no paid acquisition (founder interview).",
   "priceUrl": "https://www.screenzen.co/privacy",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this product.",
    "limits": "Any effect claim is vendor-stated or inferred from adjacent research on the mechanism.",
    "citations": []
   },
   "structure": {
    "ownership": "ScreenZen LLC (privacy policy, screenzen.co/privacy, read 2026-08-12).",
    "funding": "Refuses outside capital (founder interview). Sells hardware — the halo device — and takes donations; no paid app tier.",
    "dataPolicy": "Privacy policy last updated April 2026: settings and blocking data for the core function are \"stored only on your device\". Optional social features and the halo device put email, username, daily screen time and friend data in Google Firebase. Self-hosted analytics (OpenPanel) and bug reporting (BugLife). States \"we do not share any of the above information with third parties\". Read 2026-08-12.",
    "enforcementActions": [],
    "verified": "2026-08-12"
   },
   "why": "Same friction-plus-reflection mechanism as one sec, user-configured, free, and always overridable. High agency on every dimension; the only weak column is evidence, which is a commercial fact rather than a mechanistic one.",
   "kind": "vendor"
  },
  {
   "id": "one-sec",
   "name": "one sec",
   "tier": 1,
   "tierReason": "Founder or researcher interviewed, and/or published evaluation",
   "form": "App — delay + prompt + dismiss",
   "platforms": [
    "ios",
    "android",
    "macos"
   ],
   "mechanisms": [
    "friction",
    "self_regulation"
   ],
   "harms": [
    "interference"
   ],
   "vector": {
    "locus": 45,
    "act": 75,
    "author": 15,
    "auto": 90,
    "comp": 70,
    "dur": 55,
    "nego": 90,
    "exit": 5,
    "evid": 95
   },
   "priceBand": "free_tier",
   "priceNote": "Free to download. In-app: $2.99/month, $19.99/year, or $99.99 lifetime; family plans $3.99/month, $29.99/year, $149 lifetime. Verified 2026-08-12.",
   "priceUrl": "https://apps.apple.com/us/app/one-sec-screen-time-focus/id1532875441",
   "evidence": {
    "strength": "published_trial",
    "summary": "Randomised evaluation in a peer-reviewed venue. The maker also publishes null results and has removed its own shipped features as a result.",
    "limits": "Measured over weeks, not months. Durability beyond six months untested; attenuation is a documented pattern across this literature.",
    "citations": [
     "See method.html — full references"
    ]
   },
   "structure": {
    "ownership": "riedel.wtf apps S.L., Spain — founder-owned (App Store seller listing, read 2026-08-12).",
    "funding": "No institutional investment disclosed (founder interview)",
    "dataPolicy": "Privacy policy states \"by default, your data remains offline\"; processing happens only for features the reader opts into (support, feedback, subscription, iCloud sync). The App Store privacy card declares usage data collected for product-interaction analytics, not linked to identity. Detailed policy is hosted on Iubenda and carries no visible date. Read 2026-08-12.",
    "enforcementActions": [],
    "verified": "2026-08-12"
   },
   "why": "A self-nudge: the user is the 'local expert', the prompt invites deliberation each time, and building competence is the stated goal. Whether anything survives uninstalling is unresolved — Haliburton found rebound when friction was removed.",
   "kind": "vendor"
  },
  {
   "id": "opal",
   "name": "Opal",
   "tier": 1,
   "tierReason": "Founder or researcher interviewed, and/or published evaluation",
   "form": "App — blocking + scores + streaks",
   "platforms": [
    "ios",
    "macos"
   ],
   "mechanisms": [
    "access_control"
   ],
   "harms": [
    "time_displacement",
    "interference"
   ],
   "vector": {
    "locus": 70,
    "act": 50,
    "author": 60,
    "auto": 40,
    "comp": 35,
    "dur": 30,
    "nego": 35,
    "exit": 30,
    "evid": 10
   },
   "priceBand": "free_tier",
   "priceNote": "Free to download. In-app at the time of reading: $4.99/week, $19.99/month, $99.99/year; a $49.99 Pro tier. Verified 2026-08-12.",
   "priceUrl": "https://opalapp.com/privacy",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this product.",
    "limits": "Any effect claim is vendor-stated or inferred from adjacent research on the mechanism.",
    "citations": []
   },
   "structure": {
    "ownership": "OPAL OS CORPORATION (App Store seller listing, read 2026-08-12).",
    "funding": "NEEDS VERIFICATION — no dated primary source found for the funding position.",
    "dataPolicy": "Privacy policy, effective 16 July 2020: states \"we promise not to disclose or sell your Personal Data to unrelated third parties under any circumstances, ever\", and that app usage detail \"stays on your device\". It also permits cookies and tracking technologies to \"serve advertisements and other information appropriate to your interests\", and an ad-supported free tier on Android. The App Store privacy card declares that identifiers may be used to track the reader across apps and websites owned by other companies. Read 2026-08-12.",
    "enforcementActions": [],
    "verified": "2026-08-12"
   },
   "why": "Access control with a gamified layer the company designs. Streaks add an external motivator, and one sec's own test of streaks performed poorly enough not to ship. The coach framing claims competence-building the evidence does not yet support.",
   "kind": "vendor"
  },
  {
   "id": "sociallite",
   "name": "SocialLite",
   "tier": 1,
   "tierReason": "Founder or researcher interviewed, and/or published evaluation",
   "form": "App — strips short-form feeds",
   "platforms": [
    "ios"
   ],
   "mechanisms": [
    "exposure_limitation"
   ],
   "harms": [
    "exposure"
   ],
   "vector": {
    "locus": 85,
    "act": 15,
    "author": 65,
    "auto": 55,
    "comp": 20,
    "dur": 35,
    "nego": 25,
    "exit": 8,
    "evid": 5
   },
   "priceBand": "free_tier",
   "priceNote": "Free to download. The App Store listing shows several price points at the time of reading: Pro from $3.99/month with yearly tiers between $47.90 and $99.99, and a family plan at $12.99/month or $119/year. Verified 2026-08-12.",
   "priceUrl": "https://apps.apple.com/us/app/sociallite-block-reels-shorts/id6757661674",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this product.",
    "limits": "Any effect claim is vendor-stated or inferred from adjacent research on the mechanism.",
    "citations": []
   },
   "structure": {
    "ownership": "Sociallite LLC (App Store seller listing, read 2026-08-12).",
    "funding": "NEEDS VERIFICATION — no dated primary source found for the funding position.",
    "dataPolicy": "The App Store privacy card declares data collected in four categories — purchases, contact info, identifiers and usage data — all listed as not linked to identity, and separately declares that identifiers are \"used to track you across apps and websites owned by other companies\". No privacy policy was located on the product site. Read 2026-08-12.",
    "enforcementActions": [],
    "verified": "2026-08-12"
   },
   "why": "You choose the client, but you cannot choose what it strips — the removal is architectural and not user-configurable. High-agency to adopt, low-agency once inside. Israel's re-download cycle suggests no capacity is left behind.",
   "surfaces": [
    "instagram"
   ],
   "surfaceNote": "Removes Reels from Instagram specifically. Gated by Q10.",
   "kind": "vendor",
   "platformNote": "The App Store lists it for iPhone, iPad, Mac (macOS 14+) and Apple Vision. It is coded here as iOS only, because Mac availability of an iPad app is not the same thing as a Mac build and changing a matching input on that basis would overstate what was verified. Worth a decision before launch. Read 2026-08-12."
  },
  {
   "id": "forest",
   "name": "Forest",
   "tier": 1,
   "tierReason": "Founder or researcher interviewed, and/or published evaluation",
   "form": "App — gamified focus timer",
   "platforms": [
    "ios",
    "android"
   ],
   "mechanisms": [
    "friction"
   ],
   "harms": [
    "time_displacement"
   ],
   "vector": {
    "locus": 20,
    "act": 85,
    "author": 35,
    "auto": 65,
    "comp": 30,
    "dur": 25,
    "nego": 80,
    "exit": 10,
    "evid": 8
   },
   "priceBand": "under_10",
   "priceNote": "NEEDS VERIFICATION — a paid tier exists but no dated figure was sourced.",
   "priceUrl": "https://www.iubenda.com/privacy-policy/69043073",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this product.",
    "limits": "Any effect claim is vendor-stated or inferred from adjacent research on the mechanism.",
    "citations": []
   },
   "structure": {
    "ownership": "SEEKRTECH CO., LTD. (privacy policy hosted on Iubenda, read 2026-08-12).",
    "funding": "NEEDS VERIFICATION — no dated primary source found for the funding position.",
    "dataPolicy": "Privacy policy last updated 7 March 2024. It declares personal information \"Sold or Shared: Yes\" for remarketing, behavioural targeting and advertising, across identifier and network-activity categories. Integrated advertising services named in the policy include AdMob, Google Ad Manager, Google Ads, Meta pixel, Facebook Lookalike Audience, TikTok conversion tracking and X Ads; analytics include Google Analytics for Firebase and Appsflyer. Read 2026-08-12.",
    "enforcementActions": [],
    "verified": "2026-08-12"
   },
   "why": "The only tool whose primary mechanism is reward rather than restriction, so it lives almost entirely on willpower. Fully overridable — you can kill the tree — and reward dependence is the classic reason effects stop when the tool does.",
   "kind": "vendor"
  },
  {
   "id": "freedom",
   "name": "Freedom",
   "tier": 1,
   "tierReason": "Founder or researcher interviewed, and/or published evaluation",
   "form": "App — cross-platform blocker",
   "platforms": [
    "ios",
    "android",
    "macos",
    "windows",
    "linux"
   ],
   "mechanisms": [
    "self_monitoring",
    "friction"
   ],
   "harms": [
    "interference"
   ],
   "vector": {
    "locus": 70,
    "act": 25,
    "author": 30,
    "auto": 60,
    "comp": 40,
    "dur": 35,
    "nego": 45,
    "exit": 12,
    "evid": 30
   },
   "priceBand": "10_to_50",
   "priceNote": "Free tier. Premium $8.99/month, $3.33/month billed yearly, or $99.50 one-time at the time of reading. Verified 2026-08-12.",
   "priceUrl": "https://freedom.to/pricing",
   "evidence": {
    "strength": "published_but_indirect",
    "summary": "Long-running product; the founder declines behaviour-change claims and positions it as a tool for a purpose.",
    "limits": "No published evaluation of the product itself.",
    "citations": []
   },
   "structure": {
    "ownership": "Independent",
    "funding": "Bootstrapped; profitable; founder states the company does not sell user data (founder interview)",
    "dataPolicy": "Privacy policy last updated 13 September 2023: states \"we do not track, store, retain, or transmit your app or website use\" and \"we do not sell or trade your personally identifiable information\". Blocked-app selections are transmitted to Freedom's servers for the blocking feature; the optional Insight plugin stores its data locally. Named analytics partners include Google Analytics and Meta Pixel, receiving depersonalised cookie-based data. Read 2026-08-12.",
    "enforcementActions": [],
    "verified": "2026-08-12"
   },
   "why": "User-scheduled and cheap to leave, but Locked Mode is deliberately non-negotiable. Stutzman declines the competence claim outright — 'more like running shoes' — which is why it sits mid-scale rather than low: honest about not teaching.",
   "kind": "vendor"
  },
  {
   "id": "ublock-rules",
   "name": "uBlock Origin (custom rules)",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature and public documentation. Not evaluated by this research: no founder interview and no published trial of this specific project.",
   "form": "Browser — declarative filter rules",
   "platforms": [
    "macos",
    "windows",
    "linux"
   ],
   "mechanisms": [
    "exposure_limitation"
   ],
   "harms": [
    "exposure",
    "time_displacement"
   ],
   "vector": {
    "locus": 90,
    "act": 5,
    "exit": 10,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "free",
   "priceNote": "Free, open source.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this specific project. Where the site says anything about how it works, that is a claim about the mechanism, not about the product.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "project": "uBlock Origin, maintained by Raymond Hill (gorhill). GPL-3.0. Source at github.com/gorhill/uBlock. Read 2026-08-12.",
    "funding": "Unfunded by design: the project's own documentation states it accepts no donations and has no business model. Read 2026-08-12.",
    "dataPolicy": "A browser extension with no server component. Custom filter rules are declarative and are stored in the extension's local storage; the project states it collects no user data. Its host permissions are broad by necessity — it must read pages to filter them — and are declared in the manifest, which is readable. Read 2026-08-12.",
    "kindNote": "An open-source project rather than a company. The questions worth asking are different: who maintains it, under what licence, and what happens if they stop. You can read what it does, which is a stronger guarantee than a privacy policy.",
    "enforcementActions": [],
    "verified": "2026-08-12"
   },
   "why": "Paste a filter rule. No code executes; this is the safest thing on the site.",
   "vectorNote": "locus, act and exit are structural properties readable off the project. The judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null because this tool was not researched in depth — the rubric scores it on a reduced fit and says so.",
   "surfaces": [
    "instagram",
    "tiktok",
    "youtube",
    "x",
    "reddit",
    "news",
    "other"
   ],
   "surfaceNote": "Gated by the surfaces named in Q10. Only offered when it actually covers one of them.",
   "kind": "open_source",
   "recipe": "A1",
   "howTo": [
    "Open the extension's dashboard, My filters, and paste one rule per line.",
    "Nothing executes — this is declarative syntax, which is why it is the safest thing on this site.",
    "Comment each rule with what it hides, so you can undo one without undoing all of them."
   ]
  },
  {
   "id": "stylus",
   "name": "Stylus (element hiding)",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature and public documentation. Not evaluated by this research: no founder interview and no published trial of this specific project.",
   "form": "Browser — user stylesheet",
   "platforms": [
    "macos",
    "windows",
    "linux"
   ],
   "mechanisms": [
    "exposure_limitation"
   ],
   "harms": [
    "exposure"
   ],
   "vector": {
    "locus": 90,
    "act": 5,
    "exit": 10,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "free",
   "priceNote": "Free, open source.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this specific project. Where the site says anything about how it works, that is a claim about the mechanism, not about the product.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "project": "Stylus, a community-maintained fork of Stylish. GPL-3.0. Source at github.com/openstyles/stylus. Read 2026-08-12.",
    "funding": "Volunteer project; no corporate owner. Read 2026-08-12.",
    "dataPolicy": "No server component and no telemetry. Styles are CSS, stored locally; the project's stated reason for existing is that its predecessor Stylish was removed from extension stores for collecting browsing history. Read 2026-08-12.",
    "kindNote": "An open-source project rather than a company. The questions worth asking are different: who maintains it, under what licence, and what happens if they stop. You can read what it does, which is a stronger guarantee than a privacy policy.",
    "enforcementActions": [],
    "verified": "2026-08-12"
   },
   "why": "A stylesheet that hides a surface. Nothing runs, nothing to bypass but your own edit.",
   "vectorNote": "locus, act and exit are structural properties readable off the project. The judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null because this tool was not researched in depth — the rubric scores it on a reduced fit and says so.",
   "surfaces": [
    "instagram",
    "tiktok",
    "youtube",
    "x",
    "reddit",
    "news",
    "other"
   ],
   "surfaceNote": "Gated by the surfaces named in Q10. Only offered when it actually covers one of them.",
   "kind": "open_source",
   "recipe": "A1",
   "howTo": [
    "Create a style scoped to the one domain, and hide the element rather than the page.",
    "It is CSS only. No code runs and it cannot make a request."
   ]
  },
  {
   "id": "nfe",
   "name": "News Feed Eradicator",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature and public documentation. Not evaluated by this research: no founder interview and no published trial of this specific project.",
   "form": "Browser extension",
   "platforms": [
    "macos",
    "windows",
    "linux"
   ],
   "mechanisms": [
    "exposure_limitation"
   ],
   "harms": [
    "exposure",
    "time_displacement"
   ],
   "vector": {
    "locus": 90,
    "act": 5,
    "exit": 10,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "free",
   "priceNote": "Free.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this specific project. Where the site says anything about how it works, that is a claim about the mechanism, not about the product.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "project": "News Feed Eradicator, maintained by Jordan West (jordwest). MIT. Source at github.com/jordwest/news-feed-eradicator. Read 2026-08-12.",
    "funding": "Volunteer project, no funding disclosed. Read 2026-08-12.",
    "dataPolicy": "Replaces the feed element in the page. No server component; settings are stored locally. Read 2026-08-12.",
    "kindNote": "An open-source project rather than a company. The questions worth asking are different: who maintains it, under what licence, and what happens if they stop. You can read what it does, which is a stronger guarantee than a privacy policy.",
    "enforcementActions": [],
    "verified": "2026-08-12"
   },
   "why": "Replaces a feed with a quote. Removes the surface rather than limiting time on it.",
   "vectorNote": "locus, act and exit are structural properties readable off the project. The judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null because this tool was not researched in depth — the rubric scores it on a reduced fit and says so.",
   "surfaces": [
    "instagram",
    "x",
    "reddit"
   ],
   "surfaceNote": "Gated by the surfaces named in Q10. Only offered when it actually covers one of them.",
   "kind": "open_source",
   "howTo": [
    "Install it and the feed is replaced by a quote. Nothing else about the site changes."
   ]
  },
  {
   "id": "unhook",
   "name": "Unhook / DF Tube",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature and public documentation. Not evaluated by this research: no founder interview and no published trial of this specific project.",
   "form": "Browser extension",
   "platforms": [
    "macos",
    "windows",
    "linux"
   ],
   "mechanisms": [
    "exposure_limitation"
   ],
   "harms": [
    "exposure",
    "time_displacement"
   ],
   "vector": {
    "locus": 90,
    "act": 5,
    "exit": 10,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "free",
   "priceNote": "Free tier.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this specific project. Where the site says anything about how it works, that is a claim about the mechanism, not about the product.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "project": "Unhook (Remove YouTube Recommended Videos), maintained by Unhook. Source is published for review; licence is stated in the repository. Read 2026-08-12.",
    "funding": "NEEDS VERIFICATION — the funding position is not stated in a dated primary source.",
    "dataPolicy": "Hides elements on youtube.com only; the extension's host permissions are limited to that domain and are declared in the manifest. Read 2026-08-12.",
    "kindNote": "An open-source project rather than a company. The questions worth asking are different: who maintains it, under what licence, and what happens if they stop. You can read what it does, which is a stronger guarantee than a privacy policy.",
    "enforcementActions": [],
    "verified": "2026-08-12"
   },
   "why": "Strips recommendations and autoplay from YouTube — exposure reduction inside an app you keep.",
   "vectorNote": "locus, act and exit are structural properties readable off the project. The judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null because this tool was not researched in depth — the rubric scores it on a reduced fit and says so.",
   "surfaces": [
    "youtube"
   ],
   "surfaceNote": "Gated by the surfaces named in Q10. Only offered when it actually covers one of them.",
   "kind": "open_source",
   "howTo": [
    "Turn off the recommendation rails and the end-of-video suggestions first — those do more than the feed.",
    "Keep search on, so the site is still usable for what you actually went there for."
   ]
  },
  {
   "id": "leechblock",
   "name": "LeechBlock NG",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature and public documentation. Not evaluated by this research: no founder interview and no published trial of this specific project.",
   "form": "Browser extension",
   "platforms": [
    "macos",
    "windows",
    "linux"
   ],
   "mechanisms": [
    "access_control",
    "friction"
   ],
   "harms": [
    "time_displacement",
    "interference"
   ],
   "vector": {
    "locus": 70,
    "act": 20,
    "exit": 8,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "free",
   "priceNote": "Free, open source.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this specific project. Where the site says anything about how it works, that is a claim about the mechanism, not about the product.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "project": "LeechBlock NG, maintained by James Anderson (proginosko). GPL-3.0. Source at github.com/proginosko/LeechBlockNG. Read 2026-08-12.",
    "funding": "Volunteer project; the author accepts optional donations. Read 2026-08-12.",
    "dataPolicy": "No server component. Block sets and usage timers are stored in the browser's own extension storage; the project states no data is transmitted. Read 2026-08-12.",
    "kindNote": "An open-source project rather than a company. The questions worth asking are different: who maintains it, under what licence, and what happens if they stop. You can read what it does, which is a stronger guarantee than a privacy policy.",
    "enforcementActions": [],
    "verified": "2026-08-12"
   },
   "why": "Per-site schedules and time budgets, configured by you, in the browser only.",
   "vectorNote": "locus, act and exit are structural properties readable off the project. The judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null because this tool was not researched in depth — the rubric scores it on a reduced fit and says so.",
   "kind": "open_source",
   "howTo": [
    "Create a block set, list the sites, set the hours or a daily time allowance.",
    "The 'access to options' lockdown is what stops you undoing it in the moment."
   ]
  },
  {
   "id": "cold-turkey",
   "name": "Cold Turkey Blocker",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature and public documentation. Not evaluated by this research: no founder interview and no published trial of this specific product.",
   "form": "Desktop app",
   "platforms": [
    "macos",
    "windows"
   ],
   "mechanisms": [
    "access_control"
   ],
   "harms": [
    "time_displacement",
    "interference",
    "boundary"
   ],
   "vector": {
    "locus": 80,
    "act": 15,
    "exit": 55,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "10_to_50",
   "priceNote": "One-time purchase for Blocker Pro, covering all personal computers owned; the pricing page carries no figure. A free tier blocks websites only, with a 7-day trial of the paid features. Verified 2026-08-12.",
   "priceUrl": "https://getcoldturkey.com/pricing/",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this specific product. Where the site says anything about how it works, that is a claim about the mechanism, not about the product.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "ownership": "Sole developer, trading as Cold Turkey; payments processed by Paddle (getcoldturkey.com/pricing, read 2026-08-12).",
    "funding": "No outside investment disclosed; sold as a one-time purchase rather than a subscription.",
    "dataPolicy": "NEEDS VERIFICATION — no dated privacy policy was located.",
    "enforcementActions": [],
    "verified": "2026-08-12"
   },
   "why": "Hard scheduled blocks with a deliberately high cost of exit.",
   "vectorNote": "locus, act and exit are structural properties readable off the product. The judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null because this tool was not researched in depth — the rubric scores it on a reduced fit and says so.",
   "kind": "vendor",
   "howTo": [
    "Set a schedule rather than starting it manually, so the block arrives without a decision.",
    "The paid version has the harder-to-undo modes. That is what you are paying for."
   ]
  },
  {
   "id": "selfcontrol",
   "name": "SelfControl",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature and public documentation. Not evaluated by this research: no founder interview and no published trial of this specific project.",
   "form": "Desktop app",
   "platforms": [
    "macos"
   ],
   "mechanisms": [
    "access_control"
   ],
   "harms": [
    "time_displacement",
    "interference"
   ],
   "vector": {
    "locus": 85,
    "act": 20,
    "exit": 95,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "free",
   "priceNote": "Free, open source.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this specific project. Where the site says anything about how it works, that is a claim about the mechanism, not about the product.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "project": "SelfControl, maintained by Charlie Stigler and contributors. GPL-3.0. Source at github.com/SelfControlApp/selfcontrol. Read 2026-08-12.",
    "funding": "Volunteer project, free and open source, no funding disclosed. Read 2026-08-12.",
    "dataPolicy": "Runs locally on macOS and edits the system firewall and hosts file for the duration of a block. No server component and no account. Read 2026-08-12.",
    "kindNote": "An open-source project rather than a company. The questions worth asking are different: who maintains it, under what licence, and what happens if they stop. You can read what it does, which is a stronger guarantee than a privacy policy.",
    "enforcementActions": [],
    "verified": "2026-08-12"
   },
   "why": "A timer you cannot cancel — the purest commitment device here. Choose deliberately.",
   "vectorNote": "locus, act and exit are structural properties readable off the project. The judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null because this tool was not researched in depth — the rubric scores it on a reduced fit and says so.",
   "kind": "open_source",
   "howTo": [
    "Add the sites, set the duration, start it. There is no cancel — that is the product.",
    "Test it with a five-minute block before you rely on a long one."
   ]
  },
  {
   "id": "nextdns",
   "name": "NextDNS",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature and public documentation. Not evaluated by this research: no founder interview and no published trial of this specific product.",
   "form": "DNS service",
   "platforms": [
    "ios",
    "android",
    "macos",
    "windows",
    "linux",
    "physical"
   ],
   "mechanisms": [
    "access_control"
   ],
   "harms": [
    "time_displacement",
    "exposure"
   ],
   "vector": {
    "locus": 90,
    "act": 5,
    "exit": 25,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "free_tier",
   "priceNote": "Free tier of 300,000 queries a month, unlimited devices. Pro $1.99/month or $19.90/year at the time of reading. Verified 2026-08-12.",
   "priceUrl": "https://nextdns.io/pricing",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this specific product. Where the site says anything about how it works, that is a claim about the mechanism, not about the product.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "ownership": "Founder-owned; the privacy policy states the company is \"100% funded, owned and controlled by its founders\" (nextdns.io/privacy, read 2026-08-12).",
    "funding": "No outside investment: the policy states it is 100% founder-funded and will \"never engage in any data sharing or selling activities, now or in the future\". Read 2026-08-12.",
    "dataPolicy": "Privacy policy: DNS queries are not logged by default — \"the server discards all request and response data immediately after sending back the response to you\". Logging is opt-in, with the retention period and jurisdiction chosen by the reader. States it will never \"sell, license, sublicense or share any of the data submitted directly or indirectly by our users\". No visible last-updated date. Read 2026-08-12.",
    "enforcementActions": [],
    "verified": "2026-08-12"
   },
   "why": "Blocks at the network layer, so it covers every app and browser. Note the provider sees your DNS queries.",
   "vectorNote": "locus, act and exit are structural properties readable off the product. The judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null because this tool was not researched in depth — the rubric scores it on a reduced fit and says so.",
   "kind": "vendor",
   "recipe": "B2",
   "howTo": [
    "Create a profile, add the domains you want blocked, and set it as your DNS.",
    "It reaches every app on the device, not just the browser.",
    "Know the trade: a hosted resolver sees every domain your devices ask for."
   ]
  },
  {
   "id": "pihole",
   "name": "Pi-hole / AdGuard Home",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature and public documentation. Not evaluated by this research: no founder interview and no published trial of this specific project.",
   "form": "Self-hosted DNS",
   "platforms": [
    "ios",
    "android",
    "macos",
    "windows",
    "linux",
    "physical"
   ],
   "mechanisms": [
    "access_control"
   ],
   "harms": [
    "time_displacement",
    "exposure"
   ],
   "vector": {
    "locus": 90,
    "act": 5,
    "exit": 30,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "free",
   "priceNote": "Free, open source; needs a device to run on.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this specific project. Where the site says anything about how it works, that is a claim about the mechanism, not about the product.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "project": "Pi-hole, maintained by the Pi-hole team as a non-profit-backed open-source project. EUPL-1.2. Source at github.com/pi-hole. AdGuard Home is a separate project by AdGuard Software Ltd. Read 2026-08-12.",
    "funding": "Pi-hole is donation-funded and community-maintained. AdGuard Home is published by a commercial company, which is a different structural position and worth checking separately if that is the one you pick. Read 2026-08-12.",
    "dataPolicy": "Self-hosted: the reader runs it on their own hardware, so DNS queries stay on their own network and nobody else sees them. That is the whole structural advantage over a hosted resolver, and the trade is that the reader is the operator. Read 2026-08-12.",
    "kindNote": "An open-source project rather than a company. The questions worth asking are different: who maintains it, under what licence, and what happens if they stop. You can read what it does, which is a stronger guarantee than a privacy policy.",
    "enforcementActions": [],
    "verified": "2026-08-12"
   },
   "why": "Same mechanism as NextDNS, self-hosted, so nobody else sees your queries.",
   "vectorNote": "locus, act and exit are structural properties readable off the project. The judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null because this tool was not researched in depth — the rubric scores it on a reduced fit and says so.",
   "kind": "open_source",
   "recipe": "B2",
   "howTo": [
    "Run it on something always-on — a spare Pi, a NAS, a container.",
    "Point your router's DNS at it so every device is covered, including phones you cannot install anything on.",
    "Self-hosting is the point: nobody else sees which domains you ask for."
   ]
  },
  {
   "id": "ios-screentime",
   "name": "iOS Screen Time",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature and public documentation. Not evaluated by this research: no founder interview and no published trial of this specific setting.",
   "form": "OS built-in",
   "platforms": [
    "ios"
   ],
   "mechanisms": [
    "access_control",
    "self_monitoring"
   ],
   "harms": [
    "time_displacement",
    "interference",
    "boundary"
   ],
   "vector": {
    "locus": 60,
    "act": 35,
    "exit": 10,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "free",
   "priceNote": "Included with the OS.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this specific setting. Where the site says anything about how it works, that is a claim about the mechanism, not about the product.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "maker": "The platform you are already using — Apple, Google, Microsoft, or your Linux distribution.",
    "kindNote": "This adds no new party to your data. You already accepted this vendor's terms when you started using the device, and turning this on does not extend them. That is a real advantage over installing something, and it is worth weighing against the fact that the vendor also has a commercial interest in your attention.",
    "enforcementActions": [],
    "verified": "2026-08-11"
   },
   "why": "Already on the phone, and the substrate every third-party iOS tool is built on. Try it before buying anything.",
   "vectorNote": "locus, act and exit are structural properties readable off the setting. The judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null because this tool was not researched in depth — the rubric scores it on a reduced fit and says so.",
   "kind": "os_feature",
   "howTo": [
    "Settings, Screen Time, App Limits. Set a limit on the specific app rather than a category.",
    "Turn on Downtime for the hours you want back, and add only the apps you genuinely need to Always Allowed.",
    "Set a Screen Time passcode different from your unlock code, and have someone else type it. Without that step it is one tap from off."
   ]
  },
  {
   "id": "android-wellbeing",
   "name": "Android Digital Wellbeing",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature and public documentation. Not evaluated by this research: no founder interview and no published trial of this specific setting.",
   "form": "OS built-in",
   "platforms": [
    "android"
   ],
   "mechanisms": [
    "access_control",
    "self_monitoring"
   ],
   "harms": [
    "time_displacement",
    "interference",
    "boundary"
   ],
   "vector": {
    "locus": 60,
    "act": 35,
    "exit": 10,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "free",
   "priceNote": "Included with the OS.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this specific setting. Where the site says anything about how it works, that is a claim about the mechanism, not about the product.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "maker": "The platform you are already using — Apple, Google, Microsoft, or your Linux distribution.",
    "kindNote": "This adds no new party to your data. You already accepted this vendor's terms when you started using the device, and turning this on does not extend them. That is a real advantage over installing something, and it is worth weighing against the fact that the vendor also has a commercial interest in your attention.",
    "enforcementActions": [],
    "verified": "2026-08-11"
   },
   "why": "Already on the phone. App timers, bedtime mode and focus mode with no install and no permissions to grant.",
   "vectorNote": "locus, act and exit are structural properties readable off the setting. The judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null because this tool was not researched in depth — the rubric scores it on a reduced fit and says so.",
   "kind": "os_feature",
   "howTo": [
    "Settings, Digital Wellbeing, App timers. Set the timer on the app itself.",
    "Turn on Bedtime mode and let it switch the screen to greyscale — the greyscale does more work than the schedule.",
    "Focus mode lets you pause a group of apps at once, which is the closest thing to a real switch."
   ]
  },
  {
   "id": "minimal-launcher",
   "name": "Minimal Android launcher",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature and public documentation. Not evaluated by this research: no founder interview and no published trial of this specific kind of product.",
   "form": "Launcher app",
   "platforms": [
    "android"
   ],
   "mechanisms": [
    "exposure_limitation",
    "friction"
   ],
   "harms": [
    "interference",
    "exposure"
   ],
   "vector": {
    "locus": 85,
    "act": 10,
    "exit": 20,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "free",
   "priceNote": "Free options exist.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this specific kind of product. Where the site says anything about how it works, that is a claim about the mechanism, not about the product.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "kindNote": "A class of product rather than one product, with many makers. There is no single company to ask about, which also means the structural facts have to be checked for whichever one you pick — this page cannot do it for you.",
    "whatToCheck": "Before buying: who makes it, whether it needs an account, and whether it phones home. For a physical object the answers are usually simple; for an app they are not.",
    "enforcementActions": [],
    "verified": "2026-08-11"
   },
   "why": "Replaces the home screen with a text list — removes the visual pull without removing capability.",
   "vectorNote": "locus, act and exit are structural properties readable off the kind of product. The judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null because this tool was not researched in depth — the rubric scores it on a reduced fit and says so.",
   "kind": "category",
   "howTo": [
    "Install a launcher that shows a short list of words rather than a grid of icons.",
    "Put four or five apps on the home list. Everything else stays installed and reachable by search.",
    "The point is what the home screen affords, not what is blocked — nothing here stops you."
   ]
  },
  {
   "id": "notif-schedules",
   "name": "Notification schedules (OS-native)",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature and public documentation. Not evaluated by this research: no founder interview and no published trial of this specific setting.",
   "form": "Configuration",
   "platforms": [
    "ios",
    "android",
    "macos",
    "windows",
    "linux"
   ],
   "mechanisms": [
    "exposure_limitation"
   ],
   "harms": [
    "boundary",
    "interference"
   ],
   "vector": {
    "locus": 85,
    "act": 10,
    "exit": 5,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "free",
   "priceNote": "Included with the OS.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this specific setting. Where the site says anything about how it works, that is a claim about the mechanism, not about the product.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "maker": "The platform you are already using — Apple, Google, Microsoft, or your Linux distribution.",
    "kindNote": "This adds no new party to your data. You already accepted this vendor's terms when you started using the device, and turning this on does not extend them. That is a real advantage over installing something, and it is worth weighing against the fact that the vendor also has a commercial interest in your attention.",
    "enforcementActions": [],
    "verified": "2026-08-11"
   },
   "why": "The highest-leverage free change most people never make. Interruption is a separate harm from time spent.",
   "vectorNote": "locus, act and exit are structural properties readable off the setting. The judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null because this tool was not researched in depth — the rubric scores it on a reduced fit and says so.",
   "kind": "os_feature",
   "howTo": [
    "Turn off notifications for everything, then add back the few that need to interrupt you. Starting from off is the whole trick.",
    "Set a schedule so the boundary arrives without a decision.",
    "Leave calls from a short list of people through, so switching off does not mean being unreachable."
   ]
  },
  {
   "id": "focus-modes",
   "name": "Focus modes / Focus Assist",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature and public documentation. Not evaluated by this research: no founder interview and no published trial of this specific setting.",
   "form": "OS built-in",
   "platforms": [
    "ios",
    "macos",
    "windows"
   ],
   "mechanisms": [
    "exposure_limitation",
    "self_regulation"
   ],
   "harms": [
    "boundary",
    "interference"
   ],
   "vector": {
    "locus": 70,
    "act": 30,
    "exit": 5,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "free",
   "priceNote": "Included with the OS.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this specific setting. Where the site says anything about how it works, that is a claim about the mechanism, not about the product.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "maker": "The platform you are already using — Apple, Google, Microsoft, or your Linux distribution.",
    "kindNote": "This adds no new party to your data. You already accepted this vendor's terms when you started using the device, and turning this on does not extend them. That is a real advantage over installing something, and it is worth weighing against the fact that the vendor also has a commercial interest in your attention.",
    "enforcementActions": [],
    "verified": "2026-08-11"
   },
   "why": "Per-context allow-lists. The closest thing to boundary management that ships with the machine.",
   "vectorNote": "locus, act and exit are structural properties readable off the setting. The judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null because this tool was not researched in depth — the rubric scores it on a reduced fit and says so.",
   "kind": "os_feature",
   "howTo": [
    "Make a Focus that allows nothing rather than editing the default ones, then add back only what you need.",
    "Attach it to a schedule or a location so you are not deciding each time.",
    "On the Mac, set it to hide notification badges too — the count on the icon is the pull, not the sound."
   ]
  },
  {
   "id": "systemd-hosts",
   "name": "systemd timer + hosts block",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature and public documentation. Not evaluated by this research: no founder interview and no published trial of this specific setting.",
   "form": "Configuration",
   "platforms": [
    "linux"
   ],
   "mechanisms": [
    "access_control"
   ],
   "harms": [
    "boundary",
    "time_displacement",
    "interference"
   ],
   "vector": {
    "locus": 85,
    "act": 10,
    "exit": 20,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "free",
   "priceNote": "Free; built in.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this specific setting. Where the site says anything about how it works, that is a claim about the mechanism, not about the product.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "maker": "The platform you are already using — Apple, Google, Microsoft, or your Linux distribution.",
    "kindNote": "This adds no new party to your data. You already accepted this vendor's terms when you started using the device, and turning this on does not extend them. That is a real advantage over installing something, and it is worth weighing against the fact that the vendor also has a commercial interest in your attention.",
    "enforcementActions": [],
    "verified": "2026-08-11"
   },
   "why": "Scheduled, local, auditable, and trivially reversible if you mark the block with sentinels.",
   "vectorNote": "locus, act and exit are structural properties readable off the setting. The judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null because this tool was not researched in depth — the rubric scores it on a reduced fit and says so.",
   "kind": "os_feature",
   "recipe": "B1",
   "howTo": [
    "Add a sentinel-marked block to /etc/hosts, so removal is a deterministic delete rather than an edit.",
    "Put it behind a systemd timer so it applies on a schedule.",
    "Write the revert command down somewhere you can read it without a working network, before you rely on it."
   ]
  },
  {
   "id": "work-profile",
   "name": "Separate work profile or work device",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature. Not evaluated by this research: there is no product here to trial, and the reasoning is about the mechanism rather than about any object.",
   "form": "Configuration or hardware",
   "platforms": [
    "android",
    "physical"
   ],
   "mechanisms": [
    "access_control"
   ],
   "harms": [
    "boundary"
   ],
   "vector": {
    "locus": 95,
    "act": 10,
    "exit": 60,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "free",
   "priceNote": "Free (profile) to over_50 (second device).",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "There is nothing here to evaluate as a product. What the research supports is a claim about the mechanism — distance, separation, a single switch — and not about any object.",
    "limits": "Mechanism-level reasoning only, and not a measurement of this arrangement in particular.",
    "citations": []
   },
   "structure": {
    "kindNote": "There is no company here, nothing to own, nothing to fund, and no privacy policy. That is the main thing to know about it: nobody profits from whether you keep doing it, and nobody can change the terms later.",
    "verified": "2026-08-11"
   },
   "why": "The only structural answer to work bleeding into life: two contexts that cannot see each other.",
   "vectorNote": "locus, act and exit are structural properties readable off how this arrangement works. the judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null — several of them do not apply to something with no maker at all — so the rubric scores it on a reduced fit and says so.",
   "kind": "practice",
   "howTo": [
    "On Android, set up a work profile and put work apps only inside it. It has its own pause switch.",
    "On a Mac or PC, a second user account does the same job — separate apps, separate notifications, separate browser sessions.",
    "If you have a work-issued device, the simplest version is to leave it in a bag at a fixed time.",
    "The point is one switch that turns off everything work-related at once, rather than deciding app by app."
   ]
  },
  {
   "id": "lockbox",
   "name": "Timer lockbox",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature and public documentation. Not evaluated by this research: no founder interview and no published trial of this specific kind of product.",
   "form": "Physical object",
   "platforms": [
    "physical"
   ],
   "mechanisms": [
    "access_control"
   ],
   "harms": [
    "time_displacement",
    "interference"
   ],
   "vector": {
    "locus": 95,
    "act": 60,
    "exit": 90,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "10_to_50",
   "priceNote": "NEEDS VERIFICATION — source and date before launch",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this specific kind of product. Where the site says anything about how it works, that is a claim about the mechanism, not about the product.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "kindNote": "A class of product rather than one product, with many makers. There is no single company to ask about, which also means the structural facts have to be checked for whichever one you pick — this page cannot do it for you.",
    "whatToCheck": "Before buying: who makes it, whether it needs an account, and whether it phones home. For a physical object the answers are usually simple; for an app they are not.",
    "enforcementActions": [],
    "verified": "2026-08-11"
   },
   "why": "A box with a timer. Highest cost of exit of anything here, and no software to trust.",
   "vectorNote": "locus, act and exit are structural properties readable off the kind of product. The judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null because this tool was not researched in depth — the rubric scores it on a reduced fit and says so.",
   "kind": "category",
   "howTo": [
    "Buy a timer box with a lid that locks for a set period. The cheap ones work.",
    "Set the timer before you are tempted, not after. The box only holds if the decision was made earlier.",
    "Do not put anything else you might need in there. Keys, wallet, medication stay out."
   ]
  },
  {
   "id": "drawer",
   "name": "A drawer in another room",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature. Not evaluated by this research: there is no product here to trial, and the reasoning is about the mechanism rather than about any object.",
   "form": "No product required",
   "platforms": [
    "physical"
   ],
   "mechanisms": [
    "access_control"
   ],
   "harms": [
    "time_displacement",
    "interference",
    "boundary"
   ],
   "vector": {
    "locus": 95,
    "act": 55,
    "exit": 15,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "free",
   "priceNote": "Free.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "There is nothing here to evaluate as a product. What the research supports is a claim about the mechanism — distance, separation, a single switch — and not about any object.",
    "limits": "Mechanism-level reasoning only. Nobody has run a trial on a drawer, and nobody is going to.",
    "citations": []
   },
   "structure": {
    "kindNote": "There is no company here, nothing to own, nothing to fund, and no privacy policy. That is the main thing to know about it: nobody profits from whether you keep doing it, and nobody can change the terms later.",
    "verified": "2026-08-11"
   },
   "why": "Distance is the oldest environmental intervention and costs nothing. Ranked seriously, not as a joke.",
   "vectorNote": "locus, act and exit are structural properties readable off how this arrangement works. the judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null — several of them do not apply to something with no maker at all — so the rubric scores it on a reduced fit and says so.",
   "kind": "practice",
   "howTo": [
    "Pick the room you are least likely to wander into. Not a different shelf — a different room.",
    "Put a physical thing there to receive the phone: a bowl, a box, a drawer that shuts.",
    "Decide the trigger now, while you are not tired: when you sit down to eat, when you start work, at a time of day.",
    "Leave the charger in that room too. The charger is what makes it stick, because it makes the default location the one you want."
   ]
  },
  {
   "id": "second-device",
   "name": "Second device left at home",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature. Not evaluated by this research: there is no product here to trial, and the reasoning is about the mechanism rather than about any object.",
   "form": "Hardware or reuse",
   "platforms": [
    "physical"
   ],
   "mechanisms": [
    "access_control"
   ],
   "harms": [
    "boundary",
    "time_displacement"
   ],
   "vector": {
    "locus": 95,
    "act": 50,
    "exit": 70,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "free",
   "priceNote": "Free if you already own an old phone.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "There is nothing here to evaluate as a product. What the research supports is a claim about the mechanism — distance, separation, a single switch — and not about any object.",
    "limits": "Mechanism-level reasoning only, and not a measurement of this arrangement in particular.",
    "citations": []
   },
   "structure": {
    "kindNote": "There is no company here, nothing to own, nothing to fund, and no privacy policy. That is the main thing to know about it: nobody profits from whether you keep doing it, and nobody can change the terms later.",
    "verified": "2026-08-11"
   },
   "why": "Splits the device's roles so leaving one behind doesn't mean being unreachable.",
   "vectorNote": "locus, act and exit are structural properties readable off how this arrangement works. the judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null — several of them do not apply to something with no maker at all — so the rubric scores it on a reduced fit and says so.",
   "kind": "practice",
   "howTo": [
    "Use a phone you already have. An old one you replaced is ideal — it does not need a SIM.",
    "Put the things you actually need out of the house on the device that travels: maps, transit, camera, calls.",
    "Leave the accounts that pull on the device that stays. Log out on the travelling one rather than deleting, so you are not locked out in an emergency.",
    "Keep one way to be reached on the travelling device, and tell the people who need it. A boundary nobody can cross in an emergency is not a boundary, it is a hazard."
   ]
  },
  {
   "id": "greyscale",
   "name": "Greyscale on a schedule",
   "tier": 2,
   "tierReason": "Catalogued from the mechanism literature and public documentation. Not evaluated by this research: no founder interview and no published trial of this specific setting.",
   "form": "Configuration or small script",
   "platforms": [
    "ios",
    "android",
    "macos",
    "windows",
    "linux"
   ],
   "mechanisms": [
    "friction"
   ],
   "harms": [
    "time_displacement",
    "exposure"
   ],
   "vector": {
    "locus": 75,
    "act": 10,
    "exit": 10,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "priceBand": "free",
   "priceNote": "Free; built into most systems.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No published evaluation of this specific setting. Where the site says anything about how it works, that is a claim about the mechanism, not about the product.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "maker": "The platform you are already using — Apple, Google, Microsoft, or your Linux distribution.",
    "kindNote": "This adds no new party to your data. You already accepted this vendor's terms when you started using the device, and turning this on does not extend them. That is a real advantage over installing something, and it is worth weighing against the fact that the vendor also has a commercial interest in your attention.",
    "enforcementActions": [],
    "verified": "2026-08-11"
   },
   "why": "Degrades the reward without blocking anything. Cheap, reversible, and almost nobody does it.",
   "vectorNote": "locus, act and exit are structural properties readable off the setting. The judgement axes (authorship, autonomy support, capacity building, durability, negotiability) are null because this tool was not researched in depth — the rubric scores it on a reduced fit and says so.",
   "kind": "os_feature",
   "recipe": "B4",
   "howTo": [
    "Set up a shortcut or accessibility toggle so greyscale is one gesture away.",
    "Better: put it on a schedule so it arrives at a fixed time without you deciding.",
    "It removes nothing and blocks nothing, which is why there is nothing to resent and nothing to bypass."
   ]
  },
  {
   "id": "ios-grayscale-except",
   "name": "Grayscale everywhere except Camera & Photos",
   "tier": 2,
   "kind": "recipe",
   "recipeRef": "iOS 1",
   "tierReason": "No-code recipe assembled from OS-native features. Not a product and not evaluated: the mechanism has research behind it to varying degrees; this specific arrangement does not.",
   "form": "Recipe — no code, no install",
   "platforms": [
    "ios"
   ],
   "mechanisms": [
    "friction",
    "exposure_limitation"
   ],
   "harms": [
    "time_displacement",
    "exposure"
   ],
   "vector": {
    "locus": 85,
    "act": 10,
    "exit": 10,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "vectorNote": "locus, act and exit are structural properties readable off the design. Judgement axes are null — scored on the reduced fit.",
   "permissionTier": 1,
   "permissionNote": "Shortcuts + Accessibility. No new permissions.",
   "priceBand": "free",
   "priceNote": "Free. Uses features already on the device.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No evaluation of this specific arrangement. Where the site says anything about how it works, that is a claim about the mechanism class, not about this recipe.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "dataPolicy": "No third party involved unless the recipe names one",
    "enforcementActions": [],
    "verified": "2026-08-11",
    "kindNote": "A configuration you assemble from features already on the device. No company behind it, nothing to own or fund, and no new permission granted — which is the main thing to know about it. Where a recipe involves a third party, it is named in the steps."
   },
   "why": "Shortcuts + Accessibility. No new permissions.",
   "howTo": [
    "Settings → Accessibility → Display & Text Size → Color Filters → toggle on, choose Grayscale. Your whole phone is now grey.",
    "Make an App Opened automation (universal setup above) for the apps you want in colour — Camera and Photos at minimum. Add anything visual you actually care about: a maps app, a design tool, a shopping app you use deliberately.",
    "Actions: add Set Color Filters and set it to Off.",
    "Make a second automation for the same apps, but this time check Is Closed and uncheck Is Opened. Action: Set Color Filters → On."
   ],
   "weakness": "the \"Is Closed\" trigger is less reliable than \"Is Opened\" — if you end up stuck in colour, add an Accessibility Shortcut (Settings → Accessibility → Accessibility Shortcut → Color Filters) so a triple-click of the side button toggles it manually.",
   "undo": "delete both automations and turn Color Filters off in Settings.",
   "instructionsRef": "iOS 1"
  },
  {
   "id": "ios-grayscale-in-app",
   "name": "Grayscale only inside the problem app",
   "tier": 2,
   "kind": "recipe",
   "recipeRef": "iOS 2",
   "tierReason": "No-code recipe assembled from OS-native features. Not a product and not evaluated: the mechanism has research behind it to varying degrees; this specific arrangement does not.",
   "form": "Recipe — no code, no install",
   "platforms": [
    "ios"
   ],
   "mechanisms": [
    "friction"
   ],
   "harms": [
    "time_displacement",
    "exposure"
   ],
   "vector": {
    "locus": 85,
    "act": 5,
    "exit": 10,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "vectorNote": "locus, act and exit are structural properties readable off the design. Judgement axes are null — scored on the reduced fit.",
   "permissionTier": 1,
   "permissionNote": "Shortcuts. No new permissions.",
   "priceBand": "free",
   "priceNote": "Free. Uses features already on the device.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No evaluation of this specific arrangement. Where the site says anything about how it works, that is a claim about the mechanism class, not about this recipe.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "dataPolicy": "No third party involved unless the recipe names one",
    "enforcementActions": [],
    "verified": "2026-08-11",
    "kindNote": "A configuration you assemble from features already on the device. No company behind it, nothing to own or fund, and no new permission granted — which is the main thing to know about it. Where a recipe involves a third party, it is named in the steps."
   },
   "why": "Shortcuts. No new permissions.",
   "howTo": [
    "App Opened automation for Instagram/TikTok/X → action Set Color Filters → On.",
    "Second automation, Is Closed for the same apps → Set Color Filters → Off."
   ],
   "weakness": "it only fires for apps you named, so it misses the ones you reach for without thinking. If you keep discovering new offenders, switch to iOS 1.",
   "undo": "Shortcuts → Automation → delete both automations.",
   "instructionsRef": "iOS 2",
   "notes": [
    {
     "label": "why choose this one",
     "text": "it isolates the intervention to the moment it matters, so there is no daily cost elsewhere. Why choose iOS 1 instead: a phone that is grey by default treats colour as the exception, which is a stronger frame — and it catches apps you didn't think to name."
    }
   ]
  },
  {
   "id": "ios-pause",
   "name": "A 10-second pause before the app opens",
   "tier": 2,
   "kind": "recipe",
   "recipeRef": "iOS 3",
   "tierReason": "No-code recipe assembled from OS-native features. Not a product and not evaluated: the mechanism has research behind it to varying degrees; this specific arrangement does not.",
   "form": "Recipe — no code, no install",
   "platforms": [
    "ios"
   ],
   "mechanisms": [
    "friction"
   ],
   "harms": [
    "time_displacement",
    "interference"
   ],
   "vector": {
    "locus": 50,
    "act": 70,
    "exit": 10,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "vectorNote": "locus, act and exit are structural properties readable off the design. Judgement axes are null — scored on the reduced fit.",
   "permissionTier": 1,
   "permissionNote": "Shortcuts. No new permissions. Hand-built version of the best-evidenced mechanism in the research.",
   "priceBand": "free",
   "priceNote": "Free. Uses features already on the device.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No evaluation of this specific arrangement. Where the site says anything about how it works, that is a claim about the mechanism class, not about this recipe.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "dataPolicy": "No third party involved unless the recipe names one",
    "enforcementActions": [],
    "verified": "2026-08-11",
    "kindNote": "A configuration you assemble from features already on the device. No company behind it, nothing to own or fund, and no new permission granted — which is the main thing to know about it. Where a recipe involves a third party, it is named in the steps."
   },
   "why": "Shortcuts. No new permissions. Hand-built version of the best-evidenced mechanism in the research.",
   "howTo": [
    "App Opened automation for the app in question.",
    "Actions, in order: Show Alert — text: something you wrote yourself, in your own words. Not \"Do you really need this?\" Something specific: \"You said you wanted your evenings back.\" Turn Show Cancel Button on. Wait — 10 seconds. Add this before the alert if you want the delay to be unskippable."
   ],
   "weakness": "an alert is dismissible in one tap and becomes wallpaper within weeks. Rewrite the text when you notice you have stopped reading it. Cost of exit is one swipe — this intervenes on habit, not on intent.",
   "undo": "Shortcuts → Automation → delete the automation.",
   "instructionsRef": "iOS 3",
   "notes": [
    {
     "text": "Design notes from the research. Ten seconds is roughly where the published work sits; longer is not obviously better and much longer gets uninstalled. Write the alert text yourself and rewrite it when you stop reading it — a prompt that has appeared identically four hundred times is no longer information. That habituation is documented, not hypothetical."
    }
   ]
  },
  {
   "id": "ios-intent-tax",
   "name": "The intent tax — type why, logged to a note",
   "tier": 2,
   "kind": "recipe",
   "recipeRef": "iOS 4",
   "tierReason": "No-code recipe assembled from OS-native features. Not a product and not evaluated: the mechanism has research behind it to varying degrees; this specific arrangement does not.",
   "form": "Recipe — no code, no install",
   "platforms": [
    "ios"
   ],
   "mechanisms": [
    "friction",
    "self_monitoring"
   ],
   "harms": [
    "time_displacement",
    "interference"
   ],
   "vector": {
    "locus": 40,
    "act": 85,
    "exit": 10,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "vectorNote": "locus, act and exit are structural properties readable off the design. Judgement axes are null — scored on the reduced fit.",
   "permissionTier": 1,
   "permissionNote": "Shortcuts + Notes. No new permissions.",
   "priceBand": "free",
   "priceNote": "Free. Uses features already on the device.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No evaluation of this specific arrangement. Where the site says anything about how it works, that is a claim about the mechanism class, not about this recipe.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "dataPolicy": "No third party involved unless the recipe names one",
    "enforcementActions": [],
    "verified": "2026-08-11",
    "kindNote": "A configuration you assemble from features already on the device. No company behind it, nothing to own or fund, and no new permission granted — which is the main thing to know about it. Where a recipe involves a third party, it is named in the steps."
   },
   "why": "Shortcuts + Notes. No new permissions.",
   "howTo": [
    "Create a note in Notes called `Phone log`.",
    "App Opened automation for the app.",
    "Actions: Ask for Input — Text — prompt: \"What are you here for?\" Append to Note — target the `Phone log` note, content: the Provided Input variable. Optionally add Current Date so entries are timestamped."
   ],
   "weakness": "typing on every open is an active gesture, and active gestures lapse — see the research on this. Treat it as a two-week diagnostic rather than a permanent arrangement.",
   "undo": "Shortcuts → Automation → delete the automation. Keep the note; it is the useful part.",
   "instructionsRef": "iOS 4"
  },
  {
   "id": "ios-delete-web",
   "name": "Delete the app, use the site in Safari",
   "tier": 2,
   "kind": "recipe",
   "recipeRef": "iOS 5",
   "tierReason": "No-code recipe assembled from OS-native features. Not a product and not evaluated: the mechanism has research behind it to varying degrees; this specific arrangement does not.",
   "form": "Recipe — no code, no install, one optional install",
   "platforms": [
    "ios"
   ],
   "mechanisms": [
    "access_control",
    "exposure_limitation"
   ],
   "harms": [
    "time_displacement",
    "exposure"
   ],
   "vector": {
    "locus": 90,
    "act": 20,
    "exit": 35,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "vectorNote": "locus, act and exit are structural properties readable off the design. Judgement axes are null — scored on the reduced fit.",
   "permissionTier": 1,
   "permissionNote": "No setup. Add a Safari content blocker for element-level hiding.",
   "priceBand": "free",
   "priceNote": "Free. Uses features already on the device.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No evaluation of this specific arrangement. Where the site says anything about how it works, that is a claim about the mechanism class, not about this recipe.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "dataPolicy": "No third party involved unless the recipe names one",
    "enforcementActions": [],
    "verified": "2026-08-11",
    "kindNote": "A configuration you assemble from features already on the device. No company behind it, nothing to own or fund, and no new permission granted — which is the main thing to know about it. Where a recipe involves a third party, it is named in the steps."
   },
   "why": "No setup. Add a Safari content blocker for element-level hiding.",
   "howTo": [
    "Delete the app.",
    "Open the site in Safari. Do not \"Add to Home Screen\" — the point is that it is inconvenient.",
    "Stay logged out if you can bear it. The login is the friction."
   ],
   "weakness": "nothing stops you reinstalling in thirty seconds, and some services degrade their web version deliberately enough that you may lose something you actually valued. Decide which features you will genuinely miss before deleting.",
   "undo": "reinstall from the App Store; your account is unaffected.",
   "instructionsRef": "iOS 5",
   "notes": [
    {
     "label": "why this works",
     "text": "the web version has no push notifications, worse infinite scroll, more friction on every interaction, and no background presence. You keep access and lose the affordances built to capture you."
    },
    {
     "label": "bonus",
     "text": "install a Safari content blocker from the App Store and you can hide specific elements — the Reels row, the recommendations panel — on the web version. This is the only route to element-level exposure reduction on iOS, and exposure is the harm with the fewest products addressing it."
    }
   ]
  },
  {
   "id": "ios-notif-summary",
   "name": "Scheduled notification summary",
   "tier": 2,
   "kind": "recipe",
   "recipeRef": "iOS 6",
   "tierReason": "No-code recipe assembled from OS-native features. Not a product and not evaluated: the mechanism has research behind it to varying degrees; this specific arrangement does not.",
   "form": "Recipe — no code, no install",
   "platforms": [
    "ios"
   ],
   "mechanisms": [
    "exposure_limitation"
   ],
   "harms": [
    "interference",
    "boundary"
   ],
   "vector": {
    "locus": 85,
    "act": 5,
    "exit": 12,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "vectorNote": "locus, act and exit are structural properties readable off the design. Judgement axes are null — scored on the reduced fit.",
   "permissionTier": 1,
   "permissionNote": "Settings only. The most neglected setting on the phone.",
   "priceBand": "free",
   "priceNote": "Free. Uses features already on the device.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No evaluation of this specific arrangement. Where the site says anything about how it works, that is a claim about the mechanism class, not about this recipe.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "dataPolicy": "No third party involved unless the recipe names one",
    "enforcementActions": [],
    "verified": "2026-08-11",
    "kindNote": "A configuration you assemble from features already on the device. No company behind it, nothing to own or fund, and no new permission granted — which is the main thing to know about it. Where a recipe involves a third party, it is named in the steps."
   },
   "why": "Settings only. The most neglected setting on the phone.",
   "howTo": [
    "Settings → Notifications → Scheduled Summary → on.",
    "Set two or three delivery times a day. Fewer is better.",
    "Add every app that is not a person contacting you directly.",
    "While you are there: Settings → Notifications → per app → turn Badges off. The red dot is a pull with no information in it."
   ],
   "weakness": "it delivers on a schedule, so anything genuinely urgent from a non-allowed app waits. Keep messages and calls out of the summary.",
   "undo": "toggle Scheduled Summary off.",
   "instructionsRef": "iOS 6"
  },
  {
   "id": "ios-screentime-locked",
   "name": "Screen Time limits with a passcode you don't hold",
   "tier": 2,
   "kind": "recipe",
   "recipeRef": "iOS 7",
   "tierReason": "No-code recipe assembled from OS-native features. Not a product and not evaluated: the mechanism has research behind it to varying degrees; this specific arrangement does not.",
   "form": "Recipe — no code, no install",
   "platforms": [
    "ios"
   ],
   "mechanisms": [
    "access_control"
   ],
   "harms": [
    "time_displacement",
    "interference"
   ],
   "vector": {
    "locus": 80,
    "act": 15,
    "exit": 80,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "vectorNote": "locus, act and exit are structural properties readable off the design. Judgement axes are null — scored on the reduced fit.",
   "permissionTier": 1,
   "permissionNote": "Settings only. The only iOS arrangement that resists your own intent.",
   "priceBand": "free",
   "priceNote": "Free. Uses features already on the device.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No evaluation of this specific arrangement. Where the site says anything about how it works, that is a claim about the mechanism class, not about this recipe.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "dataPolicy": "No third party involved unless the recipe names one",
    "enforcementActions": [],
    "verified": "2026-08-11",
    "kindNote": "A configuration you assemble from features already on the device. No company behind it, nothing to own or fund, and no new permission granted — which is the main thing to know about it. Where a recipe involves a third party, it is named in the steps."
   },
   "why": "Settings only. The only iOS arrangement that resists your own intent.",
   "howTo": [
    "Settings → Screen Time → App Limits → set limits per app or category.",
    "Turn on Block at End of Limit.",
    "Settings → Screen Time → Lock Screen Time Settings → set a passcode.",
    "Have someone else enter the passcode, or generate a random one, write it on paper, and store it somewhere genuinely inconvenient."
   ],
   "undo": "requires the passcode — which is the point. Without it, a full device reset is the only route, so test recovery before you rely on this.",
   "instructionsRef": "iOS 7",
   "notes": [
    {
     "text": "Read this before you do it. This is the highest-commitment option here and it has a real failure mode: needing an app during an emergency and being locked out. Use a paper backup rather than another person if you travel alone. Test that you can recover before you rely on it."
    }
   ]
  },
  {
   "id": "ios-homescreen",
   "name": "Home screen and search hygiene",
   "tier": 2,
   "kind": "recipe",
   "recipeRef": "iOS 8",
   "tierReason": "No-code recipe assembled from OS-native features. Not a product and not evaluated: the mechanism has research behind it to varying degrees; this specific arrangement does not.",
   "form": "Recipe — no code, no install",
   "platforms": [
    "ios"
   ],
   "mechanisms": [
    "friction",
    "access_control"
   ],
   "harms": [
    "time_displacement"
   ],
   "vector": {
    "locus": 90,
    "act": 15,
    "exit": 20,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "vectorNote": "locus, act and exit are structural properties readable off the design. Judgement axes are null — scored on the reduced fit.",
   "permissionTier": 1,
   "permissionNote": "Settings only. Five minutes, costs nothing.",
   "priceBand": "free",
   "priceNote": "Free. Uses features already on the device.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No evaluation of this specific arrangement. Where the site says anything about how it works, that is a claim about the mechanism class, not about this recipe.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "dataPolicy": "No third party involved unless the recipe names one",
    "enforcementActions": [],
    "verified": "2026-08-11",
    "kindNote": "A configuration you assemble from features already on the device. No company behind it, nothing to own or fund, and no new permission granted — which is the main thing to know about it. Where a recipe involves a third party, it is named in the steps."
   },
   "why": "Settings only. Five minutes, costs nothing.",
   "howTo": [
    "Remove the app from the Home Screen — long-press → Remove from Home Screen → keeps it in App Library.",
    "Remove it from the Dock.",
    "Settings → the app → Siri & Search → turn off Show App in Search and Show on Home Screen, so typing three letters doesn't surface it."
   ],
   "weakness": "it defeats the automatic reach and nothing more. Anyone who has decided to open the app will find it in two seconds via search if you leave search enabled.",
   "undo": "long-press in App Library → Add to Home Screen, and re-enable the Siri & Search toggles.",
   "instructionsRef": "iOS 8"
  },
  {
   "id": "ios-focus-segment",
   "name": "Focus modes with filters, per context",
   "tier": 2,
   "kind": "recipe",
   "recipeRef": "iOS 9",
   "tierReason": "No-code recipe assembled from OS-native features. Not a product and not evaluated: the mechanism has research behind it to varying degrees; this specific arrangement does not.",
   "form": "Recipe — no code, no install",
   "platforms": [
    "ios"
   ],
   "mechanisms": [
    "exposure_limitation",
    "self_regulation"
   ],
   "harms": [
    "boundary",
    "interference"
   ],
   "vector": {
    "locus": 75,
    "act": 25,
    "exit": 10,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "vectorNote": "locus, act and exit are structural properties readable off the design. Judgement axes are null — scored on the reduced fit.",
   "permissionTier": 1,
   "permissionNote": "Settings only. Focus Filters are the part almost nobody sets up.",
   "priceBand": "free",
   "priceNote": "Free. Uses features already on the device.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No evaluation of this specific arrangement. Where the site says anything about how it works, that is a claim about the mechanism class, not about this recipe.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "dataPolicy": "No third party involved unless the recipe names one",
    "enforcementActions": [],
    "verified": "2026-08-11",
    "kindNote": "A configuration you assemble from features already on the device. No company behind it, nothing to own or fund, and no new permission granted — which is the main thing to know about it. Where a recipe involves a third party, it is named in the steps."
   },
   "why": "Settings only. Focus Filters are the part almost nobody sets up.",
   "howTo": [
    "Settings → Focus → create Work and Personal.",
    "For each, set Allowed Notifications to an allow-list of people and apps — allow-list, not block-list.",
    "Use Focus Filters inside each Focus to limit Mail accounts, Calendar sets, Safari tab groups, and Messages threads. This is the part almost nobody sets up, and it is what makes the segmentation real rather than cosmetic.",
    "Give each Focus a Schedule, or add a Shortcuts automation triggered by arriving home or leaving work → Set Focus."
   ],
   "undo": "Settings → Focus → select the Focus → delete it, or just remove its schedule to keep the setup dormant.",
   "instructionsRef": "iOS 9",
   "notes": [
    {
     "text": "If the pressure is coming from your employer rather than from you, this will not fix it. No setting on your phone resolves an expectation that you are reachable at 9pm. Worth naming honestly before spending twenty minutes."
    }
   ]
  },
  {
   "id": "ios-charger",
   "name": "Charger-connect automation + phone in another room",
   "tier": 2,
   "kind": "recipe",
   "recipeRef": "iOS 10",
   "tierReason": "No-code recipe assembled from OS-native features. Not a product and not evaluated: the mechanism has research behind it to varying degrees; this specific arrangement does not.",
   "form": "Recipe — no code, no install",
   "platforms": [
    "ios"
   ],
   "mechanisms": [
    "access_control",
    "friction"
   ],
   "harms": [
    "time_displacement",
    "boundary"
   ],
   "vector": {
    "locus": 90,
    "act": 10,
    "exit": 12,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "vectorNote": "locus, act and exit are structural properties readable off the design. Judgement axes are null — scored on the reduced fit.",
   "permissionTier": 1,
   "permissionNote": "Shortcuts. The room is the intervention; the automation is the reminder.",
   "priceBand": "free",
   "priceNote": "Free. Uses features already on the device.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No evaluation of this specific arrangement. Where the site says anything about how it works, that is a claim about the mechanism class, not about this recipe.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "dataPolicy": "No third party involved unless the recipe names one",
    "enforcementActions": [],
    "verified": "2026-08-11",
    "kindNote": "A configuration you assemble from features already on the device. No company behind it, nothing to own or fund, and no new permission granted — which is the main thing to know about it. Where a recipe involves a third party, it is named in the steps."
   },
   "why": "Shortcuts. The room is the intervention; the automation is the reminder.",
   "howTo": [
    "Shortcuts → Automation → + → Charger → Is Connected → Run Immediately, notifications off.",
    "Actions: Set Focus → Sleep → On, and Set Color Filters → On.",
    "Charge the phone in a different room. The automation is the reminder; the room is the intervention."
   ],
   "instructionsRef": "iOS 10"
  },
  {
   "id": "sam-grayscale-app",
   "name": "Samsung: grayscale when a named app opens",
   "tier": 2,
   "kind": "recipe",
   "recipeRef": "AND 1",
   "tierReason": "No-code recipe assembled from OS-native features. Not a product and not evaluated: the mechanism has research behind it to varying degrees; this specific arrangement does not.",
   "form": "Recipe — no code, no install",
   "platforms": [
    "android"
   ],
   "mechanisms": [
    "friction",
    "exposure_limitation"
   ],
   "harms": [
    "time_displacement",
    "exposure"
   ],
   "vector": {
    "locus": 85,
    "act": 10,
    "exit": 10,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "vectorNote": "locus, act and exit are structural properties readable off the design. Judgement axes are null — scored on the reduced fit.",
   "permissionTier": 1,
   "permissionNote": "Modes and Routines. Native app-open trigger, no accessibility permission.",
   "priceBand": "free",
   "priceNote": "Free. Uses features already on the device.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No evaluation of this specific arrangement. Where the site says anything about how it works, that is a claim about the mechanism class, not about this recipe.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "dataPolicy": "No third party involved unless the recipe names one",
    "enforcementActions": [],
    "verified": "2026-08-11",
    "kindNote": "A configuration you assemble from features already on the device. No company behind it, nothing to own or fund, and no new permission granted — which is the main thing to know about it. Where a recipe involves a third party, it is named in the steps."
   },
   "why": "Modes and Routines. Native app-open trigger, no accessibility permission.",
   "howTo": [
    "Settings → Modes and Routines → Routines tab → +.",
    "Under If, tap App opened (it's under Event), select your apps, Done.",
    "Under Then, tap Display → Grayscale → On.",
    "Save. Samsung will offer to reverse the action when the condition ends — accept that, so colour returns when you leave the app."
   ],
   "weakness": "cost of exit is one toggle in Modes and Routines. Habit, not intent.",
   "undo": "Modes and Routines → Routines → select → delete, or toggle it off to keep the setup.",
   "instructionsRef": "AND 1",
   "notes": [
    {
     "text": "This is a native app-open trigger with no accessibility permission , which makes Samsung the one platform where the grayscale-on-app-open recipe is genuinely zero-cost. Say so to Samsung users; most don't know they have it."
    }
   ]
  },
  {
   "id": "sam-escalate",
   "name": "Samsung: delayed grayscale, then close the app",
   "tier": 2,
   "kind": "recipe",
   "recipeRef": "AND 2",
   "tierReason": "No-code recipe assembled from OS-native features. Not a product and not evaluated: the mechanism has research behind it to varying degrees; this specific arrangement does not.",
   "form": "Recipe — no code, no install",
   "platforms": [
    "android"
   ],
   "mechanisms": [
    "friction",
    "access_control"
   ],
   "harms": [
    "time_displacement",
    "interference"
   ],
   "vector": {
    "locus": 80,
    "act": 15,
    "exit": 12,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "vectorNote": "locus, act and exit are structural properties readable off the design. Judgement axes are null — scored on the reduced fit.",
   "permissionTier": 1,
   "permissionNote": "Modes and Routines. Escalating rather than repeating, as the research recommends.",
   "priceBand": "free",
   "priceNote": "Free. Uses features already on the device.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No evaluation of this specific arrangement. Where the site says anything about how it works, that is a claim about the mechanism class, not about this recipe.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "dataPolicy": "No third party involved unless the recipe names one",
    "enforcementActions": [],
    "verified": "2026-08-11",
    "kindNote": "A configuration you assemble from features already on the device. No company behind it, nothing to own or fund, and no new permission granted — which is the main thing to know about it. Where a recipe involves a third party, it is named in the steps."
   },
   "why": "Modes and Routines. Escalating rather than repeating, as the research recommends.",
   "howTo": [
    "If → App opened → your app.",
    "Then → add a delay (Samsung exposes this as a wait/after condition), then Display → Grayscale → On.",
    "Optionally add a further delay and a close app action."
   ],
   "weakness": "the close-app action can interrupt something you were doing deliberately — a video call in a social app, for instance. Set the delay generously the first week and tighten it once you know your own pattern.",
   "undo": "delete or disable the routine.",
   "instructionsRef": "AND 2"
  },
  {
   "id": "sam-modes",
   "name": "Samsung: whole-context modes",
   "tier": 2,
   "kind": "recipe",
   "recipeRef": "AND 3",
   "tierReason": "No-code recipe assembled from OS-native features. Not a product and not evaluated: the mechanism has research behind it to varying degrees; this specific arrangement does not.",
   "form": "Recipe — no code, no install",
   "platforms": [
    "android"
   ],
   "mechanisms": [
    "exposure_limitation",
    "self_regulation"
   ],
   "harms": [
    "boundary",
    "interference"
   ],
   "vector": {
    "locus": 85,
    "act": 10,
    "exit": 10,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "vectorNote": "locus, act and exit are structural properties readable off the design. Judgement axes are null — scored on the reduced fit.",
   "permissionTier": 1,
   "permissionNote": "Modes and Routines. No new permissions.",
   "priceBand": "free",
   "priceNote": "Free. Uses features already on the device.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No evaluation of this specific arrangement. Where the site says anything about how it works, that is a claim about the mechanism class, not about this recipe.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "dataPolicy": "No third party involved unless the recipe names one",
    "enforcementActions": [],
    "verified": "2026-08-11",
    "kindNote": "A configuration you assemble from features already on the device. No company behind it, nothing to own or fund, and no new permission granted — which is the main thing to know about it. Where a recipe involves a third party, it is named in the steps."
   },
   "why": "Modes and Routines. No new permissions.",
   "howTo": [
    "Modes tab → pick or create a mode (Work, Sleep, Focus).",
    "Set Display options including grayscale, and notification allow-lists.",
    "Trigger by schedule, location, or Wi-Fi network."
   ],
   "weakness": "whole-context modes are blunt by design; if you find yourself turning the mode off to do one thing, narrow its notification allow-list rather than abandoning it.",
   "undo": "Modes tab → select the mode → turn off or delete.",
   "instructionsRef": "AND 3"
  },
  {
   "id": "pixel-modes",
   "name": "Pixel: Modes with grayscale and dimmed wallpaper",
   "tier": 2,
   "kind": "recipe",
   "recipeRef": "AND 4",
   "tierReason": "No-code recipe assembled from OS-native features. Not a product and not evaluated: the mechanism has research behind it to varying degrees; this specific arrangement does not.",
   "form": "Recipe — no code, no install",
   "platforms": [
    "android"
   ],
   "mechanisms": [
    "friction",
    "exposure_limitation"
   ],
   "harms": [
    "time_displacement",
    "boundary"
   ],
   "vector": {
    "locus": 85,
    "act": 10,
    "exit": 10,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "vectorNote": "locus, act and exit are structural properties readable off the design. Judgement axes are null — scored on the reduced fit.",
   "permissionTier": 1,
   "permissionNote": "Settings only. Cannot trigger on app open — schedule, place and connectivity only.",
   "priceBand": "free",
   "priceNote": "Free. Uses features already on the device.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No evaluation of this specific arrangement. Where the site says anything about how it works, that is a claim about the mechanism class, not about this recipe.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "dataPolicy": "No third party involved unless the recipe names one",
    "enforcementActions": [],
    "verified": "2026-08-11",
    "kindNote": "A configuration you assemble from features already on the device. No company behind it, nothing to own or fund, and no new permission granted — which is the main thing to know about it. Where a recipe involves a third party, it is named in the steps."
   },
   "why": "Settings only. Cannot trigger on app open — schedule, place and connectivity only.",
   "howTo": [
    "Settings → Modes → choose or create a mode.",
    "Set Display → grayscale on, dim wallpaper on.",
    "Set the trigger — schedule, location, or manual tile."
   ],
   "undo": "Settings → Modes → select → turn off or delete.",
   "instructionsRef": "AND 4",
   "notes": [
    {
     "label": "limitation to state plainly",
     "text": "Pixel Modes cannot trigger on an app opening. Its triggers are time, place and connectivity. For app-triggered grayscale on a Pixel you need Tier 2 below, or you accept schedule-based grayscale instead — which, given that most people's problem hours are predictable, is often enough."
    }
   ]
  },
  {
   "id": "bedtime-mode",
   "name": "Bedtime mode",
   "tier": 2,
   "kind": "recipe",
   "recipeRef": "AND 5",
   "tierReason": "No-code recipe assembled from OS-native features. Not a product and not evaluated: the mechanism has research behind it to varying degrees; this specific arrangement does not.",
   "form": "Recipe — no code, no install",
   "platforms": [
    "android"
   ],
   "mechanisms": [
    "friction",
    "exposure_limitation"
   ],
   "harms": [
    "boundary",
    "time_displacement"
   ],
   "vector": {
    "locus": 90,
    "act": 5,
    "exit": 8,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "vectorNote": "locus, act and exit are structural properties readable off the design. Judgement axes are null — scored on the reduced fit.",
   "permissionTier": 1,
   "permissionNote": "Digital Wellbeing. If someone wants one thing, this is the one thing.",
   "priceBand": "free",
   "priceNote": "Free. Uses features already on the device.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No evaluation of this specific arrangement. Where the site says anything about how it works, that is a claim about the mechanism class, not about this recipe.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "dataPolicy": "No third party involved unless the recipe names one",
    "enforcementActions": [],
    "verified": "2026-08-11",
    "kindNote": "A configuration you assemble from features already on the device. No company behind it, nothing to own or fund, and no new permission granted — which is the main thing to know about it. Where a recipe involves a third party, it is named in the steps."
   },
   "why": "Digital Wellbeing. If someone wants one thing, this is the one thing.",
   "howTo": [
    "Settings → Digital Wellbeing → Bedtime mode. Turns on grayscale and silences notifications on a schedule. Zero configuration beyond the times. If someone wants one thing, this is the one thing."
   ],
   "weakness": "it only covers the hours you set, so it does nothing about the afternoon. Pair it with AND 6 if daytime is the problem.",
   "undo": "Settings → Digital Wellbeing → Bedtime mode → off.",
   "instructionsRef": "AND 5"
  },
  {
   "id": "dw-timers",
   "name": "Digital Wellbeing app timers and Focus mode",
   "tier": 2,
   "kind": "recipe",
   "recipeRef": "AND 6",
   "tierReason": "No-code recipe assembled from OS-native features. Not a product and not evaluated: the mechanism has research behind it to varying degrees; this specific arrangement does not.",
   "form": "Recipe — no code, no install",
   "platforms": [
    "android"
   ],
   "mechanisms": [
    "access_control"
   ],
   "harms": [
    "time_displacement",
    "interference"
   ],
   "vector": {
    "locus": 70,
    "act": 20,
    "exit": 10,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "vectorNote": "locus, act and exit are structural properties readable off the design. Judgement axes are null — scored on the reduced fit.",
   "permissionTier": 1,
   "permissionNote": "Settings only. Resets at midnight and extends in two taps.",
   "priceBand": "free",
   "priceNote": "Free. Uses features already on the device.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No evaluation of this specific arrangement. Where the site says anything about how it works, that is a claim about the mechanism class, not about this recipe.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "dataPolicy": "No third party involved unless the recipe names one",
    "enforcementActions": [],
    "verified": "2026-08-11",
    "kindNote": "A configuration you assemble from features already on the device. No company behind it, nothing to own or fund, and no new permission granted — which is the main thing to know about it. Where a recipe involves a third party, it is named in the steps."
   },
   "why": "Settings only. Resets at midnight and extends in two taps.",
   "howTo": [
    "Settings → Digital Wellbeing → Dashboard → set app timers. The app becomes unavailable for the rest of the day when the timer expires.",
    "Focus mode pauses a chosen set of apps entirely, on a schedule or on demand."
   ],
   "weakness": "timers reset at midnight and can be extended in two taps. Habit, not intent.",
   "undo": "Settings → Digital Wellbeing → Dashboard → remove the timer.",
   "instructionsRef": "AND 6"
  },
  {
   "id": "grayscale-toggle",
   "name": "Grayscale as a one-tap quick toggle",
   "tier": 2,
   "kind": "recipe",
   "recipeRef": "AND 7",
   "tierReason": "No-code recipe assembled from OS-native features. Not a product and not evaluated: the mechanism has research behind it to varying degrees; this specific arrangement does not.",
   "form": "Recipe — no code, no install",
   "platforms": [
    "android"
   ],
   "mechanisms": [
    "friction"
   ],
   "harms": [
    "time_displacement",
    "exposure"
   ],
   "vector": {
    "locus": 60,
    "act": 70,
    "exit": 5,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "vectorNote": "locus, act and exit are structural properties readable off the design. Judgement axes are null — scored on the reduced fit.",
   "permissionTier": 1,
   "permissionNote": "Accessibility settings. Lowest-effort item available.",
   "priceBand": "free",
   "priceNote": "Free. Uses features already on the device.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No evaluation of this specific arrangement. Where the site says anything about how it works, that is a claim about the mechanism class, not about this recipe.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "dataPolicy": "No third party involved unless the recipe names one",
    "enforcementActions": [],
    "verified": "2026-08-11",
    "kindNote": "A configuration you assemble from features already on the device. No company behind it, nothing to own or fund, and no new permission granted — which is the main thing to know about it. Where a recipe involves a third party, it is named in the steps."
   },
   "why": "Accessibility settings. Lowest-effort item available.",
   "howTo": [
    "Settings → Accessibility → Color and motion → Color correction → Grayscale, then add it to Quick Settings or assign it to the accessibility button. Manual, instant, and the lowest-effort thing on this page."
   ],
   "weakness": "entirely manual, so it depends on you remembering at the moment you least want to. Useful as a companion to an automated recipe rather than on its own.",
   "undo": "turn the toggle off, or remove it from Quick Settings.",
   "instructionsRef": "AND 7",
   "notes": [
    {
     "label": "settings",
     "text": "→ Accessibility → Color and motion → Color correction → Grayscale, then add it to Quick Settings or assign it to the accessibility button. Manual, instant, and the lowest-effort thing on this page."
    }
   ]
  },
  {
   "id": "pause-work-apps",
   "name": "Pause work apps (work profile toggle)",
   "tier": 2,
   "kind": "recipe",
   "recipeRef": "AND 8",
   "tierReason": "No-code recipe assembled from OS-native features. Not a product and not evaluated: the mechanism has research behind it to varying degrees; this specific arrangement does not.",
   "form": "Recipe — no code, no install",
   "platforms": [
    "android"
   ],
   "mechanisms": [
    "access_control"
   ],
   "harms": [
    "boundary"
   ],
   "vector": {
    "locus": 90,
    "act": 30,
    "exit": 15,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "vectorNote": "locus, act and exit are structural properties readable off the design. Judgement axes are null — scored on the reduced fit.",
   "permissionTier": 1,
   "permissionNote": "Requires an employer-provisioned work profile. The strongest boundary tool on any phone.",
   "priceBand": "free",
   "priceNote": "Free. Uses features already on the device.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No evaluation of this specific arrangement. Where the site says anything about how it works, that is a claim about the mechanism class, not about this recipe.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "dataPolicy": "No third party involved unless the recipe names one",
    "enforcementActions": [],
    "verified": "2026-08-11",
    "kindNote": "A configuration you assemble from features already on the device. No company behind it, nothing to own or fund, and no new permission granted — which is the main thing to know about it. Where a recipe involves a third party, it is named in the steps."
   },
   "why": "Requires an employer-provisioned work profile. The strongest boundary tool on any phone.",
   "howTo": [
    "Find the work profile toggle in Quick Settings or in Settings → Accounts.",
    "Schedule it if your launcher supports it, or pause it manually at a fixed time each evening."
   ],
   "weakness": "requires an employer-provisioned work profile — if your workplace does not use one, this is unavailable and the manual substitute is removing work accounts from the phone entirely.",
   "undo": "toggle work apps back on. Nothing is lost; the apps were suspended, not removed.",
   "instructionsRef": "AND 8",
   "notes": [
    {
     "text": "This is the strongest boundary tool on any phone and it exists because enterprise policy needed it, not because anyone designed it for wellbeing. If you don't have a work profile, the manual equivalent is removing work accounts from the phone and using the browser."
    }
   ]
  },
  {
   "id": "firefox-ublock",
   "name": "Firefox for Android + uBlock Origin",
   "tier": 2,
   "kind": "recipe",
   "recipeRef": "AND 9",
   "tierReason": "No-code recipe assembled from OS-native features. Not a product and not evaluated: the mechanism has research behind it to varying degrees; this specific arrangement does not.",
   "form": "Recipe — no code, no install, one optional install",
   "platforms": [
    "android"
   ],
   "mechanisms": [
    "exposure_limitation"
   ],
   "harms": [
    "exposure",
    "time_displacement"
   ],
   "vector": {
    "locus": 90,
    "act": 15,
    "exit": 25,
    "author": null,
    "auto": null,
    "comp": null,
    "dur": null,
    "nego": null,
    "evid": 0
   },
   "vectorNote": "locus, act and exit are structural properties readable off the design. Judgement axes are null — scored on the reduced fit.",
   "permissionTier": 1,
   "permissionNote": "Play Store install. The only element-level exposure reduction on a phone without code.",
   "priceBand": "free",
   "priceNote": "Free. Uses features already on the device.",
   "priceUrl": "",
   "evidence": {
    "strength": "none_published",
    "summary": "No evaluation of this specific arrangement. Where the site says anything about how it works, that is a claim about the mechanism class, not about this recipe.",
    "limits": "Mechanism-level inference only.",
    "citations": []
   },
   "structure": {
    "dataPolicy": "No third party involved unless the recipe names one",
    "enforcementActions": [],
    "verified": "2026-08-11",
    "kindNote": "A configuration you assemble from features already on the device. No company behind it, nothing to own or fund, and no new permission granted — which is the main thing to know about it. Where a recipe involves a third party, it is named in the steps."
   },
   "why": "Play Store install. The only element-level exposure reduction on a phone without code.",
   "howTo": [
    "Install Firefox from the Play Store.",
    "Install the uBlock Origin add-on inside Firefox.",
    "Delete the native app for the service in question and use it in Firefox.",
    "In uBlock's settings, add cosmetic filter rules for the specific surfaces you want gone — the Reels row, the Shorts shelf, the recommendations sidebar."
   ],
   "weakness": "filter rules break when sites change their markup. Keep a note of what each rule targets so you can repair it.",
   "undo": "remove the uBlock rules, or reinstall the native app. Firefox itself can stay.",
   "instructionsRef": "AND 9",
   "notes": [
    {
     "text": "Android's genuine advantage over iOS. Firefox for Android supports desktop-class extensions."
    }
   ]
  }
 ]
}