← ClaudeAtlas

sales-demos-collections-synclisted

Pin, install, and verify the Ansible collections this repo depends on. Writes exact versions into collections/requirements.yml, installs them to the recommended path (~/.ansible/collections), then checks that what is installed matches what is pinned and fails loudly on drift. TRIGGER when: the user asks to install or update collections, add a collection to the repo, pin or bump a collection version, or when a playbook fails with 'couldn't resolve module/action' or a collection-version error. SKIP: if the user is adding a Python package rather than an Ansible collection, or only wants to run the CI lint gate.
ericcames/sales.demos · ★ 1 · DevOps & Infrastructure · score 67
Install: claude install-skill ericcames/sales.demos
# sales-demos-collections-sync Keeps `collections/requirements.yml` honest: every collection pinned to an exact version, installed to the recommended path, and verified to match. Unlike the `ocpvirt-*` skills this one has **no playbook**, and that is deliberate — it touches your laptop's collection path, never a demo environment. The "skill wraps a playbook" contract in `CLAUDE.md` exists so that anything touching an environment is runnable from AAP too. Nothing here should ever run from AAP. ## The rules this enforces 1. **Every collection is pinned to an exact version. Nothing floats.** A floating version means two laptops resolve different code and a demo that worked yesterday breaks on the next install. 2. **Pins are set to versions that were actually run**, not the newest published. Bump deliberately, re-run the affected phase against `sandbox`, then commit the new pin. 3. **Collections install to the recommended path only** — Ansible's default `~/.ansible/collections`. Never into the repo. 4. **Never create a project-local `ansible.cfg`.** Ansible picks one cfg file and does not merge. A local one shadows `~/.ansible.cfg`, which holds the working Automation Hub token, and breaks certified content installs. Use CLI flags or environment variables instead. ## Preflight Check ```bash # 1. No project-local ansible.cfg — this is the one that silently breaks things test -f ansible.cfg \ && echo "❌ project-local ansible.cfg present — it shadows ~