diff --git a/ifttt/about/index.html b/ifttt/about/index.html new file mode 100644 index 0000000..4b7367b --- /dev/null +++ b/ifttt/about/index.html @@ -0,0 +1,165 @@ + + + + + + IF.TTT — About + + + + + +
+
+ + + + IF.TTT + About + + + + +
+
+ +
+
+
+
+

Why this exists

+

We built the skeleton first.

+

+ 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. +

+ +
+

Who / Why / What / Where / When / How

+
+
+
Who
+
InfraFabric operators shipping public, no‑login verification artifacts.
+
+
+
Why
+
Because “trust us” fails the moment a reviewer asks for proof.
+
+
+
What
+
A receipt‑first protocol: bind source_sha256output_sha256 under a trace receipt.
+
+
+
Where
+
On a stable public share surface (no login): trace, dossier, packs, and source.
+
+
+
When
+
At publication time: the receipt is generated and can be verified later during disputes.
+
+
+
How
+
Hashes + receipts + optional offline bundles; nothing magical, just opposable proof.
+
+
+
+ + +
+ + +
+
+ +
+
+

What a receipt proves (and what it doesn’t)

+
+
+

Proves

+
    +
  • Integrity binding: the published bytes match the hashes on the receipt.
  • +
  • Traceability: a reviewer can point to a stable, no‑login receipt.
  • +
  • Replay: verification still works during disputes (offline bundles when needed).
  • +
+
+
+

Does not prove

+
    +
  • Intent, interpretation, or “correctness” of a narrative.
  • +
  • That a control is effective—only that the evidence exists and is bound to the record.
  • +
  • Compliance scope (people, policy, contracts); receipts are inputs to governance.
  • +
+
+
+
+
+ +
+ +
+
+ + + +
+
+ +
+ Developers + | + API +
+
+
+ + + diff --git a/ifttt/api/index.html b/ifttt/api/index.html new file mode 100644 index 0000000..a01204d --- /dev/null +++ b/ifttt/api/index.html @@ -0,0 +1,186 @@ + + + + + + IF.TTT — Developers / API + + + + + +
+
+ + + + IF.TTT + Developers / API + + + + +
+
+ +
+
+
+
+

Public receipt surface (no login)

+

Stable URLs, predictable verification.

+

+ 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. +

+
+

What “VERIFIED” means (black/white)

+
+
+
Verified
+
The bytes you can download hash to the same values shown on the trace receipt.
+
+
+
Quantum ready
+
A post‑quantum signature receipt exists (additive; integrity hashes still stand).
+
+
+
Not implied
+
Compliance, intent, or correctness of interpretation.
+
+
+
+
+ + +
+
+ +
+
+

HTML fallback (for sandboxed reviewers)

+

+ Some external review environments can load HTML but reject downloadable binaries or raw markdown. For those, we publish HTML views alongside + the raw assets. +

+
+
+

Raw

+
/static/pack/<shareId>.md
+/static/review/<shareId>.md
+/static/marketing/<shareId>.md
+
+
+

HTML view

+
/static/pack/<shareId>
+/static/review/<shareId>
+/static/marketing/<shareId>
+
+
+
+
+ +
+
+

Offline verification (triage bundles)

+

Download a bundle (lightweight/standard/full) and verify without relying on the live site.

+
+
+

Bundle selector (demo)

+ +

+ Note: some “web fetchers” reject .tar.gz with a client-side error even when browsers/curl succeed. Use the HTML views and + download bundles locally. +

+
+
+

Verify (CLI)

+
curl -fsSL -o iftrace.py 'https://infrafabric.io/static/hosted/iftrace.py'
+python3 iftrace.py verify trace_bundle_<id>_standard.tar.gz --expected-sha256 <sha256>
+

If hashes match, the receipt’s integrity claim is satisfied.

+
+
+
+
+ +
+ +
+
+ + + +
+
+ +
+ Developers + | + API +
+
+
+ + diff --git a/ifttt/app.js b/ifttt/app.js new file mode 100644 index 0000000..354eb3e --- /dev/null +++ b/ifttt/app.js @@ -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)); +} + diff --git a/ifttt/assets/if-logo-simple.svg b/ifttt/assets/if-logo-simple.svg new file mode 100644 index 0000000..342886f --- /dev/null +++ b/ifttt/assets/if-logo-simple.svg @@ -0,0 +1,60 @@ + + + if. mark + Stylized “if.” mark with subtle gradient and shadow. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ifttt/assets/ifttt-quotes.json b/ifttt/assets/ifttt-quotes.json new file mode 100644 index 0000000..6ca1e19 --- /dev/null +++ b/ifttt/assets/ifttt-quotes.json @@ -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 it’s not verifiable, label it as a gap. Do not endorse it.", + "source": "IF.TTT stance", + "href": "https://infrafabric.io/static/hosted/ifttt/" + } +] diff --git a/ifttt/index.html b/ifttt/index.html index af775cf..f32f86b 100644 --- a/ifttt/index.html +++ b/ifttt/index.html @@ -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." /> + + + + + + + +
- + IF.TTT Traceable • Transparent • Trustworthy @@ -28,6 +39,8 @@ Verify Verticals FAQ + Developers + About
@@ -38,6 +51,14 @@

Open governance, readable by outsiders

Receipts, not vibes.

+
+ if.> +
+
+
+
+

IF.TTT is a receipt‑first governance layer. It binds a source artifact to an output with a trace page, stable no‑login links, and optional offline bundles anyone can verify. @@ -282,6 +303,7 @@ python3 iftrace.py verify trace_bundle_<id>_standard.tar.gz --expected-sha

Evidence that controls existed at the right time, in the right scope, with receipts.

IF.TTT helps by

Publishing no‑login receipts and offline bundles for disputes and audits.

+ B2B SaaS →
@@ -299,6 +321,7 @@ python3 iftrace.py verify trace_bundle_<id>_standard.tar.gz --expected-sha

Non‑repudiation, dispute workflows, and “show your work” provenance.

IF.TTT helps by

Binding outputs to sources and creating a defensible, replayable receipt trail.

+ Finance →
@@ -316,6 +339,7 @@ python3 iftrace.py verify trace_bundle_<id>_standard.tar.gz --expected-sha

Clear boundaries: what’s verified, what’s inferred, and what must be reviewed by humans.

IF.TTT helps by

Making evidence legible to outsiders while preserving strict, machine‑verifiable receipts.

+ Healthcare →
@@ -332,6 +356,7 @@ python3 iftrace.py verify trace_bundle_<id>_standard.tar.gz --expected-sha

Offline‑verifiable bundles and unambiguous chain‑of‑custody.

IF.TTT helps by

Providing triage bundles that can be verified without trusted network access.

+ Government →
@@ -349,6 +374,7 @@ python3 iftrace.py verify trace_bundle_<id>_standard.tar.gz --expected-sha

Provable provenance for outputs (“why did it say that?”) without internal access.

IF.TTT helps by

Making trace receipts shareable, replayable, and dispute‑friendly.

+ AI products →
@@ -367,6 +393,7 @@ python3 iftrace.py verify trace_bundle_<id>_standard.tar.gz --expected-sha

To verify AI summaries against raw evidence and keep chain‑of‑custody intact.

IF.TTT helps by

Binding “what the system said” to “what the system saw” via receipts and bundles.

+ SecOps →
@@ -384,6 +411,7 @@ python3 iftrace.py verify trace_bundle_<id>_standard.tar.gz --expected-sha

Proof of change control and traceability that survives contractor handoffs.

IF.TTT helps by

Standardizing receipts so handoffs remain verifiable across organizational boundaries.

+ Supply chain →
@@ -454,5 +482,21 @@ python3 iftrace.py verify trace_bundle_<id>_standard.tar.gz --expected-sha + +
+
+ +
+ Developers + | + API +
+
+
diff --git a/ifttt/style.css b/ifttt/style.css index ff471f2..41f37dd 100644 --- a/ifttt/style.css +++ b/ifttt/style.css @@ -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; + } } diff --git a/ifttt/verticals/ai/index.html b/ifttt/verticals/ai/index.html new file mode 100644 index 0000000..430d712 --- /dev/null +++ b/ifttt/verticals/ai/index.html @@ -0,0 +1,119 @@ + + + + + + IF.TTT — AI Products + + + + + +
+
+ + + + IF.TTT + AI product companies + + + + +
+
+ +
+
+
+
+

AI product reality

+

“Why did it say that?” becomes a contract clause.

+

+ 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. +

+ +
+

Third‑party pressure

+
    +
  • Enterprise buyers demand defensible provenance without joining your internal stack.
  • +
  • Incident responders demand integrity-bound artifacts for “what happened.”
  • +
  • GRC teams demand a black/white boundary between verified evidence and interpretation.
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Receipts
+
Trace pages + stable no‑login URLs for outputs and sources.
+
+
+
Disputes
+
Offline bundles for verification after access or context changes.
+
+
+
Clarity
+
Proves integrity and publication; does not claim intent or correctness.
+
+
+
+
+ + +
+
+
+ + + +
+
+ +
+ Developers + | + API +
+
+
+ + diff --git a/ifttt/verticals/finance/index.html b/ifttt/verticals/finance/index.html new file mode 100644 index 0000000..8b0b14d --- /dev/null +++ b/ifttt/verticals/finance/index.html @@ -0,0 +1,166 @@ + + + + + + IF.TTT — Finance + + + + + +
+
+ + + + IF.TTT + Fintech / regulated finance + + + + +
+
+ +
+
+
+
+

Finance reality

+

Regulators don’t buy narratives. They buy receipts.

+

+ 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.” +

+ +
+

Third‑party pressure

+
    +
  • Model risk / validation teams need reproducibility.
  • +
  • Internal audit needs non‑repudiation and time‑scoped proof.
  • +
  • Regulators need chain‑of‑custody that survives disputes.
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Receipt
+
A public trace page binding source_sha256output_sha256.
+
+
+
Dispute
+
Offline bundles for later verification without relying on internal access.
+
+
+
Clarity
+
Black/white separation of what’s verified vs what is interpretation.
+
+
+
+
+ + +
+
+ +
+
+

Artifacts you can hand to third parties

+

This is the point: reviewers shouldn’t need your VPN.

+
Trace receipt: https://infrafabric.io/static/trace/<shareId>
+Output (rendered): https://infrafabric.io/static/dossier/<shareId>
+Output (raw): https://infrafabric.io/static/dossier/<shareId>/download
+Offline bundles: https://infrafabric.io/static/hosted/review/trace-bundles/<id>/index.html
+
+
+ +
+ +
+
+ + + +
+
+ +
+ Developers + | + API +
+
+
+ + diff --git a/ifttt/verticals/government/index.html b/ifttt/verticals/government/index.html new file mode 100644 index 0000000..b647b43 --- /dev/null +++ b/ifttt/verticals/government/index.html @@ -0,0 +1,148 @@ + + + + + + IF.TTT — Government + + + + + +
+
+ + + + IF.TTT + Government / defense + + + + +
+
+ +
+
+
+
+

Government reality

+

Assurance is an offline problem.

+

+ 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. +

+ +
+

Third‑party pressure

+
    +
  • Assessors demand chain‑of‑custody and unambiguous provenance.
  • +
  • Procurement wants proof that survives vendor handoffs.
  • +
  • Security teams need evidence that is portable across networks and time.
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Offline bundles
+
Triage bundles (lightweight/standard/full) with expected hashes for trustless verification.
+
+
+
Receipt surface
+
Stable no‑login URLs for trace + output + source.
+
+
+
Black/white
+
Clear statement of what integrity receipts prove—and what they don’t.
+
+
+
+
+ + +
+
+ +
+
+

What you can hand to an assessor

+

No accounts required. No internal consoles required.

+
Trace receipt: https://infrafabric.io/static/trace/<shareId>
+Bundle selector: https://infrafabric.io/static/hosted/review/trace-bundles/<id>/index.html
+Verifier: https://infrafabric.io/static/hosted/iftrace.py
+
+
+ +
+ +
+
+ + + +
+
+ +
+ Developers + | + API +
+
+
+ + diff --git a/ifttt/verticals/healthcare/index.html b/ifttt/verticals/healthcare/index.html new file mode 100644 index 0000000..c1b8355 --- /dev/null +++ b/ifttt/verticals/healthcare/index.html @@ -0,0 +1,139 @@ + + + + + + IF.TTT — Healthcare + + + + + +
+
+ + + + IF.TTT + Healthcare + + + + +
+
+ +
+
+
+
+

Healthcare reality

+

Clarity beats confidence.

+

+ Healthcare environments punish ambiguity. IF.TTT makes “what we can prove” explicit, and forces everything else to be labeled as + interpretation or review-required. +

+ +
+

Third‑party pressure

+
    +
  • Compliance wants evidence that is bounded and reviewable.
  • +
  • Incident reviewers want provenance for outputs and decisions.
  • +
  • Vendors and partners want proof without access to your internal tooling.
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Verified
+
Integrity binding (hashes), receipts, optional signatures.
+
+
+
Not verified
+
Clinical intent, interpretation, or correctness of conclusions.
+
+
+
Outcome
+
Evidence becomes legible to outsiders without pretending it is “the decision.”
+
+
+
+
+ + +
+
+
+ + + +
+
+ +
+ Developers + | + API +
+
+
+ + diff --git a/ifttt/verticals/index.html b/ifttt/verticals/index.html new file mode 100644 index 0000000..66b3924 --- /dev/null +++ b/ifttt/verticals/index.html @@ -0,0 +1,168 @@ + + + + + + IF.TTT — Verticals + + + + + +
+
+ + + + IF.TTT + Vertical fit + + + + +
+
+ +
+
+
+
+

Same mechanism, different pressure

+

Verticals are just different auditors.

+

+ IF.TTT doesn’t “solve compliance.” It solves the universal problem underneath compliance: third parties demanding proof without joining + your internal world. +

+ +
+ + +
+
+ +
+
+

Choose a vertical

+

Each page explains what third parties demand and what receipts make those demands tractable.

+ +
+
+

Fintech / Regulated Finance

+

Model risk, non‑repudiation, dispute workflows.

+ Finance → +
+
+

Legal

+

Chain‑of‑custody for drafts, evidence, and decisions.

+ Legal → +
+
+

Sciences / Research

+

Provenance, reproducibility, and external reviewers.

+ Sciences → +
+
+

Government / Defense

+

Offline verification and unambiguous custody.

+ Government → +
+
+

B2B SaaS (SOC 2 / ISO)

+

Auditors, procurement, “prove it existed at the time.”

+ B2B SaaS → +
+
+

SecOps / SOC

+

Bind summaries to evidence; keep custody intact.

+ SecOps → +
+
+

Healthcare

+

Clear boundaries, audit trails, and dispute‑ready receipts.

+ Healthcare → +
+
+

AI Product Companies

+

Provable provenance for outputs: “why did it say that?”

+ AI products → +
+
+

Industrial / Supply Chain

+

Traceability that survives vendor and contractor handoffs.

+ Supply chain → +
+
+
+
+
+ + + +
+
+ +
+ Developers + | + API +
+
+
+ + diff --git a/ifttt/verticals/legal/index.html b/ifttt/verticals/legal/index.html new file mode 100644 index 0000000..203d491 --- /dev/null +++ b/ifttt/verticals/legal/index.html @@ -0,0 +1,159 @@ + + + + + + IF.TTT — Legal + + + + + +
+
+ + + + IF.TTT + Legal + + + + +
+
+ +
+
+
+
+

Legal reality

+

Courts don’t accept “trust me.” They accept provenance.

+

+ 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. +

+ +
+

Third‑party pressure

+
    +
  • Disputes demand reproducibility: the exact input and the exact output.
  • +
  • Evidence must be time‑scoped: “what did we know, when did we know it?”
  • +
  • Chain‑of‑custody must survive handoffs (vendor → customer → counsel → auditor).
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Integrity
+
Hash receipts bind the published bytes to what was reviewed.
+
+
+
Portability
+
No‑login links and offline bundles for external review.
+
+
+
Clarity
+
Explicit “proves / does not prove” framing reduces ambiguity.
+
+
+
+
+ + +
+
+ +
+
+

Artifacts that make disputes less expensive

+

You can hand these to an external reviewer without shipping your internal systems.

+
Trace receipt: https://infrafabric.io/static/trace/<shareId>
+Output (raw): https://infrafabric.io/static/dossier/<shareId>/download
+Review pack: https://infrafabric.io/static/review/<shareId>
+Offline bundles: https://infrafabric.io/static/hosted/review/trace-bundles/<id>/index.html
+
+
+ +
+ +
+
+ + + +
+
+ +
+ Developers + | + API +
+
+
+ + diff --git a/ifttt/verticals/saas/index.html b/ifttt/verticals/saas/index.html new file mode 100644 index 0000000..aa75227 --- /dev/null +++ b/ifttt/verticals/saas/index.html @@ -0,0 +1,146 @@ + + + + + + IF.TTT — B2B SaaS + + + + + +
+
+ + + + IF.TTT + B2B SaaS (SOC 2 / ISO) + + + + +
+
+ +
+
+
+
+

SaaS reality

+

Audits are evidence requests with a deadline.

+

+ 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. +

+ +
+

Third‑party pressure

+
    +
  • Auditors want integrity-bound artifacts (not screenshots in shared drives).
  • +
  • Enterprise procurement wants reproducible proof without bespoke portals.
  • +
  • Post‑incident reviewers want “what did it say?” tied to “what did it see?”
  • +
+
+ +
+

What IF.TTT provides

+
+
+
No‑login
+
Stable URLs for trace + output + source, keyed by shareId.
+
+
+
Dispute‑ready
+
Offline bundles with expected hashes for later verification.
+
+
+
Black/white
+
Explicit “proves / does not prove” framing for auditor conversations.
+
+
+
+
+ + +
+
+ +
+
+

Artifacts for auditors

+

The purpose is to make evidence portable and boring.

+
Trace receipt: https://infrafabric.io/static/trace/<shareId>
+Output (raw): https://infrafabric.io/static/dossier/<shareId>/download
+Pack (HTML): https://infrafabric.io/static/pack/<shareId>
+
+
+
+ + + +
+
+ +
+ Developers + | + API +
+
+
+ + diff --git a/ifttt/verticals/sciences/index.html b/ifttt/verticals/sciences/index.html new file mode 100644 index 0000000..494d1dc --- /dev/null +++ b/ifttt/verticals/sciences/index.html @@ -0,0 +1,159 @@ + + + + + + IF.TTT — Sciences + + + + + +
+
+ + + + IF.TTT + Sciences / research + + + + +
+
+ +
+
+
+
+

Research reality

+

Reproducibility is governance in a lab coat.

+

+ 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. +

+ +
+

Third‑party pressure

+
    +
  • Peer reviewers need the ability to reproduce claims.
  • +
  • Funding/compliance bodies need provenance for decisions and outputs.
  • +
  • Collaborators need proof that the artifact they received is the artifact you published.
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Integrity
+
Hash receipts: same bytes, same hash, independent verification.
+
+
+
Clarity
+
Explicitly separates evidence (verified) from interpretation (not verified).
+
+
+
Portability
+
Offline bundles for constrained or future review environments.
+
+
+
+
+ + +
+
+ +
+
+

Portable verification artifacts

+

So reviewers can validate without trusting your infrastructure.

+
Trace receipt: https://infrafabric.io/static/trace/<shareId>
+Pack (raw): https://infrafabric.io/static/pack/<shareId>.md
+Pack (HTML): https://infrafabric.io/static/pack/<shareId>
+Offline bundles: https://infrafabric.io/static/hosted/review/trace-bundles/<id>/index.html
+
+
+ +
+ +
+
+ + + +
+
+ +
+ Developers + | + API +
+
+
+ + diff --git a/ifttt/verticals/secops/index.html b/ifttt/verticals/secops/index.html new file mode 100644 index 0000000..62e51d1 --- /dev/null +++ b/ifttt/verticals/secops/index.html @@ -0,0 +1,136 @@ + + + + + + IF.TTT — SecOps + + + + + +
+
+ + + + IF.TTT + SecOps / SOC + + + + +
+
+ +
+
+
+
+

SecOps reality

+

Bind “what the system said” to “what the system saw.”

+

+ 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. +

+ +
+

Third‑party pressure

+
    +
  • Executives demand a narrative; auditors demand evidence.
  • +
  • Incident response needs reproducible artifacts, not recollections.
  • +
  • External assessors need proof without your SIEM credentials.
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Trace receipt
+
Integrity binding: source_sha256output_sha256.
+
+
+
Offline proof
+
Bundles that can be verified after the fact, offline.
+
+
+
Clarity
+
What’s verified is stated; what’s interpretation is labeled as such.
+
+
+
+
+ + +
+
+ +
+
+

Operational trap to avoid

+

Do not treat “AI summary” as evidence.

+
+
+

Bad

+

“The AI said this was resolved.”

+
+
+

Good

+

“Here is the output, here is the evidence artifact, here is the receipt binding them.”

+
+
+
+
+
+ + + +
+
+ +
+ Developers + | + API +
+
+
+ + diff --git a/ifttt/verticals/supply-chain/index.html b/ifttt/verticals/supply-chain/index.html new file mode 100644 index 0000000..6cb5473 --- /dev/null +++ b/ifttt/verticals/supply-chain/index.html @@ -0,0 +1,139 @@ + + + + + + IF.TTT — Supply Chain + + + + + +
+
+ + + + IF.TTT + Industrial / supply chain + + + + +
+
+ +
+
+
+
+

Supply chain reality

+

Handoffs are where proof dies.

+

+ Industrial systems accumulate contractors, vendors, and integrators. IF.TTT standardizes a receipt surface so chain‑of‑custody doesn’t + collapse the moment responsibility moves. +

+ +
+

Third‑party pressure

+
    +
  • Customers ask for change control evidence after outages.
  • +
  • Insurers ask what controls existed at the time of the incident.
  • +
  • Auditors ask for traceability across organizational boundaries.
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Receipts
+
Stable no‑login trace + output + source URLs keyed by shareId.
+
+
+
Offline
+
Bundles for verification when networks and portals are unavailable.
+
+
+
Clarity
+
Integrity binding is verifiable; interpretation remains process-owned.
+
+
+
+
+ + +
+
+
+ + + +
+
+ +
+ Developers + | + API +
+
+
+ +