Implements and debugs browser Proofreader API integrations in JavaScript or TypeScript web apps. Use when adding Proofreader availability checks, monitored model downloads, proofread flows, correction metadata handling, or permissions-policy checks for built-in proofreading. Don't use for generic prompt engineering, server-side LLM SDKs, or cloud AI services.
76
96%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
—
The risk profile of this skill
Step 1: Identify the browser integration surface
node scripts/find-proofreader-targets.mjs . to inventory likely frontend files and existing Proofreader API markers when a Node runtime is available.package.json, HTML entry point, and framework bootstrap files manually to identify the browser app boundary.Step 2: Confirm API viability and option shape
references/proofreader-reference.md before writing code.references/examples.md when the feature needs session creation, download monitoring, result rendering, or quota-aware preflight.references/compatibility.md when preview flags, browser channels, hardware requirements, iframe constraints, or browser-specific option gaps matter.references/troubleshooting.md when feature detection, availability, creation, or proofreading fails.Window context and that the current frame is allowed to use the proofreader permissions-policy feature.availability() and create() option shapes exactly, especially for expectedInputLanguages, includeCorrectionTypes, includeCorrectionExplanations, and correctionExplanationLanguage when the target browser supports them.Step 3: Implement a guarded proofreader wrapper
assets/proofreader-session.template.ts and adapt it to the framework, state model, and file layout in the workspace.Proofreader.availability() using the same non-transient create options that the runtime session will use.availability() as a capability check, not a guarantee that creation will succeed without user activation, download time, or policy approval.monitor option during create() when the UI needs download progress.AbortController for cancelable create or proofread calls, and call destroy() when the proofreading UI no longer needs the session.Step 4: Wire UX and result handling
correctedInput and the structured corrections array when the product needs visible diffs or selective acceptance.measureInputUsage() before expensive proofreading only when the feature needs quota-aware behavior or large-input preflight.Step 5: Validate behavior
node scripts/find-proofreader-targets.mjs . to confirm that the intended app boundary and Proofreader markers still resolve to the edited integration surface.availability() behavior before debugging deeper runtime failures.proofread() returns the expected correctedInput and correction ranges for representative user text.measureInputUsage(), confirm that large inputs are rejected or trimmed before the browser throws quota-related failures.references/compatibility.md before treating failures as application bugs.Proofreader is missing, keep a non-AI fallback and confirm that the environment satisfies the secure-context, browser, and preview requirements before changing product logic.availability() returns downloadable or downloading, require user-driven session creation before promising that proofreading is ready.create() or proofread() throws NotAllowedError, check permissions-policy constraints, missing user activation for downloads, browser policy restrictions, or user rejection.create() or proofread() throws NotSupportedError, align the requested languages and option set with the browser's supported combinations and remove unsupported preview-only assumptions.OperationError, UnknownError, or another runtime exception, retry once only after confirming that device eligibility, storage, and browser flags still match references/compatibility.md.f4c5a23
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.