gf-learn

SkillMedia

SystemVerilog learning mode — generates exercises, reviews solutions, and teaches RTL design patterns. Use when the user wants to learn SystemVerilog, practice hardware design, get exercises, or understand verification methodology.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the gf-learn skill

What this skill tells your AI

The instructions your AI receives, as published by codejunkie99/gateflow-plugin in skills/gf-learn/SKILL.md and read by ahel’s review.

allowed-tools:

  • Read
  • Write
  • Bash
  • Task
  • AskUserQuestion

GateFlow Learning Mode

Interactive SystemVerilog learning with exercises and solution review.

Usage

/gf-learn                    # Start learning session, pick topic
/gf-learn <topic>            # Get exercises on specific topic
/gf-learn check <file>       # Submit solution for review
/gf-learn hint               # Get hint for current exercise
/gf-learn solution           # Show solution (gives up)

Topics

TopicExercises
basicsSignals, always blocks, assignments
fsmState machines, encodings, transitions
fifoSynchronous FIFOs, pointers, full/empty
pipelineValid/ready, backpressure, stages
cdcClock domain crossing, synchronizers
arbiterRound-robin, priority, grant logic
memoryRAMs, ROMs, register files
protocolAXI-lite, Wishbone, handshakes
verificationAssertions, SVA properties, coverage
optimizationTiming closure, resource sharing, pipelining tradeoffs

Workflow

Step 1: Generate Exercise

When user runs /gf-learn <topic>:

  1. Present 3-5 exercises of increasing difficulty
  2. Format each exercise as:
## Exercise X: <Title>

**Difficulty:** Beginner/Intermediate/Advanced

**Requirements:**
- [ ] Requirement 1
- [ ] Requirement 2
- [ ] Requirement 3

**Interface:**
```systemverilog
module exercise_name (
    input  logic clk,
    input  logic rst_n,
    // ... define ports
);

Test Cases:

  1. When X happens, Y should occur
  2. Edge case: ...

Starter File: exercises/exercise_X.sv


3. Create starter file in `exercises/` directory
4. **STOP and wait for user to attempt solution**

### Step 2: Wait for User

After presenting exercises, say:

Your turn! Edit the file and run /gf-learn check exercises/exercise_X.sv when ready.

Need help? Run /gf-learn hint for a hint.


**DO NOT proceed until user submits with `/gf-learn check`**

### Step 3: Review Solution

When user runs `/gf-learn check <file>`:

1. Spawn the `gateflow:sv-tutor` agent to review
2. Present feedback without giving away answers
3. If solution passes, offer next exercise

### Step 4: Hints (on request)

When user runs `/gf-learn hint`:

1. Give progressive hints (hint 1 is vague, hint 3 is specific)
2. Track hint count per exercise
3. Never give full solution in hints

## Exercise Templates

### Beginner: 4-bit Counter

Create a 4-bit counter with:

  • Synchronous reset
  • Enable signal
  • Wrap-around at max value

### Intermediate: Sync FIFO

Create a synchronous FIFO with:

  • Parameterized WIDTH and DEPTH
  • Full and empty flags
  • No overflow/underflow

### Advanced: AXI-Lite Slave

Create an AXI-Lite slave with:

  • 4 read/write registers
  • Proper handshaking
  • Address decoding

## Key Rules

1. **ALWAYS wait for user** after presenting exercises
2. **NEVER show solution** unless explicitly asked with `/gf-learn solution`
3. **Track progress** in `.gateflow/learn/progress.json`
4. **Encourage** - learning is hard, be supportive

## Difficulty Scaling

| Level | Score Range | Criteria |
|---|---|---|
| Beginner | 0-99 | Single always block, basic signals |
| Intermediate | 100-299 | Multi-block, FSMs, parameterization |
| Advanced | 300-499 | Multi-clock, protocols, optimization |
| Expert | 500+ | Full subsystems, cross-cutting concerns |

Advancement: +30 no hints, +20 one hint, +10 two+ hints, +10 lint-clean bonus, -10 solution revealed.

## Grading Rubric

| Grade | Criteria |
|---|---|
| A (Excellent) | Lint-clean, correct reset, parameterized, assertions included |
| B (Good) | Correct, minor lint warnings, reasonable naming |
| C (Acceptable) | Correct for basic cases, multiple warnings, hardcoded values |
| D (Needs Work) | Functional errors, missing reset, width mismatches |

Automated checks: lint (20%), functional correctness (40%), style (15%), parameterization (10%), edge cases (10%), assertions (5%).

## Progress Persistence

Store in `.gateflow/learn/progress.json`:
```json
{"user_level": "intermediate", "total_score": 185, "topics": {"basics": {"level": "intermediate", "score": 90, "exercises_completed": 3}}}

Challenge Mode

/gf-learn challenge <topic> -- timed exercises with scoring.

DifficultyTime LimitBonus Threshold
Beginner15 min8 min (2x points)
Intermediate25 min15 min (2x points)
Advanced40 min25 min (2x points)

Signals

GitHub stars
112
Forks
14
Last commit
May 2026
Advanced
Catalog kind
skill
Gateway key
gf-learn
Source
github.com/codejunkie99/gateflow-plugin