diff --git a/README.md b/README.md index d84ceb0..cb6d5f3 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,18 @@
-MARGINAL — compute governance for AI agents +MARGINAL catches AI agent work that repeats without progress # MARGINAL -### Evidence-based compute governance for AI agents +## AI agents repeat work that changed nothing. **MARGINAL catches it.** -**MARGINAL watches agent work, detects proven no-progress repetition, and earns limited authority to stop it.** +**Open-source runtime governor for AI coding agents.** MARGINAL observes agent work, detects proven no-progress repetition, and only earns limited authority to stop it after enough local evidence. + +### **Observe first. Prove waste. Earn enforcement.** Open source · Local first · Provider neutral · Zero mandatory runtime dependencies -[Quickstart](docs/getting-started/quickstart.md) · [Architecture](docs/product/architecture.md) · -[Evidence standard](docs/evaluation/governance-evidence.md) · [Roadmap](ROADMAP.md) · [Contributing](CONTRIBUTING.md) +[**Try the visual demo →**](https://signallayerlabs.github.io/Marginal/#demo) · [Quickstart](docs/getting-started/quickstart.md) · [Architecture](docs/product/architecture.md) · [Evidence standard](docs/evaluation/governance-evidence.md) [![CI](https://github.com/SignalLayerLabs/Marginal/actions/workflows/ci.yml/badge.svg)](https://github.com/SignalLayerLabs/Marginal/actions/workflows/ci.yml) [![CodeQL](https://github.com/SignalLayerLabs/Marginal/actions/workflows/codeql.yml/badge.svg)](https://github.com/SignalLayerLabs/Marginal/actions/workflows/codeql.yml) @@ -23,151 +24,95 @@ Open source · Local first · Provider neutral · Zero mandatory runtime depende --- -## What MARGINAL does - -- Observes tool actions, outcomes, workspace state, and new evidence. -- Distinguishes useful repetition from the same successful action repeated without progress. -- Records decisions in a verifiable, hash-chained Decision Ledger. -- Grants authority gradually and removes it when evidence, identity, capability, or integrity changes. +## The problem in one trace -MARGINAL does not assume that more calls are wasteful. Missing or ambiguous evidence fails open. - -## Current integrations - -| Engine | Capability | Integration | -|---|---|---| -| **Codex** | **Tool Enforcement** | Native plugin. Shadow Mode by default; enforcement requires local Earned Enforcement evidence. | -| **Claude Code** | **Observe** | Native plugin using Claude Code hooks. Records engine-declared success/failure without changing the next model action. | -| **OpenCode** | **Observe** | In-process JavaScript plugin with a persistent stdio bridge to the provider-neutral runtime. | -| **PrivacyCode** | **Observe** | OpenCode-compatible install target with a distinct engine identity, ledger root, and trust evidence. | +```text +WITHOUT MARGINAL WITH MARGINAL -`Observe` integrations record evidence and recommendations but cannot block. A compatible install target -may share an adapter, but it never shares earned trust: **same adapter does not mean same enforcement -evidence**. +Read config.py RUN Read config.py NEW EVIDENCE +Read config.py RUN Read config.py VERIFY +Read config.py RUN Read config.py SAME STATE +Read config.py RUN Read config.py STOP CANDIDATE +Read config.py RUN ... BLOCK only if earned +``` -## Native integrations +MARGINAL does **not** assume that repetition is waste. Another read, test, or verification can be exactly what a risky task needs. It looks for a stronger pattern: **the same eligible successful action, unchanged observable state, and no new evidence**. -### Codex +> **Installation is not permission to block your agent.** New integrations start in Shadow Mode. Enforcement has to be earned from evidence and can be removed again when evidence, identity, capability, coverage, or integrity changes. -Install the native plugin from the repository: +## Install for Codex ```bash codex plugin marketplace add SignalLayerLabs/Marginal --ref main codex plugin add marginal@marginal ``` -The plugin starts globally in **Shadow Mode**. Open `/hooks` in Codex and approve the exact hook -definitions after inspection. One local Python 3.10–3.13 interpreter is required; the launcher can -find a compatible interpreter even when macOS resolves `python3` to an older Xcode runtime. - -Remove the plugin with: +Open `/hooks` and inspect the exact MARGINAL lifecycle hooks before granting trust. The plugin starts globally in **Shadow Mode**. ```bash codex plugin remove marginal@marginal ``` -If the Python package is installed, the equivalent installer can also record explicit Autopilot -consent: +With the Python package, explicit Autopilot consent can be recorded with: ```bash marginal install codex --autopilot-consent ``` -Installation alone never enables enforcement. Earned Enforcement requires verified evidence and -explicit promotion. +## How MARGINAL earns authority -### Claude Code +1. **Observe** — collect derived action, outcome, coverage, state and evidence signals locally. +2. **Verify** — bind decisions, policy identity, trust state and governance cost into Decision Receipts. +3. **Earn** — require representative local evidence, clean coverage and explicit promotion. +4. **Intervene narrowly** — only exact eligible actions can be denied under the proven no-progress condition. +5. **Recover** — immediate retry is allowed; drift, unknown outcomes or failures demote authority and fail open. + +## Current integrations + +| Engine | Capability | Current behavior | +|---|---|---| +| **Codex** | **Tool Enforcement** | Native plugin. Shadow Mode first; narrow blocking requires repository-local Earned Enforcement evidence. | +| **Claude Code** | **Observe-only** | Native hooks record engine-declared success/failure and recommendations; they do not alter the next action. | +| **OpenCode** | **Observe-only** | JavaScript plugin + persistent stdio bridge to the provider-neutral runtime. | +| **PrivacyCode** | **Observe-only** | OpenCode-compatible target with a distinct engine identity, ledger root and trust history. | -With the Python CLI installed: +Same adapter does **not** mean same trust. Enforcement evidence stays engine- and repository-specific. +### Claude Code ```bash marginal install claude-code marginal uninstall claude-code ``` -Claude Code is **Observe-only** today. Its hooks expose separate success and failure events, so those -outcomes are engine-declared rather than inferred from tool output. - ### OpenCode - ```bash marginal install opencode marginal uninstall opencode ``` -OpenCode is **Observe-only**. The JavaScript plugin runs in the engine process and communicates with one -long-running local MARGINAL bridge over stdio. Shell exit codes can prove shell success/failure; outcomes -without a reliable engine signal remain `unknown`. - ### PrivacyCode - ```bash marginal install privacycode marginal uninstall privacycode ``` -PrivacyCode reuses the OpenCode plugin contract but keeps a distinct engine label, installation path, -ledger root, and evidence history. Compatibility is validated, not assumed permanently; a protocol -divergence requires a separate adapter. - -See the [integration overview](docs/integrations/overview.md), [Claude Code guide](docs/integrations/claude-code.md), -and [OpenCode / PrivacyCode guide](docs/integrations/opencode.md). +See the [integration overview](docs/integrations/overview.md), [Claude Code guide](docs/integrations/claude-code.md), and [OpenCode / PrivacyCode guide](docs/integrations/opencode.md). -## How Autopilot works +## Current enforcement boundary -1. **Observe.** Hooks collect derived state, outcome, and coverage signals in Shadow Mode. -2. **Verify.** Decision Receipts bind the decision, policy, trust state, and governance cost. -3. **Earn authority.** Promotion requires explicit consent, a valid receipt, and a verified ledger range. -4. **Intervene narrowly.** Only an exact eligible action with two prior successes and no state or evidence change can be denied on the third attempt. -5. **Recover.** An immediate retry is allowed after a deny. Failures, unknown outcomes, drift, or integrity errors demote authority and fail open. - -Authority is contextual, not permanent. The Trust Engine evaluates sample size, coverage, harmful -outcomes, regret, governance tax, recency, policy identity, and available adapter capabilities. - -The promotion gate assumes a non-adversarial, same-user trust domain. Receipt and ledger hashes -detect corruption and make decisions reproducible; they do not prove authorship or stop the agent, -a prompt-injected tool, or another same-user process from rewriting local state. Do not treat local -Earned Enforcement as a security boundary against software running as the same OS user. - -## User intent and controls - -Codex user prompts can express deliberate repeat intent in English or Italian, including `repeat`, -`force`, and `ripeti`. Negated or ambiguous phrases fail open. The prompt is processed in memory; -its text and hash are not written to evidence. - -With the Python CLI: - -```bash -marginal status --json -marginal doctor --json -marginal explain DECISION_ID --json -marginal privacy inspect --json -``` - -- `status` separates configured mode from effective authority and lists promotion blockers. -- `doctor` checks runtime, hooks, schemas, policy identity, ledger integrity, and file permissions. -- `explain` returns the redacted evidence behind one decision. -- `privacy inspect` lists every persisted data category. - -The bundled `$marginal` skill exposes native `status`, `doctor`, `review`, `promote`, and `demote` -operations without requiring a global executable. - -## Enforcement boundary - -The current Codex integration provides **Tool Enforcement**, not Full Compute Enforcement. +The Codex integration provides **Tool Enforcement**, not Full Compute Enforcement. | Action family | Current behavior | |---|---| | Absolute workspace-local `Read` / `read_file` with only a path argument | Eligible after verified repeated success and no progress | | User-requested repeat or force | Allowed | | Polling, waiting, failure, or unknown outcome | Allowed | -| Changed workspace state or evidence | Allowed and repetition proof reset | +| Changed workspace state or evidence | Allowed; repetition proof resets | | Generic shell, tests, or search | Observe/recommend only | | Writes, network, deploy, external APIs, unknown MCP | Observe/recommend only | | MARGINAL status, doctor, demote, and recovery | Trusted control-plane bypass | -MARGINAL counts actual avoided actions and recoveries. It does not invent token savings for actions -that did not run. +MARGINAL counts actual avoided actions and recoveries. It does not invent token savings for actions that did not run. ## Privacy and integrity @@ -176,46 +121,48 @@ that did not run. - The v3 governance ledger links every canonical record to the previous record hash. - Promotion reads verified ledger payloads, not mutable summary files. - Ledger files use owner-only permissions, file locking, no-follow opens, and non-destructive quarantine. -- Integration errors demote enforcement and allow the requested tool action. +- Integration errors demote enforcement and allow the requested action. - `SAFE_TELEMETRY` exports derived pseudonyms and approved measurements, never raw private payloads. - `AGGREGATE_EXPORT` publishes only grouped statistics that meet the configured minimum group size. -Read the [privacy model](docs/operations/privacy.md) and -[governance evidence standard](docs/evaluation/governance-evidence.md). +Read the [privacy model](docs/operations/privacy.md) and [governance evidence standard](docs/evaluation/governance-evidence.md). -## Measured evidence +## Controls -**Exploratory 3-task smoke, one paired run per task.** This SWE-bench Lite result validates the -integration path; it does not establish performance. +```bash +marginal status --json +marginal doctor --json +marginal explain DECISION_ID --json +marginal privacy inspect --json +``` + +The bundled `$marginal` skill also exposes native `status`, `doctor`, `review`, `promote`, and `demote` operations. + +## Public evidence + +### Exploratory SWE-bench Lite smoke + +**Exploratory 3-task smoke, one paired run per task.** The first measured Codex integration validated the integration path; it did **not** establish performance. | Metric | Codex OFF | Codex + MARGINAL | Observed change | |---|---:|---:|---:| | Verified tasks resolved | 0/3 | 0/3 | 0/3 → 0/3 | -| Effective tokens | 1,098,747 | 824,839 | 24.93% fewer | -| Effective latency | 593.11 s | 565.77 s | 4.61% lower | -| Tool calls | 33 | 32 | 3.03% fewer | +| Effective tokens | 1,098,747 | 824,839 | 24.93% fewer observed | +| Effective latency | 593.11 s | 565.77 s | 4.61% lower observed | +| Tool calls | 33 | 32 | 3.03% fewer observed | | Governance overhead | — | 0 tokens · $0 · 7.06 s | measured separately | | Evaluator decision | — | `pass_through` | no support claim | -The observed token difference is 24.93%, but neither lane resolved a task. - -**No deny was applied in these three agent trajectories.** The difference therefore cannot be -attributed to MARGINAL and is not a useful-token-saving claim. Tokens per resolved task remain -undefined. +**Important:** neither lane resolved a task. **No deny was applied in these three agent trajectories.** The observed 24.93% token difference therefore cannot be attributed to MARGINAL and is not a token-saving claim. -[Public report](benchmarks/swebench_lite/PUBLIC_BENCHMARK.md) · [Raw JSON](benchmarks/swebench_lite/public-benchmark.json) · -[Evidence bundle](benchmarks/swebench_lite/evidence/smoke-2026-08-11-dbce533/) · [Protocol](benchmarks/swebench_lite/README.md) +[Public report](benchmarks/swebench_lite/PUBLIC_BENCHMARK.md) · [Raw JSON](benchmarks/swebench_lite/public-benchmark.json) · [Evidence bundle](benchmarks/swebench_lite/evidence/smoke-2026-08-11-dbce533/) · [Protocol](benchmarks/swebench_lite/README.md) ## Python library -Install the current tagged version: - ```bash pip install "marginal-ai @ git+https://github.com/SignalLayerLabs/Marginal.git@v0.3.3" ``` -Minimal Shadow Mode example: - ```python from marginal import BudgetLimits, Treasury, build_policy @@ -226,9 +173,6 @@ treasury = Treasury( ) ``` -Start new integrations in Shadow Mode. Promote only after representative evidence shows that the -policy preserves verified quality. - ## Architecture ```text @@ -239,11 +183,10 @@ Universal Agent Protocol ├── Treasury and policy ├── progress and utility evidence ├── Trust Engine and authority levels - └── Decision Receipts and governance ledger + └── Decision Receipts and Decision Ledger ``` -Adapters own native interception. The provider-neutral core owns policy, accounting, trust, and -evidence semantics. See the [architecture guide](docs/product/architecture.md). +Adapters own native interception. The provider-neutral core owns policy, accounting, trust and evidence semantics. See the [architecture guide](docs/product/architecture.md). ## Documentation @@ -260,8 +203,7 @@ evidence semantics. See the [architecture guide](docs/product/architecture.md). ## Contributing -Contributions and falsifiable criticism are welcome. Performance changes should include the -evidence that could prove them wrong. +Contributions and falsifiable criticism are welcome. Performance changes should include the evidence that could prove them wrong. ```bash ruff format --check . @@ -273,5 +215,4 @@ pytest -q Read [CONTRIBUTING.md](CONTRIBUTING.md). ## License - Apache-2.0. See [LICENSE](LICENSE). diff --git a/assets/marginal-readme-hero.svg b/assets/marginal-readme-hero.svg new file mode 100644 index 0000000..01c47f4 --- /dev/null +++ b/assets/marginal-readme-hero.svg @@ -0,0 +1 @@ +MARGINAL catches AI agent work that repeats without progressSplit-screen showing repeated work without MARGINAL and evidence-aware stopping with MARGINAL.MARGINALAI agents repeat work that changed nothing.MARGINAL catches it. Observe first. Prove waste. Earn enforcement.WITHOUT MARGINALWITH MARGINAL01 Read config.py02 Read config.py03 Read config.py04 Read config.py05 Read config.pyRUNRUNRUNRUNRUNactivity != progress01 Read config.pyNEW02 Read config.pyVERIFY03 Read config.pySAME STATE04 Read config.pyBLOCKEDsame action · same state · no new evidenceOpen source · Local first · Provider neutral · Shadow Mode by default \ No newline at end of file diff --git a/docs/superpowers/plans/2026-08-18-marketing-refactor.md b/docs/superpowers/plans/2026-08-18-marketing-refactor.md new file mode 100644 index 0000000..185b08d --- /dev/null +++ b/docs/superpowers/plans/2026-08-18-marketing-refactor.md @@ -0,0 +1,47 @@ +# MARGINAL Marketing Refactor Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Make MARGINAL obvious in five seconds, visually demonstrable at €0 inference cost, SEO-complete and claim-safe. + +**Architecture:** Message-first static site, dedicated deterministic demo, marketing-first README, local SVG/PNG assets and lightweight vanilla JS. + +**Tech Stack:** HTML5, CSS3, vanilla JavaScript, SVG, PNG, Markdown, GitHub Pages. + +**Spec:** `docs/superpowers/specs/2026-08-18-marketing-refactor-design.md` + +## Global Constraints +- Preserve evidence-first claim discipline. +- No causal token-savings claim from the historical smoke. +- Codex = Tool Enforcement; Claude Code/OpenCode/PrivacyCode = Observe-only. +- No new site runtime dependencies. +- Respect `prefers-reduced-motion`. + +--- + +### Task 1: Acceptance tests +- [x] Add structural SEO/copy/truthfulness/asset/accessibility tests. +- [x] Verify RED before implementation. + +### Task 2: Homepage +- [x] Build Hero → Demo → How it works → Integrations → Proof → Research → FAQ → CTA. +- [x] Add accessible nav, copy CTA and deterministic trace replay. + +### Task 3: Visual assets +- [x] Add 1280×640 README hero SVG. +- [x] Add 1200×630 OG/Twitter PNG. +- [x] Add shareable `/demo/` page. + +### Task 4: README +- [x] Put concrete problem, visual explanation and install above technical detail. +- [x] Keep exact enforcement/privacy/research boundaries. + +### Task 5: SEO + deploy pack +- [x] Update robots/sitemap. +- [x] Add apply, verify and deploy instructions. + +### Task 6: Verification +- [x] Marketing acceptance tests pass. +- [x] JS syntax passes. +- [x] Static link/JSON-LD checks pass. +- [x] ZIP integrity checked. diff --git a/docs/superpowers/specs/2026-08-18-marketing-refactor-design.md b/docs/superpowers/specs/2026-08-18-marketing-refactor-design.md new file mode 100644 index 0000000..d5880c9 --- /dev/null +++ b/docs/superpowers/specs/2026-08-18-marketing-refactor-design.md @@ -0,0 +1,28 @@ +# MARGINAL Marketing Refactor — Design Specification + +## Goal +Make MARGINAL understandable in five seconds and compelling enough to earn GitHub stars without overstating unproven performance claims. + +## Positioning +Primary category: **runtime governor for AI coding agents**. Primary problem: **AI agents can repeat work without making progress**. Primary promise: **MARGINAL detects no-progress repetition**. Primary differentiator: **MARGINAL starts by observing and must earn limited enforcement authority from evidence.** + +Canonical message stack: +1. **AI agents repeat work that changed nothing.** +2. **MARGINAL catches it.** +3. **Observe first. Prove waste. Earn enforcement.** + +## Experience hierarchy +Hero → deterministic mechanism demo → How it works → Integrations → Proof → Research → FAQ → Install CTA. + +## Claim discipline +- Never claim the historical 24.93% token delta was caused by MARGINAL. +- State the smoke was 0/3 vs 0/3 and no deny was applied. +- Label the deterministic visual demo as not a production benchmark. +- Codex is Tool Enforcement, never Full Compute Enforcement. +- Claude Code, OpenCode and PrivacyCode are Observe-only. + +## SEO +One H1; canonical `https://signallayerlabs.github.io/Marginal/`; intent-focused title/description; OG/Twitter 1200×630 image; SoftwareApplication + FAQPage JSON-LD; semantic sections; robots.txt and sitemap.xml. + +## Visual language +Dark technical canvas, acid-green action accent, red only for waste, mono trace labels, strong contrast, responsive panels, no external font dependency, motion disabled under prefers-reduced-motion. diff --git a/site/app.js b/site/app.js index baad58e..d94d928 100644 --- a/site/app.js +++ b/site/app.js @@ -1,2 +1 @@ -const button=document.querySelector(".nav-toggle");const links=document.querySelector(".nav-links"); -if(button&&links){button.addEventListener("click",()=>{const open=links.classList.toggle("open");button.setAttribute("aria-expanded",String(open))});links.addEventListener("click",event=>{if(event.target instanceof HTMLAnchorElement){links.classList.remove("open");button.setAttribute("aria-expanded","false")}})} \ No newline at end of file +const menuButton=document.querySelector('.nav-toggle');const menu=document.querySelector('.nav-links');if(menuButton&&menu){menuButton.addEventListener('click',()=>{const open=menu.classList.toggle('open');menuButton.setAttribute('aria-expanded',String(open))});menu.addEventListener('click',e=>{if(e.target instanceof HTMLAnchorElement){menu.classList.remove('open');menuButton.setAttribute('aria-expanded','false')}})}document.querySelectorAll('[data-copy]').forEach(button=>{button.addEventListener('click',async()=>{const target=document.querySelector(button.getAttribute('data-copy'));if(!target)return;try{await navigator.clipboard.writeText(target.textContent.trim());button.textContent='Copied';setTimeout(()=>button.textContent='Copy',1400)}catch{button.textContent='Select';const range=document.createRange();range.selectNodeContents(target);const selection=window.getSelection();selection.removeAllRanges();selection.addRange(range)}})});const play=document.querySelector('[data-demo-play]');const rows=[...document.querySelectorAll('[data-demo-step]')];let timer=null;function resetDemo(){rows.forEach(row=>row.classList.remove('active'))}function playDemo(){if(timer)clearInterval(timer);resetDemo();let i=0;rows[0]?.classList.add('active');timer=setInterval(()=>{i+=1;if(i>=rows.length){clearInterval(timer);timer=null;return}rows[i].classList.add('active')},420)}if(play)play.addEventListener('click',playDemo);if(!window.matchMedia('(prefers-reduced-motion: reduce)').matches){const demo=document.querySelector('#demo');if(demo){const observer=new IntersectionObserver(entries=>{if(entries.some(e=>e.isIntersecting)){playDemo();observer.disconnect()}},{threshold:.35});observer.observe(demo)}} \ No newline at end of file diff --git a/site/assets/marginal-social-card.png b/site/assets/marginal-social-card.png new file mode 100644 index 0000000..44525e7 Binary files /dev/null and b/site/assets/marginal-social-card.png differ diff --git a/site/demo/index.html b/site/demo/index.html new file mode 100644 index 0000000..2299b7d --- /dev/null +++ b/site/demo/index.html @@ -0,0 +1 @@ +MARGINAL Demo — See a No-Progress AI Agent Loop

Runtime governor for AI coding agents

AI agents repeat work that changed nothing.MARGINAL catches it.

MARGINAL watches tool actions, outcomes and workspace evidence. When the same successful action repeats with no observable progress, it can identify the loop — without assuming every retry is waste.

Observe first. Prove waste. Earn enforcement.

  • Open source
  • Local first
  • Provider neutral
  • Zero mandatory runtime dependencies
agent trace / workspace
01
Read config.pynew evidence acquired
RUN
02
Read config.pyverification; outcome successful
RUN
03
Read config.pysame workspace state · no new evidence
OBSERVE
04
Read config.pyexact eligible no-progress repetition
STOP*
*Only after local Earned Enforcement. Otherwise MARGINAL stays advisory.Fails open on ambiguity.

10-second mechanism demo

Activity is not the same thing as progress.

Same action. Same state. No new evidence. That is the signal MARGINAL cares about. This deterministic visual is a mechanism demonstration, not a production benchmark.

Without a governorLOOP
01Read config.pyRUN
02Read config.pyRUN
03Read config.pyRUN
04Read config.pyRUN
05Read config.pyRUN
With MARGINALEVIDENCE
01Read config.pyNEW EVIDENCE
02Read config.pyVERIFY
03Read config.pySAME STATE
04Read config.pySTOP CANDIDATE
05Earned authority?BLOCK / ALLOW
Open shareable demo ↗No API credits required. No provider telemetry claimed.

How it works

A governor that has to earn the right to govern.

Installation does not equal authority. MARGINAL separates observation, proof and enforcement so an efficiency tool cannot casually become a correctness risk.

01 / OBSERVE

Watch

Collect derived action, outcome, coverage, workspace-state and evidence signals locally.

02 / PROVE

Compare

Look for repeated successful actions where observable state and useful evidence did not change.

03 / EARN

Build trust

Require representative local evidence, clean coverage and explicit promotion before blocking.

04 / INTERVENE

Stop narrowly

Only eligible action families can be denied, and only under the exact proven no-progress condition.

05 / RECOVER

Fail open

Unknown outcomes, drift, integrity failures or changed evidence remove pressure and restore allowance.

Works alongside coding agents

One governance core. Conservative engine boundaries.

MARGINAL is not another coding agent. It sits beside supported runtimes and turns native lifecycle signals into the same provider-neutral evidence model.

Observe-only

Claude Code

Native hooks record engine-declared success and failure without changing the next model action.

Observe-only

OpenCode

In-process JavaScript plugin with a persistent stdio bridge to the provider-neutral runtime.

Observe-only

PrivacyCode

OpenCode-compatible target with its own engine identity, ledger root and trust evidence.

Designed to be falsifiable

MARGINAL has to justify its own overhead, too.

The project treats governance cost, harmful interventions and preserved quality as first-class measurements — not footnotes.

01

Shadow first

New installations observe before blocking. Lack of evidence is not permission.

02

Decision ledger

Canonical records are hash chained so decisions can be reproduced and integrity drift detected.

03

Local-first privacy

Raw prompts, source, commands, outputs, transcripts and credentials are not evidence fields.

04

Fail open

Ambiguous or unsupported outcomes do not become evidence for blocking.

05

Explicit boundaries

Tool Enforcement is not presented as Full Compute Enforcement. Capabilities stay adapter-specific.

06

Graceful irrelevance

If a future agent is already efficient, MARGINAL should measure that and get out of the way.

Public evidence, without marketing math

The first smoke validated the integration — not the savings claim.

We keep negative and inconclusive results public because MARGINAL's credibility depends on separating observation from causation.

Exploratory SWE-bench Lite smoke

Three matched tasks, one paired run per task. Both lanes resolved 0/3. A 24.93% token difference was observed, but No deny was applied in the trajectories. Therefore the difference is not attributed to MARGINAL and is not a support claim.

The full report, raw JSON, protocol and evidence bundle remain public in the repository.

Resolved0/3 → 0/3
Applied denies0
Observed token delta−24.93%*
Evaluatorpass_through

Install

Start in Shadow Mode.

The Codex marketplace install is one command. Enforcement still has to be earned locally.

codex plugin marketplace add SignalLayerLabs/Marginal --ref main && codex plugin add marginal@marginal

FAQ

Fast answers before you clone.

What does MARGINAL actually stop?

Today, Codex Tool Enforcement is deliberately narrow. Exact eligible workspace-local reads can become denyable after verified repeated success with no state or evidence change. Generic shell, tests, search, writes, network and unknown MCP paths remain observe/recommend only.

Is MARGINAL a security product?

No. It is an efficiency governor, not a security boundary against software running as the same OS user.

Does it work with Claude Code?

Yes in Observe-only mode. Claude Code hooks can record engine-declared success/failure and feed the same evidence model, but the integration does not block actions today.

Why not just cap tokens?

A fixed cap cannot distinguish useful verification from repeated no-progress work. MARGINAL focuses on the marginal value of the next action and on observable evidence, not only the size of a budget.

Open source · Apache-2.0

If your coding agent loops, make the loop prove it is useful.

Clone it, inspect the hooks, run Shadow Mode, challenge the evidence model — and star the repo if you want this idea to keep moving.

\ No newline at end of file diff --git a/site/index.html b/site/index.html index bc6e18b..020b50b 100644 --- a/site/index.html +++ b/site/index.html @@ -1,225 +1 @@ - - - - - - MARGINAL — Evidence-Driven Compute Governance for AI Agents - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-

First measured Codex integration

-

Measured OFF vs ON. Correctness first.

-

Exploratory 3-task smoke, one paired run per task. Codex CLI 0.147.0 with GPT-5.6-sol, identical prompts and limits, verified in official SWE-bench Lite task environments on Modal.

-
-
-
Native Codex plugin · Shadow Mode by defaultEarned Enforcement, one-command install.
- codex plugin marketplace add SignalLayerLabs/Marginal --ref main && codex plugin add marginal@marginal - codex plugin remove marginal@marginal -

Tool Enforcement, never an overstated Full Compute Enforcement claim. Repository blocking must earn a local evidence receipt and demotes automatically on drift. Universal directory review is pending; the Git marketplace works now.

-
-
-
Verified quality0/3 → 0/3OFF → ON resolved
-
Effective tokens24.93% fewer1,098,747 → 824,839
-
Tool calls3.03% fewer33 → 32
-
Governance latency7.06 s0 external tokens · $0
-
Decisionpass_throughnot support-eligible
-
-
-

Scope matters. This smoke validates the integration and supplies an early paired observation; n=3 is too small for a general performance claim. Neither lane resolved a task, so efficiency per resolved task is undefined. No deny was applied in these three agent trajectories, so the observed token difference is not evidence that a deny caused the saving.

- -
-
-
- -
-
-

Compute governance, measured

-

The next action should add evidence, not just activity.

-

MARGINAL evaluates whether another model call, tool call, retry, verification or reviewer is likely to add enough value to justify its cost — and accounts for the cost of making that decision.

- -
    -
  • Open source
  • Local first
  • Provider neutral
  • Zero mandatory dependencies
  • -
-
-
-
Illustrative traceNot a benchmark
-
01
Read README.mdnew information acquired
RUN
-
02
Verify README.mdnew evidence acquired
RUN
-
03
Verify README.mdsame state · no new evidence
DISCOUNT
-
04
Verify README.mddiminishing return threshold reached
STOP?
-

The question mark matters: enforcement is earned by evidence, not assumed by the demo.

-
-
- -
-
-

Multi-engine runtime

-

One governance core. Engine-specific evidence boundaries.

-

Adapters translate native lifecycle events into the same provider-neutral runtime. Capability labels stay conservative: sharing an adapter never transfers earned trust between engines.

-
-
-
Codex

Tool Enforcement

Native plugin. Shadow Mode first; narrow blocking requires repository-local Earned Enforcement evidence.

-
Claude Code

Observe

Native hooks with engine-declared success/failure events. Recommendations go to the ledger and never alter the next model action.

-
OpenCode

Observe

JavaScript plugin plus a persistent stdio bridge. Shell exit codes are provable; unsupported outcomes remain unknown.

-
PrivacyCode

Observe

OpenCode-compatible target with its own engine label, install path, ledger root and evidence history.

-
-
- Current rule - Same adapter ≠ same trust. Enforcement evidence stays engine- and repository-specific. -
- -
- -
-
-

The actual thesis

-

Not “models waste tokens.” Diminishing marginal value.

-
-
-

Coding agents can spend compute on actions whose incremental value becomes unclear. A repeated action is not automatically waste: another test may be exactly what a risky patch needs.

-

MARGINAL looks for a stronger pattern: same semantic action + unchanged observable state + no new evidence. That is provider-neutral and remains meaningful even when models improve.

-
-
- -
-
-

Proof before claims

-

MARGINAL must earn its own compute.

-

Matched OFF/ON evaluation is the product test. Saving agent tokens is insufficient if governance overhead, quality loss or false stops erase the benefit.

-
-
-
01

Verified quality

Same verifier, predefined non-inferiority margin, regressions and recoveries exposed.

-
02

Gross savings

Agent workload change before counting MARGINAL's own cost.

-
03

Net savings

Effective tokens, USD and latency after the governance tax. This is the claim surface.

-
04

Repeated calls

Shows whether behavior changed or the system simply moved cost somewhere else.

-
05

False stops

Explicitly reviewed deny recommendations that would have blocked helpful work.

-
06

Uncertainty

Repeated runs and bootstrap intervals separate a stable effect from one lucky trajectory.

-
-
- Primary target - Minimize effective compute per verified successful task, subject to quality and false-stop constraints. -
-
- -
-
-

Graceful irrelevance

-

What if GPT-5.7 — or any future model — is already efficient?

-
-
-

Then MARGINAL should get out of the way. The evaluator now distinguishes gross from net savings and can classify a configuration as pass_through when the governor does not demonstrate enough net value.

-
$ marginal public-eval baseline.jsonl marginal.jsonlintervention.status: pass_throughNo positive net intervention value demonstrated.
-

A negative or neutral benchmark is a valid result. The project should not manufacture a reason to intervene simply to justify its own existence.

-
-
- -
-

New control

State-aware diminishing returns, without a GPT-specific patch.

-
-
-
Same semantic keye.g. verify the same artifact for the same purpose
-
Same state hashthe underlying workspace has not changed
-
No new evidencethe previous pass did not change the evidence state
-
Repeat count risesexpected gain decays until a configured stop threshold
-
-
-

The detector is opt-in. Missing state fails open. Changed state or new evidence resets the pressure. That keeps the mechanism conservative while real agent telemetry is collected.

-

Exact duplicate prevention still exists. Diminishing-return control adds a semantic layer for allowed retries and verification loops where fingerprints can legitimately differ.

- Read the evidence model → -
-
-
- -
-

Community pressure test

Feedback changes the product only when the reasoning survives review.

-
-
Accepted

Show OFF vs ON benchmarks

Matched runs are required for performance claims. The 10-task canary remains engineering validation, not marketing evidence.

-
Accepted

Future models may reduce the benefit

Converted into Graceful Irrelevance: MARGINAL must demonstrate positive net value for the workload in front of it.

-
Partially accepted

“Less slop” on the website

The technical concepts stay, but the landing page now starts with a concrete failure mode and proof standard before architecture theory.

-
Rejected

Providers intentionally preserve waste

There is no evidence needed or offered for that claim. MARGINAL is justified by user-controlled economics and observability, not provider motive speculation.

-
-
- -
-

Benchmark discipline

One benchmark is a surface, not ground truth.

-
-

The requested SWE-bench Pro comparison can be useful because it is recognizable and gives the community a common reference. It should still be versioned, audited and accompanied by task-quality notes.

MARGINAL-specific evaluation should also target the behavior the product claims to change: redundant same-state actions, repeated verification, overhead, false stops and verified outcomes.

-
Same modelSame promptSame toolsSame limitsSame task orderSame verifierRaw paired JSONLPreregistered gates
-
-
- -
-

Current milestone

Multi-Engine Developer Preview

Codex, Claude Code, OpenCode and PrivacyCode now reach the same governance core through capability-aware integrations. The next gate is cross-engine conformance and causal intervention evidence, not broader claims.

-
-
v0.3Codex reference integrationTool Enforcement · evidence receipts · matched smoke
-
Multi-engineObserve surfaces landedClaude Code · OpenCode · PrivacyCode
-
NextCounterfactual validationpaired continuations · regret · engine-specific earned trust
-
- -
- -
-

Build the evidence first

-

Observe. Measure. Let intervention earn enforcement.

- -
-
- - - - +MARGINAL — Stop No-Progress Loops in AI Coding Agents

Runtime governor for AI coding agents

AI agents repeat work that changed nothing.MARGINAL catches it.

MARGINAL watches tool actions, outcomes and workspace evidence. When the same successful action repeats with no observable progress, it can identify the loop — without assuming every retry is waste.

Observe first. Prove waste. Earn enforcement.

  • Open source
  • Local first
  • Provider neutral
  • Zero mandatory runtime dependencies
agent trace / workspace
01
Read config.pynew evidence acquired
RUN
02
Read config.pyverification; outcome successful
RUN
03
Read config.pysame workspace state · no new evidence
OBSERVE
04
Read config.pyexact eligible no-progress repetition
STOP*
*Only after local Earned Enforcement. Otherwise MARGINAL stays advisory.Fails open on ambiguity.

10-second mechanism demo

Activity is not the same thing as progress.

Same action. Same state. No new evidence. That is the signal MARGINAL cares about. This deterministic visual is a mechanism demonstration, not a production benchmark.

Without a governorLOOP
01Read config.pyRUN
02Read config.pyRUN
03Read config.pyRUN
04Read config.pyRUN
05Read config.pyRUN
With MARGINALEVIDENCE
01Read config.pyNEW EVIDENCE
02Read config.pyVERIFY
03Read config.pySAME STATE
04Read config.pySTOP CANDIDATE
05Earned authority?BLOCK / ALLOW
Open shareable demo ↗No API credits required. No provider telemetry claimed.

How it works

A governor that has to earn the right to govern.

Installation does not equal authority. MARGINAL separates observation, proof and enforcement so an efficiency tool cannot casually become a correctness risk.

01 / OBSERVE

Watch

Collect derived action, outcome, coverage, workspace-state and evidence signals locally.

02 / PROVE

Compare

Look for repeated successful actions where observable state and useful evidence did not change.

03 / EARN

Build trust

Require representative local evidence, clean coverage and explicit promotion before blocking.

04 / INTERVENE

Stop narrowly

Only eligible action families can be denied, and only under the exact proven no-progress condition.

05 / RECOVER

Fail open

Unknown outcomes, drift, integrity failures or changed evidence remove pressure and restore allowance.

Works alongside coding agents

One governance core. Conservative engine boundaries.

MARGINAL is not another coding agent. It sits beside supported runtimes and turns native lifecycle signals into the same provider-neutral evidence model.

Observe-only

Claude Code

Native hooks record engine-declared success and failure without changing the next model action.

Observe-only

OpenCode

In-process JavaScript plugin with a persistent stdio bridge to the provider-neutral runtime.

Observe-only

PrivacyCode

OpenCode-compatible target with its own engine identity, ledger root and trust evidence.

Designed to be falsifiable

MARGINAL has to justify its own overhead, too.

The project treats governance cost, harmful interventions and preserved quality as first-class measurements — not footnotes.

01

Shadow first

New installations observe before blocking. Lack of evidence is not permission.

02

Decision ledger

Canonical records are hash chained so decisions can be reproduced and integrity drift detected.

03

Local-first privacy

Raw prompts, source, commands, outputs, transcripts and credentials are not evidence fields.

04

Fail open

Ambiguous or unsupported outcomes do not become evidence for blocking.

05

Explicit boundaries

Tool Enforcement is not presented as Full Compute Enforcement. Capabilities stay adapter-specific.

06

Graceful irrelevance

If a future agent is already efficient, MARGINAL should measure that and get out of the way.

Public evidence, without marketing math

The first smoke validated the integration — not the savings claim.

We keep negative and inconclusive results public because MARGINAL's credibility depends on separating observation from causation.

Exploratory SWE-bench Lite smoke

Exploratory 3-task smoke, one paired run per task. Both lanes resolved 0/3. No deny was applied in these three agent trajectories. A 24.93% token difference was observed, so the difference is not attributed to MARGINAL and is not a support claim.

The full report, raw JSON, protocol and evidence bundle remain public in the repository.

Resolved0/3 → 0/3
Effective tokens24.93% fewer
Tool calls3.03% fewer
Governance latency7.06 s
Applied denies0
Evaluatorpass_through

Install

Start in Shadow Mode.

The Codex marketplace install is one command. Enforcement still has to be earned locally.

codex plugin marketplace add SignalLayerLabs/Marginal --ref main && codex plugin add marginal@marginal

Remove cleanly with codex plugin remove marginal@marginal.

FAQ

Fast answers before you clone.

What does MARGINAL actually stop?

Today, Codex Tool Enforcement is deliberately narrow. Exact eligible workspace-local reads can become denyable after verified repeated success with no state or evidence change. Generic shell, tests, search, writes, network and unknown MCP paths remain observe/recommend only.

Is MARGINAL a security product?

No. It is an efficiency governor, not a security boundary against software running as the same OS user.

Does it work with Claude Code?

Yes in Observe-only mode. Claude Code hooks can record engine-declared success/failure and feed the same evidence model, but the integration does not block actions today.

Why not just cap tokens?

A fixed cap cannot distinguish useful verification from repeated no-progress work. MARGINAL focuses on the marginal value of the next action and on observable evidence, not only the size of a budget.

Open source · Apache-2.0

If your coding agent loops, make the loop prove it is useful.

Clone it, inspect the hooks, run Shadow Mode, challenge the evidence model — and star the repo if you want this idea to keep moving.

\ No newline at end of file diff --git a/site/sitemap.xml b/site/sitemap.xml index 2b021f5..903bfa2 100644 --- a/site/sitemap.xml +++ b/site/sitemap.xml @@ -1,2 +1,8 @@ -https://signallayerlabs.github.io/Marginal/weekly1.0https://signallayerlabs.github.io/Marginal/privacy.htmlmonthly0.6https://signallayerlabs.github.io/Marginal/terms.htmlmonthly0.6https://signallayerlabs.github.io/Marginal/support.htmlmonthly0.6https://signallayerlabs.github.io/Marginal/demo/monthly0.7 + + https://signallayerlabs.github.io/Marginal/weekly1.0 + https://signallayerlabs.github.io/Marginal/demo/monthly0.8 + https://signallayerlabs.github.io/Marginal/privacy.htmlmonthly0.5 + https://signallayerlabs.github.io/Marginal/support.htmlmonthly0.5 + https://signallayerlabs.github.io/Marginal/terms.htmlmonthly0.4 + diff --git a/site/styles.css b/site/styles.css index 7359a62..092514c 100644 --- a/site/styles.css +++ b/site/styles.css @@ -1,174 +1 @@ -:root { - --bg: #080b10; - --surface: #10151d; - --surface-2: #151c26; - --surface-3: #0c1118; - --text: #f4f7fb; - --muted: #aab5c4; - --line: #273140; - --accent: #91ff63; - --accent-soft: rgba(145, 255, 99, 0.09); - --warning: #ffd166; - --danger: #ff7b72; - --max: 1180px; -} - -* { box-sizing: border-box; } -html { scroll-behavior: smooth; } -body { - margin: 0; - background: var(--bg); - color: var(--text); - font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; - line-height: 1.65; -} -a { color: inherit; } -code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color: var(--accent); } -.skip-link { position: absolute; left: -9999px; } -.skip-link:focus { left: 1rem; top: 1rem; z-index: 100; background: var(--text); color: var(--bg); padding: .75rem 1rem; } -.shell { width: min(calc(100% - 2rem), var(--max)); margin-inline: auto; } -.narrow { max-width: 820px; } -.center { text-align: center; justify-content: center; } - -.site-header { position: sticky; top: 0; z-index: 20; background: rgba(8,11,16,.9); border-bottom: 1px solid var(--line); backdrop-filter: blur(16px); } -.nav { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; } -.brand { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; font-weight: 800; letter-spacing: .08em; } -.brand-mark { display: grid; place-items: center; width: 34px; height: 34px; color: var(--bg); background: var(--accent); border-radius: 8px; } -.nav-links { display: flex; align-items: center; gap: 1.25rem; } -.nav-links a { text-decoration: none; color: var(--muted); font-size: .92rem; } -.nav-links a:hover, .nav-links a:focus { color: var(--text); } -.nav-toggle { display: none; } - -.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .7rem 1.15rem; border-radius: 10px; background: var(--accent); color: #071006; text-decoration: none; font-weight: 760; border: 1px solid var(--accent); } -.button:hover, .button:focus { filter: brightness(1.08); transform: translateY(-1px); } -.button-secondary { background: transparent; color: var(--text); border-color: var(--line); } -.button-small { min-height: 38px; padding: .45rem .8rem; color: #071006 !important; } - -.benchmark-strip { border-bottom: 1px solid var(--line); background: radial-gradient(circle at 15% 0%, rgba(145,255,99,.12), transparent 38%), var(--surface-3); } -.benchmark-shell { padding-block: 4rem 3.5rem; } -.benchmark-heading { max-width: 900px; } -.benchmark-heading h1 { font-size: clamp(2.5rem, 5vw, 4.8rem); } -.benchmark-heading > p:last-child { color: var(--muted); max-width: 820px; font-size: 1.05rem; } -.install-card { display: grid; gap: .75rem; margin-top: 1.5rem; padding: 1.2rem; border: 1px solid var(--accent); border-radius: 14px; background: var(--accent-soft); } -.install-card > div { display: grid; } -.install-card span { color: var(--accent); font-size: .76rem; font-weight: 820; letter-spacing: .08em; text-transform: uppercase; } -.install-card strong { font-size: 1.2rem; } -.install-card code { display: block; overflow-x: auto; padding: .75rem; border: 1px solid var(--line); border-radius: 8px; background: #05080c; white-space: nowrap; } -.install-card p { margin: 0; color: var(--muted); font-size: .9rem; } -.install-card b { color: var(--text); } -.benchmark-metrics { display: grid; grid-template-columns: repeat(5, 1fr); gap: .75rem; margin-top: 2.4rem; } -.benchmark-metrics article { display: grid; gap: .3rem; min-height: 145px; padding: 1.15rem; border: 1px solid var(--line); border-radius: 14px; background: rgba(16,21,29,.82); } -.benchmark-metrics article > span { color: var(--muted); font-size: .73rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; } -.benchmark-metrics strong { align-self: end; font-size: clamp(1.5rem, 2.6vw, 2.35rem); line-height: 1; letter-spacing: -.04em; } -.benchmark-metrics small { color: var(--muted); } -.benchmark-metrics .benchmark-primary { border-color: var(--accent); background: var(--accent-soft); } -.benchmark-metrics .benchmark-primary strong { color: var(--accent); } -.benchmark-disclosure { display: flex; justify-content: space-between; gap: 2rem; margin-top: 1rem; padding: 1rem 1.15rem; border: 1px solid var(--line); border-radius: 12px; color: var(--muted); font-size: .87rem; } -.benchmark-disclosure p { max-width: 760px; margin: 0; } -.benchmark-disclosure strong { color: var(--text); } -.benchmark-links { display: flex; flex-wrap: wrap; justify-content: flex-end; align-content: flex-start; gap: .55rem 1rem; min-width: 270px; } -.benchmark-links a { color: var(--accent); font-weight: 760; text-decoration: none; } - -.hero { min-height: 760px; display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: 4.5rem; padding-block: 7rem 5rem; } -.eyebrow { color: var(--accent); text-transform: uppercase; letter-spacing: .14em; font-size: .77rem; font-weight: 820; } -h1, .hero-title { font-size: clamp(3rem, 6.7vw, 6rem); line-height: .98; letter-spacing: -.055em; margin: .5rem 0 1.4rem; max-width: 900px; } -h2 { font-size: clamp(2rem, 4.2vw, 4rem); line-height: 1.05; letter-spacing: -.04em; margin: .45rem 0 1.2rem; } -h3 { line-height: 1.2; } -.hero-lead { color: var(--muted); font-size: clamp(1.08rem, 2vw, 1.3rem); max-width: 720px; } -.hero-actions { display: flex; gap: .8rem; margin-top: 2rem; flex-wrap: wrap; } -.trust-row { display: flex; flex-wrap: wrap; gap: .7rem 1.25rem; list-style: none; padding: 0; margin: 2.2rem 0 0; color: var(--muted); font-size: .9rem; } -.trust-row li::before { content: "✓"; color: var(--accent); margin-right: .4rem; } - -.trace-card { border: 1px solid var(--line); background: linear-gradient(160deg, var(--surface-2), var(--surface)); padding: 1.25rem; border-radius: 20px; box-shadow: 0 30px 80px rgba(0,0,0,.36); } -.trace-label { display: flex; justify-content: space-between; gap: 1rem; color: var(--muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: .9rem; } -.trace-label strong { color: var(--warning); } -.trace-row { display: grid; grid-template-columns: 34px 1fr auto; gap: .8rem; align-items: center; padding: 1rem .65rem; border-top: 1px solid var(--line); } -.trace-num { color: var(--muted); font-family: ui-monospace, monospace; font-size: .78rem; } -.trace-row div { display: grid; } -.trace-row small { color: var(--muted); } -.status { font-size: .68rem; font-weight: 850; letter-spacing: .08em; border-radius: 999px; padding: .28rem .5rem; border: 1px solid var(--line); } -.status.ok { color: var(--accent); } -.status.warn { color: var(--warning); } -.status.stop { color: var(--danger); } -.trace-note { color: var(--muted); font-size: .83rem; margin: .85rem .65rem .2rem; } - -.section { padding-block: 6.5rem; border-top: 1px solid var(--line); } -.thesis, .community-section, .roadmap-section { background: var(--surface); } -.dark-band { background: #06080c; } -.section-heading { max-width: 790px; margin-bottom: 3rem; } -.section-heading > p:last-child, .body-copy { color: var(--muted); } -.body-copy strong { color: var(--text); } -.split { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; } -.compact-gap { gap: 3rem; } - -.metric-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; } -.metric-grid article, .decision-cards article { border: 1px solid var(--line); border-radius: 14px; padding: 1.35rem; background: var(--surface); } -.metric-grid article > span:first-child { color: var(--accent); font-size: .75rem; font-weight: 850; letter-spacing: .1em; } -.metric-grid p, .decision-cards p { color: var(--muted); font-size: .94rem; } -.metric-grid .accent-card { border-color: var(--accent); background: linear-gradient(160deg, var(--accent-soft), var(--surface)); } -.evidence-banner { margin-top: 1rem; border: 1px solid var(--line); border-radius: 14px; padding: 1.15rem 1.35rem; display: grid; grid-template-columns: auto 1fr; gap: 1.2rem; align-items: center; } -.evidence-key { color: var(--accent); font-size: .75rem; font-weight: 850; text-transform: uppercase; letter-spacing: .1em; } - -.terminal { display: grid; gap: .4rem; margin: 1.5rem 0; border: 1px solid var(--line); border-radius: 12px; padding: 1.2rem; background: #05080c; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; } -.terminal span, .terminal small { color: var(--muted); } -.terminal b { color: var(--accent); } -.fine-print { color: var(--muted); font-size: .88rem; } - -.logic-list { border-top: 1px solid var(--line); } -.logic-list div { display: grid; grid-template-columns: 180px 1fr; gap: 1rem; border-bottom: 1px solid var(--line); padding: 1rem 0; } -.logic-list span { color: var(--muted); } -.text-link { color: var(--accent); font-weight: 760; text-decoration: none; } - -.decision-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; } -.decision { display: inline-flex; border-radius: 999px; padding: .25rem .55rem; font-size: .69rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; border: 1px solid var(--line); } -.decision.accept { color: var(--accent); } -.decision.partial { color: var(--warning); } -.decision.reject { color: var(--danger); } - -.proof-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: .7rem; } -.proof-list span { border: 1px solid var(--line); border-radius: 9px; padding: .8rem; color: var(--muted); } -.proof-list span::before { content: "✓"; color: var(--accent); margin-right: .5rem; } - -.roadmap-line { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 2.5rem; } -.roadmap-line div { min-height: 170px; display: flex; flex-direction: column; gap: .45rem; border: 1px solid var(--line); border-radius: 14px; padding: 1.35rem; } -.roadmap-line span { color: var(--muted); font-size: .74rem; font-weight: 850; text-transform: uppercase; letter-spacing: .1em; } -.roadmap-line small { color: var(--muted); } -.roadmap-line .done { border-color: rgba(145,255,99,.4); } -.roadmap-line .current { border-color: var(--accent); background: var(--accent-soft); } - -.cta { background: radial-gradient(circle at 50% 20%, rgba(145,255,99,.13), transparent 45%); } -footer { padding-block: 3rem; border-top: 1px solid var(--line); color: var(--muted); } -.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 2rem; } -.footer-grid div { display: flex; flex-direction: column; gap: .4rem; align-items: flex-start; } -.footer-grid p { margin: 0; } -.footer-grid a { text-decoration: none; } - -@media (max-width: 900px) { - .hero, .split { grid-template-columns: 1fr; } - .hero { min-height: auto; gap: 2.5rem; padding-top: 5rem; } - .metric-grid { grid-template-columns: repeat(2, 1fr); } - .roadmap-line { grid-template-columns: 1fr; } - .benchmark-metrics { grid-template-columns: repeat(2, 1fr); } - .benchmark-disclosure { display: grid; } - .benchmark-links { justify-content: flex-start; min-width: 0; } - .nav-toggle { display: inline-flex; background: transparent; border: 1px solid var(--line); color: var(--text); padding: .55rem .75rem; border-radius: 8px; } - .nav-links { display: none; position: absolute; left: 1rem; right: 1rem; top: 72px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 1rem; flex-direction: column; align-items: stretch; } - .nav-links.open { display: flex; } -} - -@media (max-width: 620px) { - h1, .hero-title { font-size: 3.1rem; } - .section { padding-block: 4.5rem; } - .metric-grid, .decision-cards, .footer-grid, .proof-list { grid-template-columns: 1fr; } - .trace-row { grid-template-columns: 28px 1fr; } - .trace-row .status { grid-column: 2; justify-self: start; } - .logic-list div { grid-template-columns: 1fr; gap: .25rem; } - .evidence-banner { grid-template-columns: 1fr; } - .benchmark-metrics { grid-template-columns: 1fr; } - .benchmark-metrics article { min-height: 120px; } -} - -@media (prefers-reduced-motion: reduce) { - html { scroll-behavior: auto; } - *, *::before, *::after { transition: none !important; animation: none !important; } -} +:root{--bg:#06080b;--panel:#0e141b;--panel2:#111a22;--text:#f6f9fc;--muted:#9caab7;--line:#25303a;--acid:#a8ff63;--acid2:#69ffb2;--amber:#ffd166;--red:#ff746c;--max:1180px;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{margin:0;background:radial-gradient(circle at 88% 6%,rgba(168,255,99,.08),transparent 30rem),linear-gradient(180deg,#05070a,#080d12 48%,#05070a);color:var(--text);font-family:var(--sans);line-height:1.55;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,#000,transparent 85%)}a{color:inherit}.shell{width:min(calc(100% - 36px),var(--max));margin:auto}.skip-link{position:fixed;left:16px;top:12px;z-index:1000;padding:10px 14px;border-radius:8px;background:#fff;color:#000;transform:translateY(-170%)}.skip-link:focus{transform:none}.site-header{position:sticky;top:0;z-index:30;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(6,8,11,.82);backdrop-filter:blur(18px)}.nav{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:900;letter-spacing:.12em}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(168,255,99,.5);border-radius:9px;color:#071006;background:linear-gradient(135deg,var(--acid),var(--acid2));box-shadow:0 0 30px rgba(168,255,99,.12)}.nav-links{display:flex;align-items:center;gap:20px}.nav-links a{color:var(--muted);font-size:.9rem;text-decoration:none}.nav-links a:hover{color:var(--text)}.nav-toggle{display:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border:1px solid var(--acid);border-radius:10px;background:linear-gradient(135deg,var(--acid),var(--acid2));color:#071006;text-decoration:none;font-weight:850;cursor:pointer;transition:transform .15s ease,filter .15s ease}.button:hover{transform:translateY(-1px);filter:brightness(1.05)}.button.secondary{border-color:var(--line);background:transparent;color:var(--text)}.button.small{min-height:38px;padding:0 12px;font-size:.88rem}.button:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid rgba(168,255,99,.45);outline-offset:3px}.eyebrow{margin:0 0 14px;color:var(--acid);font-size:.76rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase}.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center;min-height:760px;padding:84px 0 72px}.hero h1{max-width:760px;margin:0;font-size:clamp(3.6rem,7vw,6.9rem);line-height:.91;letter-spacing:-.065em}.hero h1 span{display:block;color:var(--acid)}.hero-lead{max-width:690px;margin:26px 0 0;color:var(--muted);font-size:clamp(1.1rem,2vw,1.32rem)}.hero-proofline{margin:18px 0 0;color:#d9e3eb;font-weight:750}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.trust-row{display:flex;flex-wrap:wrap;gap:10px 20px;margin:30px 0 0;padding:0;list-style:none;color:var(--muted);font-size:.88rem}.trust-row li:before{content:"✓";margin-right:7px;color:var(--acid)}.terminal-card{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:rgba(12,18,24,.96);box-shadow:0 35px 90px rgba(0,0,0,.38)}.terminal-top{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;border-bottom:1px solid var(--line);color:var(--muted);font:700 .74rem var(--mono);text-transform:uppercase;letter-spacing:.08em}.dots{display:flex;gap:6px}.dots i{width:8px;height:8px;border-radius:50%;background:#394552}.trace{padding:14px}.trace-row{display:grid;grid-template-columns:30px 1fr auto;gap:12px;align-items:center;padding:15px 10px;border-bottom:1px solid rgba(255,255,255,.06);font-family:var(--mono)}.trace-row:last-child{border-bottom:0}.trace-row .n{color:#60707f;font-size:.75rem}.trace-row b{font-size:.88rem}.trace-row small{display:block;margin-top:3px;color:var(--muted);font-family:var(--sans);font-size:.75rem}.pill{padding:4px 7px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.66rem;font-weight:900;letter-spacing:.08em}.pill.ok{color:var(--acid)}.pill.warn{color:var(--amber)}.pill.stop{border-color:rgba(168,255,99,.5);color:var(--acid);background:rgba(168,255,99,.08)}.trace-row.hot{margin:8px 0;border:1px solid rgba(168,255,99,.38);border-radius:11px;background:rgba(168,255,99,.055)}.hero-caption{display:flex;justify-content:space-between;gap:16px;margin-top:12px;color:var(--muted);font-size:.78rem}.hero-caption strong{color:var(--acid)}.section{padding:96px 0;border-top:1px solid rgba(255,255,255,.08)}.section-head{max-width:760px;margin-bottom:42px}.section h2{margin:0;font-size:clamp(2.4rem,5vw,4.8rem);line-height:.98;letter-spacing:-.05em}.section-head p:last-child{max-width:680px;color:var(--muted);font-size:1.06rem}.demo-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.demo-pane{border:1px solid var(--line);border-radius:18px;background:var(--panel);padding:22px}.demo-pane.good{border-color:rgba(168,255,99,.32);background:linear-gradient(160deg,rgba(168,255,99,.045),var(--panel))}.pane-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.pane-title span{color:var(--muted);font-size:.75rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.pane-title strong{font-family:var(--mono);font-size:.75rem}.activity{display:grid;gap:8px}.activity div{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;min-height:46px;padding:8px 10px;border:1px solid rgba(255,255,255,.05);border-radius:9px;font:500 .83rem var(--mono)}.activity .waste{color:#ffd0cc;border-color:rgba(255,116,108,.18);background:rgba(255,116,108,.04)}.activity .blocked{color:var(--text);border-color:rgba(168,255,99,.35);background:rgba(168,255,99,.065)}.activity em{color:var(--muted);font-style:normal;font-size:.7rem}.demo-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:18px}.demo-note{margin-left:auto;color:var(--muted);font-size:.8rem}.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.step{position:relative;min-height:190px;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.step .num{color:var(--acid);font:800 .72rem var(--mono);letter-spacing:.1em}.step h3{margin:34px 0 8px;font-size:1.35rem}.step p{margin:0;color:var(--muted);font-size:.9rem}.step:not(:last-child):after{content:"→";position:absolute;right:-11px;top:50%;z-index:2;color:#50606f;background:var(--bg);padding:2px}.integrations{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.integration{min-height:220px;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.integration.featured{border-color:rgba(168,255,99,.36)}.integration .mode{display:inline-flex;padding:4px 7px;border-radius:999px;border:1px solid var(--line);color:var(--muted);font:800 .65rem var(--mono);letter-spacing:.08em;text-transform:uppercase}.integration.featured .mode{color:var(--acid)}.integration h3{margin:40px 0 8px;font-size:1.5rem}.integration p{color:var(--muted);font-size:.9rem}.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.proof-card{padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.proof-card .icon{color:var(--acid);font:900 1rem var(--mono)}.proof-card h3{margin:28px 0 8px}.proof-card p{margin:0;color:var(--muted);font-size:.9rem}.research-box{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;padding:28px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,var(--panel2),var(--panel))}.research-box p{color:var(--muted)}.metric-row{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.metric{padding:15px;border:1px solid var(--line);border-radius:11px}.metric span{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.metric strong{display:block;margin-top:7px;font:800 1.35rem var(--mono)}.metric strong.neutral{color:var(--amber)}.install{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;padding:20px;border:1px solid rgba(168,255,99,.38);border-radius:16px;background:rgba(168,255,99,.05)}.install code{overflow:auto;color:#dfffd0;font:500 .84rem var(--mono);white-space:nowrap}.faq{display:grid;gap:10px;max-width:900px}.faq details{padding:18px 20px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.faq summary{cursor:pointer;font-weight:800}.faq p{color:var(--muted)}.cta{text-align:center}.cta h2{max-width:850px;margin-inline:auto}.cta p{max-width:650px;margin:20px auto;color:var(--muted)}.footer{padding:42px 0;border-top:1px solid rgba(255,255,255,.08);color:var(--muted)}.footer-grid{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}.footer a{text-decoration:none}.footer-links{display:flex;gap:16px;flex-wrap:wrap}.micro{font-size:.77rem;color:var(--muted)}[data-demo-step]{opacity:.35;transition:opacity .28s ease,transform .28s ease}[data-demo-step].active{opacity:1;transform:translateX(2px)}@media(max-width:980px){.hero{grid-template-columns:1fr;min-height:auto}.hero h1{font-size:clamp(3.4rem,11vw,6rem)}.steps{grid-template-columns:repeat(2,1fr)}.step:not(:last-child):after{display:none}.integrations{grid-template-columns:repeat(2,1fr)}.proof-grid{grid-template-columns:repeat(2,1fr)}.research-box{grid-template-columns:1fr}.nav-toggle{display:inline-flex;padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--text)}.nav-links{display:none;position:absolute;left:18px;right:18px;top:70px;flex-direction:column;align-items:stretch;padding:16px;border:1px solid var(--line);border-radius:12px;background:#0b1016}.nav-links.open{display:flex}}@media (max-width:720px){.shell{width:min(calc(100% - 24px),var(--max))}.hero{padding:64px 0}.hero h1{font-size:clamp(3rem,16vw,4.5rem)}.section{padding:72px 0}.demo-grid,.integrations,.proof-grid,.steps{grid-template-columns:1fr}.demo-note{width:100%;margin-left:0}.install{grid-template-columns:1fr}.trace-row{grid-template-columns:24px 1fr}.trace-row .pill{grid-column:2;justify-self:start}.metric-row{grid-template-columns:1fr}.section h2{font-size:clamp(2.2rem,12vw,3.5rem)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}} \ No newline at end of file