Implement Ag Playbook
AgnosticUI/agnosticui
Implement a playbook from its PROMPT specification files. An agent skill from AgnosticUI/agnosticui.
Build VS Code extensions from scratch or convert existing JS/React/Vue apps.
$ npx skills add lawve-ai/awesome-legal-skills --skill vscode-extension-builder-lawvable -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install lawve-ai/awesome-legal-skills vscode-extension-builder-lawvable --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/lawve-ai/awesome-legal-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/vs-code-extension-antoine-louis .claude/skills/vscode-extension-builder-lawvable && 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 "vscode-extension-builder-lawvable" agent skill from https://github.com/lawve-ai/awesome-legal-skills/tree/main/skills/vs-code-extension-antoine-louis into .claude/skills/vscode-extension-builder-lawvable/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vscode-extension-builder-lawvable", 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/lawve-ai/awesome-legal-skills/tree/main/skills/vs-code-extension-antoine-louisType 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 lawve-ai/awesome-legal-skills --skill vscode-extension-builder-lawvable -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install lawve-ai/awesome-legal-skills vscode-extension-builder-lawvable --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lawve-ai/awesome-legal-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/vs-code-extension-antoine-louis .agents/skills/vscode-extension-builder-lawvable && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "vscode-extension-builder-lawvable" agent skill from https://github.com/lawve-ai/awesome-legal-skills/tree/main/skills/vs-code-extension-antoine-louis into .agents/skills/vscode-extension-builder-lawvable/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vscode-extension-builder-lawvable", 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 lawve-ai/awesome-legal-skills --skill vscode-extension-builder-lawvable -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install lawve-ai/awesome-legal-skills vscode-extension-builder-lawvable --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lawve-ai/awesome-legal-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/vs-code-extension-antoine-louis .cursor/skills/vscode-extension-builder-lawvable && 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 "vscode-extension-builder-lawvable" agent skill from https://github.com/lawve-ai/awesome-legal-skills/tree/main/skills/vs-code-extension-antoine-louis into .cursor/skills/vscode-extension-builder-lawvable/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vscode-extension-builder-lawvable", 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/lawve-ai/awesome-legal-skills.git --path skills/vs-code-extension-antoine-louis--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 lawve-ai/awesome-legal-skills --skill vscode-extension-builder-lawvable -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install lawve-ai/awesome-legal-skills vscode-extension-builder-lawvable --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lawve-ai/awesome-legal-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/vs-code-extension-antoine-louis .gemini/skills/vscode-extension-builder-lawvable && 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 "vscode-extension-builder-lawvable" agent skill from https://github.com/lawve-ai/awesome-legal-skills/tree/main/skills/vs-code-extension-antoine-louis into .gemini/skills/vscode-extension-builder-lawvable/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vscode-extension-builder-lawvable", 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 lawve-ai/awesome-legal-skills vscode-extension-builder-lawvableInstalls 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 lawve-ai/awesome-legal-skills --skill vscode-extension-builder-lawvable -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/lawve-ai/awesome-legal-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/vs-code-extension-antoine-louis .github/skills/vscode-extension-builder-lawvable && 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 "vscode-extension-builder-lawvable" agent skill from https://github.com/lawve-ai/awesome-legal-skills/tree/main/skills/vs-code-extension-antoine-louis into .github/skills/vscode-extension-builder-lawvable/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vscode-extension-builder-lawvable", 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 lawve-ai/awesome-legal-skills --skill vscode-extension-builder-lawvable -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install lawve-ai/awesome-legal-skills vscode-extension-builder-lawvable --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lawve-ai/awesome-legal-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/vs-code-extension-antoine-louis .opencode/skills/vscode-extension-builder-lawvable && 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 "vscode-extension-builder-lawvable" agent skill from https://github.com/lawve-ai/awesome-legal-skills/tree/main/skills/vs-code-extension-antoine-louis into .opencode/skills/vscode-extension-builder-lawvable/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vscode-extension-builder-lawvable", 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.
vscode-extension-builder-lawvableBuild VS Code extensions from scratch or convert existing JS/React/Vue apps.
Vscode Extension Builder Lawvable is an agent skill from lawve-ai/awesome-legal-skills. Build VS Code extensions from scratch or convert existing JS/React/Vue apps. Supports commands, webviews (React/Vue), custom editors, tree views, and AI agent integration via file-bridge IPC. Use when user wants to create a VS Code extension, convert a web app to an extension, add webviews or custom UIs to VS Code, implement tree views, build custom file editors, integrate with AI agents, or package/publish extensions (.vsix).
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 52 other files, including reference files and assets (for example `README.md`, `assets/basic-command/esbuild.js` and `assets/basic-command/package.json`).
It works with Visual Studio Code, React, Vue.js and npm. The repository describes itself as: A curated list of awesome Agent Skills for automating legal work. The licence is AGPL-3.0.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 045f738. 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.
Ships script files (JavaScript and TypeScript, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
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.
Vscode Extension Builder Lawvable loads about 1.9k tokens when it runs, and up to ~26k if it reads all its reference files. Until then it costs about 116 tokens; SKILL.md has 486 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 lawve-ai/awesome-legal-skills at commit 045f738, republished under its AGPL-3.0 licence (© lawve-ai). 486 words, ~1,918 tokens.
.claude/skills/vscode-extension-builder-lawvable/SKILL.md (or your agent's skills folder). This skill also uses 46 other files; get the full folder from GitHub.Build VS Code extensions from scratch or convert existing web apps into portable, shareable extensions.
VS Code extensions run in two contexts:
Build stack: TypeScript + esbuild (extension) + Vite (webviews)
assets/ based on your needs (see decision tree below)package.json: name, displayName, publisher, descriptionnpm install then npm run build| Need | Template |
|---|---|
| Simple command/action | assets/basic-command/ |
| Custom UI panel (React) | assets/webview-react/ |
| Sidebar file tree | assets/tree-view/ |
| Custom file editor | assets/custom-editor/ |
| AI agent integration | assets/file-bridge/ |
Register actions triggered via Command Palette, keyboard shortcuts, or menus.
vscode.commands.registerCommand('myExt.doSomething', () => {
vscode.window.showInformationMessage('Done!');
});See references/api-reference.md for common APIs.
Full HTML/CSS/JS UIs in panels or sidebar. Use React for complex interfaces.
const panel = vscode.window.createWebviewPanel(
'myView', 'My Panel', vscode.ViewColumn.One,
{ enableScripts: true }
);
panel.webview.html = getWebviewContent();See references/webview-patterns.md for React setup, messaging, and CSP.
Hierarchical data in the sidebar (file explorers, outlines, lists).
vscode.window.registerTreeDataProvider('myTreeView', new MyTreeProvider());See references/tree-view-patterns.md for TreeDataProvider patterns.
Replace the default editor for specific file types.
vscode.window.registerCustomEditorProvider('myExt.myEditor', new MyEditorProvider());See references/custom-editor-patterns.md for document sync and undo/redo.
To convert a JS/React/Vue app into an extension:
| Web API | VS Code Equivalent |
|---|---|
localStorage | context.globalState / context.workspaceState |
fetch() | vscode.workspace.fs or keep fetch for external APIs |
| Router | Multiple webview panels or sidebar views |
alert() | vscode.window.showInformationMessage() |
prompt() | vscode.window.showInputBox() |
confirm() | vscode.window.showWarningMessage() with options |
See references/conversion-guide.md for detailed step-by-step process.
Extension code — Use esbuild (fast, simple):
// esbuild.js
esbuild.build({
entryPoints: ['src/extension.ts'],
bundle: true,
outfile: 'dist/extension.js',
external: ['vscode'],
format: 'cjs',
platform: 'node',
});Webview code — Use Vite (HMR, React support):
// vite.config.ts
export default defineConfig({
build: {
outDir: '../dist/webview',
rollupOptions: { output: { entryFileNames: '[name].js' } }
}
});See references/build-config.md for complete configurations.
Essential fields:
{
"name": "my-extension",
"displayName": "My Extension",
"publisher": "your-publisher-id",
"version": "0.0.1",
"engines": { "vscode": "^1.85.0" },
"main": "./dist/extension.js",
"activationEvents": [],
"contributes": {
"commands": [{ "command": "myExt.hello", "title": "Hello" }]
}
}The contributes section defines commands, menus, views, settings, keybindings, and more.
See references/contribution-points.md for all contribution types.
Use postMessage for bidirectional communication:
// Extension → Webview
panel.webview.postMessage({ type: 'update', data: {...} });
// Webview → Extension
panel.webview.onDidReceiveMessage(msg => {
if (msg.type === 'save') { /* handle */ }
});Use file-based IPC for communication with Claude Code or other agents:
// Watch for command files
fs.watch(commandDir, (event, filename) => {
if (filename.endsWith('.json')) {
const command = JSON.parse(fs.readFileSync(path.join(commandDir, filename)));
processCommand(command);
}
});See references/ai-integration.md for the file-bridge pattern.
npm install -g @vscode/vsce
vsce packageThis creates my-extension-0.0.1.vsix.
Exclude unnecessary files:
.vscode/**
node_modules/**
src/**
*.ts
tsconfig.json
esbuild.js
vite.config.tscode --install-extension file.vsixvsce publish (requires Microsoft account)For extensions with native dependencies:
vsce package --target win32-x64
vsce package --target darwin-arm64
vsce package --target linux-x64| File | When to Read |
|---|---|
| api-reference.md | Implementing extension features |
| contribution-points.md | Configuring package.json contributes |
| webview-patterns.md | Building React webviews |
| tree-view-patterns.md | Implementing tree views |
| custom-editor-patterns.md | Building custom file editors |
| build-config.md | Configuring esbuild/Vite |
| conversion-guide.md | Converting web apps |
| ai-integration.md | Integrating with AI agents |
| Template | Description |
|---|---|
| basic-command/ | Minimal extension with one command |
| webview-react/ | React webview panel with messaging |
| tree-view/ | Sidebar tree view with provider |
| custom-editor/ | Custom editor for specific file types |
| file-bridge/ | File-based IPC for AI agents |
© lawve-ai, AGPL-3.0. 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 46 other files (references, assets) in skills/vs-code-extension-antoine-louis of lawve-ai/awesome-legal-skills.
Open the folder on GitHubat commit 045f738
Vscode Extension Builder Lawvable 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 |
|---|---|---|---|---|---|---|
| Vscode Extension Builder Lawvable this skilllawve-ai/awesome-legal-skills | 847 | — | ~1.9k | Automated safety check: Pass | AGPL-3.0 | |
| Implement Ag PlaybookAgnosticUI/agnosticui | 827 | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Any Tdf Developmentany-tdf/any-tdf | 778 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Kb Web ScanningCommunity-Access/accessibility-agents | 423 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Getting Startedlive-codes/livecodes | 1.5k | — | ~1.6k | Automated safety check: Pass | MIT | |
| Releasedevlint/GitWand | 180 | — | ~1.8k | Automated safety check: Pass | MIT |
AgnosticUI/agnosticui
Implement a playbook from its PROMPT specification files. An agent skill from AgnosticUI/agnosticui.
any-tdf/any-tdf
Guide implementation, fixes, reviews, documentation, generation, and validation in the Any TDF monorepo across the shared core, STDF/Svelte, RTDF/React, VTDF/Vue, demos, sites, tooling, AI skill…
Community-Access/accessibility-agents
Reference data, not a reviewer. An agent skill from Community-Access/accessibility-agents.
live-codes/livecodes
Quick start for standalone app at livecodes.io, embedding playgrounds with CDN or npm, and self-hosting basics.
devlint/GitWand
Guide a clean GitWand release end-to-end: bump version, update CHANGELOG, commit, tag, and push.
Light0305/Light-skills
Light 按需工程技能·前端设计:把模糊的「做个好看的界面」落成能跑的 React/Tailwind/shadcn 代码 + 设计决策说明—— 有视觉记忆点(signature element)、风格自洽(design tokens 一致)、适配场景(学术海报/数据大屏/管理后台/移动端/营销 landing 信息密度各不同)、反「一眼 AI」(紫蓝渐变/Inter/16px 圆角/巨型…
lawve-ai/awesome-legal-skills
U.S. An agent skill from lawve-ai/awesome-legal-skills.
lawve-ai/awesome-legal-skills
Practitioner skill for advising on EU Regulation 2023/2854 (Data Act).
lawve-ai/awesome-legal-skills
Calendar litigation and arbitration deadlines from a scheduling order.
lawve-ai/awesome-legal-skills
Read, search, and download emails and attachments from Microsoft Outlook via OAuth2.
lawve-ai/awesome-legal-skills
Turn an interpretive-ambiguity audit of a legal text — contract, statute, regulation, or judicial opinion — into a polished deliverable.
lawve-ai/awesome-legal-skills
Audits a website for compliance with Azerbaijan's Law on Personal Data No.
Works with
Build VS Code extensions from scratch or convert existing JS/React/Vue apps. Vscode Extension Builder Lawvable is an agent skill from lawve-ai/awesome-legal-skills. Build VS Code extensions from scratch or convert existing JS/React/Vue apps.
Vscode Extension Builder Lawvable fits situations like: user wants to create a VS Code extension; convert a web app to an extension; custom UIs to VS Code; implement tree views.
Run `npx skills add lawve-ai/awesome-legal-skills --skill vscode-extension-builder-lawvable -a claude-code`. Or copy the skill folder (skills/vs-code-extension-antoine-louis in lawve-ai/awesome-legal-skills) into .claude/skills/vscode-extension-builder-lawvable in your project. Claude Code loads it when a task matches its description.
Run `npx skills add lawve-ai/awesome-legal-skills --skill vscode-extension-builder-lawvable -a codex`. Or copy the skill folder (skills/vs-code-extension-antoine-louis in lawve-ai/awesome-legal-skills) into .agents/skills/vscode-extension-builder-lawvable 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 lawve-ai/awesome-legal-skills --skill vscode-extension-builder-lawvable -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vscode-extension-builder-lawvable, .gemini/skills/vscode-extension-builder-lawvable, .github/skills/vscode-extension-builder-lawvable and .opencode/skills/vscode-extension-builder-lawvable in your project.
Going by SKILL.md and its folder, Vscode Extension Builder Lawvable needs JavaScript and TypeScript for the scripts in its folder and the command-line tools its instructions call (npm). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. 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.
Vscode Extension Builder Lawvable is published under the AGPL-3.0 licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.7k 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 24k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Vscode Extension Builder Lawvable: Implement Ag Playbook (AgnosticUI/agnosticui, 827 stars), Any Tdf Development (any-tdf/any-tdf, 778 stars), Kb Web Scanning (Community-Access/accessibility-agents, 423 stars) and Getting Started (live-codes/livecodes, 1.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
lawve-ai (a GitHub organization) maintains it in lawve-ai/awesome-legal-skills, which has 847 GitHub stars. The repository holds 154 skills in this directory. The repository was last updated on October 2, 2026.
Source: lawve-ai/awesome-legal-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.