Legal Agent Skills
A VS Code extension that sets up a minimal workspace for AI coding assistants (Claude Code, OpenAI Codex, Gemini CLI) with shared configuration and skills across agents.
What it Does
On startup, the extension automatically:
1. Sets Up Workspace Layout
- Opens with a blank editor area (no welcome page)
- Expands the Explorer sidebar
- Opens Claude Code in the secondary sidebar
- Hides agent config folders (
.claude, .codex, .gemini, .venv, .superdoc)
- Dims the
.agents folder with a robot icon
┌──────────────┬────────────────────────┬──────────────┐
│ Explorer │ │ Claude Code │
│ │ Editor Area │ Sidebar │
│ .agents/ │ (blank) │ │
│ (dimmed) │ │ │
│ │ │ │
└──────────────┴────────────────────────┴──────────────┘
2. Bootstraps Agent Configuration
Creates a centralized global directory (~/.lawvable/) that serves as the single source of truth, with workspace symlinks pointing to it:
~/.lawvable/ ← Global source of truth
├── AGENTS.md ← Shared agent instructions
├── commands/ ← Shared custom commands
├── hooks/ ← Shared safety hooks
│ ├── block-dangerous-commands.py
│ ├── enforce-skill-use.py
│ ├── enforce-uv-install.sh
│ └── enforce-uv-run.py
├── settings/ ← Agent-specific settings
│ ├── claude.json
│ ├── codex.toml
│ └── gemini.json
├── skills/ ← Shared skills (pre-installed)
└── versions.json ← Tracks installed file versions
~/.codex/ ← Codex CLI global config
└── prompts/ → ~/.lawvable/commands/ ← Symlinked for Codex discovery
project/
├── .agents/ → ~/.lawvable/ ← Symlink to global (visible, dimmed)
├── .claude/ ← Hidden via files.exclude
│ ├── CLAUDE.md → ../.agents/AGENTS.md
│ ├── commands/ → ../.agents/commands/
│ ├── hooks/ → ../.agents/hooks/
│ ├── settings.local.json → ~/.lawvable/settings/claude.json
│ └── skills/ → ../.agents/skills/
├── .codex/ ← Hidden via files.exclude
│ ├── AGENTS.md → ../.agents/AGENTS.md
│ ├── prompts/ → ../.agents/commands/
│ └── config.toml → ~/.lawvable/settings/codex.toml
├── .gemini/ ← Hidden via files.exclude
│ ├── GEMINI.md → ../.agents/AGENTS.md
│ ├── commands/ → ../.agents/commands/
│ ├── hooks/ → ../.agents/hooks/
│ ├── settings.json → ~/.lawvable/settings/gemini.json
│ └── skills/ → ../.agents/skills/
├── .venv/ ← Hidden via files.exclude
└── .superdoc/ ← Hidden via files.exclude
All agent instructions, commands, skills, and settings are symlinked so changes in one location are reflected everywhere.
3. Pre-installs Default Skills
When the skills directory is empty, automatically installs a curated set of document processing skills:
- docx-processing-anthropic - Word document creation and manipulation
- docx-editing-superdoc - Live Word document editing with track changes
- pdf-processing-anthropic - PDF document handling
- xlsx-processing-anthropic - Excel spreadsheet processing
- pptx-processing-anthropic - PowerPoint presentation handling
- skill-creator-anthropic - Create new skills
- skill-optimizer-malik-taiar - Optimize existing skills
4. Creates Python Virtual Environment
Automatically sets up an isolated Python environment using uv:
- Installs
uv if not present
- Creates
.venv with Python 3.12
- Skips if
.venv already exists
Installs shared hooks that protect your workspace:
- block-dangerous-commands.py - Blocks catastrophic shell commands (rm -rf /, fork bombs, etc.) and protects critical paths (.git, .env, package.json)
- enforce-skill-use.py - Reminds agents to use appropriate skills based on file type keywords (Word, PDF, Excel, PowerPoint)
- enforce-uv-install.sh - Ensures
uv is installed at session start
- enforce-uv-run.py - Automatically wraps
python commands with uv run for isolated execution
Hooks are configured in both Claude Code (settings.local.json) and Gemini CLI (settings.json) to intercept shell commands before execution.
6. Repairs Broken Symlinks
If an agent creates skills in a real directory (not symlink), the extension automatically:
- Merges those skills into
~/.lawvable/skills/
- Replaces the directory with a symlink
This ensures files stay synchronized across all agents.
7. Migrates from Old Structure
If upgrading from a previous version that used local .agents/ directories, the extension automatically:
- Merges local content into
~/.lawvable/
- Creates symlinks pointing to the global directory
- Preserves any customizations
8. Installs Bundled Extensions
Automatically installs and updates companion extensions:
- SuperDoc - Edit Word documents (.docx) directly in VS Code
Auto-update mechanism:
- On startup, fetches the latest filename from the server API
- If extension is missing → downloads and installs
- If installed but filename changed → downloads and installs the update
- If installed and filename matches → skips (no unnecessary downloads)
- To update: just upload a new
superdoc-yyyy-mm-dd.vsix to the server (auto-discovered)
This ensures users always have the latest bundled extensions without manual intervention.
9. Syncs Codex Prompts
Automatically syncs commands to ~/.codex/prompts/ for Codex CLI discovery:
- Creates individual file symlinks from
~/.lawvable/commands/ to ~/.codex/prompts/
- Ensures Codex CLI can discover and use shared commands
Skills Marketplace
Access the Lawvable Hub from the activity bar to:
- Browse available skills
- Install/uninstall skills to your workspace
- Submit your own skills to the marketplace
Generated Files
| File |
Description |
~/.lawvable/AGENTS.md |
Shared template for providing guidance to all AI agents |
~/.lawvable/commands/ |
Shared custom commands directory |
~/.lawvable/hooks/ |
Shared safety hooks directory |
~/.lawvable/settings/ |
Agent-specific settings files |
~/.lawvable/skills/ |
Shared skills directory (pre-installed) |
~/.lawvable/versions.json |
Tracks installed file versions for updates |
~/.codex/prompts/ |
Symlinks to commands for Codex CLI discovery |
.agents/ |
Symlink to ~/.lawvable/ (workspace) |
.claude/ |
Claude Code configuration with symlinks |
.codex/ |
Codex configuration with symlinks |
.gemini/ |
Gemini CLI configuration with symlinks |
.venv/ |
Python 3.12 virtual environment |
Default Configuration
The extension sets sensible defaults for the workspace:
| Setting |
Default |
Description |
files.exclude |
.claude, .codex, .gemini, .venv, .superdoc |
Hides agent config folders |
material-icon-theme.folders.associations |
.agents → robot |
Shows robot icon for .agents folder |
Settings
| Setting |
Default |
Description |
minimalAgentWorkspace.autoOpenOnStartup |
true |
Automatically set up workspace on startup |
minimalAgentWorkspace.autoOpenClaudeSidebar |
true |
Automatically open Claude Code sidebar |
minimalAgentWorkspace.setupPythonVenv |
true |
Automatically create Python virtual environment using uv |
Commands
| Command |
Description |
| Legal Agent Skills: Open Layout |
Manually trigger the workspace setup |
| Legal Agent Skills: Open Lawvable Hub |
Open the skills marketplace in full view |
| Legal Agent Skills: Refresh Skills |
Refresh the skills list |
| Legal Agent Skills: Submit Skill |
Submit a skill from your workspace to the marketplace |
- macOS/Linux: Uses relative symlinks
- Windows: Uses junctions (no admin rights required)
- Fallback: Copies files/directories if symlink creation fails
Privacy & Transparency
This extension:
- Creates files in your home directory (
~/.lawvable/) and workspace (.agents/, .claude/, .codex/, .gemini/, .venv/ folders)
- Downloads skills from the Lawvable marketplace API
- Downloads bundled extensions from lawvable.com
- Never overwrites existing user files (uses version tracking)
- Does not collect any data or telemetry
License
Proprietary - All rights reserved. © Lawvable