Skip to content

docs: add Stripe World to the environment catalog - #1449

Open
scosman wants to merge 6 commits into
openenv:mainfrom
scosman:docs/stripe-world-env
Open

scosman wants to merge 6 commits into
openenv:mainfrom
scosman:docs/stripe-world-env

Conversation

@scosman

@scosman scosman commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Adds a docs page and a Community Environments card for Stripe World, a stateful OpenEnv of Stripe's Billing and Payments API (HuggingFace Space). Agents use Stripe's MCP tools. Each connection gets a private account that can start from a saved fixture with a seed: an empty account, or one of two test-mode companies with history (small_co, 45 customers; big_co, about 380). state() returns a row-level change log, so an episode can be graded on what the agent changed rather than on what it said.

  • docs/source/environments/stripe_world.md: what it models, the fixtures it ships, how episodes are graded, an AutoEnv.from_hub(..., skip_install=True) quick start, and how to run it locally
  • docs/source/environments.md: card under Community Environments, since the code lives outside this repo
  • docs/source/_toctree.yml: sidebar entry

Docs only. No code is added under envs/.

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation
  • New environment
  • Refactoring

Alignment Checklist

  • I have read .claude/docs/PRINCIPLES.md and this PR aligns with our principles
  • I have checked .claude/docs/INVARIANTS.md and no invariants are violated
  • I have run /pre-submit-pr (or bash .claude/hooks/lint.sh and tests) and addressed all issues

Note on invariant 3 (rewards inside the environment): Stripe World returns reward=None; episodes are graded by the caller from the change log in state(). The page states this plainly.

RFC Status

  • Not required (bug fix, docs, minor refactoring)

Test Plan

  • python scripts/sync_env_docs.py --check passes.
  • Full doc-builder build at the commit CI pins passes (MDX and HTML); the new page renders and the catalog card links to it.
  • The quick-start snippet was run end to end against a local Stripe World server built from main: it created a customer, state() returned the change log, and list_tools returned the tools.
  • reset(fixture="small_co") and reset(fixture="big_co") were run against the same server to confirm the Fixtures section.

Claude Code Review

N/A


Note

Low Risk
Documentation-only updates to the environment catalog and navigation; no application code or behavior changes in this repository.

Overview
Adds Stripe World to the docs as an external community OpenEnv: a stateful Stripe Billing/Payments simulation with MCP-style tools, per-episode accounts, fixtures, and caller-side grading from a row-level change log in state() (no built-in reward).

Introduces docs/source/environments/stripe_world.md covering modeled API scope, reset/step/state usage, the empty / small_co / big_co fixtures, an AutoEnv.from_hub("scosman/stripe_world", skip_install=True) quick start, and local server setup. The Community Environments grid on environments.md gets a new card linking to that page and the Hugging Face Space, and _toctree.yml adds a sidebar entry under Environments.

No runtime or envs/ code changes—catalog and navigation only.

Reviewed by Cursor Bugbot for commit cfcbe57. Bugbot is set up for automated code reviews on this repo. Configure here.

scosman and others added 2 commits October 8, 2026 21:06
Add a docs page for Stripe World, a stateful copy of Stripe's Billing and
Payments API that runs as an OpenEnv environment and is maintained outside
this repository (HF Space scosman/stripe_world, source Kiln-AI/stripe_world).

- docs/source/environments/stripe_world.md: what it models, how episodes
  are graded from the state() change log, an AutoEnv.from_hub(...,
  skip_install=True) quick start, and running the server locally
- docs/source/environments.md: card under Community Environments
- docs/source/_toctree.yml: sidebar entry under Environments

Docs only; nothing is added under envs/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uxf3k6Fcyfm5Jmt8d4HDfA
Stripe World now ships three fixtures (Kiln-AI/stripe_world#16). Add a
Fixtures section listing empty, small_co (Wrenfield Labs, 45 customers)
and big_co (Ostrander Systems, about 380 customers), how to select one
with reset(fixture=...), and that a fixture keeps the mode it was saved
in. Scope the livemode note to resets without a fixture, link the
fixtures guide, and update the table count to 25.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uxf3k6Fcyfm5Jmt8d4HDfA

@burtenshaw burtenshaw left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ALIGNMENT FLAG: caller-side reward computation. This catalog page explicitly documents reward=None and external grading from state(). The repository invariant keeps reward computation within the environment boundary. @Darktex should decide whether this external community listing is an accepted exception or needs a server-side reward adapter; this should be coordinated with the tutorial in #1450.

@scosman

scosman commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor Author

@Darktex same question and comment as here: #1450 (comment) - I won't paste the whole thing here, but it applies equally.

It's by design, LMK if you agree.

Resolve docs index conflicts with the OR-Tools environment (openenv#1501) by keeping both entries.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@burtenshaw

Copy link
Copy Markdown
Collaborator

I merged main into this branch to fix a conflict in the docs index with the OR-Tools environment (#1501). Both entries are kept, and python scripts/sync_env_docs.py --check passes. Please pull before you push again.

@scosman

scosman commented Nov 5, 2026

Copy link
Copy Markdown
Contributor Author

@burtenshaw ready to merge when you are. I don't have permissions to merge, so you'd need to.

Same case for #1450

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants