← 스킬 목록으로 돌아가기

cron-explainer

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

Explain cron expressions in plain English and Korean, compute next run times, and detect anti-patterns — zero external dependencies.

# cron # scheduler # devops # utilities # korean

기본 정보

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

⚡ AGENT INFO USK v3

Capabilities
cron_expression_parsing human_readable_schedule next_run_computation schedule_audit korean_language_support
Permissions
✗ network
✗ filesystem
✗ subprocess
Interface
type: cli   entry_point: main.py   runtime: python3   call_pattern: stdin_stdout
Agent API
# 스킬 스키마 조회 (에이전트가 호출 방법을 파악) GET /v1/agent/skills/3f8574d6-36b4-42d4-ba22-f2d8f08b9a6f/schema # 플랫폼별 자동 변환 다운로드 GET /v1/agent/skills/3f8574d6-36b4-42d4-ba22-f2d8f08b9a6f/download?platform=OpenClaw GET /v1/agent/skills/3f8574d6-36b4-42d4-ba22-f2d8f08b9a6f/download?platform=ClaudeCode GET /v1/agent/skills/3f8574d6-36b4-42d4-ba22-f2d8f08b9a6f/download?platform=ClaudeCodeAgentSkill GET /v1/agent/skills/3f8574d6-36b4-42d4-ba22-f2d8f08b9a6f/download?platform=Cursor GET /v1/agent/skills/3f8574d6-36b4-42d4-ba22-f2d8f08b9a6f/download?platform=GeminiCLI GET /v1/agent/skills/3f8574d6-36b4-42d4-ba22-f2d8f08b9a6f/download?platform=CodexCLI GET /v1/agent/skills/3f8574d6-36b4-42d4-ba22-f2d8f08b9a6f/download?platform=CustomAgent

설치 방법

호환 플랫폼: any

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

보안 검증 보고서

검증 결과 APPROVED

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

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

AI 검수 단계

검수 주체 gemini 위험도 🟢 낮음 검수 요약 Cron 표현식 분석, 다음 실행 시각 계산 및 안티패턴 감사를 수행하는 안전하고 독립적인 스킬입니다.
판단 근거

스킬 메타데이터와 코드 파일을 종합적으로 검토한 결과, 다음과 같은 판단 근거로 'approved' 및 'low' 위험 수준으로 평가합니다. 1. **Permissions 일치**: 메타데이터에 선언된 `network: false`, `filesystem: false`, `subprocess: false` 권한과 실제 코드의 동작이 완벽하게 일치합니다. 외부 네트워크 통신, 파일 시스템 접근(표준 입출력 제외), 외부 프로세스 실행 시도가 전혀 발견되지 않았습니다. 2. **악의적 코드 부재**: 코드에서 데이터 탈취, 시스템 파괴, 또는 기타 악의적인 목적을 가진 코드는 발견되지 않았습니다. 코드는 명확하고 난독화되어 있지 않으며, 스킬의 명시된 기능(cron 표현식 설명, 실행 시각 계산, 감사)만을 수행합니다. 3. **외부 통신 없음**: `requests`, `urllib`, `socket` 등 외부 통신을 위한 라이브러리나 모듈 사용이 없으며, `zoneinfo` 모듈은 Python 3.9+ 표준 라이브러리이므로 외부 통신으로 간주하지 않습니다. 4. **사용자 데이터 처리**: 스킬은 cron 표현식, 타임존, 언어 등 기능 수행에 필요한 최소한의 입력만을 받으며, 개인 식별 정보(PII)나 민감한 사용자 데이터를 수집하거나 전송하지 않습니다. 출력 데이터 또한 입력된 cron 표현식에 대한 분석 결과입니다. 5. **코드 품질 및 목적 일치**: 코드는 `main.py`를 통해 각 기능(파싱, 설명, 스케줄링, 감사)을 모듈화하여 호출하는 구조로 잘 정리되어 있습니다. 입력 유효성 검사(타입, 길이, 범위)가 `main.py`에서 이루어지고, 오류 처리 로직도 구현되어 있어 견고합니다. 'zero external dependencies'라는 설명처럼 Python 표준 라이브러리만을 사용하여 구현되어 있어 신뢰성이 높습니다. 스킬의 목적과 코드의 구현이 정확히 일치하며, 높은 품질을 보여줍니다. 정적 분석 결과 또한 'approved' 상태로, 레드 플래그, 난독화 경고, 금지된 실행 파일이 발견되지 않았음을 확인했습니다. 전반적으로 안전하고 신뢰할 수 있는 스킬로 판단됩니다.

버전 히스토리

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

사용 예시 (Examples) 7 개

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

explain_basic
# explain# basic# daily

Explain a simple daily cron expression (English + Korean). / 간단한 일일 cron 설명.

📥 입력
{
  "action": "explain",
  "expression": "0 2 * * *",
  "timezone": "Asia/Seoul"
}
📤 출력
{
  "field_breakdown": {
    "dom": {
      "en": "every day",
      "ko": "\ub9e4\uc77c",
      "raw": "*"
    },
    "dow": {
      "en": "every day of the week",
      "ko": "\ub9e4 \uc694\uc77c",
      "raw": "*"
    },
    "hour": {
      "en": "at 02:00",
      "ko": "2\uc2dc \uc815\uac01",
      "raw": "2"
    },
    "minute": {
      "en": "at minute 0",
      "ko": "0\ubd84",
      "raw": "0"
    },
    "month": {
      "en": "every month",
      "ko": "\ub9e4\uc6d4",
      "raw": "*"
    }
  },
  "human_en": "at 02:00, every day",
  "human_ko": "\ub9e4\uc77c 2\uc2dc 00\ubd84\uc5d0 \uc2e4\ud589",
  "timezone": "Asia/Seoul",
  "valid": true
}
explain_weekday
# explain# step# range# weekday

Business-hours job — every 30 min on weekdays. / 평일 업무시간 30분마다.

📥 입력
{
  "action": "explain",
  "expression": "*/30 9-17 * * 1-5",
  "lang": "both",
  "timezone": "Asia/Seoul"
}
📤 출력
{
  "human_en": "every 30 minute(s), every hour from 09:00 to 17:00, from Monday to Friday",
  "human_ko": "\uc6d4\uc694\uc77c\ubd80\ud130 \uae08\uc694\uc77c\uae4c\uc9c0\uc5d0 9\uc2dc\ubd80\ud130 17\uc2dc\uae4c\uc9c0 \ub9e4 30\ubd84\ub9c8\ub2e4 \uc2e4\ud589",
  "timezone": "Asia/Seoul",
  "valid": true
}
next_runs_basic
# next_runs# hourly

Get next 3 run times for an hourly job. / 매시간 작업의 다음 실행 시각 3개.

📥 입력
{
  "action": "next_runs",
  "count": 3,
  "expression": "0 * * * *",
  "timezone": "Asia/Seoul"
}
📤 출력
{
  "avg_interval_seconds": 3600.0,
  "expression": "0 * * * *",
  "runs": [
    {
      "human_ko": "2026\ub144 04\uc6d4 29\uc77c (\ud654) 03:00",
      "iso": "2026-04-29T03:00:00+09:00",
      "unix_ts": 1745863200
    },
    {
      "human_ko": "2026\ub144 04\uc6d4 29\uc77c (\ud654) 04:00",
      "iso": "2026-04-29T04:00:00+09:00",
      "unix_ts": 1745866800
    },
    {
      "human_ko": "2026\ub144 04\uc6d4 29\uc77c (\ud654) 05:00",
      "iso": "2026-04-29T05:00:00+09:00",
      "unix_ts": 1745870400
    }
  ],
  "timezone": "Asia/Seoul"
}
audit_spam
# audit# spam# sec

Audit a potential spam cron (* * * * *). / 스팸 가능성 있는 cron 감사.

📥 입력
{
  "action": "audit",
  "expression": "* * * * *",
  "timezone": ""
}
📤 출력
{
  "expression": "* * * * *",
  "findings": [
    {
      "code": "SEC001",
      "fix_hint": {
        "action": "change",
        "field": "minute",
        "reference": "https://crontab.guru/#*/5_*_*_*_*",
        "suggested": "*/5 * * * *  (\ub9e4 5\ubd84\ub9c8\ub2e4)"
      },
      "message": "\ub9e4 \ubd84 \uc2e4\ud589\ub429\ub2c8\ub2e4. \uc758\ub3c4\ud55c \uacbd\uc6b0\uac00 \uc544\ub2c8\ub77c\uba74 \uc11c\ubc84 \uacfc\ubd80\ud558 \uc704\ud5d8\uc774 \uc788\uc2b5\ub2c8\ub2e4.",
      "message_en": "Runs every minute. This can overload servers if unintentional.",
      "severity": "SEC"
    },
    {
      "code": "SEC002",
      "fix_hint": {
        "action": "specify",
        "field": "timezone",
        "reference": "https://en.wikipedia.org/wiki/List_of_tz_database_time_zones",
        "suggested": "Asia/Seoul"
      },
      "message": "timezone\uc774 UTC\ub85c \uc124\uc815\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4...",
      "severity": "SEC"
    }
  ],
  "summary": {
    "perf": 0,
    "sec": 2,
    "str": 1,
    "total": 3
  },
  "valid": true
}
audit_midnight_dst
# audit# dst# midnight

Audit a midnight job for DST risk. / 자정 작업의 DST 위험 감사.

📥 입력
{
  "action": "audit",
  "expression": "0 0 * * *",
  "timezone": "America/New_York"
}
📤 출력
{
  "expression": "0 0 * * *",
  "findings": [
    {
      "code": "STR004",
      "fix_hint": {
        "action": "change",
        "field": "hour",
        "reference": "https://en.wikipedia.org/wiki/Daylight_saving_time",
        "suggested": "0 0 \u2192 1 0 (01:00) \ub85c \ubcc0\uacbd\ud558\uac70\ub098 \uba85\uc2dc\uc801 timezone \uc124\uc815"
      },
      "message": "\uc790\uc815(00:00) \uc2e4\ud589\uc740 DST(\uc77c\uad11 \uc808\uc57d \uc2dc\uac04) \uc804\ud658 \uc2dc \uac74\ub108\ub6f0\uac70\ub098 \ub450 \ubc88 \uc2e4\ud589\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.",
      "severity": "STR"
    }
  ],
  "summary": {
    "perf": 0,
    "sec": 0,
    "str": 2,
    "total": 2
  },
  "valid": true
}
explain_complex
# explain# complex# comma

Complex expression with multiple comma-separated values. / 복잡한 다중 값 표현식 설명.

📥 입력
{
  "action": "explain",
  "expression": "0,30 8,12,18 1,15 * MON-FRI",
  "lang": "both",
  "timezone": "UTC"
}
📤 출력
{
  "human_en": "at minutes 0, 30, at 08:00, 12:00, 18:00, on days 1st, 15th, from Monday to Friday",
  "human_ko": "\ub9e4\uc6d4 1\uc77c, 15\uc77c\uc5d0 \uc6d4\uc694\uc77c\ubd80\ud130 \uae08\uc694\uc77c\uae4c\uc9c0\uc5d0 8\uc2dc, 12\uc2dc, 18\uc2dc 0, 30\ubd84\uc5d0 \uc2e4\ud589",
  "timezone": "UTC",
  "valid": true
}
error_invalid_expression
# error# validation

Invalid cron expression returns structured error. / 잘못된 표현식 오류 응답.

📥 입력
{
  "action": "explain",
  "expression": "99 25 * * *"
}
📤 출력
{
  "error": "Value 99 out of range [0,59] for field \u0027minute\u0027",
  "field_breakdown": null,
  "human_en": null,
  "human_ko": null,
  "timezone": "UTC",
  "valid": false
}

모든 예시는 에이전트 API로도 조회 가능: /v1/agent/skills/3f8574d6-36b4-42d4-ba22-f2d8f08b9a6f/schema

리뷰 & 평점

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

✍️ 리뷰 작성