{"actions":{"bootstrapAndRun":{"effect":"installs rote if missing, inspects, prepares, and asks before running","href":"https://play.modiqo.ai/install?play=jaylabs/sweep-git-repos@0.4.6","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/jaylabs/sweep-git-repos@0.4.6","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/jaylabs/sweep-git-repos@0.4.6","effect":"executes the play locally after consent","headless":{"approvalAssertion":"--yes","approvalRequiredBeforeInvocation":true,"commandTemplate":"rote play run https://play.modiqo.ai/jaylabs/sweep-git-repos@0.4.6 <name=value...> --yes","stdinPolicy":"never pipe input to automate the interactive Ready selector"},"requiresConsent":true}},"description":"You have a folder full of repos and no idea which ones hold work that only exists on your laptop. This finds them. It walks every git repo under a folder you choose and reports unpushed commits, uncommitted changes, stashes and branches with no upstream, then asks GitHub whether that work is already on origin or in a pull request. That leg uses your existing gh login or the rote github adapter, makes GET calls only, and can be switched off. A repo it cannot read is listed as unknown, not dropped. The only file it writes is a baseline kept outside your repositories, so the next sweep shows what moved. It never writes inside a repository and never fetches.","distribution":{"digest":"sha256:0f619f5511a50d09802d414e82bcfa01e3bb2c010a27257c9f49e87463657760","mediaType":"application/vnd.modiqo.rote-flow","size":46130,"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/jaylabs/sweep-git-repos@0.4.6","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/jaylabs/sweep-git-repos@0.4.6","protocol":"https://play.modiqo.ai/.well-known/rote","self":"https://play.modiqo.ai/jaylabs/sweep-git-repos@0.4.6.json"},"name":"sweep-git-repos","owner":{"kind":"org","slug":"jaylabs"},"parameters":[{"default":"~/Documents","description":"Folder to sweep. A tilde path like ~/code is expanded to your home folder. Anything else must be a full path, not a relative one.","example":"~/Documents","input":{"allowCustom":true,"choices":[],"label":"Base dir"},"name":"base_dir","required":false,"type":"string"},{"default":"3","description":"How many folder levels below base_dir to look for repos, 1 to 6. Keep it small on big trees.","example":"3","input":{"allowCustom":true,"choices":[],"label":"Max depth"},"name":"max_depth","required":false,"type":"string"},{"description":"Where to keep the baseline this play compares against. Leave empty to use the play's own run workspace. Nothing is ever written inside a repository either way.","example":"~/.rote/sweep-git-repos-state","input":{"allowCustom":true,"choices":[],"label":"State dir"},"name":"state_dir","required":false,"type":"string"},{"description":"Extra addresses that count as yours, comma separated. Your repo-level and global git user.email already count; this is for the other addresses you commit under.","example":"you@work.com, you@users.noreply.github.com","input":{"allowCustom":true,"choices":[],"label":"Emails"},"name":"emails","required":false,"type":"string"},{"description":"Sweep only the repositories whose path under base_dir contains this text, case-insensitive. The baseline still records everything found, so a filtered run cannot make the next full run think the rest disappeared.","example":"nohunt","input":{"allowCustom":true,"choices":[],"label":"Only"},"name":"only","required":false,"type":"string"},{"default":"0","description":"Stop after this many repositories, in path order. 0 means no cap.","example":"20","input":{"allowCustom":true,"choices":[],"label":"Max repos"},"name":"max_repos","required":false,"type":"string"},{"default":"text","description":"How the briefing reads. text is the aligned terminal view, markdown is a table you can paste into a document, json prints the same object the result view carries.","example":"markdown","input":{"allowCustom":false,"choices":[{"label":"text","value":"text"},{"label":"markdown","value":"markdown"},{"label":"json","value":"json"}],"label":"Format"},"name":"format","required":false,"type":"string","validValues":["text","markdown","json"]},{"default":"auto","description":"Which route to use for the GitHub leg, where the play asks about unpushed or upstream-less branches. The value auto tries the gh CLI first when it is signed in to github.com, then the rote github adapter when its token variable is set, and skips the leg with a stated reason when neither is available. The values gh and adapter each insist on one route. The value never turns the GitHub leg off, so the sweep stays entirely local. Every route makes GET calls only.","example":"adapter","input":{"allowCustom":false,"choices":[{"label":"auto","value":"auto"},{"label":"gh","value":"gh"},{"label":"adapter","value":"adapter"},{"label":"never","value":"never"}],"label":"Github"},"name":"github","required":false,"type":"string","validValues":["auto","gh","adapter","never"]}],"preparation":[{"action":{"command":"rote play inspect https://play.modiqo.ai/jaylabs/sweep-git-repos@0.4.6 --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/jaylabs/sweep-git-repos@0.4.6","headlessCommandTemplate":"rote play run https://play.modiqo.ai/jaylabs/sweep-git-repos@0.4.6 <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.75.0"},"publishedAt":"2026-09-03T23:19:13.576712+00:00","reference":"jaylabs/sweep-git-repos@0.4.6","requirements":{"adapters":[],"browser":{"dependencies":[],"runtime":false,"signIn":false},"localTools":["python3","git","gh"],"roteCli":{"minimumVersion":"0.62.0"},"sessions":false},"resolution":"pinned","schema":"rote.play.v1","stats":{"downloads":1,"installs":0},"steps":{"count":7,"names":["discover_repos","env_probe","github_probe","github_status","load_previous","sweep_repo","validate_base"]},"title":"sweep-git-repos","type":"play","version":"0.4.6","visibility":"public"}