What's New
- Improved Tier 2 ML scoring -- Retrained LightGBM model on 12.4K instructions (was 6.5K). Headline Mean Average Error (MAE) drops from 6.62 to 4.70 (29% more accurate), grade accuracy 65% to 75%. All six dimensions improved (Clarity, Structure, Coverage, Economy, Examples, Verification). While performance improved, we also managed to make the ML models more lightweight (smaller size). Dimension renamed: brevity -> economy.
| Metric | v4 (6.5K) | v5 (12.4K) | Delta |
|---|---|---|---|
| Headline MAE | 6.62 | 4.70 | -29% |
| QWK | 0.818 | 0.872 | +0.054 |
| Grade accuracy | 65.4% | 75.0% | +9.6pp |
- Security awareness rules -- 5 new deterministic checks:
security-secrets(API keys, tokens, private keys),security-shell-exec(eval/exec/curl|bash),security-exfiltration(outbound HTTP + credentials),security-override(prompt override phrases),security-persistence(crontab, LaunchAgent, bashrc). All info/warning level -- no score caps, no publish blockers. - Two-tier security hooks for
writ lint --prompt-- Light hook (3 lines) always injected on every--promptrun. Deep hook (--prompt --security) adds full OWASP Agentic Top 10 checklist. --sarifoutput --writ lint --sarifproduces SARIF 2.1.0 JSON for GitHub Security tab integration. Works with single files,--changed, and multi-file runs.- GitHub Action upgrade -- New inputs:
sarif: true(upload to Security tab),changed-only: true(lint only PR-changed files),comment: true(PR summary comment with scores table). has-stack-versionsrule -- Info-level nudge when >= 2 technology names appear without version numbers. Covers 35+ frameworks/languages.- Claude Code hook documentation -- README and
writ-commandsskill now documentPostToolUsehook config for auto-linting.
Install / Upgrade
pip install --upgrade enwrit