Skip to main content

Cross-repo propagation workflow built on refactor-cli — apply a transformation across many repos at once.

Project description

rollout-cli

Cross-repo propagation workflow built on refactor-cli — apply a transformation across many repos at once.

What you get

  • An agent-first CLI cited from teken (afi-cli) — the runtime package has no third-party dependencies.
  • A mesh identityculture.yaml (suffix + backend) and the matching prompt file (CLAUDE.md for backend: claude).
  • The canonical guildmaster skill kit (12 skills) under .claude/skills/, vendored cite-don't-import, plus the remember / recall memory skills vendored directly from eidetic-cli. See docs/skill-sources.md.
  • A build + deploy baseline — pytest, lint, the agent-first rubric gate, and PyPI Trusted Publishing wired into GitHub Actions.

Quickstart

uv sync
uv run pytest -n auto                 # run the test suite
uv run rollout-cli whoami  # identity from culture.yaml
uv run rollout-cli learn   # self-teaching prompt (add --json)
uv run teken cli doctor . --strict    # the agent-first rubric gate CI runs

CLI

Verb What it does
whoami Report this agent's nick, version, backend, and model from culture.yaml.
learn Print a structured self-teaching prompt.
explain <path> Markdown docs for any noun/verb path.
overview Read-only descriptive snapshot of the agent.
doctor Check the agent-identity invariants (prompt-file-present, backend-consistency).
cli overview Describe the CLI surface itself.

Every command supports --json. Results go to stdout, errors/diagnostics to stderr (never mixed). Exit codes: 0 success, 1 user error, 2 environment error, 3+ reserved.

Rollout Engine

Operator vs Agent Roles

  • Operator — defines the recipe, selects targets (--org / --repos), reviews the plan output, and confirms the apply. The operator is the only party that can merge PRs.
  • Agent — executes the deterministic steps: resolve targets, classify repos, branch, apply scripts, bump versions, commit, push, and open PRs. The agent never merges and never makes edits not declared by a recipe.

Recipe Model

A recipe is a directory containing:

  • manifest.toml — metadata (name, touched_files, bump_level, changelog_text).
  • apply.sh — idempotent script that applies the transformation.
  • check.sh — pre-flight script that classifies a repo as done, ok, or needs-attention.

The recipe model ensures every file change is declared up-front; rollout never writes to the worktree outside of apply.sh and the deterministic version bumper.

Two-Phase Flow: Plan → Apply

  1. rollout plan — dry-run. Resolves targets, classifies each as clean, already-done, or needs-attention, and renders per-repo diffs. No branches, no pushes.
  2. rollout apply — after operator confirmation (or --yes), applies the recipe to clean targets only: branch from origin/main, run apply.sh, bump version, commit, push, and open one PR per repo. A summary table of PR URLs is printed.

Boundary

  • Rollout never merges PRs — that is the operator's responsibility.
  • Rollout never makes edits not declared by a recipe's apply.sh or the deterministic version bumper.
  • CI is each repo's own — each target repo runs its own CI pipeline; rollout does not gate on CI results.

Make it your own

  1. Rename the package rollout/ and the rollout-cli CLI/dist name throughout pyproject.toml, the package, tests/, sonar-project.properties, and this README.md. The name is hard-coded in ~100 places, so list every occurrence first — see the git grep discovery command in CLAUDE.md, the authoritative rename procedure.
  2. Edit culture.yaml with your suffix and backend.
  3. Rewrite CLAUDE.md for your agent and run /init.
  4. Re-vendor only the skills you need from guildmaster (see docs/skill-sources.md).

See CLAUDE.md for the full conventions (version-bump-every-PR, the cicd PR lane, deploy setup).

License

Apache 2.0 — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rollout_cli-0.7.0.tar.gz (230.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rollout_cli-0.7.0-py3-none-any.whl (37.1 kB view details)

Uploaded Python 3

File details

Details for the file rollout_cli-0.7.0.tar.gz.

File metadata

  • Download URL: rollout_cli-0.7.0.tar.gz
  • Upload date:
  • Size: 230.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for rollout_cli-0.7.0.tar.gz
Algorithm Hash digest
SHA256 641e4c61b365a3c1d58e1d5e7e7d58f9b11e4d04e401bab9045747b468918603
MD5 2714e63773a229b9bdf53b3c6319b286
BLAKE2b-256 2c20378f5387c9e17d2438ec50d538d92c34ce0a39fe134ae188ed908092735c

See more details on using hashes here.

File details

Details for the file rollout_cli-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: rollout_cli-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 37.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for rollout_cli-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 42c0589c477a6d060feb77ea0c8f9c43b3bce139c648649ac2c1e2336b757b5d
MD5 904530d4be400d96df15e5eb574dd3ff
BLAKE2b-256 8255681031a70047684564053f231b652eb83ac149bf19ca6cf401ec8c302e50

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page