# Agent Guidelines for ansible-collections-workstation

## Build/Lint/Test Commands
- Lint: `make lint` or `ansible-lint .`
- Test all: `make test` (runs lint + molecule tests)
- Molecule tests: `cd extensions && molecule test`
- Single scenario: `cd extensions && molecule test -s default`
- Converge only: `cd extensions && molecule converge`
- Destroy: `cd extensions && molecule destroy`

## Code Style
- Language: Ansible YAML playbooks/roles
- Formatting: Use YAML with 2-space indentation, production profile
- Line length: Skip yaml[line-length] lint rule; long lines allowed, but discouraged
- Module style: Use FQCN (e.g., `ansible.builtin.copy`, `community.general.timezone`)
- File modes: Use quoted octal notation (e.g., `mode: "0644"`)
- Tags: Use `notest` tag for tasks that shouldn't run in tests (systemd operations)
- Naming: Tasks must have descriptive names starting with "Ensure"
- Conditionals: Use `when:` for conditional execution
- Privilege escalation: Use `become: true` for root operations
- Sensitive data: Use `no_log: true` for sensitive operations
- Distribution handling: Use `include_tasks` with `{{ ansible_facts['distribution'] | lower }}.yml`
