Files
Youssef 869d6be23e The floor holds the mechanics; it never picks the direction
Hallmark was telling good models what to build. This splits it into a floor
that binds and a library that offers, and bans the eyebrow outright.

The eyebrow. Gate 54 goes from geometry to existence: short inert type before a
heading that announces it is banned in every arrangement, and no brief earns it
back. The detector inverts from CSS-first to DOM-first, so it now sees flex and
block stacks, heads declared inside a media query, class-less headings, and the
word "overline". Small type before a heading survives only when it carries a
fact, a destination, or an identifier, which keeps captions, field labels,
datelines, unit labels and linked chips legal. references/section-entry.md is the
replacement: twelve ways into a section, ten of them pointing at material the
skill already had.

Themes stay themes. A written contract in theme-axes.md says a theme carries
material and never a page plan, and all 24 are trimmed to it: 4,070 lines down to
2,861. Lumen loses a mandatory hero apparatus and a fixed section sequence; hum
loses 45 lines of global layout rules filed under a theme. Fake brands, invented
people and shippable taglines come out. Genre files stop mandating nav and footer
archetypes they disagreed with the themes about.

Tiers. All 58 gates gain one: 34 carry a Floor clause nothing ships through, 18
are Reflex gates a build with an argument can waive on the record, 6 never block.
Fifteen gates split so a real floor stops dragging a taste threshold behind it.
Gates 42 and 43 stop ordering a rotation through the catalog and instead ask that
the default be named rather than defaulted into. A waiver declares itself in the
stamp with guard evidence the linter re-derives; three per artifact, one per
gate, Floor never waivable, and an over-cap waiver lets its gate fire so waiving
twelve is worse than waiving none.

The catalogs stop being a mandatory pick. Step 2 asks for a designed page shape
stated in plain words; the named shapes are there when a starting point helps.
Anti-repetition moves from "rotate the codes" to "differ from your last three and
say how", which constrains sameness without constraining invention.

Contradictions. Display line-height had three ranges and now has one owner. The
outlier face was capped at two slots by one line and uncapped by the next. Gate
39 hard-coded 44px against finish.md's 32-40px allowance. Gate 14 banned padding
animation that floating-nav.md prescribes. Gate 57's theme list had drifted to 20
of 24. F3 and gate 51 fought over overflow-wrap; break-word settles it.

Evidence. 201 eyebrows removed across 38 example pages and 32 across the archived
test builds, each replaced with a real opening rather than deleted; aggregate
failures fell while doing it. The marketing site drops its own section labels and
moves hero labels below the lede. A cold build through the revised skill lands
0 FAIL / 0 WARN, names its own structure instead of picking a code, and argues
with a Reflex gate rather than waiving it.
2026-07-31 17:43:28 +01:00

111 lines
6.0 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Loop — real-time payment-rail observability for fintechs</title>
<meta name="description" content="See every cross-rail payment in real time. Find the regressed leg, read why, and clear the queue before the SLA fires." />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500&family=Geist:wght@400;500;600&display=swap" />
<link rel="stylesheet" href="style.css" />
</head>
<body>
<main class="page">
<header class="masthead">
<span class="masthead__brand"><span class="dot"></span>loop · v0.7</span>
<nav class="masthead__nav">
<a href="#walkthrough">Walkthrough</a>
<a href="#">Rails</a>
<a href="#">Pricing</a>
<a href="#">Docs</a>
</nav>
</header>
<section class="hero">
<div class="hero__copy">
<hr class="hero__mark" />
<h1 class="hero__head">Real-time payment-rail observability that <em>tells you why.</em></h1>
<p class="hero__sub">
Watch every leg of a cross-rail payment in flight. Find the regressed
hop, read why — in plain text — without grafana, splunk, and a status-page hunt.
Loop is what your on-call wishes the bank's API gave them.
</p>
<div class="hero__cta">
<a class="btn btn--primary" href="#">Try it free <span aria-hidden="true">→</span></a>
<a class="btn" href="#">Talk to sales</a>
</div>
</div>
<aside class="hero__panel" aria-label="Sample trace preview">
<div class="hero__panel-head"><span>payment · 9c3a72ef</span><span>4.21 s</span></div>
<div class="trace">
<div class="span"><span class="span__label">api.transfer</span><span class="span__bar"><i style="width:100%"></i></span><span class="span__time">4.21s</span></div>
<div class="span"><span class="span__label">↳ kyc.verify</span><span class="span__bar"><i style="width:18%"></i></span><span class="span__time">762ms</span></div>
<div class="span span--err"><span class="span__label">↳ rail.swift</span><span class="span__bar"><i style="width:78%"></i></span><span class="span__time">3.28s</span></div>
<div class="span span--warn"><span class="span__label">&nbsp;&nbsp;↳ fx.spot</span><span class="span__bar"><i style="width:62%"></i></span><span class="span__time">2.71s</span></div>
<div class="span"><span class="span__label">↳ ledger.write</span><span class="span__bar"><i style="width:6%"></i></span><span class="span__time">240ms</span></div>
</div>
</aside>
</section>
<section class="workbench" id="walkthrough">
<div class="steps">
<article class="step">
<p class="step__num">step 01 · open</p>
<h2 class="step__head">Open the payment, not a dashboard.</h2>
<p class="step__body">
Drop a payment ID, an idempotency key, or a five-second time window. Loop
pulls the legs from your rails and renders them inline — no Grafana hop,
no link to Splunk, no separate logs window. The payment is the unit of work.
</p>
</article>
<article class="step">
<p class="step__num">step 02 · find</p>
<h2 class="step__head">Find the regressed leg.</h2>
<p class="step__body">
Loop ranks legs by <strong>p99 deviation against your rail's seven-day baseline</strong>.
The first one in the list is almost always the problem. The baseline is
precomputed every five minutes per rail; you don't set it.
</p>
</article>
<article class="step">
<p class="step__num">step 03 · read</p>
<h2 class="step__head">Read why, in plain text.</h2>
<p class="step__body">
Each leg carries an <strong>auto-generated explainer</strong>: which dependency
regressed, which version of which service, which deploy correlates, and the
diff between then and now. Plain text, copy-paste ready into a post-mortem.
</p>
</article>
</div>
<aside class="pinned" aria-label="Pinned trace panel">
<header class="pinned__head">
<span>payment · 9c3a72ef</span>
<span class="pinned__chip">REGRESSED</span>
</header>
<div class="trace">
<div class="span"><span class="span__label">api.transfer</span><span class="span__bar"><i style="width:100%"></i></span><span class="span__time">4.21s</span></div>
<div class="span"><span class="span__label">↳ kyc.verify</span><span class="span__bar"><i style="width:18%"></i></span><span class="span__time">762ms</span></div>
<div class="span span--err"><span class="span__label">↳ rail.swift</span><span class="span__bar"><i style="width:78%"></i></span><span class="span__time">3.28s</span></div>
<div class="span span--warn"><span class="span__label">&nbsp;&nbsp;↳ fx.spot</span><span class="span__bar"><i style="width:62%"></i></span><span class="span__time">2.71s</span></div>
<div class="span"><span class="span__label">↳ ledger.write</span><span class="span__bar"><i style="width:6%"></i></span><span class="span__time">240ms</span></div>
</div>
<p class="pinned__why">
<strong>WHY:</strong> rail.swift p99 doubled at 14:02 UTC. Correlates with
counterparty BNYM-N's queue depth crossing 12 k pending. Loop's escalation
fires automatically; oncall has the diff in their inbox.
</p>
</aside>
</section>
<footer class="colophon">
<span>Loop · v0.7 · made in Lisbon &amp; Berlin</span>
<span><a href="#">docs</a> · <a href="#">changelog</a> · <a href="#">status</a> · <a href="#">github</a></span>
</footer>
</main>
</body>
</html>