{"actions":{"bootstrapAndRun":{"effect":"installs rote if missing, inspects, prepares, and asks before running","href":"https://play.modiqo.ai/install?play=jaylabs/ship-recap@0.3.12","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/ship-recap@0.3.12","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/ship-recap@0.3.12","effect":"executes the play locally after consent","headless":{"approvalAssertion":"--yes","approvalRequiredBeforeInvocation":true,"commandTemplate":"rote play run https://play.modiqo.ai/jaylabs/ship-recap@0.3.12 <name=value...> --yes","stdinPolicy":"never pipe input to automate the interactive Ready selector"},"requiresConsent":true}},"description":"Turn today's work into a daily recap and a LinkedIn or X post, written from your git history and your Claude Code or Codex transcripts. It is 8pm, you shipped all day, and you have posted nothing. One real day here came to 119,789 bytes of commits and transcripts. Nine DAG steps cut that down. Four fan out per transcript, thread and topic, so one huge session gets its own budget. Free prose from the model is a failed node, and a figure the day never produced sends the draft back for one rewrite. It never posts. It writes one HTML page into out_dir, about a dozen model calls billed to the agent CLI you are signed into.","distribution":{"digest":"sha256:9f840fbbb4ef69de4efa42ee6ed9298ab897e11d595282edc254fcd0460b0fdb","mediaType":"application/vnd.modiqo.rote-flow","size":157188,"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/ship-recap@0.3.12","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/ship-recap@0.3.12","protocol":"https://play.modiqo.ai/.well-known/rote","self":"https://play.modiqo.ai/jaylabs/ship-recap@0.3.12.json"},"name":"ship-recap","owner":{"kind":"org","slug":"jaylabs"},"parameters":[{"default":"auto","description":"Open the finished recap in your browser when the run ends (auto), or only print its path (never).","example":"never","input":{"allowCustom":false,"choices":[{"label":"auto","value":"auto"},{"label":"never","value":"never"}],"label":"Open page"},"name":"open_page","required":false,"type":"string","validValues":["auto","never"]},{"default":"live","description":"live reads this machine's last 24 hours. sample runs the built-in example day, and with writer=none it runs every step for free.","example":"sample","input":{"allowCustom":false,"choices":[{"label":"live","value":"live"},{"label":"sample","value":"sample"}],"label":"Source"},"name":"source","required":false,"type":"string","validValues":["live","sample"]},{"default":"~/code","description":"The folder whose git repositories are read. If it is missing or unreadable the play tries the usual code folders instead and says which one it used.","example":"~/work","input":{"allowCustom":true,"choices":[],"label":"Root"},"name":"root","required":false,"type":"string"},{"default":"today","description":"Which day to recap. today is a rolling 24 hours, yesterday and a date like 2026-09-01 are calendar days, and NNd covers the last N days.","example":"yesterday","input":{"allowCustom":true,"choices":[],"label":"Date"},"name":"date","required":false,"type":"string"},{"description":"Comma-separated patterns matched against repository and transcript PATHS. A match is skipped before it is read. For a name that appears inside prose rather than in a path, use redact_terms.","example":"client-, secret-side-project","input":{"allowCustom":true,"choices":[],"label":"Exclude"},"name":"exclude","required":false,"type":"string"},{"description":"Names, clients and projects that must never leave this machine. Unlike exclude, which matches paths, these are removed from prose as it is read, and a page still carrying one is refused.","example":"acme, northwind, project-atlas","input":{"allowCustom":true,"choices":[],"label":"Redact terms"},"name":"redact_terms","required":false,"type":"string"},{"default":"agent","description":"Which agent CLI writes the drafts, billed to that CLI's own account at roughly a dozen calls per run. agent takes the first of claude or codex that is installed and signed in; name one to pin it; none makes no model call at all.","example":"none","input":{"allowCustom":false,"choices":[{"label":"agent","value":"agent"},{"label":"claude","value":"claude"},{"label":"codex","value":"codex"},{"label":"none","value":"none"}],"label":"Writer"},"name":"writer","required":false,"type":"string","validValues":["agent","claude","codex","none"]},{"default":"3","description":"How many folder levels below root to search for repositories, 1 to 5.","example":"2","input":{"allowCustom":true,"choices":[],"label":"Max depth"},"name":"max_depth","required":false,"type":"string"},{"default":"3","description":"How many topics the page may carry, 1 to 3. Each topic costs one post call and one illustration call, so lowering this is the cheapest way to spend less.","example":"1","input":{"allowCustom":true,"choices":[],"label":"Max topics"},"name":"max_topics","required":false,"type":"string"},{"default":"false","description":"One topic on the mid-tier model, for a draft in a few minutes instead of a full run. The planner and the writer are measurably more literal.","example":"true","input":{"allowCustom":false,"choices":[{"label":"true","value":"true"},{"label":"false","value":"false"}],"label":"Fast"},"name":"fast","required":false,"type":"string","validValues":["true","false"]},{"default":"~/.rote/ship-recap","description":"Where the recap page is written, one file per day.","example":"~/Desktop/recaps","input":{"allowCustom":true,"choices":[],"label":"Out dir"},"name":"out_dir","required":false,"type":"string"},{"description":"Your X or LinkedIn handle, shown on the preview cards.","example":"yourhandle","input":{"allowCustom":true,"choices":[],"label":"Handle"},"name":"handle","required":false,"type":"string"}],"preparation":[{"action":{"command":"rote play inspect https://play.modiqo.ai/jaylabs/ship-recap@0.3.12 --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/ship-recap@0.3.12","headlessCommandTemplate":"rote play run https://play.modiqo.ai/jaylabs/ship-recap@0.3.12 <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-03T23:17:46.0302+00:00","reference":"jaylabs/ship-recap@0.3.12","requirements":{"adapters":[],"browser":{"dependencies":[],"runtime":false,"signIn":false},"localTools":["python3","git","claude","codex"],"roteCli":{"minimumVersion":"0.62.0"},"sessions":false},"resolution":"pinned","schema":"rote.play.v1","stats":{"downloads":2,"installs":0},"steps":{"count":9,"names":["digest_day","discover_activity","draw_art","find_angles","plan_day","read_sessions","render_page","validate_scope","write_post"]},"title":"ship-recap","type":"play","version":"0.3.12","visibility":"public"}