ai-image-creator
Generate PNG images using AI (multiple models via OpenRouter including Gemini, FLUX.2, Riverflow, SeedDream, GPT-5 Image, proxied through Cloudflare AI Gateway…
Review spaced-repetition facts that are due today. Applies SM-2 algorithm to update interval, ease, and next_review in each fact's frontmatter. Updates review-log.jsonl. Use when the user says "revisar", "review facts", "study", or "/learn-review".
$ npx -y skills add evolution-foundation/evo-nexus --skill learn-review --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/learn-reviewContext preview
The summary Claude sees to decide when to auto-load this skill.
Review spaced-repetition facts that are due today. Applies SM-2 algorithm to update interval, ease, and next_review in each fact's frontmatter. Updates review-log.jsonl. Use when the user says "revisar", "review facts", "study", or "/learn-review".
name: learn-review description: Review spaced-repetition facts that are due today. Applies SM-2 algorithm to update interval, ease, and next_review in each fact's frontmatter. Updates review-log.jsonl. Use when the user says "revisar", "review facts", "study", or "/learn-review".
Reviews facts in `workspace/learning/facts/` whose `next_review` date is today or in the past. Applies SM-2 grading and rewrites frontmatter in-place. Records every grade in `workspace/learning/.state/review-log.jsonl`.
Given current `reps`, `interval`, `ease`, `lapses`:
**Again (grade 0):**
**Hard (grade 3):**
**Good (grade 4):**
**Easy (grade 5):**
**For all grades:** `next_review = review_date + interval days`
**Ease floor:** 1.3. Never let ease drop below 1.3 regardless of how many Again grades.
1. Read all `.md` files in `workspace/learning/facts/` 2. Parse the frontmatter of each file 3. Get today's date (YYYY-MM-DD) 4. Select facts where `next_review <= today` 5. Sort by `next_review` ascending (oldest due first) 6. Take up to 5 facts (N=5 default)
If no facts are due: > "Nenhum fato vencido hoje. 🎉 Próxima revisão: {earliest next_review across all facts}." > Stop here.
If `workspace/learning/facts/` does not exist or is empty: > "Nenhum fato encontrado. Use /learn-capture para adicionar fatos primeiro." > Stop here.
For each due fact (up to 5):
**2a. Show the question:**
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📚 Deck: {deck} | Fato {current}/{total_due_shown}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
❓ {Retrieval Q content}
[Pense na resposta antes de prosseguir. Pressione Enter quando pronto.]Wait for the user to confirm they've thought about it (any input is fine).
**2b. Show the answer:**
✅ Resposta:
{Fact content}
💡 Por quê importa:
{Why it matters content}**2c. Ask for grade:**
Como foi? 0 - Again (errei / não lembrei) 3 - Hard (lembrei com dificuldade) 4 - Good (lembrei bem) 5 - Easy (muito fácil)
Wait for the user to enter 0, 3, 4, or 5. Accept also the words "again", "hard", "good", "easy" (case-insensitive).
For the grade received:
1. Compute `prev_interval = current interval` 2. Compute `prev_ease = current ease` 3. Apply SM-2 formula above to get `new_interval`, `new_ease`, `new_reps`, `new_lapses` 4. Compute `new_next_review = today + new_interval days` 5. Rewrite the fact file with updated frontmatter, preserving the body content exactly
**Frontmatter rewrite rules:**
Append one JSON line to `workspace/learning/.state/review-log.jsonl` (create file if it doesn't exist, create directory if needed):
{"ts": "{ISO8601_timestamp}", "fact_id": "{id}", "grade": "{again|hard|good|easy}", "prev_interval": {N}, "new_interval": {M}, "prev_ease": {X}, "new_ease": {Y}}Grade string mapping: 0→"again", 3→"hard", 4→"good", 5→"easy"
Continue with the next due fact. After all N facts (or all due facts if < N):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Sessão de revisão concluída!
Revisados: {N} fatos
Resultado: {X} Good/Easy | {Y} Hard | {Z} Again
Próxima revisão: {earliest next_review across all facts}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━When testing, the interval sequence for repeated Good grades starting from `reps=0, interval=1, ease=2.5`:
| Review | Grade | reps before | interval before | → reps after | → interval after | |--------|-------|-------------|-----------------|--------------|-----------------| | 1st | Good | 0 | 1 | 1 | 1 | | 2nd | Good | 1 | 1 | 2 | 6 | | 3rd | Good | 2 | 6 | 3 | 15 (round(6*2.5))|
Generate PNG images using AI (multiple models via OpenRouter including Gemini, FLUX.2, Riverflow, SeedDream, GPT-5 Image, proxied through Cloudflare AI Gateway…
Create a new custom agent for the workspace. Guides the user through defining agent name, domain, personality, skills, model, and memory folder. Use when the…
Create a new slash command for Claude Code. Guides the user through defining the command name, what it does, and generates the markdown file in…
Create a Mission, Project, or Goal (Mission → Project → Goal → Task hierarchy) in EvoNexus. Guides the user through picking a mission, choosing or creating a…
Create a new heartbeat (proactive agent scheduled with a decision prompt) for EvoNexus. Guides the user through picking an agent, setting interval, wake…
Create a new custom integration (API/service wrapper) for the workspace. Guides the user through defining the integration's slug, display name, description,…