DONATELLO LOCAL · ACTUAL MODEL OUTPUT

Small function.
Inspectable evidence.

Granite 4.1 3B · local runtime · 12 regression checks passed after one correction. No Donatello credits or cloud-model requests.

First attempt failed. The operator identified two errors and requested a correction. This inspector was built separately; the code shown is the model's unchanged second answer.

function slugify(value) {
    if (typeof value !== 'string') {
        throw new TypeError('Input must be a string');
    }
    value = value.trim().toLowerCase();
    value = value.normalize('NFKD').replace(/[\u0300-\u036f]/g, '');
    value = value.replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');
    return value || '';
}

Not a benchmark or proof of automatic offline fallback. Read the case for both attempts, prompts, timings and limitations.