Back to the catalog

articulate

Precision language training skill

Open source Open in the app JSON README (API)

About

Precision language training skill

Details

Kind
Plugins
Topic
No topic detected
Publisher
hristo2612
Origin
gemini
Category
ferramentas
Version
1.0.0
Last push
2026-03-29T23:23:01Z
Repository state
ativo
Language
Shell
License
MIT
Added
2026-08-30 14:13:39
Updated
2026-08-30 14:13:39
Origin id
hristo2612/articulate

README

```
 █████  ██████  ████████ ██  ██████ ██   ██ ██       █████  ████████ ███████
██   ██ ██   ██    ██    ██ ██      ██   ██ ██      ██   ██    ██    ██
███████ ██████     ██    ██ ██      ██   ██ ██      ███████    ██    █████
██   ██ ██   ██    ██    ██ ██      ██   ██ ██      ██   ██    ██    ██
██   ██ ██   ██    ██    ██  ██████  █████  ███████ ██   ██    ██    ███████
```

**Quick language challenges pulled from your real writing.**

---

## What It Is

Articulate is a Claude Code skill that gives you a surprise language challenge every time you invoke it. Swap a word, trim a phrase, punch up a sentence, snipe your own weak writing. Each session takes under 2 minutes — short, honest feedback with a one-line etymology nugget that makes you think differently about words.

Three modes: **Lucky** (random missions from your writing), **Roast** (find your own weaknesses), **Ambient Coach** (tips while you work).

Works with Claude Code, Codex, Cursor, OpenCode, and Gemini CLI.

---

## Demo

### 🎯 Swap — Replace one word

```
## 🎯 Swap

One word is holding this sentence back:

> "We need to **handle** the migration before the sprint ends."

Replace **handle**. One word.
>
```

You type: `execute`

```
✅ Nailed it. "Handle" is vague — you handle luggage, complaints, exceptions.
"Execute" (Latin exsequī — follow to the end) means carry out a plan with precision.

💡 *"Execute" entered English through legal death warrants. When you execute a
migration, you're following every step to completion. No ambiguity.*

⚡ +28 XP (base 10 + score 9 + streak 9) | 🔥 5d

🎲 Another? go | 💾 Save save | ✌️ Done
```

### 🔍 Snipe — Fix your own writing

```
## 🔍 Snipe

Your words, under the microscope:

> "I think we should maybe try to basically refactor the thing that handles auth"

4 problems. Find and fix them all. Rewrite it.
>
```

You type: `Refactor the auth middleware.`

```
🔍 4/4 caught. Clean sweep. 🔥

✓ "I think" — hedge gone
✓ "maybe" + "basically" — filler gone
✓ "the thing that handles" → "the auth middleware" — named it

📉 14 → 4 words. That's a sentence now.

💡 *"Thing" (Old Norse þing) originally meant a public assembly. You were
accidentally calling every object a Viking parliament.*

⚡ +24 XP | 🔥 3d
```

### 💪 Punch — Make it hit

```
## 💪 Punch

This sentence has zero pulse:

> "The meeting went well and we discussed several important topics."

Make it hit. Same meaning, more impact.
>
```

You type: `We cracked three blockers in 40 minutes. No follow-up needed.`

```
💪 That landed. Numbers + specifics > adjectives.

💡 *"Several important topics" tells nothing. "Three blockers" tells everything.
Numbers are the most precise words in any language — they leave zero room for
interpretation.*

Score: 92/100
```

### 🔥 Roast — Detective game

```
## 🔥 Roast

Your words. My microscope.

> "I basically think we should probably try to implement some kind of
> solution for the thing that keeps breaking"

6 problems. Find them all. Rewrite it.
>
```

### 💡 Ambient Coach

Drops inline tips while you work:

You: *"Can you basically just make the button do the thing?"*

Claude responds normally, then:

> 💡 *You wrote "make the button do the thing" — try "trigger validation on click" for clarity.*

---

## The Six Missions

Every `/articulate` picks a random mission type. You never know what's coming.

| Mission | What you do | Time |
|---------|-------------|------|
| 🎯 **Swap** | Replace one weak word | 15 sec |
| ✂️ **Trim** | Cut a sentence in half | 30 sec |
| 💪 **Punch** | Make a flat sentence hit | 30 sec |
| 🔍 **Snipe** | Fix your own real writing | 1 min |
| 🔄 **Flip** | Rewrite in opposite tone | 30 sec |
| 🧩 **Fill** | One blank, one perfect word | 15 sec |

Plus **surprise twists** (~10% of sessions): Blind Punch, Reverse Swap, Speed Trim.

Missions are personalized from your recent conversations and project context. When you miss a word, you can **practice it** immediately in the next mission.

---

## Installation

### Claude Code

```bash
# Option A: Plugin install
claude plugin install https://github.com/hristo2612/articulate.git

# Option B: Manual clone
git clone https://github.com/hristo2612/articulate.git ~/.claude/skills/articulate
```

### Codex

```bash
git clone https://github.com/hristo2612/articulate.git ~/.codex/articulate
ln -s ~/.codex/articulate/skills ~/.agents/skills/articulate
```

See [`.codex/INSTALL.md`](.codex/INSTALL.md) for details.

### Cursor

```bash
# Option A: Marketplace (if available)
# Search "Articulate" in Cursor extensions

# Option B: Manual clone
git clone https://github.com/hristo2612/articulate.git ~/.cursor/skills/articulate
```

### OpenCode

Add to your `opencode.json`:

```json
{
  "plugin": ["articulate@git+https://github.com/hristo2612/articulate.git"]
}
```

See [`.opencode/INSTALL.md`](.opencode/INSTALL.md) for details.

### Gemini CLI

```bash
gemini extensions install https://github.com/hristo2612/articulate.git
```

---

## Usage

All commands start with `/articulate`. First run triggers onboarding (name, language, coaching toggle).

| Command | What it does |
|---------|-------------|
| `/articulate` | Random surprise mission |
| `/articulate roast` | Roast your past writing |
| `/articulate roast here` | Roast current conversation |
| `/articulate coach on/off` | Toggle ambient coaching |
| `/articulate stats` | Your progress |
| `/articulate streak` | Streak status |
| `/articulate lexicon` | Words you've learned |
| `/articulate save` | Save progress to disk |
| `/articulate help` | All commands |

Append `--en` or `--bg` to force a language: `/articulate --bg`

### Save System

Progress is kept in memory during your session. Type `save` or `/articulate save` when you're ready to persist. No file I/O slowing you down between missions.

---

## Progression

Seven ranks. All modes available from Level 1 — levels are milestones, not gates.

| Level | Rank | XP | Badge |
|-------|------|-----|-------|
| 1 | RECRUIT | 0 | ⬜ |
| 2 | INITIATE | 100 | 🟩 |
| 3 | OPERATIVE | 300 | 🟨 |
| 4 | SPECIALIST | 600 | 🟧 |
| 5 | COMMANDER | 1000 | 🔴 |
| 6 | ARCHITECT | 1800 | 💎 |
| 7 | MASTERMIND | 3000 | 👑 |

**Badges:** 14 badges for streaks, scores, session counts, and multilingual training. Permanent — survive prestige resets.

**Streaks:** Daily sessions build streaks. Bonus XP up to +20/session. Streak shields at 30, 60, and 100 days.

**Prestige:** At MASTERMIND, optionally reset to RECRUIT with a ★ star. Badges and lexicon carry over.

---

## Languages

Works with **any language**. English and Bulgarian have curated reference files for richer sessions. Want to add yours? See [Contributing](#contributing).

---

## Data

All state at `~/.articulate/`. Nothing in the repo.

| File | What's in it |
|------|-------------|
| `user.json` | Name, languages, coaching toggle |
| `state.json` | XP, level, rank, streak, badges, weaknesses |
| `history.json` | Last 100 sessions (FIFO) |
| `lexicon.json` | Words learned with usage counts |
| `contexts/` | Cached project summaries |

```bash
# Backup
cp -r ~/.articulate ~/.articulate-backup

# Reset (requires confirmation)
/articulate reset
```

---

## Contributing

### Add a Language Pack

1. Create `skills/articulate/references/languages/{lang}.md`
2. Use `english.md` and `bulgarian.md` as reference
3. PR welcome

---

## License

[MIT](LICENSE) — Hristo Bogoev ([@hristo2612](https://github.com/hristo2612))

More