From env-forge
Generate a new database-backed MCP tool environment from a scenario description. Use when user says "forge an environment", "generate tool environment", "create an MCP backend", "scaffold database tools", "build a sandbox", or "synthesize an environment from scratch".
How this skill is triggered — by the user, by Claude, or both
Slash command
/env-forge:forgeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Interactive environment generation. Walks through the full synthesis pipeline: scenario description -> tasks -> schema -> seed data -> API spec -> server code -> verifiers. Each step produces a file in the output directory.
Interactive environment generation. Walks through the full synthesis pipeline: scenario description -> tasks -> schema -> seed data -> API spec -> server code -> verifiers. Each step produces a file in the output directory.
/env-forge:forge <description of the platform/domain>
/env-forge:forge
Examples:
/env-forge:forge a volunteer matching platform where organizations post opportunities and volunteers sign up based on skills and availability/env-forge:forge pet adoption agency with animal profiles, applications, foster homes, and veterinary records/env-forge:forge then describe the domain interactivelyIf the user provides a description, refine it. If not, ask:
Write the scenario to .env-forge/environments/<name>/scenario.json:
{
"name": "volunteer_match",
"description": "A volunteer matching platform where...",
"tasks": [],
"created_at": "2026-02-23T12:00:00Z"
}
Before generating from scratch, search the AWM-1K catalog for a structurally similar domain:
uv run python env-forge/scripts/catalog.py --search "<domain keywords>"
If a close match exists, review its structure with --details:
Use the closest match as a structural reference -- adapt its patterns to the new domain, don't copy verbatim. If no match is close enough, proceed from scratch.
Generate 10 realistic, diverse tasks following the task-first methodology from the env-forge skill. Each task is a single sentence with all parameters included.
Coverage requirements:
Present tasks to user for review. Allow additions, removals, or modifications. Update scenario.json with finalized task list.
Design SQLite tables to support ALL tasks. Follow patterns in references/schema_patterns.md:
Write DDL to .env-forge/environments/<name>/schema.sql.
Present table list and relationships to user for review.
Generate INSERT statements that make every task executable. Follow coverage rules in references/schema_patterns.md:
Write to .env-forge/environments/<name>/seed_data.sql.
Design RESTful endpoints for all tasks. Follow references/api_design_rules.md:
Write to .env-forge/environments/<name>/api_spec.json.
Present endpoint list to user for review.
Generate complete, executable FastAPI application. Follow references/fastapi_mcp_template.md:
Write to .env-forge/environments/<name>/server.py.
Generate verification functions for each task. Follow references/verification_patterns.md:
Write to .env-forge/environments/<name>/verifiers.py.
Create and seed the SQLite databases:
mkdir -p .env-forge/environments/<name>/db
sqlite3 .env-forge/environments/<name>/db/current.db < .env-forge/environments/<name>/schema.sql
sqlite3 .env-forge/environments/<name>/db/current.db < .env-forge/environments/<name>/seed_data.sql
cp .env-forge/environments/<name>/db/current.db .env-forge/environments/<name>/db/initial.db
Write pyproject.toml for the environment:
[project]
name = "env-forge-<name>"
version = "0.1.0"
requires-python = ">=3.11"
dependencies = [
"fastapi>=0.115.0",
"uvicorn>=0.30.0",
"sqlalchemy>=2.0.0",
"fastapi-mcp>=0.3.0",
"pydantic>=2.0.0",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
Run structural validation:
uv run python env-forge/scripts/validate_env.py .env-forge/environments/<name>/
Display:
cd .env-forge/environments/<name> && uv run python server.pyverifiers.pyIf any generation step produces errors (syntax, import, schema mismatch):
Before starting, assess whether the domain produces useful synthetic environments. Flag if the domain's core value depends on non-synthesizable data (long-form content, media, AI inference, real-time feeds). See the suitability table in the env-forge skill.
Full environment directory at .env-forge/environments/<name>/ with all files listed above. The environment is self-contained and runnable.
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