User story
People often take screenshots because selecting/copying text from the current interface is slower or impossible. Treat screenshots as clipboard-like input, not merely image files.
Invariant
Every screenshot accepted by IB gets an automatic OCR pass. No separate OCR command or user action is required.
- Preserve the original screenshot as canonical evidence.
- Store OCR text as a provenance-linked derived projection.
- Make recognized text searchable, selectable, copyable, quotable, and available to the text-first frontend.
- Preserve screenshots when OCR fails; record failed/partial extraction rather than dropping the input.
- Allow later OCR engines to replace or augment the derived projection without changing screenshot identity.
- Keep screenshot identity, provenance, indexing, and replacement rules in the browser core.
- Let Grease orchestrate the OCR executable/model so the engine remains replaceable.
- Native/front-end adapters may hand screenshots into the pipeline but must not own recognized text.
Acceptance fixtures
At minimum:
- ordinary UI text;
- mixed image + text;
- Unicode text;
- deliberately unreadable screenshot.
Readable fixtures should produce indexed OCR text automatically on import/share. The unreadable fixture should preserve the image and expose an inspectable extraction failure.
The corresponding acceptance story is being added to docs/personal-workbench.md.
User story
People often take screenshots because selecting/copying text from the current interface is slower or impossible. Treat screenshots as clipboard-like input, not merely image files.
Invariant
Every screenshot accepted by IB gets an automatic OCR pass. No separate OCR command or user action is required.
Acceptance fixtures
At minimum:
Readable fixtures should produce indexed OCR text automatically on import/share. The unreadable fixture should preserve the image and expose an inspectable extraction failure.
The corresponding acceptance story is being added to
docs/personal-workbench.md.