aeon-doctor

Lints Aeon instance configuration files to detect silent misconfigurations before skills run.

714|255|Updated Mar 4, 2026
One-click install
npx skills add https://github.com/aaronjmars/aeon --skill aeon-doctor
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: aeon-doctor
Source: https://github.com/aaronjmars/aeon/tree/main/skills/aeon-doctor
Command: npx skills add https://github.com/aaronjmars/aeon --skill aeon-doctor

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Skills in an Aeon instance can be silently misconfigured — unquoted cron schedules, duplicate YAML keys, mode typos, or broken requires entries — so they never fire at all, with no error and no failed run visible anywhere. Run-based health checks cannot see this class of bug because nothing ever executes.

Core Features & Use Cases

  • Static config linting: Runs 12 read-only checks over aeon.yml, every skills/*/SKILL.md, and .mcp.json using grep, awk, and local validation scripts.
  • Severity-ranked findings: Classifies issues as critical (an enabled skill that will never fire or runs with wrong privilege) or warn (latent traps), each with the exact file, line, and a copy-pasteable fix.
  • Scoped or fleet-wide audits: Lint the whole instance by default, or pass a skill slug to inspect just one skill's config entry and SKILL.md.
  • Use Case: An operator notices a daily digest skill has not posted in a week. Running this linter reveals the schedule value in aeon.yml is unquoted, so the scheduler regex never matches it — a one-character fix.

Quick Start

Ask the agent to run aeon-doctor to lint the entire instance configuration and report any silent misconfigurations with their exact fixes.

Frequently Asked Questions about aeon-doctor

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find why a scheduled skill never runs?

Run a static config lint over aeon.yml and the skill's SKILL.md. The most common cause is an unquoted schedule value, which the scheduler's regex reads as empty so the skill is skipped every tick while the YAML stays valid.

What config errors does a YAML linter for scheduled skills catch?

It catches unquoted cron schedules, duplicate skill keys, skills on disk with no config entry, enabled entries missing SKILL.md, invalid requires values, mode typos that silently grant write access, unresolved .mcp.json variables, and multi-line entries that ignore overrides.

Can I lint just one skill's configuration instead of the whole instance?

Yes. Pass the skill's slug as the var parameter to restrict every check to that skill's aeon.yml entry and SKILL.md. Fleet-wide checks like duplicate-key detection are skipped unless they touch the target skill.

Does the config linter modify or fix files automatically?

No. It is strictly read-only by contract and never mutates config, runs git, or opens pull requests. It reports each finding with the exact file, line, and a copy-pasteable fix for the operator or a repair skill to apply.

Why does a mode typo in SKILL.md matter for security?

An unrecognized mode value falls back to write rather than a safer tier, silently granting full write, git, and gh access. Only the exact strings read-only and write are valid, so typos like readonly break least-privilege without any error.