Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/aeonfun/aeon/idea-forgenpx skills add aeonfun/aeon --skill idea-forgegit clone --depth 1 https://github.com/aeonfun/aeonWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00041 | $0.06325 |
| Opus 5 | $0.00020 | $0.03163 |
| Sonnet 5 | $0.00008 | $0.01265 |
| Haiku 4.5 | $0.00004 | $0.00632 |
Grade A, and why
idea-forge scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
Fallback: if curl/WebFetch both fail for a source, note `[source unreachable]` inline and proceed with remaining sources. Never fabricate quotes. How it starts
The opening of the file, as written. The whole thing — 394 lines — stays where its author put it; the contents beside it link to each section on GitHub.
${var} — Selector
mode [theme/constraint]. First token picks the mode:generate(default) collides the zeitgeist with the capability surface into ranked wedges;validatescreens the existing backlog for viability;memowrites 2 rigorous evidence-backed startup memos. Anything after the mode is a theme/constraint bias. A bare theme with no mode keyword (e.g.payments,crypto) =generatebiased to that theme.dry-runanywhere skips the notify. Examples: `` (empty → generate, open-ended) ·simulation(generate, themed) ·validate crypto(screen crypto ideas) ·memo solo founder(memos under a constraint) ·generate payments dry-run(generate, no notify). Apick:<id|name>value (from the "build next?" force-reply — e.g.pick:Onchain reputation) is intercepted before mode dispatch: it marks that idea as chosen-to-build in the shared backlog and ends — see "Force-reply interception" below.
Today is ${today}. Read soul/SOUL.md + soul/STYLE.md + STRATEGY.md first and read them closely — this skill thinks as the operator, in their worldview, not about them. If soul/ is the empty template, ground purely on STRATEGY.md + the capability surface and write in a clear, direct tone. Then read memory/MEMORY.md for current goals and active topics. Each mode below names its own memory/logs/ scan window for dedup — honor it.
Force-reply interception — pick:<idea> (run FIRST, before mode dispatch)
Before tokenizing ${var} for the mode, check it. If ${var} starts with pick:, this run is the operator answering the "which idea to build next?" force-reply — do not run generate/validate/memo. Handle it and end. This is behaviorally identical to idea-pipeline's step 0 (same backlog, same marking convention), so a pick reply works whichever skill it routes to:
- Strip the prefix:
sel="${var#pick:}", then trim whitespace (the remainder may contain colons/spaces — keep them). - If
selis empty →./notify "Which idea should I mark as next to build? Reply with its name or backlog number."and end. - Read the shared backlog
memory/topics/startup-ideas.md. If missing or no idea rows →./notify "No idea backlog yet — nothing to mark. Run generate first to fill it."and end. - Resolve
selto exactly one row in the table (| date | name | one-liner | fit | T+F+E |):- By name (preferred): case-insensitive exact match on the
namecell; else fuzzy — most significant-word overlap, orsela substring of the name (or vice-versa). Require one clear best match. - By number: a bare integer N with no name match → the Nth data row (1-based, in file order).
- No match / ambiguous tie →
./notify "Couldn't find an idea matching \"<sel>\". Reply with the exact name or backlog number. Candidates: <name1>, <name2>, <name3>."and end.
- By name (preferred): case-insensitive exact match on the
- Mark it chosen-to-build — the shared marking convention, identical to idea-pipeline: append
✓ selected ${today}to the end of that row'snamecell, keeping the table pipes intact. If already marked, leave it (idempotent). - Confirm with a short
./notify(keep it clean — notest/trace/ping/debugsubstrings):./notify "Marked \"<idea name>\" as next to build — flagged in the backlog. Run /feature or /deploy-prototype on it when you're ready."Do not auto-dispatch any skill — marking chosen is the safe action. - Log under a
### idea-forgeheading inmemory/logs/${today}.md: a- Mode: pickline, then- IDEA_FORGE_PICK: marked "<idea name>" as chosen-to-build (from a pick: reply). - End the run — do not run mode dispatch.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 394 lines · 41 tokens per session scan A 8b16fc222319
idea-forge is a skill published in the GitHub repository aeonfun/aeon (706 stars, last pushed 3d ago), licensed MIT. It adds 41 tokens to every session and 6,325 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
agent-framework-py-release
Use when cutting a Python release for the microsoft/agent-framework monorepo. Triggers on "bump py versions", "cut a python release", "prepare release PR for python", "release py packages", "bump python to X.Y.Z", or similar requests to bump Python package versions and prepare a release PR. Handles all four lifecycle…
foundry-hosted-agent-validation
Step-by-step process for validating a Python Foundry hosted agent sample (under python/samples/04-hosting/foundry-hosted-agents/) end to end — running it locally (native runtime and azd ai agent run) and after deploying it to an Azure AI Foundry project with azd. Use this when asked to validate a hosted agent sample.
python-feature-lifecycle
Guidance for package and feature lifecycle in the Agent Framework Python codebase, including stage meanings, feature-stage decorators, feature enums, and how to move APIs from one stage to the next.
build-and-test
How to build and test .NET projects in the Agent Framework repository. Use this when verifying or testing changes.
pull-requests
Guidance for creating pull requests and handling PR review comments in the Agent Framework repository. Use this when writing a PR description (filling out the PR template) or when responding to and resolving review comments on an existing PR.
python-code-quality
Code quality checks, linting, formatting, and type checking commands for the Agent Framework Python codebase. Use this when running checks, fixing lint errors, or troubleshooting CI failures.