The pull-request learning gate

Every pull request
becomes a lesson.

Aisance reads your diff, asks one sharp question about it, and holds the merge until you can answer. Keep shipping fast — actually understand the AI-written code you ship.

One YAML file. No code to install.
01 / The problem
The AI writes it. You skim it. It merges anyway.

Velocity feels great — right up until the day nobody on the team can explain how the thing actually works. That gap has a name: tech debt. And it compounds with every PR you wave through.

02 / How it works

Three steps, on every pull request.

No dashboards to babysit. Aisance lives in the one place your code already passes through.

01

You open a PR

Aisance hands the diff — and what it knows about your skill level — to its agent.

trigger: pull_request
02

It writes a lesson

A 60-second tutorial on one real idea in your change, then a single question. The merge check turns red.

check: aisance — required
03

Answer it, then merge

Pass and the check goes green. Miss it and the explanation shows you exactly what you skipped.

status: unblocked
03 / A real lesson

This is a lesson Aisance wrote.

Generated for an actual pull request — a security fix that swapped innerHTML for safe DOM calls.

Aisance Lesson Security
Safe DOM Updates

The risky pattern was assigning runtime strings to innerHTML — values from extension messages, server responses, caught errors. If any of that text contains HTML, the browser parses it as markup instead of showing it as text.

The fix separates text from structure: textContent for data, createElement for markup you control.

Why is setStatusText("Pairing failed: " + err.message) safer than the old innerHTML assignment?
AtextContent shows err.message as literal text; innerHTML would parse any HTML in it as DOM.
BtextContent validates that the value came from a trusted server first.
CinnerHTML is only risky with database values, not browser errors.
DIt mainly improves readability — no real security change.
Difficulty adapts to your level. New users start gentler.
Try the interactive version
04 / It learns you

Every lesson is sharper than the last.

Aisance keeps a memory of what you know. It targets your blind spots and aims each lesson one level past where you are — so the gate is never busywork, and never the same twice.

Beginner week 1
Intermediate you are here
Advanced ~12 weeks
Ships Understood

Add Aisance to
your next repo.

One YAML file. Your next pull request comes with a lesson — and the merge button waits until you have earned it.

Get started