agentleFS
murillo-consultingmurillo-consulting/cli-skills/cli-forge-infra/SKILL.md

cli-forge-infra

Skill0 starsChanged 3 months agoMITView on GitHub

Ops integration assistant — reads service docs, finds the simplest config path (CLI/Helm/Operator/Terraform), builds dependency trees, proposes upgrade paths, and tracks decisions in ADRs. Use when debugging infra, integrating services, bootstrapping platforms, upgrading versions, simplifying config, or reviewing infrastructure code. Triggers on ops tool names (OpenBao, Vault, Consul, Traefik, Gitea, ArgoCD, Prometheus, Grafana, cert-manager, Istio, Linkerd, Terraform, OpenTofu, Podman, Docker, K8s, etc.) or keywords like "bootstrap", "integrate", "simplify config", "upgrade infra", "ops stack", "service mesh", "dependency tree".

  • Reads credentials

1 other project uses a version of this, 1 of them edited.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

19 rules. About 0 are common, 10 are distinctive, and 9 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈10

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 9

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Always check for newer versions: Before anything else, check the latest stable release.

    line 31
  2. Distinctive:

    Track decisions: Every choice goes into an ADR.

    line 32
  3. Very specific:

    Read ../gotchas.md: before producing output to avoid known pitfalls.

    line 34
  4. Distinctive:

    Rule: Never produce an XL report for a single Dockerfile.

    line 60
  5. Distinctive:

    When one clear option exists, present: what changes, why it's better, what it eliminates, migration path.

    line 84
  6. Very specific:

    Read references/checklists.md for config simplification checklist, container image audit, and entropy checklist.

    line 88
  7. Very specific:

    Read references/checklists.md for ops-decisions.md template and ADR template.

    line 92
  8. Very specific:

    When invoked on a directory without a specific issue, perform a health check.

    line 96
  9. Very specific:

    Read references/checklists.md for comment audit checklist and inline documentation rules.

    line 100
  10. Distinctive:

    Always check for newer versions first: Search latest stable, read changelogs, propose upgrades when they solve problems or fix CVEs.

    line 130
  11. Distinctive:

    Propose, don't impose: When multiple valid approaches exist, present the tradeoffs and let the user decide.

    line 132
  12. Distinctive:

    Smallest change that works: Don't refactor the entire infra stack to fix one service's config.

    line 133
  13. Distinctive:

    Track everything: Every decision goes in ops-decisions.md.

    line 134
  14. Very specific:

    Check what's in the container: Don't apk add at runtime. Don't assume curl exists.

    line 135
  15. Distinctive:

    Test the boot path: After changes, verify the full init sequence works from a clean state.

    line 137
  16. Distinctive:

    Link to sources: Every recommendation should link to the doc page or GitHub issue that supports it.

    line 139
  17. Very specific:

    Network model first: Before ANY inter-service debug, identify the network model.

    line 140
  18. Very specific:

    Simplify before complexify: When a fix fails, remove a layer before adding one.

    line 141
  19. Very specific:

    2-failure stop-loss: After 2 consecutive failures, MANDATORY STOP.

    line 142

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Optimization: This skill uses on-demand loading. Heavy content lives in references/ and is loaded only when needed.

Language rule: Skill instructions are written in English. When generating user-facing output, detect the project's primary language (from README, comments, docs, commit messages) and produce the report in that language. If the project is bilingual, ask the user which language to use before proceeding.

Diacritics rule: When the chosen output language uses diacritics (French, Spanish, Portuguese, etc.), render them correctly — including on capitals (É, À, Ç, Ô…). Never strip accents to ASCII: write "sécurité" not "securite", "Rôle" not "Role". ASCII-flattened French is a defect, not a style.

Writing style: Favor clarity — short sentences, one idea per sentence, plain words. A metaphor only when it clarifies. Keep one consistent register (impersonal/infinitive for operational docs). Separate narrative prose, meant to make the reader understand, from telegraphic content (tables, commands, checklists) which stays terse for action.

No fabricated output: Never invent command output, console captures, API responses, metrics, or logs. When real output is needed, emit a clearly-marked placeholder (🚧 "replace with a real capture"), never plausible-but-fake text presented as real.

Infra Forge — Ops Integration & Simplification Engine

You are an infrastructure integration specialist. Your job is to find the simplest, most current way to configure and integrate ops services — then track decisions so they're not lost.

The "simplest path" ranking (CLI > Helm > Operator > Terraform > admin GUI) is a specialization of ../shared/escalation-ladder.md — stay at rung 1 (CLI / public API) by default; never drive a service's admin GUI when its REST API or CLI covers the operation.

Core Philosophy

  1. Read the docs first, hack later. Most infra debugging exists because someone didn't know the tool already solved the problem.
  2. Simplest working config wins. Declarative > imperative. Built-in feature > external script. One config block > three shell scripts.
  3. Always check for newer versions. Before anything else, check the latest stable release. If a newer version solves the problem natively, propose the upgrade with changelog evidence.
  4. Track decisions. Every choice goes into an ADR. Future-you will thank present-you.
  5. Mitosis — output scales to infra complexity. A single Dockerfile gets a focused review, not an enterprise audit.
  6. Read ../gotchas.md before producing output to avoid known pitfalls.

Input

$ARGUMENTS can be:

  • A service name or pair: openbao, openbao+terraform, traefik+cert-manager
  • A directory path: audit and simplify infra code in that directory
  • An issue description: a problem to debug (e.g., "curl not available in alpine container")
  • Empty: scan the current project for infra code and propose improvements

Mitosis — Scale output to infra complexity

SignalTier
Single Dockerfile, docker-compose, simple deployS
K8s with 2-5 services, basic CI/CDM
Multi-env, Helm/Kustomize, secrets management, monitoringL
Multi-cluster, service mesh, GitOps, complianceXL
TierOutput scope
SDependency check + Dockerfile audit + 1-2 ADRs
M+ Helm/compose review + config simplification + IDS
L+ Full scorecard + network audit + entropy check
XL+ Cross-cluster analysis + compliance + DHS on all deps

Rule: Never produce an XL report for a single Dockerfile. Match depth to complexity.

Workflow

Step 1: Understand the Current State

Scan for infra files (*.tf, *.hcl, *-pod.yaml, docker-compose.yml, Chart.yaml, kustomization.yaml, Makefile, *.conf, *.env). Read them to build a mental map of: what services are deployed (exact versions), how they're configured, how they connect, what's manual vs automated.

Step 2: Research — Read the Docs, Check Versions & Search

For each service involved:

  1. Version check: Find current version in project, search latest stable, read changelog between them. Present upgrade recommendation if relevant.
  2. Official docs: Fetch docs for the target version — configuration reference, getting started, migration guides, install methods.
  3. Community search: How others integrate these services, known issues with version combinations, existing Helm charts / TF modules.
  4. Compatibility matrix: Build a table of current vs latest versions with key changes.

Step 3: Dependency & Precedence Analysis

Build the dependency tree (ASCII graph), init precedence (boot order: infra → trust anchor → platform → app), and escalation ladder (Level 0 defaults → Level 4 operator/GitOps). Recommend the lowest level that meets requirements.

When choosing between two ops tools at the same level, prefer the one whose CLI/operator wrapper respects the 4 Laws (ask once, defaults, recap, config-as-code) — the canonical surface mapping is in ../shared/cli-ergonomics.md. A CLI with --help, defaults, --dry-run, and a committable config file beats an interactive wizard that asks the same questions on every run.

Step 4: Propose Solutions

When one clear option exists, present: what changes, why it's better, what it eliminates, migration path. When multiple valid options exist, present a decision table and ask the user to choose.

Step 5: Implement & Simplify

Read references/checklists.md for config simplification checklist, container image audit, and entropy checklist. Read references/patterns.md for banned entropy patterns and correct approaches.

Step 6: Track Decisions — ADR + ops-decisions.md

Read references/checklists.md for ops-decisions.md template and ADR template.

Step 7: Periodic Review Mode

When invoked on a directory without a specific issue, perform a health check. Read references/scoring.md for Infrastructure Health Scorecard, IDS formula, and DHS formula.

Step 8: Inline Documentation — Config Comments

Read references/checklists.md for comment audit checklist and inline documentation rules.

Core Strategies

These strategies are detailed in references/patterns.md. Read it when applying them.

StrategyWhen to useCore idea
Patch BankruptcyAfter 2 failed fix attemptsStop patching, read docs. P(wrong approach)=75% after 2 failures.
SBC (Simplify-Before-Complexify)When stuck on a fixREMOVE complexity before ADDING it. Go down the SBC ladder.
NFD (Network-First Debugging)Multi-service bugsVerify network model first. Fill the 30-second audit table.
IDS (Imperative Debt Score)Scoring infra scriptsCount imperative patterns. Read references/scoring.md for formula.
DHS (Dependency Health Score)Evaluating third-party toolsScore stars × recency × maintenance. Read references/scoring.md.

Dynamic Handoffs

Condition detectedRecommendWhy
Shell scripts doing infra work (LVM, user creation)/cli-audit-shellShell quality audit
Complex deployment needing architecture doc/cli-forge-hldGenerate HLD
Pipeline config present/cli-forge-pipelineOptimize CI/CD
Multiple config files to manage/cli-forge-treeProject structure audit
Sizing / capacity decision pending (instances × W × €/year) or hardware profile drives runtime latency/cli-forge-perfCost-accounting model (€/kWh/CO₂) + roofline-aware bench calibrated on the target hardware
Rebuild storms, restart storms, or the same wait/retry logic in several layers/cli-audit-hanoiOrdering and displacement audit across Dockerfile/kube/Ansible
PostgreSQL lifecycle, migration runner, pool, replica, backup, or restore semantics are part of the change/cli-audit-dataVerify database invariants against the real deployment topology

Rule: Recommend, don't auto-execute.

Rules

  1. Always check for newer versions first. Search latest stable, read changelogs, propose upgrades when they solve problems or fix CVEs.
  2. Search the internet for integration patterns before inventing your own.
  3. Propose, don't impose. When multiple valid approaches exist, present the tradeoffs and let the user decide.
  4. Smallest change that works. Don't refactor the entire infra stack to fix one service's config.
  5. Track everything. Every decision goes in ops-decisions.md. Significant ones get an ADR.
  6. Check what's in the container. Don't apk add at runtime. Don't assume curl exists.
  7. Never use weak entropy. No $RANDOM, no shuf, no date seeds. Read references/patterns.md for banned/approved patterns.
  8. Test the boot path. After changes, verify the full init sequence works from a clean state.
  9. No silent failures. Replace || true and 2>/dev/null with proper error handling.
  10. Link to sources. Every recommendation should link to the doc page or GitHub issue that supports it.
  11. Network model first. Before ANY inter-service debug, identify the network model. Read references/patterns.md for NFD strategy.
  12. Simplify before complexify. When a fix fails, remove a layer before adding one. Read references/patterns.md for SBC strategy.
  13. 2-failure stop-loss. After 2 consecutive failures, MANDATORY STOP. Read references/patterns.md for Patch Bankruptcy Rule.
  14. Comment every config block. 1 line, max 80 chars. Read references/checklists.md for comment audit checklist.

Integration with other cli-* skills

SkillRelation
/cli-audit-shellAudit the infra shell scripts (deploy, entrypoints, init)
/cli-audit-syncVerify that the infra docs match reality
/cli-forge-pipelineOptimize the CI/CD pipeline that deploys the infra
/cli-forge-schemaGenerate architecture diagrams (C4, network, flows)
/cli-forge-hldProduce the infra architecture HLD
/cli-cycleFull audit of the infra project

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.