Skip to content
Agentmart
Submit a tool

argocd-conventions

Argo CD objects in any GitOps repository.

Skill by leroyguillaume

IndexedMIT★ 7
Write a review

Chalk Labs

Need help deploying argocd-conventions?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/leroyguillaume-argocd-conventions

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Argo CD objects in any GitOps repository. TRIGGER when: creating or editing an `Application`, `ApplicationSet`, `AppProject` or any file Argo CD reads; adding a project, app or cluster; bumping a chart version there; user asks about Argo CD, generators, sync policy or sync waves. SKIP when: authoring the chart itself (`helm-conventions`), or manifests with no Argo CD involvement.

Use cases: devops, data, writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/argocd-conventions

What's inside

Skill name
argocd-conventions
Description
Argo CD objects in any GitOps repository. TRIGGER when: creating or editing an `Application`, `ApplicationSet`, `AppProject` or any file Argo CD reads; adding a project, app or cluster; bumping a chart version there; user asks about Argo CD, generators, sync policy or sync waves. SKIP when: authoring the chart itself (`helm-conventions`), or manifests with no Argo CD involvement.
License
MIT
Instructions
271 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Argo CD conventions

Rules about a single Argo CD object, which hold whatever shape the repository
has.

## Repository layout: the repository's own

**Use the layout the repository already has** — its directory names, its
templating, where its values live, how it onboards a cluster and switches an
app on. Do not challenge that structure: not in a comment, not in a "this
would be cleaner as…", not by quietly adding a `lib/`. A layout is
load-bearing for people and pipelines you cannot see, and a repository that is
half one shape and half another is worse than either. If the user wants a
refactor, they will ask.

The carve-out covers layout and structure only. The rules below apply to what
you write, in the local idiom; do not sweep the repo to retrofit them. An
existing choice that breaks a rule or is a genuine correctness problem is
still said once, plainly, and proposed as its own change — then let go.

## Charts: OCI first

**Reference charts as OCI artefacts.** An OCI registry is one artefact store
for charts and images, with one credential, one mirroring story and immutable
digests — an HTTP chart repository is a second protocol, a second credential
and an `index.yaml` that gets regenerated under you.

- **Write the `repoURL` with no scheme**: `ghcr.io/<org>/charts`, never
  `oci://ghcr.io/…`. That is how Argo CD tells an OCI registry from an HTTP
  chart repository — it parses the URL and finds no host. (`oci://` is the
  `helm` CLI's form, not the `Application`'s.)
- The repository credential in Argo CD is `type: helm` with `enableOCI: true`.
- **An HTTP chart repository is a documented exception**, not a fallback:
  when upstream publishes no OCI chart at all. That reason goes beside the
  line or in `ARCHITECTURE.md` (see `architecture-conventions`); switching it
  to OCI once upstream publishes one is tracked in an issue.
- **Mirrored registries**: keep the *registry* in the cluster's values and the
  *path* beside the chart, then build the reference from the two. The path is
  a fact about the chart, the registry a fact about where the cluster can
  reach. A registry that varies per cluster and is written once per chart is
  the wrong way round.

## Chart versions: the latest, pinned exactly

Two rules that sound opposed and are not — freshness is a property of the
moment you edit the version, never a runtime behaviour.

- **Always resolve the actual latest version before writing one.** Never a
  version from memory, never "bump the patch and hope". Look it up:

  ```bash
  helm show chart oci://<registry>/<path>/<chart> | grep '^version:'
  ```

  ```bash
  helm repo add <name> <url> && helm repo update && helm search repo <name>/<chart> --versions | head
  ```

  Read the upstream release notes before bumping a major, and say in the PR
  what changed. A chart version is not a dependency bump like any other: it is
  a change to every cluster at once.
- **Pin the exact version. Never a range.** Argo CD *does* accept a semver
  constraint in `targetRevision` (`~1.2.0`, `*`), and that is precisely the
  trap: the deployed version stops being in git, two clusters synced a week
  apart run different code, and a rollback is no longer a revert. If the
  version is not in the diff, nobody reviewed it.
- **Keep "latest" true over time with a bot, not a range** — Renovate (a
  custom manager over wherever versions live, or its `argocd` manager over
  plain `Application` YAML). A bumped pin arrives as a reviewable PR, which is
  the whole difference.

## The Application

### `revisionHistoryLimit: 0`, on every Application

**Always. No exceptions, the bootstrap root app included.** Argo CD keeps the
last ten syncs in `status.history` by default, and an entry there is not a
line: it carries the fully resolved source list, chart version and revision
included. That payload grows with how often an app is synced, on an object the
ApplicationSet controller rewrites on every reconcile.

What it costs is `argocd app rollback` and `argocd app history`, and that is
the right trade: **git is the record of what was deployed**, so a rollback is
a revert and a sync. Read the commit log, not the cluster.

(The chart-level `revisionHistoryLimit` — the one that caps ReplicaSets — is a
separate knob, set in the app's values file. Same reasoning, same answer.)

### Sources

- **A `$values` ref source takes no `path`.** With one it contributes
  manifests as well as values.
- **Argo CD fails an Application whose source `path` does not exist.** For a
  directory that may be absent, point `path` at a parent that always exists
  and narrow with `directory.include`; matching nothing is legal and empty,
  missing is fatal.
- **`ignoreMissingValueFiles: true`** is what lets an optional values file be
  optional — and it hides typos in those paths, which is what a render check
  exists for.
- **`directory.include` and `exclude` globs have no path separator**: they
  match the path relative to the source's `path`, and `*` crosses `/`. So
  `*/*.yaml` matches `a/b/c.yaml` too; bound the depth with an `exclude`
  (`*/*/*` keeps only files one directory down).

### Passing values into jsonnet

One `extVar` carrying a whole config object as JSON (`{{ toJson .config }}`),
decoded as `jsonnet-conventions` says, rather than one extVar per key: the set
of goTemplate expressions that can reach a rendered Application stays small
enough to reproduce offline.

**Pass it as a plain string, never `code: true`** — `code` evaluates the value
as jsonnet, which turns a values file into an execution channel for nothing.

### Sync policy

- `CreateNamespace=true` with `managedNamespaceMetadata` for the labels other
  controllers select the namespace by. **Two Applications sharing a namespace
  must write the same metadata**, or they take turns rewriting each other's

From leroyguillaume/claude, MIT.

More from leroyguillaume/claude

Signals

Stars
7
Forks
3
Open issues
0
Last commit (this folder)
Oct 2, 2026 (28 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from leroyguillaume

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get argocd-conventions running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying argocd-conventions?

CallGet help
Cite this page

argocd-conventions skill. Agent Mart. https://agentmart.dev/skills/leroyguillaume-argocd-conventions (last updated 2026-10-24)