{"actions":{"bootstrapAndRun":{"effect":"installs rote if missing, inspects, prepares, and asks before running","href":"https://play.modiqo.ai/install?play=lgoyal6/backup-reality@0.1.0","method":"GET","rel":"https://rote.dev/rels/bootstrap-and-run","requiresConsent":true,"responseMediaType":"text/x-shellscript"},"inspect":{"command":"rote play inspect https://play.modiqo.ai/lgoyal6/backup-reality@0.1.0","effect":"read-only"},"installCliOnly":{"effect":"installs the rote CLI, nothing else","href":"https://play.modiqo.ai/install","method":"GET","rel":"https://rote.dev/rels/install-cli","requiresConsent":true,"responseMediaType":"text/x-shellscript"},"run":{"command":"rote play run https://play.modiqo.ai/lgoyal6/backup-reality@0.1.0","effect":"executes the play locally after consent","headless":{"approvalAssertion":"--yes","approvalRequiredBeforeInvocation":true,"commandTemplate":"rote play run https://play.modiqo.ai/lgoyal6/backup-reality@0.1.0 <name=value...> --yes","stdinPolicy":"never pipe input to automate the interactive Ready selector"},"requiresConsent":true}},"description":"You believe you have backups. Answers one question about THIS machine: for every backup and sync mechanism it DECLARES, is there evidence that the mechanism recently produced an artifact? Reconciles five declaration sources read from configuration and code alone - Time Machine's destination list and exclusions plus any backup store on a mounted volume, launchd agents and crontab lines whose command is rsync, restic, borg, duplicity, rclone, tar -c, pg_dump, mysqldump, mongodump or sqlite3 .backup, backup-named scripts nothing schedules, the cloud sync roots (iCloud Drive, Dropbox, Google Drive, OneDrive, Box), and the data stores declared by docker compose files and local database data directories - against the evidence each one leaves behind: the mtime and size of the destination where that destination is on this disk, the arrival times recovered from the timestamps INSIDE the job's own log (clustered so fifty lines from one run count as one run, then compared as a median gap against the declared interval),","distribution":{"digest":"sha256:0c626450c44279627394ca27035cc606a9acd85059a70df346f3b18fb4efe27d","mediaType":"application/vnd.modiqo.rote-flow","size":60590,"verifiedBy":"rote verifies the downloaded archive against this digest before it runs"},"effects":{"credentialsProvidedBy":"runner","credentialsRemainLocal":true,"declaredWrites":[],"publisherReceivesCredentials":false},"id":"https://play.modiqo.ai/lgoyal6/backup-reality@0.1.0","inputPolicy":{"optionalWithDefault":"show_default_and_accept_override","optionalWithoutDefault":"omit_unless_supplied","required":"ask","secrets":"collect_locally_outside_conversation"},"links":{"docs":"https://rote.dev","page":"https://play.modiqo.ai/lgoyal6/backup-reality@0.1.0","protocol":"https://play.modiqo.ai/.well-known/rote","self":"https://play.modiqo.ai/lgoyal6/backup-reality@0.1.0.json"},"name":"backup-reality","owner":{"kind":"user","slug":"lgoyal6"},"parameters":[{"description":"ABSOLUTE path whose directories, repositories and compose files are checked for backup coverage. A relative path is refused, because a step runs in rote's own workspace rather than your shell directory and would report a confident clean about the wrong tree.","example":"/Users/you","input":{"allowCustom":true,"choices":[],"label":"Root"},"name":"root","required":true,"type":"string"},{"default":"3","description":"How many directory levels below root to search for repositories, compose files and backup scripts","example":"3","input":{"allowCustom":true,"choices":[],"label":"Depth"},"name":"depth","required":false,"type":"string"},{"default":"3","description":"How many of a job's own declared intervals may pass with no new artifact before the mechanism is called stopped","example":"3","input":{"allowCustom":true,"choices":[],"label":"Stale factor"},"name":"stale_factor","required":false,"type":"string"},{"default":"14","description":"Days without a new artifact that make a continuous mechanism (Time Machine, a cloud sync root) count as stopped, used where there is no declared interval to multiply","example":"14","input":{"allowCustom":true,"choices":[],"label":"Stale days"},"name":"stale_days","required":false,"type":"string"}],"preparation":[{"action":{"command":"rote play inspect https://play.modiqo.ai/lgoyal6/backup-reality@0.1.0 --json","effect":"read-only"},"step":1,"type":"inspect_local_readiness"},{"references":["/parameters"],"step":2,"type":"collect_parameters"},{"references":["/parameters","/requirements","/effects"],"step":3,"type":"review"},{"consentBoundary":"the user approves the exact play and parameter values","references":["/parameters","/requirements","/effects"],"step":4,"type":"obtain_run_consent"},{"action":{"command":"rote play run https://play.modiqo.ai/lgoyal6/backup-reality@0.1.0","headlessCommandTemplate":"rote play run https://play.modiqo.ai/lgoyal6/backup-reality@0.1.0 <name=value...> --yes"},"preservesAcquisitionBoundaries":["adapter_selection","oauth_dcr","google_discovery","static_token_setup","runtime_security_checks"],"requiresConsent":true,"step":5,"type":"run"}],"producedBy":{"roteVersion":"0.79.0"},"publishedAt":"2026-09-04T08:42:05.881167+00:00","reference":"lgoyal6/backup-reality@0.1.0","requirements":{"adapters":[],"browser":{"dependencies":[],"runtime":false,"signIn":false},"localTools":["python3","bash","find","grep","sed","sort","wc","tr","cat","head","cut","mktemp","rm","date","id","plutil","launchctl","crontab","git"],"roteCli":{"minimumVersion":"0.62.0"},"sessions":false},"resolution":"pinned","schema":"rote.play.v1","stats":{"downloads":3,"installs":0},"steps":{"count":3,"names":["analyze","discover","verify"]},"title":"backup-reality","type":"play","version":"0.1.0","visibility":"public"}