V8 Workflow Skill
This skill defines the standard process for setting up and managing your development environment in V8.
1. Task Initialization (Isolation Strategy)
Before starting any feature or bug fix, you MUST decide on a strategy:
Isolated Strategy (Recommended): Create a dedicated git worktree and branch. This prevents cross-contamination between tasks. Use
create_worktree.sh.Reuse Strategy: Work in the current directory and branch.
- Use this only if the user explicitly requests to continue previous work or prefers a single-branch workflow.
Issue Reset: If starting a new task without a worktree, always ask before resetting the
git clissue.
2. Path Management in Worktrees
When using an isolated worktree (e.g., worktrees/task-fix-10010110), you MUST
ensure that all file-modifying tools (replace, write_file, etc.) target the
correct directory:
- Explicit Prefixing: Always prefix
file_patharguments with the worktree directory. For example, useworktrees/task-fix-10010110/src/wasm/...instead ofsrc/wasm/.... - Tool Context: Be aware that relative paths starting with
src/ortest/will default to the main repository's root, violating task isolation.
3. Environment Setup
Once the branch is ready, ensure your local environment is configured for V8 development:
- depot_tools: Ensure it is in your PATH.
export PATH=$PATH:$HOME/depot_tools
- Output Directory: Use standard V8 output directories (e.g.,
out/x64.debug).
4. Available Tools
- create_worktree.sh: Automates task isolation and setup. Automatically detects whether the repository is in a standard Git checkout (creating a Git worktree) or a Rift Btrfs workspace (forking an isolated Btrfs subvolume). Use this at the start of every new task.
- cleanup_worktree.sh: Safely removes task workspaces (Git worktrees or Rift subvolumes) and prunes remnants once a CL is landed or abandoned.