The Skill Factory turns Webwright's solve trajectories into a growing library of
reusable, parameterized skills that are plain Python + Playwright — code you can
run without a model and compose into the next task instead of re-exploring a site.
The loop is solve -> gate -> group by template -> distil -> replay-verify ->
library -> reuse, with two independent gates. An input gate keeps untrustworthy
solves out (gold answers, or a self-verify shape/non-empty/agent-report check);
an output gate replays each distilled skill standalone, with no model, and admits
it only if it reproduces its own training answers. That second gate is what lets
a landed skill carry a real grade — executable (replay ran and reproduced),
reference (replay ran and failed; kept as a labelled prior the agent reads), or
unverified (replay skipped).
Commands:
- init — a one-line need becomes a skill.yaml skeleton you fill with ground truth
- build — solve N instances of a spec, then learn from them (parallel, resumable)
- learn — distil trajectories you already have into the library
- update/skill_use — the manual manifest path and the solve-time library query
Includes the flight-schedule example end to end (spec, trajectories, and a
verified executable skill), docs (quickstart in the module README, plus reference
and manual mode), a demo video and pipeline diagram, and a test suite covering
the gates, distillation, replay comparison, and config wiring.
Closes#3.
The image_qa and self_reflection inner tools now route through the configured model registry instead of hardcoding the OpenAI Responses API. Anthropic-only runs (`webwright -c base.yaml -c model_claude.yaml`) work end-to-end with only `ANTHROPIC_API_KEY` set.
Co-authored-by: Matt Van Horn <mvanhorn@users.noreply.github.com>