Help us improve
Share bugs, ideas, or general feedback.
From web-ai-skills
Implements and debugs browser Proofreader API integrations in JavaScript/TypeScript web apps. Handles availability checks, monitored model downloads, proofread flows, correction metadata, and permissions-policy configuration.
npx claudepluginhub webmaxru/ai-native-dev --plugin web-ai-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/web-ai-skills:proofreader-apiThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Step 1: Identify the browser integration surface**
Implements browser Summarizer, Writer, and Rewriter APIs in JS/TS web apps. Handles availability checks, model download UX, session creation, streaming, abort, and permissions-policy constraints.
Provides reference architecture, TypeScript project structure, and API matrix for Grammarly integrations including client, scoring, detection, and chunking.
Two-layer copy editor. Layer 1 is a deterministic typography audit (regex-level, auto-closeable). Layer 2 is LLM judgment — reject-list hits, nominal-style detection, clarity/ambiguity pass for participant-facing content, voice/register check, and spoken- readability read. Loads repo-local .copy-editor.yaml to compose the baked-in language profile with the repo's style guide, reject list, examples, and voice doctrine. Czech is a full profile; English is a stub. **Activate automatically when the conversation edits or creates any file matching a repo's .copy-editor.yaml include scope, when the user asks about Czech or participant-facing copy, when reviewing content PRs, or when a work slice would otherwise close without a Layer 2 pass on edited visible-surface content.** Do not wait to be invoked by name. Explicit trigger phrases: copy edit, editorial pass, czech review, czech copy review, audit copy, check typography, review prose, tighten copy.
Share bugs, ideas, or general feedback.
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.