analyzing-options
Analyzing different approaches for a task or problem with structured comparisons, effort…
Migrating a Lerian Go app off lib-commons observability imports (deprecated shims or removed APIs) to lib-observability via a fixed mapping table, then bumps go.mod and validates the build; ring:backend-go applies the edits. Covers log/zap/runtime/assert, opentelemetry/tracing,
$ npx -y skills add LerianStudio/ring --skill migrating-to-lib-observability --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/migrating-to-lib-observabilityContext preview
The summary Claude sees to decide when to auto-load this skill.
Migrating a Lerian Go app off lib-commons observability imports (deprecated shims or removed APIs) to lib-observability via a fixed mapping table, then bumps go.mod and validates the build; ring:backend-go applies the edits. Covers log/zap/runtime/assert, opentelemetry/tracing,
name: ring:migrating-to-lib-observability description: "Migrating a Lerian Go app off lib-commons observability imports (deprecated shims or removed APIs) to lib-observability via a fixed mapping table, then bumps go.mod and validates the build; ring:backend-go applies the edits. Covers log/zap/runtime/assert, opentelemetry/tracing, HTTP middleware, context helpers, and direct systemplane import moves. Use when lib-commons observability imports remain or the build breaks on removed APIs."
**Do NOT skip when:**
**Runs before:** (none) **Runs after:** (none)
**Complementary:** ring:using-ring, ring:running-dev-cycle, ring:reviewing-code, ring:fixing-lint, ring:using-lib-commons
---
This skill replaces imports/usages of lib-commons observability APIs with their canonical lib-observability equivalents.
**Stable target baseline for this migration:**
`lib-commons/v5.7.0` is the current stable lib-commons target for this migration (the deprecated observability shims were first removed in `v5.2.0`). `lib-observability/v1.1.0` is the current stable lib-observability target release (`v1.0.0` was the first stable release). `lib-auth/v2.8.0` and `lib-license-go/v2.3.5` are the first stable companion releases known to be compatible with the removed lib-commons observability APIs. `lib-streaming/v1.3.1` is the first stable streaming release in this validation set that no longer imports removed lib-commons observability packages. `lib-systemplane/v1.0.0` is the stable package destination for direct `commons/systemplane` imports removed from lib-commons. Do not use beta tags for new migrations unless the target application is intentionally pinned to a beta train.
**Known lib-commons observability removal refs:**
(`refactor: remove deprecated commons observability shims`)
(currently `a33b160ac165cff8b4ddf5c69d8dbb80a10868f6`)
Use the pre-removal reference as the default source-evidence ref when the effective lib-commons dependency has already removed the deprecated shims and the user did not provide `lib_commons_pre_removal_ref`. That ref still contains the `Deprecated:` notices while using lib-observability types internally.
**Targeting strategy:** migrate known observability APIs when the target API exists in the effective lib-observability version. Source-side `Deprecated:` notices are preferred evidence. Read them from the effective lib-commons version when available; if a removal commit/ref is known, read them from the immediate pre-removal lib-commons ref. If neither source is available because lib-commons has already removed the package/symbol, the application may not compile, and the skill must still migrate by static source analysis.
If a target API is missing from lib-observability, do not migrate that API. Report the missing target and leave the lib-commons usage unchanged unless it is already broken by removal; in that case report it as a manual migration blocker.
In removed-api mode, package-level imports such as `commons/log` can still cross non-observability lib-commons boundaries (for example `mongo.Config.Logger`, `postgres.Config.Logger`, `WithCORSLogger`, `circuitbreaker.NewManager`, auth middleware, outbox/tenant-manager clients, streaming builders, or any remaining lib-commons API typed as `commons/log.Logger`). Do not invent adapters in the skill. Migrate safe source files, run build validation, and if a file fails only because a migrated value crosses a remaining lib-commons typed boundary, revert that file/family to lib-commons and report it as a manual blocker.
Also check transitive dependencies after bumping lib-commons to a removal release. If `go build` fails from `$GOMODCACHE` with errors such as `no required module provides package github.com/LerianStudio/lib-commons/v5/commons/log`, `commons/zap`, or `commons/opentelemetry`, the target repo was migrated as far as local source allows, but one of its dependencies still depends on removed lib-commons observability packages. First try the known stable companion bumps when the modules are present:
GONOSUMDB="git
Proven engineering practices, enforced through skills. Ring is a comprehensive skills library and workflow system for AI agents that transforms how AI assistants approach software development.
Repo: LerianStudio/ring
Analyzing different approaches for a task or problem with structured comparisons, effort…
Auditing a service's production readiness against Ring engineering standards across base…
Cleaning redundant and obvious comments following clean code principles while preserving…
Commit changes with scope allowlist enforcement, atomic grouping, GPG-signed conventional…
Creating a handoff document that captures session state (completed work, decisions, open…
Creating an isolated git worktree for parallel branch work: selects the directory by priority…