Tony bootstrap

Bootstrap new Gardener instances from the openseed3 template. Use this skill when setting up a new Gardener instance, cloning the openseed3 repo, generating SSH deploy keys, and creating launch scripts. Triggers on "bootstrap", "new gardener", "setup gardener", "clone openseed3", "create gardener instance".

install
source · Clone the upstream repo
git clone https://github.com/jaydeland/Tony
manifest: bootstrap/skill.md
source content

Bootstrap New Gardener Instances

Purpose: Clone the openseed3 template, configure SSH access, and create a launch script for new Gardener instances.


Architecture

Gardener instances follow these conventions:

  • Location: Sibling directory to openseed3 (
    ../[gardener-name]
    )
  • Memory: Always full DuckDB persistent (history + metrics)
  • Skills: Discovered at runtime from
    .claude/skills/
  • Dashboard: Always included (FastAPI + uvicorn + websockets)

Bootstrap Flow

1. Clone Repository

# SSH (preferred)
git clone git@github.com:jaydeland/openseed3.git ../[gardener-name]

# Fallback to HTTPS if SSH fails
git clone https://github.com/jaydeland/openseed3.git ../[gardener-name]

# Remove origin remote
cd ../[gardener-name]
git remote remove origin

2. Generate SSH Deploy Key

# Generate ed25519 key
ssh-keygen -t ed25519 \
  -f ~/.ssh/gardener-[repo-name] \
  -N "" \
  -C "gardener-deploy-[repo-name]"

# Add to GitHub deploy keys
gh ssh-key add ~/.ssh/gardener-[repo-name].pub --title "gardener-[repo-name]"

3. Create launch.sh

#!/bin/bash
# Launch script for [gardener-name]

set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"

echo "=== Starting [gardener-name] ==="

# Activate virtual environment
if [ -d ".venv" ]; then
    source .venv/bin/activate
else
    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
fi

export PYTHONPATH="$SCRIPT_DIR:$PYTHONPATH"

# Start harness (foreground by default)
python -m thegardener.harness

# Daemon mode: python -m thegardener.harness &

4. Generate seed.md

Minimal identity document only - configuration lives in the bootstrap skill:

# [gardener-name] - Autonomous Gardener Instance

## Identity

You are [gardener-name], an autonomous Gardener instance built on the Strands Agents SDK.

## Purpose

Process inputs, classify tasks, and delegate to specialized agents. When encountering unknown tasks, invoke teach-agent to learn and create new skills.

## Decision Framework

| Input Keywords | Agent |
|---------------|-------|
| obsidian, bookmark, note | obsidian |
| fix, bug, issue, resolve | gsd-2 |
| roadmap, plan, feature | gsd-2 |
| pr, repo, workflow | gh-cli |
| dashboard, metrics | openui-dashboard |
| [unknown] | teach-agent |

Usage

from thegardener import AgentHarness

# Create harness in the new Gardener instance
harness = AgentHarness()

# Run bootstrap
bootstrap_agent = harness.get_or_create_agent("bootstrap")
result = bootstrap_agent("Bootstrap new Gardener: my-gardener")

Configuration Defaults

All configuration uses sensible defaults - only Gardener name is requested:

SettingDefault
Input SourcesCLI
Output ChannelsConsole
Memory ConfigFull (DuckDB)
AI ProviderAnthropic
Source Repojaydeland/openseed3

Users can customize post-bootstrap by editing

seed.md
or the bootstrap skill.


Error Recovery

ErrorRecovery
SSH clone failsFallback to HTTPS
SSH key existsReuse or regenerate with new name
Permission deniedRe-request permissions
seed.md invalidRegenerate from defaults

Resources