- 🐛 Bug fix (non-breaking change which fixes an issue)
- ✨ New feature (non-breaking change which adds functionality)
- ♻️ Architecture / Refactoring (no functional changes)
- 📝 Documentation / OSS hygiene
- 🔧 Tooling / Dependencies / CI
- Chrome Extension (repo root)
- Local Daemon (
daemon/) - Documentation / Workflows
- Tests pass: Ran
npm run checkat repository root. - Daemon tests pass: Ran
npm testindaemon/(ifdaemon/code was modified). - Closed verb registry preserved: No arbitrary DOM injection/execution outside
AI_VERBSincontent/content-script.js. - Structured Outputs schema: Action arguments travel as
argsJsonJSON string, not a loose nested object. - Canvas 2D only: No SVG
foreignObject,createElementNS, or tainted canvas usage incompositor.js. - Bilingual UI strings: Any user-visible UI copy is bilingual (JP/EN, e.g.
お描き/Draw). - Determinism & Safety: Deterministic affordance IDs, high-risk verbs rejected on chat path.
- No Secrets: No API keys, tokens, or credential leaks.