{"owner":"spantaleev","repo":"matrix-docker-ansible-deploy","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"<!--\nSPDX-FileCopyrightText: 2026 Slavi Pantaleev\n\nSPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n# Guidance for AI agents\n\nThis file gives AI coding agents the minimum context for working on this repository. Human contributors may find it a useful summary too.\n\n## What this is\n\nAn Ansible playbook that installs and manages a Matrix homeserver and dozens of related services, each running as a Docker container wrapped in a systemd service.\n\n## Layout\n\n- `setup.yml`: the main playbook, listing all roles.\n- `roles/custom/`: roles maintained in this repository.\n- `roles/galaxy/`: external roles, downloaded according to `requirements.yml` via [agru](https://github.com/etkecc/agru) (preferred) or `ansible-galaxy`. Run `just roles` to install them (or `just update` to also pull the playbook itself). Editing these roles locally is fine while preparing or testing a fix, but the changes get wiped on the next roles update, so they must be synced back to the role's upstream repository, followed by a version pin update in `requirements.yml`.\n- `group_vars/matrix_servers`: wires roles together (feeding one role's variables into another). Values a role can construct by itself belong in the role's `defaults/main.yml`, not here.\n- `docs/`: user-facing documentation, one page per component.\n- `i18n/`: translation infrastructure. Do not edit locale files by hand; they are managed by automation.\n- `CHANGELOG.md`: user-facing announcements, newest first.\n\n## Conventions\n\nFollow the [style guide for playbook developers](docs/style-guide.md). In particular:\n\n- Variable prefixes match the role directory name.\n- Playbook-extensible list variables use the `_auto` + `_custom` split; `_custom` is reserved for users.\n- Renamed or removed variables get a validation entry, so stale user configuration produces an error instead of being silently ignored. Each role deprecates its own variables in its `validate_config.yml`; the `matrix_playbook_migration` role covers eliminated roles and very-early validation, and also gates breaking changes via `matrix_playbook_migration_expected_version` (see the style guide).\n- Every file carries SPDX license headers ([REUSE](https://reuse.software/) specification).\n- New components must be registered in `setup.yml`, `group_vars/matrix_servers`, `docs/README.md`, `README.md`, `docs/container-images.md`, and get a `CHANGELOG.md` entry.\n\n## Other notes\n\n- Documentation examples use `example.com`, `@alice:example.com`, and the other placeholder values listed in the style guide.\n- Write role tasks concurrency-safe: use `ansible.builtin.tempfile` for temporary files (removed in an `always` block), never fixed shared paths.\n- One logical change per commit.\n"},"files":{"AGENTS.md":"<!--\nSPDX-FileCopyrightText: 2026 Slavi Pantaleev\n\nSPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n# Guidance for AI agents\n\nThis file gives AI coding agents the minimum context for working on this repository. Human contributors may find it a useful summary too.\n\n## What this is\n\nAn Ansible playbook that installs and manages a Matrix homeserver and dozens of related services, each running as a Docker container wrapped in a systemd service.\n\n## Layout\n\n- `setup.yml`: the main playbook, listing all roles.\n- `roles/custom/`: roles maintained in this repository.\n- `roles/galaxy/`: external roles, downloaded according to `requirements.yml` via [agru](https://github.com/etkecc/agru) (preferred) or `ansible-galaxy`. Run `just roles` to install them (or `just update` to also pull the playbook itself). Editing these roles locally is fine while preparing or testing a fix, but the changes get wiped on the next roles update, so they must be synced back to the role's upstream repository, followed by a version pin update in `requirements.yml`.\n- `group_vars/matrix_servers`: wires roles together (feeding one role's variables into another). Values a role can construct by itself belong in the role's `defaults/main.yml`, not here.\n- `docs/`: user-facing documentation, one page per component.\n- `i18n/`: translation infrastructure. Do not edit locale files by hand; they are managed by automation.\n- `CHANGELOG.md`: user-facing announcements, newest first.\n\n## Conventions\n\nFollow the [style guide for playbook developers](docs/style-guide.md). In particular:\n\n- Variable prefixes match the role directory name.\n- Playbook-extensible list variables use the `_auto` + `_custom` split; `_custom` is reserved for users.\n- Renamed or removed variables get a validation entry, so stale user configuration produces an error instead of being silently ignored. Each role deprecates its own variables in its `validate_config.yml`; the `matrix_playbook_migration` role covers eliminated roles and very-early validation, and also gates breaking changes via `matrix_playbook_migration_expected_version` (see the style guide).\n- Every file carries SPDX license headers ([REUSE](https://reuse.software/) specification).\n- New components must be registered in `setup.yml`, `group_vars/matrix_servers`, `docs/README.md`, `README.md`, `docs/container-images.md`, and get a `CHANGELOG.md` entry.\n\n## Other notes\n\n- Documentation examples use `example.com`, `@alice:example.com`, and the other placeholder values listed in the style guide.\n- Write role tasks concurrency-safe: use `ansible.builtin.tempfile` for temporary files (removed in an `always` block), never fixed shared paths.\n- One logical change per commit.\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"<!--\nSPDX-FileCopyrightText: 2026 Slavi Pantaleev\n\nSPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n# Guidance for AI agents\n\nThis file gives AI coding agents the minimum context for working on this repository. Human contributors may find it a useful summary too.\n\n## What this is\n\nAn Ansible playbook that installs and manages a Matrix homeserver and dozens of related services, each running as a Docker container wrapped in a systemd service.\n\n## Layout\n\n- `setup.yml`: the main playbook, listing all roles.\n- `roles/custom/`: roles maintained in this repository.\n- `roles/galaxy/`: external roles, downloaded according to `requirements.yml` via [agru](https://github.com/etkecc/agru) (preferred) or `ansible-galaxy`. Run `just roles` to install them (or `just update` to also pull the playbook itself). Editing these roles locally is fine while preparing or testing a fix, but the changes get wiped on the next roles update, so they must be synced back to the role's upstream repository, followed by a version pin update in `requirements.yml`.\n- `group_vars/matrix_servers`: wires roles together (feeding one role's variables into another). Values a role can construct by itself belong in the role's `defaults/main.yml`, not here.\n- `docs/`: user-facing documentation, one page per component.\n- `i18n/`: translation infrastructure. Do not edit locale files by hand; they are managed by automation.\n- `CHANGELOG.md`: user-facing announcements, newest first.\n\n## Conventions\n\nFollow the [style guide for playbook developers](docs/style-guide.md). In particular:\n\n- Variable prefixes match the role directory name.\n- Playbook-extensible list variables use the `_auto` + `_custom` split; `_custom` is reserved for users.\n- Renamed or removed variables get a validation entry, so stale user configuration produces an error instead of being silently ignored. Each role deprecates its own variables in its `validate_config.yml`; the `matrix_playbook_migration` role covers eliminated roles and very-early validation, and also gates breaking changes via `matrix_playbook_migration_expected_version` (see the style guide).\n- Every file carries SPDX license headers ([REUSE](https://reuse.software/) specification).\n- New components must be registered in `setup.yml`, `group_vars/matrix_servers`, `docs/README.md`, `README.md`, `docs/container-images.md`, and get a `CHANGELOG.md` entry.\n\n## Other notes\n\n- Documentation examples use `example.com`, `@alice:example.com`, and the other placeholder values listed in the style guide.\n- Write role tasks concurrency-safe: use `ansible.builtin.tempfile` for temporary files (removed in an `always` block), never fixed shared paths.\n- One logical change per commit.\n","category":"root","tokens":676}]}