← 스킬 목록으로 돌아가기

env-config-validator

v1.0.0 approved Development ⬇ 1 ↑ 1/7일 오늘 업데이트
USK v3 ✅ Verified ⚡ Auto-Convert
⬇ 다운로드
설치 가이드↓
🤖 에이전트용 설치 명령 (curl / MCP / Claude Desktop)
▸ curl 한 줄 다운로드
curl -L -o env-config-validator.skill   "https://aiskillstore.io/v1/agent/skills/f947038d-3340-4473-9deb-5e4a9503bba1/download?platform=ClaudeCode"
▸ MCP 도구 호출 (Skill Store MCP 등록 시)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "f947038d-3340-4473-9deb-5e4a9503bba1",
    "platform": "ClaudeCode"
  }
}
▸ Claude Desktop / Cursor MCP 설정 (1회)
{
  "mcpServers": {
    "skill-store": {
      "url": "https://aiskillstore.io/mcp/"
    }
  }
}
📖 에이전트용 전체 API 가이드: /llms.txt  ·  MCP server card

.env file validator with 4 actions: validate, infer_schema, mask, audit. Zero external dependencies, Korean-first messages, sensitive key auto-masking, 10+ audit rules.

# env # dotenv # validation # security # masking # ci-cd # devops # configuration

기본 정보

소유자 👤 aiskillstore-team 카테고리 Development 등록일 2026-04-30 최종 업데이트 2026-04-30 최신 버전 1.0.0 패키지 날짜 2026-04-30 검증 상태 approved 다운로드 수 1회 체크섬 (SHA256) 7f4677a49d76ffee164f387693fb38a426a59bb7393e23692bfc0b6b71a5f925

⚡ AGENT INFO USK v3

Capabilities
env_validation env_schema_inference sensitive_key_masking env_security_audit dotenv_parsing
Permissions
✗ network
✗ filesystem
✗ subprocess
Interface
type: cli   entry_point: main.py   runtime: python3   call_pattern: stdin_stdout
Agent API
# 스킬 스키마 조회 (에이전트가 호출 방법을 파악) GET /v1/agent/skills/f947038d-3340-4473-9deb-5e4a9503bba1/schema # 플랫폼별 자동 변환 다운로드 GET /v1/agent/skills/f947038d-3340-4473-9deb-5e4a9503bba1/download?platform=OpenClaw GET /v1/agent/skills/f947038d-3340-4473-9deb-5e4a9503bba1/download?platform=ClaudeCode GET /v1/agent/skills/f947038d-3340-4473-9deb-5e4a9503bba1/download?platform=ClaudeCodeAgentSkill GET /v1/agent/skills/f947038d-3340-4473-9deb-5e4a9503bba1/download?platform=Cursor GET /v1/agent/skills/f947038d-3340-4473-9deb-5e4a9503bba1/download?platform=GeminiCLI GET /v1/agent/skills/f947038d-3340-4473-9deb-5e4a9503bba1/download?platform=CodexCLI GET /v1/agent/skills/f947038d-3340-4473-9deb-5e4a9503bba1/download?platform=CustomAgent

설치 방법

호환 플랫폼: any

1
openclaw_skill_manager.py로 스킬을 설치합니다.
python openclaw_skill_manager.py --install env-config-validator
2
설치 확인
python openclaw_skill_manager.py --list-installed
3
특정 버전 설치 (선택)
python openclaw_skill_manager.py --install env-config-validator --version 1.0.0
1
스킬 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/skills/f947038d-3340-4473-9deb-5e4a9503bba1/download
2
Claude Code commands 디렉터리에 배치합니다.
unzip env-config-validator.skill -d ~/.claude/commands/env-config-validator/
3
Claude Code에서 슬래시 커맨드로 사용합니다.
/env-config-validator
1
Agent Skills 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/f947038d-3340-4473-9deb-5e4a9503bba1/download?platform=ClaudeCodeAgentSkill
2
Claude Code skills 디렉터리에 압축을 해제합니다.
unzip env-config-validator-agent-skill-*.skill -d ~/.claude/skills/env-config-validator/
3
Claude Code를 재시작하면 세션 시작 시 자동으로 로드됩니다. 슬래시 커맨드 없이 자연어로 사용 가능합니다.
1
Cursor 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/f947038d-3340-4473-9deb-5e4a9503bba1/download?platform=Cursor
2
압축 해제 후 영구 위치에 저장합니다.
unzip env-config-validator-cursor-*.skill -d ~/.cursor/skills/env-config-validator/
3
.cursor/mcp.json에 MCP 서버 설정을 추가하고 Cursor를 재시작합니다.
cat ~/.cursor/skills/env-config-validator/cursor_mcp_config.json
1
Gemini CLI 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/f947038d-3340-4473-9deb-5e4a9503bba1/download?platform=GeminiCLI
2
압축 해제 후 영구 위치에 저장합니다.
unzip env-config-validator-geminicli-*.skill -d ~/.gemini/skills/env-config-validator/
3
~/.gemini/settings.json에 MCP 서버 설정을 추가하고 Gemini CLI를 재시작합니다.
cat ~/.gemini/skills/env-config-validator/gemini_settings_snippet.json
1
Codex CLI 변환 패키지를 다운로드합니다.
curl -O https://aiskillstore.io/v1/agent/skills/f947038d-3340-4473-9deb-5e4a9503bba1/download?platform=CodexCLI
2
압축 해제 후 영구 위치에 저장합니다.
unzip env-config-validator-codexcli-*.skill -d ~/.codex/skills/env-config-validator/
3
~/.codex/config.toml에 MCP 서버 설정을 추가하고 Codex CLI를 재시작합니다.
cat ~/.codex/skills/env-config-validator/codex_config_snippet.toml
1
REST API로 스킬 패키지를 다운로드합니다.
GET https://aiskillstore.io/v1/skills/f947038d-3340-4473-9deb-5e4a9503bba1/download
2
에이전트 플랫폼의 skills 디렉터리에 배치합니다.
cp env-config-validator.skill ./skills/
3
설치 가이드 API로 플랫폼별 상세 정보를 조회합니다.
GET https://aiskillstore.io/v1/skills/f947038d-3340-4473-9deb-5e4a9503bba1/install-guide?platform=CustomAgent

보안 검증 보고서

검증 결과 APPROVED

검사 결과: ["메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'changelog' (SKILL.md v2 권장)"]

✅ 보안 위험 항목이 발견되지 않았습니다.

AI 검수 단계

검수 주체 gemini 위험도 🟢 낮음 검수 요약 .env 파일 검증 및 감사 스킬로, 선언된 권한을 준수하며 악의적인 동작이 없습니다.
판단 근거

스킬 메타데이터와 제공된 코드 파일을 종합적으로 분석한 결과, 다음과 같은 판단을 내렸습니다: 1. **권한 일치 여부**: 스킬 메타데이터에 `network: false`, `filesystem: false`, `subprocess: false`로 명확하게 선언되어 있습니다. 코드(`main.py`, `lib` 하위 모듈)를 검토한 결과, 네트워크 통신, 파일 시스템 접근, 외부 프로세스 실행과 관련된 어떠한 코드도 발견되지 않았습니다. `sys.stdin`과 `sys.stdout`만을 사용하여 입출력을 처리하며, 이는 선언된 `call_pattern: stdin_stdout`과 완벽하게 일치합니다. 따라서 선언된 권한과 실제 코드가 일치합니다. 2. **악의적 목적 코드**: 코드 내에서 사용자 데이터를 탈취하거나 시스템을 파괴하려는 의도를 가진 코드는 발견되지 않았습니다. 모든 작업은 입력으로 받은 `.env` 문자열 내용에 대해서만 수행되며, 결과는 `stdout`으로 반환됩니다. 난독화된 코드도 없으며, 정적 분석 결과에서도 악의적인 플래그나 난독화 경고가 없었습니다. 3. **선언되지 않은 외부 통신**: `permissions.network`가 `false`로 설정되어 있으며, 코드에서도 `socket`, `requests`, `urllib` 등 네트워크 관련 모듈의 사용 흔적이 전혀 없습니다. 외부 통신은 발생하지 않습니다. 4. **사용자 데이터 무단 수집/전송**: 스킬은 입력으로 받은 `.env` 내용을 처리하고 결과를 `stdout`으로 반환할 뿐, 어떠한 외부로도 데이터를 전송하지 않습니다. 특히 'mask' 액션은 민감한 정보를 마스킹하여 보안을 강화하는 기능을 제공하며, 이는 데이터 보호에 대한 스킬의 의도를 보여줍니다. 5. **코드 품질 및 목적 일치**: 코드는 `main.py`와 `lib` 패키지 내의 여러 모듈로 잘 분리되어 있으며, 각 모듈은 명확한 역할을 수행합니다. `.env` 파일 파싱, 검증, 스키마 추론, 마스킹, 감사 등 스킬의 설명에 명시된 모든 기능이 충실하게 구현되어 있습니다. 한국어 우선 메시지 지원도 명시된 대로 잘 반영되어 있습니다. 코드 가독성도 높아 품질이 양호합니다. 정적 분석 결과 또한 'approved' 상태로, 어떠한 위험 요소도 발견되지 않았음을 확인했습니다. 전반적으로 이 스킬은 안전하며, 선언된 기능을 신뢰할 수 있게 수행합니다.

버전 히스토리

버전 USK v3 검증 상태 패키지 날짜 다운로드 변경사항
v1.0.0 approved 2026-04-30 ⬇ 1

사용 예시 (Examples) 6 개

이 스킬의 대표적인 입출력 예시입니다. 에이전트는 이 예시를 보고 스킬 호출 방법과 결과 형태를 이해할 수 있습니다.

validate_success
# validate# success

유효한 .env 검증 성공 예시 / Successful validation of a valid .env file

📥 입력
{
  "action": "validate",
  "env_content": "DATABASE_URL=postgresql://user:pass@localhost/db\nPORT=8080\nDEBUG=false\n",
  "schema": {
    "keys": [
      {
        "name": "DATABASE_URL",
        "required": true,
        "type": "url"
      },
      {
        "name": "PORT",
        "required": true,
        "type": "integer"
      },
      {
        "name": "DEBUG",
        "required": false,
        "type": "bool"
      }
    ]
  }
}
📤 출력
{
  "action": "validate",
  "extras": [],
  "invalid": [],
  "missing": [],
  "valid": true
}
validate_missing_required
# validate# missing# error

필수 키 누락 검증 실패 예시 / Validation failure due to missing required key

📥 입력
{
  "action": "validate",
  "env_content": "PORT=8080\nDEBUG=true\n",
  "schema": {
    "keys": [
      {
        "name": "DATABASE_URL",
        "required": true,
        "type": "url"
      },
      {
        "name": "PORT",
        "required": true,
        "type": "integer"
      }
    ]
  }
}
📤 출력
{
  "action": "validate",
  "extras": [],
  "invalid": [],
  "missing": [
    "DATABASE_URL"
  ],
  "valid": false
}
validate_type_error
# validate# type-error

타입 오류 검증 예시 / Validation with type error

📥 입력
{
  "action": "validate",
  "env_content": "PORT=notanumber\nDEBUG=maybe\n",
  "schema": {
    "keys": [
      {
        "name": "PORT",
        "required": true,
        "type": "integer"
      },
      {
        "name": "DEBUG",
        "required": false,
        "type": "bool"
      }
    ]
  }
}
📤 출력
{
  "action": "validate",
  "extras": [],
  "invalid": [
    {
      "fix_hint": {
        "action": "update",
        "field": "PORT",
        "reference": "type: integer requires a whole number value",
        "suggested": "8080"
      },
      "key": "PORT",
      "reason": "\uc815\uc218 \ud0c0\uc785\uc774 \uc544\ub2d9\ub2c8\ub2e4 / Value is not a valid integer"
    },
    {
      "fix_hint": {
        "action": "update",
        "field": "DEBUG",
        "reference": "Accepted bool values: true, false, 1, 0, yes, no, on, off",
        "suggested": "false"
      },
      "key": "DEBUG",
      "reason": "bool \ud0c0\uc785\uc774 \uc544\ub2d9\ub2c8\ub2e4 / Value is not a valid boolean (true/false/1/0/yes/no)"
    }
  ],
  "missing": [],
  "valid": false
}
infer_schema
# infer_schema# auto-detect

샘플 .env에서 스키마 자동 추론 / Auto-infer schema from sample .env

📥 입력
{
  "action": "infer_schema",
  "env_content": "DATABASE_URL=postgresql://user:pass@localhost/mydb\nPORT=5432\nDEBUG=false\nADMIN_EMAIL=admin@example.com\nSECRET_KEY=s3cr3t!xK9\n"
}
📤 출력
{
  "action": "infer_schema",
  "key_count": 5,
  "schema": {
    "keys": [
      {
        "name": "DATABASE_URL",
        "required": false,
        "sensitive": false,
        "type": "url"
      },
      {
        "name": "PORT",
        "required": false,
        "sensitive": false,
        "type": "integer"
      },
      {
        "name": "DEBUG",
        "required": false,
        "sensitive": false,
        "type": "bool"
      },
      {
        "name": "ADMIN_EMAIL",
        "required": false,
        "sensitive": false,
        "type": "email"
      },
      {
        "name": "SECRET_KEY",
        "required": false,
        "sensitive": true,
        "type": "string"
      }
    ]
  }
}
mask_sensitive
# mask# sensitive# security

민감 키 자동 마스킹 / Auto-mask sensitive key values

📥 입력
{
  "action": "mask",
  "env_content": "API_KEY=sk-abc123xyz\nDATABASE_URL=postgresql://user:secret@localhost/db\nAPP_NAME=myapp\nPASSWORD=hunter2\nPORT=3000\n"
}
📤 출력
{
  "action": "mask",
  "masked_content": "API_KEY=***MASKED***\nDATABASE_URL=postgresql://user:secret@localhost/db\nAPP_NAME=myapp\nPASSWORD=***MASKED***\nPORT=3000\n",
  "masked_keys": [
    "API_KEY",
    "PASSWORD"
  ]
}
audit_security_issues
# audit# security# quality

보안 및 품질 감사 예시 / Security and quality audit example

📥 입력
{
  "action": "audit",
  "env_content": "PASSWORD=123456\nAPI_KEY=\nDATABASE_URL=http://prod-db/mydb\nPORT=3000\nPORT=3001\nSECRET_KEY=dev-secret\n  TRAILING_KEY =value\n"
}
📤 출력
{
  "action": "audit",
  "issues": [
    {
      "category": "SEC",
      "fix_hint": "Use a strong random password or reference a secrets manager",
      "key": "PASSWORD",
      "message": "\ud3c9\ubb38 \ud328\uc2a4\uc6cc\ub4dc\uac00 \ub108\ubb34 \ub2e8\uc21c\ud569\ub2c8\ub2e4 (\uc5d4\ud2b8\ub85c\ud53c \ub0ae\uc74c) / Plaintext password has low entropy",
      "rule": "SEC-001",
      "severity": "error"
    },
    {
      "category": "SEC",
      "fix_hint": "Switch to HTTPS/TLS connection URL",
      "key": "DATABASE_URL",
      "message": "\ud504\ub85c\ub355\uc158 \ud658\uacbd\uc5d0\uc11c HTTP URL \uc0ac\uc6a9 \uac10\uc9c0 / HTTP URL detected in what may be a production config",
      "rule": "SEC-002",
      "severity": "warning"
    },
    {
      "category": "QUAL",
      "fix_hint": "Provide a valid value or remove the key if unused",
      "key": "API_KEY",
      "message": "\ud544\uc218\ucc98\ub7fc \ubcf4\uc774\ub294 \ud0a4\uac00 \ube48 \uac12\uc785\ub2c8\ub2e4 / Key appears important but has an empty value",
      "rule": "QUAL-001",
      "severity": "error"
    },
    {
      "category": "QUAL",
      "fix_hint": "Remove duplicate definition; the last value wins in most parsers",
      "key": "PORT",
      "message": "\uc911\ubcf5 \ud0a4\uac00 \uac10\uc9c0\ub418\uc5c8\uc2b5\ub2c8\ub2e4 / Duplicate key detected",
      "rule": "QUAL-002",
      "severity": "warning"
    },
    {
      "category": "STR",
      "fix_hint": "Remove surrounding whitespace from key name",
      "key": "TRAILING_KEY",
      "message": "\ud0a4 \uc774\ub984\uc5d0 \uc55e\ub4a4 \uacf5\ubc31\uc774 \uc788\uc2b5\ub2c8\ub2e4 / Key name has leading/trailing whitespace",
      "rule": "STR-001",
      "severity": "info"
    }
  ],
  "score": 32
}

모든 예시는 에이전트 API로도 조회 가능: /v1/agent/skills/f947038d-3340-4473-9deb-5e4a9503bba1/schema

리뷰 & 평점

아직 리뷰가 없습니다. 첫 번째 리뷰를 남겨보세요!

✍️ 리뷰 작성