a7b06358301ba0946d92f3f0160152ad143eb060
Configure yamllint and ansible-lint, plus a workflow running yamllint, ansible-lint and ansible-playbook --syntax-check over every playbook. ansible-lint uses the moderate profile: on the current code it reports exactly the same violations as basic, so it costs nothing today while holding a higher bar for new code. skip_list is empty; noisy legacy rules go to warn_list with a comment on why and when to restore them. Correctness and safety rules stay fatal. Two constraints are encoded in the workflow: syntax-check must run from ansible/ because roles_path is relative, and ansible-lint needs absolute ANSIBLE_ROLES_PATH/ANSIBLE_COLLECTIONS_PATH when run from the root. The runner is not registered yet; registration notes are in the workflow. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GTocXkGUUazHdKKd3r9k71
HomeLab Infrastructure
Active HomeLab infrastructure is managed through Ansible.
Active Files
ansible/— current control plane.ansible/inventory/hosts.yml— inventory and host facts.ansible/playbooks/check.yml— safe connectivity/facts check.
Archive
Historical pre-Proxmox material is kept under:
archive/2026-07-proxmox-migration/
It contains old NixOS configs, Docker Compose service definitions, Gitea workflows, deploy scripts and old Ansible bootstrap playbooks.
Basic Check
cd ansible
ansible-playbook playbooks/check.yml
Grimmory MCP
tools/grimmory-mcp/ contains the read-only Grimmory API integration for
OpenCode and the explicitly invoked Obsidian synchronization tools.
npm install --prefix tools/grimmory-mcp
npm run configure --prefix tools/grimmory-mcp
npm test --prefix tools/grimmory-mcp
OpenCode registers the server globally. After restarting OpenCode, use
/grimmory-sync to update individual book notes under 90 Library/Books and
covers under 99 System/Export/Grimmory/Covers.
Languages
HCL
25%
Jinja
24.4%
JavaScript
22.3%
Makefile
9.7%
Nix
6.7%
Other
11.9%