# create_worktree

Create (or reuse) an isolated git worktree for a ticket so several tickets can be worked in PARALLEL - each sub-agent edits its own checked-out directory on branch ticket/<ticket>, sharing one .git object store, never the shared repo working tree. Created at <worktreeDir>/<ticket>. IMPORTANT SYNC CAVEAT: worktrees are placed OUTSIDE the code repo by default (sibling directory <codeLocation>-worktrees/), configurable via the project config key worktreeDir - under Cowork, a worktree created INSIDE a synced repo mount can corrupt git internals or fail to sync, so this tool REFUSES a worktreeDir inside the repo and never auto-creates worktrees in the repo itself. Reuses an existing worktree at the path; creates branch ticket/<ticket> off baseRef (or current HEAD) when absent. Returns the worktree path, branch, and merge-back guidance. Errors clearly when the project has no codeLocation, the path is not a git repo, git is too old (< 2.5), or a non-worktree directory squats the path.

Agent View of the PolicyLayer registry record for `create_worktree`. HTML page: https://policylayer.com/tools/ai-featureboard-featureboard/create-worktree

## Facts

- Tool: `create_worktree`
- Server: FeatureBoard (`https://github.com/valentil/featureboard-mcp/releases/download/v0.7/featureboard.plugin`) — https://policylayer.com/tools/ai-featureboard-featureboard.md
- Homepage: https://github.com/valentil/featureboard-mcp
- Risk category: Execute (High risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_worktree",
    "arguments": {}
  }
}
```

## Why create_worktree is rated High

This tool executes git operations to create worktrees and branches, which triggers external filesystem and git repository operations. It modifies git internals (creates branches, checks out worktrees) with potentially wide blast radius if misconfigured—can corrupt git internals as the description itself warns.

From the tool's own definition: "Create (or reuse) an isolated git worktree for a ticket... on branch ticket/<ticket>... this tool REFUSES a worktreeDir i[nside synced repo]"

## Use case

AI agents invoke create_worktree to trigger actions in FeatureBoard. What it does depends on the arguments the agent supplies, and its effects often reach beyond the immediate call: builds kicked off, notifications sent, workflows started.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches FeatureBoard:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "create_worktree": {
      "limits": [
        {
          "counter": "create_worktree_rate",
          "window": "minute",
          "max": 10,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on FeatureBoard (214)

- `cancel_booking` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/cancel-booking.md
- `cleanup_worktree` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/cleanup-worktree.md
- `delete_task` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/delete-task.md
- `prune_board` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/prune-board.md
- `remove_annotation` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/remove-annotation.md
- `remove_attachment` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/remove-attachment.md
- `remove_company_agreement` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/remove-company-agreement.md
- `remove_contact` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/remove-contact.md
- `remove_media_comment` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/remove-media-comment.md
- `remove_page` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/remove-page.md
- `remove_product` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/remove-product.md
- `remove_share` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/remove-share.md
- `remove_test_page` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/remove-test-page.md
- `commit_feature` — Execute — https://policylayer.com/tools/ai-featureboard-featureboard/commit-feature.md
- `deploy_site` — Execute — https://policylayer.com/tools/ai-featureboard-featureboard/deploy-site.md
- `drift_remediate` — Execute — https://policylayer.com/tools/ai-featureboard-featureboard/drift-remediate.md
- `drift_start` — Execute — https://policylayer.com/tools/ai-featureboard-featureboard/drift-start.md
- `eval_model_matrix` — Execute — https://policylayer.com/tools/ai-featureboard-featureboard/eval-model-matrix.md
- `graduate_project` — Execute — https://policylayer.com/tools/ai-featureboard-featureboard/graduate-project.md
- `set_git_config` — Execute — https://policylayer.com/tools/ai-featureboard-featureboard/set-git-config.md
- `start_checks` — Execute — https://policylayer.com/tools/ai-featureboard-featureboard/start-checks.md
- `validate_packaging` — Execute — https://policylayer.com/tools/ai-featureboard-featureboard/validate-packaging.md
- `activate_license` — Financial — https://policylayer.com/tools/ai-featureboard-featureboard/activate-license.md
- `request_commercial_license` — Financial — https://policylayer.com/tools/ai-featureboard-featureboard/request-commercial-license.md
- `set_usage_type` — Other — https://policylayer.com/tools/ai-featureboard-featureboard/set-usage-type.md
- `auto_configure_analytics` — Read — https://policylayer.com/tools/ai-featureboard-featureboard/auto-configure-analytics.md
- `bug_impact_scan` — Read — https://policylayer.com/tools/ai-featureboard-featureboard/bug-impact-scan.md
- `check_updates` — Read — https://policylayer.com/tools/ai-featureboard-featureboard/check-updates.md
- `churn_reconcile` — Read — https://policylayer.com/tools/ai-featureboard-featureboard/churn-reconcile.md
- `code_file_map` — Read — https://policylayer.com/tools/ai-featureboard-featureboard/code-file-map.md
- …and 184 more: https://policylayer.com/tools/ai-featureboard-featureboard.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=ai-featureboard-featureboard · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/ai-featureboard-featureboard
