Agent skill

Upgrade Microbus

by microbus-io in microbus-io/fabric

TRIGGER when the user asks to upgrade the project to a newer or the latest version of Microbus, or to update the framework.

Apache-2.0Auto-check passedBackend & APIs

Install Upgrade Microbus

skills CLI
$ npx skills add microbus-io/fabric --skill upgrade-microbus -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install microbus-io/fabric upgrade-microbus --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/microbus-io/fabric.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/microbus/upgrade-microbus .claude/skills/upgrade-microbus && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
upgrade-microbus
GitHub stars
172
Token cost
~2.9k tokens
SKILL.md length
1,498 words
Files
1
Skills in repo
32
Repo updated
First seen
Licence
Apache-2.0

At a glance

TRIGGER when the user asks to upgrade the project to a newer or the latest version of Microbus, or to update the framework.

  • Works in 4 steps: Read the CURRENT and TARGET Versions → Phase 1 - Apply This Release's Increment… → Release-Specific Migration (v1.46.0 ->… → …
  • The user asks to upgrade the project to a newer
  • SKILL.md covers Release Constants and Workflow
  • Calls go and git

What it does

Upgrade Microbus is an agent skill from microbus-io/fabric. TRIGGER when the user asks to upgrade the project to a newer or the latest version of Microbus, or to update the framework. Each Microbus release ships this one self-contained skill; it applies that release's single-version migration, then chains to the next release's copy of this skill until the target version is reached.

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs. The repository describes itself as: Microbus is the only fabric where every agentic workflow runs on a true microservice substrate - giving your workflows security, scale, observability, and prompt-driven authoring. The licence is Apache-2.0.

When your agent uses it

  • The user asks to upgrade the project to a newer
  • The latest version of Microbus
  • Update the framework

Example prompts

  • “s single-version migration, then chains to the next release”
  • “/upgrade-microbus”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Read the CURRENT and TARGET Versions
  2. Phase 1 - Apply This Release's Increment (SOURCE -> DEST)
  3. Release-Specific Migration (v1.46.0 -> v1.47.0)
  4. Phase 2 - Chain to the Next Release, or Finish

What it can do on your machine

Read from SKILL.md and the folder at commit fb98098. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • go
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Upgrade Microbus loads about 2.9k tokens when it runs. Until then it costs about 85 tokens; SKILL.md has 1,498 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~85
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from microbus-io/fabric at commit fb98098, republished under its Apache-2.0 licence (© microbus-io). 1,498 words, ~2,893 tokens.

Download SKILL.mdSave it as .claude/skills/upgrade-microbus/SKILL.md (or your agent's skills folder).
name
upgrade-microbus
description
TRIGGER when the user asks to upgrade the project to a newer or the latest version of Microbus, or to update the framework. Each Microbus release ships this one self-contained skill; it applies that release's single-version migration, then chains to the next release's copy of this skill until the target version is reached.

CRITICAL: Do NOT explore or analyze the project unless a migration step below tells you to. This skill is self-contained.

CRITICAL: This skill is self-propagating. It migrates the project by exactly one version increment (Phase 1), then replaces itself on disk with the next release's copy of this same skill and runs that (Phase 2). Only the "Release constants" and Step 3 differ between releases; the Phase 1 and Phase 2 machinery is identical in every release.

Release Constants

The only part of this skill a release author edits. Set these when cutting a release.

  • SOURCE = the version this release upgrades from (the previous release), e.g. v1.44.0.
  • DEST = this release's own version, e.g. v1.45.0.
  • Migration = the source edits taking a project from SOURCE to DEST, authored in Step 3. Empty when the release has no breaking changes.
SOURCE = v1.46.0
DEST   = v1.47.0
<!-- RELEASE AUTHOR: set SOURCE and DEST above, and fill Step 3, when cutting a release. -->

Workflow

Copy this checklist and track your progress:

Upgrade Microbus:
- [ ] Step 1: Read the CURRENT and TARGET versions
- [ ] Step 2: Phase 1 - apply this release's increment (SOURCE -> DEST)
- [ ] Step 3: (release-specific migration, invoked by Step 2)
- [ ] Step 4: Phase 2 - chain to the next release, or finish
Step 1: Read the CURRENT and TARGET Versions

Read the github.com/microbus-io/fabric version from go.mod; call it CURRENT. If the dependency is absent, this is not a Microbus project; exit.

Determine the TARGET. In order of precedence: the TARGET carried forward from the previous hop of the chain (see Step 4); the version the user named when starting the upgrade; or, if the user asked only to update or go to "latest", the latest published version:

shell
go list -m -versions github.com/microbus-io/fabric

The versions are listed oldest to newest. A user-supplied TARGET is fixed for the whole run: carry it across every hop and do not silently re-derive it as "latest" on a later hop. If CURRENT is already TARGET (or newer), there is nothing to do; exit.

Step 2: Phase 1 - Apply This Release's Increment (SOURCE -> DEST)

If CURRENT is not equal to SOURCE, skip straight to Step 4. (This happens on the very first hop: the project's installed copy of the skill is CURRENT's own release, so its DEST equals CURRENT and its SOURCE is one behind - Phase 1 has nothing to do, and its only job is to bootstrap the chain in Step 4.)

Otherwise the project is exactly one version behind this release. Migrate it:

  1. Pin the framework to DEST:

    shell
    go get github.com/microbus-io/fabric@DEST
  2. Apply the migration in Step 3.

  3. Regenerate each microservice's boilerplate with this release's generator, resolve dependencies, and compile-gate:

    shell
    find . -path ./vendor -prune -o -name definition.go -path '*api/definition.go' -print \
      | while read -r def; do
          svcdir=$(dirname "$(dirname "$def")")
          go run github.com/microbus-io/fabric/cmd/genservice "$svcdir"
        done
    go mod tidy
    go vet ./...

    go vet must pass before Step 4. A grep-guided or manual migration can leave a compile error at a site it could not fix mechanically; resolve those now - with the user when the fix is a design choice - so the project compiles at DEST. (A migration may deliberately leave a runtime // TODO: that still compiles; the final go test in Step 4 surfaces it.)

Step 3: Release-Specific Migration (v1.46.0 -> v1.47.0)

Invoked by Step 2. This is DEST's migration; a release author replaces it when cutting the next release (see "Authoring framework upgrade skills" in the repo-root CLAUDE.md). Confine it to source edits - Step 2 owns the per-increment genservice + go vet, and Step 4 owns the final go test.

v1.47.0 moves the embedded workflow engine to dwarf v0.11.0, which splits stopping a flow in two:

  • Cancel is now graceful. Each step in progress finishes, then receives the cancellation on its node's onError transition, where workflow.IsCancelled(onErr) tells it apart from a real failure. A flow with no handler ends cancelled. A sleeping or backed-off step is reached only when it wakes, and an interrupted flow stays interrupted.
  • Terminate is the old forceful stop, newly exposed on the foreman. It abandons in-flight work across the whole subgraph tree and ends the flow in the new terminated status, with its reason in the new FlowOutcome.TerminateReason / FlowSummary.TerminateReason field.

Nothing stops compiling, so every step below is a behavior review. Work through them in order; 3a exits early.

3a. Skip the Rest If the Project Has No Workflows
bash
grep -rln --include='*.go' --exclude-dir=vendor 'microbus-io/dwarf\|foremanapi' .

If this finds nothing, the project neither defines nor drives workflows, and Step 3 is complete - go to Step 4. go.mod still moves to dwarf v0.11.0 either way (it is a fabric dependency) and needs no source change.

3b. Choose Cancel or Terminate at Each Call Site (Grep-Guided, Ask the User)

Every existing Cancel call now has graceful semantics. Find them, including in tests:

bash
grep -rn --include='*.go' --exclude-dir=vendor '\.Cancel(' .

Skip hits that are not the foreman's Cancel (a context.CancelFunc, another microservice's endpoint). For each remaining call, decide which stop it needs:

  • Switch to Terminate where the caller needs the flow stopped now or unconditionally: it may be interrupted (a graceful cancel leaves it parked), it may be sleeping or backed off for a long time, the caller Awaits it and expects cancelled promptly, or it is an operator "kill" action. This preserves the pre-v1.47.0 behavior. Also update what the caller then checks: workflow.StatusCancelled becomes workflow.StatusTerminated and CancelReason becomes TerminateReason.
  • Keep Cancel where the workflow should get a chance to react - finish the step in progress, compensate in an onError handler, or carry on. If the workflow has AddTransitionOnError handlers, check whether each should treat a cancellation differently from a failure via workflow.IsCancelled(onErr).

The choice is a design decision; ask the user when the intent is not clear from the call site. A test that cancelled an interrupted or long-sleeping flow and awaited cancelled will now hang until its deadline - that is the signature of a site that needs Terminate.

Show full SKILL.md (629 more words)Show less
3c. Handle the terminated Status Wherever Statuses Are Enumerated (Grep-Guided)
bash
grep -rn --include='*.go' --exclude-dir=vendor 'StatusCancelled\|CancelReason\|"cancelled"' .

At each hit that lists terminal or error statuses - a switch on status, a "has the flow stopped" check, a UI chip or filter, a dashboard series - add workflow.StatusTerminated alongside workflow.StatusCancelled, or replace a hand-written terminal list with workflow.IsTerminalStatus(status). Where CancelReason is displayed or logged, fall back to TerminateReason as well, since a terminated flow carries its reason there instead.

3d. Recreate Workflow Databases (Ask the User)

dwarf v0.11.0 changes the engine's schema by revising its existing migrations rather than adding new ones, so a database the engine already migrated does not pick up the new columns. Workflow databases must be recreated.

In LOCAL development the foreman keeps its single shard in a SQLite file, shard_1.local.sqlite (plus -wal/-shm siblings), in the directory the app runs from:

bash
find . -name 'shard_*.local.sqlite*' -not -path './vendor/*'

Tell the user that these files hold local flow history that will be lost, and delete them once they agree; the engine recreates the schema on the next start. For LAB and PROD, tell the user that each shard database in the foreman's Shards config must be dropped and recreated (or pointed at a fresh database) as part of the upgrade, and that existing flows do not carry over. This skill cannot reach those databases.

Step 4: Phase 2 - Chain to the Next Release, or Finish

Find the next release to apply: from go list -m -versions github.com/microbus-io/fabric, the smallest published version NEXT in the range DEST < NEXT <= TARGET (semver). The upper bound <= TARGET is what stops the chain from overshooting a user-supplied TARGET.

If there is no such NEXT the chain is complete - either TARGET is at or below DEST, or no published release lies between DEST and TARGET. The correctness gate is go vet, which already passed at every increment including this one - it is deterministic and always runnable locally. As a final behavior check, run the tests where feasible:

shell
go test ./...
  • Tests can't run here, or are known-flaky / need external services: say so and rely on the go vet gate; the upgrade stands.
  • Tests pass: the upgrade is confirmed.
  • Tests fail: triage each failure rather than declaring success or failure blindly.
    • Caused by a migration (a test referencing a removed or renamed symbol, an incompletely migrated call site): fix it - that is finishing the migration - and re-run.
    • Not clearly the migration's doing (a deliberate // TODO: a migration left to fill, or a pre-existing / environmental failure): report it and ask the user how to proceed - fix it together, accept the upgrade with the failure recorded, or roll back. Do not silently declare success on failures you have not explained.

If CURRENT is still below TARGET here, TARGET names no published release the chain could reach (for example a version that was never published); say so and leave the project at CURRENT.

If NEXT exists, hand off to it. Install NEXT's agent rules and skills - which include NEXT's copy of this skill (NEXT already carries its v prefix, e.g. v1.46.0):

shell
git clone --depth 1 --branch NEXT https://github.com/microbus-io/fabric temp-clone
rm -rf .claude/rules/{auth.txt,microbus.md,python.txt,sequel.txt,workflows.txt}
rm -rf .claude/skills/{microbus,python,sequel,upgrade}
cp -r temp-clone/.claude .
rm -rf temp-clone

(Removing the fabric-managed rules files and skill groups before the copy purges anything NEXT dropped; cp overwrites and adds but never deletes. Rules and skills the project added of its own are left untouched.)

CRITICAL: The copy just overwrote this skill on disk with NEXT's copy. Now Read .claude/skills/microbus/upgrade-microbus/SKILL.md (the new content) and follow it from Step 1, carrying the same TARGET forward - if the user supplied a specific TARGET, it stays the TARGET for NEXT and every later hop; only an unspecified TARGET defaults to "latest". Do not continue from this in-context copy, because NEXT's SOURCE/DEST and migration are what must run next. CURRENT is now DEST, which is NEXT's SOURCE, so NEXT's Phase 1 fires and advances one more increment. The chain ends at the hop that finds no NEXT in range.

© microbus-io, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/microbus/upgrade-microbus of microbus-io/fabric.

Open the folder on GitHubat commit fb98098

Compare with similar skills

Upgrade Microbus next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Upgrade Microbus compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Upgrade Microbus this skillmicrobus-io/fabric172—~2.9kAutomated safety check: PassApache-2.0
Configuring Horizoncoollabsio/coolify63k4 repos~898Automated safety check: PassMIT
Nestjs Best Practicesrolling-scopes/rsschool-app10k6 repos~1.2kAutomated safety check: PassMIT
Sub2API AdminWei-Shaw/sub2api43k1 repos~717Automated safety check: PassLGPL-3.0
Firecrawl Build Onboardingfirecrawl/firecrawl190k1 repos~1.4kAutomated safety check: NotesISC
Obsidian BasesAtmosphere/atmosphere3.8k22 repos~3.2kAutomated safety check: PassApache-2.0

Similar skills

  • Configuring Horizon

    coollabsio/coolify

    A skill your agent uses whenever the user mentions Horizon by name in a Laravel context.

    63k GitHub starsUsed in 4 repos~898 tokens
    Backend & APIsAuto-check passed
  • Nestjs Best Practices

    rolling-scopes/rsschool-app

    NestJS best practices and architecture patterns for building production-ready applications.

    10k GitHub starsUsed in 6 repos~1.2k tokens
    Backend & APIsAuto-check passed
  • Sub2API Admin

    Wei-Shaw/sub2api

    Manages a Sub2API deployment from the command line: accounts, redeem and invitation codes, groups, proxies, imports, exports and raw admin API calls.

    43k GitHub starsUsed in 1 repo~717 tokens
    Backend & APIsAuto-check passed
  • Firecrawl Build Onboarding

    firecrawl/firecrawl

    Gets Firecrawl working in a project: signs you in through the browser, saves FIRECRAWL_API_KEY to .env and picks the first SDK or REST path.

    190k GitHub starsUsed in 1 repo~1.4k tokens
    Backend & APIsAuto-check: notes
  • Obsidian Bases

    Atmosphere/atmosphere

    Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries.

    3.8k GitHub starsUsed in 22 repos~3.2k tokens
    Backend & APIsAuto-check passed
  • Fortify Development

    coollabsio/coolify

    ACTIVATE when the user works on authentication in Laravel. An agent skill from coollabsio/coolify.

    63k GitHub starsUsed in 4 repos~1.9k tokens
    Backend & APIsAuto-check passed

More from microbus-io/fabric

All 32 skills in this repo
  • Add Config

    microbus-io/fabric

    TRIGGER when user asks to add or modify a configuration property or setting, or to make a value configurable.

    172 GitHub stars~2.3k tokensUpdated 10 days ago
    Auto-check passed
  • Add Function

    microbus-io/fabric

    TRIGGER when user asks to add, create, or modify an API endpoint, function, or RPC, or a route that accepts typed arguments and returns typed results.

    172 GitHub stars~2.4k tokensUpdated 10 days ago
    Auto-check passed
  • Add Inbound Event

    microbus-io/fabric

    TRIGGER when user asks to listen for, subscribe to, or handle an event emitted by another microservice.

    172 GitHub stars~1.4k tokensUpdated 10 days ago
    Auto-check passed
  • Add Metric

    microbus-io/fabric

    TRIGGER when user asks to add or modify a metric, counter, gauge, or histogram, or to track/measure an operation.

    172 GitHub stars~1.5k tokensUpdated 10 days ago
    Auto-check passed
  • Add Outbound Event

    microbus-io/fabric

    TRIGGER when user asks to fire, emit, or publish an event that other microservices can subscribe to.

    172 GitHub stars~1.7k tokensUpdated 10 days ago
    Auto-check passed
  • Add Python Function

    microbus-io/fabric

    TRIGGER when user asks to add a Python-backed function endpoint to an existing Python-backed microservice.

    172 GitHub stars~1.3k tokensUpdated 10 days ago
    Auto-check passed

Categories

Questions about Upgrade Microbus

What does Upgrade Microbus do?

TRIGGER when the user asks to upgrade the project to a newer or the latest version of Microbus, or to update the framework. Upgrade Microbus is an agent skill from microbus-io/fabric. TRIGGER when the user asks to upgrade the project to a newer or the latest version of Microbus, or to update the framework.

When should I use Upgrade Microbus?

Upgrade Microbus fits situations like: the user asks to upgrade the project to a newer; the latest version of Microbus; update the framework.

How do I install Upgrade Microbus in Claude Code?

Run `npx skills add microbus-io/fabric --skill upgrade-microbus -a claude-code`. Or copy the skill folder (.claude/skills/microbus/upgrade-microbus in microbus-io/fabric) into .claude/skills/upgrade-microbus in your project. Claude Code loads it when a task matches its description.

How do I install Upgrade Microbus in Codex?

Run `npx skills add microbus-io/fabric --skill upgrade-microbus -a codex`. Or copy the skill folder (.claude/skills/microbus/upgrade-microbus in microbus-io/fabric) into .agents/skills/upgrade-microbus in your project. Codex loads it when a task matches its description.

Can I use Upgrade Microbus in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add microbus-io/fabric --skill upgrade-microbus -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/upgrade-microbus, .gemini/skills/upgrade-microbus, .github/skills/upgrade-microbus and .opencode/skills/upgrade-microbus in your project.

What does Upgrade Microbus need to run?

Going by SKILL.md and its folder, Upgrade Microbus needs the command-line tools its instructions call (go and git).

Does Upgrade Microbus access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Upgrade Microbus safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Upgrade Microbus use?

Upgrade Microbus is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Upgrade Microbus use?

About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Upgrade Microbus?

Skills that share tags, products or a category with Upgrade Microbus: Configuring Horizon (coollabsio/coolify, 63k stars), Nestjs Best Practices (rolling-scopes/rsschool-app, 10k stars), Sub2API Admin (Wei-Shaw/sub2api, 43k stars) and Firecrawl Build Onboarding (firecrawl/firecrawl, 190k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Upgrade Microbus?

microbus-io (a GitHub organization) maintains it in microbus-io/fabric, which has 172 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on September 28, 2026.

Source: microbus-io/fabric on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.