Upgrade Boop logo

Upgrade Boop

CommunityPopular
raroque
upgrade-boop

Pull upstream Boop changes into a customized fork. Previews, backs up, merges with conflict-aware resolution, validates, and surfaces breaking changes.

Overview

Publisherraroque
Repositoryboop-agent
Skill nameupgrade-boop
Stars
1.4K
Forks
300
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 raroque on GitHub. Read the source before you install it.

Installation

Install the Upgrade Boop 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/raroque/boop-agent/tree/main/.agents/skills/upgrade-boop
  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/raroque/boop-agent.git /tmp/boop-agent
mkdir -p .claude/skills
cp -r /tmp/boop-agent/.agents/skills/upgrade-boop .claude/skills/upgrade-boop
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Upgrade Boop 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 Upgrade Boop 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 Upgrade Boop 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.

About

Your Boop fork drifts from upstream as you customize it — system prompts tweaked, new automations, tuned memory thresholds, etc. This skill brings upstream changes in without blowing away those edits.

Run /upgrade-boop inside the repo from Codex. This is the supported upgrade path: the agent previews the diff, creates rollback points, performs the merge, resolves conflicts when needed, and runs referenced migration skills.

How it works

Preflight: refuses to touch anything with a dirty working tree. If the upstream remote is missing, adds it (default: https://github.com/raroque/boop-agent.git — the skill will ask).

Backup: creates a timestamped rollback branch + tag before doing anything. Printed at the end so you can git reset --hard back.

Preview: buckets upstream changes into categories so you know what's about to land:

  • Core (server/) — the dispatcher, executor, memory, automations. High conflict risk if you edited your prompts.
  • Integrations (server/composio*, server/integrations/) — Composio wiring.
  • UI (debug/) — debug dashboard.
  • Schema (convex/) — Convex tables + functions. Pushes happen on next convex dev.
  • Scripts / config (scripts/, package.json, tsconfig.json, .env.example) — env vars + deps might need attention.
  • Docs (README.md, ARCHITECTURE.md, INTEGRATIONS.md, CHANGELOG.md).

Choice: you pick merge (one-pass), cherry-pick (specific commits), rebase (linear history), or abort.

Conflict preview: dry-run merge to show which files would conflict before you commit.

Validation: npm install + npm run typecheck after the merge.

Breaking changes: parses the CHANGELOG.md diff for [BREAKING] entries and surfaces each one. Many breaking changes will reference a migration skill (/<skill-name>) — the skill offers to run those for you.

Summary: prints rollback tag, new/upstream HEADs, and any env-var additions from .env.example you should copy into .env.local.


Operating principles

  • Never proceed with a dirty working tree.
  • Always create a rollback point (backup branch + tag) before touching anything.
  • Prefer git-native operations. Do not rewrite files manually except to resolve conflict markers.
  • Default to MERGE (one-pass conflict resolution). Offer REBASE only if the user explicitly asks.
  • Keep token usage low: use git status, git log, git diff, and only open files that actually have conflicts.

Step 0: Preflight

Run:

  • git status --porcelain

If output is non-empty:

  • Tell the user to commit or stash first. Stop.

Confirm remotes with git remote -v. If upstream is missing:

  • Ask the user for the upstream repo URL (default: https://github.com/raroque/boop-agent.git).
  • git remote add upstream <url>
  • git fetch upstream --prune

Detect the upstream branch:

  • git branch -r | grep upstream/
  • Prefer upstream/main. Fall back to upstream/master. If neither, ask.
  • Store as UPSTREAM_BRANCH. All commands below that reference upstream/main use upstream/$UPSTREAM_BRANCH instead.

Fetch fresh:

  • git fetch upstream --prune

Step 1: Safety net

HASH=$(git rev-parse --short HEAD)
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
git branch backup/pre-upgrade-$HASH-$TIMESTAMP
git tag pre-upgrade-$HASH-$TIMESTAMP

Save the tag name. You'll print it in Step 7 for rollback.

Step 2: Preview

Compute base:

  • BASE=$(git merge-base HEAD upstream/$UPSTREAM_BRANCH)

Show what's coming:

  • git log --oneline $BASE..upstream/$UPSTREAM_BRANCH

Show local drift:

  • git log --oneline $BASE..HEAD

File-level impact:

  • git diff --name-only $BASE..upstream/$UPSTREAM_BRANCH

Bucket files into the categories listed in How it works (Core, Integrations, UI, Schema, Scripts/config, Docs). Call out high-risk buckets specifically.

Large-drift check: if upstream has many commits and the user has heavy local drift, mention that starting fresh and reapplying customizations might be cleaner than merging. Don't push — offer.

Ask the user with the active agent's user-question mechanism:

  • A) Full update — merge all upstream changes (default)
  • B) Selective — cherry-pick specific commits
  • C) Abort — preview only
  • D) Rebase — linear history, resolves conflicts per commit

If Abort: print rollback info and stop.

Step 3: Conflict preview (no commits yet)

If Full update or Rebase, dry-run:

git merge --no-commit --no-ff upstream/$UPSTREAM_BRANCH; git diff --name-only --diff-filter=U; git merge --abort

Show the conflict list. If empty, say "clean" and proceed. If non-empty, let the user bail.

Step 4A: Full update (MERGE — default)

  • git merge upstream/$UPSTREAM_BRANCH --no-edit

If conflicts:

  • git status → list conflicted files.
  • For each file:
    • Open it.
    • Resolve only conflict markers.
    • Preserve intentional local customizations.
    • Incorporate upstream improvements.
    • Do not refactor surrounding code.
    • git add <file>
  • When done: git commit --no-edit (if merge didn't auto-commit).

Step 4B: Selective (CHERRY-PICK)

  • git log --oneline $BASE..upstream/$UPSTREAM_BRANCH
  • Ask which hashes.
  • git cherry-pick <hash1> <hash2> …

On conflict:

  • Resolve markers, git add, git cherry-pick --continue.
  • git cherry-pick --abort to stop.

Step 4C: Rebase (opt-in)

  • git rebase upstream/$UPSTREAM_BRANCH

On conflict: resolve, git add, git rebase --continue. If > 3 rounds of conflicts, git rebase --abort and recommend merge.

Step 5: Validation

Run in order:

  • npm install — picks up any new deps.
  • npm run typecheck — this repo's typecheck. If it fails with errors outside the merge delta, flag it but don't block.

Note: Convex schema changes (convex/schema.ts, convex/*.ts) take effect the next time convex dev runs. Mention this to the user — they need to restart npm run dev for the schema to push.

Note: If .env.example changed, diff it against .env.local:

  • diff <(grep -o '^[A-Z_]*=' .env.example | sort) <(grep -o '^[A-Z_]*=' .env.local | sort)
  • List any new keys the user should add to .env.local.

Step 6: Breaking changes check

Read the CHANGELOG delta:

  • git diff pre-upgrade-$HASH-$TIMESTAMP..HEAD -- CHANGELOG.md

Parse new lines containing [BREAKING]. Format is:

[BREAKING] <description>. Run `/<skill-name>` to <action>.

If none: proceed silently.

If any:

  • Display a warning header: "This update introduces breaking changes that may need action:"
  • Show each [BREAKING] line in full.
  • Collect referenced skills.
  • Ask the user with the active agent's user-question mechanism (multi-select when available):
    • One option per referenced skill
    • "Skip — I'll handle these manually"
  • For each selected skill, invoke via the Skill tool.

Step 7: Summary + rollback

Print:

  • Rollback tag: pre-upgrade-<HASH>-<TIMESTAMP>
  • New HEAD: git rev-parse --short HEAD
  • Upstream HEAD: git rev-parse --short upstream/$UPSTREAM_BRANCH
  • Conflicts resolved: list, if any
  • New env vars to add to .env.local: list from Step 5
  • Breaking changes applied: list skills run

Tell the user:

  • Rollback: git reset --hard pre-upgrade-<HASH>-<TIMESTAMP>
  • Backup branch also exists: backup/pre-upgrade-<HASH>-<TIMESTAMP>
  • Restart npm run dev to pick up code + Convex schema changes.

Frequently asked questions

What does the Upgrade Boop AI skill do?

Pull upstream Boop changes into a customized fork. Previews, backs up, merges with conflict-aware resolution, validates, and surfaces breaking changes.

Why use Upgrade Boop on TypingMind?

Because you install it once and use it with any model. Upgrade Boop 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 Upgrade Boop in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/raroque/boop-agent/tree/main/.agents/skills/upgrade-boop. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Upgrade Boop?

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 Upgrade Boop?

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

Is the Upgrade Boop AI skill free?

Yes. It is published on GitHub by raroque 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 👇