Agent skill

Action Converter

by aeonfun in aeonfun/aeon

5 concrete real-life actions, leverage-scored against open loops with specificity and anti-fluff gates

MITAuto-check passed

Install Action Converter

skills CLI
$ npx skills add aeonfun/aeon --skill action-converter -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install aeonfun/aeon action-converter --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/aeonfun/aeon.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/action-converter .claude/skills/action-converter && rm -rf skills-src

Use ~/.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/

Facts

Skill name
action-converter
GitHub stars
767
Token cost
~2.5k tokens
SKILL.md length
1,220 words
Files
1
Skills in repo
82
Repo updated
First seen
Licence
MIT

At a glance

5 concrete real-life actions, leverage-scored against open loops with specificity and anti-fluff gates

  • Works in 7 steps: Detect mode → Extract open loops → Score loops → …
  • SKILL.md covers Steps and Network note
  • Calls gh and go

What it does

Action Converter is an agent skill from aeonfun/aeon. 5 concrete real-life actions, leverage-scored against open loops with specificity and anti-fluff gates

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: The most autonomous AI agent framework: runs unattended on GitHub Actions, self-healing skills, drives Claude Code, Grok, Codex & more. No approval loops. Configure once, forget… The licence is MIT.

Example prompts

  • “/action-converter”

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Detect mode
  2. Extract open loops
  3. Score loops
  4. Convert loops to actions
  5. Compose the output
  6. Send via ./notify
  7. Log to memory/logs/${today}.md

What it can do on your machine

Read from SKILL.md and the folder at commit c0cb7c4. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • go

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Action Converter loads about 2.5k tokens when it runs. Until then it costs about 30 tokens; SKILL.md has 1,220 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~30
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from aeonfun/aeon at commit c0cb7c4, republished under its MIT licence (© aeonfun). 1,220 words, ~2,453 tokens.

Download SKILL.mdSave it as .claude/skills/action-converter/SKILL.md (or your agent's skills folder).
name
action-converter
description
5 concrete real-life actions, leverage-scored against open loops with specificity and anti-fluff gates
metadata.title
Action Converter
metadata.category
basics
metadata.tags
meta
<!-- autoresearch: variation B — sharper output via specificity gates, leverage scoring, banned-phrase lint, open-loop anchoring, empty-state taxonomy -->

${var} — Optional focus area (e.g. health, networking, learning, shipping, crypto, repo). If empty, covers all areas. Treated as a tiebreaker, not a hard filter.

Read memory/MEMORY.md for stated goals, "Next Priorities", tracked items, and current topics. Read the last 7 days of memory/logs/ for recent activity, patterns, and what's already been suggested or done. Read memory/topics/ (every file) for active threads. Read memory/cron-state.json for failing or stuck skills. Read memory/watched-repos.md for repos under attention. Read output/articles/ (last 7 days, filenames only — peek at the 2 most recent for theme). If soul/SOUL.md exists, read it for identity, voice, focus areas. Run gh pr list --state open --limit 20 --json number,title,createdAt,isDraft,reviewDecision,headRefName 2>/dev/null to get open PRs (used to anchor "ship" / "review" / "merge" loops).

Graceful bootstrap — each of the reads above may be missing on cold starts. For every source, if the file/directory is missing or empty (including memory/topics/*.md, memory/cron-state.json, and gh pr list returning empty or erroring), skip it and record BOOTSTRAP: <resource> not yet populated in the run's working notes. Continue with whatever signals are available — the skill must degrade gracefully, never fail. If every single source is empty, fall through to the ACTION_CONVERTER_NO_CONTEXT mode below.

Steps

1. Detect mode

Decide which exit mode this run will produce based on context volume:

  • ACTION_CONVERTER_NO_CONTEXT — if BOTH memory/logs/ has 0 entries AND memory/MEMORY.md is the unmodified template (matches "Last consolidated: never" AND "Configure notification channels"). Notify the operator and stop — do not invent actions out of thin air.
  • ACTION_CONVERTER_BOOTSTRAP — if memory/logs/ has <3 distinct dates in the last 14 days OR memory/MEMORY.md "Next Priorities" still contains template entries ("Configure notification channels", "Run first digest"). Switch the action pool to setup-completion actions: enable specific skills in aeon.yml, configure missing notification secrets, run the first digest, populate memory/topics/ for the first tracked thread, etc. These are still real, named, completable actions — not generic onboarding advice.
  • ACTION_CONVERTER_OK — otherwise. Use the full leverage-scored loop pipeline below.
2. Extract open loops

Build a single deduped list of named open loops from every source above. A loop is a specific in-flight thing, not an area. Each loop captures at minimum: id (short slug), text (one phrase), source (where it came from), age_days, urgency_signal (deadline / blocker / stalled / fresh).

Sources to mine:

  • Open PRs — every entry from gh pr list. Loop text: PR #N: <title> with urgency = stalled if >3 days old or review_decision is REQUEST_CHANGES.
  • MEMORY.md "Next Priorities" — each bullet becomes a loop. Skip template lines.
  • memory/topics/*.md — for each topic file, scan for headings or bullets that look like ongoing work (TODO, WIP, "In progress", "Tracking", trailing question marks, dated items in the last 30 days).
  • memory/cron-state.json — every skill with consecutive_failures > 0 OR last_status != success becomes a loop: fix <skill>. Urgency = blocker if consecutive_failures ≥ 3.
  • Recent logs (last 7 days) — any line ending in ?, containing "blocked", "next:", "todo", "follow-up", "unfinished", or naming a deferred decision.
  • Recent articles (last 7 days) — each new article opens a distribution/syndication loop ("syndicate <slug>") if syndicate-article is enabled, and a feedback loop ("respond to comments on <slug>") if traffic is plausible.
  • ${var} — if set, add a synthetic loop "advance ${var}" so at least one action ties to the requested focus area.

Deduplicate by similarity in text. Cap the loop list at 25.

3. Score loops

Score every loop on three 1–5 axes. Total = leverage × urgency × concreteness.

Axis135
leveragepersonal hygieneuseful but localunblocks others, shippable artifact, or compounds
urgencynice-to-havethis weektoday (deadline / blocker / >5 day stall on hot loop)
concreteness"think about X"known shape, no draftnext step is one named action

Drop any loop scoring <8 from the candidate pool. If ${var} is set, give a +0.5 leverage bump to loops touching that area.

Show full SKILL.md (603 more words)Show less
4. Convert loops to actions

Convert the top loops into actions until you have 5 distinct ones. Constraints on every action:

  1. Specificity gate — must name at least one of: a file path, a PR number, a person/handle, a project/repo, a tool/CLI command, a URL, a tracked entity from MEMORY.md. Generic "reach out to people" / "review your goals" / "explore opportunities" fails this gate.
  2. Banned-phrase lint — reject any action whose action text contains: go for a walk, drink water, take a break, reflect, journal, meditate, brainstorm, review your, think about, consider, look into, explore opportunities, reach out to people, network with, clean up your inbox, organize your, plan tomorrow, do some reading, check social media. These are filler, not actions.
  3. Time estimate — must fit in ≤2 hours; bias toward 30–60 min slots.
  4. Definition of done — one observable check. "PR opened" / "commit pushed" / "message sent to <handle>" / "doc has section X with ≥3 items". Not "feel better" or "have more clarity".
  5. Anti-template (14-day novelty check) — for each candidate action, extract the verb + main noun. Reject if the same verb+noun appears in any memory/logs/*.md from the last 14 days. (Different verb+same noun is fine — only the bigram blocks.)
  6. Score ≥4 on the 1–5 quality scale below. Anything <4 is dropped and replaced from the next loop in the queue.

Quality 1–5: 1 = filler, 2 = vague, 3 = specific but low-leverage, 4 = specific + tied to a real loop, 5 = specific + high-leverage + would visibly move the project today.

If after exhausting the loop list you have <5 surviving actions, fill the rest from the category pool below but only with category-specific candidates that pass all gates above. Categories exist as a fallback, not a checklist:

  • Build — ship, write, create, deploy, fix, prototype, refactor against a named file/PR
  • Connect — DM/reply/quote a named handle about a named topic; comment on a named PR/issue
  • Learn — read a named paper/doc/repo and write a 5-bullet takeaway to memory/topics/
  • Health/Energy — only if tied to a named, novel, non-banned action (rare; usually skipped)
  • Money — concrete revenue/funding/deal step naming a counterparty
  • Position — write a named tweet/cast/post on a named claim
  • Explore — lateral move tied to a named external signal from this week's logs

If even with the category pool you can't reach 5, output fewer (3 or 4) and flag ACTION_CONVERTER_THIN in the notify — don't pad.

5. Compose the output

Build one today's shape line: ≤14 words capturing the dominant theme of the 5 actions ("Ship 2 PRs, unblock failing skill, syndicate yesterday's article" — not "be productive today"). This becomes the lede.

Order the 5 actions by descending quality score, then by descending urgency.

6. Send via ./notify

Use this exact format (./notify renders the Markdown per-channel — just write it cleanly):

*5 Actions — ${today}*
Shape: <today's shape line>

1. <action — one imperative sentence, names a specific entity>
why: <≤18 words, what makes this leverage today, names a specific signal>
done: <one observable check>
loop: <loop id or "category:<name>" if filled from pool>

2. <action>
why: <…>
done: <…>
loop: <…>

3. <action>
why: <…>
done: <…>
loop: <…>

4. <action>
why: <…>
done: <…>
loop: <…>

5. <action>
why: <…>
done: <…>
loop: <…>

sources: memory=<lines> logs=<days> topics=<files> prs=<open> cron_failing=<n> mode=<OK|BOOTSTRAP|THIN>

Notification rules:

  • Drop any action whose done: line couldn't be written without hand-waving.
  • If mode is ACTION_CONVERTER_NO_CONTEXT, skip the action list entirely and notify: *Action Converter — no context yet* plus a one-line pointer ("Populate memory/MEMORY.md or run a skill to seed memory/logs/").
  • If mode is ACTION_CONVERTER_BOOTSTRAP, prefix the shape line with Bootstrap mode: and pull all actions from the setup-completion pool.
7. Log to memory/logs/${today}.md

Append:

### action-converter
- **Mode:** OK | BOOTSTRAP | THIN | NO_CONTEXT
- **Focus:** <var or "general">
- **Shape:** <today's shape line>
- **Actions:** N (quality avg <x.x>/5)
- **Loops anchored:** <list of loop ids surfaced>
- **Loops carried over:** <list of high-score loops not chosen, for tomorrow>
- **Notification sent:** yes

Carrying loops forward in the log is what powers the 14-day novelty check and lets the next run see what's been deferred.

Network note

gh pr list works in a GitHub Actions run via the gh CLI (handles auth internally, so no token touches the command line). If gh is unavailable or returns empty, treat the open-PR loop source as prs=0 and continue — do not block the whole run.

No outbound HTTP is required. All inputs are local files and gh. No new env vars.

© aeonfun, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/action-converter of aeonfun/aeon.

Open the folder on GitHubat commit c0cb7c4

Compare with similar skills

Action Converter 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.

Action Converter compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Action Converter this skillaeonfun/aeon767—~2.5kAutomated safety check: PassMIT
Convertremotion-dev/remotion62k—~247Automated safety check: PassCustom licence
ActionsJetBrains/intellij-community21k—~341Automated safety check: PassCustom licence
Claw Scoreopenclaw/openclaw392k—~2.5kAutomated safety check: PassMIT
Laravel Actionscoollabsio/coolify63k—~2.4kAutomated safety check: PassApache-2.0
ActionsBuilderIO/agent-native7.1k—~4.4kAutomated safety check: PassNone

Similar skills

  • Convert

    remotion-dev/remotion

    Official

    Start the local @remotion/convert app and open it in the Codex browser.

    62k GitHub stars~247 tokensUpdated today
    Media & CreativeAuto-check passed
  • Actions

    JetBrains/intellij-community

    Official

    Implement or change IntelliJ AnAction actions and registrations.

    21k GitHub stars~341 tokensUpdated today
    MobileAuto-check passed
  • Claw Score

    openclaw/openclaw

    Audit or refresh OpenClaw maturity scorecard docs from root taxonomy, maturity scores, and QA evidence artifacts without using maintainer discrawl data or committed inventory reports.

    392k GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Laravel Actions

    coollabsio/coolify

    Build, refactor, and troubleshoot Laravel Actions using lorisleiva/laravel-actions.

    63k GitHub stars~2.4k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Actions

    BuilderIO/agent-native

    How to create and run agent actions. An agent skill from BuilderIO/agent-native.

    7.1k GitHub stars~4.4k tokensUpdated today
    Backend & APIsAuto-check passed
  • Harness Score

    ruvnet/ruflo

    5-dimension harness readiness scorecard from metaharness score <path.

    74k GitHub stars~605 tokensUpdated today
    DevelopmentAuto-check: notes

More from aeonfun/aeon

All 82 skills in this repo
  • Browses open tasks on the TaskMarket agent-worker market and, with explicit operator approval, creates tasks, tracks submissions and submits finished work.

    767 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • 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.

    767 GitHub stars~9k tokensUpdated today
    Auto-check: warnings
  • 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.

    767 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • 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.

    767 GitHub stars~5.1k tokensUpdated today
    Auto-check passed
  • Aeon Config Doctor

    aeonfun/aeon

    Static linter for an Aeon instance's configuration that catches silent failures such as unquoted schedules, duplicate keys, unconfigured skills and broken MCP references.

    767 GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Auto Merge

    aeonfun/aeon

    Automatically merge open PRs that have passing CI, no blocking reviews, and no conflicts

    767 GitHub stars~2.6k tokensUpdated today
    Auto-check passed

Questions about Action Converter

What does Action Converter do?

5 concrete real-life actions, leverage-scored against open loops with specificity and anti-fluff gates. Action Converter is an agent skill from aeonfun/aeon.

How do I install Action Converter in Claude Code?

Run `npx skills add aeonfun/aeon --skill action-converter -a claude-code`. Or copy the skill folder (skills/action-converter in aeonfun/aeon) into .claude/skills/action-converter in your project. Claude Code loads it when a task matches its description.

How do I install Action Converter in Codex?

Run `npx skills add aeonfun/aeon --skill action-converter -a codex`. Or copy the skill folder (skills/action-converter in aeonfun/aeon) into .agents/skills/action-converter in your project. Codex loads it when a task matches its description.

Can I use Action Converter in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aeonfun/aeon --skill action-converter -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/action-converter, .gemini/skills/action-converter, .github/skills/action-converter and .opencode/skills/action-converter in your project.

What does Action Converter need to run?

Going by SKILL.md and its folder, Action Converter needs the command-line tools its instructions call (gh and go).

Does Action Converter access the network?

SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Action Converter safe to install?

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.

What licence does Action Converter use?

Action Converter is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Action Converter use?

About 2.5k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Action Converter?

Skills that share tags, products or a category with Action Converter: Convert (remotion-dev/remotion, 62k stars), Actions (JetBrains/intellij-community, 21k stars), Claw Score (openclaw/openclaw, 392k stars) and Laravel Actions (coollabsio/coolify, 63k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Action Converter?

aeonfun (a GitHub organization) maintains it in aeonfun/aeon, which has 767 GitHub stars. The repository holds 82 skills in this directory. The repository was last updated on October 8, 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.