Safehouse Worktrees logo

Safehouse Worktrees

Community
kucherenko
safehouse-worktrees

Use when starting feature work that needs isolation from the current workspace — sets up a secure safehouse with git worktrees for clean operational bases

Overview

Publisherkucherenko
Repositorygangsta
Skill namesafehouse-worktrees
Stars
86
Forks
10
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by kucherenko on GitHub. Read the source before you install it.

Installation

Install the Safehouse Worktrees AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/kucherenko/gangsta/tree/master/skills/safehouse-worktrees
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/kucherenko/gangsta.git /tmp/gangsta
mkdir -p .claude/skills
cp -r /tmp/gangsta/skills/safehouse-worktrees .claude/skills/safehouse-worktrees
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Safehouse Worktrees in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Safehouse Worktrees on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Safehouse Worktrees is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

The Safehouse: Git Worktrees

Overview

Git worktrees create isolated operational bases sharing the same repository. Work on multiple branches simultaneously without compromising the main workspace.

Core principle: Systematic directory selection + safety verification = reliable isolation.

Announce at start: "Setting up a safehouse for isolated operations."

Directory Selection Process

Follow this priority order:

1. Check Existing Safehouses

bash
# Check in priority order
ls -d .worktrees 2>/dev/null     # Preferred (hidden)
ls -d worktrees 2>/dev/null      # Alternative

If found: Use that directory. If both exist, .worktrees/ wins.

2. Check Project Config

bash
grep -i "worktree.*director" AGENTS.md 2>/dev/null

If preference specified: Use it without asking.

3. Ask the Don

If no directory exists and no config preference:

No safehouse directory found. Where should I set up?

1. .worktrees/ (project-local, hidden)
2. ~/.config/gangsta/worktrees/<project-name>/ (global location)

Which would you prefer?

Safety Verification

For Project-Local Directories (.worktrees or worktrees)

MUST verify directory is gitignored before creating safehouse:

bash
# Check if directory is ignored (respects local, global, and system gitignore)
git check-ignore -q .worktrees 2>/dev/null || git check-ignore -q worktrees 2>/dev/null

If NOT ignored:

  1. Add appropriate line to .gitignore
  2. Commit the change immediately
  3. Proceed with safehouse creation

Why critical: Prevents accidentally committing safehouse contents to repository.

For Global Directory (~/.config/gangsta/worktrees)

No .gitignore verification needed — outside project entirely.

Creation Steps

1. Detect Project Name

bash
project=$(basename "$(git rev-parse --show-toplevel)")

2. Create Safehouse

bash
# Determine full path
case $LOCATION in
  .worktrees|worktrees)
    path="$LOCATION/$BRANCH_NAME"
    ;;
  ~/.config/gangsta/worktrees/*)
    path="~/.config/gangsta/worktrees/$project/$BRANCH_NAME"
    ;;
esac

# Create worktree with new branch
git worktree add "$path" -b "$BRANCH_NAME"
cd "$path"

3. Run Project Setup

Supply chain note: Package manager installs fetch untrusted third-party code. Where a lockfile exists, prefer lockfile-bound installs (npm ci over npm install, pip install with hash checking, etc.) to reduce supply chain risk.

Auto-detect and run appropriate setup:

bash
# Node.js
if [ -f package.json ]; then npm install; fi

# Rust
if [ -f Cargo.toml ]; then cargo build; fi

# Python
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f pyproject.toml ]; then poetry install; fi

# Go
if [ -f go.mod ]; then go mod download; fi

4. Verify Clean Baseline

Run tests to ensure safehouse starts clean:

bash
# Use project-appropriate command
npm test / cargo test / pytest / go test ./...

If tests fail: Report failures, ask the Don whether to proceed or investigate.

If tests pass: Report ready.

5. Report Location

Safehouse ready at <full-path>
Tests passing (<N> tests, 0 failures)
Ready for operations.

Quick Reference

SituationAction
.worktrees/ existsUse it (verify ignored)
worktrees/ existsUse it (verify ignored)
Both existUse .worktrees/
Neither existsCheck AGENTS.md → Ask the Don
Directory not ignoredAdd to .gitignore + commit
Tests fail during baselineReport failures + ask the Don
No package.json/Cargo.tomlSkip dependency install

Common Mistakes

Skipping ignore verification

  • Problem: Safehouse contents get tracked, pollute git status
  • Fix: Always use git check-ignore before creating project-local safehouse

Assuming directory location

  • Problem: Creates inconsistency, violates project conventions
  • Fix: Follow priority: existing > config > ask

Proceeding with failing tests

  • Problem: Can't distinguish new bugs from pre-existing issues
  • Fix: Report failures, get explicit permission from the Don

Hardcoding setup commands

  • Problem: Breaks on projects using different tools
  • Fix: Auto-detect from project files

Red Flags

Never:

  • Create safehouse without verifying it's ignored (project-local)
  • Skip baseline test verification
  • Proceed with failing tests without asking the Don
  • Assume directory location when ambiguous

Always:

  • Follow directory priority: existing > config > ask
  • Verify directory is ignored for project-local
  • Auto-detect and run project setup
  • Verify clean test baseline

Integration

Called by:

  • Resource Development — When isolation is needed for implementation
  • Any skill needing an isolated workspace

Pairs with:

  • gangsta:exit-strategy — Cleans up the safehouse when the operation is complete

Omerta Compliance

  • Rule of Availability: Safehouse location reported and checkpointed
  • Rule of Truth: Baseline test results are actual output, not claims

Frequently asked questions

What does the Safehouse Worktrees AI skill do?

Use when starting feature work that needs isolation from the current workspace — sets up a secure safehouse with git worktrees for clean operational bases

Why use Safehouse Worktrees on TypingMind?

Because you install it once and use it with any model. Safehouse Worktrees is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Safehouse Worktrees in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/kucherenko/gangsta/tree/master/skills/safehouse-worktrees. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Safehouse Worktrees?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Safehouse Worktrees?

As many as you like. As long as a model supports skills, you can use Safehouse Worktrees with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Safehouse Worktrees AI skill free?

Yes. It is published on GitHub by kucherenko under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇