Add IF.TTT marketing site (hero, verticals, API, about)

This commit is contained in:
root 2025-12-29 01:48:15 +00:00
parent 2938ab2c9f
commit cea7e100df
17 changed files with 2304 additions and 2 deletions

165
ifttt/about/index.html Normal file
View file

@ -0,0 +1,165 @@
<!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="../verticals/">Verticals</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">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, nologin 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 receiptfirst 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 chainofcustody. Dont 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 machinecheckable 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 doesnt)</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, nologin 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="../api/">Developers</a> · <a href="mailto:trace@infrafabric.io">trace@infrafabric.io</a>
</div>
</div>
</footer>
<div class="bottombar" aria-label="Quick links">
<div class="wrap bottombar__inner">
<div class="bottombar__left">
<a href="../verticals/finance/">Finance</a>
<a href="../verticals/legal/">Legal</a>
<a href="../verticals/sciences/">Sciences</a>
<a href="../verticals/government/">Government</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>

186
ifttt/api/index.html Normal file
View file

@ -0,0 +1,186 @@
<!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="../about/">About</a>
<a href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html" target="_blank" rel="noreferrer"
>Paper</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 postquantum 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">NOLOGIN</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 receipts 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="mailto:trace@infrafabric.io">trace@infrafabric.io</a> · <a href="../">IF.TTT</a>
</div>
</div>
</footer>
<div class="bottombar" aria-label="Quick links">
<div class="wrap bottombar__inner">
<div class="bottombar__left">
<a href="../verticals/finance/">Finance</a>
<a href="../verticals/legal/">Legal</a>
<a href="../verticals/sciences/">Sciences</a>
<a href="../verticals/government/">Government</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>

150
ifttt/app.js Normal file
View file

@ -0,0 +1,150 @@
(() => {
const typewordEl = document.getElementById("typeword");
if (typewordEl) startTypewriter(typewordEl);
const quoteTextEl = document.getElementById("quoteText");
const quoteMetaEl = document.getElementById("quoteMeta");
const quoteWrapEl = quoteTextEl?.closest?.(".quote");
if (quoteTextEl && quoteMetaEl && quoteWrapEl) startQuoteTicker({ quoteWrapEl, quoteTextEl, quoteMetaEl });
})();
function startTypewriter(typewordEl) {
const words = ["Transparent", "Traceable", "Trustworthy", "TTT"];
const typeMs = 42;
const deleteMs = 26;
const holdMs = 780;
const finalHoldMs = 1100;
const betweenMs = 180;
let wordIndex = 0;
let charIndex = 0;
let isDeleting = false;
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;
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("./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 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));
}

View file

@ -0,0 +1,60 @@
<?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>

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -0,0 +1,57 @@
[
{
"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": "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 its not verifiable, label it as a gap. Do not endorse it.",
"source": "IF.TTT stance",
"href": "https://infrafabric.io/static/hosted/ifttt/"
}
]

View file

@ -8,14 +8,25 @@
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>
<header class="top">
<div class="wrap top__inner">
<a class="brand" href="#top" aria-label="IF.TTT home">
<span class="brand__mark" aria-hidden="true"></span>
<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>
@ -28,6 +39,8 @@
<a href="#verify">Verify</a>
<a href="#verticals">Verticals</a>
<a href="#faq">FAQ</a>
<a href="./api/">Developers</a>
<a href="./about/">About</a>
</nav>
</div>
</header>
@ -38,6 +51,14 @@
<div class="hero__copy">
<p class="kicker">Open governance, readable by outsiders</p>
<h1>Receipts, not vibes.</h1>
<div class="type" 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" aria-live="polite" aria-label="Rotating quote">
<div class="quote__text" id="quoteText"></div>
<div class="quote__meta" id="quoteMeta"></div>
</div>
<p class="lede">
IF.TTT is a receiptfirst governance layer. It binds a <strong>source artifact</strong> to an <strong>output</strong> with a
<strong>trace page</strong>, stable <strong>nologin links</strong>, and optional <strong>offline bundles</strong> anyone can verify.
@ -282,6 +303,7 @@ python3 iftrace.py verify trace_bundle_&lt;id&gt;_standard.tar.gz --expected-sha
<p class="vcard__v">Evidence that controls existed at the right time, in the right scope, with receipts.</p>
<p class="vcard__k">IF.TTT helps by</p>
<p class="vcard__v">Publishing nologin receipts and offline bundles for disputes and audits.</p>
<a class="vcard__more" href="./verticals/saas/">B2B SaaS →</a>
</article>
<article class="vcard">
@ -299,6 +321,7 @@ python3 iftrace.py verify trace_bundle_&lt;id&gt;_standard.tar.gz --expected-sha
<p class="vcard__v">Nonrepudiation, dispute workflows, and “show your work” provenance.</p>
<p class="vcard__k">IF.TTT helps by</p>
<p class="vcard__v">Binding outputs to sources and creating a defensible, replayable receipt trail.</p>
<a class="vcard__more" href="./verticals/finance/">Finance →</a>
</article>
<article class="vcard">
@ -316,6 +339,7 @@ python3 iftrace.py verify trace_bundle_&lt;id&gt;_standard.tar.gz --expected-sha
<p class="vcard__v">Clear boundaries: whats verified, whats inferred, and what must be reviewed by humans.</p>
<p class="vcard__k">IF.TTT helps by</p>
<p class="vcard__v">Making evidence legible to outsiders while preserving strict, machineverifiable receipts.</p>
<a class="vcard__more" href="./verticals/healthcare/">Healthcare →</a>
</article>
<article class="vcard">
@ -332,6 +356,7 @@ python3 iftrace.py verify trace_bundle_&lt;id&gt;_standard.tar.gz --expected-sha
<p class="vcard__v">Offlineverifiable bundles and unambiguous chainofcustody.</p>
<p class="vcard__k">IF.TTT helps by</p>
<p class="vcard__v">Providing triage bundles that can be verified without trusted network access.</p>
<a class="vcard__more" href="./verticals/government/">Government →</a>
</article>
<article class="vcard">
@ -349,6 +374,7 @@ python3 iftrace.py verify trace_bundle_&lt;id&gt;_standard.tar.gz --expected-sha
<p class="vcard__v">Provable provenance for outputs (“why did it say that?”) without internal access.</p>
<p class="vcard__k">IF.TTT helps by</p>
<p class="vcard__v">Making trace receipts shareable, replayable, and disputefriendly.</p>
<a class="vcard__more" href="./verticals/ai/">AI products →</a>
</article>
<article class="vcard">
@ -367,6 +393,7 @@ python3 iftrace.py verify trace_bundle_&lt;id&gt;_standard.tar.gz --expected-sha
<p class="vcard__v">To verify AI summaries against raw evidence and keep chainofcustody intact.</p>
<p class="vcard__k">IF.TTT helps by</p>
<p class="vcard__v">Binding “what the system said” to “what the system saw” via receipts and bundles.</p>
<a class="vcard__more" href="./verticals/secops/">SecOps →</a>
</article>
<article class="vcard">
@ -384,6 +411,7 @@ python3 iftrace.py verify trace_bundle_&lt;id&gt;_standard.tar.gz --expected-sha
<p class="vcard__v">Proof of change control and traceability that survives contractor handoffs.</p>
<p class="vcard__k">IF.TTT helps by</p>
<p class="vcard__v">Standardizing receipts so handoffs remain verifiable across organizational boundaries.</p>
<a class="vcard__more" href="./verticals/supply-chain/">Supply chain →</a>
</article>
</div>
</div>
@ -454,5 +482,21 @@ python3 iftrace.py verify trace_bundle_&lt;id&gt;_standard.tar.gz --expected-sha
</div>
</div>
</footer>
<div class="bottombar" aria-label="Quick links">
<div class="wrap bottombar__inner">
<div class="bottombar__left">
<a href="./verticals/finance/">Finance</a>
<a href="./verticals/legal/">Legal</a>
<a href="./verticals/sciences/">Sciences</a>
<a href="./verticals/government/">Government</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>

View file

@ -23,10 +23,11 @@ html {
body {
margin: 0;
font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
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 {
@ -106,6 +107,14 @@ pre.code code {
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;
@ -171,6 +180,75 @@ h1 {
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;
@ -372,6 +450,7 @@ h2 {
}
.step {
position: relative;
display: grid;
grid-template-columns: 44px 1fr;
gap: 12px;
@ -382,6 +461,20 @@ h2 {
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;
@ -550,6 +643,24 @@ h2 {
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;
@ -617,6 +728,52 @@ details p {
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 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;
@ -636,4 +793,8 @@ details p {
h1 {
font-size: 34px;
}
body {
padding-bottom: 74px;
}
}

View file

@ -0,0 +1,119 @@
<!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="../../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>Thirdparty 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 nologin 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">DISPUTEREADY</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 isnt the product. The proof is.</div>
<div class="muted">
<a href="../">Verticals</a> · <a href="../../api/">Developers</a> · <a href="mailto:trace@infrafabric.io">trace@infrafabric.io</a>
</div>
</div>
</footer>
<div class="bottombar" aria-label="Quick links">
<div class="wrap bottombar__inner">
<div class="bottombar__left">
<a href="../finance/">Finance</a>
<a href="../legal/">Legal</a>
<a href="../sciences/">Sciences</a>
<a href="../government/">Government</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>

View file

@ -0,0 +1,166 @@
<!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="../../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 dont 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?” Its “show me the evidence chain: inputs,
outputs, timestamps, and who approved what.”
</p>
<div class="panel">
<h3>Thirdparty pressure</h3>
<ul class="list">
<li>Model risk / validation teams need reproducibility.</li>
<li>Internal audit needs nonrepudiation and timescoped proof.</li>
<li>Regulators need chainofcustody 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 whats 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">RECEIPTFIRST</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 shouldnt 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 isnt special. The auditors are just earlier.</div>
<div class="muted">
<a href="../">Verticals</a> · <a href="../../api/">Developers</a> · <a href="mailto:trace@infrafabric.io">trace@infrafabric.io</a>
</div>
</div>
</footer>
<div class="bottombar" aria-label="Quick links">
<div class="wrap bottombar__inner">
<div class="bottombar__left">
<a href="../finance/">Finance</a>
<a href="../legal/">Legal</a>
<a href="../sciences/">Sciences</a>
<a href="../government/">Government</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>

View file

@ -0,0 +1,148 @@
<!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="../../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 firstclass requirement.
</p>
<div class="panel">
<h3>Thirdparty pressure</h3>
<ul class="list">
<li>Assessors demand chainofcustody 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 nologin 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 dont.</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 cant be verified offline, its not a control.</div>
<div class="muted">
<a href="../">Verticals</a> · <a href="../../api/">Developers</a> · <a href="mailto:trace@infrafabric.io">trace@infrafabric.io</a>
</div>
</div>
</footer>
<div class="bottombar" aria-label="Quick links">
<div class="wrap bottombar__inner">
<div class="bottombar__left">
<a href="../finance/">Finance</a>
<a href="../legal/">Legal</a>
<a href="../sciences/">Sciences</a>
<a href="../government/">Government</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>

View file

@ -0,0 +1,139 @@
<!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="../../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>Thirdparty 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="../../api/">Developers</a> · <a href="mailto:trace@infrafabric.io">trace@infrafabric.io</a>
</div>
</div>
</footer>
<div class="bottombar" aria-label="Quick links">
<div class="wrap bottombar__inner">
<div class="bottombar__left">
<a href="../finance/">Finance</a>
<a href="../legal/">Legal</a>
<a href="../sciences/">Sciences</a>
<a href="../government/">Government</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>

168
ifttt/verticals/index.html Normal file
View file

@ -0,0 +1,168 @@
<!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="../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">Same mechanism, different pressure</p>
<h1>Verticals are just different auditors.</h1>
<p class="lede">
IF.TTT doesnt “solve compliance.” It solves the universal problem underneath compliance: third parties demanding proof without joining
your internal world.
</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">RECEIPTFIRST</div>
<div class="badge">NOLOGIN</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>Choose a vertical</h2>
<p class="sub">Each page explains what third parties demand and what receipts make those demands tractable.</p>
<div class="cards">
<article class="vcard">
<h3>Fintech / Regulated Finance</h3>
<p class="vcard__v">Model risk, nonrepudiation, dispute workflows.</p>
<a class="vcard__more" href="./finance/">Finance →</a>
</article>
<article class="vcard">
<h3>Legal</h3>
<p class="vcard__v">Chainofcustody for drafts, evidence, and decisions.</p>
<a class="vcard__more" href="./legal/">Legal →</a>
</article>
<article class="vcard">
<h3>Sciences / Research</h3>
<p class="vcard__v">Provenance, reproducibility, and external reviewers.</p>
<a class="vcard__more" href="./sciences/">Sciences →</a>
</article>
<article class="vcard">
<h3>Government / Defense</h3>
<p class="vcard__v">Offline verification and unambiguous custody.</p>
<a class="vcard__more" href="./government/">Government →</a>
</article>
<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>Healthcare</h3>
<p class="vcard__v">Clear boundaries, audit trails, and disputeready receipts.</p>
<a class="vcard__more" href="./healthcare/">Healthcare →</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="../api/">Developers</a> · <a href="mailto:trace@infrafabric.io">trace@infrafabric.io</a>
</div>
</div>
</footer>
<div class="bottombar" aria-label="Quick links">
<div class="wrap bottombar__inner">
<div class="bottombar__left">
<a href="./finance/">Finance</a>
<a href="./legal/">Legal</a>
<a href="./sciences/">Sciences</a>
<a href="./government/">Government</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>

View file

@ -0,0 +1,159 @@
<!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="../../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 dont 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>Thirdparty pressure</h3>
<ul class="list">
<li>Disputes demand reproducibility: the exact input and the exact output.</li>
<li>Evidence must be timescoped: “what did we know, when did we know it?”</li>
<li>Chainofcustody 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">Nologin 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">CHAINOFCUSTODY</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="../../api/">Developers</a> · <a href="mailto:trace@infrafabric.io">trace@infrafabric.io</a>
</div>
</div>
</footer>
<div class="bottombar" aria-label="Quick links">
<div class="wrap bottombar__inner">
<div class="bottombar__left">
<a href="../finance/">Finance</a>
<a href="../legal/">Legal</a>
<a href="../sciences/">Sciences</a>
<a href="../government/">Government</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>

View file

@ -0,0 +1,146 @@
<!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="../../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 isnt the control design. Its proving the control existed at the right time, in the right scope, without
granting auditors full internal access.
</p>
<div class="panel">
<h3>Thirdparty 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>Postincident 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">Nologin</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">Disputeready</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">AUDITFRICTION</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 nologin 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 isnt portable, the audit will be.</div>
<div class="muted">
<a href="../">Verticals</a> · <a href="../../api/">Developers</a> · <a href="mailto:trace@infrafabric.io">trace@infrafabric.io</a>
</div>
</div>
</footer>
<div class="bottombar" aria-label="Quick links">
<div class="wrap bottombar__inner">
<div class="bottombar__left">
<a href="../finance/">Finance</a>
<a href="../legal/">Legal</a>
<a href="../sciences/">Sciences</a>
<a href="../government/">Government</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>

View file

@ -0,0 +1,159 @@
<!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="../../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 cant.
</p>
<div class="panel">
<h3>Thirdparty 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 cant be reproduced, it cant be governed.</div>
<div class="muted">
<a href="../">Verticals</a> · <a href="../../api/">Developers</a> · <a href="mailto:trace@infrafabric.io">trace@infrafabric.io</a>
</div>
</div>
</footer>
<div class="bottombar" aria-label="Quick links">
<div class="wrap bottombar__inner">
<div class="bottombar__left">
<a href="../finance/">Finance</a>
<a href="../legal/">Legal</a>
<a href="../sciences/">Sciences</a>
<a href="../government/">Government</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>

View file

@ -0,0 +1,136 @@
<!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="../../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>Thirdparty 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">Whats verified is stated; whats 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 dont hold up. Receipts do.</div>
<div class="muted">
<a href="../">Verticals</a> · <a href="../../api/">Developers</a> · <a href="mailto:trace@infrafabric.io">trace@infrafabric.io</a>
</div>
</div>
</footer>
<div class="bottombar" aria-label="Quick links">
<div class="wrap bottombar__inner">
<div class="bottombar__left">
<a href="../finance/">Finance</a>
<a href="../legal/">Legal</a>
<a href="../sciences/">Sciences</a>
<a href="../government/">Government</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>

View file

@ -0,0 +1,139 @@
<!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="../../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 chainofcustody doesnt
collapse the moment responsibility moves.
</p>
<div class="panel">
<h3>Thirdparty 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 nologin 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">HANDOFFSAFE</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 shouldnt.</div>
<div class="muted">
<a href="../">Verticals</a> · <a href="../../api/">Developers</a> · <a href="mailto:trace@infrafabric.io">trace@infrafabric.io</a>
</div>
</div>
</footer>
<div class="bottombar" aria-label="Quick links">
<div class="wrap bottombar__inner">
<div class="bottombar__left">
<a href="../finance/">Finance</a>
<a href="../legal/">Legal</a>
<a href="../sciences/">Sciences</a>
<a href="../government/">Government</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>