Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"name": "ansible-designer",
"source": "./",
"description": "AI-assisted Ansible authoring toolkit for Claude Code. Scaffolds, reviews, and updates playbooks, roles, collections, and ansible.cfg files following production best practices.",
"version": "0.1.5",
"version": "0.1.7",
"author": {
"name": "NomakCooper"
},
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "ansible-designer",
"description": "AI-assisted Ansible authoring toolkit for Claude Code. Scaffolds, reviews, and updates playbooks, roles, collections, and ansible.cfg files following production best practices.",
"version": "0.1.5",
"version": "0.1.7",
"author": {
"name": "NomakCooper"
},
Expand Down
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,23 @@ All notable changes to ansible-designer will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.1.7] - 2026-04-02

### Fixed

- Corrected command naming across all skills, docs, and CLAUDE.md: both install paths (marketplace and npx) register skills as top-level commands (`/new-playbook`, `/review-role`, etc.). The `/ansible-designer:X` namespaced form was never available and has been removed from all references.
- `ansible-designer` root skill: removed the incorrect "Command Names by Install Path" table; Available Commands section now shows only the actual top-level form.
- All 12 sub-skill descriptions: reverted from the incorrect dual-form to the correct single top-level trigger.
- `README.md`: updated Installation section, Available Commands table, and all Example Usage code blocks to use top-level command form.
- `CLAUDE.md`: corrected Plugin installation constraints to document that both paths produce top-level commands; removed incorrect namespace source claim.

## [0.1.6] - 2026-04-02

### Changed

- `ansible-designer` (root): Replaced the Available Commands table with a two-column table showing both the marketplace form (`/ansible-designer:<sub-command>`) and the npx form (`/<sub-command>`); added a "Command Names by Install Path" section explaining the namespace difference between the two install paths.
- All 12 sub-skills: Updated frontmatter `description` to mention both trigger forms — `Triggered by /ansible-designer:X (marketplace) or /X (npx)`.

## [0.1.5] - 2026-04-01

### Security
Expand Down
42 changes: 21 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
▐▛███▜▌ Claude Code
▝▜█████▛▘ Sonnet 4.6 · Claude
▘▘ ▝▝ ansible-designer/
⎿  SessionStart:startup says: [ansible-designer 0.1.5]
⎿  SessionStart:startup says: [ansible-designer 0.1.7]
──────────────────────────────────────────────────────────

█████╗ ███╗ ██╗███████╗██╗██████╗ ██╗ ███████╗
Expand Down Expand Up @@ -50,16 +50,16 @@ Using Claude Code:
/plugin install ansible-designer
```

### Option B — npx skills (bare install, sub-commands not namespaced)
### Option B — npx skills CLI

```bash
npx skills add 3A2DEV/ansible-designer --skill '*'
```

> **Note:** This installs each skill as a top-level command (e.g. `/review-playbook`) without the `ansible-designer:` namespace. Use Option A for the full `/ansible-designer:review-playbook` experience.
Both options register each skill as a top-level command (e.g. `/new-playbook`, `/review-role`).

**Requirements:**
- [Claude Code](https://claude.ai/code) with `bash_tool` enabled
- [Claude Code](https://claude.ai/code)
- No additional dependencies — all Ansible knowledge is embedded in the skill

---
Expand All @@ -70,21 +70,21 @@ npx skills add 3A2DEV/ansible-designer --skill '*'
|---------|-------------|
| `/ansible-designer` | Show this overview and available commands |
| **Playbooks** | |
| `/ansible-designer:new-playbook` | Create a new playbook (site, component, or AWX-ready) |
| `/ansible-designer:review-playbook` | Review a playbook — severity report, no file modification |
| `/ansible-designer:update-playbook` | Update a playbook — diff + confirm before writing |
| `/new-playbook` | Create a new playbook (site, component, or AWX-ready) |
| `/review-playbook` | Review a playbook — severity report, no file modification |
| `/update-playbook` | Update a playbook — diff + confirm before writing |
| **Roles** | |
| `/ansible-designer:new-role` | Scaffold a complete role (asks about multi-OS support) |
| `/ansible-designer:review-role` | Review a role — severity report, no file modification |
| `/ansible-designer:update-role` | Update a role — diff + confirm before writing |
| `/new-role` | Scaffold a complete role (asks about multi-OS support) |
| `/review-role` | Review a role — severity report, no file modification |
| `/update-role` | Update a role — diff + confirm before writing |
| **Collections** | |
| `/ansible-designer:new-collection` | Scaffold a new collection with galaxy.yml, plugins, roles |
| `/ansible-designer:review-collection` | Review a collection — severity report, no file modification |
| `/ansible-designer:update-collection` | Update a collection — diff + confirm before writing |
| `/new-collection` | Scaffold a new collection with galaxy.yml, plugins, roles |
| `/review-collection` | Review a collection — severity report, no file modification |
| `/update-collection` | Update a collection — diff + confirm before writing |
| **ansible.cfg** | |
| `/ansible-designer:new-conf` | Generate annotated ansible.cfg for dev, CI, or AWX |
| `/ansible-designer:review-conf` | Review ansible.cfg — severity report, no file modification |
| `/ansible-designer:update-conf` | Update ansible.cfg — diff + confirm before writing |
| `/new-conf` | Generate annotated ansible.cfg for dev, CI, or AWX |
| `/review-conf` | Review ansible.cfg — severity report, no file modification |
| `/update-conf` | Update ansible.cfg — diff + confirm before writing |

---

Expand Down Expand Up @@ -129,7 +129,7 @@ Every command enforces these rules:
### Create a new role for nginx with RHEL + Solaris support

```bash
/ansible-designer:new-role
/new-role

> Role name: nginx
> Location: ./roles/
Expand All @@ -141,7 +141,7 @@ Every command enforces these rules:
### Review an existing playbook

```bash
/ansible-designer:review-playbook deploy-app.yml
/review-playbook deploy-app.yml

## Playbook Review: deploy-app.yml

Expand All @@ -158,7 +158,7 @@ Every command enforces these rules:
### Generate an AWX-optimized ansible.cfg

```bash
/ansible-designer:new-conf
/new-conf

> Environment: awx

Expand All @@ -169,7 +169,7 @@ Every command enforces these rules:
### Update ansible.cfg with credential-safe diff display

```bash
/ansible-designer:update-conf
/update-conf

> Change: enable fact caching with redis

Expand All @@ -193,7 +193,7 @@ Apply this change? (yes/no)
### Scaffold a new collection with input validation

```bash
/ansible-designer:new-collection
/new-collection

> collection_path: ./collections/ansible_collections/
> namespace: myorg
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ansible-designer",
"version": "0.1.5",
"version": "0.1.7",
"description": "AI-assisted Ansible authoring toolkit for Claude Code. Scaffolds, reviews, and updates playbooks, roles, collections, and ansible.cfg files following production best practices.",
"author": "NomakCooper",
"license": "Apache-2.0",
Expand Down
26 changes: 14 additions & 12 deletions skills/ansible-designer/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,33 +11,35 @@ AI-assisted Ansible authoring toolkit. Scaffolds, reviews, and updates Ansible p

## Available Commands

All commands are top-level regardless of install path.

### Playbook Commands
| Command | Description |
|---------|-------------|
| `/ansible-designer:new-playbook` | Create a new playbook (site, component, or AWX-ready) |
| `/ansible-designer:review-playbook` | Review an existing playbook — severity report, no file modification |
| `/ansible-designer:update-playbook` | Update a playbook — shows diff, requires confirmation |
| `/new-playbook` | Create a new playbook (site, component, or AWX-ready) |
| `/review-playbook` | Review an existing playbook — severity report, no file modification |
| `/update-playbook` | Update a playbook — shows diff, requires confirmation |

### Role Commands
| Command | Description |
|---------|-------------|
| `/ansible-designer:new-role` | Scaffold a complete role — asks about multi-OS support |
| `/ansible-designer:review-role` | Review a role — severity report, no file modification |
| `/ansible-designer:update-role` | Update a role — shows diff, requires confirmation |
| `/new-role` | Scaffold a complete role — asks about multi-OS support |
| `/review-role` | Review a role — severity report, no file modification |
| `/update-role` | Update a role — shows diff, requires confirmation |

### Collection Commands
| Command | Description |
|---------|-------------|
| `/ansible-designer:new-collection` | Scaffold a new collection with galaxy.yml, plugins, roles structure |
| `/ansible-designer:review-collection` | Review a collection — severity report, no file modification |
| `/ansible-designer:update-collection` | Update a collection — shows diff, requires confirmation |
| `/new-collection` | Scaffold a new collection with galaxy.yml, plugins, roles structure |
| `/review-collection` | Review a collection — severity report, no file modification |
| `/update-collection` | Update a collection — shows diff, requires confirmation |

### ansible.cfg Commands
| Command | Description |
|---------|-------------|
| `/ansible-designer:new-conf` | Generate an annotated ansible.cfg for dev, CI, or AWX |
| `/ansible-designer:review-conf` | Review an ansible.cfg — severity report, no file modification |
| `/ansible-designer:update-conf` | Update ansible.cfg — shows diff, requires confirmation |
| `/new-conf` | Generate an annotated ansible.cfg for dev, CI, or AWX |
| `/review-conf` | Review an ansible.cfg — severity report, no file modification |
| `/update-conf` | Update ansible.cfg — shows diff, requires confirmation |

---

Expand Down
2 changes: 1 addition & 1 deletion skills/new-collection/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: new-collection
description: Scaffold a new Ansible collection. Triggered by /ansible-designer:new-collection. Collects collection_path, namespace, and collection name, then generates galaxy.yml, README.md, CHANGELOG.md, LICENSE, meta/runtime.yml, plugin skeletons (module, filter, lookup), roles directory, playbooks directory, and docs structure. Shows summary before writing.
description: Scaffold a new Ansible collection. Triggered by /new-collection. Collects collection_path, namespace, and collection name, then generates galaxy.yml, README.md, CHANGELOG.md, LICENSE, meta/runtime.yml, plugin skeletons (module, filter, lookup), roles directory, playbooks directory, and docs structure. Shows summary before writing.
---

# new-collection
Expand Down
2 changes: 1 addition & 1 deletion skills/new-conf/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: new-conf
description: Generate an annotated ansible.cfg for a specific environment. Triggered by /ansible-designer:new-conf. Asks for target environment (dev, CI, or AWX) and generates a fully annotated ansible.cfg covering all official sections including defaults, privilege escalation, SSH connection, vault config, callback plugins, and fact caching. Shows summary before writing.
description: Generate an annotated ansible.cfg for a specific environment. Triggered by /new-conf. Asks for target environment (dev, CI, or AWX) and generates a fully annotated ansible.cfg covering all official sections including defaults, privilege escalation, SSH connection, vault config, callback plugins, and fact caching. Shows summary before writing.
---

# new-conf
Expand Down
2 changes: 1 addition & 1 deletion skills/new-playbook/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: new-playbook
description: Create a new Ansible playbook. Triggered by /ansible-designer:new-playbook. Runs discovery to find existing roles and collections, then collects path, filename, target hosts/groups, and roles to include. Generates a complete playbook with header, vars block, pre/post tasks, roles section, error handling, and tags. Shows summary before writing. Never overwrites existing files without confirmation.
description: Create a new Ansible playbook. Triggered by /new-playbook. Runs discovery to find existing roles and collections, then collects path, filename, target hosts/groups, and roles to include. Generates a complete playbook with header, vars block, pre/post tasks, roles section, error handling, and tags. Shows summary before writing. Never overwrites existing files without confirmation.
---

# new-playbook
Expand Down
2 changes: 1 addition & 1 deletion skills/new-role/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: new-role
description: Scaffold a complete Ansible role. Triggered by /ansible-designer:new-role. Resolves role location from FQCN or path, asks whether multi-OS support is needed (RHEL, Solaris, Windows/WinRM), and generates a full role directory structure with realistic starter tasks, handlers, defaults, meta/main.yml, and OS-specific var files if requested. Shows summary before writing.
description: Scaffold a complete Ansible role. Triggered by /new-role. Resolves role location from FQCN or path, asks whether multi-OS support is needed (RHEL, Solaris, Windows/WinRM), and generates a full role directory structure with realistic starter tasks, handlers, defaults, meta/main.yml, and OS-specific var files if requested. Shows summary before writing.
---

# new-role
Expand Down
2 changes: 1 addition & 1 deletion skills/review-collection/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: review-collection
description: Review an existing Ansible collection and produce a structured severity report grouped by CRITICAL, WARNING, and INFO. Triggered by /ansible-designer:review-collection. Checks galaxy.yml completeness, directory structure, required files, meta/runtime.yml, and role quality. NEVER modifies files.
description: Review an existing Ansible collection and produce a structured severity report grouped by CRITICAL, WARNING, and INFO. Triggered by /review-collection. Checks galaxy.yml completeness, directory structure, required files, meta/runtime.yml, and role quality. NEVER modifies files.
---

# review-collection
Expand Down
2 changes: 1 addition & 1 deletion skills/review-conf/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: review-conf
description: Review an ansible.cfg and produce a structured severity report grouped by CRITICAL, WARNING, and INFO. Triggered by /ansible-designer:review-conf. Checks for deprecated settings, insecure values, missing critical sections, and vault misconfiguration. NEVER modifies files.
description: Review an ansible.cfg and produce a structured severity report grouped by CRITICAL, WARNING, and INFO. Triggered by /review-conf. Checks for deprecated settings, insecure values, missing critical sections, and vault misconfiguration. NEVER modifies files.
---

# review-conf
Expand Down
2 changes: 1 addition & 1 deletion skills/review-playbook/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: review-playbook
description: Review an existing Ansible playbook and produce a structured severity report grouped by CRITICAL, WARNING, and INFO. Triggered by /ansible-designer:review-playbook. Checks FQCN usage, idempotency patterns, no_log on secret tasks, tag coverage, deprecated syntax, become usage, and style consistency. NEVER modifies files.
description: Review an existing Ansible playbook and produce a structured severity report grouped by CRITICAL, WARNING, and INFO. Triggered by /review-playbook. Checks FQCN usage, idempotency patterns, no_log on secret tasks, tag coverage, deprecated syntax, become usage, and style consistency. NEVER modifies files.
---

# review-playbook
Expand Down
2 changes: 1 addition & 1 deletion skills/review-role/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: review-role
description: Review an existing Ansible role and produce a structured severity report grouped by CRITICAL, WARNING, and INFO. Triggered by /ansible-designer:review-role. Checks directory structure completeness, task FQCN, tag coverage, no_log on secret tasks, defaults vs vars usage, meta/main.yml validity, and handler correctness. NEVER modifies files.
description: Review an existing Ansible role and produce a structured severity report grouped by CRITICAL, WARNING, and INFO. Triggered by /review-role. Checks directory structure completeness, task FQCN, tag coverage, no_log on secret tasks, defaults vs vars usage, meta/main.yml validity, and handler correctness. NEVER modifies files.
---

# review-role
Expand Down
2 changes: 1 addition & 1 deletion skills/update-collection/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: update-collection
description: Update an existing Ansible collection. Triggered by /ansible-designer:update-collection. Supports updating galaxy.yml metadata, adding roles or plugins, bumping version, and updating CHANGELOG. Shows a unified diff per file before writing and waits for explicit user confirmation.
description: Update an existing Ansible collection. Triggered by /update-collection. Supports updating galaxy.yml metadata, adding roles or plugins, bumping version, and updating CHANGELOG. Shows a unified diff per file before writing and waits for explicit user confirmation.
---

# update-collection
Expand Down
2 changes: 1 addition & 1 deletion skills/update-conf/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: update-conf
description: Update an existing ansible.cfg. Triggered by /ansible-designer:update-conf. Reads the current config, applies the requested section or key changes, shows a unified diff, waits for explicit user confirmation, then writes. Never overwrites silently. Adds justification comments for security-sensitive settings.
description: Update an existing ansible.cfg. Triggered by /update-conf. Reads the current config, applies the requested section or key changes, shows a unified diff, waits for explicit user confirmation, then writes. Never overwrites silently. Adds justification comments for security-sensitive settings.
---

# update-conf
Expand Down
2 changes: 1 addition & 1 deletion skills/update-playbook/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: update-playbook
description: Update an existing Ansible playbook. Triggered by /ansible-designer:update-playbook. Reads the target file, applies the requested change following all global rules (FQCN, tags, no_log), shows a unified diff, waits for explicit user confirmation, then writes. Never overwrites silently.
description: Update an existing Ansible playbook. Triggered by /update-playbook. Reads the target file, applies the requested change following all global rules (FQCN, tags, no_log), shows a unified diff, waits for explicit user confirmation, then writes. Never overwrites silently.
---

# update-playbook
Expand Down
2 changes: 1 addition & 1 deletion skills/update-role/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: update-role
description: Update an existing Ansible role. Triggered by /ansible-designer:update-role. Reads specific role files, applies the requested change following all global rules (FQCN, tags, no_log), shows a unified diff per file, waits for explicit user confirmation, then writes. Never overwrites silently.
description: Update an existing Ansible role. Triggered by /update-role. Reads specific role files, applies the requested change following all global rules (FQCN, tags, no_log), shows a unified diff per file, waits for explicit user confirmation, then writes. Never overwrites silently.
---

# update-role
Expand Down