{"id":"replay-is-positional","text":"Replay matching is positional — action N in the current run matches action N in the replay log; successful replayed actions are skipped with cached output.","truth_value":"IN","source":"entries/2026/05/11/api-automation-context.md","source_url":"","source_hash":"","justifications":[],"dependents":[],"metadata":{"example":"async with automation(\n    recording_file=\"run.log\",      # record this run\n    replay_file=\"run.log\",         # replay from previous\n) as ftl:\n    await ftl.file(path=\"/tmp/a\", state=\"touch\")  # action 0: skipped if cached\n    await ftl.copy(src=\"app.py\", dest=\"/opt/app/\")  # action 1: skipped if cached\n    await ftl.service(name=\"app\", state=\"restarted\")  # action 2: runs if new"},"explanation":{"steps":[{"node":"replay-is-positional","truth_value":"IN","reason":"premise"}]}}