coding-agent-rollout — скилл для Claude Code: настройка команды
Проверяет настройки Claude перед раскаткой на команду: линтует permissions, инвентаризует MCP-серверы и считает adoption по локальным сессиям.
/plugin marketplace add alirezarezvani/claude-skills
/plugin install coding-agent-rollout@claude-code-skillsЧто делает coding-agent-rollout
Настройка Claude у одного инженера — это предпочтение, у команды — политика. Скилл собирает эффективную картину из пяти областей настроек, потому что permissions.allow сливаются между файлами, а deny перебивает ask и allow. Прочитать итоговую политику по одному файлу нельзя, и это первое, что чинит скилл.
Внутри четыре stdlib-скрипта без сети и вызовов LLM: settings_linter.py линтует shared, local и managed настройки, mcp_plugin_inventory.py строит таблицу серверов, плагинов и маркетплейсов против вашего allowlist, claude_md_layering_audit.py разбирает слои CLAUDE.md и @imports, adoption_tracker.py превращает локальные данные сессий в счётчики. Скрипты только читают конфиг и ничего не меняют. Exit-код 4 блокирует: пустые shell-разрешения вроде Bash(*), литеральные креды в общем env, закоммиченный .claude/settings.local.json, сервер или плагин вне approved-списка.
Стартовая политика лежит в assets/managed-settings.example.json: bypass-режим выключен, секреты в deny, рискованные команды на ask, только managed-хуки. Раздавать её стоит через MDM до первой посадки, потому что политика, добавленная после того как привычки сложились, превращается в переговоры. Транскрипты сессий скилл собирать не советует — они в открытом виде и могут содержать секреты, делиться нужно только JSON со счётчиками.
Какие задачи решает
- проверить permissions во всех областях настроек сразу
- сверить MCP-серверы и плагины с approved-списком
- разобрать, какие слои
CLAUDE.mdреально загружаются - найти закоммиченный
.claude/settings.local.json - посчитать adoption по команде без сбора транскриптов
Примеры запросов агенту
- прогони линтер настроек по репозиторию и managed-файлу
- собери инвентарь MCP-серверов и плагинов против
approved.json - посчитай adoption:
python scripts/adoption_tracker.py --member alice --output json
Как установить coding-agent-rollout
1Через маркетплейс плагинов
/plugin marketplace add alirezarezvani/claude-skills/plugin install coding-agent-rollout@claude-code-skillsКоманда ставит плагин coding-agent-rollout целиком, со всеми его скиллами
2Через Skills CLI (Vercel)
npx skills add alirezarezvani/claude-skills --skill coding-agent-rollout -a claude-code3Вручную: положить файлы
~/.claude/skills/coding-agent-rollout/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/coding-agent-rollout/
Вручную: положить файлы
.agents/skills/coding-agent-rollout/SKILL.mdДля всех проектов — ~/.agents/skills/
Вручную: положить файлы
.cursor/skills/coding-agent-rollout/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install alirezarezvani/claude-skills coding-agent-rollout2Вручную: положить файлы
.github/skills/coding-agent-rollout/SKILL.mdКомандой платформы
gemini skills install https://github.com/alirezarezvani/claude-skills --path engineering/coding-agent-rollout/skills/coding-agent-rolloutВручную: положить файлы
.devin/skills/coding-agent-rollout/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о coding-agent-rollout
Как установить coding-agent-rollout в Claude?
Через маркетплейс: сначала /plugin marketplace add alirezarezvani/claude-skills, затем /plugin install coding-agent-rollout@claude-code-skills.
Что делает coding-agent-rollout?
Линтует настройки Claude по областям, инвентаризует MCP-серверы и плагины против allowlist, разбирает слои CLAUDE.md и считает adoption по локальным сессиям.
Можно ли запускать скилл на своей машине?
Да, четыре скрипта на stdlib работают без сети и вызовов LLM. Каждый участник команды запускает adoption_tracker.py локально и делится только JSON со счётчиками.
Исходный текст
SKILL.md · MIT
--- name: coding-agent-rollout description: Use when rolling Claude Code out to a team or organization, or auditing a rollout already under way — writing or reviewing shared and managed settings.json permissions, deciding which MCP servers, plugins and marketplaces to approve, cleaning up layered CLAUDE.md files, or measuring whether the team actually uses it. Lints settings across scopes, inventories every MCP server and plugin against an approved list, resolves CLAUDE.md layers and imports, and turns local session data into privacy-safe adoption counts. argument-hint: "[repo path | managed-settings.json | 'measure adoption']" license: MIT metadata: version: 1.0.0 build_pattern: "Four-phase rollout (guardrails, inventory, instructions, adoption) with 4 deterministic stdlib scripts and blocking exit codes; every settings key and path verified against code.claude.com/docs" distinct_from: "claude-coach (coaches one person's usage); skill-doctor (grades sessions to improve installed skills); security-guidance (a hook that warns on risky code patterns); prompt-governance (prompts in production apps, not the coding agent's configuration)" --- # Claude Code Team Rollout > **Portability:** 4 stdlib scripts, no network, no LLM calls. They read config and counts; they change nothing. One engineer's Claude Code setup is a preference. A team's is a policy. Settings merge from five scopes, `permissions.allow` arrays combine across files, and deny beats ask beats allow wherever it is written, so nobody can read the effective policy from a single file. This skill makes it readable, then checks it. ## Workflow ```bash # 1 - Guardrails: lint shared, local and managed settings together. python scripts/settings_linter.py --repo . --managed /etc/claude-code/managed-settings.json # 2 - Inventory: every MCP server, plugin and marketplace, against your approved list. python scripts/mcp_plugin_inventory.py --repo . --allowlist approved.json # 3 - Instructions: what CLAUDE.md actually loads, layer by layer. python scripts/claude_md_layering_audit.py --repo . # 4 - Adoption: each member runs this locally and shares only the JSON counts. python scripts/adoption_tracker.py --member alice --output json > alice.json python scripts/adoption_tracker.py --merge *.json --seats 12 --weeks-since-launch 6 ``` Start from [`assets/managed-settings.example.json`](assets/managed-settings.example.json): bypass mode disabled, secrets denied, risky commands on `ask`, managed hooks only, an MCP and marketplace allowlist. Ship it through MDM before the first seat; policy added after habits form becomes a negotiation. ## What blocks (exit 4) - Blanket shell allows (`Bash`, `Bash(*)`) and pre-approved destructive commands (force push, `rm -rf`, `sudo`, pipe-to-shell, publish, infra apply). - A literal credential in a shared settings `env` block, a committed `.mcp.json`, or a committed CLAUDE.md. - `.claude/settings.local.json` committed to git. - An MCP server, plugin or marketplace missing from the approved list. Warnings cover dead rules (an allow that a deny shadows, `mcp__*` in allow), `enableAllProjectMcpServers`, unpinned `npx` servers, plain-http remotes, network-calling hooks, broken or too-deep `@imports`, duplicated or contradictory instructions, and resident CLAUDE.md size. ## Hard rules 1. **Policy lives in managed settings.** Project files cannot enable bypass mode or telemetry, and a team guardrail in a file anyone can edit is a suggestion. 2. **Approve MCP servers by name, URL or command, never by `enableAllProjectMcpServers`.** 3. **Pin what runs.** Unpinned `npx`/`uvx` servers and unpinned marketplaces change under you. 4. **Never collect transcripts.** Share the adoption JSON (counts only); transcripts are plaintext and can hold secrets. 5. **Report findings, not verdicts on people.** Adoption is a team metric; inactive seats are a rollout question, not a performance one. 6. **Settings keys change fast.** An unknown key is INFO; check the settings reference before calling it a typo. ## Scripts | Script | Role | Exit codes | |---|---|---| | `scripts/settings_linter.py` | S1-S13 across shared, local, user and managed scopes | 0 · 2 warn · 3 bad input · 4 blocker | | `scripts/mcp_plugin_inventory.py` | One table of servers, plugins, marketplaces; M1-M6 | 0 · 2 · 3 · 4 | | `scripts/claude_md_layering_audit.py` | Resident vs on-demand layers, imports (4 hops), L1-L11 | 0 · 2 · 3 · 4 | | `scripts/adoption_tracker.py` | Member counts; team stage PILOT / SPREADING / EMBEDDED / STALLED | 0 · 2 stalled · 3 | All support `--sample` and `--output json`. ## References and assets - [`references/settings_and_permissions.md`](references/settings_and_permissions.md) — scopes, precedence, rule syntax, managed-only keys (7 sources) - [`references/mcp_and_plugin_governance.md`](references/mcp_and_plugin_governance.md) — MCP scopes, allowlists, marketplaces, pinning (6 sources) - [`references/memory_and_adoption.md`](references/memory_and_adoption.md) — CLAUDE.md layering, transcripts, OpenTelemetry, adoption stages (6 sources) - [`assets/managed-settings.example.json`](assets/managed-settings.example.json) — baseline team policy - [`assets/approved-components.example.json`](assets/approved-components.example.json) — allowlist format for step 2 - [`assets/rollout_plan.md`](assets/rollout_plan.md) — four-phase plan with exit criteria per phase
© Alireza Rezvani · MIT · alirezarezvani/claude-skills