From 1ec1425852ad9f1a204a3d5a6fc8b45c33c94ed1 Mon Sep 17 00:00:00 2001 From: lostmartian Date: Wed, 2 Sep 2026 01:22:03 +0530 Subject: [PATCH] feat(site): update landing, features, quickstart, and action pages for 0.5.0 --- website/src/app/(site)/action/page.tsx | 104 +++++++++++++++++---- website/src/app/(site)/compare/page.tsx | 14 +++ website/src/app/(site)/features/page.tsx | 26 +++--- website/src/app/(site)/quickstart/page.tsx | 85 ++++++++++------- website/src/app/layout.tsx | 2 +- website/src/components/FAQSection.tsx | 20 ++-- website/src/components/Footer.tsx | 2 +- website/src/components/Header.tsx | 40 +++++--- website/src/components/Hero.tsx | 2 +- website/src/components/SurfacesTabs.tsx | 8 +- 10 files changed, 211 insertions(+), 92 deletions(-) diff --git a/website/src/app/(site)/action/page.tsx b/website/src/app/(site)/action/page.tsx index 46b69ebf..0fe39b73 100644 --- a/website/src/app/(site)/action/page.tsx +++ b/website/src/app/(site)/action/page.tsx @@ -102,19 +102,31 @@ export default function ActionPage() {
- 30-Second Setup + 30-Second Setup with agentdiff init - Automated PR Comment Diagnostic + Interactive /agentdiff approve Bot - Goodhart Threshold Protection + Hosted Identity (agentdiff[bot])
+ +
+ + Install GitHub App + + +
@@ -134,17 +146,17 @@ export default function ActionPage() { Drop into any repo in 30 seconds.

- Execute your agent test script in CI, record the candidate trace, and invoke agentdiff-check. If divergence, cost, or retry loop thresholds breach tolerance, the action fails with exit code 1. + Generate your gate in one command with agentdiff init --with-approve. If divergence, cost, or retry loops breach tolerance, the action fails with exit code 1 and posts a human-first PR verdict.

- Inspect live PR comment demo on GitHub #3 + Inspect live PR comment demo on GitHub #4
@@ -180,10 +192,10 @@ jobs: --input '{"scenario": "customer_support"}' \\ --output traces/pr_candidate.json - - name: Gate Against Golden Baseline - uses: kerrshift/agentdiff/.github/actions/agentdiff-check@main + - name: Gate Against Statistical Baseline Envelope + uses: kerrshift/agentdiff/.github/actions/agentdiff-check@v0.5.0 with: - baseline: baselines/golden_run.json + baseline: baselines/customer_support.envelope.json candidate: traces/pr_candidate.json pr: \${{ github.event.number }} github-token: \${{ secrets.GITHUB_TOKEN }}`} @@ -257,29 +269,75 @@ jobs: - {/* Pillar 3: Automated Rotation */} + {/* Pillar 3: Interactive Approve Bot & Baseline Rotation */}
- + Deliverable 03 - +

- Automated Baseline Rotation + Interactive /agentdiff approve Bot

- Set update-baseline = true to safely advance your golden baseline trace only when the candidate execution passes all assertion criteria. + Reviewers bless intentional improvements directly by commenting /agentdiff approve. Candidate runs join the baseline envelope without local checkouts or manual JSON edits.

- - Zero manual JSON copy-pasting + + Hosted identity as agentdiff[bot] via token.agentdiff.app
+ + {/* Approve Bot Spotlight Box */} + +
+
+
+ + In-PR Workflow + +

+ Bless improvements without leaving GitHub +

+
+ + Install AgentDiff CI App + + +
+ +
+
+
1. Reviewer Comment
+

+ A team member with write access comments /agentdiff approve on a PR flagged for path drift. +

+
+
+
2. D3 Invariant Check
+

+ Path drift and cost deltas are blessable; infinite loops are never blessable. The bot refuses to bless cyclical bugs. +

+
+
+
3. Green Checks-API Flip
+

+ The bot updates the committed baseline envelope, pushes the commit, and flips the GitHub Check result to green. +

+
+
+
+
@@ -321,7 +379,7 @@ jobs: run: git show origin/main:agentdiff.toml > /tmp/baseline-agentdiff.toml - name: Gate Against Baseline with Governance Guard - uses: kerrshift/agentdiff/.github/actions/agentdiff-check@main + uses: kerrshift/agentdiff/.github/actions/agentdiff-check@v0.5.0 with: baseline: baselines/golden_run.json candidate: traces/pr_candidate.json @@ -415,11 +473,19 @@ jobs: Add one GitHub Action step to automate trajectory regression testing across your engineering team in under 5 minutes.

+ + Install GitHub App → + - Get Started with Quickstart → + Quickstart Guide 0.25 -max_wasted_effort = 0.10 # Fails CI if > 10% compute is wasted -allow_loops = false # Fails CI on any tool repetition -max_cost_increase_pct = 5.0 # Fails CI if cost delta > +5% -max_recovery_step_ratio = 1.5 # Fails CI if error recovery degrades > 1.5x +[scenario.customer_support.hard_invariants] +fail_on_identical_loops = true # Hard block: infinite retry loops never pass +max_tool_repeats = 3 # Hard block: repeat limit per tool node + +[scenario.customer_support.tolerances] +step_count_std_dev = 2.0 # Variance band: mean ± 2σ step count +divergence_ceiling = 0.35 # Max acceptable sequence drift [masking] ignore_keys = ["timestamp", "session_id", "trace_id", "auth_token"] regex_patterns = ["^uuid_[0-9a-f-]+$", "^Bearer\\\\s+.*$"] [governance] -warn_stale_baseline_days = 30 # Warns when golden baseline exceeds 30 days -flag_threshold_changes = true # Flags PRs that lower gate rigor`} +warn_stale_baseline_days = 30 # Warns when envelope exceeds 30 days +flag_threshold_changes = true # Flags PRs that lower gate rigor`} />
diff --git a/website/src/app/(site)/quickstart/page.tsx b/website/src/app/(site)/quickstart/page.tsx index ac967e6a..c7205b8e 100644 --- a/website/src/app/(site)/quickstart/page.tsx +++ b/website/src/app/(site)/quickstart/page.tsx @@ -40,9 +40,9 @@ const STEPS = [ { num: "01", tag: "INSTALLATION", - title: "Install the Engine", + title: "Install the CLI & Library", description: - "Install AgentDiff into your project via pip or uv. Air-gapped, zero cloud accounts, and zero background services.", + "Install AgentDiff into your virtual environment via pip or uv. Pure Python, zero telemetry, and zero background daemons.", badge: "< 3 seconds", codeLanguage: "bash", filename: "terminal", @@ -54,45 +54,50 @@ uv add agent-trajectory-diff`, }, { num: "02", - tag: "BASELINE CAPTURE", - title: "Record Golden Baseline Trace", + tag: "INIT WIZARD", + title: "Initialize Your Project with agentdiff init", description: - "Execute your known good agent once to capture its canonical execution DAG. Commit the resulting JSON file directly into git.", - badge: "1-Click Snapshot", + "Run the zero-config wizard. It auto-detects your agent framework (LangGraph, CrewAI, OpenAI Agents, OpenTelemetry), writes agentdiff.toml, and generates your GitHub Actions CI gate workflow.", + badge: "Auto-Detection", codeLanguage: "bash", filename: "terminal", - code: `agentdiff record my_agent_module:run \\ - --input '{"query": "Generate Q3 sales analysis"}' \\ - --output baselines/golden_run.json`, + code: `# Auto-detect framework and generate config + gate workflow +agentdiff init --scenario customer_support --runs 3 + +# Or include the /agentdiff approve bot workflow +agentdiff init --with-approve`, }, { num: "03", - tag: "TOPOLOGICAL EVALUATION", - title: "Diff Candidate Trajectories", + tag: "STATISTICAL BASELINE", + title: "Record an N-Run Baseline Envelope", description: - "When upgrading prompts, tools, or model weights, run the comparator to verify graph invariance and catch loops in < 5ms.", - badge: "< 5ms Diff", + "Capture variance bands across multiple runs so non-deterministic agents don't flake the CI gate on harmless timing or token jitter.", + badge: "Variance Bands", codeLanguage: "bash", filename: "terminal", - code: `agentdiff baselines/golden_run.json candidate_run.json \\ - --explain \\ - --tree`, + code: `# Record a 3-run baseline envelope +agentdiff record my_agent_module:run \\ + --input '{"query": "Generate Q3 sales analysis"}' \\ + --runs 3 \\ + --out baselines/customer_support.envelope.json`, }, { num: "04", - tag: "CI/CD REGRESSION GATE", - title: "Gate Pull Requests in CI", + tag: "HONEST MERGE GATE", + title: "Gate CI & Bless with /agentdiff approve", description: - "Enforce strict trajectory thresholds in your CI pipeline. Automatically exits with code 1 if thresholds fail and posts a rich PR comment.", - badge: "Exit Code 0 / 1", + "Run the comparator in CI. Hard invariants (loops, error cascades) strictly block merging, while reviewers can bless intended improvements directly from PR comments.", + badge: "Exit 0 / 1 + Bot", codeLanguage: "bash", filename: "ci_pipeline.sh", - code: `agentdiff baselines/golden_run.json candidate_run.json \\ + code: `# Diff candidate run against statistical baseline envelope +agentdiff diff baselines/customer_support.envelope.json traces/pr_candidate.json \\ --fail-on-regression \\ - --max-divergence 0.25 \\ - --max-cost-delta 10.0 \\ - --format markdown \\ - --output-file pr_verdict.md`, + --pr \${{ github.event.number }} + +# Reviewers bless accepted improvements right on GitHub: +# Comment: /agentdiff approve`, }, ]; @@ -280,12 +285,18 @@ export default function QuickstartPage() { @@ -311,16 +322,24 @@ max_recovery_step_ratio = 1.5`} Ready to automate on GitHub?

- Add the official AgentDiff GitHub Action to your repository and receive instant diagnostic PR comments on every commit. + Install the official GitHub App or drop the Action into your repository for instant diagnostic comments and in-PR approval.

+ + Install GitHub App + + Explore GitHub Action -
diff --git a/website/src/components/Header.tsx b/website/src/components/Header.tsx index 42b2d1ae..5f3f4b2d 100644 --- a/website/src/components/Header.tsx +++ b/website/src/components/Header.tsx @@ -19,7 +19,7 @@ const NAV_ITEMS = [ { href: "/blog", label: "Blog" }, ]; -export default function Header({ version = "0.2.1" }: { version?: string }) { +export default function Header({ version = "0.5.0" }: { version?: string }) { const [open, setOpen] = useState(false); const [mounted, setMounted] = useState(false); const pathname = usePathname(); @@ -102,20 +102,30 @@ export default function Header({ version = "0.2.1" }: { version?: string }) { {/* Bottom Utilities */} -
-
- - Theme -
+
, @@ -176,8 +186,16 @@ export default function Header({ version = "0.2.1" }: { version?: string }) { })}
- {/* Right Action Utilities: Theme + GitHub */} + {/* Right Action Utilities: App Install + Theme + GitHub */}
+ + Install App + - Your agent returned the right answer, but took 5 extra steps and burned 3× the tokens. AgentDiff catches silent tool loops, cost surges, and execution drift in CI before your PR lands in production. + Statistical baselines and honest CI gates for AI agents. Measure variance bands, block infinite loops, catch silent cost surges, and re-baseline with a single PR comment.

{/* CTAs + Copy Command */} diff --git a/website/src/components/SurfacesTabs.tsx b/website/src/components/SurfacesTabs.tsx index 2cce42af..dda4582f 100644 --- a/website/src/components/SurfacesTabs.tsx +++ b/website/src/components/SurfacesTabs.tsx @@ -9,8 +9,8 @@ const TABS = [ label: "CLI", href: "/quickstart", cta: "Quickstart", - code: "agentdiff record my_agent:run --input '{...}' --out traces/run.json\nagentdiff traces/baseline.json traces/run.json --explain --tree", - body: "Record, diff, and gate from the terminal. Exit codes 0/1/2/3 for CI.", + code: "# 1. Auto-detect framework and generate gate config\nagentdiff init --scenario refund --runs 3\n\n# 2. Record 3-run statistical envelope\nagentdiff record my_agent:run --runs 3 --out baselines/refund.envelope.json\n\n# 3. Compare with variance bands\nagentdiff diff baselines/refund.envelope.json traces/pr.json --fail-on-regression", + body: "Init wizard, statistical baseline envelopes, and sub-5ms comparison. Exit codes 0/1/2/3 for CI.", }, { id: "pytest", @@ -25,8 +25,8 @@ const TABS = [ label: "GitHub Action", href: "/action", cta: "Action docs", - code: "- uses: kerrshift/agentdiff/.github/actions/agentdiff-check@main\n with:\n baseline: baselines/current.json\n candidate: traces/pr.json\n pr: ${{ github.event.number }}", - body: "Posts the divergence report as a PR comment; blocks on regression.", + code: "- uses: kerrshift/agentdiff/.github/actions/agentdiff-check@v0.5.0\n with:\n baseline: baselines/refund.envelope.json\n candidate: traces/pr.json\n pr: ${{ github.event.number }}\n\n# Reviewers bless on PR: /agentdiff approve", + body: "Posts human-first verdict PR comments, blocks on loops, and supports /agentdiff approve bot.", }, { id: "sdk",