Maintain DomoDomo browser-side image, video, audio, PDF, document, QR, spatial, and CV processing tools. Use when changing src/tools media categories, browser APIs, canvas pipelines, WebAssembly integrations, previews, or local exports.
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
Maintain DomoDomo browser-side image, video, audio, PDF, document, QR, spatial, and CV processing tools. Use when changing src/tools media categories, browser APIs, canvas pipelines, WebAssembly integrations, previews, or local exports.
DomoDomo Media Processing
Maintain Large-file and media workflows that run locally in the browser using native APIs, Canvas, WebAudio, PDF libraries, or WebAssembly.
Operating contract
Scope: Large-file and media workflows that run locally in the browser using native APIs, Canvas, WebAudio, PDF libraries, or WebAssembly.
Primary files: src/tools/photo/, video/, audio/, pdf/, document/, converter/, qr/, cv/, spatial/, plus shared media helpers and relevant dependencies.
Before changing code: Read a comparable media pipeline, its input constraints, cleanup code, export format, and error path before changing processing behavior.
01. input format detection
For input format detection, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For input format detection, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For input format detection, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For input format detection, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For input format detection, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For input format detection, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For input format detection, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For input format detection, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For input format detection, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For input format detection, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For input format detection, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For input format detection, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For input format detection, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For input format detection, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For input format detection, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For input format detection, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
For input format detection, inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
For input format detection, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For input format detection, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For input format detection, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For input format detection, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.
02. file size policy
For file size policy, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For file size policy, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For file size policy, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For file size policy, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For file size policy, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For file size policy, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For file size policy, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For file size policy, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For file size policy, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For file size policy, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For file size policy, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For file size policy, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For file size policy, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For file size policy, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For file size policy, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For file size policy, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
For file size policy, inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
03. object URL lifecycle
For object URL lifecycle, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For object URL lifecycle, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For object URL lifecycle, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For object URL lifecycle, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For object URL lifecycle, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For object URL lifecycle, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For object URL lifecycle, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For object URL lifecycle, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For object URL lifecycle, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For object URL lifecycle, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For object URL lifecycle, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For object URL lifecycle, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For object URL lifecycle, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For object URL lifecycle, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For object URL lifecycle, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For object URL lifecycle, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
04. canvas rendering
For canvas rendering, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For canvas rendering, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For canvas rendering, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For canvas rendering, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For canvas rendering, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For canvas rendering, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For canvas rendering, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For canvas rendering, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For canvas rendering, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For canvas rendering, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For canvas rendering, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For canvas rendering, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For canvas rendering, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For canvas rendering, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For canvas rendering, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For canvas rendering, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
For canvas rendering, inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
05. image pixel processing
For image pixel processing, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For image pixel processing, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For image pixel processing, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For image pixel processing, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For image pixel processing, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For image pixel processing, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For image pixel processing, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For image pixel processing, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For image pixel processing, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For image pixel processing, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For image pixel processing, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For image pixel processing, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For image pixel processing, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For image pixel processing, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For image pixel processing, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For image pixel processing, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
06. video timeline processing
For video timeline processing, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For video timeline processing, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For video timeline processing, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For video timeline processing, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For video timeline processing, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For video timeline processing, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For video timeline processing, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For video timeline processing, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For video timeline processing, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For video timeline processing, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For video timeline processing, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For video timeline processing, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For video timeline processing, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For video timeline processing, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For video timeline processing, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For video timeline processing, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
07. audio buffer processing
For audio buffer processing, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For audio buffer processing, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For audio buffer processing, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For audio buffer processing, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For audio buffer processing, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For audio buffer processing, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For audio buffer processing, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For audio buffer processing, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For audio buffer processing, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For audio buffer processing, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For audio buffer processing, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For audio buffer processing, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For audio buffer processing, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For audio buffer processing, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For audio buffer processing, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For audio buffer processing, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
08. PDF byte handling
For PDF byte handling, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For PDF byte handling, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For PDF byte handling, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For PDF byte handling, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For PDF byte handling, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For PDF byte handling, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For PDF byte handling, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For PDF byte handling, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For PDF byte handling, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For PDF byte handling, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For PDF byte handling, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For PDF byte handling, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For PDF byte handling, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For PDF byte handling, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For PDF byte handling, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For PDF byte handling, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
For PDF byte handling, inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
09. document parsing
For document parsing, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For document parsing, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For document parsing, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For document parsing, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For document parsing, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For document parsing, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For document parsing, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For document parsing, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For document parsing, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For document parsing, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For document parsing, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For document parsing, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For document parsing, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For document parsing, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For document parsing, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For document parsing, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
For document parsing, inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
10. QR encoding and decoding
For QR encoding and decoding, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For QR encoding and decoding, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For QR encoding and decoding, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For QR encoding and decoding, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For QR encoding and decoding, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For QR encoding and decoding, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For QR encoding and decoding, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For QR encoding and decoding, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For QR encoding and decoding, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For QR encoding and decoding, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For QR encoding and decoding, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For QR encoding and decoding, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For QR encoding and decoding, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For QR encoding and decoding, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For QR encoding and decoding, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For QR encoding and decoding, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
11. WebAssembly loading
For WebAssembly loading, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For WebAssembly loading, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For WebAssembly loading, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For WebAssembly loading, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For WebAssembly loading, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For WebAssembly loading, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For WebAssembly loading, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For WebAssembly loading, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For WebAssembly loading, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For WebAssembly loading, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For WebAssembly loading, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For WebAssembly loading, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For WebAssembly loading, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For WebAssembly loading, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For WebAssembly loading, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For WebAssembly loading, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
12. worker offloading
For worker offloading, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For worker offloading, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For worker offloading, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For worker offloading, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For worker offloading, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For worker offloading, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For worker offloading, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For worker offloading, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For worker offloading, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For worker offloading, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For worker offloading, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For worker offloading, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For worker offloading, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For worker offloading, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For worker offloading, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For worker offloading, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
For worker offloading, inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
13. progress reporting
For progress reporting, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For progress reporting, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For progress reporting, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For progress reporting, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For progress reporting, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For progress reporting, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For progress reporting, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For progress reporting, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For progress reporting, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For progress reporting, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For progress reporting, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For progress reporting, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For progress reporting, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For progress reporting, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For progress reporting, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For progress reporting, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
For , inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
14. preview scaling
For preview scaling, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For preview scaling, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For preview scaling, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For preview scaling, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For preview scaling, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For preview scaling, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For preview scaling, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For preview scaling, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For preview scaling, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For preview scaling, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For preview scaling, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For preview scaling, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For preview scaling, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For preview scaling, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For preview scaling, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For preview scaling, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
For preview scaling, inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
15. zoom controls
For zoom controls, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For zoom controls, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For zoom controls, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For zoom controls, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For zoom controls, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For zoom controls, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For zoom controls, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For zoom controls, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For zoom controls, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For zoom controls, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For zoom controls, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For zoom controls, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For zoom controls, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For zoom controls, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For zoom controls, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For zoom controls, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
For zoom controls, inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
16. export format selection
For export format selection, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For export format selection, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For export format selection, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For export format selection, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For export format selection, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For export format selection, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For export format selection, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For export format selection, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For export format selection, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For export format selection, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For export format selection, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For export format selection, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For export format selection, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For export format selection, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For export format selection, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For export format selection, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
17. metadata preservation
For metadata preservation, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For metadata preservation, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For metadata preservation, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For metadata preservation, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For metadata preservation, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For metadata preservation, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For metadata preservation, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For metadata preservation, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For metadata preservation, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For metadata preservation, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For metadata preservation, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For metadata preservation, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For metadata preservation, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For metadata preservation, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For metadata preservation, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For metadata preservation, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
18. metadata removal
For metadata removal, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For metadata removal, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For metadata removal, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For metadata removal, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For metadata removal, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For metadata removal, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For metadata removal, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For metadata removal, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For metadata removal, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For metadata removal, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For metadata removal, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For metadata removal, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For metadata removal, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For metadata removal, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For metadata removal, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For metadata removal, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
For metadata removal, inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
19. memory pressure handling
For memory pressure handling, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For memory pressure handling, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For memory pressure handling, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For memory pressure handling, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For memory pressure handling, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For memory pressure handling, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For memory pressure handling, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For memory pressure handling, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For memory pressure handling, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For memory pressure handling, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For memory pressure handling, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For memory pressure handling, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For memory pressure handling, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For memory pressure handling, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For memory pressure handling, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For memory pressure handling, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
20. media tool completion
For media tool completion, establish the exact user-facing outcome and explicitly state which behavior is intentionally out of scope.
For media tool completion, read the nearest existing implementation before creating files, types, helpers, or a second pattern for the same job.
For media tool completion, map every caller, consumer, and persisted or exported output affected by this area before changing a contract.
For media tool completion, prefer the smallest local implementation that fits the established DomoDomo architecture and preserves offline behavior.
For media tool completion, use explicit TypeScript or Python types at boundaries; reject malformed values early and explain recovery to the user.
For media tool completion, keep user files, prompts, tokens, metadata, and derived artifacts on the device unless a documented local service is required.
For media tool completion, avoid adding a remote dependency, analytics call, credential requirement, or hidden network transfer to solve a local workflow.
For media tool completion, design empty, invalid, loading, cancellation, permission-denied, and failure states before treating the happy path as complete.
For media tool completion, release resources deterministically: revoke object URLs and terminate workers, listeners, streams, timers, and subscriptions.
For media tool completion, bound memory, CPU, and rendering work for large inputs; provide progress and a clear limit instead of freezing the interface.
For media tool completion, reuse DomoDomo visual patterns, semantic controls, labels, focus behavior, responsive rules, and accessible feedback.
For media tool completion, keep identifiers stable and align names, categories, descriptions, paths, exports, and documentation across all affected surfaces.
For media tool completion, record non-obvious browser, model, file-format, hardware, or platform limitations where agents and users will encounter them.
For media tool completion, treat logs, exception messages, generated artifacts, and command output as potentially sensitive; minimize what is retained or shown.
For media tool completion, verify that retries and repeated actions are safe and do not duplicate records, leak handles, or leave stale UI state.
For media tool completion, test the narrowest realistic scenario first, then test a large or slow input and a user interruption before declaring success.
Completion standard
Confirm every changed surface follows this playbook and its local-first constraints.
Confirm applicable documentation, About metrics, technical records, and blog content accurately describe the final behavior.
Confirm the handoff records the commands run, validation outcome, known limits, and intentionally deferred work.
For file size policy, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For file size policy, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For file size policy, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For file size policy, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.
For object URL lifecycle, inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
For object URL lifecycle, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For object URL lifecycle, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For object URL lifecycle, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For object URL lifecycle, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.
For canvas rendering, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For canvas rendering, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For canvas rendering, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For canvas rendering, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.
For image pixel processing, inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
For image pixel processing, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For image pixel processing, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For image pixel processing, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For image pixel processing, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.
For video timeline processing, inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
For video timeline processing, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For video timeline processing, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For video timeline processing, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For video timeline processing, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.
For audio buffer processing, inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
For audio buffer processing, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For audio buffer processing, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For audio buffer processing, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For audio buffer processing, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.
For PDF byte handling, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For PDF byte handling, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For PDF byte handling, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For PDF byte handling, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.
For document parsing, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For document parsing, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For document parsing, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For document parsing, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.
For QR encoding and decoding, inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
For QR encoding and decoding, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For QR encoding and decoding, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For QR encoding and decoding, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For QR encoding and decoding, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.
For WebAssembly loading, inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
For WebAssembly loading, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For WebAssembly loading, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For WebAssembly loading, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For WebAssembly loading, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.
For worker offloading, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For worker offloading, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For worker offloading, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For worker offloading, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.
progress reporting
For progress reporting, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For progress reporting, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For progress reporting, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For progress reporting, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.
For preview scaling, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For preview scaling, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For preview scaling, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For preview scaling, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.
For zoom controls, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For zoom controls, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For zoom controls, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For zoom controls, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.
For export format selection, inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
For export format selection, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For export format selection, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For export format selection, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For export format selection, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.
For metadata preservation, inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
For metadata preservation, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For metadata preservation, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For metadata preservation, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For metadata preservation, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.
For metadata removal, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For metadata removal, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For metadata removal, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For metadata removal, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.
For memory pressure handling, inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
For memory pressure handling, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For memory pressure handling, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For memory pressure handling, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For memory pressure handling, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.
For media tool completion, inspect the final diff for accidental generated files, credentials, databases, model data, unrelated refactors, and false claims.
For media tool completion, run the applicable project command and report its result; do not infer correctness from a visual inspection alone.
For media tool completion, update product-facing documentation, technical records, metrics, and blog content whenever this area changes a public capability.
For media tool completion, preserve unrelated working-tree changes and do not rewrite another contributor’s implementation without explicit scope.
For media tool completion, finish with a concise handoff that identifies changed files, verification evidence, limitations, and remaining follow-up work.