5324 lines
242 KiB
HTML
5324 lines
242 KiB
HTML
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — Website External Review Pack</title>
|
||
<meta name="description" content="Single-file external review pack containing the full IF.TTT website content." />
|
||
<link rel="stylesheet" href="../style.css" />
|
||
<style>
|
||
.wrap { max-width: 980px; }
|
||
pre { white-space: pre-wrap; word-break: break-word; }
|
||
.note { color: rgba(107,114,128,.9); font-size: 13px; }
|
||
.small { font-size: 12px; color: rgba(107,114,128,.9); }
|
||
details { margin: 10px 0 18px; }
|
||
summary { cursor: pointer; font-weight: 650; }
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">External review pack</span>
|
||
</span>
|
||
</a>
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../">Home</a>
|
||
<a href="../verticals/">Verticals</a>
|
||
<a href="../governance/">Governance</a>
|
||
<a href="../api/">Developers</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main class="wrap" style="padding-top: 96px; padding-bottom: 64px">
|
||
<h1>Website external review pack (single file)</h1>
|
||
<p class="note">This is the HTML fallback. The canonical source is the Markdown file:</p>
|
||
<p><a class="btn btn--primary" href="./index.md">Open raw Markdown</a></p>
|
||
<p class="small">Generated: <code>2025-12-29 09:47 UTC</code></p>
|
||
|
||
<details open>
|
||
<summary>Full pack content (Markdown)</summary>
|
||
<pre><code># IF.TTT Website — External Review Pack (Single File)
|
||
|
||
- Generated: `2025-12-29 09:47 UTC`
|
||
- Owner: Danny Stocker (`ds@infrafabric.io`)
|
||
|
||
This file contains the full current IF.TTT website content (page tree + full HTML per page + key text assets) so external reviewers can evaluate copy, structure, and claims without needing to crawl.
|
||
|
||
## How To Review (Quick)
|
||
- Audience split: Home is PM/exec-first; `Developers` lives under `/api/`.
|
||
- Goal: black/white clarity — what is verified vs what is not.
|
||
- Please flag: confusing terms, overclaims, missing steps, weak “why”, and anything that feels like marketing cosplay.
|
||
|
||
## Response Metadata (Required)
|
||
- `llm_name`:
|
||
- `probable_model`:
|
||
- `cutoff_date`:
|
||
- `response_date_utc`:
|
||
- `web_access_used`: yes/no (list URLs relied on)
|
||
|
||
## Live Entry Points
|
||
- https://infrafabric.io/
|
||
- https://infrafabric.io/verticals/
|
||
- https://infrafabric.io/governance/
|
||
- https://infrafabric.io/api/
|
||
- https://infrafabric.io/whitepaper/
|
||
- https://infrafabric.io/about/
|
||
- https://infrafabric.io/fr/
|
||
|
||
## Core Demo Links (Used Throughout)
|
||
- https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n
|
||
- https://infrafabric.io/static/pack/6qRgcR01kw_qNo63Dbs_ob9n
|
||
- https://infrafabric.io/static/pack/6qRgcR01kw_qNo63Dbs_ob9n.md
|
||
- https://infrafabric.io/static/hosted/review/trace-bundles/b6547c03/index.html
|
||
- https://infrafabric.io/static/hosted/iftrace.html
|
||
- https://infrafabric.io/static/hosted/iftrace.py
|
||
- https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html
|
||
|
||
## Page Tree
|
||
|
||
- /about/ (https://infrafabric.io/about/)
|
||
- /api/ (https://infrafabric.io/api/)
|
||
- /fr/governance/ (https://infrafabric.io/fr/governance/)
|
||
- /fr/ (https://infrafabric.io/fr/)
|
||
- /governance/ (https://infrafabric.io/governance/)
|
||
- / (https://infrafabric.io/)
|
||
- /verticals/ai/ (https://infrafabric.io/verticals/ai/)
|
||
- /verticals/enterprise/ (https://infrafabric.io/verticals/enterprise/)
|
||
- /verticals/finance/ (https://infrafabric.io/verticals/finance/)
|
||
- /verticals/government/ (https://infrafabric.io/verticals/government/)
|
||
- /verticals/healthcare/ (https://infrafabric.io/verticals/healthcare/)
|
||
- /verticals/ (https://infrafabric.io/verticals/)
|
||
- /verticals/legal/ (https://infrafabric.io/verticals/legal/)
|
||
- /verticals/professional-services/ (https://infrafabric.io/verticals/professional-services/)
|
||
- /verticals/public-sector/ (https://infrafabric.io/verticals/public-sector/)
|
||
- /verticals/research/ (https://infrafabric.io/verticals/research/)
|
||
- /verticals/saas/ (https://infrafabric.io/verticals/saas/)
|
||
- /verticals/sciences/ (https://infrafabric.io/verticals/sciences/)
|
||
- /verticals/secops/ (https://infrafabric.io/verticals/secops/)
|
||
- /verticals/supply-chain/ (https://infrafabric.io/verticals/supply-chain/)
|
||
- /whitepaper/ (https://infrafabric.io/whitepaper/)
|
||
- /whitepaper/thanks/ (https://infrafabric.io/whitepaper/thanks/)
|
||
|
||
## Text Assets
|
||
|
||
- `app.js` — https://infrafabric.io/static/hosted/ifttt/app.js
|
||
- `style.css` — https://infrafabric.io/static/hosted/ifttt/style.css
|
||
- `assets/if-logo-simple.svg` — https://infrafabric.io/static/hosted/ifttt/assets/if-logo-simple.svg
|
||
- `assets/ifttt-quotes.json` — https://infrafabric.io/static/hosted/ifttt/assets/ifttt-quotes.json
|
||
|
||
## Binary Assets (Referenced by Pages)
|
||
|
||
| File | Size | URL |
|
||
|---|---:|---|
|
||
| `assets/eyes-only-dave.png` | 1,522 KB | https://infrafabric.io/static/hosted/ifttt/assets/eyes-only-dave.png |
|
||
| `assets/red-team-doc-1024-559.jpg` | 122 KB | https://infrafabric.io/static/hosted/ifttt/assets/red-team-doc-1024-559.jpg |
|
||
| `assets/red-team-stamp-600.png` | 561 KB | https://infrafabric.io/static/hosted/ifttt/assets/red-team-stamp-600.png |
|
||
|
||
---
|
||
|
||
# Pages (Full HTML)
|
||
|
||
## /about/
|
||
- URL: https://infrafabric.io/about/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/about/
|
||
- Source: `ifttt/about/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — About</title>
|
||
<meta
|
||
name="description"
|
||
content="IF.TTT is a receipt-first governance protocol: traceable, transparent, trustworthy. This page explains the who/why/what/where/when/how and the traps that break open verification."
|
||
/>
|
||
<link rel="stylesheet" href="../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">About</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../#how">How</a>
|
||
<a href="../#trust">Trust</a>
|
||
<a href="../#verify">Verify</a>
|
||
<a href="../governance/">Governance</a>
|
||
<a href="../verticals/">Verticals</a>
|
||
<a href="../whitepaper/">Whitepaper</a>
|
||
<a href="../api/">Developers</a>
|
||
<a class="lang" href="../fr/" aria-label="French">FR</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">Why this exists</p>
|
||
<h1>We built the skeleton first.</h1>
|
||
<p class="lede">
|
||
Most systems produce answers and call that “governance”. IF.TTT starts earlier: it produces receipts that a third party can verify without
|
||
joining your internal world.
|
||
</p>
|
||
|
||
<div class="panel">
|
||
<h3>Who / Why / What / Where / When / How</h3>
|
||
<div class="bw">
|
||
<div class="bw__row">
|
||
<div class="bw__k">Who</div>
|
||
<div class="bw__v">InfraFabric operators shipping public, no‑login verification artifacts.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Why</div>
|
||
<div class="bw__v">Because “trust us” fails the moment a reviewer asks for proof.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">What</div>
|
||
<div class="bw__v">A receipt‑first protocol: bind <code>source_sha256</code> ↔ <code>output_sha256</code> under a trace receipt.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Where</div>
|
||
<div class="bw__v">On a stable public share surface (no login): trace, dossier, packs, and source.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">When</div>
|
||
<div class="bw__v">At publication time: the receipt is generated and can be verified later during disputes.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">How</div>
|
||
<div class="bw__v">Hashes + receipts + optional offline bundles; nothing magical, just opposable proof.</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="cta" style="margin-top: 12px">
|
||
<a class="btn btn--primary" href="../#verify">Try a live trace</a>
|
||
<a class="btn" href="../api/">Developer surface</a>
|
||
</div>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Traps to avoid">
|
||
<div class="card">
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">TRAPS</div>
|
||
<div class="badge">HOW RECEIPTS BREAK</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<ul class="list" style="margin: 0; padding-left: 18px">
|
||
<li><strong>Broken share surface:</strong> moving URLs or forcing login turns receipts into theater.</li>
|
||
<li><strong>Mixing identifiers:</strong> <code>shareId</code> is public; <code>trace_id</code> is chain‑of‑custody. Don’t swap them.</li>
|
||
<li><strong>“Compliance” claims:</strong> receipts support audits; they do not guarantee program scope or behavior.</li>
|
||
<li><strong>Unverifiable artifacts:</strong> screenshots and PDFs are not gates unless bound to machine‑checkable signals.</li>
|
||
<li><strong>WAF surprises:</strong> some clients can fetch HTML but reject binary downloads—publish HTML views.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section section--alt">
|
||
<div class="wrap">
|
||
<h2>What a receipt proves (and what it doesn’t)</h2>
|
||
<div class="grid2">
|
||
<div class="panel">
|
||
<h3>Proves</h3>
|
||
<ul class="list">
|
||
<li>Integrity binding: the published bytes match the hashes on the receipt.</li>
|
||
<li>Traceability: a reviewer can point to a stable, no‑login receipt.</li>
|
||
<li>Replay: verification still works during disputes (offline bundles when needed).</li>
|
||
</ul>
|
||
</div>
|
||
<div class="panel">
|
||
<h3>Does not prove</h3>
|
||
<ul class="list">
|
||
<li>Intent, interpretation, or “correctness” of a narrative.</li>
|
||
<li>That a control is effective—only that the evidence exists and is bound to the record.</li>
|
||
<li>Compliance scope (people, policy, contracts); receipts are inputs to governance.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section">
|
||
<div class="wrap">
|
||
<h2>Read the paper (and verify the examples)</h2>
|
||
<div class="links">
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">IF.TTT: The Skeleton of Everything (review pack)</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">InfraFabric • IF.TTT receipts are designed to be legible to the governed.</div>
|
||
<div class="muted">
|
||
<a href="../">IF.TTT</a> · <a href="../governance/">Governance</a> · <a href="../api/">Developers</a> ·
|
||
<a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<div class="bottombar" aria-label="Quick links">
|
||
<div class="wrap bottombar__inner">
|
||
<div class="bottombar__left">
|
||
<span class="bottombar__label">Sectors</span>
|
||
<a href="../verticals/public-sector/">Public Sector</a>
|
||
<a href="../verticals/enterprise/">Enterprise</a>
|
||
<a href="../verticals/research/">Research</a>
|
||
<a href="../verticals/professional-services/">Professional</a>
|
||
<span class="bottombar__sep">·</span>
|
||
<span class="bottombar__label">Industries</span>
|
||
<a href="../verticals/healthcare/">Healthcare</a>
|
||
<a href="../verticals/finance/">Financial</a>
|
||
<a href="../verticals/legal/">Legal</a>
|
||
</div>
|
||
<div class="bottombar__right">
|
||
<a href="../api/">Developers</a>
|
||
<span class="bottombar__sep">|</span>
|
||
<a href="../api/">API</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /api/
|
||
- URL: https://infrafabric.io/api/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/api/
|
||
- Source: `ifttt/api/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — Developers / API</title>
|
||
<meta
|
||
name="description"
|
||
content="Developer-facing overview of the IF.TTT public receipt surface: stable no-login URLs, HTML fallbacks for sandboxes, and offline verification bundles."
|
||
/>
|
||
<link rel="stylesheet" href="../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">Developers / API</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../#verify">Verify</a>
|
||
<a href="../verticals/">Verticals</a>
|
||
<a href="../governance/">Governance</a>
|
||
<a href="../whitepaper/">Whitepaper</a>
|
||
<a href="../about/">About</a>
|
||
<a class="lang" href="../fr/" aria-label="French">FR</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">Public receipt surface (no login)</p>
|
||
<h1>Stable URLs, predictable verification.</h1>
|
||
<p class="lede">
|
||
IF.TTT is intentionally boring from a developer perspective: compute hashes, publish receipts, and keep the proof surface stable. The
|
||
system is designed for third parties who are not inside your network.
|
||
</p>
|
||
<div class="panel">
|
||
<h3>What “VERIFIED” means (black/white)</h3>
|
||
<div class="bw">
|
||
<div class="bw__row">
|
||
<div class="bw__k">Verified</div>
|
||
<div class="bw__v">The bytes you can download hash to the same values shown on the trace receipt.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Quantum ready</div>
|
||
<div class="bw__v">A post‑quantum signature receipt exists (additive; integrity hashes still stand).</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Not implied</div>
|
||
<div class="bw__v">Compliance, intent, or correctness of interpretation.</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Share surface reference">
|
||
<div class="card">
|
||
<div class="card__media">
|
||
<img src="../assets/red-team-stamp-600.png" alt="EYES ONLY // DAVE stamp" loading="lazy" />
|
||
</div>
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">SHARE SURFACE</div>
|
||
<div class="badge">NO‑LOGIN</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<pre class="code"><code>https://infrafabric.io/static/trace/&lt;shareId&gt;
|
||
https://infrafabric.io/static/dossier/&lt;shareId&gt;
|
||
https://infrafabric.io/static/dossier/&lt;shareId&gt;/download
|
||
https://infrafabric.io/static/pack/&lt;shareId&gt;.md
|
||
https://infrafabric.io/static/review/&lt;shareId&gt;.md
|
||
https://infrafabric.io/static/marketing/&lt;shareId&gt;.md
|
||
https://infrafabric.io/static/source/&lt;source_sha256&gt;.pdf</code></pre>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section">
|
||
<div class="wrap">
|
||
<h2>HTML fallback (for sandboxed reviewers)</h2>
|
||
<p class="sub">
|
||
Some external review environments can load HTML but reject downloadable binaries or raw markdown. For those, we publish HTML views alongside
|
||
the raw assets.
|
||
</p>
|
||
<div class="grid2">
|
||
<div class="panel">
|
||
<h3>Raw</h3>
|
||
<pre class="code"><code>/static/pack/&lt;shareId&gt;.md
|
||
/static/review/&lt;shareId&gt;.md
|
||
/static/marketing/&lt;shareId&gt;.md</code></pre>
|
||
</div>
|
||
<div class="panel">
|
||
<h3>HTML view</h3>
|
||
<pre class="code"><code>/static/pack/&lt;shareId&gt;
|
||
/static/review/&lt;shareId&gt;
|
||
/static/marketing/&lt;shareId&gt;</code></pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section section--alt">
|
||
<div class="wrap">
|
||
<h2>Offline verification (triage bundles)</h2>
|
||
<p class="sub">Download a bundle (lightweight/standard/full) and verify without relying on the live site.</p>
|
||
<div class="verify">
|
||
<div class="panel">
|
||
<h3>Bundle selector (demo)</h3>
|
||
<div class="links">
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/review/trace-bundles/d70ed99a/index.html" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Triage selector (HTML)</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/review/trace-bundles/d70ed99a/index.html</span>
|
||
</a>
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/iftrace.html" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Verifier (HTML)</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/iftrace.html</span>
|
||
</a>
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/iftrace.py" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Verifier (download)</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/iftrace.py</span>
|
||
</a>
|
||
</div>
|
||
<p class="fine">
|
||
Note: some “web fetchers” reject <code>.tar.gz</code> with a client-side error even when browsers/curl succeed. Use the HTML views and
|
||
download bundles locally.
|
||
</p>
|
||
</div>
|
||
<div class="panel">
|
||
<h3>Verify (CLI)</h3>
|
||
<pre class="code"><code>curl -fsSL -o iftrace.py 'https://infrafabric.io/static/hosted/iftrace.py'
|
||
python3 iftrace.py verify trace_bundle_&lt;id&gt;_standard.tar.gz --expected-sha256 &lt;sha256&gt;</code></pre>
|
||
<p class="fine">If hashes match, the receipt’s integrity claim is satisfied.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section">
|
||
<div class="wrap">
|
||
<h2>Docs</h2>
|
||
<div class="links">
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">IF.TTT paper update (review pack)</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">InfraFabric • IF.TTT receipts are designed to be legible to the governed.</div>
|
||
<div class="muted">
|
||
<a href="../">IF.TTT</a> · <a href="../governance/">Governance</a> · <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a>
|
||
<span class="bottombar__sep">·</span> Danny Stocker
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<div class="bottombar" aria-label="Quick links">
|
||
<div class="wrap bottombar__inner">
|
||
<div class="bottombar__left">
|
||
<span class="bottombar__label">Sectors</span>
|
||
<a href="../verticals/public-sector/">Public Sector</a>
|
||
<a href="../verticals/enterprise/">Enterprise</a>
|
||
<a href="../verticals/research/">Research</a>
|
||
<a href="../verticals/professional-services/">Professional</a>
|
||
<span class="bottombar__sep">·</span>
|
||
<span class="bottombar__label">Industries</span>
|
||
<a href="../verticals/healthcare/">Healthcare</a>
|
||
<a href="../verticals/finance/">Financial</a>
|
||
<a href="../verticals/legal/">Legal</a>
|
||
</div>
|
||
<div class="bottombar__right">
|
||
<a href="../api/">Developers</a>
|
||
<span class="bottombar__sep">|</span>
|
||
<a href="../api/">API</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /fr/governance/
|
||
- URL: https://infrafabric.io/fr/governance/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/fr/governance/
|
||
- Source: `ifttt/fr/governance/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="fr">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — Gouvernance ouverte</title>
|
||
<meta
|
||
name="description"
|
||
content="La gouvernance ouverte signifie qu’un tiers peut vérifier ce qui s’est passé sans login. IF.TTT est l’ossature de reçus : trace, liens stables, bundles hors‑ligne."
|
||
/>
|
||
<link rel="stylesheet" href="../../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../../" aria-label="IF.TTT accueil">
|
||
<img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">Gouvernance ouverte</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Navigation">
|
||
<a href="../../#how">Process</a>
|
||
<a href="../../#trust">Confiance</a>
|
||
<a href="../../#verify">Vérifier</a>
|
||
<a href="../../verticals/">Verticaux</a>
|
||
<a href="../../whitepaper/">Livre blanc</a>
|
||
<a href="../../api/">Développeurs</a>
|
||
<a href="../../about/">À propos</a>
|
||
<a class="lang" href="../../governance/" aria-label="English">EN</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">Gouvernance ouverte</p>
|
||
<h1>Lisible par les gouvernés.</h1>
|
||
<p class="lede">
|
||
Une “gouvernance” qui ne se lit qu’en interne n’est pas une preuve. IF.TTT publie des reçus stables, accessibles sans login, pour que des
|
||
tiers puissent vérifier l’intégrité sans entrer dans votre réseau.
|
||
</p>
|
||
|
||
<div class="panel">
|
||
<h3>Ce que cela prouve (et ce que cela ne prouve pas)</h3>
|
||
<div class="bw">
|
||
<div class="bw__row">
|
||
<div class="bw__k">Prouve</div>
|
||
<div class="bw__v">Liaison d’intégrité (hashes), reçus de publication, bundles hors‑ligne.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Ne prouve pas</div>
|
||
<div class="bw__v">L’intention, l’interprétation, ou “la conformité atteinte”.</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="panel" style="margin-top: 12px">
|
||
<h3>La “stack” de gouvernance</h3>
|
||
<ul class="list">
|
||
<li><strong>IF.TTT (reçus) :</strong> source_sha256 ↔ output_sha256, trace_id, shareId.</li>
|
||
<li><strong>Revue :</strong> packs de revue externes, critiques, disputes.</li>
|
||
<li><strong>Contrôles :</strong> gates/stop‑conditions qui consomment ces reçus.</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="cta" style="margin-top: 12px">
|
||
<a class="btn btn--primary" href="../../#verify">Voir une trace</a>
|
||
<a class="btn" href="../../api/">Surface publique</a>
|
||
</div>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Charters">
|
||
<div class="card">
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">CHARTERS</div>
|
||
<div class="badge">PUBLICS</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<div class="links">
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/gov/TRIAGE.md" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Politique de triage</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/gov/TRIAGE.md</span>
|
||
</a>
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/gov/PANEL.md" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Panel / revue externe</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/gov/PANEL.md</span>
|
||
</a>
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/gov/WITNESS.md" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Modèle “witness”</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/gov/WITNESS.md</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section">
|
||
<div class="wrap">
|
||
<h2>Pour qui (et qui va détester)</h2>
|
||
<p class="sub">Lisible pour des tiers : le but n’est pas le confort interne, mais la vérifiabilité externe.</p>
|
||
|
||
<div class="grid2">
|
||
<div class="panel">
|
||
<h3>Pour</h3>
|
||
<ul class="list">
|
||
<li><strong>GRC / audit</strong> (SOC 2 / ISO) : preuves exportables.</li>
|
||
<li><strong>Architecture sécurité</strong> : contrôles mesurables, pas d’attestations.</li>
|
||
<li><strong>Juridique / conformité</strong> : chaîne de possession en cas de litige.</li>
|
||
<li><strong>Produits IA</strong> : “pourquoi le modèle a dit ça ?”</li>
|
||
<li><strong>Secteur public / défense</strong> : vérification hors‑ligne et environnements verrouillés.</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="panel">
|
||
<h3>Pas pour</h3>
|
||
<ul class="list">
|
||
<li>Ceux qui veulent un “badge” sans publier d’artefacts vérifiables.</li>
|
||
<li>Les workflows où rien ne peut sortir du réseau (pas de surface publique).</li>
|
||
<li>Les organisations qui préfèrent l’ambiguïté : IF.TTT rend les trous visibles.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="cta" style="margin-top: 12px">
|
||
<a class="btn btn--primary" href="../../whitepaper/">Lire le livre blanc</a>
|
||
<a class="btn" href="../../verticals/">Voir les verticaux</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">InfraFabric • Gouvernance ouverte = preuve sans login.</div>
|
||
<div class="muted"><a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> · Danny Stocker</div>
|
||
</div>
|
||
</footer>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /fr/
|
||
- URL: https://infrafabric.io/fr/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/fr/
|
||
- Source: `ifttt/fr/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="fr">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — Vérification ouverte pour la gouvernance IA</title>
|
||
<meta
|
||
name="description"
|
||
content="IF.TTT (Traceable, Transparent, Trustworthy) est une couche de gouvernance “receipt-first” : relier une source à un output via une trace vérifiable, des liens publics sans login et des bundles hors‑ligne."
|
||
/>
|
||
<meta property="og:title" content="IF.TTT — Vérification ouverte pour la gouvernance IA" />
|
||
<meta
|
||
property="og:description"
|
||
content="Des reçus, pas des opinions. IF.TTT relie une source à un output avec des traces vérifiables, des liens publics sans login, et des bundles hors‑ligne."
|
||
/>
|
||
<meta property="og:type" content="website" />
|
||
<meta property="og:image" content="https://infrafabric.io/static/hosted/ifttt/assets/red-team-doc-1024-559.jpg" />
|
||
<meta name="twitter:card" content="summary_large_image" />
|
||
<meta name="theme-color" content="#111827" />
|
||
<link rel="icon" href="../assets/if-logo-simple.svg" type="image/svg+xml" />
|
||
<link rel="stylesheet" href="../style.css" />
|
||
<script src="../app.js" defer></script>
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../" aria-label="IF.TTT accueil">
|
||
<img class="brand__logo" src="../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">Traceable • Transparent • Trustworthy</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Navigation">
|
||
<a href="../#how">Process</a>
|
||
<a href="../#trust">Confiance</a>
|
||
<a href="../#verify">Vérifier</a>
|
||
<a href="../verticals/">Verticaux</a>
|
||
<a href="./governance/">Gouvernance</a>
|
||
<a href="../whitepaper/">Livre blanc</a>
|
||
<a href="../api/">Développeurs</a>
|
||
<a href="../about/">À propos</a>
|
||
<a class="lang" href="../" aria-label="English">EN</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">Gouvernance ouverte, lisible par des tiers</p>
|
||
<h1>Des reçus, pas des opinions.</h1>
|
||
<div class="type" aria-label="Animation de saisie">
|
||
<span class="type__prefix">if.</span><span id="typeword"></span><span class="type__suffix">&gt;</span
|
||
><span class="type__caret" aria-hidden="true"></span>
|
||
</div>
|
||
<div class="quote" aria-live="polite" aria-label="Citation tournante">
|
||
<div class="quote__text" id="quoteText"></div>
|
||
<div class="quote__meta" id="quoteMeta"></div>
|
||
</div>
|
||
<p class="lede">
|
||
IF.TTT est une couche de gouvernance “receipt‑first”. Elle relie un <strong>artefact source</strong> à un <strong>output</strong> via une
|
||
<strong>page de trace</strong>, des <strong>liens publics sans login</strong>, et des <strong>bundles hors‑ligne</strong> vérifiables.
|
||
</p>
|
||
|
||
<div class="pillrow" role="list" aria-label="Propriétés clés">
|
||
<div class="pill" role="listitem">
|
||
<span class="pill__k">Sans login</span>
|
||
<span class="pill__v">Surface publique</span>
|
||
</div>
|
||
<div class="pill" role="listitem">
|
||
<span class="pill__k">Hors‑ligne</span>
|
||
<span class="pill__v">Bundles de triage</span>
|
||
</div>
|
||
<div class="pill" role="listitem">
|
||
<span class="pill__k">Noir/blanc</span>
|
||
<span class="pill__v">Vérifié vs non‑vérifié</span>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="cta">
|
||
<a class="btn btn--primary" href="../#verify">Voir une trace</a>
|
||
<a class="btn" href="../verticals/">Voir les verticaux</a>
|
||
</div>
|
||
|
||
<p class="note">
|
||
Nous ne “vendons” pas la conformité. Nous aidons les audits en produisant des <em>reçus vérifiables</em> que des tiers peuvent contrôler
|
||
sans vos identifiants.
|
||
</p>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Exemple de page trace">
|
||
<div class="card">
|
||
<div class="card__media">
|
||
<img
|
||
src="../assets/red-team-doc-1024-559.jpg"
|
||
alt="Couverture de dossier InfraFabric Red Team avec tampon “EYES ONLY // DAVE”"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">VERIFIED</div>
|
||
<div class="badge">QUANTUM READY (optionnel)</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<div class="mini">
|
||
<div class="mini__k">Promesse</div>
|
||
<div class="mini__v">“Téléchargez. Hashez. Comparez. Optionnellement vérifiez hors‑ligne.”</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">InfraFabric • Reçus IF.TTT conçus pour être “lisibles par les gouvernés”.</div>
|
||
<div class="muted"><a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> · Danny Stocker</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<div class="bottombar" aria-label="Liens rapides">
|
||
<div class="wrap bottombar__inner">
|
||
<div class="bottombar__left">
|
||
<span class="bottombar__label">Secteurs</span>
|
||
<a href="../verticals/public-sector/">Secteur public</a>
|
||
<a href="../verticals/enterprise/">Entreprise</a>
|
||
<a href="../verticals/research/">Recherche</a>
|
||
<a href="../verticals/professional-services/">Services pro</a>
|
||
<span class="bottombar__sep">·</span>
|
||
<span class="bottombar__label">Industries</span>
|
||
<a href="../verticals/healthcare/">Santé</a>
|
||
<a href="../verticals/finance/">Finance</a>
|
||
<a href="../verticals/legal/">Juridique</a>
|
||
</div>
|
||
<div class="bottombar__right">
|
||
<a href="../api/">Developers</a>
|
||
<span class="bottombar__sep">|</span>
|
||
<a href="../api/">API</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /governance/
|
||
- URL: https://infrafabric.io/governance/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/governance/
|
||
- Source: `ifttt/governance/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — Open Governance</title>
|
||
<meta
|
||
name="description"
|
||
content="Open governance means third parties can verify what happened without your login. IF.TTT is the receipt backbone: trace pages, stable no-login links, and offline bundles."
|
||
/>
|
||
<link rel="stylesheet" href="../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">Open governance</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../#how">How</a>
|
||
<a href="../#trust">Trust</a>
|
||
<a href="../#verify">Verify</a>
|
||
<a href="../verticals/">Verticals</a>
|
||
<a href="../whitepaper/">Whitepaper</a>
|
||
<a href="../api/">Developers</a>
|
||
<a href="../about/">About</a>
|
||
<a class="lang" href="../fr/governance/" aria-label="French">FR</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">Open governance</p>
|
||
<h1>Legible to the governed.</h1>
|
||
<p class="lede">
|
||
“Governance” fails when it’s only legible inside your network. IF.TTT moves the proof outside: stable, no‑login receipts that third parties
|
||
can verify without joining your internal world.
|
||
</p>
|
||
|
||
<div class="panel">
|
||
<h3>What this page is (black/white)</h3>
|
||
<div class="bw">
|
||
<div class="bw__row">
|
||
<div class="bw__k">Goal</div>
|
||
<div class="bw__v">Make third‑party verification possible without credentials.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Mechanism</div>
|
||
<div class="bw__v">Hashes + trace receipts + stable URLs + optional offline bundles.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Not implied</div>
|
||
<div class="bw__v">“Compliance achieved” or “correctness of interpretation”.</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="panel" style="margin-top: 12px">
|
||
<h3>The governance stack (where IF.TTT sits)</h3>
|
||
<ul class="list">
|
||
<li><strong>Receipt layer (IF.TTT):</strong> integrity binding + chain‑of‑custody IDs + share surface.</li>
|
||
<li><strong>Review layer:</strong> external review packs, panel critique, dispute workflows.</li>
|
||
<li><strong>Enforcement layer:</strong> gates/stop‑conditions that consume receipts (CI, access, runtime).</li>
|
||
</ul>
|
||
<p class="fine">Receipts don’t replace governance. They remove ambiguity from it.</p>
|
||
</div>
|
||
|
||
<div class="cta" style="margin-top: 12px">
|
||
<a class="btn btn--primary" href="../#verify">Try a live trace</a>
|
||
<a class="btn" href="../api/">Public share surface</a>
|
||
</div>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Public artifacts">
|
||
<div class="card">
|
||
<div class="card__media">
|
||
<img src="../assets/red-team-stamp-600.png" alt="EYES ONLY // DAVE stamp" loading="lazy" />
|
||
</div>
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">PUBLIC</div>
|
||
<div class="badge">NO‑LOGIN</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<div class="mini">
|
||
<div class="mini__k">Stable receipt surface</div>
|
||
<div class="mini__v">These URLs are designed to be shareable in procurement, audits, and disputes.</div>
|
||
</div>
|
||
<pre class="code"><code>/static/trace/&lt;shareId&gt;
|
||
/static/dossier/&lt;shareId&gt;
|
||
/static/dossier/&lt;shareId&gt;/download
|
||
/static/pack/&lt;shareId&gt;.md
|
||
/static/review/&lt;shareId&gt;.md
|
||
/static/marketing/&lt;shareId&gt;.md
|
||
/static/source/&lt;source_sha256&gt;.pdf</code></pre>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section">
|
||
<div class="wrap">
|
||
<h2>For whom (and who will hate it)</h2>
|
||
<p class="sub">A constitutional framing: the goal is legibility to outsiders, not internal comfort.</p>
|
||
|
||
<div class="grid2">
|
||
<div class="panel">
|
||
<h3>For</h3>
|
||
<ul class="list">
|
||
<li><strong>GRC / Audit leads</strong> drowning in evidence requests (SOC 2 / ISO 27001 / vendor due diligence).</li>
|
||
<li><strong>Security architects</strong> who need “proof of what ran” without adding manual theater.</li>
|
||
<li><strong>Legal / compliance</strong> teams who need chain‑of‑custody that survives disputes.</li>
|
||
<li><strong>AI product teams</strong> facing “why did it say that?” questions from customers and regulators.</li>
|
||
<li><strong>Gov/defense contractors</strong> who must verify artifacts offline or across locked‑down environments.</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="panel">
|
||
<h3>Not for</h3>
|
||
<ul class="list">
|
||
<li>Teams seeking a “compliance badge” without publishing verifiable artifacts.</li>
|
||
<li>Workflows where evidence cannot leave the internal network (no share surface, no external verification).</li>
|
||
<li>Organizations that want to hide uncertainty: IF.TTT makes gaps visible by design.</li>
|
||
<li>Anyone who needs governance to remain ambiguous (receipts reduce wiggle room).</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="cta" style="margin-top: 12px">
|
||
<a class="btn btn--primary" href="../whitepaper/">Read the paper</a>
|
||
<a class="btn" href="../verticals/">Browse vertical fit</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section section--alt">
|
||
<div class="wrap">
|
||
<h2>Charters (how we keep it honest)</h2>
|
||
<p class="sub">These are plain Markdown docs: readable, linkable, and easy to critique.</p>
|
||
<div class="links">
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/gov/TRIAGE.md" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Triage policy</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/gov/TRIAGE.md</span>
|
||
</a>
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/gov/PANEL.md" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Panel / external review process</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/gov/PANEL.md</span>
|
||
</a>
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/gov/WITNESS.md" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Witness model</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/gov/WITNESS.md</span>
|
||
</a>
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/gov/QUESTIONS.md" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Third‑party questions we expect</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/gov/QUESTIONS.md</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section">
|
||
<div class="wrap">
|
||
<h2>Live example</h2>
|
||
<p class="sub">A real trace receipt you can verify right now.</p>
|
||
<div class="links">
|
||
<a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Example trace receipt</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
|
||
</a>
|
||
</div>
|
||
<p class="fine">
|
||
“VERIFIED” means the published bytes hash to what the receipt says. “QUANTUM READY” means a post‑quantum signature receipt exists (additive;
|
||
integrity hashes still stand).
|
||
</p>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">InfraFabric • Open governance is “proof without login”.</div>
|
||
<div class="muted">
|
||
<a href="../">IF.TTT</a> · <a href="../api/">Developers</a> · <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a>
|
||
<span class="bottombar__sep">·</span> Danny Stocker
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<div class="bottombar" aria-label="Quick links">
|
||
<div class="wrap bottombar__inner">
|
||
<div class="bottombar__left">
|
||
<span class="bottombar__label">Sectors</span>
|
||
<a href="../verticals/public-sector/">Public Sector</a>
|
||
<a href="../verticals/enterprise/">Enterprise</a>
|
||
<a href="../verticals/research/">Research</a>
|
||
<a href="../verticals/professional-services/">Professional</a>
|
||
<span class="bottombar__sep">·</span>
|
||
<span class="bottombar__label">Industries</span>
|
||
<a href="../verticals/healthcare/">Healthcare</a>
|
||
<a href="../verticals/finance/">Financial</a>
|
||
<a href="../verticals/legal/">Legal</a>
|
||
</div>
|
||
<div class="bottombar__right">
|
||
<a href="../api/">Developers</a>
|
||
<span class="bottombar__sep">|</span>
|
||
<a href="../api/">API</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /
|
||
- URL: https://infrafabric.io/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/
|
||
- Source: `ifttt/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — Open Verification for AI Governance</title>
|
||
<meta
|
||
name="description"
|
||
content="IF.TTT (Traceable, Transparent, Trustworthy) is a receipt-first governance layer: bind a source artifact to an output with a verifiable trace, no-login proof links, and optional offline bundles."
|
||
/>
|
||
<meta property="og:title" content="IF.TTT — Open Verification for AI Governance" />
|
||
<meta
|
||
property="og:description"
|
||
content="Receipts, not vibes. IF.TTT binds a source artifact to an output with verifiable traces, no-login proof links, and optional offline bundles."
|
||
/>
|
||
<meta property="og:type" content="website" />
|
||
<meta property="og:image" content="https://infrafabric.io/static/hosted/ifttt/assets/red-team-doc-1024-559.jpg" />
|
||
<meta name="twitter:card" content="summary_large_image" />
|
||
<meta name="theme-color" content="#111827" />
|
||
<link rel="icon" href="./assets/if-logo-simple.svg" type="image/svg+xml" />
|
||
<link rel="stylesheet" href="./style.css" />
|
||
<script src="./app.js" defer></script>
|
||
</head>
|
||
|
||
<body class="home">
|
||
<header class="top top--home">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="./" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="./assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">Traceable • Transparent • Trustworthy</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="homeNav" aria-label="Top links">
|
||
<a href="./governance/">Governance</a>
|
||
<a href="./whitepaper/">Whitepaper</a>
|
||
<a href="./api/">Developers</a>
|
||
<a href="./about/">About</a>
|
||
<a class="lang" href="./fr/" aria-label="French">FR</a>
|
||
<span class="homeNav__sep">·</span>
|
||
<a class="homeNav__contact" href="mailto:ds@infrafabric.io">ds@infrafabric.io</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top" class="homeMain" aria-label="IF.TTT overview">
|
||
<div class="wrap homeMain__inner">
|
||
<div class="homeCenter">
|
||
<div class="homeBadges" aria-label="Status badges">
|
||
<a
|
||
class="badge badge--ok badge--big"
|
||
href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n"
|
||
target="_blank"
|
||
rel="noreferrer"
|
||
>VERIFIED</a
|
||
>
|
||
<a class="badge badge--big" href="./api/#quantum">QUANTUM READY</a>
|
||
</div>
|
||
|
||
<div class="type type--home" aria-label="Typing animation">
|
||
<span class="type__prefix">if.</span><span id="typeword"></span><span class="type__suffix">&gt;</span
|
||
><span class="type__caret" aria-hidden="true"></span>
|
||
</div>
|
||
|
||
<div class="quote quote--home" aria-live="polite" aria-label="Rotating quote">
|
||
<div class="quote__text" id="quoteText"></div>
|
||
<div class="quote__meta" id="quoteMeta"></div>
|
||
</div>
|
||
|
||
<p class="homeLede">
|
||
Open verification for governance: third parties can verify receipts without your credentials.
|
||
<span class="muted">Artifacts &gt; adjectives.</span>
|
||
</p>
|
||
|
||
<section id="stepper" class="homeStepper" hidden>
|
||
<h2>How verification works</h2>
|
||
<p class="sub2">Black/white: what the receipt proves vs what it doesn’t.</p>
|
||
|
||
<ol class="steps">
|
||
<li class="step">
|
||
<div class="step__n">1</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Bind source ↔ output</div>
|
||
<div class="step__d">Hash the exact source bytes and the exact output bytes.</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">2</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Publish a trace receipt</div>
|
||
<div class="step__d">A public page that links the hashes, time, and versioning.</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">3</div>
|
||
<div class="step__b">
|
||
<div class="step__t">No‑login share surface</div>
|
||
<div class="step__d">Stable URLs keyed by a single <code>shareId</code> (trace, dossier, pack, source).</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">4</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Optional: offline triage bundles</div>
|
||
<div class="step__d">Lightweight/standard/full bundles for constrained environments.</div>
|
||
</div>
|
||
</li>
|
||
</ol>
|
||
|
||
<div class="homeLinks" aria-label="Live demo links">
|
||
<a class="homeLink" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer"
|
||
>Open a live trace receipt</a
|
||
>
|
||
<a class="homeLink" href="https://infrafabric.io/static/pack/6qRgcR01kw_qNo63Dbs_ob9n.md" target="_blank" rel="noreferrer"
|
||
>Open the corresponding pack</a
|
||
>
|
||
<a class="homeLink" href="https://infrafabric.io/static/hosted/review/trace-bundles/b6547c03/index.md" target="_blank" rel="noreferrer"
|
||
>Triage bundle selector (offline)</a
|
||
>
|
||
<a class="homeLink" href="https://infrafabric.io/static/hosted/iftrace.py" target="_blank" rel="noreferrer">Download `iftrace.py`</a>
|
||
<a
|
||
class="homeLink"
|
||
href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
|
||
target="_blank"
|
||
rel="noreferrer"
|
||
>IF.TTT paper (review pack)</a
|
||
>
|
||
</div>
|
||
|
||
<p class="note">
|
||
If it’s not verifiable, label it as a gap. Don’t endorse it.
|
||
<span class="muted">This is how you keep governance legible to outsiders.</span>
|
||
</p>
|
||
</section>
|
||
|
||
<div class="homeMeta" aria-label="Contact">
|
||
Danny Stocker <span class="bottombar__sep">·</span> <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</main>
|
||
|
||
<div class="bottombar" aria-label="Quick links">
|
||
<div class="wrap bottombar__inner">
|
||
<div class="bottombar__left">
|
||
<span class="bottombar__label">Sectors</span>
|
||
<a href="./verticals/public-sector/">Public Sector</a>
|
||
<a href="./verticals/enterprise/">Enterprise</a>
|
||
<a href="./verticals/research/">Research</a>
|
||
<a href="./verticals/professional-services/">Professional</a>
|
||
<span class="bottombar__sep">·</span>
|
||
<span class="bottombar__label">Industries</span>
|
||
<a href="./verticals/healthcare/">Healthcare</a>
|
||
<a href="./verticals/finance/">Financial</a>
|
||
<a href="./verticals/legal/">Legal</a>
|
||
</div>
|
||
<div class="bottombar__right">
|
||
<a href="./api/">Developers</a>
|
||
<span class="bottombar__sep">|</span>
|
||
<a href="./api/">API</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /verticals/ai/
|
||
- URL: https://infrafabric.io/verticals/ai/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/verticals/ai/
|
||
- Source: `ifttt/verticals/ai/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — AI Products</title>
|
||
<meta name="description" content="IF.TTT for AI product companies: provable provenance for outputs (“why did it say that?”) without giving third parties internal access." />
|
||
<link rel="stylesheet" href="../../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">AI product companies</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../">Verticals</a>
|
||
<a href="../../#how">How</a>
|
||
<a href="../../#verify">Verify</a>
|
||
<a href="../../governance/">Governance</a>
|
||
<a href="../../whitepaper/">Whitepaper</a>
|
||
<a href="../../about/">About</a>
|
||
<a href="../../api/">Developers</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">AI product reality</p>
|
||
<h1>“Why did it say that?” becomes a contract clause.</h1>
|
||
<p class="lede">
|
||
Enterprise buyers increasingly require provenance: what source material fed the output, what version produced it, and what can be
|
||
verified after the fact. IF.TTT turns that requirement into a repeatable receipt surface.
|
||
</p>
|
||
|
||
<div class="panel">
|
||
<h3>Third‑party pressure</h3>
|
||
<ul class="list">
|
||
<li>Enterprise buyers demand defensible provenance without joining your internal stack.</li>
|
||
<li>Incident responders demand integrity-bound artifacts for “what happened.”</li>
|
||
<li>GRC teams demand a black/white boundary between verified evidence and interpretation.</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="panel" style="margin-top: 12px">
|
||
<h3>What IF.TTT provides</h3>
|
||
<div class="bw">
|
||
<div class="bw__row">
|
||
<div class="bw__k">Receipts</div>
|
||
<div class="bw__v">Trace pages + stable no‑login URLs for outputs and sources.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Disputes</div>
|
||
<div class="bw__v">Offline bundles for verification after access or context changes.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Clarity</div>
|
||
<div class="bw__v">Proves integrity and publication; does not claim intent or correctness.</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Example receipt">
|
||
<div class="card">
|
||
<div class="card__media">
|
||
<img src="../../assets/red-team-doc-1024-559.jpg" alt="Dossier cover" loading="lazy" />
|
||
</div>
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">RECEIPTS</div>
|
||
<div class="badge">DISPUTE‑READY</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<div class="links">
|
||
<a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Example trace receipt</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">The output isn’t the product. The proof is.</div>
|
||
<div class="muted">
|
||
<a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
|
||
<a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<div class="bottombar" aria-label="Quick links">
|
||
<div class="wrap bottombar__inner">
|
||
<div class="bottombar__left">
|
||
<span class="bottombar__label">Sectors</span>
|
||
<a href="../public-sector/">Public Sector</a>
|
||
<a href="../enterprise/">Enterprise</a>
|
||
<a href="../research/">Research</a>
|
||
<a href="../professional-services/">Professional</a>
|
||
<span class="bottombar__sep">·</span>
|
||
<span class="bottombar__label">Industries</span>
|
||
<a href="../healthcare/">Healthcare</a>
|
||
<a href="../finance/">Financial</a>
|
||
<a href="../legal/">Legal</a>
|
||
</div>
|
||
<div class="bottombar__right">
|
||
<a href="../../api/">Developers</a>
|
||
<span class="bottombar__sep">|</span>
|
||
<a href="../../api/">API</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /verticals/enterprise/
|
||
- URL: https://infrafabric.io/verticals/enterprise/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/verticals/enterprise/
|
||
- Source: `ifttt/verticals/enterprise/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — Enterprise</title>
|
||
<meta name="description" content="IF.TTT for enterprises: third-party verifiable receipts for audits, vendor reviews, and internal governance without credential sprawl." />
|
||
<link rel="stylesheet" href="../../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">Enterprise</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../">Verticals</a>
|
||
<a href="../../#how">How</a>
|
||
<a href="../../#verify">Verify</a>
|
||
<a href="../../governance/">Governance</a>
|
||
<a href="../../whitepaper/">Whitepaper</a>
|
||
<a href="../../about/">About</a>
|
||
<a href="../../api/">Developers</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">Enterprise reality</p>
|
||
<h1>Audits are a throughput problem.</h1>
|
||
<p class="lede">
|
||
Enterprise trust breaks when proof requires access: screenshots, ticket exports, and “trust me” Slack threads. IF.TTT replaces access
|
||
requirements with receipts—so verification is externalizable.
|
||
</p>
|
||
|
||
<div class="panel">
|
||
<h3>Third‑party pressure</h3>
|
||
<ul class="list">
|
||
<li>Auditors and customers ask the same question: “prove it was true at the time.”</li>
|
||
<li>Procurement needs evidence without granting broad credentials.</li>
|
||
<li>Executives need a narrative; security needs reproducible artifacts.</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="panel" style="margin-top: 12px">
|
||
<h3>What IF.TTT provides</h3>
|
||
<div class="bw">
|
||
<div class="bw__row">
|
||
<div class="bw__k">Receipt‑first</div>
|
||
<div class="bw__v">Integrity binding: <code>source_sha256</code> ↔ <code>output_sha256</code>.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">No‑login share</div>
|
||
<div class="bw__v">Public receipt surface for reviewers (with sandbox fallback paths).</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Offline option</div>
|
||
<div class="bw__v">Triage bundles for future disputes and restricted review.</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Example receipt links">
|
||
<div class="card">
|
||
<div class="card__media">
|
||
<img src="../../assets/red-team-doc-1024-559.jpg" alt="Dossier cover" loading="lazy" />
|
||
</div>
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">VERIFIABLE</div>
|
||
<div class="badge">BORING</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<div class="links">
|
||
<a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Example trace receipt</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
|
||
</a>
|
||
<a class="linkrow" href="https://infrafabric.io/static/pack/6qRgcR01kw_qNo63Dbs_ob9n.md" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Example pack (Markdown)</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/pack/6qRgcR01kw_qNo63Dbs_ob9n.md</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section section--alt">
|
||
<div class="wrap">
|
||
<h2>One sentence you can forward</h2>
|
||
<p class="sub">For stakeholder alignment without overclaiming.</p>
|
||
<div class="panel">
|
||
<p class="sub2">
|
||
IF.TTT supports audits by producing externally verifiable receipts—so reviewers don’t need your internal credentials to verify integrity.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">Make verification cheap. Keep access expensive.</div>
|
||
<div class="muted">
|
||
<a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
|
||
<a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<div class="bottombar" aria-label="Quick links">
|
||
<div class="wrap bottombar__inner">
|
||
<div class="bottombar__left">
|
||
<span class="bottombar__label">Sectors</span>
|
||
<a href="../public-sector/">Public Sector</a>
|
||
<a href="../enterprise/">Enterprise</a>
|
||
<a href="../research/">Research</a>
|
||
<a href="../professional-services/">Professional</a>
|
||
<span class="bottombar__sep">·</span>
|
||
<span class="bottombar__label">Industries</span>
|
||
<a href="../healthcare/">Healthcare</a>
|
||
<a href="../finance/">Financial</a>
|
||
<a href="../legal/">Legal</a>
|
||
</div>
|
||
<div class="bottombar__right">
|
||
<a href="../../api/">Developers</a>
|
||
<span class="bottombar__sep">|</span>
|
||
<a href="../../api/">API</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /verticals/finance/
|
||
- URL: https://infrafabric.io/verticals/finance/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/verticals/finance/
|
||
- Source: `ifttt/verticals/finance/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — Finance</title>
|
||
<meta name="description" content="IF.TTT for fintech and regulated finance: prove provenance, non-repudiation, and dispute-ready receipts for auditors and regulators." />
|
||
<link rel="stylesheet" href="../../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">Fintech / regulated finance</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../">Verticals</a>
|
||
<a href="../../#trust">Trust</a>
|
||
<a href="../../#verify">Verify</a>
|
||
<a href="../../governance/">Governance</a>
|
||
<a href="../../whitepaper/">Whitepaper</a>
|
||
<a href="../../about/">About</a>
|
||
<a href="../../api/">Developers</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">Finance reality</p>
|
||
<h1>Regulators don’t buy narratives. They buy receipts.</h1>
|
||
<p class="lede">
|
||
In regulated finance, the first question after an incident is not “what did the model mean?” It’s “show me the evidence chain: inputs,
|
||
outputs, timestamps, and who approved what.”
|
||
</p>
|
||
|
||
<div class="panel">
|
||
<h3>Third‑party pressure</h3>
|
||
<ul class="list">
|
||
<li>Model risk / validation teams need reproducibility.</li>
|
||
<li>Internal audit needs non‑repudiation and time‑scoped proof.</li>
|
||
<li>Regulators need chain‑of‑custody that survives disputes.</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="panel" style="margin-top: 12px">
|
||
<h3>What IF.TTT provides</h3>
|
||
<div class="bw">
|
||
<div class="bw__row">
|
||
<div class="bw__k">Receipt</div>
|
||
<div class="bw__v">A public trace page binding <code>source_sha256</code> ↔ <code>output_sha256</code>.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Dispute</div>
|
||
<div class="bw__v">Offline bundles for later verification without relying on internal access.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Clarity</div>
|
||
<div class="bw__v">Black/white separation of what’s verified vs what is interpretation.</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Receipt-first process">
|
||
<div class="card">
|
||
<div class="card__media">
|
||
<img src="../../assets/red-team-stamp-600.png" alt="EYES ONLY // DAVE stamp" loading="lazy" />
|
||
</div>
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">PROCESS</div>
|
||
<div class="badge">RECEIPT‑FIRST</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<ol class="steps">
|
||
<li class="step">
|
||
<div class="step__n">1</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Hash the source</div>
|
||
<div class="step__d">Compute <code>source_sha256</code> of the exact bytes.</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">2</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Hash the output</div>
|
||
<div class="step__d">Compute <code>output_sha256</code> of what is published.</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">3</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Publish the trace</div>
|
||
<div class="step__d">Receipt links hashes + trace id + version.</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">4</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Share without login</div>
|
||
<div class="step__d">Stable URLs keyed by <code>shareId</code>.</div>
|
||
</div>
|
||
</li>
|
||
</ol>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section section--alt">
|
||
<div class="wrap">
|
||
<h2>Artifacts you can hand to third parties</h2>
|
||
<p class="sub">This is the point: reviewers shouldn’t need your VPN.</p>
|
||
<pre class="code"><code>Trace receipt: https://infrafabric.io/static/trace/&lt;shareId&gt;
|
||
Output (rendered): https://infrafabric.io/static/dossier/&lt;shareId&gt;
|
||
Output (raw): https://infrafabric.io/static/dossier/&lt;shareId&gt;/download
|
||
Offline bundles: https://infrafabric.io/static/hosted/review/trace-bundles/&lt;id&gt;/index.html</code></pre>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section">
|
||
<div class="wrap">
|
||
<h2>Live example</h2>
|
||
<div class="links">
|
||
<a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Example trace receipt</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">Finance isn’t special. The auditors are just earlier.</div>
|
||
<div class="muted">
|
||
<a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
|
||
<a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<div class="bottombar" aria-label="Quick links">
|
||
<div class="wrap bottombar__inner">
|
||
<div class="bottombar__left">
|
||
<span class="bottombar__label">Sectors</span>
|
||
<a href="../public-sector/">Public Sector</a>
|
||
<a href="../enterprise/">Enterprise</a>
|
||
<a href="../research/">Research</a>
|
||
<a href="../professional-services/">Professional</a>
|
||
<span class="bottombar__sep">·</span>
|
||
<span class="bottombar__label">Industries</span>
|
||
<a href="../healthcare/">Healthcare</a>
|
||
<a href="../finance/">Financial</a>
|
||
<a href="../legal/">Legal</a>
|
||
</div>
|
||
<div class="bottombar__right">
|
||
<a href="../../api/">Developers</a>
|
||
<span class="bottombar__sep">|</span>
|
||
<a href="../../api/">API</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /verticals/government/
|
||
- URL: https://infrafabric.io/verticals/government/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/verticals/government/
|
||
- Source: `ifttt/verticals/government/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — Government</title>
|
||
<meta
|
||
name="description"
|
||
content="IF.TTT for government and defense contractors: offline verification bundles and unambiguous chain-of-custody for assessors and supply chain reviews."
|
||
/>
|
||
<link rel="stylesheet" href="../../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">Government / defense</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../">Verticals</a>
|
||
<a href="../../#trust">Trust</a>
|
||
<a href="../../#verify">Verify</a>
|
||
<a href="../../governance/">Governance</a>
|
||
<a href="../../whitepaper/">Whitepaper</a>
|
||
<a href="../../about/">About</a>
|
||
<a href="../../api/">Developers</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">Government reality</p>
|
||
<h1>Assurance is an offline problem.</h1>
|
||
<p class="lede">
|
||
In restricted environments, the “can you verify it?” question must be answered without assuming network access, SaaS consoles, or vendor
|
||
portals. IF.TTT treats offline verification as a first‑class requirement.
|
||
</p>
|
||
|
||
<div class="panel">
|
||
<h3>Third‑party pressure</h3>
|
||
<ul class="list">
|
||
<li>Assessors demand chain‑of‑custody and unambiguous provenance.</li>
|
||
<li>Procurement wants proof that survives vendor handoffs.</li>
|
||
<li>Security teams need evidence that is portable across networks and time.</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="panel" style="margin-top: 12px">
|
||
<h3>What IF.TTT provides</h3>
|
||
<div class="bw">
|
||
<div class="bw__row">
|
||
<div class="bw__k">Offline bundles</div>
|
||
<div class="bw__v">Triage bundles (lightweight/standard/full) with expected hashes for trustless verification.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Receipt surface</div>
|
||
<div class="bw__v">Stable no‑login URLs for trace + output + source.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Black/white</div>
|
||
<div class="bw__v">Clear statement of what integrity receipts prove—and what they don’t.</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Triage bundle selector">
|
||
<div class="card">
|
||
<div class="card__media">
|
||
<img src="../../assets/red-team-doc-1024-559.jpg" alt="Dossier cover" loading="lazy" />
|
||
</div>
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">OFFLINE</div>
|
||
<div class="badge">TRIAGE BUNDLES</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<div class="links">
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/review/trace-bundles/d70ed99a/index.html" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Triage selector (HTML)</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/review/trace-bundles/d70ed99a/index.html</span>
|
||
</a>
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/iftrace.html" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Verifier (HTML)</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/iftrace.html</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section section--alt">
|
||
<div class="wrap">
|
||
<h2>What you can hand to an assessor</h2>
|
||
<p class="sub">No accounts required. No internal consoles required.</p>
|
||
<pre class="code"><code>Trace receipt: https://infrafabric.io/static/trace/&lt;shareId&gt;
|
||
Bundle selector: https://infrafabric.io/static/hosted/review/trace-bundles/&lt;id&gt;/index.html
|
||
Verifier: https://infrafabric.io/static/hosted/iftrace.py</code></pre>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section">
|
||
<div class="wrap">
|
||
<h2>Live example</h2>
|
||
<div class="links">
|
||
<a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Example trace receipt</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">If it can’t be verified offline, it’s not a control.</div>
|
||
<div class="muted">
|
||
<a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
|
||
<a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<div class="bottombar" aria-label="Quick links">
|
||
<div class="wrap bottombar__inner">
|
||
<div class="bottombar__left">
|
||
<span class="bottombar__label">Sectors</span>
|
||
<a href="../public-sector/">Public Sector</a>
|
||
<a href="../enterprise/">Enterprise</a>
|
||
<a href="../research/">Research</a>
|
||
<a href="../professional-services/">Professional</a>
|
||
<span class="bottombar__sep">·</span>
|
||
<span class="bottombar__label">Industries</span>
|
||
<a href="../healthcare/">Healthcare</a>
|
||
<a href="../finance/">Financial</a>
|
||
<a href="../legal/">Legal</a>
|
||
</div>
|
||
<div class="bottombar__right">
|
||
<a href="../../api/">Developers</a>
|
||
<span class="bottombar__sep">|</span>
|
||
<a href="../../api/">API</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /verticals/healthcare/
|
||
- URL: https://infrafabric.io/verticals/healthcare/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/verticals/healthcare/
|
||
- Source: `ifttt/verticals/healthcare/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — Healthcare</title>
|
||
<meta
|
||
name="description"
|
||
content="IF.TTT for healthcare: clear boundaries on what is verified vs inferred, and portable evidence for audits and incident review."
|
||
/>
|
||
<link rel="stylesheet" href="../../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">Healthcare</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../">Verticals</a>
|
||
<a href="../../#trust">Trust</a>
|
||
<a href="../../#verify">Verify</a>
|
||
<a href="../../governance/">Governance</a>
|
||
<a href="../../whitepaper/">Whitepaper</a>
|
||
<a href="../../about/">About</a>
|
||
<a href="../../api/">Developers</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">Healthcare reality</p>
|
||
<h1>Clarity beats confidence.</h1>
|
||
<p class="lede">
|
||
Healthcare environments punish ambiguity. IF.TTT makes “what we can prove” explicit, and forces everything else to be labeled as
|
||
interpretation or review-required.
|
||
</p>
|
||
|
||
<div class="panel">
|
||
<h3>Third‑party pressure</h3>
|
||
<ul class="list">
|
||
<li>Compliance wants evidence that is bounded and reviewable.</li>
|
||
<li>Incident reviewers want provenance for outputs and decisions.</li>
|
||
<li>Vendors and partners want proof without access to your internal tooling.</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="panel" style="margin-top: 12px">
|
||
<h3>What IF.TTT provides</h3>
|
||
<div class="bw">
|
||
<div class="bw__row">
|
||
<div class="bw__k">Verified</div>
|
||
<div class="bw__v">Integrity binding (hashes), receipts, optional signatures.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Not verified</div>
|
||
<div class="bw__v">Clinical intent, interpretation, or correctness of conclusions.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Outcome</div>
|
||
<div class="bw__v">Evidence becomes legible to outsiders without pretending it is “the decision.”</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Receipt-first process">
|
||
<div class="card">
|
||
<div class="card__media">
|
||
<img src="../../assets/red-team-stamp-600.png" alt="EYES ONLY // DAVE stamp" loading="lazy" />
|
||
</div>
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">BLACK/WHITE</div>
|
||
<div class="badge">BOUNDARIES</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<ol class="steps">
|
||
<li class="step">
|
||
<div class="step__n">1</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Hash artifacts</div>
|
||
<div class="step__d">Source and output bytes get stable hashes.</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">2</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Publish receipts</div>
|
||
<div class="step__d">Trace page shows what can be verified.</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">3</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Export bundles (optional)</div>
|
||
<div class="step__d">For constrained review environments.</div>
|
||
</div>
|
||
</li>
|
||
</ol>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">Healthcare needs boundaries more than optimism.</div>
|
||
<div class="muted">
|
||
<a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
|
||
<a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<div class="bottombar" aria-label="Quick links">
|
||
<div class="wrap bottombar__inner">
|
||
<div class="bottombar__left">
|
||
<span class="bottombar__label">Sectors</span>
|
||
<a href="../public-sector/">Public Sector</a>
|
||
<a href="../enterprise/">Enterprise</a>
|
||
<a href="../research/">Research</a>
|
||
<a href="../professional-services/">Professional</a>
|
||
<span class="bottombar__sep">·</span>
|
||
<span class="bottombar__label">Industries</span>
|
||
<a href="../healthcare/">Healthcare</a>
|
||
<a href="../finance/">Financial</a>
|
||
<a href="../legal/">Legal</a>
|
||
</div>
|
||
<div class="bottombar__right">
|
||
<a href="../../api/">Developers</a>
|
||
<span class="bottombar__sep">|</span>
|
||
<a href="../../api/">API</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /verticals/
|
||
- URL: https://infrafabric.io/verticals/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/verticals/
|
||
- Source: `ifttt/verticals/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — Verticals</title>
|
||
<meta name="description" content="Vertical fit overview for IF.TTT: third-party trust pressure mapped to receipts, bundles, and verification." />
|
||
<link rel="stylesheet" href="../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">Vertical fit</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../#how">How</a>
|
||
<a href="../#trust">Trust</a>
|
||
<a href="../#verify">Verify</a>
|
||
<a href="../governance/">Governance</a>
|
||
<a href="../whitepaper/">Whitepaper</a>
|
||
<a href="../about/">About</a>
|
||
<a href="../api/">Developers</a>
|
||
<a class="lang" href="../fr/" aria-label="French">FR</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">Same mechanism, different pressure</p>
|
||
<h1>Two axes: who is buying, what is at stake.</h1>
|
||
<p class="lede">
|
||
IF.TTT doesn’t “solve compliance.” It solves the universal problem underneath compliance: third parties demanding proof without joining your
|
||
internal world. The receipts stay the same; the incentives and failure modes change.
|
||
</p>
|
||
<div class="cta">
|
||
<a class="btn btn--primary" href="../#verify">Try a live trace</a>
|
||
<a class="btn" href="../api/">Developer surface</a>
|
||
</div>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Receipt-first sequence">
|
||
<div class="card">
|
||
<div class="card__media">
|
||
<img src="../assets/red-team-doc-1024-559.jpg" alt="Red Team dossier cover" loading="lazy" />
|
||
</div>
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">RECEIPT‑FIRST</div>
|
||
<div class="badge">NO‑LOGIN</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<ol class="steps">
|
||
<li class="step">
|
||
<div class="step__n">1</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Hash the source</div>
|
||
<div class="step__d">Compute <code>source_sha256</code>.</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">2</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Hash the output</div>
|
||
<div class="step__d">Compute <code>output_sha256</code>.</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">3</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Publish the trace</div>
|
||
<div class="step__d">A receipt page binds source ↔ output.</div>
|
||
</div>
|
||
</li>
|
||
</ol>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section section--alt">
|
||
<div class="wrap">
|
||
<h2>Browse by sector</h2>
|
||
<p class="sub">Who the buyer is. The same receipts, different pressure.</p>
|
||
|
||
<div class="cards">
|
||
<article class="vcard">
|
||
<h3>Public Sector</h3>
|
||
<p class="vcard__v">Procurement cycles, oversight, offline verification.</p>
|
||
<a class="vcard__more" href="./public-sector/">Public Sector →</a>
|
||
</article>
|
||
<article class="vcard">
|
||
<h3>Enterprise</h3>
|
||
<p class="vcard__v">Audits as throughput; evidence without credential sprawl.</p>
|
||
<a class="vcard__more" href="./enterprise/">Enterprise →</a>
|
||
</article>
|
||
<article class="vcard">
|
||
<h3>Research</h3>
|
||
<p class="vcard__v">Provenance, reproducibility, and external reviewers.</p>
|
||
<a class="vcard__more" href="./research/">Research →</a>
|
||
</article>
|
||
<article class="vcard">
|
||
<h3>Professional Services</h3>
|
||
<p class="vcard__v">Client handoffs, disputes, and custody that holds up later.</p>
|
||
<a class="vcard__more" href="./professional-services/">Professional Services →</a>
|
||
</article>
|
||
</div>
|
||
|
||
<h2 style="margin-top: 28px">Browse by industry</h2>
|
||
<p class="sub">What domain the risk lives in: regulation, data, and dispute pressure.</p>
|
||
|
||
<div class="cards">
|
||
<article class="vcard">
|
||
<h3>Healthcare</h3>
|
||
<p class="vcard__v">Audit trails, privacy boundaries, dispute‑ready artifacts.</p>
|
||
<a class="vcard__more" href="./healthcare/">Healthcare →</a>
|
||
</article>
|
||
<article class="vcard">
|
||
<h3>Financial Services</h3>
|
||
<p class="vcard__v">Model risk, non‑repudiation, evidence for regulators.</p>
|
||
<a class="vcard__more" href="./finance/">Financial →</a>
|
||
</article>
|
||
<article class="vcard">
|
||
<h3>Legal</h3>
|
||
<p class="vcard__v">Chain‑of‑custody for drafts, evidence, and decisions.</p>
|
||
<a class="vcard__more" href="./legal/">Legal →</a>
|
||
</article>
|
||
</div>
|
||
|
||
<h2 style="margin-top: 28px">More pressure profiles</h2>
|
||
<p class="sub">Common governance failure modes that appear across sectors and industries.</p>
|
||
|
||
<div class="cards">
|
||
<article class="vcard">
|
||
<h3>B2B SaaS (SOC 2 / ISO)</h3>
|
||
<p class="vcard__v">Auditors, procurement, “prove it existed at the time.”</p>
|
||
<a class="vcard__more" href="./saas/">B2B SaaS →</a>
|
||
</article>
|
||
<article class="vcard">
|
||
<h3>SecOps / SOC</h3>
|
||
<p class="vcard__v">Bind summaries to evidence; keep custody intact.</p>
|
||
<a class="vcard__more" href="./secops/">SecOps →</a>
|
||
</article>
|
||
<article class="vcard">
|
||
<h3>AI Product Companies</h3>
|
||
<p class="vcard__v">Provable provenance for outputs: “why did it say that?”</p>
|
||
<a class="vcard__more" href="./ai/">AI products →</a>
|
||
</article>
|
||
<article class="vcard">
|
||
<h3>Industrial / Supply Chain</h3>
|
||
<p class="vcard__v">Traceability that survives vendor and contractor handoffs.</p>
|
||
<a class="vcard__more" href="./supply-chain/">Supply chain →</a>
|
||
</article>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">InfraFabric • IF.TTT receipts are designed to be legible to the governed.</div>
|
||
<div class="muted">
|
||
<a href="../">IF.TTT</a> · <a href="../governance/">Governance</a> · <a href="../api/">Developers</a> ·
|
||
<a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<div class="bottombar" aria-label="Quick links">
|
||
<div class="wrap bottombar__inner">
|
||
<div class="bottombar__left">
|
||
<span class="bottombar__label">Sectors</span>
|
||
<a href="./public-sector/">Public Sector</a>
|
||
<a href="./enterprise/">Enterprise</a>
|
||
<a href="./research/">Research</a>
|
||
<a href="./professional-services/">Professional</a>
|
||
<span class="bottombar__sep">·</span>
|
||
<span class="bottombar__label">Industries</span>
|
||
<a href="./healthcare/">Healthcare</a>
|
||
<a href="./finance/">Financial</a>
|
||
<a href="./legal/">Legal</a>
|
||
</div>
|
||
<div class="bottombar__right">
|
||
<a href="../api/">Developers</a>
|
||
<span class="bottombar__sep">|</span>
|
||
<a href="../api/">API</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /verticals/legal/
|
||
- URL: https://infrafabric.io/verticals/legal/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/verticals/legal/
|
||
- Source: `ifttt/verticals/legal/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — Legal</title>
|
||
<meta name="description" content="IF.TTT for legal workflows: chain-of-custody for drafts, evidence, and decisions. Receipts, not recollections." />
|
||
<link rel="stylesheet" href="../../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">Legal</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../">Verticals</a>
|
||
<a href="../../#trust">Trust</a>
|
||
<a href="../../#verify">Verify</a>
|
||
<a href="../../governance/">Governance</a>
|
||
<a href="../../whitepaper/">Whitepaper</a>
|
||
<a href="../../about/">About</a>
|
||
<a href="../../api/">Developers</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">Legal reality</p>
|
||
<h1>Courts don’t accept “trust me.” They accept provenance.</h1>
|
||
<p class="lede">
|
||
Legal and compliance teams live in the difference between “we believe this happened” and “we can prove this happened.” IF.TTT is built to
|
||
make that proof portable.
|
||
</p>
|
||
|
||
<div class="panel">
|
||
<h3>Third‑party pressure</h3>
|
||
<ul class="list">
|
||
<li>Disputes demand reproducibility: the exact input and the exact output.</li>
|
||
<li>Evidence must be time‑scoped: “what did we know, when did we know it?”</li>
|
||
<li>Chain‑of‑custody must survive handoffs (vendor → customer → counsel → auditor).</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="panel" style="margin-top: 12px">
|
||
<h3>What IF.TTT provides</h3>
|
||
<div class="bw">
|
||
<div class="bw__row">
|
||
<div class="bw__k">Integrity</div>
|
||
<div class="bw__v">Hash receipts bind the published bytes to what was reviewed.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Portability</div>
|
||
<div class="bw__v">No‑login links and offline bundles for external review.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Clarity</div>
|
||
<div class="bw__v">Explicit “proves / does not prove” framing reduces ambiguity.</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Receipt-first process">
|
||
<div class="card">
|
||
<div class="card__media">
|
||
<img src="../../assets/red-team-doc-1024-559.jpg" alt="Dossier cover" loading="lazy" />
|
||
</div>
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">EVIDENCE</div>
|
||
<div class="badge">CHAIN‑OF‑CUSTODY</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<ol class="steps">
|
||
<li class="step">
|
||
<div class="step__n">1</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Define the artifact</div>
|
||
<div class="step__d">Identify the exact bytes to be relied upon.</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">2</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Hash it</div>
|
||
<div class="step__d">Publish <code>sha256</code> as the integrity baseline.</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">3</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Issue the receipt</div>
|
||
<div class="step__d">Trace page binds source ↔ output with a trace id.</div>
|
||
</div>
|
||
</li>
|
||
</ol>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section section--alt">
|
||
<div class="wrap">
|
||
<h2>Artifacts that make disputes less expensive</h2>
|
||
<p class="sub">You can hand these to an external reviewer without shipping your internal systems.</p>
|
||
<pre class="code"><code>Trace receipt: https://infrafabric.io/static/trace/&lt;shareId&gt;
|
||
Output (raw): https://infrafabric.io/static/dossier/&lt;shareId&gt;/download
|
||
Review pack: https://infrafabric.io/static/review/&lt;shareId&gt;
|
||
Offline bundles: https://infrafabric.io/static/hosted/review/trace-bundles/&lt;id&gt;/index.html</code></pre>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section">
|
||
<div class="wrap">
|
||
<h2>Live example</h2>
|
||
<div class="links">
|
||
<a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Example trace receipt</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">Legal is just governance with deadlines.</div>
|
||
<div class="muted">
|
||
<a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
|
||
<a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<div class="bottombar" aria-label="Quick links">
|
||
<div class="wrap bottombar__inner">
|
||
<div class="bottombar__left">
|
||
<span class="bottombar__label">Sectors</span>
|
||
<a href="../public-sector/">Public Sector</a>
|
||
<a href="../enterprise/">Enterprise</a>
|
||
<a href="../research/">Research</a>
|
||
<a href="../professional-services/">Professional</a>
|
||
<span class="bottombar__sep">·</span>
|
||
<span class="bottombar__label">Industries</span>
|
||
<a href="../healthcare/">Healthcare</a>
|
||
<a href="../finance/">Financial</a>
|
||
<a href="../legal/">Legal</a>
|
||
</div>
|
||
<div class="bottombar__right">
|
||
<a href="../../api/">Developers</a>
|
||
<span class="bottombar__sep">|</span>
|
||
<a href="../../api/">API</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /verticals/professional-services/
|
||
- URL: https://infrafabric.io/verticals/professional-services/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/verticals/professional-services/
|
||
- Source: `ifttt/verticals/professional-services/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — Professional Services</title>
|
||
<meta
|
||
name="description"
|
||
content="IF.TTT for professional services: receipts and chain-of-custody artifacts that hold up across clients, engagements, and disputes."
|
||
/>
|
||
<link rel="stylesheet" href="../../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">Professional services</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../">Verticals</a>
|
||
<a href="../../#trust">Trust</a>
|
||
<a href="../../#verify">Verify</a>
|
||
<a href="../../governance/">Governance</a>
|
||
<a href="../../whitepaper/">Whitepaper</a>
|
||
<a href="../../about/">About</a>
|
||
<a href="../../api/">Developers</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">Services reality</p>
|
||
<h1>The deliverable is the receipt.</h1>
|
||
<p class="lede">
|
||
In professional services, the artifact you hand over becomes evidence: audits, disputes, expert reports, procurement packs. IF.TTT makes
|
||
the handoff verifiable without making you a credential broker.
|
||
</p>
|
||
|
||
<div class="panel">
|
||
<h3>Third‑party pressure</h3>
|
||
<ul class="list">
|
||
<li>Clients want proof; opposing counsel wants provenance.</li>
|
||
<li>Auditors need artifacts they can verify without your internal access.</li>
|
||
<li>Engagements outlive inboxes; the evidence must remain stable.</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="panel" style="margin-top: 12px">
|
||
<h3>What IF.TTT provides</h3>
|
||
<div class="bw">
|
||
<div class="bw__row">
|
||
<div class="bw__k">Chain‑of‑custody</div>
|
||
<div class="bw__v">Trace receipt binds source ↔ output, plus IDs and timestamps.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Portable proofs</div>
|
||
<div class="bw__v">Bundles can be archived with the case file and re‑verified later.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Clarity</div>
|
||
<div class="bw__v">What was verified is shown; interpretation is labeled as interpretation.</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Example receipt links">
|
||
<div class="card">
|
||
<div class="card__media">
|
||
<img src="../../assets/red-team-doc-1024-559.jpg" alt="Dossier cover" loading="lazy" />
|
||
</div>
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">EXPORTABLE</div>
|
||
<div class="badge">DISPUTE‑READY</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<div class="links">
|
||
<a class="linkrow" href="https://infrafabric.io/static/pack/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Example pack (HTML)</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/pack/6qRgcR01kw_qNo63Dbs_ob9n</span>
|
||
</a>
|
||
<a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Example trace receipt</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section section--alt">
|
||
<div class="wrap">
|
||
<h2>Operational trap to avoid</h2>
|
||
<p class="sub">Don’t turn verification into credential distribution.</p>
|
||
<div class="grid2">
|
||
<div class="panel">
|
||
<h3>Bad</h3>
|
||
<p class="sub2">“Log in to our system and we’ll show you.”</p>
|
||
</div>
|
||
<div class="panel">
|
||
<h3>Good</h3>
|
||
<p class="sub2">“Here is the artifact, here is the receipt, verify without us.”</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">If the reviewer needs your credentials, it’s not verifiable.</div>
|
||
<div class="muted">
|
||
<a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
|
||
<a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<div class="bottombar" aria-label="Quick links">
|
||
<div class="wrap bottombar__inner">
|
||
<div class="bottombar__left">
|
||
<span class="bottombar__label">Sectors</span>
|
||
<a href="../public-sector/">Public Sector</a>
|
||
<a href="../enterprise/">Enterprise</a>
|
||
<a href="../research/">Research</a>
|
||
<a href="../professional-services/">Professional</a>
|
||
<span class="bottombar__sep">·</span>
|
||
<span class="bottombar__label">Industries</span>
|
||
<a href="../healthcare/">Healthcare</a>
|
||
<a href="../finance/">Financial</a>
|
||
<a href="../legal/">Legal</a>
|
||
</div>
|
||
<div class="bottombar__right">
|
||
<a href="../../api/">Developers</a>
|
||
<span class="bottombar__sep">|</span>
|
||
<a href="../../api/">API</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /verticals/public-sector/
|
||
- URL: https://infrafabric.io/verticals/public-sector/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/verticals/public-sector/
|
||
- Source: `ifttt/verticals/public-sector/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — Public Sector</title>
|
||
<meta
|
||
name="description"
|
||
content="IF.TTT for the public sector: public receipts, offline verification bundles, and unambiguous chain-of-custody for external reviewers."
|
||
/>
|
||
<link rel="stylesheet" href="../../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">Public sector</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../">Verticals</a>
|
||
<a href="../../#trust">Trust</a>
|
||
<a href="../../#verify">Verify</a>
|
||
<a href="../../governance/">Governance</a>
|
||
<a href="../../whitepaper/">Whitepaper</a>
|
||
<a href="../../about/">About</a>
|
||
<a href="../../api/">Developers</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">Public sector reality</p>
|
||
<h1>Proof must survive procurement.</h1>
|
||
<p class="lede">
|
||
Public accountability is a third‑party problem: reviewers need proof without getting access to your internal systems. IF.TTT turns “trust
|
||
us” into receipts that a stranger can verify.
|
||
</p>
|
||
|
||
<div class="panel">
|
||
<h3>Third‑party pressure</h3>
|
||
<ul class="list">
|
||
<li>Assessors need chain‑of‑custody that survives vendor handoffs.</li>
|
||
<li>Procurement and oversight bodies require documentation that outlives staff turnover.</li>
|
||
<li>Some environments must support offline verification by design.</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="panel" style="margin-top: 12px">
|
||
<h3>What IF.TTT provides</h3>
|
||
<div class="bw">
|
||
<div class="bw__row">
|
||
<div class="bw__k">Receipt surface</div>
|
||
<div class="bw__v">Stable, no‑login URLs for trace + output + source.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Offline bundles</div>
|
||
<div class="bw__v">Triage bundles (lightweight/standard/full) with expected hashes.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Black/white</div>
|
||
<div class="bw__v">States what is verified (integrity) and what is not (interpretation).</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Example receipt links">
|
||
<div class="card">
|
||
<div class="card__media">
|
||
<img src="../../assets/red-team-doc-1024-559.jpg" alt="Dossier cover" loading="lazy" />
|
||
</div>
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">OFFLINE</div>
|
||
<div class="badge">RECEIPTS</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<div class="links">
|
||
<a
|
||
class="linkrow"
|
||
href="https://infrafabric.io/static/hosted/review/trace-bundles/b6547c03/index.html"
|
||
target="_blank"
|
||
rel="noreferrer"
|
||
>
|
||
<span class="linkrow__t">Triage selector (HTML)</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/review/trace-bundles/b6547c03/index.html</span>
|
||
</a>
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/iftrace.html" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Verifier (HTML)</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/iftrace.html</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section section--alt">
|
||
<div class="wrap">
|
||
<h2>What you can hand to a reviewer</h2>
|
||
<p class="sub">No accounts required. No internal consoles required.</p>
|
||
<pre class="code"><code>Trace receipt: https://infrafabric.io/static/trace/&lt;shareId&gt;
|
||
Pack (HTML): https://infrafabric.io/static/pack/&lt;shareId&gt;
|
||
Bundle selector: https://infrafabric.io/static/hosted/review/trace-bundles/&lt;id&gt;/index.html</code></pre>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section">
|
||
<div class="wrap">
|
||
<h2>Live example</h2>
|
||
<div class="links">
|
||
<a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Example trace receipt</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">Public verification is a product requirement.</div>
|
||
<div class="muted">
|
||
<a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
|
||
<a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<div class="bottombar" aria-label="Quick links">
|
||
<div class="wrap bottombar__inner">
|
||
<div class="bottombar__left">
|
||
<span class="bottombar__label">Sectors</span>
|
||
<a href="../public-sector/">Public Sector</a>
|
||
<a href="../enterprise/">Enterprise</a>
|
||
<a href="../research/">Research</a>
|
||
<a href="../professional-services/">Professional</a>
|
||
<span class="bottombar__sep">·</span>
|
||
<span class="bottombar__label">Industries</span>
|
||
<a href="../healthcare/">Healthcare</a>
|
||
<a href="../finance/">Financial</a>
|
||
<a href="../legal/">Legal</a>
|
||
</div>
|
||
<div class="bottombar__right">
|
||
<a href="../../api/">Developers</a>
|
||
<span class="bottombar__sep">|</span>
|
||
<a href="../../api/">API</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /verticals/research/
|
||
- URL: https://infrafabric.io/verticals/research/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/verticals/research/
|
||
- Source: `ifttt/verticals/research/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — Research</title>
|
||
<meta name="description" content="IF.TTT for research: provenance and reproducibility for reports, analyses, datasets, and AI outputs." />
|
||
<link rel="stylesheet" href="../../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">Research</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../">Verticals</a>
|
||
<a href="../../#how">How</a>
|
||
<a href="../../#verify">Verify</a>
|
||
<a href="../../governance/">Governance</a>
|
||
<a href="../../whitepaper/">Whitepaper</a>
|
||
<a href="../../about/">About</a>
|
||
<a href="../../api/">Developers</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">Research reality</p>
|
||
<h1>Reproducibility is governance.</h1>
|
||
<p class="lede">
|
||
Research already understands receipts: methods, datasets, citations. IF.TTT applies the same discipline to AI outputs and operational
|
||
decisions: publish what can be verified, label what can’t, and keep the bytes stable.
|
||
</p>
|
||
|
||
<div class="panel">
|
||
<h3>Third‑party pressure</h3>
|
||
<ul class="list">
|
||
<li>Peer review demands the ability to reproduce claims.</li>
|
||
<li>Funding/compliance bodies demand provenance for decisions and outputs.</li>
|
||
<li>Collaborators need proof that the artifact they received is the artifact you published.</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="panel" style="margin-top: 12px">
|
||
<h3>What IF.TTT provides</h3>
|
||
<div class="bw">
|
||
<div class="bw__row">
|
||
<div class="bw__k">Integrity</div>
|
||
<div class="bw__v">Hash receipts: same bytes, same hash, independent verification.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Clarity</div>
|
||
<div class="bw__v">Explicitly separates evidence (verified) from interpretation (not verified).</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Portability</div>
|
||
<div class="bw__v">Offline bundles for constrained or future review environments.</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Receipt-first process">
|
||
<div class="card">
|
||
<div class="card__media">
|
||
<img src="../../assets/red-team-stamp-600.png" alt="EYES ONLY // DAVE stamp" loading="lazy" />
|
||
</div>
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">PROCESS</div>
|
||
<div class="badge">PROVENANCE</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<ol class="steps">
|
||
<li class="step">
|
||
<div class="step__n">1</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Hash the source</div>
|
||
<div class="step__d">Dataset / paper / prompt pack → <code>source_sha256</code>.</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">2</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Hash the output</div>
|
||
<div class="step__d">The artifact you publish → <code>output_sha256</code>.</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">3</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Publish the trace</div>
|
||
<div class="step__d">Receipt binds source ↔ output, plus verification hooks.</div>
|
||
</div>
|
||
</li>
|
||
</ol>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section section--alt">
|
||
<div class="wrap">
|
||
<h2>Portable verification artifacts</h2>
|
||
<p class="sub">So reviewers can validate without trusting your infrastructure.</p>
|
||
<pre class="code"><code>Trace receipt: https://infrafabric.io/static/trace/&lt;shareId&gt;
|
||
Pack (raw): https://infrafabric.io/static/pack/&lt;shareId&gt;.md
|
||
Pack (HTML): https://infrafabric.io/static/pack/&lt;shareId&gt;
|
||
Offline bundles: https://infrafabric.io/static/hosted/review/trace-bundles/&lt;id&gt;/index.html</code></pre>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section">
|
||
<div class="wrap">
|
||
<h2>Live example</h2>
|
||
<div class="links">
|
||
<a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Example trace receipt</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">If it can’t be reproduced, it can’t be governed.</div>
|
||
<div class="muted">
|
||
<a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
|
||
<a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<div class="bottombar" aria-label="Quick links">
|
||
<div class="wrap bottombar__inner">
|
||
<div class="bottombar__left">
|
||
<span class="bottombar__label">Sectors</span>
|
||
<a href="../public-sector/">Public Sector</a>
|
||
<a href="../enterprise/">Enterprise</a>
|
||
<a href="../research/">Research</a>
|
||
<a href="../professional-services/">Professional</a>
|
||
<span class="bottombar__sep">·</span>
|
||
<span class="bottombar__label">Industries</span>
|
||
<a href="../healthcare/">Healthcare</a>
|
||
<a href="../finance/">Financial</a>
|
||
<a href="../legal/">Legal</a>
|
||
</div>
|
||
<div class="bottombar__right">
|
||
<a href="../../api/">Developers</a>
|
||
<span class="bottombar__sep">|</span>
|
||
<a href="../../api/">API</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /verticals/saas/
|
||
- URL: https://infrafabric.io/verticals/saas/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/verticals/saas/
|
||
- Source: `ifttt/verticals/saas/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — B2B SaaS</title>
|
||
<meta name="description" content="IF.TTT for B2B SaaS: auditor-ready receipts, no-login proof surfaces, and dispute-friendly bundles for SOC 2 / ISO programs." />
|
||
<link rel="stylesheet" href="../../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">B2B SaaS (SOC 2 / ISO)</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../">Verticals</a>
|
||
<a href="../../#trust">Trust</a>
|
||
<a href="../../#verify">Verify</a>
|
||
<a href="../../governance/">Governance</a>
|
||
<a href="../../whitepaper/">Whitepaper</a>
|
||
<a href="../../about/">About</a>
|
||
<a href="../../api/">Developers</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">SaaS reality</p>
|
||
<h1>Audits are evidence requests with a deadline.</h1>
|
||
<p class="lede">
|
||
In B2B SaaS, the friction isn’t the control design. It’s proving the control existed at the right time, in the right scope, without
|
||
granting auditors full internal access.
|
||
</p>
|
||
|
||
<div class="panel">
|
||
<h3>Third‑party pressure</h3>
|
||
<ul class="list">
|
||
<li>Auditors want integrity-bound artifacts (not screenshots in shared drives).</li>
|
||
<li>Enterprise procurement wants reproducible proof without bespoke portals.</li>
|
||
<li>Post‑incident reviewers want “what did it say?” tied to “what did it see?”</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="panel" style="margin-top: 12px">
|
||
<h3>What IF.TTT provides</h3>
|
||
<div class="bw">
|
||
<div class="bw__row">
|
||
<div class="bw__k">No‑login</div>
|
||
<div class="bw__v">Stable URLs for trace + output + source, keyed by <code>shareId</code>.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Dispute‑ready</div>
|
||
<div class="bw__v">Offline bundles with expected hashes for later verification.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Black/white</div>
|
||
<div class="bw__v">Explicit “proves / does not prove” framing for auditor conversations.</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Receipt-first process">
|
||
<div class="card">
|
||
<div class="card__media">
|
||
<img src="../../assets/red-team-doc-1024-559.jpg" alt="Dossier cover" loading="lazy" />
|
||
</div>
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">RECEIPTS</div>
|
||
<div class="badge">AUDIT‑FRICTION</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<ol class="steps">
|
||
<li class="step">
|
||
<div class="step__n">1</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Hash the source</div>
|
||
<div class="step__d">Compute <code>source_sha256</code>.</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">2</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Hash the output</div>
|
||
<div class="step__d">Compute <code>output_sha256</code>.</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">3</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Publish the receipt</div>
|
||
<div class="step__d">Share a trace page with stable no‑login URLs.</div>
|
||
</div>
|
||
</li>
|
||
</ol>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section section--alt">
|
||
<div class="wrap">
|
||
<h2>Artifacts for auditors</h2>
|
||
<p class="sub">The purpose is to make evidence portable and boring.</p>
|
||
<pre class="code"><code>Trace receipt: https://infrafabric.io/static/trace/&lt;shareId&gt;
|
||
Output (raw): https://infrafabric.io/static/dossier/&lt;shareId&gt;/download
|
||
Pack (HTML): https://infrafabric.io/static/pack/&lt;shareId&gt;</code></pre>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">If the evidence isn’t portable, the audit will be.</div>
|
||
<div class="muted">
|
||
<a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
|
||
<a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<div class="bottombar" aria-label="Quick links">
|
||
<div class="wrap bottombar__inner">
|
||
<div class="bottombar__left">
|
||
<span class="bottombar__label">Sectors</span>
|
||
<a href="../public-sector/">Public Sector</a>
|
||
<a href="../enterprise/">Enterprise</a>
|
||
<a href="../research/">Research</a>
|
||
<a href="../professional-services/">Professional</a>
|
||
<span class="bottombar__sep">·</span>
|
||
<span class="bottombar__label">Industries</span>
|
||
<a href="../healthcare/">Healthcare</a>
|
||
<a href="../finance/">Financial</a>
|
||
<a href="../legal/">Legal</a>
|
||
</div>
|
||
<div class="bottombar__right">
|
||
<a href="../../api/">Developers</a>
|
||
<span class="bottombar__sep">|</span>
|
||
<a href="../../api/">API</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /verticals/sciences/
|
||
- URL: https://infrafabric.io/verticals/sciences/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/verticals/sciences/
|
||
- Source: `ifttt/verticals/sciences/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — Sciences</title>
|
||
<meta name="description" content="IF.TTT for science and research: provenance and reproducibility for reports, analyses, and model outputs." />
|
||
<link rel="stylesheet" href="../../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">Sciences / research</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../">Verticals</a>
|
||
<a href="../../#how">How</a>
|
||
<a href="../../#verify">Verify</a>
|
||
<a href="../../governance/">Governance</a>
|
||
<a href="../../whitepaper/">Whitepaper</a>
|
||
<a href="../../about/">About</a>
|
||
<a href="../../api/">Developers</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">Research reality</p>
|
||
<h1>Reproducibility is governance in a lab coat.</h1>
|
||
<p class="lede">
|
||
Scientific workflows already understand receipts: methods, datasets, and citations. IF.TTT is the same idea applied to AI outputs and
|
||
operational decisions: publish what can be verified, and mark what can’t.
|
||
</p>
|
||
|
||
<div class="panel">
|
||
<h3>Third‑party pressure</h3>
|
||
<ul class="list">
|
||
<li>Peer reviewers need the ability to reproduce claims.</li>
|
||
<li>Funding/compliance bodies need provenance for decisions and outputs.</li>
|
||
<li>Collaborators need proof that the artifact they received is the artifact you published.</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="panel" style="margin-top: 12px">
|
||
<h3>What IF.TTT provides</h3>
|
||
<div class="bw">
|
||
<div class="bw__row">
|
||
<div class="bw__k">Integrity</div>
|
||
<div class="bw__v">Hash receipts: same bytes, same hash, independent verification.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Clarity</div>
|
||
<div class="bw__v">Explicitly separates evidence (verified) from interpretation (not verified).</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Portability</div>
|
||
<div class="bw__v">Offline bundles for constrained or future review environments.</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Receipt-first process">
|
||
<div class="card">
|
||
<div class="card__media">
|
||
<img src="../../assets/red-team-stamp-600.png" alt="EYES ONLY // DAVE stamp" loading="lazy" />
|
||
</div>
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">PROCESS</div>
|
||
<div class="badge">PROVENANCE</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<ol class="steps">
|
||
<li class="step">
|
||
<div class="step__n">1</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Hash the source</div>
|
||
<div class="step__d">Dataset / paper / prompt pack → <code>source_sha256</code>.</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">2</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Hash the output</div>
|
||
<div class="step__d">The output you publish → <code>output_sha256</code>.</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">3</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Publish the trace</div>
|
||
<div class="step__d">Receipt binds source ↔ output with trace id and versions.</div>
|
||
</div>
|
||
</li>
|
||
</ol>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section section--alt">
|
||
<div class="wrap">
|
||
<h2>Portable verification artifacts</h2>
|
||
<p class="sub">So reviewers can validate without trusting your infrastructure.</p>
|
||
<pre class="code"><code>Trace receipt: https://infrafabric.io/static/trace/&lt;shareId&gt;
|
||
Pack (raw): https://infrafabric.io/static/pack/&lt;shareId&gt;.md
|
||
Pack (HTML): https://infrafabric.io/static/pack/&lt;shareId&gt;
|
||
Offline bundles: https://infrafabric.io/static/hosted/review/trace-bundles/&lt;id&gt;/index.html</code></pre>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section">
|
||
<div class="wrap">
|
||
<h2>Live example</h2>
|
||
<div class="links">
|
||
<a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Example trace receipt</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">If it can’t be reproduced, it can’t be governed.</div>
|
||
<div class="muted">
|
||
<a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
|
||
<a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<div class="bottombar" aria-label="Quick links">
|
||
<div class="wrap bottombar__inner">
|
||
<div class="bottombar__left">
|
||
<span class="bottombar__label">Sectors</span>
|
||
<a href="../public-sector/">Public Sector</a>
|
||
<a href="../enterprise/">Enterprise</a>
|
||
<a href="../research/">Research</a>
|
||
<a href="../professional-services/">Professional</a>
|
||
<span class="bottombar__sep">·</span>
|
||
<span class="bottombar__label">Industries</span>
|
||
<a href="../healthcare/">Healthcare</a>
|
||
<a href="../finance/">Financial</a>
|
||
<a href="../legal/">Legal</a>
|
||
</div>
|
||
<div class="bottombar__right">
|
||
<a href="../../api/">Developers</a>
|
||
<span class="bottombar__sep">|</span>
|
||
<a href="../../api/">API</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /verticals/secops/
|
||
- URL: https://infrafabric.io/verticals/secops/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/verticals/secops/
|
||
- Source: `ifttt/verticals/secops/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — SecOps</title>
|
||
<meta name="description" content="IF.TTT for SecOps and SOC: bind AI summaries to evidence; preserve chain-of-custody for investigations and audits." />
|
||
<link rel="stylesheet" href="../../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">SecOps / SOC</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../">Verticals</a>
|
||
<a href="../../#trust">Trust</a>
|
||
<a href="../../#verify">Verify</a>
|
||
<a href="../../governance/">Governance</a>
|
||
<a href="../../whitepaper/">Whitepaper</a>
|
||
<a href="../../about/">About</a>
|
||
<a href="../../api/">Developers</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">SecOps reality</p>
|
||
<h1>Bind “what the system said” to “what the system saw.”</h1>
|
||
<p class="lede">
|
||
AI summaries can help, but only if they remain verifiable against raw telemetry. IF.TTT makes the custody chain explicit: source bytes,
|
||
output bytes, and a receipt that can be validated by third parties.
|
||
</p>
|
||
|
||
<div class="panel">
|
||
<h3>Third‑party pressure</h3>
|
||
<ul class="list">
|
||
<li>Executives demand a narrative; auditors demand evidence.</li>
|
||
<li>Incident response needs reproducible artifacts, not recollections.</li>
|
||
<li>External assessors need proof without your SIEM credentials.</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="panel" style="margin-top: 12px">
|
||
<h3>What IF.TTT provides</h3>
|
||
<div class="bw">
|
||
<div class="bw__row">
|
||
<div class="bw__k">Trace receipt</div>
|
||
<div class="bw__v">Integrity binding: <code>source_sha256</code> ↔ <code>output_sha256</code>.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Offline proof</div>
|
||
<div class="bw__v">Bundles that can be verified after the fact, offline.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Clarity</div>
|
||
<div class="bw__v">What’s verified is stated; what’s interpretation is labeled as such.</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Example receipt links">
|
||
<div class="card">
|
||
<div class="card__media">
|
||
<img src="../../assets/red-team-doc-1024-559.jpg" alt="Dossier cover" loading="lazy" />
|
||
</div>
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">EVIDENCE</div>
|
||
<div class="badge">REPLAYABLE</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<div class="links">
|
||
<a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Example trace receipt</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section section--alt">
|
||
<div class="wrap">
|
||
<h2>Operational trap to avoid</h2>
|
||
<p class="sub">Do not treat “AI summary” as evidence.</p>
|
||
<div class="grid2">
|
||
<div class="panel">
|
||
<h3>Bad</h3>
|
||
<p class="sub2">“The AI said this was resolved.”</p>
|
||
</div>
|
||
<div class="panel">
|
||
<h3>Good</h3>
|
||
<p class="sub2">“Here is the output, here is the evidence artifact, here is the receipt binding them.”</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">Summaries don’t hold up. Receipts do.</div>
|
||
<div class="muted">
|
||
<a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
|
||
<a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<div class="bottombar" aria-label="Quick links">
|
||
<div class="wrap bottombar__inner">
|
||
<div class="bottombar__left">
|
||
<span class="bottombar__label">Sectors</span>
|
||
<a href="../public-sector/">Public Sector</a>
|
||
<a href="../enterprise/">Enterprise</a>
|
||
<a href="../research/">Research</a>
|
||
<a href="../professional-services/">Professional</a>
|
||
<span class="bottombar__sep">·</span>
|
||
<span class="bottombar__label">Industries</span>
|
||
<a href="../healthcare/">Healthcare</a>
|
||
<a href="../finance/">Financial</a>
|
||
<a href="../legal/">Legal</a>
|
||
</div>
|
||
<div class="bottombar__right">
|
||
<a href="../../api/">Developers</a>
|
||
<span class="bottombar__sep">|</span>
|
||
<a href="../../api/">API</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /verticals/supply-chain/
|
||
- URL: https://infrafabric.io/verticals/supply-chain/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/verticals/supply-chain/
|
||
- Source: `ifttt/verticals/supply-chain/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — Supply Chain</title>
|
||
<meta
|
||
name="description"
|
||
content="IF.TTT for industrial and supply chain environments: change-control receipts that survive contractor handoffs and insurer/auditor review."
|
||
/>
|
||
<link rel="stylesheet" href="../../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">Industrial / supply chain</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../">Verticals</a>
|
||
<a href="../../#trust">Trust</a>
|
||
<a href="../../#verify">Verify</a>
|
||
<a href="../../governance/">Governance</a>
|
||
<a href="../../whitepaper/">Whitepaper</a>
|
||
<a href="../../about/">About</a>
|
||
<a href="../../api/">Developers</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">Supply chain reality</p>
|
||
<h1>Handoffs are where proof dies.</h1>
|
||
<p class="lede">
|
||
Industrial systems accumulate contractors, vendors, and integrators. IF.TTT standardizes a receipt surface so chain‑of‑custody doesn’t
|
||
collapse the moment responsibility moves.
|
||
</p>
|
||
|
||
<div class="panel">
|
||
<h3>Third‑party pressure</h3>
|
||
<ul class="list">
|
||
<li>Customers ask for change control evidence after outages.</li>
|
||
<li>Insurers ask what controls existed at the time of the incident.</li>
|
||
<li>Auditors ask for traceability across organizational boundaries.</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="panel" style="margin-top: 12px">
|
||
<h3>What IF.TTT provides</h3>
|
||
<div class="bw">
|
||
<div class="bw__row">
|
||
<div class="bw__k">Receipts</div>
|
||
<div class="bw__v">Stable no‑login trace + output + source URLs keyed by <code>shareId</code>.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Offline</div>
|
||
<div class="bw__v">Bundles for verification when networks and portals are unavailable.</div>
|
||
</div>
|
||
<div class="bw__row">
|
||
<div class="bw__k">Clarity</div>
|
||
<div class="bw__v">Integrity binding is verifiable; interpretation remains process-owned.</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Receipt-first process">
|
||
<div class="card">
|
||
<div class="card__media">
|
||
<img src="../../assets/red-team-stamp-600.png" alt="EYES ONLY // DAVE stamp" loading="lazy" />
|
||
</div>
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">PROCESS</div>
|
||
<div class="badge">HANDOFF‑SAFE</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<ol class="steps">
|
||
<li class="step">
|
||
<div class="step__n">1</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Hash the artifact</div>
|
||
<div class="step__d">Define the bytes and compute <code>sha256</code>.</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">2</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Publish the receipt</div>
|
||
<div class="step__d">Trace page binds source ↔ output.</div>
|
||
</div>
|
||
</li>
|
||
<li class="step">
|
||
<div class="step__n">3</div>
|
||
<div class="step__b">
|
||
<div class="step__t">Export bundles</div>
|
||
<div class="step__d">Carry proof through constrained environments.</div>
|
||
</div>
|
||
</li>
|
||
</ol>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">When responsibility moves, the receipt shouldn’t.</div>
|
||
<div class="muted">
|
||
<a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
|
||
<a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<div class="bottombar" aria-label="Quick links">
|
||
<div class="wrap bottombar__inner">
|
||
<div class="bottombar__left">
|
||
<span class="bottombar__label">Sectors</span>
|
||
<a href="../public-sector/">Public Sector</a>
|
||
<a href="../enterprise/">Enterprise</a>
|
||
<a href="../research/">Research</a>
|
||
<a href="../professional-services/">Professional</a>
|
||
<span class="bottombar__sep">·</span>
|
||
<span class="bottombar__label">Industries</span>
|
||
<a href="../healthcare/">Healthcare</a>
|
||
<a href="../finance/">Financial</a>
|
||
<a href="../legal/">Legal</a>
|
||
</div>
|
||
<div class="bottombar__right">
|
||
<a href="../../api/">Developers</a>
|
||
<span class="bottombar__sep">|</span>
|
||
<a href="../../api/">API</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /whitepaper/
|
||
- URL: https://infrafabric.io/whitepaper/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/whitepaper/
|
||
- Source: `ifttt/whitepaper/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — Whitepaper</title>
|
||
<meta
|
||
name="description"
|
||
content="Download the IF.TTT whitepaper and proof bundle. IF.TTT is a receipt-first governance layer: trace pages, stable no-login links, and optional offline bundles."
|
||
/>
|
||
<link rel="stylesheet" href="../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">Whitepaper</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../#how">How</a>
|
||
<a href="../#trust">Trust</a>
|
||
<a href="../#verify">Verify</a>
|
||
<a href="../verticals/">Verticals</a>
|
||
<a href="../governance/">Governance</a>
|
||
<a href="../api/">Developers</a>
|
||
<a href="../about/">About</a>
|
||
<a class="lang" href="../fr/" aria-label="French">FR</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main id="top">
|
||
<section class="hero">
|
||
<div class="wrap hero__grid">
|
||
<div class="hero__copy">
|
||
<p class="kicker">Long-form spec + receipts</p>
|
||
<h1>The IF.TTT whitepaper.</h1>
|
||
<p class="lede">
|
||
“Trustworthy” can’t be a vibe. This paper documents the receipt‑first sequence: <strong>hash the source</strong> → <strong>hash the output</strong> →
|
||
<strong>publish a trace</strong> → <strong>share no‑login receipts</strong> → <strong>optional offline bundles</strong>.
|
||
</p>
|
||
|
||
<div class="pillrow" role="list" aria-label="Included artifacts">
|
||
<div class="pill" role="listitem">
|
||
<span class="pill__k">Paper</span>
|
||
<span class="pill__v">HTML + Markdown</span>
|
||
</div>
|
||
<div class="pill" role="listitem">
|
||
<span class="pill__k">Receipts</span>
|
||
<span class="pill__v">Trace + hashes</span>
|
||
</div>
|
||
<div class="pill" role="listitem">
|
||
<span class="pill__k">Offline</span>
|
||
<span class="pill__v">Proof bundle + verifier</span>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="cta">
|
||
<a
|
||
class="btn btn--primary"
|
||
href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
|
||
target="_blank"
|
||
rel="noreferrer"
|
||
>Read the paper now</a
|
||
>
|
||
<a class="btn" href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/" target="_blank" rel="noreferrer"
|
||
>Get the full pack</a
|
||
>
|
||
</div>
|
||
|
||
<p class="note">
|
||
If your environment blocks downloads (common for some web fetchers), use the HTML version. The receipts are still verifiable.
|
||
</p>
|
||
</div>
|
||
|
||
<aside class="hero__card" aria-label="Request the pack by email">
|
||
<div class="card">
|
||
<div class="card__media">
|
||
<img src="../assets/eyes-only-dave.png" alt="EYES ONLY // DAVE stamp" loading="lazy" />
|
||
</div>
|
||
<div class="card__hdr">
|
||
<div class="badge badge--ok">NO LOGIN</div>
|
||
<div class="badge">EMAIL (OPTIONAL)</div>
|
||
</div>
|
||
<div class="card__body">
|
||
<div class="mini">
|
||
<div class="mini__k">Want the pack in your inbox?</div>
|
||
<div class="mini__v">Drop an email. We’ll reply with the stable links (no “demo call” bait).</div>
|
||
</div>
|
||
|
||
<form class="form" method="POST" action="https://formsubmit.co/ds@infrafabric.io">
|
||
<input type="hidden" name="_subject" value="IF.TTT whitepaper request" />
|
||
<input type="hidden" name="_template" value="table" />
|
||
<input type="hidden" name="_next" value="https://infrafabric.io/whitepaper/thanks/" />
|
||
<input type="text" name="_honey" class="honeypot" tabindex="-1" autocomplete="off" />
|
||
|
||
<div class="field">
|
||
<label for="email">Email</label>
|
||
<input id="email" name="email" type="email" required placeholder="you@company.com" autocomplete="email" />
|
||
</div>
|
||
|
||
<div class="field-row">
|
||
<div class="field">
|
||
<label for="company">Company (optional)</label>
|
||
<input id="company" name="company" type="text" placeholder="Company" autocomplete="organization" />
|
||
</div>
|
||
<div class="field">
|
||
<label for="role">Role (optional)</label>
|
||
<input id="role" name="role" type="text" placeholder="GRC / SecOps / Legal / Product" />
|
||
</div>
|
||
</div>
|
||
|
||
<div class="field">
|
||
<label for="vertical">Vertical (optional)</label>
|
||
<select id="vertical" name="vertical">
|
||
<option value="">Select…</option>
|
||
<option>Finance</option>
|
||
<option>Healthcare</option>
|
||
<option>Government</option>
|
||
<option>SaaS</option>
|
||
<option>Legal</option>
|
||
<option>Sciences</option>
|
||
<option>Other</option>
|
||
</select>
|
||
</div>
|
||
|
||
<div class="field">
|
||
<label for="note">What are you trying to prove? (optional)</label>
|
||
<textarea id="note" name="note" rows="3" placeholder="e.g., we need third-party verifiable audit artifacts…"></textarea>
|
||
</div>
|
||
|
||
<button class="btn btn--primary" type="submit">Send links</button>
|
||
<p class="fine">We only use this to reply with the paper/receipts. No spam, no list rental.</p>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="section section--alt">
|
||
<div class="wrap">
|
||
<h2>Stable links (copy/paste)</h2>
|
||
<p class="sub">These are the boring, audit-safe entry points.</p>
|
||
<div class="links">
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Whitepaper (HTML)</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html</span>
|
||
</a>
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.md" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Whitepaper + review pack (Markdown)</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.md</span>
|
||
</a>
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.tar.gz" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Proof bundle (tar.gz)</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.tar.gz</span>
|
||
</a>
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/iftrace.py" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Offline verifier (iftrace.py)</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/iftrace.py</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">InfraFabric • IF.TTT is “proof without login”.</div>
|
||
<div class="muted">
|
||
<a href="../">IF.TTT</a> · <a href="../governance/">Governance</a> · <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a>
|
||
<span class="bottombar__sep">·</span> Danny Stocker
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
## /whitepaper/thanks/
|
||
- URL: https://infrafabric.io/whitepaper/thanks/
|
||
- Static: https://infrafabric.io/static/hosted/ifttt/whitepaper/thanks/
|
||
- Source: `ifttt/whitepaper/thanks/index.html`
|
||
|
||
<details>
|
||
<summary>HTML</summary>
|
||
|
||
```html
|
||
<!doctype html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>IF.TTT — Whitepaper request</title>
|
||
<meta name="description" content="Thanks — here are the stable IF.TTT whitepaper links." />
|
||
<link rel="stylesheet" href="../../style.css" />
|
||
</head>
|
||
|
||
<body>
|
||
<header class="top">
|
||
<div class="wrap top__inner">
|
||
<a class="brand" href="../../" aria-label="IF.TTT home">
|
||
<img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
|
||
<span class="brand__text">
|
||
<span class="brand__title">IF.TTT</span>
|
||
<span class="brand__sub">Whitepaper</span>
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="nav" aria-label="Primary">
|
||
<a href="../../#verify">Verify</a>
|
||
<a href="../../governance/">Governance</a>
|
||
<a href="../../api/">Developers</a>
|
||
<a href="../../about/">About</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
<main>
|
||
<section class="section">
|
||
<div class="wrap">
|
||
<h1 style="margin-top: 0">Received.</h1>
|
||
<p class="sub">If you submitted the form, we’ll reply with the stable links. No pitch deck required.</p>
|
||
|
||
<div class="panel">
|
||
<h3>Immediate access (no email required)</h3>
|
||
<div class="links" style="margin-top: 10px">
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Read the paper (HTML)</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html</span>
|
||
</a>
|
||
<a class="linkrow" href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/" target="_blank" rel="noreferrer">
|
||
<span class="linkrow__t">Full review pack index</span>
|
||
<span class="linkrow__u">https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/</span>
|
||
</a>
|
||
</div>
|
||
<p class="fine">
|
||
Tip: Some sandboxes load <code>text/html</code> but reject downloads. Use the HTML links in that case.
|
||
</p>
|
||
</div>
|
||
|
||
<div class="cta" style="margin-top: 14px">
|
||
<a class="btn btn--primary" href="../../">Back to IF.TTT</a>
|
||
<a class="btn" href="../">Whitepaper page</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="wrap footer__inner">
|
||
<div class="muted">InfraFabric • IF.TTT is “proof without login”.</div>
|
||
<div class="muted">
|
||
<a href="../../">IF.TTT</a> · <a href="../../governance/">Governance</a> · <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a>
|
||
<span class="bottombar__sep">·</span> Danny Stocker
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
</body>
|
||
</html>
|
||
```
|
||
|
||
</details>
|
||
|
||
---
|
||
|
||
# Text Assets (Full)
|
||
|
||
## `app.js`
|
||
- Source: `ifttt/app.js`
|
||
|
||
```js
|
||
(() => {
|
||
const typewordEl = document.getElementById("typeword");
|
||
const stepperEl = document.getElementById("stepper");
|
||
const revealStepper = createStepperRevealer(stepperEl);
|
||
if (stepperEl) window.setTimeout(revealStepper, 5200);
|
||
|
||
if (typewordEl) startTypewriter(typewordEl, { onFirstCycleDone: revealStepper });
|
||
|
||
const quoteTextEl = document.getElementById("quoteText");
|
||
const quoteMetaEl = document.getElementById("quoteMeta");
|
||
const quoteWrapEl = quoteTextEl?.closest?.(".quote");
|
||
if (quoteTextEl && quoteMetaEl && quoteWrapEl) startQuoteTicker({ quoteWrapEl, quoteTextEl, quoteMetaEl });
|
||
})();
|
||
|
||
function createStepperRevealer(stepperEl) {
|
||
let shown = false;
|
||
return () => {
|
||
if (shown || !stepperEl) return;
|
||
shown = true;
|
||
stepperEl.hidden = false;
|
||
window.requestAnimationFrame(() => stepperEl.classList.add("homeStepper--show"));
|
||
};
|
||
}
|
||
|
||
function startTypewriter(typewordEl, opts = {}) {
|
||
const words = ["Transparent", "Traceable", "Trust", "TTT"];
|
||
const typeMs = 42;
|
||
const deleteMs = 26;
|
||
const holdMs = 780;
|
||
const finalHoldMs = 1100;
|
||
const betweenMs = 180;
|
||
const onFirstCycleDone = typeof opts.onFirstCycleDone === "function" ? opts.onFirstCycleDone : null;
|
||
|
||
let wordIndex = 0;
|
||
let charIndex = 0;
|
||
let isDeleting = false;
|
||
let cycleCount = 0;
|
||
|
||
const tick = () => {
|
||
const word = words[wordIndex] || "";
|
||
if (!isDeleting) {
|
||
charIndex = Math.min(word.length, charIndex + 1);
|
||
} else {
|
||
charIndex = Math.max(0, charIndex - 1);
|
||
}
|
||
|
||
typewordEl.textContent = word.slice(0, charIndex);
|
||
|
||
const atEnd = !isDeleting && charIndex === word.length;
|
||
const atStart = isDeleting && charIndex === 0;
|
||
|
||
if (atEnd) {
|
||
isDeleting = true;
|
||
const wait = wordIndex === words.length - 1 ? finalHoldMs : holdMs;
|
||
window.setTimeout(tick, wait);
|
||
return;
|
||
}
|
||
|
||
if (atStart) {
|
||
isDeleting = false;
|
||
wordIndex = (wordIndex + 1) % words.length;
|
||
if (wordIndex === 0) {
|
||
cycleCount += 1;
|
||
if (cycleCount === 1 && onFirstCycleDone) onFirstCycleDone();
|
||
}
|
||
window.setTimeout(tick, betweenMs);
|
||
return;
|
||
}
|
||
|
||
window.setTimeout(tick, isDeleting ? deleteMs : typeMs);
|
||
};
|
||
|
||
tick();
|
||
}
|
||
|
||
async function startQuoteTicker({ quoteWrapEl, quoteTextEl, quoteMetaEl }) {
|
||
const quotes = await loadQuotes();
|
||
if (!Array.isArray(quotes) || quotes.length === 0) return;
|
||
|
||
quoteWrapEl.classList.add("quote--show");
|
||
|
||
let idx = Math.floor(Math.random() * quotes.length);
|
||
|
||
const show = (q) => {
|
||
quoteWrapEl.classList.remove("quote--show");
|
||
quoteWrapEl.classList.add("quote--fade");
|
||
|
||
window.setTimeout(() => {
|
||
quoteTextEl.textContent = q.text || "";
|
||
renderQuoteMeta({ quoteMetaEl, q });
|
||
|
||
quoteWrapEl.classList.remove("quote--fade");
|
||
quoteWrapEl.classList.add("quote--show");
|
||
}, 220);
|
||
};
|
||
|
||
const loop = () => {
|
||
const q = quotes[idx] || {};
|
||
show(q);
|
||
idx = (idx + 1) % quotes.length;
|
||
|
||
const duration = estimateReadMs(q.text || "");
|
||
window.setTimeout(loop, duration);
|
||
};
|
||
|
||
loop();
|
||
}
|
||
|
||
async function loadQuotes() {
|
||
try {
|
||
const resp = await fetch(resolveIfTttUrl("assets/ifttt-quotes.json"), { cache: "no-store" });
|
||
if (resp.ok) {
|
||
const data = await resp.json();
|
||
if (Array.isArray(data)) return data;
|
||
}
|
||
} catch (e) {}
|
||
|
||
return [
|
||
{
|
||
text: "Footnotes aren't decorations. They're load-bearing walls.",
|
||
source: "IF.TTT paper",
|
||
href: "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html",
|
||
},
|
||
{
|
||
text: "If there's no IF.TTT trace, it didn't happen—or shouldn't be trusted.",
|
||
source: "IF.TTT doctrine",
|
||
href: "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html",
|
||
},
|
||
{
|
||
text: "Trust isn't claimed. It's proven.",
|
||
source: "IF.TTT paper",
|
||
href: "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html",
|
||
},
|
||
];
|
||
}
|
||
|
||
function resolveIfTttUrl(path) {
|
||
try {
|
||
const scriptEl = document.querySelector('script[src$="app.js"]');
|
||
const scriptUrl = scriptEl ? new URL(scriptEl.getAttribute("src"), window.location.href) : new URL(window.location.href);
|
||
return new URL(path, scriptUrl).toString();
|
||
} catch (e) {
|
||
return path;
|
||
}
|
||
}
|
||
|
||
function renderQuoteMeta({ quoteMetaEl, q }) {
|
||
while (quoteMetaEl.firstChild) quoteMetaEl.removeChild(quoteMetaEl.firstChild);
|
||
|
||
const source = String(q.source || "").trim();
|
||
const href = String(q.href || "").trim();
|
||
if (!source) return;
|
||
|
||
if (href) {
|
||
const a = document.createElement("a");
|
||
a.href = href;
|
||
a.target = "_blank";
|
||
a.rel = "noreferrer";
|
||
a.textContent = source;
|
||
quoteMetaEl.appendChild(a);
|
||
return;
|
||
}
|
||
|
||
quoteMetaEl.textContent = source;
|
||
}
|
||
|
||
function estimateReadMs(text) {
|
||
const cleaned = String(text || "").trim();
|
||
if (!cleaned) return 4000;
|
||
|
||
const words = cleaned.split(/\s+/).filter(Boolean).length;
|
||
const wpm = 220;
|
||
const ms = (words / wpm) * 60000 + 1200;
|
||
return clamp(ms, 3200, 11000);
|
||
}
|
||
|
||
function clamp(v, min, max) {
|
||
return Math.max(min, Math.min(max, v));
|
||
}
|
||
```
|
||
|
||
## `style.css`
|
||
- Source: `ifttt/style.css`
|
||
|
||
```css
|
||
:root {
|
||
--bg: #fffdf7;
|
||
--bg-alt: #fff9e6;
|
||
--panel: #ffffff;
|
||
--text: #111827;
|
||
--muted: #6b7280;
|
||
--border: #e5e7eb;
|
||
--link: #1d4ed8;
|
||
--accent: #8b0000;
|
||
--ok: #0f5132;
|
||
--ok-bg: #e7f6ee;
|
||
--shadow: 0 1px 0 rgba(0, 0, 0, 0.03);
|
||
--radius: 14px;
|
||
}
|
||
|
||
* {
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
html {
|
||
scroll-behavior: smooth;
|
||
}
|
||
|
||
body {
|
||
margin: 0;
|
||
font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
|
||
background: var(--bg);
|
||
color: var(--text);
|
||
line-height: 1.5;
|
||
padding-bottom: 62px;
|
||
}
|
||
|
||
a {
|
||
color: var(--link);
|
||
text-decoration: none;
|
||
}
|
||
|
||
a:hover {
|
||
text-decoration: underline;
|
||
}
|
||
|
||
code {
|
||
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||
font-size: 0.92em;
|
||
background: #f3f4f6;
|
||
padding: 2px 6px;
|
||
border-radius: 8px;
|
||
}
|
||
|
||
pre.code {
|
||
background: #0b1020;
|
||
color: #e5e7eb;
|
||
border-radius: 12px;
|
||
padding: 12px;
|
||
overflow: auto;
|
||
box-shadow: var(--shadow);
|
||
border: 1px solid rgba(255, 255, 255, 0.06);
|
||
}
|
||
|
||
pre.code code {
|
||
background: transparent;
|
||
padding: 0;
|
||
border-radius: 0;
|
||
font-size: 12px;
|
||
line-height: 1.45;
|
||
}
|
||
|
||
.form {
|
||
display: grid;
|
||
gap: 12px;
|
||
margin-top: 12px;
|
||
}
|
||
|
||
.field label {
|
||
display: block;
|
||
font-size: 12px;
|
||
font-weight: 700;
|
||
color: var(--muted);
|
||
margin: 0 0 6px;
|
||
}
|
||
|
||
.field input,
|
||
.field select,
|
||
.field textarea {
|
||
width: 100%;
|
||
padding: 10px 12px;
|
||
border-radius: 12px;
|
||
border: 1px solid var(--border);
|
||
background: #ffffff;
|
||
font-size: 14px;
|
||
line-height: 1.2;
|
||
}
|
||
|
||
.field textarea {
|
||
resize: vertical;
|
||
}
|
||
|
||
.field input:focus,
|
||
.field select:focus,
|
||
.field textarea:focus {
|
||
outline: none;
|
||
border-color: rgba(29, 78, 216, 0.45);
|
||
box-shadow: 0 0 0 4px rgba(29, 78, 216, 0.12);
|
||
}
|
||
|
||
.field-row {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr;
|
||
gap: 12px;
|
||
}
|
||
|
||
.honeypot {
|
||
display: none !important;
|
||
}
|
||
|
||
@media (max-width: 860px) {
|
||
.field-row {
|
||
grid-template-columns: 1fr;
|
||
}
|
||
}
|
||
|
||
|
||
.wrap {
|
||
max-width: 1120px;
|
||
margin: 0 auto;
|
||
padding: 0 18px;
|
||
}
|
||
|
||
.top {
|
||
position: sticky;
|
||
top: 0;
|
||
z-index: 20;
|
||
background: rgba(255, 253, 247, 0.92);
|
||
backdrop-filter: blur(10px);
|
||
border-bottom: 1px solid var(--border);
|
||
}
|
||
|
||
.top__inner {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
padding: 14px 0;
|
||
gap: 14px;
|
||
}
|
||
|
||
.brand {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 12px;
|
||
min-width: 220px;
|
||
}
|
||
|
||
.brand__mark {
|
||
width: 38px;
|
||
height: 38px;
|
||
border-radius: 12px;
|
||
border: 1px solid rgba(139, 0, 0, 0.25);
|
||
background:
|
||
radial-gradient(18px 18px at 30% 30%, rgba(139, 0, 0, 0.18), transparent 60%),
|
||
radial-gradient(18px 18px at 70% 70%, rgba(29, 78, 216, 0.10), transparent 60%),
|
||
#fff;
|
||
box-shadow: var(--shadow);
|
||
}
|
||
|
||
.brand__logo {
|
||
width: 38px;
|
||
height: 38px;
|
||
display: block;
|
||
border-radius: 12px;
|
||
box-shadow: var(--shadow);
|
||
}
|
||
|
||
.brand__text {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 2px;
|
||
}
|
||
|
||
.brand__title {
|
||
font-weight: 800;
|
||
letter-spacing: 0.2px;
|
||
}
|
||
|
||
.brand__sub {
|
||
font-size: 12px;
|
||
color: var(--muted);
|
||
}
|
||
|
||
.nav {
|
||
display: flex;
|
||
gap: 14px;
|
||
flex-wrap: wrap;
|
||
justify-content: flex-end;
|
||
font-size: 13px;
|
||
}
|
||
|
||
.nav a {
|
||
color: var(--muted);
|
||
padding: 6px 8px;
|
||
border-radius: 10px;
|
||
}
|
||
|
||
.nav a:hover {
|
||
color: var(--text);
|
||
background: #ffffff;
|
||
border: 1px solid var(--border);
|
||
text-decoration: none;
|
||
}
|
||
|
||
.hero {
|
||
padding: 34px 0 22px;
|
||
background:
|
||
radial-gradient(650px 260px at 20% 0%, rgba(139, 0, 0, 0.08), transparent 60%),
|
||
radial-gradient(700px 300px at 100% 40%, rgba(29, 78, 216, 0.06), transparent 60%),
|
||
linear-gradient(#fffdf7, #fff);
|
||
}
|
||
|
||
.hero__grid {
|
||
display: grid;
|
||
grid-template-columns: 1.2fr 0.8fr;
|
||
gap: 22px;
|
||
align-items: start;
|
||
}
|
||
|
||
.kicker {
|
||
font-size: 13px;
|
||
color: var(--muted);
|
||
margin: 0 0 10px;
|
||
}
|
||
|
||
h1 {
|
||
font-size: 40px;
|
||
line-height: 1.1;
|
||
margin: 0 0 10px;
|
||
letter-spacing: -0.4px;
|
||
}
|
||
|
||
.type {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 0;
|
||
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||
font-size: 14px;
|
||
color: #374151;
|
||
margin: 0 0 10px;
|
||
user-select: none;
|
||
}
|
||
|
||
.type__prefix,
|
||
.type__suffix {
|
||
color: #111827;
|
||
font-weight: 700;
|
||
}
|
||
|
||
.type__caret {
|
||
width: 8px;
|
||
height: 16px;
|
||
margin-left: 6px;
|
||
border-radius: 2px;
|
||
background: rgba(17, 24, 39, 0.65);
|
||
animation: caretblink 1s steps(1, end) infinite;
|
||
}
|
||
|
||
@keyframes caretblink {
|
||
50% {
|
||
opacity: 0;
|
||
}
|
||
}
|
||
|
||
.quote {
|
||
margin: 0 0 12px;
|
||
padding: 10px 12px;
|
||
border: 1px solid var(--border);
|
||
border-radius: var(--radius);
|
||
background: #ffffff;
|
||
box-shadow: var(--shadow);
|
||
max-width: 72ch;
|
||
}
|
||
|
||
.quote__text {
|
||
font-size: 13px;
|
||
color: #111827;
|
||
font-weight: 650;
|
||
}
|
||
|
||
.quote__meta {
|
||
margin-top: 6px;
|
||
font-size: 12px;
|
||
color: var(--muted);
|
||
}
|
||
|
||
.quote__meta a {
|
||
color: var(--muted);
|
||
text-decoration: underline;
|
||
text-underline-offset: 2px;
|
||
}
|
||
|
||
.quote--fade {
|
||
opacity: 0;
|
||
transition: opacity 250ms ease;
|
||
}
|
||
|
||
.quote--show {
|
||
opacity: 1;
|
||
}
|
||
|
||
.lede {
|
||
margin: 0 0 14px;
|
||
color: #374151;
|
||
max-width: 62ch;
|
||
}
|
||
|
||
.pillrow {
|
||
display: grid;
|
||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||
gap: 10px;
|
||
margin: 18px 0 16px;
|
||
}
|
||
|
||
.pill {
|
||
border: 1px solid var(--border);
|
||
background: #ffffff;
|
||
border-radius: var(--radius);
|
||
padding: 10px 10px;
|
||
box-shadow: var(--shadow);
|
||
}
|
||
|
||
.pill__k {
|
||
font-size: 12px;
|
||
color: var(--muted);
|
||
display: block;
|
||
}
|
||
|
||
.pill__v {
|
||
font-size: 13px;
|
||
font-weight: 600;
|
||
margin-top: 2px;
|
||
display: block;
|
||
}
|
||
|
||
.cta {
|
||
display: flex;
|
||
gap: 10px;
|
||
flex-wrap: wrap;
|
||
margin: 14px 0 10px;
|
||
}
|
||
|
||
.btn {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
padding: 10px 12px;
|
||
border-radius: 12px;
|
||
border: 1px solid var(--border);
|
||
background: #ffffff;
|
||
color: var(--text);
|
||
font-weight: 650;
|
||
font-size: 13px;
|
||
box-shadow: var(--shadow);
|
||
text-decoration: none;
|
||
}
|
||
|
||
.btn:hover {
|
||
text-decoration: none;
|
||
border-color: rgba(17, 24, 39, 0.22);
|
||
}
|
||
|
||
.btn--primary {
|
||
background: #111827;
|
||
color: #ffffff;
|
||
border-color: rgba(0, 0, 0, 0.25);
|
||
}
|
||
|
||
.btn--primary:hover {
|
||
border-color: rgba(0, 0, 0, 0.45);
|
||
}
|
||
|
||
.note {
|
||
font-size: 12px;
|
||
color: var(--muted);
|
||
margin: 10px 0 0;
|
||
}
|
||
|
||
.card {
|
||
border: 1px solid var(--border);
|
||
background: #ffffff;
|
||
border-radius: 18px;
|
||
box-shadow: var(--shadow);
|
||
overflow: hidden;
|
||
}
|
||
|
||
.card__media {
|
||
border-bottom: 1px solid var(--border);
|
||
background: #111827;
|
||
}
|
||
|
||
.card__media img {
|
||
display: block;
|
||
width: 100%;
|
||
height: 162px;
|
||
object-fit: cover;
|
||
opacity: 0.95;
|
||
}
|
||
|
||
.card__hdr {
|
||
padding: 12px 12px;
|
||
border-bottom: 1px solid var(--border);
|
||
display: flex;
|
||
gap: 8px;
|
||
flex-wrap: wrap;
|
||
background: #f8fafc;
|
||
}
|
||
|
||
.badge {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
padding: 4px 10px;
|
||
border-radius: 999px;
|
||
border: 1px solid var(--border);
|
||
font-size: 12px;
|
||
color: var(--muted);
|
||
background: #ffffff;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.badge--ok {
|
||
border-color: rgba(15, 81, 50, 0.25);
|
||
background: var(--ok-bg);
|
||
color: var(--ok);
|
||
font-weight: 700;
|
||
}
|
||
|
||
.card__body {
|
||
padding: 14px 12px 12px;
|
||
}
|
||
|
||
.kv {
|
||
display: grid;
|
||
grid-template-columns: 90px 1fr;
|
||
gap: 6px 10px;
|
||
font-size: 13px;
|
||
}
|
||
|
||
.kv__k {
|
||
color: var(--muted);
|
||
}
|
||
|
||
.kv__v code {
|
||
background: #f3f4f6;
|
||
}
|
||
|
||
.mini {
|
||
margin-top: 12px;
|
||
border-top: 1px dashed var(--border);
|
||
padding-top: 10px;
|
||
font-size: 13px;
|
||
}
|
||
|
||
.mini__k {
|
||
color: var(--muted);
|
||
font-weight: 600;
|
||
font-size: 12px;
|
||
}
|
||
|
||
.mini__v {
|
||
margin-top: 4px;
|
||
color: #374151;
|
||
}
|
||
|
||
.section {
|
||
padding: 34px 0;
|
||
}
|
||
|
||
.section--alt {
|
||
background: var(--bg-alt);
|
||
border-top: 1px solid rgba(0, 0, 0, 0.03);
|
||
border-bottom: 1px solid rgba(0, 0, 0, 0.03);
|
||
}
|
||
|
||
h2 {
|
||
margin: 0 0 8px;
|
||
font-size: 22px;
|
||
letter-spacing: -0.2px;
|
||
}
|
||
|
||
.sub {
|
||
margin: 0 0 18px;
|
||
color: var(--muted);
|
||
font-size: 14px;
|
||
max-width: 80ch;
|
||
}
|
||
|
||
.sub2 {
|
||
margin: 0 0 10px;
|
||
color: var(--muted);
|
||
font-size: 13px;
|
||
}
|
||
|
||
.steps {
|
||
display: grid;
|
||
gap: 10px;
|
||
padding: 0;
|
||
margin: 0;
|
||
list-style: none;
|
||
}
|
||
|
||
.step {
|
||
position: relative;
|
||
display: grid;
|
||
grid-template-columns: 44px 1fr;
|
||
gap: 12px;
|
||
padding: 14px 12px;
|
||
border: 1px solid var(--border);
|
||
border-radius: var(--radius);
|
||
background: #ffffff;
|
||
box-shadow: var(--shadow);
|
||
}
|
||
|
||
.step::after {
|
||
content: "";
|
||
position: absolute;
|
||
left: 30px;
|
||
top: 54px;
|
||
bottom: -10px;
|
||
width: 2px;
|
||
background: linear-gradient(to bottom, rgba(229, 231, 235, 0.95), rgba(229, 231, 235, 0));
|
||
}
|
||
|
||
.step:last-child::after {
|
||
display: none;
|
||
}
|
||
|
||
.step__n {
|
||
width: 36px;
|
||
height: 36px;
|
||
border-radius: 12px;
|
||
background: rgba(139, 0, 0, 0.06);
|
||
border: 1px solid rgba(139, 0, 0, 0.18);
|
||
display: grid;
|
||
place-items: center;
|
||
font-weight: 800;
|
||
color: var(--accent);
|
||
}
|
||
|
||
.step__t {
|
||
font-weight: 750;
|
||
}
|
||
|
||
.step__d {
|
||
color: #374151;
|
||
margin-top: 3px;
|
||
font-size: 13px;
|
||
}
|
||
|
||
.grid2 {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr;
|
||
gap: 14px;
|
||
}
|
||
|
||
.panel {
|
||
background: #ffffff;
|
||
border: 1px solid var(--border);
|
||
border-radius: var(--radius);
|
||
padding: 14px 14px;
|
||
box-shadow: var(--shadow);
|
||
}
|
||
|
||
.panel h3 {
|
||
margin: 0 0 8px;
|
||
font-size: 15px;
|
||
}
|
||
|
||
.list {
|
||
margin: 10px 0 0;
|
||
padding-left: 18px;
|
||
color: #374151;
|
||
font-size: 13px;
|
||
}
|
||
|
||
.bw {
|
||
display: grid;
|
||
gap: 8px;
|
||
font-size: 13px;
|
||
}
|
||
|
||
.bw__row {
|
||
display: grid;
|
||
grid-template-columns: 130px 1fr;
|
||
gap: 10px;
|
||
padding: 10px 10px;
|
||
border: 1px solid var(--border);
|
||
border-radius: 12px;
|
||
background: #ffffff;
|
||
}
|
||
|
||
.bw__k {
|
||
color: var(--muted);
|
||
font-weight: 700;
|
||
}
|
||
|
||
.bw__v {
|
||
color: #374151;
|
||
}
|
||
|
||
.verify {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr;
|
||
gap: 14px;
|
||
align-items: start;
|
||
}
|
||
|
||
.links {
|
||
display: grid;
|
||
gap: 8px;
|
||
margin-top: 10px;
|
||
}
|
||
|
||
.linkrow {
|
||
display: grid;
|
||
gap: 4px;
|
||
border: 1px solid var(--border);
|
||
border-radius: 12px;
|
||
padding: 10px 10px;
|
||
background: #ffffff;
|
||
box-shadow: var(--shadow);
|
||
}
|
||
|
||
.linkrow:hover {
|
||
border-color: rgba(29, 78, 216, 0.35);
|
||
text-decoration: none;
|
||
}
|
||
|
||
.linkrow__t {
|
||
font-weight: 700;
|
||
font-size: 13px;
|
||
color: var(--text);
|
||
}
|
||
|
||
.linkrow__u {
|
||
font-size: 12px;
|
||
color: var(--muted);
|
||
overflow-wrap: anywhere;
|
||
}
|
||
|
||
.fine {
|
||
margin: 12px 0 0;
|
||
color: var(--muted);
|
||
font-size: 12px;
|
||
}
|
||
|
||
.cards {
|
||
display: grid;
|
||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||
gap: 12px;
|
||
}
|
||
|
||
.vcard {
|
||
background: #ffffff;
|
||
border: 1px solid var(--border);
|
||
border-radius: var(--radius);
|
||
padding: 14px 14px;
|
||
box-shadow: var(--shadow);
|
||
}
|
||
|
||
.vcard__icon {
|
||
width: 44px;
|
||
height: 44px;
|
||
border: 1px solid var(--border);
|
||
border-radius: 14px;
|
||
background: #f8fafc;
|
||
display: grid;
|
||
place-items: center;
|
||
margin-bottom: 10px;
|
||
color: var(--accent);
|
||
}
|
||
|
||
.vcard__icon svg {
|
||
width: 22px;
|
||
height: 22px;
|
||
}
|
||
|
||
.vcard h3 {
|
||
margin: 0 0 10px;
|
||
font-size: 15px;
|
||
}
|
||
|
||
.vcard__k {
|
||
margin: 0;
|
||
font-size: 12px;
|
||
color: var(--muted);
|
||
font-weight: 700;
|
||
}
|
||
|
||
.vcard__v {
|
||
margin: 4px 0 10px;
|
||
font-size: 13px;
|
||
color: #374151;
|
||
}
|
||
|
||
.vcard__more {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 6px;
|
||
font-size: 12px;
|
||
color: var(--muted);
|
||
padding: 6px 10px;
|
||
border: 1px solid var(--border);
|
||
border-radius: 999px;
|
||
background: #ffffff;
|
||
}
|
||
|
||
.vcard__more:hover {
|
||
color: var(--text);
|
||
border-color: rgba(17, 24, 39, 0.22);
|
||
text-decoration: none;
|
||
}
|
||
|
||
.faq {
|
||
display: grid;
|
||
gap: 10px;
|
||
}
|
||
|
||
details {
|
||
background: #ffffff;
|
||
border: 1px solid var(--border);
|
||
border-radius: var(--radius);
|
||
padding: 12px 12px;
|
||
box-shadow: var(--shadow);
|
||
}
|
||
|
||
summary {
|
||
cursor: pointer;
|
||
font-weight: 750;
|
||
list-style: none;
|
||
}
|
||
|
||
summary::-webkit-details-marker {
|
||
display: none;
|
||
}
|
||
|
||
details p {
|
||
margin: 10px 0 0;
|
||
color: #374151;
|
||
font-size: 13px;
|
||
}
|
||
|
||
.foot {
|
||
margin-top: 18px;
|
||
border-top: 1px solid var(--border);
|
||
padding-top: 14px;
|
||
display: grid;
|
||
gap: 8px;
|
||
}
|
||
|
||
.foot__row {
|
||
display: grid;
|
||
grid-template-columns: 90px 1fr;
|
||
gap: 12px;
|
||
font-size: 13px;
|
||
}
|
||
|
||
.foot__k {
|
||
color: var(--muted);
|
||
font-weight: 700;
|
||
}
|
||
|
||
.footer {
|
||
border-top: 1px solid var(--border);
|
||
padding: 18px 0;
|
||
background: #ffffff;
|
||
}
|
||
|
||
.footer__inner {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
gap: 12px;
|
||
flex-wrap: wrap;
|
||
}
|
||
|
||
.muted {
|
||
color: var(--muted);
|
||
font-size: 12px;
|
||
}
|
||
|
||
.bottombar {
|
||
position: fixed;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
z-index: 25;
|
||
background: rgba(255, 253, 247, 0.92);
|
||
backdrop-filter: blur(10px);
|
||
border-top: 1px solid var(--border);
|
||
}
|
||
|
||
.bottombar__inner {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
gap: 12px;
|
||
align-items: center;
|
||
padding: 10px 0;
|
||
font-size: 12px;
|
||
}
|
||
|
||
.bottombar__left,
|
||
.bottombar__right {
|
||
display: flex;
|
||
gap: 6px;
|
||
align-items: center;
|
||
flex-wrap: wrap;
|
||
}
|
||
|
||
.bottombar__label {
|
||
font-size: 11px;
|
||
font-weight: 750;
|
||
letter-spacing: 0.08em;
|
||
text-transform: uppercase;
|
||
color: rgba(107, 114, 128, 0.85);
|
||
padding: 6px 6px;
|
||
}
|
||
|
||
.bottombar a {
|
||
color: var(--muted);
|
||
padding: 6px 8px;
|
||
border-radius: 10px;
|
||
}
|
||
|
||
.bottombar a:hover {
|
||
color: var(--text);
|
||
background: #ffffff;
|
||
border: 1px solid var(--border);
|
||
text-decoration: none;
|
||
}
|
||
|
||
.bottombar__sep {
|
||
color: rgba(107, 114, 128, 0.7);
|
||
margin: 0 2px;
|
||
}
|
||
|
||
@media (max-width: 980px) {
|
||
.hero__grid {
|
||
grid-template-columns: 1fr;
|
||
}
|
||
.pillrow {
|
||
grid-template-columns: 1fr;
|
||
}
|
||
.grid2 {
|
||
grid-template-columns: 1fr;
|
||
}
|
||
.verify {
|
||
grid-template-columns: 1fr;
|
||
}
|
||
.cards {
|
||
grid-template-columns: 1fr;
|
||
}
|
||
h1 {
|
||
font-size: 34px;
|
||
}
|
||
|
||
body {
|
||
padding-bottom: 74px;
|
||
}
|
||
}
|
||
|
||
/* Home (minimal landing; “OK Computer” empty-space bias) */
|
||
body.home {
|
||
background:
|
||
radial-gradient(900px 420px at 15% 0%, rgba(29, 78, 216, 0.06), transparent 60%),
|
||
radial-gradient(900px 420px at 85% 15%, rgba(139, 0, 0, 0.06), transparent 60%),
|
||
linear-gradient(#fffdf7, #ffffff);
|
||
}
|
||
|
||
body.home .top {
|
||
position: fixed;
|
||
left: 0;
|
||
right: 0;
|
||
background: transparent;
|
||
border-bottom: none;
|
||
backdrop-filter: none;
|
||
}
|
||
|
||
body.home .top__inner {
|
||
padding: 18px 0;
|
||
}
|
||
|
||
.homeNav {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 12px;
|
||
flex-wrap: wrap;
|
||
justify-content: flex-end;
|
||
font-size: 12px;
|
||
}
|
||
|
||
.homeNav a {
|
||
color: var(--muted);
|
||
padding: 6px 8px;
|
||
border-radius: 10px;
|
||
}
|
||
|
||
.homeNav a:hover {
|
||
color: var(--text);
|
||
background: #ffffff;
|
||
border: 1px solid var(--border);
|
||
text-decoration: none;
|
||
}
|
||
|
||
.homeNav__sep {
|
||
color: rgba(107, 114, 128, 0.7);
|
||
}
|
||
|
||
.homeMain {
|
||
min-height: 100vh;
|
||
display: flex;
|
||
align-items: center;
|
||
padding: 120px 0 90px;
|
||
}
|
||
|
||
.homeMain__inner {
|
||
width: 100%;
|
||
}
|
||
|
||
.homeCenter {
|
||
text-align: center;
|
||
max-width: 920px;
|
||
margin: 0 auto;
|
||
}
|
||
|
||
.homeBadges {
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
gap: 10px;
|
||
flex-wrap: wrap;
|
||
margin: 0 0 14px;
|
||
}
|
||
|
||
.badge--big {
|
||
font-size: 12px;
|
||
padding: 7px 12px;
|
||
border-radius: 999px;
|
||
letter-spacing: 0.08em;
|
||
}
|
||
|
||
.type--home {
|
||
font-size: clamp(44px, 7vw, 74px);
|
||
line-height: 1.05;
|
||
margin: 0 0 14px;
|
||
color: #111827;
|
||
}
|
||
|
||
.type--home .type__prefix,
|
||
.type--home .type__suffix {
|
||
font-weight: 800;
|
||
}
|
||
|
||
.type--home .type__caret {
|
||
width: 0.18em;
|
||
height: 1.05em;
|
||
margin-left: 0.12em;
|
||
border-radius: 0.14em;
|
||
background: rgba(17, 24, 39, 0.65);
|
||
}
|
||
|
||
.quote--home {
|
||
margin: 0 auto 14px;
|
||
}
|
||
|
||
.quote--home .quote__text {
|
||
font-size: 14px;
|
||
}
|
||
|
||
.homeLede {
|
||
margin: 0 auto 0;
|
||
max-width: 78ch;
|
||
color: #374151;
|
||
font-size: 13px;
|
||
}
|
||
|
||
.homeStepper {
|
||
margin: 18px auto 0;
|
||
max-width: 920px;
|
||
text-align: left;
|
||
opacity: 0;
|
||
transform: translateY(6px);
|
||
transition:
|
||
opacity 420ms ease,
|
||
transform 420ms ease;
|
||
}
|
||
|
||
.homeStepper.homeStepper--show {
|
||
opacity: 1;
|
||
transform: translateY(0);
|
||
}
|
||
|
||
.homeLinks {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
gap: 10px;
|
||
margin: 14px 0 0;
|
||
}
|
||
|
||
.homeLink {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
padding: 9px 10px;
|
||
border-radius: 12px;
|
||
border: 1px solid var(--border);
|
||
background: #ffffff;
|
||
color: var(--text);
|
||
font-weight: 650;
|
||
font-size: 12px;
|
||
box-shadow: var(--shadow);
|
||
text-decoration: none;
|
||
}
|
||
|
||
.homeLink:hover {
|
||
text-decoration: none;
|
||
border-color: rgba(29, 78, 216, 0.35);
|
||
box-shadow:
|
||
var(--shadow),
|
||
0 0 0 4px rgba(29, 78, 216, 0.10);
|
||
}
|
||
|
||
.homeMeta {
|
||
margin-top: 14px;
|
||
font-size: 12px;
|
||
color: var(--muted);
|
||
}
|
||
|
||
@media (max-width: 980px) {
|
||
body.home .top {
|
||
position: sticky;
|
||
background: rgba(255, 253, 247, 0.92);
|
||
border-bottom: 1px solid var(--border);
|
||
backdrop-filter: blur(10px);
|
||
}
|
||
|
||
.homeMain {
|
||
padding-top: 86px;
|
||
}
|
||
|
||
.type--home {
|
||
font-size: clamp(38px, 10vw, 54px);
|
||
}
|
||
}
|
||
```
|
||
|
||
## `assets/if-logo-simple.svg`
|
||
- Source: `ifttt/assets/if-logo-simple.svg`
|
||
|
||
```svg
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<svg
|
||
xmlns="http://www.w3.org/2000/svg"
|
||
width="1024"
|
||
height="1024"
|
||
viewBox="0 0 512 512"
|
||
role="img"
|
||
aria-labelledby="title desc"
|
||
>
|
||
<title id="title">if. mark</title>
|
||
<desc id="desc">Stylized “if.” mark with subtle gradient and shadow.</desc>
|
||
|
||
<defs>
|
||
<linearGradient id="ifBlue" x1="70" y1="0" x2="440" y2="0" gradientUnits="userSpaceOnUse">
|
||
<stop offset="0" stop-color="#0b253b" />
|
||
<stop offset="0.44" stop-color="#164d7a" />
|
||
<stop offset="0.56" stop-color="#1b5a8e" />
|
||
<stop offset="1" stop-color="#0b253b" />
|
||
</linearGradient>
|
||
|
||
<filter id="ifShadow" x="-40%" y="-40%" width="180%" height="180%">
|
||
<feOffset in="SourceAlpha" dx="0" dy="14" result="off" />
|
||
<feGaussianBlur in="off" stdDeviation="12" result="blur" />
|
||
<feColorMatrix
|
||
in="blur"
|
||
type="matrix"
|
||
values="0 0 0 0 0
|
||
0 0 0 0 0
|
||
0 0 0 0 0
|
||
0 0 0 0.28 0"
|
||
result="shadow"
|
||
/>
|
||
<feMerge>
|
||
<feMergeNode in="shadow" />
|
||
<feMergeNode in="SourceGraphic" />
|
||
</feMerge>
|
||
</filter>
|
||
</defs>
|
||
|
||
<!--
|
||
Mark group:
|
||
- i (stem + dot)
|
||
- f (stem + top bar + crossbar)
|
||
- period dot
|
||
-->
|
||
<g filter="url(#ifShadow)" transform="translate(75 15)" fill="url(#ifBlue)">
|
||
<!-- i -->
|
||
<circle cx="35" cy="125" r="32" />
|
||
<rect x="0" y="170" width="70" height="220" rx="8" />
|
||
|
||
<!-- f -->
|
||
<rect x="120" y="140" width="86" height="250" rx="10" />
|
||
<rect x="120" y="110" width="150" height="90" rx="45" />
|
||
<rect x="120" y="240" width="140" height="80" rx="28" />
|
||
|
||
<!-- . -->
|
||
<circle cx="330" cy="358" r="32" />
|
||
</g>
|
||
</svg>
|
||
```
|
||
|
||
## `assets/ifttt-quotes.json`
|
||
- Source: `ifttt/assets/ifttt-quotes.json`
|
||
|
||
```json
|
||
[
|
||
{
|
||
"text": "Footnotes aren't decorations. They're load-bearing walls.",
|
||
"source": "IF.TTT paper (v2.3)",
|
||
"href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
|
||
},
|
||
{
|
||
"text": "If there's no IF.TTT trace, it didn't happen—or shouldn't be trusted.",
|
||
"source": "IF.TTT doctrine",
|
||
"href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
|
||
},
|
||
{
|
||
"text": "No trace, no trust. Simple as that.",
|
||
"source": "IF.TTT doctrine",
|
||
"href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
|
||
},
|
||
{
|
||
"text": "Trust isn't claimed. It's proven.",
|
||
"source": "IF.TTT paper (v2.3)",
|
||
"href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
|
||
},
|
||
{
|
||
"text": "We don’t claim trust. We publish receipts.",
|
||
"source": "IF.TTT stance",
|
||
"href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
|
||
},
|
||
{
|
||
"text": "Your auditor shouldn’t need your credentials.",
|
||
"source": "IF.TTT public receipts",
|
||
"href": "https://infrafabric.io/static/hosted/ifttt/"
|
||
},
|
||
{
|
||
"text": "Third parties verify. We just publish the math.",
|
||
"source": "IF.TTT posture",
|
||
"href": "https://infrafabric.io/static/hosted/ifttt/"
|
||
},
|
||
{
|
||
"text": "Receipts must be readable and verifiable without credentials.",
|
||
"source": "IF.TTT public receipt surface",
|
||
"href": "https://infrafabric.io/static/hosted/ifttt/"
|
||
},
|
||
{
|
||
"text": "Design constraint: black/white clarity. No “maybe”.",
|
||
"source": "IF.TTT ops (full stack)",
|
||
"href": "https://infrafabric.io/static/hosted/ifttt/api/"
|
||
},
|
||
{
|
||
"text": "We do not claim “quantum-secure”. We claim “quantum-ready”.",
|
||
"source": "IF.TTT tech stack",
|
||
"href": "https://infrafabric.io/static/hosted/ifttt/api/"
|
||
},
|
||
{
|
||
"text": "The stenographer doesn't make the therapy cold. The stenographer makes it accountable.",
|
||
"source": "IF.emotion on IF.TTT",
|
||
"href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
|
||
},
|
||
{
|
||
"text": "That's the moat.",
|
||
"source": "IF.TTT paper (v2.3)",
|
||
"href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
|
||
},
|
||
{
|
||
"text": "The moat is not the AI. The moat is the proof.",
|
||
"source": "IF.TTT paper (v2.3)",
|
||
"href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
|
||
},
|
||
{
|
||
"text": "If it’s not verifiable, label it as a gap. Do not endorse it.",
|
||
"source": "IF.TTT stance",
|
||
"href": "https://infrafabric.io/static/hosted/ifttt/"
|
||
}
|
||
]
|
||
```
|
||
</code></pre>
|
||
</details>
|
||
</main>
|
||
</body>
|
||
</html>
|