From env-forge
Generate database-backed MCP tool environments from scenario descriptions or browse 1000 pre-built environments. Use when user says "generate a tool environment", "create an MCP backend", "scaffold database tools", "build a sandbox", "synthesize an environment", "launch an environment", "browse environments", "AWM catalog", "create API tools", "generate test tools", "tool environment for", "database-backed tools", "sandbox for agent testing", or "create tools for".
How this skill is triggered — by the user, by Claude, or both
Slash command
/env-forge:env-forgeThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Claude Code interface for the [Agent World Model (AWM)](https://github.com/Snowflake-Labs/AgentWorldModel) synthesis pipeline from Snowflake Labs. Generates self-contained, database-backed tool environments exposed via MCP. Each environment is a complete FastAPI + SQLite stack with typed endpoints, seed data, and task verification functions. The synthesis methodology, output format, and task-fi...
Claude Code interface for the Agent World Model (AWM) synthesis pipeline from Snowflake Labs. Generates self-contained, database-backed tool environments exposed via MCP. Each environment is a complete FastAPI + SQLite stack with typed endpoints, seed data, and task verification functions. The synthesis methodology, output format, and task-first design principle are from AWM.
Two modes:
The key methodology: tasks drive schema, not the reverse.
Traditional approach: design tables -> build API -> hope tasks work. Task-first approach: define user tasks -> derive schema from tasks -> design API to support tasks -> generate verification from tasks.
This produces environments where every table column and every API endpoint exists because a task needs it. No dead schema, no unused endpoints.
Every environment has three layers:
| Layer | Implementation | Purpose |
|---|---|---|
| State | SQLite database | Persistent, queryable, diffable |
| Interface | FastAPI + fastapi-mcp | Typed tools with OpenAPI metadata |
| Verification | Python functions | DB state comparison for task completion |
The state layer is the source of truth. Tools read and write state. Verification compares state snapshots (before vs after tool execution).
When forging a new environment, follow these steps in order. Each step produces a file in the output directory.
Write a clear description of the platform/domain. Include:
Generate 10 realistic, diverse user tasks that cover:
Each task is a single sentence with all parameters included. Example: "Search for laptops under $500 and add the cheapest one to the cart."
Tasks must NOT include authentication (assume user is logged in as user_id=1), file downloads, or page navigation.
Design SQLite tables to support ALL tasks. Rules:
Full patterns: references/schema_patterns.md
Write INSERT statements that make every task executable. Coverage rules:
Data uses realistic values: real product names, proper formats, temporal diversity, status variations.
Full patterns: references/schema_patterns.md
Design RESTful endpoints for all tasks. Rules:
Every endpoint requires: summary (80 chars max), description (200 chars max, single line), operation_id (snake_case), tags, typed request_params, typed response schema.
Full patterns: references/api_design_rules.md
Produce a complete, executable FastAPI application. Stack:
All endpoint handlers are async and self-contained. Session lifecycle: create -> work -> commit (for writes) -> close.
Full template: references/fastapi_mcp_template.md
For each task, write a Python function that determines completion by comparing DB state:
def verify_task(initial_db_path: str, final_db_path: str) -> dict:
# Connect to both databases
# Query relevant tables
# Compare state
# Return diagnostic dict
Two verification strategies:
Full patterns: references/verification_patterns.md
When generation fails (syntax errors, import errors, schema mismatches):
This applies to schema generation, server code generation, and data insertion.
Not every domain produces useful synthetic environments. Data must be realistically fakeable:
| Synthesizable | NOT Synthesizable |
|---|---|
| Numeric values (prices, ratings, coordinates) | Long-form content (articles, blogs) |
| Structured entities (users, products, orders) | Media content (actual video/audio/images) |
| Status/state values | AI inference results |
| Short text (names, titles, descriptions) | Search ranking algorithms |
| Dates, timestamps | Real-time external feeds |
| Geographic data (cities, coordinates) |
If a scenario requires non-synthesizable data as its core (e.g., "a blog platform" where posts ARE the product), flag it. The environment will have placeholder text that cannot meaningfully exercise search or recommendation tasks.
The AWM-1K catalog covers: E-commerce/Marketplace, Booking/Reservation, Social/Community, Task/Project Management, Finance/Banking, Subscription/Membership, Inventory/Catalog, Messaging/Communication, Lists/Collections, Scheduling/Calendar, Forms/Surveys, Settings/Configuration, Healthcare/Medical, Education/Learning, Real Estate/Property, HR/Recruiting, Legal/Compliance, Logistics/Shipping, Food/Restaurant, Entertainment/Gaming, Fitness/Wellness, Travel/Hospitality, Automotive, IoT/Smart Devices, Developer Tools, CRM/Sales, Content Management, Analytics/Reporting.
Full index: references/catalog_index.md
.env-forge/environments/<name>/
scenario.json # Metadata + task list
schema.sql # SQLite DDL
seed_data.sql # INSERT statements
api_spec.json # API specification
server.py # FastAPI + fastapi-mcp (runnable)
verifiers.py # Task verification functions
db/
initial.db # Seeded (backup)
current.db # Working (mutated by tools)
pyproject.toml # Environment dependencies
# Browse catalog
uv run python env-forge/scripts/catalog.py --search "e-commerce"
# Materialize from catalog
uv run python env-forge/scripts/materialize.py --scenario e_commerce_33
# Validate environment structure
uv run python env-forge/scripts/validate_env.py .env-forge/environments/e_commerce_33/
| Reference | Purpose |
|---|---|
references/schema_patterns.md | SQLite schema patterns with examples |
references/api_design_rules.md | RESTful API spec patterns and rules |
references/verification_patterns.md | DB state comparison verification |
references/fastapi_mcp_template.md | Server code template (FastAPI + fastapi-mcp + SQLAlchemy) |
references/catalog_index.md | AWM-1K scenario index by category |
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
npx claudepluginhub fblissjr/fb-claude-skills --plugin env-forge