Skip to content

Skill Forge

A self-improving environment where LLM agents rewrite their own skill instructions through a generate → evaluate → optimize loop.

Core trick

Agent rewrites its own skill markdown after automated scoring by a judge and vision model, looping generate-evaluate-optimize without weight updates.

Tags

Description

A self-improving environment where LLM agents rewrite their own skill instructions through a generate → evaluate → optimize loop. Instead of fine-tuning weights, we optimize human-readable skill files, making improvements interpretable, transferable, and composable. Outputs are automatically scored against gold standards (Patronus Judge MM + Gemini Vision), and the agent updates its own rules with zero human feedback. MVP: consulting slide generation improved 33 → 94 in one iteration. The same loop generalizes to any document task by swapping skill files and evaluators.
clfhaha1234/Skill-Forge★ 00 forksPythonCreated Mar 7, 2026 · last push Mar 8, 2026

README excerpt

# Skill Forge

An RL environment that teaches AI to generate **professional consulting-quality slides** — automatically. It uses a generate-evaluate-optimize loop where an LLM agent iteratively rewrites its own design instructions, reaching **94/100 in just 1 step** with zero human feedback.

## Training Metrics

### Latest Run (OpenEnv + Aligned Evaluator)

```
Step 0  ██████░░░░░░░░░░░░░░  33/100   (baseline — teal palette, no McKinsey elements)
Step 1  ███████████████████░  94/100   (white bg, structured table, insight title)
```

> **94/100** — "A highly professional, McKinsey-style slide with an exceptionally strong action title and clean, structured data presentation."

Converges in **1 step** thanks to:
- **1M context beta** — full skill documentation passes through (no truncation)
- **Aligned evaluator** — explicit "white background" criterion matches reference images
- **Gemini JSON mode** — structured output schema eliminates parse errors

### Previous Runs

<details>
<summary>Click to expand</summary>

**Run 2 — Fixed rubric, no JSON mode** (parse errors on steps 3-4):
```
Step 0  █████░░░░░░░░░░░░░░░  27/100
Step 1  ██████████░░░░░░░░░░  52/100
Step 2  █████████████████░░░  89/100
Step 3  ░░░░░░░░░░░░░░░░░░░░   0/100   (JSON parse error — actual ~96)
Step 4  ░░░░░░░░░░░░░░░░░░░░   0/100   (JSON parse error — actual ~83)
```

**Run 1 — Vague rubric** (dark background scored high due to evaluator blind spot):
```
Step 0  ████░░░░░░░░░░░░░░░░  20/100
Step 1  ████████

Team