Curated git-submodule collection of homelab infrastructure, monitoring, and media stack projects. Used as a knowledge base for AI agents working with the IoTBase homelab.
When the user asks to add repositories, follow all of these steps. Do not skip any.
gh api repos/ORG/REPO/releases/latest --jq '.tag_name'Pin to the latest release tag. If a repo has no releases, track latest (use a bare string in ALLOWED_REPOS).
Add entries to the ALLOWED_REPOS list in the appropriate section. If no existing section fits, create a new one with a comment header matching the style of existing sections.
- Pinned:
("org/repo-name", "v1.0.0") - Latest:
"org/repo-name" - Custom local name:
("org/repo-name", "v1.0.0", "local-name")or("org/repo-name", None, "local-name")
Run git submodule add <url> repos/<name> for each repo. This can be done in parallel.
This verifies the allowlist matches reality and checks out pinned versions. Confirm all repos show green in the output.
Three places must be updated:
- Directory tree — Add entries under the matching section in the
repos/tree diagram. - Repository summaries — Add a summary block for each repo following the existing format:
lsthe repo to discover key paths- Include: Language, Version (or "Tracking: Latest"), Org, one-liner description, Key paths, Relevant for
- Common Tasks table — Add rows for key use cases if applicable.
Run uv run sync.py --dry-run to confirm the allowlist is in sync. Check git status to see all expected changes.
gh api repos/ORG/REPO/releases/latest --jq '.tag_name'Update the version in sync.py, run uv run sync.py, and update the version in AGENTS.md summaries.
Remove from ALLOWED_REPOS in sync.py, run uv run sync.py (handles submodule cleanup), and remove from all three places in AGENTS.md (tree, summary, common tasks).