One of Tap’s three primitive planes. Capture turns URLs, trajectories, or intents into deterministic
.tap.jsonplans. The plan is the immutable artifact every other plane works on.
Capture solves R1 (every conversion loses information) and A2 (LLMs are probabilistic). The plane’s job is to record once, faithfully, so Replay never has to re-derive and Verify has a stable artifact to check.
| Tool | Source IRI | Input | Output |
|---|---|---|---|
tap forge <url> |
https://taprun.dev/forge |
live page | structurally-ranked plan |
@taprun/from-playwright |
https://taprun.dev/from-playwright |
Playwright .ts/.js |
plan-v1 envelope |
@taprun/from-puppeteer |
https://taprun.dev/from-puppeteer |
Puppeteer .ts/.js |
plan-v1 envelope |
@taprun/from-stagehand |
https://taprun.dev/from-stagehand |
Stagehand .ts/.js |
hybrid plan |
create-tap-script |
https://taprun.dev/create-tap-script |
site/name + URL | starter plan |
| trajectory compiler | (internal) | browser-use AgentHistoryList |
plan |
Capture ranks four source layers in descending trust:
<article>, <h1>, <address> + ARIA roles)When a Layer 1 or Layer 2 source carries the answer, Capture emits a deterministic plan with zero LLM tokens spent on code generation. This is “Tier 0” — the optimization pass that skips codegen when source allows. The 12-fact derivation is in ADR 2026-04-26 — Three-Plane Refactor (in core).
Verify ∘ Capture — drift report from Verify becomes input to a new Capture pass.Heal and Refresh are workflows over the three planes, not separate primitives.
plan-v1 reference — the format Capture producestap-v1 namespace — the JSON-LD vocabulary