{"actions":{"bootstrapAndRun":{"effect":"installs rote if missing, inspects, prepares, and asks before running","href":"https://play.modiqo.ai/install?play=rajkaria/since-last@0.1.1","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/rajkaria/since-last@0.1.1","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/rajkaria/since-last@0.1.1","effect":"executes the play locally after consent","headless":{"approvalAssertion":"--yes","approvalRequiredBeforeInvocation":true,"commandTemplate":"rote play run https://play.modiqo.ai/rajkaria/since-last@0.1.1 <name=value...> --yes","stdinPolicy":"never pipe input to automate the interactive Ready selector"},"requiresConsent":true}},"description":"An agent has been working. What did it touch? Not what it said it did — what actually moved on disk since the last time you asked. The first run notes the tree and says so, rather than claiming every file in your repository is new. Every run after that gives you what was created, what changed, what was deleted, the line counts that went with it, and the biggest single change. A file whose timestamp moved but whose bytes did not is not reported as modified, because that is noise and noise is what makes a check like this stop being read. The other half is the question people actually have, and it is answered without opening anything: \u0060~/.ssh\u0060, \u0060~/.aws\u0060, \u0060~/.config\u0060, \u0060~/.gnupg\u0060, \u0060~/.claude\u0060, \u0060~/.codex\u0060 and \u0060~/Library/LaunchAgents\u0060 are checked by directory timestamp alone. The Play can tell you something under \u0060~/.ssh\u0060 changed while it was working, and it can tell you that having read not one byte of what is in there. The walk is bounded and says when it hit the bound, so a partial answer is reported as a lower b","distribution":{"digest":"sha256:22b03d11440b1c37fc3fb42a364b6b46a3a29ed326ee31ee4f817feee346e76f","mediaType":"application/vnd.modiqo.rote-flow","size":45612,"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/rajkaria/since-last@0.1.1","inputPolicy":{"omittedValues":"inspect_full_parameters_before_collecting_values_or_consent","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/rajkaria/since-last@0.1.1","protocol":"https://play.modiqo.ai/.well-known/rote","self":"https://play.modiqo.ai/rajkaria/since-last@0.1.1.json"},"name":"since-last","owner":{"kind":"user","slug":"rajkaria"},"parameters":[{"default":".","description":"The tree whose changes you want. Compared against the snapshot from the last time you asked about this same folder.","example":"~/code/my-project","input":{"allowCustom":true,"choices":[],"label":"Root"},"name":"root","required":false,"type":"string"},{"default":"~/.rote-micro","description":"The one directory this Play writes to. One append-only JSONL file per stream; nothing is ever deleted or rewritten in place.","example":"~/.rote-micro","input":{"allowCustom":true,"choices":[],"label":"State dir"},"name":"state_dir","required":false,"type":"string"},{"default":"","description":"Comma-separated, added to the built-in list (.git, node_modules, __pycache__, .venv, dist, build and friends).","example":"coverage,tmp","input":{"allowCustom":true,"choices":[],"label":"Ignore"},"name":"ignore","required":false,"type":"string"},{"default":20000,"description":"The walk stops here and says so, so a partial answer is never reported as a complete one.","example":20000,"input":{"allowCustom":true,"choices":[],"label":"Max files"},"name":"max_files","required":false,"type":"integer"},{"default":"true","description":"true also notices whether ~/.ssh, ~/.aws, ~/.config, ~/.gnupg or LaunchAgents changed — by directory timestamp alone, never by reading what is in them.","example":"true","input":{"allowCustom":true,"choices":[],"label":"Watch sensitive"},"name":"watch_sensitive","required":false,"type":"string"},{"default":"","description":"Empty uses the machine's zone. A day boundary is a place, not a fact: this decides when today starts.","example":"Asia/Kolkata","input":{"allowCustom":true,"choices":[],"label":"Tz"},"name":"tz","required":false,"type":"string"},{"default":"false","description":"true runs the whole Play against bundled synthetic input, so a first run needs nothing configured and touches nothing of yours.","example":"false","input":{"allowCustom":true,"choices":[],"label":"Demo"},"name":"demo","required":false,"type":"string"},{"default":"","description":"Empty reads the real clock. An ISO-8601 instant makes the run reproducible, which is how the tests and the demo produce the same bytes on every machine.","example":"2026-09-05T14:22:03Z","input":{"allowCustom":true,"choices":[],"label":"Now"},"name":"now","required":false,"type":"string"}],"preparation":[{"action":{"command":"rote play inspect https://play.modiqo.ai/rajkaria/since-last@0.1.1 --json","effect":"read-only"},"step":1,"type":"inspect_local_readiness"},{"references":["/parameters"],"step":2,"type":"collect_parameters","whenValuesOmitted":"Run step 1 before collecting inputs or showing defaults; omittedFields are unknown values, not absent defaults or exhaustive choices."},{"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/rajkaria/since-last@0.1.1","headlessCommandTemplate":"rote play run https://play.modiqo.ai/rajkaria/since-last@0.1.1 <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.80.0"},"publishedAt":"2026-09-05T17:50:16.926352+00:00","reference":"rajkaria/since-last@0.1.1","requested":"rajkaria/since-last","requirements":{"adapters":[],"browser":{"dependencies":[],"runtime":false,"signIn":false},"hostToolRequirements":[{"command":"python3","required":true,"versionRequirement":null}],"localTools":["python3"],"roteCli":{"minimumVersion":"0.91.0"},"sessions":false},"resolution":"latest","schema":"rote.play.v1","stats":{"downloads":1,"installs":0},"steps":{"count":1,"names":["report"]},"title":"since-last","type":"play","version":"0.1.1","visibility":"public"}