cli-audit-review — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited cli-audit-review (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Optimization: This skill uses on-demand loading. Read only the reference files relevant to the target, except references/scoring.md, which is mandatory for every scored review.Language rule: By default, write user-facing reviews in French when the prompt or repository context is French. Keep code identifiers, file paths, module names, commit types, and product names unchanged. Use English only when the user asks for it or when the project is clearly English-only.
Privacy rule: Never mention the training corpus, reviewer identity, personal names, e-mails, private/internal URLs, organization names, project names, commit hashes, issue/MR IDs, or raw examples from the corpus. The skill must behave as a neutral review methodology.
Use this skill when the user asks for a MR/PR/diff review, scored reviewer gate, strict infrastructure or automation review, Ansible review, CI/release review, idempotence audit, Molecule proof review, or convention compliance review.
Do not use it for generic code quality, code smell, clean-code compliance, or tech debt audits. Use cli-audit-code for that. For a shell-only quality audit, use cli-audit-shell. For pipeline design or optimization rather than review gate feedback, use cli-forge-pipeline.
The goal is not to produce generic lint feedback. The goal is to review like a strict production reviewer: contract first, validation before execution, idempotence, proof, documentation, release safety, then style.
file:line, or repo-wide/diff-wide when no single line owns the issue.contract -> validation -> implementation -> proof -> docs/CI/release.references/conflict-resolution.md and prefer the newest relevant pattern unless it is less safe.$ARGUMENTS may be:
Primary fit: infrastructure automation repositories. Secondary fit: application code, CLIs, scripts, documentation, and release tooling when they affect deployable behavior.
| Target situation | Read |
|---|---|
| Any scored review | references/scoring.md |
| Any conflict between possible conventions | references/conflict-resolution.md |
| Any final report or MR comments | references/comment-style.md, references/output-template.md |
| Ansible, Molecule, roles, collections | references/conventions-ansible.md, references/reviewer-methodology.md |
| GitLab CI, semantic-release, packaging, Galaxy, commit hygiene | references/conventions-ci-release.md |
| Go, PowerShell, shell, Python, Kubernetes, containers, Terraform/OpenTofu | references/conventions-language.md |
| Any generated artifact or report | references/privacy.md |
Score every applicable dimension from 0.0 to 1.0, then compute the weighted RMI.
| # | Category | Weight | Key question |
|---|---|---|---|
| R1 | Public Contract & Naming | 11% | Are public variables/config/API/flags named as desired states, scoped, defaulted or intentionally undefined, documented, and understandable? |
| R2 | Validation & Fail-Fast | 11% | Are type, bounds, emptiness, enum, platform, topology, and prerequisite checks done before risky work? |
| R3 | Idempotence & State Convergence | 12% | Does repeated execution converge without false changes, duplicate state, or uncontrolled shell/command side effects? |
| R4 | Change Propagation & Coherence | 9% | Do defaults/config, assertions, tasks/templates, handlers, tests, docs, CI, and release metadata move together? |
| R5 | Secrets & Security Boundaries | 11% | Are secrets protected from logs, templates, artifacts, command output, committed files, and unsafe CI variables? |
| R6 | Test, Molecule & CI Proof | 12% | Is the changed behavior proven by the right scenario, matrix, integration test, lint job, or idempotence run? |
| R7 | Platform, OS & Topology Variants | 8% | Are RedHat/Windows, Linux/Windows, single-node/HA, online/airgap, backend, runtime, and cluster variants separated and covered? |
| R8 | CI, Release & Packaging Safety | 7% | Are workflow rules, branch behavior, tokens, semantic-release, Galaxy/package metadata, artifacts, and release commits coherent? |
| R9 | Documentation & Operator Clarity | 6% | Can an operator understand defaults, prerequisites, limits, airgap behavior, upgrade impact, rollback, and failure modes? |
| R10 | Language & Ecosystem Idioms | 6% | Does the implementation follow the relevant idioms for Ansible, YAML, Go, PowerShell, shell, Python, Kubernetes, containers, or Terraform? |
| R11 | Reviewability & Commit Hygiene | 4% | Are PR/MR description, commits, scopes, diff size, WIP noise, file moves, and renames easy to review and release-safe? |
| R12 | Local Style & Formatting | 3% | Are EOF newlines, spacing, YAML quotes, task separators, lint formatting, and naming details aligned after higher risks are handled? |
Formula:
RMI = Σ(wᵢ × sᵢ) / Σ(wᵢ) × 10Before reading individual files:
For a broad review, inspect in this order:
defaults/, schemas, CLI flags, env vars, public API, README, meta, galaxy.yml, package metadata;tasks/assert*.yml, schemas, preflight scripts, input validators;tasks/main.yml, setup/configure tasks, handlers, templates, shell/Python/Go/PowerShell helpers;molecule/, tests, CI matrices, lint jobs, integration checks, idempotence checks;.gitlab-ci.yml, .releaserc*, release scripts, requirements.yml, galaxy.yml, container files, charts, bundles;Tag each changed area as one or more of:
For every behavior change, verify:
public contract -> validation/assertion -> consumer implementation -> proof -> documentation/CI/releaseCreate findings for missing links. A new public variable, CLI flag, environment variable, module option, or YAML key is incomplete until it has validation, consumer proof, and operator documentation when relevant.
Before writing style comments, identify gate failures:
Apply the caps in references/scoring.md. The lowest cap wins.
Use the relevant reference file:
references/conventions-ansible.mdreferences/conventions-ci-release.mdreferences/conventions-language.mdreferences/conflict-resolution.mdScore with evidence, not intuition. If a dimension is truly not applicable, mark it N/A and redistribute weight only across applicable dimensions. If it applies but you did not inspect it, score it low and state the scope limitation.
Use references/comment-style.md and references/output-template.md.
Every substantive finding should include:
file:line,For simple line-level convention comments, be concise: one sentence is enough when the fix is obvious and not blocking.
If the exact correction is short and syntax-sensitive, include a ready-to-paste suggestion. If only non-blocking suggestions remain, say so explicitly and do not turn polish into a merge blocker.
| Decision | Condition |
|---|---|
REQUEST_CHANGES | Any blocker gate, any critical finding without proof, or final RMI < 6.0. |
COMMENT | No blocker, but RMI 6.0-7.9, missing proof/docs, uncertain variant behavior, or significant non-blocking methodology gap. |
APPROVE_WITH_NOTES | RMI 8.0-8.9, no gate failure, only minor follow-ups or style issues. |
APPROVE | RMI >= 9.0, no gate failure, coherent proof/docs/release path. |
Never approve deployable behavior when the required proof is absent, even if the implementation looks correct.
Use references/output-template.md unless the user asks for another format.
Minimum output sections:
When run under cli-cycle, also emit .claude/cli-audit-review.json following ../shared/result-schema.md so the cycle can aggregate score, findings, strengths, and handoffs without parsing prose.
Recommend, do not auto-run:
| Condition detected | Recommend |
|---|---|
| Generic clean-code smells dominate | /cli-audit-code |
| Shell scripts have significant behavior | /cli-audit-shell |
| Test strategy is weak beyond one MR | /cli-audit-test |
| Documentation drift is broad | /cli-audit-doc or /cli-audit-sync |
| CI/CD design is central | /cli-forge-pipeline |
| Architecture/design is ambiguous | /cli-forge-hld or /cli-forge-lld |
| Ansible role structure is tangled | /cli-audit-tangle |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.