home-ops AGENTS.md

Project instructions for a Home-ops repository that manages a three-node Talos Linux Kubernetes cluster with Flux GitOps. GitOps means storing infrastructure configuration in Git and applying changes from there.

In plain words
What is it for?
Use them when modifying Kubernetes applications, cluster configuration, networking, storage, backups, secrets, or monitoring in this repository.
Why use it?
They give coding agents the repository's structure, technology choices, conventions, and rules so changes fit the existing setup.

Instructions file for CodexOpenCode

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/aviator-coding/home-ops/agents-md
Clone the repo
git clone --depth 1 https://github.com/Aviator-Coding/home-ops

Made for: Codex, OpenCode.

Per session 24,881 This file is loaded in full into every session.
When invoked 24,881 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.24881 $0.24881
Opus 5 $0.12441 $0.12441
Sonnet 5 $0.04976 $0.04976
Haiku 4.5 $0.02488 $0.02488

Measured yesterday against content hash 3e0bba4467ce, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

home-ops AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

AGENTS.md · 203 lines

How it starts

The opening of the file, as written. The whole thing — 203 lines — stays where its author put it; the contents beside it link to each section on GitHub.

PROJECT KNOWLEDGE BASE

Home-ops GitOps repo for a 3-node Talos Linux Kubernetes cluster managed by Flux v2. CLAUDE.md is a symlink to this file. For narrower operator detail see talos/AGENTS.md and bootstrap/AGENTS.md.

Core stack: Talos Linux (immutable OS) + Flux v2 (GitOps) + Cilium (CNI, BGP LoadBalancer, kube-proxy replacement, no L2 announcements) + Rook-Ceph (storage) + External Secrets Operator/1Password (secrets) + Cloudflare Tunnel (external access) + External-DNS (split DNS: network/cloudflare-dns public, network/unifi-dns internal) + VolSync (triple-destination backup). Gateway API HTTPRoutes front envoy-internal/envoy-external gateways in network. Monitoring: kube-prometheus-stack + Loki + Promtail + Tempo + Grafana + Alertmanager + Gatus + kromgo + KEDA + unpoller, all in monitoring.

STRUCTURE

.
├── kubernetes/
│   ├── apps/           # 19 namespaces at apps/base/<ns> + overlay apps/main/<ns> (see NOTES)
│   ├── clusters/main/  # Flux entry point: meta.yaml + apps.yaml (see NOTES)
│   └── components/     # alerts, common, dragonfly, volsync, kopiur (Stage 3 parallel)
├── talos/              # minijinja templates (see talos/AGENTS.md)
├── bootstrap/          # just bootstrap stages (see bootstrap/AGENTS.md)
├── .taskfiles/         # included: 1password, k8s, flux, rook, network, actions-runner
├── terraform/          # OpenTofu stacks for config outside Flux's reach (see NOTES)
├── docs/               # runbooks, incident history, ceph/network notes
└── .renovate/          # Renovate presets

Gatus is an app under kubernetes/apps/base/monitoring/gatus, not a component. Endpoints come from the gatus.home-operations.com/endpoint HTTPRoute annotation (auto-discovered) or hand-written entries in app/resources/config.yaml for non-HTTPRoute checks - not the dead gatus.io/enabled ConfigMap pattern (see NOTES).

WHERE TO LOOK

Task Location Notes
Add new app kubernetes/apps/base/{namespace}/{app}/ + overlay kubernetes/apps/main/{namespace}/{app}.yaml Overlay is a Flux Kustomization CR (one yaml per former ks.yaml). All 19 namespaces are on this layout. See NOTES.
Add app to namespace kubernetes/apps/main/{namespace}/kustomization.yaml Add - ./{app}.yaml
Enable backups overlay kubernetes/apps/main/{ns}/{app}.yaml VolSync: spec.components + dependsOn: volsync (namespace system) + VOLSYNC_* keys (example: media/seerr.yaml). Stage 3 dual-engine also adds components/kopiur + measured KOPIUR_* keys - owner: kubernetes/components/kopiur/Readme.md
App secrets kubernetes/apps/base/{ns}/{app}/app/externalsecret.yaml OnePassword via ClusterSecretStore onepassword
Bootstrap secrets bootstrap/kustomize/apps/security/ vals injects ref+op://Home-Lab/1password/*
Flux entry point kubernetes/clusters/main/{meta,apps}.yaml cluster-meta -> cluster-apps dependency chain
Helm/OCI repos kubernetes/apps/base/flux-system/meta/repos/ 3 repo yaml files plus kustomization.yaml
Talos node config talos/machineconfig.yaml.j2 + talos/nodes/*.yaml.j2 + talos/schematic.yaml.j2 Rendered by just talos, not Flux
Task commands Taskfile.yaml + .taskfiles/{domain}/ task --list-all. Split with just: see UNIQUE STYLES
CI workflows .github/workflows/ flate, renovate, codeql, image-pull, label-sync, validate, terraform-diff, terraform-publish, ai-pr-review, plus build-talosctl-busybox, labeler, tag, test-runner
Branch protection GitHub ruleset on main, applied via gh api (not in Git) docs/branch-protection.md. Only Labeler - Labeler is a required status check today - flate/image-pull/validate all path-filter at the on: pull_request: trigger level, so they never post a check outside their paths and are unsafe to require as-is (see doc for the live-measured proof and the follow-up needed to close the gap)
Renovate config .renovaterc.json5 + .renovate/ Presets/config (extends Aviator-Coding/mortyops + local, incl. .renovate/talos.json5). Live writer is the in-cluster CronJob (kubernetes/apps/base/renovate/); GHA .github/workflows/renovate.yaml schedule is commented out as two-minute rollback. Owner: kubernetes/apps/base/renovate/README.md
Tool versions .mise.toml kubectl, flux, talos, helm, kustomize, vals, 1password-cli, just, minijinja, etc. Resolve with mise which <cli> / mise exec (see NOTES).
Authentik SSO config terraform/authentik/ (OpenTofu) Adopted apps/providers via import blocks, plus stack-created LiteLLM OIDC (litellm.tofu). Other flows/stages/mappings stay Authentik-blueprint data sources. Never tofu apply without an explicit go-ahead. Runbook: docs/authentik/terraform.md
AI stack kubernetes/apps/main/ai/ (Flux Kustomizations) + kubernetes/apps/base/ai/ (manifests) Hermes + ToolHive (toolhive.stacklok.dev/v1alpha1 MCPServer) + agentgateway + LiteLLM (governance + fallback chains; internal route only since 2026-08-26, never the public listener; delivered by litellm.home-operations.com/v1alpha1 CRs from ai/litellm-operator - docs/ai-system/litellm/{README,fallbacks}.md). kagent/kmcp tombstones: docs/ai-system/{kagent,kmcp}. Retired 2026-08-22: docs/ai-system/retired-2026-08-22.md
konflate (PR review UI) kubernetes/apps/base/flux-system/konflate/ Read-only Flux PR-review UI, internal HTTPRoute only. Write-back is off and no GitHub credential is in-cluster (public-repo anonymous reads). Do not copy the reference repo's write-back / shared GitHub App wiring.
PVC write-access check kubernetes/apps/base/system/pvc-writable-check/ CronJob (every 6h) execs test -w <mountPath> in every PVC-mounting container and alerts via PrometheusRule on genuine failure - the check that would have caught the autobrr/rsshub-playwright empty-volume bugs (2026-08-30). Cluster-wide pods get/list plus per-namespace pods/exec: create RoleBindings that deliberately omit rook-ceph, database, and security (API-server denial, not script-only); design rationale and that RBAC tradeoff are in the app's README. Prefer volumeMounts[].readOnly: true for expected read-only (headlamp); the pod-wide skip annotation is an unused escape hatch.

Read the full file on GitHub · 203 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 203 lines · 24,881 tokens per session scan A 3e0bba4467ce

Subscribe to this mod's changes

home-ops AGENTS.md is an instructions file published in the GitHub repository Aviator-Coding/home-ops (2 stars, last pushed yesterday), licensed MIT. It adds 24,881 tokens to every session, about $0.1244 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other instructions, from other repositories

codex AGENTS.md

AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.

openai/codex · 5,182 tokens

buildNext

Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).

microsoft/vscode · 6,785 tokens

next.js AGENTS.md

Instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.

vercel/next.js · 7,296 tokens

vscode oss-third-party-notices.instructions.md

Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, applying the notice (cutover) and fallback chain (never fail the build).

microsoft/vscode · 5,001 tokens

spec-kit AGENTS.md

Instructions for github/spec-kit, covering agents.md, about spec kit and specify, quickstart — add a new integration in 5 steps, integration architecture and integrationmanifest — file tracking.

github/spec-kit · 7,040 tokens

langchain AGENTS.md

Instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.

langchain-ai/langchain · 4,345 tokens