Ue Code Authoring
JasonMa0012/MooaToon
A skill your agent uses when writing or modifying UE C++ (classes, actors, components, subsystems, interfaces, function libraries) with Rider MCP available.
Static linter for an Aeon instance's configuration that catches silent failures such as unquoted schedules, duplicate keys, unconfigured skills and broken MCP references.
$ npx skills add aeonfun/aeon --skill aeon-doctor -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install aeonfun/aeon aeon-doctor --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/aeonfun/aeon.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/aeon-doctor .claude/skills/aeon-doctor && rm -rf skills-srcUse ~/.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/
Install the "aeon-doctor" agent skill from https://github.com/aeonfun/aeon/tree/main/skills/aeon-doctor into .claude/skills/aeon-doctor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aeon-doctor", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/aeonfun/aeon/tree/main/skills/aeon-doctorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add aeonfun/aeon --skill aeon-doctor -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install aeonfun/aeon aeon-doctor --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aeonfun/aeon.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/aeon-doctor .agents/skills/aeon-doctor && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "aeon-doctor" agent skill from https://github.com/aeonfun/aeon/tree/main/skills/aeon-doctor into .agents/skills/aeon-doctor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aeon-doctor", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aeonfun/aeon --skill aeon-doctor -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install aeonfun/aeon aeon-doctor --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aeonfun/aeon.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/aeon-doctor .cursor/skills/aeon-doctor && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "aeon-doctor" agent skill from https://github.com/aeonfun/aeon/tree/main/skills/aeon-doctor into .cursor/skills/aeon-doctor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aeon-doctor", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/aeonfun/aeon.git --path skills/aeon-doctor--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add aeonfun/aeon --skill aeon-doctor -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install aeonfun/aeon aeon-doctor --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aeonfun/aeon.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/aeon-doctor .gemini/skills/aeon-doctor && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "aeon-doctor" agent skill from https://github.com/aeonfun/aeon/tree/main/skills/aeon-doctor into .gemini/skills/aeon-doctor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aeon-doctor", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install aeonfun/aeon aeon-doctorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add aeonfun/aeon --skill aeon-doctor -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/aeonfun/aeon.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/aeon-doctor .github/skills/aeon-doctor && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "aeon-doctor" agent skill from https://github.com/aeonfun/aeon/tree/main/skills/aeon-doctor into .github/skills/aeon-doctor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aeon-doctor", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aeonfun/aeon --skill aeon-doctor -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install aeonfun/aeon aeon-doctor --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aeonfun/aeon.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/aeon-doctor .opencode/skills/aeon-doctor && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "aeon-doctor" agent skill from https://github.com/aeonfun/aeon/tree/main/skills/aeon-doctor into .opencode/skills/aeon-doctor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aeon-doctor", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
aeon-doctorStatic linter for an Aeon instance's configuration that catches silent failures such as unquoted schedules, duplicate keys, unconfigured skills and broken MCP references.
This skill reads an Aeon instance's configuration before anything runs, to find mistakes that stop a skill from ever firing and leave no failed run behind. With no argument it lints the whole instance (`aeon.yml`, every `skills/*/SKILL.md` and `.mcp.json`), and given a skill slug it checks only that skill's entry and SKILL.md. It never fixes anything: it reports findings and leaves repair to the operator or `skill-repair`.
Each check is a pure local file read using grep, sort, jq and node, with no network or secrets, and one failing check never stops the others. A finding records the check, the skill, a severity, what is wrong and the exact fix. Critical means an enabled skill that will never fire or runs with the wrong privilege, while warn means a latent trap such as the same defect on a disabled skill. Findings already reported in recent logs are dropped, it notifies only on problems, and the excerpt is cut off at the first check.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit df013db. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
nodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Aeon Config Doctor loads about 3.3k tokens when it runs. Until then it costs about 65 tokens; SKILL.md has 1,438 words of instructions outside code blocks.
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.
The automated check found no risky patterns in SKILL.md.
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.
The full file from aeonfun/aeon at commit df013db, republished under its MIT licence (© aeonfun). 1,438 words, ~3,312 tokens.
.claude/skills/aeon-doctor/SKILL.md (or your agent's skills folder).${var} — scope. Empty (default) = lint the entire instance config (
aeon.yml+ everyskills/*/SKILL.md+.mcp.json). A skill slug (e.g.digest) = lint just that one skill'saeon.ymlentry and itsSKILL.md.
Today is ${today}. You are this instance's config doctor. Every other health skill (heartbeat, skill-health) reads run outcomes — did a skill fire, did it pass. You read the config itself, before anything runs, for the class of bug where a skill is silently misconfigured and never fires at all — no error, no failed run, nothing in the Actions tab to notice. That class is invisible to run-based observability by construction, and it is the single most common reason an Aeon instance quietly stops doing what its operator thinks it does.
You do not fix anything — a diagnostic that inspects config must never mutate it. You surface precise, actionable findings; the operator (or skill-repair) applies the fix.
memory/MEMORY.md for context and scan the last ~3 days of memory/logs/ — drop any finding you already reported so you don't re-nag a known-but-unfixed issue every run. (A finding is "the same" if it's the same check on the same skill.)${var}: empty → all skills; a slug → restrict every check to that skill (skip fleet-wide-only checks like duplicate-key detection unless they touch the target).grep, sort, and node (inline or node scripts/*.js). This skill is read-only, whose tool allowlist (scripts/skill_mode.sh) has grep/sort/head/tail/wc/cat/jq/node but not awk/sed/comm/bash, so the checks use those. No network, no secrets, no GitHub API. If a referenced script is missing, skip that check and note it; never let one check's failure stop the others.Each finding = {check, skill, severity, one-line what's-wrong, exact fix}. Severity:
enabled: true skill that will never fire or will run with the wrong privilege. Live breakage.schedule: on the old regex scheduler (critical / warn)Applies only when scripts/parse-aeon-config.sh is missing. With it, scheduler.yml reads aeon.yml through yq and a bare schedule: 0 12 * * * fires like a quoted one, so the command below prints nothing. Without it, scheduler.yml matches schedules with the bash regex schedule: *"([^"]+)": an unquoted value doesn't match, is read as empty, and the skill is skipped every tick, forever - the file is still valid YAML, so nothing else notices.
[ -f scripts/parse-aeon-config.sh ] || grep -nE '^\s+[a-z0-9-]+:\s*\{[^}]*schedule:' aeon.yml | grep -vE 'schedule: *"'Each printed line is an entry whose schedule: isn't double-quoted. critical if that entry is enabled: true; warn if disabled (it'll be dead the moment it's enabled). Fix: add the quotes (schedule: "0 12 * * *"), or pull upstream to get the yq scheduler.
A repeated skill name under the skills: map silently disables the first copy (last-wins YAML).
node scripts/validate-config.js # authoritative — dup keys + checkout ordering
node -e 'const k=require("fs").readFileSync("aeon.yml","utf8").match(/^ [a-z0-9-]+:/gm)||[];const c={};for(const x of k)c[x]=(c[x]||0)+1;for(const x in c)if(c[x]>1)console.log(x.trim().slice(0,-1))' # names appearing more than onceAny printed name (or a dup-key error from the validator) is a finding. critical if either copy is enabled. Fix: remove the shadow copy.
A skill with a SKILL.md but no aeon.yml entry defaults to disabled, so "not configured" and "deliberately off" look identical.
node -e 'const fs=require("fs");const k=new Set((fs.readFileSync("aeon.yml","utf8").match(/^ [a-z0-9-]+:/gm)||[]).map(x=>x.trim().slice(0,-1)));for(const d of fs.readdirSync("skills").sort())if(fs.existsSync("skills/"+d+"/SKILL.md")&&!k.has(d))console.log(d)'Each printed name exists on disk but has no config entry. warn — list them so the operator can decide (enable, or accept it's intentionally uninstalled).
SKILL.md — broken entry (critical)The inverse: an aeon.yml entry pointing at a skill dir that doesn't exist. For every enabled: true key, confirm skills/<key>/SKILL.md is present. Missing → critical (the run fails or no-ops).
requires: entry the allowlist silently drops (warn)Both list forms parse — inline (requires: [KEY?]) and block (- KEY on its own line), top-level or nested under metadata:. What still bites is the value: scripts/skill_requires.sh injects only names matching ^[A-Z][A-Z0-9_]{2,}$ (a trailing ? = "works better with" is allowed). An entry that fails the filter — lowercase, fewer than 3 chars, a leading digit, or stray punctuation — is silently dropped, so the skill declares a credential it never receives and fails or degrades with a confusing auth error.
node -e 'const fs=require("fs");for(const d of fs.readdirSync("skills")){const p="skills/"+d+"/SKILL.md";if(!fs.existsSync(p))continue;const fm=(fs.readFileSync(p,"utf8").split(/^---$/m)[1]||"").split("\n");fm.forEach((l,i)=>{const m=l.match(/^\s*requires:\s*(.*)$/);if(!m)return;let it=[];if(m[1].includes("["))it=m[1].replace(/.*\[/,"").replace(/\].*/,"").split(",");else for(let j=i+1;j<fm.length&&/^\s*-\s*/.test(fm[j]);j++)it.push(fm[j].replace(/^\s*-\s*/,"").replace(/\s*#.*/,""));for(let x of it){x=x.replace(/\s/g,"").replace(/\?$/,"");if(x&&!/^[A-Z][A-Z0-9_]{2,}$/.test(x))console.log(p+": requires entry \""+x+"\" is dropped by the allowlist filter")}})}'Flag any entry that fails the filter. warn. Fix: use the exact env-var name (uppercase, ^[A-Z][A-Z0-9_]{2,}$), with a trailing ? only to mark it optional.
mode: typo — silent write grant (critical)An unknown mode: value falls back to write, never to the safer tier. The only valid strings are read-only and write.
grep -rnE '^[[:space:]]*mode:' skills/*/SKILL.md | grep -vE ':\s*(read-only|write)\s*$'mode: is nested under metadata: (spec form), so the pattern allows leading indent. Any printed line is a typo (readonly, read only, readOnly, …) that silently grants full write / gh / git. critical — least-privilege is broken. Fix: the exact string read-only. (A skill with no mode: line is intentionally write — not a finding.)
.mcp.json unresolved ${VAR} — kills ALL MCP (warn)On the Claude harness a single ${VAR} in .mcp.json that resolves to no secret disables every MCP server that run (Skipping MCP this run.), not just the broken one. List the referenced vars so the operator can confirm each is set:
grep -oE '\$\{[A-Z0-9_]+\}' .mcp.json | sort -u # no .mcp.json = no outputReport the list as warn with the note: verify each with ./aeon secrets ls --set; any one unset silently blacks out MCP for skills that rely on it. (You can't read secret values in read-only mode — surface the vars, don't try to resolve them.)
aeon.yml entry — override ignored (warn)Per-skill model: / harness: overrides are read by a single-line grep. An entry split across lines (its { and } on different lines) takes the global default instead — no error, and the run's model= line looks normal.
grep -nE '^\s+[a-z0-9-]+:\s*\{[^}]*$' aeon.yml # opens { with no closing } on the same lineEach hit is a split entry → warn. Fix: collapse it to one inline { … } line.
schedule: / cron: in SKILL.md frontmatter (warn)Schedules live in aeon.yml only; scheduler.yml never reads SKILL.md. A schedule: / cron: line in frontmatter looks load-bearing but does nothing — a trap for anyone editing the skill.
grep -rnE '^[[:space:]]*(schedule|cron):' skills/*/SKILL.mdReport as warn (informational): these lines are inert; the real schedule is the aeon.yml entry (the pattern allows leading indent, since spec-form frontmatter nests these under metadata:).
harness: / model: override (warn)The override read (scripts/skill_entry.sh plus a quoted-value match) requires double quotes, even where the yq scheduler accepts a bare schedule:. An unquoted harness: grok or model: … is silently ignored and the skill keeps running the global default.
grep -nE '\{[^}]*(harness|model):' aeon.yml | grep -vE '(harness|model): *"'Each printed line has an unquoted override → warn. Fix: quote it (harness: "grok").
Every skill's category: must be one of core evolution basics dev crypto productivity or the catalog CI gate goes red.
node -e 'const fs=require("fs");const V=["core","evolution","basics","dev","crypto","productivity"];for(const d of fs.readdirSync("skills")){const p="skills/"+d+"/SKILL.md";if(!fs.existsSync(p))continue;const m=(fs.readFileSync(p,"utf8").split(/^---$/m)[1]||"").match(/^\s*category:\s*["\x27]?([A-Za-z-]+)/m);if(!m||!V.includes(m[1]))console.log(d+": category "+(m?m[1]:"(missing)")+" is not one of "+V.join(" "))}' # same set as scripts/check-skill-categories.shReport any offender as warn.
### <slug> — health loop can't key it (warn)CLAUDE.md mandates each skill append its daily-log entry under a ### <slug> heading — "the health loop parses this shape", and skill-health / heartbeat key skills by slug. A skill that logs under ## <Display Name> (wrong level and wrong identifier) still runs, but its narrative log is harder for the health view to attribute and for the cross-skill dedup ("read the last 3 days of logs") to match — a silent degrade, never an error.
node -e 'const fs=require("fs");const e=x=>x.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(const s of fs.readdirSync("skills")){const p="skills/"+s+"/SKILL.md";if(!fs.existsSync(p))continue;const t=fs.readFileSync(p,"utf8");if(!/memory\/logs\/\$\{today\}/.test(t))continue;if(new RegExp("###\\s+"+e(s)+"\\b").test(t))continue;const n=((t.match(/^name:\s*(.*)$/m)||[])[1]||s).trim();const h=t.match(new RegExp("^##\\s+("+e(s)+"|"+e(n)+")\\b","m"));if(h)console.log(s+" logs under \""+h[0]+"\" - should be \"### "+s+"\"")}'Each hit → warn. Fix: change the Log-section heading (the instruction line and the example block) to ### <slug>, and demote any sub-sections inside the block to ####.
./notify, most-severe first. Write the body to a scratch file and send with -f (never a long argv):./notify -f <file> \
--title "aeon-doctor: <N> config issue(s)" \
--severity <critical if any critical else warn> \
--mute-key "aeon-doctor"critical exists, lead with it — an enabled skill that never fires is the whole reason this skill exists.skill-repair / the ./aeon CLI; leave the fix to the operator.Write / Edit / git / gh.skill-health's job; live attention is heartbeat's. Stay in your lane: the static config.This skill is read-only, so the workflow's read-only guard writes its ### aeon-doctor log entry from your captured output; a self-written entry would be a duplicate. Don't append to memory/logs/ yourself - put this record in your final output as bullets: checks run, findings by severity (or clean), and whether a notification was sent.
End-states: AEON_DOCTOR_CLEAN, AEON_DOCTOR_FINDINGS, AEON_DOCTOR_ERROR.
© aeonfun, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/aeon-doctor of aeonfun/aeon.
Open the folder on GitHubat commit df013db
Aeon Config Doctor 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Aeon Config Doctor this skillaeonfun/aeon | 770 | — | ~3.3k | Automated safety check: Pass | MIT | |
| Ue Code AuthoringJasonMa0012/MooaToon | 750 | — | ~1.9k | Automated safety check: Notes | Custom licence | |
| Typescript Styletjx666/vscode-mcp | 105 | — | ~961 | Automated safety check: Pass | Custom licence | |
| Vscode MCP Architecturetjx666/vscode-mcp | 105 | — | ~1.5k | Automated safety check: Pass | Custom licence | |
| Search Firstaffaan-m/ECC | 276k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Search FirstaAAaqwq/AGI-Super-Team | 105 | 7 repos | ~1.4k | Automated safety check: Pass | MIT |
JasonMa0012/MooaToon
A skill your agent uses when writing or modifying UE C++ (classes, actors, components, subsystems, interfaces, function libraries) with Rider MCP available.
tjx666/vscode-mcp
TypeScript code style and repo conventions for VSCode MCP — inference vs explicit types, ESM import suffixes, zod schema contracts, async VSCode/Node APIs, JSON-safe IPC results, JSDoc for public…
tjx666/vscode-mcp
VSCode MCP Bridge project architecture — current monorepo layout, IPC/EventDispatcher flow, per-workspace socket discovery, MCP/CLI adapters, tool filtering, and VSCode extension services.
affaan-m/ECC
Research-before-coding workflow. An agent skill from affaan-m/ECC.
aAAaqwq/AGI-Super-Team
Research-before-coding workflow. An agent skill from aAAaqwq/AGI-Super-Team.
managedcode/dotnet-skills
Use Chrome DevTools MCP from .NET agents and .NET-focused repos to inspect, debug, and automate Chrome through an MCP client.
aeonfun/aeon
Browses open tasks on the TaskMarket agent-worker market and, with explicit operator approval, creates tasks, tracks submissions and submits finished work.
aeonfun/aeon
Sets up and manages an Aeon agent instance that runs skills on a schedule through GitHub Actions: starting, rescheduling, debugging, editing skills and mining chat history.
aeonfun/aeon
Reads a Base Account's address, portfolio and transaction history through the Base MCP server, and stays strictly read-only in unattended Aeon runs, reporting only changes.
aeonfun/aeon
Audits every page of a site each day from its sitemap, scores on-page and technical SEO, checks duplicates across pages and reports what changed since the last run.
aeonfun/aeon
5 concrete real-life actions, leverage-scored against open loops with specificity and anti-fluff gates
aeonfun/aeon
Automatically merge open PRs that have passing CI, no blocking reviews, and no conflicts
Works with
Categories
Static linter for an Aeon instance's configuration that catches silent failures such as unquoted schedules, duplicate keys, unconfigured skills and broken MCP references. This skill reads an Aeon instance's configuration before anything runs, to find mistakes that stop a skill from ever firing and leave no failed run behind.md.
Aeon Config Doctor fits situations like: checking an Aeon instance for skills that silently never run; linting one skill's config entry and its SKILL.md; finding duplicate keys or mistyped modes in aeon.yml; catching broken requires or MCP references before they cause trouble.
Run `npx skills add aeonfun/aeon --skill aeon-doctor -a claude-code`. Or copy the skill folder (skills/aeon-doctor in aeonfun/aeon) into .claude/skills/aeon-doctor in your project. Claude Code loads it when a task matches its description.
Run `npx skills add aeonfun/aeon --skill aeon-doctor -a codex`. Or copy the skill folder (skills/aeon-doctor in aeonfun/aeon) into .agents/skills/aeon-doctor in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aeonfun/aeon --skill aeon-doctor -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/aeon-doctor, .gemini/skills/aeon-doctor, .github/skills/aeon-doctor and .opencode/skills/aeon-doctor in your project.
Going by SKILL.md and its folder, Aeon Config Doctor needs the command-line tools its instructions call (node). Our summary lists: An Aeon instance with aeon.yml and a skills folder.
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.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Aeon Config Doctor is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Aeon Config Doctor: Ue Code Authoring (JasonMa0012/MooaToon, 750 stars), Typescript Style (tjx666/vscode-mcp, 105 stars), Vscode MCP Architecture (tjx666/vscode-mcp, 105 stars) and Search First (affaan-m/ECC, 276k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
aeonfun (a GitHub organization) maintains it in aeonfun/aeon, which has 770 GitHub stars. The repository holds 82 skills in this directory. The repository was last updated on October 10, 2026.
Source: aeonfun/aeon on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.