--- - name: Claude settings | Ensure ~/.claude exists ansible.builtin.file: path: "{{ multica_user_home }}/.claude" state: directory owner: "{{ multica_user }}" group: "{{ multica_group }}" mode: "0700" become: true - name: Claude settings | Read the current settings ansible.builtin.slurp: src: "{{ multica_user_home }}/.claude/settings.json" register: _multica_claude_settings_raw failed_when: false become: true - name: Claude settings | Merge the declared keys over them ansible.builtin.set_fact: _multica_claude_settings_current: >- {{ (_multica_claude_settings_raw.content | b64decode | from_json) if _multica_claude_settings_raw.content is defined else {} }} - name: Claude settings | Write them back if anything differs ansible.builtin.copy: dest: "{{ multica_user_home }}/.claude/settings.json" content: "{{ _multica_claude_settings_current | combine(multica_claude_settings, recursive=true) | to_nice_json }}\n" owner: "{{ multica_user }}" group: "{{ multica_group }}" mode: "0600" become: true when: >- _multica_claude_settings_current | combine(multica_claude_settings, recursive=true) != _multica_claude_settings_current