The brain that makes Claude write correct Oxide guest apps.
This directory is the canonical knowledge base fed to Claude Opus 4.7 on every Forge generation call. It is packaged as an Agent Skill following the open agentskills.io specification, so the same folder can be reused by any skills-compatible agent (Claude Code, Cursor, OpenCode, etc.) that wants to generate Oxide guest apps.
forge/
├── README.md ← this file
├── DEMO_PROMPTS.md ← curated prompts for live demos
├── skills/
│ └── oxide-wasm-app/ ← the Agent Skill
│ ├── SKILL.md ← metadata + generation contract
│ └── references/
│ ├── CAPABILITIES.md ← every public SDK symbol
│ ├── PATTERNS.md ← idiomatic patterns
│ └── RECIPES.md ← copy-pasteable snippets
└── templates/
└── base/ ← minimal Cargo project scaffold
| File | Purpose |
|---|---|
skills/oxide-wasm-app/SKILL.md |
Skill metadata (YAML frontmatter: name, description) plus the full generation contract. Must stay terse and prescriptive. |
skills/oxide-wasm-app/references/CAPABILITIES.md |
Every public SDK symbol with full signatures. |
skills/oxide-wasm-app/references/PATTERNS.md |
Idiomatic state, layout, and event patterns. |
skills/oxide-wasm-app/references/RECIPES.md |
Copy-pasteable snippets for common tasks. |
DEMO_PROMPTS.md |
10 curated prompts to paste into oxide://forge for testing and demos. |
templates/base/ |
Minimal Cargo project used as the scaffold. |
user prompt
│
▼
┌────────────────────────────────────────────────────────────┐
│ skills/oxide-wasm-app/SKILL.md (frontmatter stripped) │
│ + │
│ every markdown file under references/ (alpha-sorted) │
└────────────────────────┬───────────────────────────────────┘
│ Anthropic Messages API
▼
streaming Rust source
│
▼
selected-forge-folder/<slug>/src/lib.rs
│
▼
cargo build --target wasm32-unknown-unknown
│
▼
load .wasm into a new tab
The host wiring lives in oxide-browser/src/forge.rs::build_system_prompt.
It reads SKILL.md, strips the leading ---\n…\n---\n frontmatter block
per the agentskills.io spec, then concatenates every *.md under
references/ as successive # Reference: <NAME> sections.
Because the skill is a plain folder with a SKILL.md, any
agentskills.io-compatible client can pick it up:
- Claude Code / Cursor: symlink or copy
forge/skills/oxide-wasm-appinto the host's skills directory (e.g..cursor/skills/or~/.claude/skills/). - Custom harness: load
SKILL.mdas the system prompt, and lazy-load files fromreferences/when the task demands them (progressive disclosure).
When the SDK gains a new capability:
- Update
oxide-sdk/src/lib.rs(with a SDK wrapper) and the host side. - Add the new function to
skills/oxide-wasm-app/references/CAPABILITIES.mdunder the right category. - If it introduces a new pattern (e.g. a new stream kind), add a
recipe to
references/RECIPES.mdand a line toreferences/PATTERNS.md. - Do not clutter
SKILL.md— that file is load-bearing and must stay small. Detailed material belongs inreferences/.