Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

cronlint

v1.0.1

Scheduled task & cron job anti-pattern analyzer -- detects overlapping execution risks, timezone scheduling errors, missing error recovery, resource contenti...

0· 74·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for suhteevah/cronlint.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "cronlint" (suhteevah/cronlint) from ClawHub.
Skill page: https://clawhub.ai/suhteevah/cronlint
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required binaries: git, bash, python3, jq
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install cronlint

ClawHub CLI

Package manager switcher

npx clawhub@latest install cronlint
Security Scan
Capability signals
Requires sensitive credentials
These labels describe what authority the skill may exercise. They are separate from suspicious or malicious moderation verdicts.
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description match the code and SKILL.md: scripts implement a local, regex-based static analyzer for scheduling anti-patterns. Required binaries (git, bash, python3, jq) and the lefthook brew install are reasonable for scanning code, parsing JSON, and integrating git hooks.
Instruction Scope
SKILL.md instructs the agent to run the provided dispatcher/scan scripts and to use lefthook for git-hook integration. The scripts operate on repository files (with .git, node_modules, and common vendor paths skipped) and do not attempt network calls or data exfiltration. The license flow reads a local config (~/.openclaw/openclaw.json) or env var, which is documented in SKILL.md.
Install Mechanism
Install spec only asks to install the well-known 'lefthook' brew formula to enable git-hook integration. No downloads from arbitrary URLs or extract/execute steps are present.
Credentials
Primary credential is CRONLINT_LICENSE_KEY which matches the described pro/team license flow. The license module also optionally reads ~/.openclaw/openclaw.json (declared in metadata) and will use CLAWHUB_JWT_SECRET if present to verify signatures — CLAWHUB_JWT_SECRET is not documented in SKILL.md but is optional and used only for local JWT verification. No unrelated secrets (AWS, GitHub tokens, etc.) are requested.
Persistence & Privilege
always:false and disable-model-invocation:false (normal). The skill can optionally install lefthook git hooks into a repository (writes/updates lefthook.yml and runs lefthook install), which modifies repo configuration — this is expected for a tool that offers pre-commit/pre-push scanning. It does not persistently modify other skills or system-wide agent settings.
Assessment
CronLint appears coherent: it runs entirely locally, scans repository files for scheduling anti-patterns, and uses lefthook to install git hooks if you opt in. Before installing, consider: (1) lefthook install will add/modify git hook configuration in your repo (it can be uninstalled with the provided hooks uninstall command); (2) the Pro/Team features require a license key (CRONLINT_LICENSE_KEY) which the skill will read from the environment or from ~/.openclaw/openclaw.json — only provide keys you trust; (3) an undocumented optional env var (CLAWHUB_JWT_SECRET) may be used locally to verify license signatures if present — you do not need to set it for normal use; (4) the scanner runs grep/regexes across your codebase (skipping common vendor paths) and will exit non-zero on poor scores, which can block commits if you enable hooks. If those behaviours are acceptable, the skill is consistent with its stated purpose.
!
scripts/patterns.sh:237
File read combined with network send (possible exfiltration).
About static analysis
These patterns were detected by automated regex scanning. They may be normal for skills that integrate with external APIs. Check the VirusTotal and OpenClaw results above for context-aware analysis.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

Clawdis
OSmacOS · Linux · Windows
Binsgit, bash, python3, jq
Primary envCRONLINT_LICENSE_KEY

Install

Install lefthook (git hooks manager)
Bins: lefthook
brew install lefthook
latestvk97e5jd5k2pv4tkxdbpgfwrt4n84tgva
74downloads
0stars
2versions
Updated 1w ago
v1.0.1
MIT-0
macOS, Linux, Windows

CronLint -- Scheduled Task & Cron Job Anti-Pattern Analyzer

CronLint scans codebases for scheduled task and cron job anti-patterns: overlapping execution risks, timezone scheduling errors, missing error recovery, resource contention, lifecycle management issues, and observability gaps. It uses regex-based pattern matching against 90 scheduling-specific patterns across 6 categories, lefthook for git hook integration, and produces markdown reports with actionable remediation guidance. 100% local. Zero telemetry.

Note: CronLint focuses on cron jobs, schedulers (node-cron, APScheduler, Quartz, Celery beat, Bull/BullMQ), setInterval/setTimeout scheduling, Kubernetes CronJobs, and periodic task code. It detects anti-patterns in scheduling logic, not HTTP cron endpoints.

Commands

Free Tier (No license required)

cronlint scan [file|directory]

One-shot scheduling quality scan of files or directories.

How to execute:

bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [target]

What it does:

  1. Accepts a file path or directory (defaults to current directory)
  2. Discovers all source files (skips .git, node_modules, binaries, images, .min.js)
  3. Runs 30 scheduling patterns against each file (free tier limit)
  4. Calculates a scheduling quality score (0-100) per file and overall
  5. Grades: A (90-100), B (80-89), C (70-79), D (60-69), F (<60)
  6. Outputs findings with: file, line number, check ID, severity, description, recommendation
  7. Exit code 0 if score >= 70, exit code 1 if scheduling quality is poor
  8. Free tier limited to first 30 patterns (OE + TZ categories)

Example usage scenarios:

  • "Scan my code for cron job issues" -> runs cronlint scan .
  • "Check this file for scheduling anti-patterns" -> runs cronlint scan src/scheduler.ts
  • "Find overlapping cron execution risks" -> runs cronlint scan src/
  • "Audit timezone handling in scheduled tasks" -> runs cronlint scan .
  • "Check for missing error handling in cron jobs" -> runs cronlint scan .

Pro Tier ($19/user/month -- requires CRONLINT_LICENSE_KEY)

cronlint scan --tier pro [file|directory]

Extended scan with 60 patterns covering overlap, timezone, error recovery, and resource contention.

How to execute:

bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [target] --tier pro

What it does:

  1. Validates Pro+ license
  2. Runs 60 scheduling patterns (OE, TZ, ER, RC categories)
  3. Detects missing error recovery and retry logic in scheduled jobs
  4. Identifies resource contention: every-minute crons, unbounded queries, no rate limiting
  5. Full category breakdown reporting

cronlint scan --format json [directory]

Generate JSON output for CI/CD integration.

bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --format json

cronlint scan --format html [directory]

Generate HTML report for browser viewing.

bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --format html

cronlint scan --category OE [directory]

Filter scan to a specific check category (OE, TZ, ER, RC, LM, OB).

bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --category OE

Team Tier ($39/user/month -- requires CRONLINT_LICENSE_KEY with team tier)

cronlint scan --tier team [directory]

Full scan with all 90 patterns across all 6 categories including lifecycle and observability.

How to execute:

bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --tier team

What it does:

  1. Validates Team+ license
  2. Runs all 90 patterns across 6 categories
  3. Includes lifecycle management checks (graceful shutdown, orphaned tasks, stale entries)
  4. Includes observability checks (missing metrics, no duration logging, no alerting)
  5. Full category breakdown with per-file results

cronlint scan --verbose [directory]

Verbose output showing every matched line and pattern details.

bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --verbose

cronlint status

Show license and configuration information.

bash "<SKILL_DIR>/scripts/dispatcher.sh" status

cronlint patterns

List all detection patterns with their IDs, severities, and descriptions.

bash "<SKILL_DIR>/scripts/dispatcher.sh" patterns

Check Categories

CronLint detects 90 scheduled task anti-patterns across 6 categories:

CategoryCodePatternsDescriptionSeverity Range
Overlapping ExecutionOE15Missing locks, concurrent runs, no mutex, no pid file checklow -- critical
Timezone & SchedulingTZ15Hardcoded TZ, DST risks, UTC confusion, midnight pitfallslow -- high
Error & RecoveryER15No try/catch, missing retry, silent failure, no dead letter queuelow -- critical
Resource ContentionRC15Every-minute cron, no rate limit, unbounded queries, memory risklow -- critical
Lifecycle ManagementLM15No graceful shutdown, orphaned tasks, stale entries, no health checklow -- high
ObservabilityOB15No duration logging, no metrics, no alerting, no execution historylow -- high

Tier-Based Pattern Access

TierPatternsCategories
Free30OE, TZ
Pro60OE, TZ, ER, RC
Team90OE, TZ, ER, RC, LM, OB
Enterprise90OE, TZ, ER, RC, LM, OB + priority support

Scoring

CronLint uses a deductive scoring system starting at 100 (perfect):

SeverityPoint DeductionDescription
Critical-25 per findingSevere risk (overlapping execution, silent failure, resource abuse)
High-15 per findingSignificant problem (missing locks, DST scheduling, no error handling)
Medium-8 per findingModerate concern (hardcoded TZ, missing retry, no rate limiting)
Low-3 per findingInformational / best practice suggestion

Grading Scale

GradeScore RangeMeaning
A90-100Excellent scheduling quality
B80-89Good scheduling with minor issues
C70-79Acceptable but needs improvement
D60-69Poor scheduling quality
FBelow 60Critical scheduling problems
  • Pass threshold: 70 (Grade C or better)
  • Exit code 0 = pass (score >= 70)
  • Exit code 1 = fail (score < 70)

Configuration

Users can configure CronLint in ~/.openclaw/openclaw.json:

{
  "skills": {
    "entries": {
      "cronlint": {
        "enabled": true,
        "apiKey": "YOUR_LICENSE_KEY_HERE",
        "config": {
          "severityThreshold": "medium",
          "ignorePatterns": ["**/test/**", "**/fixtures/**", "**/*.test.*"],
          "ignoreChecks": [],
          "reportFormat": "text"
        }
      }
    }
  }
}

Important Notes

  • Free tier works immediately with no configuration
  • All scanning happens locally -- no code is sent to external servers
  • License validation is offline -- no phone-home or network calls
  • Pattern matching only -- no AST parsing, no external dependencies beyond bash
  • Supports scanning all file types in a single pass
  • Git hooks use lefthook which must be installed (see install metadata above)
  • Exit codes: 0 = pass (score >= 70), 1 = fail (for CI/CD integration)
  • Output formats: text (default), json, html

Error Handling

  • If lefthook is not installed and user tries hooks, prompt to install it
  • If license key is invalid or expired, show clear message with link to https://cronlint.pages.dev/renew
  • If a file is binary, skip it automatically with no warning
  • If no scannable files found in target, report clean scan with info message
  • If an invalid category is specified with --category, show available categories

When to Use CronLint

The user might say things like:

  • "Scan my code for cron job issues"
  • "Check my scheduled task logic"
  • "Find overlapping execution risks"
  • "Detect timezone problems in schedulers"
  • "Are there any cron anti-patterns?"
  • "Check for missing error handling in cron jobs"
  • "Audit my scheduling architecture"
  • "Find resource contention in batch jobs"
  • "Check for missing job observability"
  • "Scan for graceful shutdown issues"
  • "Run a scheduling quality audit"
  • "Generate a cron health report"
  • "Check if my jobs have overlap protection"
  • "Find silent failure patterns in scheduled tasks"
  • "Check my code for DST scheduling vulnerabilities"

Comments

Loading comments...