Agent skill

Env Validator

by Mathews-Tom in Mathews-Tom/armory

Validates .env files against code references and manifests for missing vars, type mismatches, insecure defaults, and unused entries.

MITAuto-check: notesDevOps & Cloud

Install Env Validator

skills CLI
$ npx skills add Mathews-Tom/armory --skill env-validator -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Mathews-Tom/armory env-validator --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Mathews-Tom/armory.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/env-validator .claude/skills/env-validator && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
env-validator
GitHub stars
327
Token cost
~1.4k tokens
SKILL.md length
413 words
Files
3 (incl. references)
Skills in repo
80
Repo updated
First seen
Licence
MIT

At a glance

Validates .env files against code references and manifests for missing vars, type mismatches, insecure defaults, and unused entries.

  • Works in 4 steps: Discovery → Schema Extraction → Validation → …
  • : validate env file
  • SKILL.md covers Reference Files, Prerequisites, Workflow and Error Handling, plus 1 more section
  • Needs SECRET_KEY and API_KEY

What it does

Env Validator is an agent skill from Mathews-Tom/armory. Validates .env files against code references and manifests for missing vars, type mismatches, insecure defaults, and unused entries. Triggers on: "validate env file", "check environment variables", "missing env vars", "check .env", "dotenv validation". NOT for secret scanning, use repo-sentinel.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `evals/cases.yaml` and `references/validation-rules.md`).

It sits in DevOps & Cloud, covering Secrets management. It works with Docker. The repository describes itself as: Curated, production-grade skills for AI coding agents. Battle-tested workflows for developers who use AI seriously. The licence is MIT.

When your agent uses it

  • : validate env file
  • Check environment variables
  • Missing env vars
  • Dotenv validation

Example prompts

  • “validate env file”
  • “check environment variables”
  • “missing env vars”
  • “/env-validator”

Requirements

  • Docker
  • A credential in SECRET_KEY
  • A credential in API_KEY

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Discovery
  2. Schema Extraction
  3. Validation
  4. Report

What it can do on your machine

Read from SKILL.md and the folder at commit 4594fb7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • SECRET_KEY
    • API_KEY
    • LEGACY_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Env Validator loads about 1.4k tokens when it runs, and up to ~2k if it reads all its reference files. Until then it costs about 78 tokens; SKILL.md has 413 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~78
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:3
    description: 'Validates .env files against code references and manifests for missing vars, type mismatches, insecure def
  • NoteMentions a .env fileSKILL.md:14
    ble configurations by cross-referencing `.env` files against
  • NoteMentions a .env fileSKILL.md:26
    - A `.env` file (or equivalent) in the project
  • NoteMentions a .env fileSKILL.md:35
    1. **Primary file:** Find `.env` in the project root. If absent, check for `.env.local`, `.env.development`, `.env.produ
  • NoteMentions a .env fileSKILL.md:58
    Run these checks against the primary `.env` file:
  • NoteMentions a .env fileSKILL.md:61
    able referenced in code but absent from `.env`
  • NoteMentions a .env fileSKILL.md:62
    mple` without a default but absent from `.env`
  • NoteMentions a .env fileSKILL.md:75
    - Variables in `.env` not referenced anywhere in code or manifests
  • NoteMentions a .env fileSKILL.md:93
    **File:** `.env`
  • NoteMentions a .env fileSKILL.md:112
    l://user:pass@localhost:5432/dbname` to `.env`

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Mathews-Tom/armory at commit 4594fb7, republished under its MIT licence (© Mathews-Tom). 413 words, ~1,371 tokens.

Download SKILL.mdSave it as .claude/skills/env-validator/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
env-validator
description
Validates .env files against code references and manifests for missing vars, type mismatches, insecure defaults, and unused entries. Triggers on: "validate env file", "check environment variables", "missing env vars", "check .env", "dotenv validation". NOT for secret scanning, use repo-sentinel.
metadata.version
1.0.1
metadata.category
operations
metadata.tags
env, configuration, validation, dotenv, deployment
metadata.difficulty
intermediate
metadata.phase
build

Env Validator

Validates environment variable configurations by cross-referencing .env files against project requirements. Catches missing variables, type errors, insecure defaults, and orphaned entries before they cause runtime failures.

Reference Files

FileContentsLoad When
references/validation-rules.mdBuilt-in validation rules and severity definitionsAlways

Prerequisites

  • A .env file (or equivalent) in the project
  • Optionally: .env.example, docker-compose.yml, or deployment manifests for cross-referencing

Workflow

Phase 1: Discovery

Locate environment configuration sources in the project:

  1. Primary file: Find .env in the project root. If absent, check for .env.local, .env.development, .env.production
  2. Schema file: Find .env.example or .env.template — this defines the expected variables
  3. Code references: Grep for os.environ, process.env, env::var, os.Getenv patterns to find variables referenced in code
  4. Deployment manifests: Check docker-compose.yml, Dockerfile, k8s/ manifests for ${VAR} or ENV VAR patterns

Report what was found before proceeding.

Phase 2: Schema Extraction

Build the expected variable schema from discovered sources:

For each variable found across all sources, record:

FieldSource
NameVariable name (e.g., DATABASE_URL)
RequiredPresent in code references or marked required in example
Type hintInferred from usage (URL, integer, boolean, string, path)
DefaultValue in .env.example if present
Used inList of files that reference this variable
Show full SKILL.md (217 more words)Show less
Phase 3: Validation

Run these checks against the primary .env file:

  1. Missing required variables (CRITICAL)

    • Variable referenced in code but absent from .env
    • Variable in .env.example without a default but absent from .env
  2. Type mismatches (HIGH)

    • PORT=abc when code does int(os.environ["PORT"])
    • DEBUG=yes when code expects boolean (true/false)
    • URL variables without valid URL format
  3. Insecure defaults (HIGH)

    • SECRET_KEY=changeme, PASSWORD=password, API_KEY=xxx
    • DEBUG=true or DEBUG=1 in production-targeted files
    • Empty values for security-critical variables
  4. Unreferenced variables (MEDIUM)

    • Variables in .env not referenced anywhere in code or manifests
    • May indicate stale configuration
  5. Format issues (LOW)

    • Lines without KEY=VALUE format
    • Trailing whitespace in values
    • Inconsistent quoting (mixing single/double/no quotes)
    • Duplicate variable definitions (last wins, but likely a mistake)

See references/validation-rules.md for the complete rule catalog.

Phase 4: Report

Produce a structured validation report:

markdown
# Environment Validation Report

**File:** `.env`
**Schema:** `.env.example` + code references
**Verdict:** PASS | FAIL

## Summary

| Severity | Count |
|----------|-------|
| CRITICAL | N     |
| HIGH     | N     |
| MEDIUM   | N     |
| LOW      | N     |

## CRITICAL

### [ENV-001] Missing required variable: DATABASE_URL

- **Referenced in:** `src/db.py:12`, `docker-compose.yml:8`
- **Expected type:** URL (postgresql://...)
- **Fix:** Add `DATABASE_URL=postgresql://user:pass@localhost:5432/dbname` to `.env`

## HIGH

...

## Unreferenced Variables

| Variable        | In .env | In Code | In Manifests | Status       |
|-----------------|---------|---------|--------------|--------------|
| LEGACY_API_KEY  | Yes     | No      | No           | Unreferenced |

## Recommendations

1. [Highest priority fix]
2. [Second fix]

Error Handling

ErrorResolution
No .env file foundReport absence; check for alternative env sources
No .env.example or schemaValidate based on code references only
Binary or very large .envSkip; report as unsupported format
No code references foundValidate format and security only; skip completeness

Limitations

  • Cannot validate runtime-injected variables (from vault, AWS SSM, etc.)
  • Type inference is heuristic — may misclassify complex values
  • Does not check variable values against external services (e.g., valid API key format)
  • Production vs. development distinction requires file naming conventions

© Mathews-Tom, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skills/env-validator of Mathews-Tom/armory.

  • SKILL.md
  • evals/cases.yaml
  • references/validation-rules.md

Open the folder on GitHubat commit 4594fb7

Compare with similar skills

Env Validator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Env Validator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Env Validator this skillMathews-Tom/armory327—~1.4kAutomated safety check: NotesMIT
Iron Proxy Gateway for NanoClawnanocoai/nanoclaw31k—~4.6kAutomated safety check: NotesMIT
LangBot Deployment Guidelangbot-app/LangBot18k—~1.2kAutomated safety check: NotesApache-2.0
Add Config Env Varbaserow/baserow6.1k—~1.1kAutomated safety check: PassCustom licence
Monstermq Broker Configvogler75/monster-mq142—~2.2kAutomated safety check: PassGPL-3.0
Deploymentmatrixorigin/memoria607—~1.6kAutomated safety check: NotesApache-2.0

Similar skills

  • Installs or refreshes Iron Proxy and its Iron Control web console for NanoClaw, with a local Docker setup, database, credentials and a human approval bridge.

    31k GitHub stars~4.6k tokensUpdated yesterday
    DevOps & CloudAuto-check: notes
  • LangBot Deployment Guide

    langbot-app/LangBot

    Deploys and configures a LangBot instance with Docker Compose or Kubernetes, covering config.yaml, the Box sandbox runtime, the plugin runtime and the global API key.

    18k GitHub stars~1.2k tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Add Config Env Var

    baserow/baserow

    Add a Baserow configuration environment variable for the backend, frontend, or both, and propagate it through settings, Nuxt runtime config, Docker Compose, documentation, consumers, and tests as…

    6.1k GitHub stars~1.1k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Monstermq Broker Config

    vogler75/monster-mq

    Guide for configuring, deploying, and operating the MonsterMQ broker.

    142 GitHub stars~2.2k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Deployment

    matrixorigin/memoria

    Deploy Memoria with Docker Compose or Kubernetes. An agent skill from matrixorigin/memoria.

    607 GitHub stars~1.6k tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Homerail Shared

    xiaotianfotos/homerail

    Shared HomeRail rules for AI agents operating the local-source release candidate: service roles, environment variables, secrets, provider boundaries, Docker callback networking, update expectations…

    991 GitHub stars~1.5k tokensUpdated 11 days ago
    DevOps & CloudAuto-check passed

More from Mathews-Tom/armory

All 80 skills in this repo
  • Architecture Reviewer

    Mathews-Tom/armory

    Architecture reviews across 7 dimensions (structural, scalability, enterprise readiness, performance, security, ops, data) with scored reports.

    327 GitHub stars~4.6k tokensUpdated yesterday
    Auto-check passed
  • Concept To Image

    Mathews-Tom/armory

    Turn concepts into static HTML visuals exported as PNG or SVG files via HTML/CSS/SVG.

    327 GitHub stars~2.6k tokensUpdated yesterday
    Auto-check passed
  • Watch

    Mathews-Tom/armory

    A skill your agent uses when analyzing an existing video URL or local recording: "watch this video", "analyze youtube video", "summarize this video", "youtube transcript", "find this moment", "what…

    327 GitHub stars~2.8k tokensUpdated yesterday
    Auto-check passed
  • Code Refiner

    Mathews-Tom/armory

    Deep code simplification and refactoring preserving behavior across Python, Go, TypeScript, Rust.

    327 GitHub stars~3.1k tokensUpdated yesterday
    Auto-check passed
  • Concept To Video

    Mathews-Tom/armory

    Turn concepts into animated explainer videos using Manim (Python) with MP4/GIF output, audio overlay, multi-scene composition.

    327 GitHub stars~4.9k tokensUpdated yesterday
    Auto-check passed
  • Decision Map

    Mathews-Tom/armory

    Maps the unresolved architecture, policy, and scope decisions that must be answered before planning can start: one durable decision ticket per question on the issue tracker, typed and blocker-linked…

    327 GitHub stars~2.7k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Env Validator

What does Env Validator do?

Validates .env files against code references and manifests for missing vars, type mismatches, insecure defaults, and unused entries. Env Validator is an agent skill from Mathews-Tom/armory.env files against code references and manifests for missing vars, type mismatches, insecure defaults, and unused entries.

When should I use Env Validator?

Env Validator fits situations like: : validate env file; check environment variables; missing env vars; dotenv validation.

How do I install Env Validator in Claude Code?

Run `npx skills add Mathews-Tom/armory --skill env-validator -a claude-code`. Or copy the skill folder (skills/env-validator in Mathews-Tom/armory) into .claude/skills/env-validator in your project. Claude Code loads it when a task matches its description.

How do I install Env Validator in Codex?

Run `npx skills add Mathews-Tom/armory --skill env-validator -a codex`. Or copy the skill folder (skills/env-validator in Mathews-Tom/armory) into .agents/skills/env-validator in your project. Codex loads it when a task matches its description.

Can I use Env Validator in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Mathews-Tom/armory --skill env-validator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/env-validator, .gemini/skills/env-validator, .github/skills/env-validator and .opencode/skills/env-validator in your project.

What does Env Validator need to run?

Going by SKILL.md and its folder, Env Validator needs credentials named SECRET_KEY, API_KEY and LEGACY_API_KEY. Our summary lists: Docker; A credential in SECRET_KEY; A credential in API_KEY.

Does Env Validator access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Env Validator safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Env Validator use?

Env Validator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Env Validator use?

About 1.4k tokens (SKILL.md is roughly 5.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 637 tokens, read only when the agent opens those files.

What are the alternatives to Env Validator?

Skills that share tags, products or a category with Env Validator: Iron Proxy Gateway for NanoClaw (nanocoai/nanoclaw, 31k stars), LangBot Deployment Guide (langbot-app/LangBot, 18k stars), Add Config Env Var (baserow/baserow, 6.1k stars) and Monstermq Broker Config (vogler75/monster-mq, 142 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Env Validator?

Mathews-Tom (a GitHub user) maintains it in Mathews-Tom/armory, which has 327 GitHub stars. The repository holds 80 skills in this directory. The repository was last updated on October 6, 2026.

Source: Mathews-Tom/armory on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.