Skip to content
Back to skills

Learn Stats

ASecurity

Report spaced-repetition statistics: total facts, overdue count, retention rate, active decks, and facts added this week. Use when the user says "stats", "estatísticas", "como está meu aprendizado", "/learn-stats", or wants a dashboard of their learning loop.

  • 529 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 29, 2026
ai-agentsgo

Security analysis

A100/100

Scanned May 29, 2026

npx -y skills add evolution-foundation/evo-nexus --skill learn-stats --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Learn Stats?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Learn Stats
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/evolution-foundation-learn-stats/badge)](https://www.skillsdirectory.com/skills/evolution-foundation-learn-stats)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: learn-stats
description: Report spaced-repetition statistics: total facts, overdue count, retention rate, active decks, and facts added this week. Use when the user says "stats", "estatísticas", "como está meu aprendizado", "/learn-stats", or wants a dashboard of their learning loop.
---

# Learn Stats

Reads `workspace/learning/facts/` and `workspace/learning/.state/review-log.jsonl` to produce a markdown stats report.

## Trigger

User wants a snapshot of their learning loop health.

## Workflow

### Step 1 — Read facts

1. Read all `.md` files in `workspace/learning/facts/`
2. Parse frontmatter of each file
3. Get today's date (YYYY-MM-DD)
4. Compute:
   - `total` = count of all fact files
   - `overdue` = count where `next_review <= today`
   - `active_decks` = count of unique `deck` values across all facts
   - `added_this_week` = count where `created >= today - 7 days`

If `workspace/learning/facts/` does not exist or is empty:
> "Nenhum fato encontrado. Use /learn-capture para adicionar fatos primeiro."
> Stop here.

### Step 2 — Read review log

1. Read `workspace/learning/.state/review-log.jsonl` line by line (each line is a JSON object)
2. If the file does not exist or is empty: `total_reviews = 0`, `retention_rate = "N/A"`
3. If it exists:
   - `total_reviews` = count of all log entries
   - `good_easy_count` = count where `grade == "good"` OR `grade == "easy"`
   - `retention_rate` = `round(good_easy_count / total_reviews * 100)%`

### Step 3 — Output report

Print in markdown, in **pt-BR**:

```markdown
## 📊 Learning Loop — Stats

| Métrica             | Valor        |
|---------------------|--------------|
| Total de fatos      | {total}      |
| Vencidos hoje       | {overdue}    |
| Taxa de retenção    | {retention_rate} ({good_easy_count}/{total_reviews} revisões) |
| Decks ativos        | {active_decks} |
| Adicionados (7 dias)| {added_this_week} |

**Data:** {today YYYY-MM-DD}
```

If `overdue > 0`:
> 💡 Use `/learn-review` para revisar os fatos vencidos.

If `total < 10`:
> 💡 Use `/learn-capture` para adicionar mais fatos (meta v0: 20 fatos em 2 semanas).

### Step 4 (optional) — List overdue facts

If `overdue > 0` and `overdue <= 10`, list them:

```
### Fatos vencidos
- `{filename}` (deck: {deck}, venceu: {next_review})
  > {Retrieval Q — first 80 chars}
```

## Constraints

- **Read-only.** Do NOT modify any file.
- Do NOT write to review-log.jsonl.
- If log is missing (user hasn't reviewed yet), show `N/A` for retention — do not error.
- Round retention_rate to nearest integer (no decimal places).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…