{"actions":{"bootstrapAndRun":{"effect":"installs rote if missing, inspects, prepares, and asks before running","href":"https://play.modiqo.ai/install?play=adnandev/hotspots@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/adnandev/hotspots@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/adnandev/hotspots@0.1.0","effect":"executes the play locally after consent","headless":{"approvalAssertion":"--yes","approvalRequiredBeforeInvocation":true,"commandTemplate":"rote play run https://play.modiqo.ai/adnandev/hotspots@0.1.0 <name=value...> --yes","stdinPolicy":"never pipe input to automate the interactive Ready selector"},"requiresConsent":true}},"description":"Ranks the files that absorb the most change and are largest when they do, so you can see where the work actually concentrates. On the repository this was built on, 17 percent of every file change landed on the busiest ten percent of files, and half of all changes ever made touched just 36 of 149 files. Three DAG steps: one reader that walks git history counting how many commits touched each still-tracked file, one that measures each file's current length, and one join that ranks them by commits multiplied by lines and reports how concentrated the churn is. Deleted files are dropped because their churn is history rather than a hotspot, and non-code files are listed separately instead of crowding the ranking. Churn is reported as attention, never as quality: the output says plainly that a file which changes often may simply be where the work is. A path outside a git work tree, a missing git, and a repository with no recorded history each print a different honest answer instead of a zero. Read-only toward your r","distribution":{"digest":"sha256:0b31ad6e8b0f8ad04f12bebb59a07bd7b815d05d54b61ddded00819309f37e69","mediaType":"application/vnd.modiqo.rote-flow","size":12151,"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/adnandev/hotspots@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/adnandev/hotspots@0.1.0","protocol":"https://play.modiqo.ai/.well-known/rote","self":"https://play.modiqo.ai/adnandev/hotspots@0.1.0.json"},"name":"hotspots","owner":{"kind":"user","slug":"adnandev"},"parameters":[{"default":".","description":"Repository to analyse. Defaults to the current directory. Must be inside a git work tree; anything else prints INDETERMINATE rather than an empty result.","input":{"allowCustom":true,"choices":[],"label":"Root"},"name":"root","required":false,"type":"string"},{"description":"Optional git date to limit history, such as 6.months.ago or 2026-01-01. Empty means the whole history. Narrowing the window changes every count, so a short window makes a long-lived file look calm.","input":{"allowCustom":true,"choices":[],"label":"Since"},"name":"since","required":false,"type":"string"},{"default":"15","description":"How many files to list. Never changes a count or a rank, only how much of the ranking is shown.","input":{"allowCustom":true,"choices":[],"label":"Top n"},"name":"top_n","required":false,"type":"string"},{"default":"findings","description":"findings prints the top files. all prints every ranked file. Neither setting changes a count.","input":{"allowCustom":true,"choices":[],"label":"Report"},"name":"report","required":false,"type":"string"}],"preparation":[{"action":{"command":"rote play inspect https://play.modiqo.ai/adnandev/hotspots@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/adnandev/hotspots@0.1.0","headlessCommandTemplate":"rote play run https://play.modiqo.ai/adnandev/hotspots@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-04T09:22:41.922699+00:00","reference":"adnandev/hotspots@0.1.0","requirements":{"adapters":[],"browser":{"dependencies":[],"runtime":false,"signIn":false},"localTools":["python3","git"],"roteCli":{"minimumVersion":"0.62.0"},"sessions":false},"resolution":"pinned","schema":"rote.play.v1","stats":{"downloads":4,"installs":0},"steps":{"count":3,"names":["measure_size","read_churn","report_hotspots"]},"title":"hotspots","type":"play","version":"0.1.0","visibility":"public"}