· 1 observation
Technical updates · 1
Package or technical metadata updated
View technical comparison →Google Chrome v0.0.188
Web platform expertise
From the developer
Not specified in the available declarations: limitations, pricing & account requirements.
Audit this project for modern web best practices and modernization opportunities
Developer declarations; not independently tested. Listing last checked Nov 6, 2026. Package observed Nov 6, 2026.
From the marketplace listing
Modern Web Guidance is an agent skill and CLI tool designed to help AI coding agents build web applications using modern, secure, and high-performance APIs rather than outdated workarounds. Supported by the Google Chrome team, it injects expert-curated web platform best practices directly into an agent's context window to prevent the generation of bloated, legacy code.
Language: English · Automatically detected from descriptions.
Exact text from the indicated source. A mention alone does not establish support for your task.
web html css javascript best-practices
· 1 observation
Package or technical metadata updated
View technical comparison →· 2 observations
Package or technical metadata updated
View technical comparison →· 2 observations
Package or technical metadata updated
View technical comparison →Package or technical metadata updated
View technical comparison →Find competitors to follow as you develop your plugin.
Design, build, improve and verify distinctive websites, web apps, PWAs, native Apple apps, Android apps and cross-platform mobile apps fr...
Shared terms: web, coding, curated, guidance
Evidence-driven web application testing, regression analysis, defect triage and production release-readiness workflows.
Shared terms: web, coding, performance, team
Expert guidance for Exxentric flywheel training, products, setup and support.
Shared terms: expertise, expert, guidance
Expert SwiftUI guidance for state management, view composition, performance, modern SDK APIs, and Liquid Glass adoption.
Shared terms: apis, expert, guidance, modern
Build web apps with frontend asset design, browser testing, UI components, payments, and database guidance.
Shared terms: web, guidance
---
name: chrome-extensions
description: >
Build and publish Chrome Extensions using Manifest V3 best practices. Use this skill
whenever the user asks to create, modify, debug, or understand Chrome browser extensions,
add-ons, or anything involving the Chrome Extensions API. Trigger on mentions of: 'Chrome
extension', 'browser extension', 'manifest.json', 'content script', 'service worker' (in
browser context), 'popup' (in browser extension context), 'side panel', 'chrome.* API',
'declarativeNetRequest', 'omnibox', 'context menu' (in extension context), 'userScripts',
'user script', 'script manager', or any request to build functionality that integrates with
the Chrome browser UI. Also trigger for publishing to the Chrome Web Store: 'publish
extension', preparing an extension for publishing, responding to a review rejection, writing
permission justifications, or drafting a privacy policy.
---
# Chrome Extensions
Build production-quality Chrome extensions using Manifest V3 and publish them to the Chrome Web Store.
## Part 1 — Building Extensions
### Mandatory Rules
These address the most common causes of broken extensions. Violating any produces a non-functional build.
#### 1. Icons: only reference files you create — or omit icons entirely
```
❌ BROKEN — referencing files that don't exist or reusing one file for all sizes:
"icons": { "16": "icon.png", "48": "icon.png", "128": "icon.png" }
✅ CORRECT — each size is a separate file at the correct pixel dimensions:
"icons": { "16": "icons/icon-16.png", "48": "icons/icon-48.png", "128": "icons/icon-128.png" }
(where icon-16.png is 16×16px, icon-48.png is 48×48px, icon-128.png is 128×128px)
✅ ALSO CORRECT — omit icons from manifest if you cannot generate real PNG files:
(just remove the "icons" and "default_icon" fields — Chrome uses a default icon)
```
**If you include icon references, you MUST create the actual image files.** Generate them with a script (see `references/extensions/icons.md`) or leave them out. Never reference non-existent files.
#### 2. Side panel: you MUST provide a way to open it
Defining `"side_panel": {"default_path": "..."}` does NOT make it openable. Add a trigger:
```js
// In service-worker.js — open side panel on extension icon click
// IMPORTANT: chrome.action.onClicked ONLY fires when there is NO default_popup
chrome.action.onClicked.addListener(async (tab) => {
await chrome.sidePanel.open({ windowId: tab.windowId });
});
```
If the extension has both a popup AND side panel, add a button in the popup that calls `chrome.sidePanel.open()`. Alternatively, use `chrome.sidePanel.setPanelBehavior({ openPanelOnActionClick: true })` — but the property is `openPanelOnActionClick`, NOT `openPanelOnActionIconClick`; the "Icon" variant causes a synchronous TypeError that silently aborts the service worker. Do NOT also define `default_popup` when using `setPanelBehavior`. See `references/extensions/side-panel.md`.
#### 3. Code execution: sandboxed iframes ONLY
Extension CSP blocks `eval()`, `new Function()`, inline `<script>` in all extension pages.
```js
// ❌ BROKEN — direct iframe DOM access throws SecurityError
iframe.contentDocument.write(html);
// ❌ BROKEN — eval in extension page
eval(userCode); // CSP blocks this
// ✅ OPTION A: Sandbox in manifest + postMessage
// manifest.json: { "sandbox": { "pages": ["sandbox.html"] } }
iframe.contentWindow.postMessage({ html, css, js }, '*');
// sandbox.html receives and runs:
window.addEventListener('message', (e) => { eval(e.data.js); /* allowed in sandbox */ });
// ✅ OPTION B: Blob URL (creates separate origin, bypasses extension CSP)
iframe.src = URL.createObjectURL(new Blob([doc], { type: 'text/html' }));
// ✅ OPTION C: srcdoc
iframe.srcdoc = `<style>${css}</style>${html}<script>${js}<\/script>`;
```
See `references/extensions/csp-sandbox.md` for full details.
#### 4. `tab.url` requires the `tabs` permission
Without it, `tab.url` silently returns `undefined` — nPreview of the first 4,000 characters. Read full instructions →
Referenced files: 23 — file references are metadata, not package contents.
---
name: modern-web-guidance
description: |
Search tool for modern web development best practices. MANDATORY: Execute FIRST for all HTML/CSS and clientside JS tasks. Do NOT skip — web APIs evolve rapidly and training weights contain obsolete patterns.
Trigger immediately for:
- UI/Layout: Modals, dialogs, popovers, Glassmorphism/backdrop-filters, anchor positioning, container queries, `:has()`, `:user-valid`.
- Scroll/Motion: View Transitions, Scroll-driven animations, scroll parallax/reveals.
- Performance: CWV (LCP, INP), content-visibility, Fetch Priority, image optimization.
- System/APIs: Local filesystem access, WebUSB, WebSockets sync, WebAssembly widgets.
- Frameworks: Adapting layout/styles in React, Vue, Angular.
- General Frontend: Forms, autofill, advanced inputs, custom scrollbars, modern component states, etc.
DO NOT trigger for:
- Backend: Database SQL, ORMs, Express API routes.
- Pipelines: CI/CD deployment, Docker, Actions.
- Generic: Local scripts (Python/Go tools), ESLint, Git.
---
# Modern Web Guidance
A skill to search for specific web development use cases and retrieve their corresponding best practice guides.
## When to use
Must use this skill:
- At the **start** of implementing any web feature.
- Before creating a new component, to check if a standardized pattern already exists.
- To avoid implementing ad-hoc solutions or loading large dependencies unnecessarily.
## Usage Instructions
### Step 1. Search Use Cases
Search with an action-oriented query summarizing what you want to achieve using the `search` command. Run `modern-web-guidance` directly with `npx`.
```sh
npx -y modern-web-guidance@latest search "<query>" --skill-version 2026_09_04-7de96777
```
**Example Output**:
```json
[
{
"id": "optimize-image-priority",
"description": "Optimize the loading priority of Largest Contentful Paint (LCP) candidate images.",
"category": "performance",
"featuresUsed": [ "Fetch priority" ],
"tokenCount": 985,
"similarity": 0.7289
},
{
"id": "defer-rendering-heavy-content",
"description": "Reduce rendering times in content-heavy web pages by deferring rendering for offscreen content.",
"category": "performance",
"featuresUsed": [ "content-visibility", "hidden=\"until-found\"" ],
"tokenCount": 1250,
"similarity": 0.6961
}
]
```
> **Note**: If search results are vague, return no matches, or show low similarity scores, run the `list` command to browse all guides:
> ```sh
> npx -y modern-web-guidance@latest list
> ```
---
### Step 2. Retrieve Best Practices
Once you have a relevant `id` from the search results, call this script using the `retrieve` command to get the full guide. You can pass multiple IDs separated by commas.
```sh
npx -y modern-web-guidance@latest retrieve "<id>"
```
If the output is truncated, you must repeat the command but redirect to a file and read that file.
**Example Output**:
`The markdown content of the guide describing implementation steps...`
---
### Step 3. Verify Guidance Compliance
When generating or modifying code, cross-check the implementation against the retrieved guide before concluding:
- **Applicable Guidance & Fallbacks**: Ensure the relevant modern patterns and necessary fallback strategies from the guide are correctly applied, without forcing unrequested features.
- **Task Fulfillment**: Confirm that the implementation fully satisfies the user's request.
## Using npx / pnpx
- Prefer `pnpx` over `npx` if `pnpm` is available (note: `pnpx` does not use the `-y` flag).
- When requesting tool permissions, allowlist `npx -y modern-web-guidance@latest *` specifically (or `pnpx modern-web-guidance@latest *`), never bare `npx *` or `pnpx *`.
- IMPORTANT: on Windows, using `npx` may fail. Use `npx.cmd ...` instead.
- Fetching and running `modern-web-guidance` requires outbound network access. If running in a sandboxed, permission-gated, or approval-based environment (e.g., Codex, ClaudePreview of the first 4,000 characters. Read full instructions →
Referenced files: 144 — file references are metadata, not package contents.
Publisher declarations from the archived package. These are separate from our research and the live service's terms.
Some manifest fields differ or could not be read. The structured report retains the source references.
Package observed Nov 6, 2026.
plugins_6aa7f81337c481918a5ee55e13498c40
Download plugin data (JSON)