Guidelines
akash-network/node
Behavioral guidelines to reduce common LLM coding mistakes. An agent skill from akash-network/node.
Refactor Chrome desktop Browser-scoped logic, such as Browser and BrowserWindow methods and state, into encapsulated feature controllers owned by BrowserWindowFeatures.
$ npx skills add nwjs/chromium.src --skill browser-window-feature-refactor -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nwjs/chromium.src browser-window-feature-refactor --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/nwjs/chromium.src.git skills-src && mkdir -p .claude/skills && cp -r skills-src/agents/skills/browser-window-feature-refactor .claude/skills/browser-window-feature-refactor && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "browser-window-feature-refactor" agent skill from https://github.com/nwjs/chromium.src/tree/main/agents/skills/browser-window-feature-refactor into .claude/skills/browser-window-feature-refactor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser-window-feature-refactor", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/nwjs/chromium.src/tree/main/agents/skills/browser-window-feature-refactorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add nwjs/chromium.src --skill browser-window-feature-refactor -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nwjs/chromium.src browser-window-feature-refactor --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nwjs/chromium.src.git skills-src && mkdir -p .agents/skills && cp -r skills-src/agents/skills/browser-window-feature-refactor .agents/skills/browser-window-feature-refactor && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "browser-window-feature-refactor" agent skill from https://github.com/nwjs/chromium.src/tree/main/agents/skills/browser-window-feature-refactor into .agents/skills/browser-window-feature-refactor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser-window-feature-refactor", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nwjs/chromium.src --skill browser-window-feature-refactor -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nwjs/chromium.src browser-window-feature-refactor --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nwjs/chromium.src.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/agents/skills/browser-window-feature-refactor .cursor/skills/browser-window-feature-refactor && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "browser-window-feature-refactor" agent skill from https://github.com/nwjs/chromium.src/tree/main/agents/skills/browser-window-feature-refactor into .cursor/skills/browser-window-feature-refactor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser-window-feature-refactor", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/nwjs/chromium.src.git --path agents/skills/browser-window-feature-refactor--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add nwjs/chromium.src --skill browser-window-feature-refactor -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nwjs/chromium.src browser-window-feature-refactor --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nwjs/chromium.src.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/agents/skills/browser-window-feature-refactor .gemini/skills/browser-window-feature-refactor && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "browser-window-feature-refactor" agent skill from https://github.com/nwjs/chromium.src/tree/main/agents/skills/browser-window-feature-refactor into .gemini/skills/browser-window-feature-refactor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser-window-feature-refactor", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install nwjs/chromium.src browser-window-feature-refactorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add nwjs/chromium.src --skill browser-window-feature-refactor -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/nwjs/chromium.src.git skills-src && mkdir -p .github/skills && cp -r skills-src/agents/skills/browser-window-feature-refactor .github/skills/browser-window-feature-refactor && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "browser-window-feature-refactor" agent skill from https://github.com/nwjs/chromium.src/tree/main/agents/skills/browser-window-feature-refactor into .github/skills/browser-window-feature-refactor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser-window-feature-refactor", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nwjs/chromium.src --skill browser-window-feature-refactor -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install nwjs/chromium.src browser-window-feature-refactor --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nwjs/chromium.src.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/agents/skills/browser-window-feature-refactor .opencode/skills/browser-window-feature-refactor && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "browser-window-feature-refactor" agent skill from https://github.com/nwjs/chromium.src/tree/main/agents/skills/browser-window-feature-refactor into .opencode/skills/browser-window-feature-refactor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser-window-feature-refactor", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
browser-window-feature-refactorRefactor Chrome desktop Browser-scoped logic, such as Browser and BrowserWindow methods and state, into encapsulated feature controllers owned by BrowserWindowFeatures.
Browser Window Feature Refactor is an agent skill from nwjs/chromium.src. Refactor Chrome desktop Browser-scoped logic, such as Browser and BrowserWindow methods and state, into encapsulated feature controllers owned by BrowserWindowFeatures.
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/bwf-ordering.md`).
It sits in Development, covering Refactoring. The repository describes itself as: Chromium codebase with NW.js modifications. Based on https://chromium.googlesource.com/chromium/src.git. The licence is BSD-3-Clause.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit a9e8946. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are cpp).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Browser Window Feature Refactor loads about 2.3k tokens when it runs, and up to ~3.1k if it reads all its reference files. Until then it costs about 52 tokens; SKILL.md has 964 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from nwjs/chromium.src at commit a9e8946, republished under its BSD-3-Clause licence (© nwjs). 964 words, ~2,264 tokens.
.claude/skills/browser-window-feature-refactor/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Use this skill for Project Bedrock refactors that modularize desktop Chrome
browser-window logic by moving ownership, methods, or initialization into
BrowserWindowFeatures (BWF) and its feature controllers.
BrowserWindowInterface, Profile,
TabStripModel, BrowserWindow, or feature-controller dependencies before
reaching for Browser* or GetBrowserForMigrationOnly().Use this when BrowserWindow/BrowserView/WebUIBrowserWindow exposes
cohesive feature-specific behavior and no existing BWF-owned controller matches
it.
Workflow:
Create the controller near the feature's UI domain.
Pass only the dependencies the controller needs. Prefer
BrowserWindowInterface*, Profile*, TabStripModel*, BrowserWindow*,
concrete view dependencies, or other feature controller dependencies owned by
BrowserWindowFeatures over Browser* when practical.
Add GN sources and deps to the narrow owning target. Verify a modular
BUILD.gn exists in the feature controller's own directory and add the
controller there, using public/sources separation (public headers in
public, implementation in sources). Do not cargo-cult the sources into a
monolithic target such as //chrome/browser or //chrome/browser/ui; if no
modular target exists yet, create one in the controller's directory.
Own the controller with a std::unique_ptr<FooController> member, and in the
same edit add a matching forward declaration class FooController; to the
BWF header (see step 5 — never skip it). Initialize the member in the
earliest correct lifecycle hook via the BrowserWindowFeatures user data
factory rather than std::make_unique. Configuring new controllers through
the factory keeps them easy to fake or override in tests. Add
Must be before/after comments when ordering matters.
Example:
foo_controller_ =
GetUserDataFactory().CreateInstance<FooController>(*browser, ...);Always pair the std::unique_ptr<FooController> member with a forward
declaration in the same header. Add class FooController; alongside the
other forward declarations in the BWF header — never #include the
controller header (its #include belongs in the .cc). The
std::unique_ptr<FooController> member from step 4 names an incomplete type,
so omitting class FooController; breaks compilation. Adding the member
without the forward declaration is the most common mistake in this migration
— double-check the header has both before moving on.
The header needs two coupled edits — the forward declaration near the top and the member lower down. They live far apart, so it is easy to land the member but forget the forward declaration. Make both edits, as shown:
// browser_window_features.h
// Forward declarations (keep this block sorted).
class BarController;
class FooController; // <-- EDIT 1: add alongside the existing declarations.
class QuxController;
class BrowserWindowFeatures {
// ...
private:
std::unique_ptr<FooController> foo_controller_; // <-- EDIT 2: the member.
};Before moving on, open the BWF header and confirm class FooController; is
present in the forward-declaration block. If it is missing, add it now — a
std::unique_ptr<FooController> member with no matching forward declaration
is a guaranteed compile failure.
Expose the controller through UnownedUserData: declare it with
DECLARE_USER_DATA(FooController), hold a
ui::ScopedUnownedUserData<FooController> member, and provide a static
From(browser) that returns the instance corresponding to the
BrowserWindowInterface. Do not add a public BWF accessor; even when
sibling controllers already expose accessors, do not mirror them for the new
controller; add one only if an existing caller genuinely needs it.
Example setup in foo_controller.h:
#include "ui/base/unowned_user_data/scoped_unowned_user_data.h"
class FooController {
public:
DECLARE_USER_DATA(FooController);
explicit FooController(BrowserWindowInterface* browser);
// Returns the instance owned by `browser`, or nullptr.
static FooController* From(BrowserWindowInterface* browser);
private:
ui::ScopedUnownedUserData<FooController> scoped_user_data_;
};Matching implementation in foo_controller.cc:
FooController::FooController(BrowserWindowInterface* browser)
: scoped_user_data_(browser->GetUnownedUserDataHost(), *this) {}
// static
FooController* FooController::From(BrowserWindowInterface* browser) {
return Get(browser->GetUnownedUserDataHost());
}Update all callsites — in both production code and tests — to reach the
controller through FooController::From(browser). Missing callsites stay
silent until step 8 removes the old API, then break as compilation errors in
production and test targets; refactor them now instead of later hunting for
the removed BrowserWindow methods.
Remove obsolete
BrowserWindow/BrowserView/WebUIBrowserWindow/test-window API.
Use this when the target feature already has a BWF-owned controller.
Workflow:
BrowserWindow or BrowserView virtual methods.BrowserWindow shim.Use this when a controller is already BWF-owned but constructed in a later hook than its dependencies require.
Lifecycle decision tree:
Init(): Feature does not require the concrete window object or view
hierarchy. It can depend on BrowserWindowInterface, Profile,
TabStripModel, session id, type, and other BWF state already created there.InitPostWindowConstruction(): Feature needs BrowserWindow, widget focus
manager, BrowserView vs WebUIBrowserWindow dispatch, the view hierarchy,
or window-level platform objects.TearDownPreBrowserWindowDestruction(): Feature has observers, raw pointers,
view/window dependencies, or explicit teardown requirements that must be
cleared before the window is destroyed.Before modifying BrowserWindowFeatures, read
bwf-ordering.md. Preserve the lifecycle and
ownership layout; do not mechanically alphabetize private members.
Avoid:
BrowserWindow virtual methods or thin BWF wrappers around
BrowserView.FooController::From(browser)).MANDATORY — do not report the task complete until this passes. For a new
feature controller, re-open the BWF header and confirm it literally contains
both class FooController; (forward-declaration block) and the
std::unique_ptr<FooController> member. These are two separate edits and a tool
edit can silently fail to land; if either is missing, re-apply it and re-read
the file to verify. Treat a header missing either line as a blocking failure,
not done — a member without its forward declaration (or vice versa) does not
compile.
In the final report, state:
GetBrowserForMigrationOnly() usage and why it remains;class FooController; and the std::unique_ptr<FooController> member;© nwjs, BSD-3-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in agents/skills/browser-window-feature-refactor of nwjs/chromium.src.
Open the folder on GitHubat commit a9e8946
Browser Window Feature Refactor next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Browser Window Feature Refactor this skillnwjs/chromium.src | 160 | — | ~2.3k | Automated safety check: Pass | BSD-3-Clause | |
| Guidelinesakash-network/node | 1.1k | 22 repos | ~577 | Automated safety check: Pass | MIT | |
| Component Refactoringlangflow-ai/langflow | 156k | — | ~3.5k | Automated safety check: Pass | MIT | |
| Migrate Core Code to Submodulestinyhumansai/openhuman | 42k | — | ~2.6k | Automated safety check: Pass | GPL-3.0 | |
| Systematic Code Refactoringluongnv89/claude-howto | 42k | — | ~3k | Automated safety check: Pass | MIT | |
| Codexskills-directory/skill-codex | 1.5k | 3 repos | ~1.8k | Automated safety check: Pass | MIT |
akash-network/node
Behavioral guidelines to reduce common LLM coding mistakes. An agent skill from akash-network/node.
langflow-ai/langflow
Refactor high-complexity React components in Langflow frontend.
tinyhumansai/openhuman
Plans and carries out moving non-host-specific code and its tests from the OpenHuman core into vendored tiny submodule libraries, then releases the submodule and re-pins the host.
luongnv89/claude-howto
Guides refactoring in phases based on Martin Fowler's method: research, test coverage check, planning and small tested steps, with your approval at each phase.
skills-directory/skill-codex
A skill your agent uses when the user asks to run Codex CLI (codex exec, codex resume) or references OpenAI Codex for code analysis, refactoring, or automated editing
DavidObando/gsharp
Forces the laziest solution that actually works, simplest, shortest, most minimal.
nwjs/chromium.src
Extracts raw trace data from Perfetto traces, runs arbitrary SQL queries for custom follow-up analysis, and applies expert cognitive principles (Tiered Flow Analysis, Semantic Mismatch, Redundancy)…
nwjs/chromium.src
Autonomous multi-agent performance optimization loop for Chromium and V8.
nwjs/chromium.src
Automated Tracing & Performance Telemetry in Chromium using Perfetto and Telemetry benchmarks.
nwjs/chromium.src
Queries Chrome commit, version, release, and milestone metadata.
nwjs/chromium.src
Search and reference Chromium documentation from the local docs index, including design docs, APIs, and development guides.
nwjs/chromium.src
Diagnose Chromium GN dependency and include-visibility failures, including BUILD.gn deps/publicdeps, DEPS include rules, private headers, and circular dependencies.
Categories
Refactor Chrome desktop Browser-scoped logic, such as Browser and BrowserWindow methods and state, into encapsulated feature controllers owned by BrowserWindowFeatures. src. Refactor Chrome desktop Browser-scoped logic, such as Browser and BrowserWindow methods and state, into encapsulated feature controllers owned by BrowserWindowFeatures.
Browser Window Feature Refactor fits situations like: tasks that involve Refactoring.
Run `npx skills add nwjs/chromium.src --skill browser-window-feature-refactor -a claude-code`. Or copy the skill folder (agents/skills/browser-window-feature-refactor in nwjs/chromium.src) into .claude/skills/browser-window-feature-refactor in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nwjs/chromium.src --skill browser-window-feature-refactor -a codex`. Or copy the skill folder (agents/skills/browser-window-feature-refactor in nwjs/chromium.src) into .agents/skills/browser-window-feature-refactor in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nwjs/chromium.src --skill browser-window-feature-refactor -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/browser-window-feature-refactor, .gemini/skills/browser-window-feature-refactor, .github/skills/browser-window-feature-refactor and .opencode/skills/browser-window-feature-refactor in your project.
SKILL.md names no scripts, command-line tools or credentials: Browser Window Feature Refactor is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Browser Window Feature Refactor is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 854 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Browser Window Feature Refactor: Guidelines (akash-network/node, 1.1k stars), Component Refactoring (langflow-ai/langflow, 156k stars), Migrate Core Code to Submodules (tinyhumansai/openhuman, 42k stars) and Systematic Code Refactoring (luongnv89/claude-howto, 42k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
nwjs (a GitHub organization) maintains it in nwjs/chromium.src, which has 160 GitHub stars. The repository holds 64 skills in this directory. The repository was last updated on October 3, 2026.
Source: nwjs/chromium.src on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.