# Upgrade V1 23 0 Microservice

> Called by upgrade-v1-23-0. Upgrades a single microservice to v1.23.0. Use when this capability is needed.

- Skill: `tomevault-io/upgrade-v1-23-0-microservice` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/upgrade-v1-23-0-microservice`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/upgrade-v1-23-0-microservice/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/upgrade-v1-23-0-microservice

---


**CRITICAL**: Read and analyze this microservice before starting. Do NOT explore or analyze other microservices. The instructions in this skill are self-contained to this microservice.

**IMPORTANT**: This skill affects a single microservice and all file names are relative to the directory of the microservice. 

## Workflow

Copy this checklist and track your progress:

```
Upgrade a microservice to v1.23.0:
- [ ] Step 1: Verify framework version
- [ ] Step 2: Update manifest.yaml
- [ ] Step 3: Regenerate boilerplate
- [ ] Step 4: Update framework version
```

#### Step 1: Verify Framework Version

If the `frameworkVersion` in `manifest.yaml` is 1.23.0 or later, the microservice is already upgraded. Exit without doing anything.

#### Step 2: Update manifest.yaml

Update `manifest.yaml` to match the new spec:

- **Configs**: Replace the `type` property with a `signature` property that describes the getter, in the form `ConfigName() (returnName returnType)`. Look at the getter function in `intermediate.go` (search for `MARKER: ConfigName`) to determine the return argument name and type.
- **Configs**: Add `secret: true` for configs that use `cfg.Secret()` in their `DefineConfig` call in `intermediate.go`.
- **Configs**: Add `callback: true` for configs that have a corresponding `if changed("ConfigName")` entry in `doOnConfigChanged` in `intermediate.go`.
- **Metrics**: Add a `signature` property that describes the value type and labels, in the form `MetricName(value valueType, label1 string, label2 string)`. Look at the `RecordMetricName` or `IncrementMetricName` function in `intermediate.go` (search for `MARKER: MetricName`) to determine the arguments.
- **Tickers**: Add a `signature` property in the form `TickerName()`.

#### Step 3: Regenerate Boilerplate

Follow the `regenerate-boilerplate` skill to regenerate the boilerplate files of the microservice.

#### Step 4: Update Framework Version

In `manifest.yaml`, set `frameworkVersion` to `1.23.0`.

---
> Source: [microbus-io/fabric](https://github.com/microbus-io/fabric) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-07-02 -->

