analyzing-options
Analyzing different approaches for a task or problem with structured comparisons, effort…
Using lib-observability/runtime, which turns silent goroutine deaths into log/span/metric signal, in two modes. Sweep Mode detects naked goroutines, unobservable defer recover(), missing InitPanicMetrics, and lib-commons/v5 shim imports. Reference Mode catalogs SafeGo,
$ npx -y skills add LerianStudio/ring --skill using-runtime --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/using-runtimeContext preview
The summary Claude sees to decide when to auto-load this skill.
Using lib-observability/runtime, which turns silent goroutine deaths into log/span/metric signal, in two modes. Sweep Mode detects naked goroutines, unobservable defer recover(), missing InitPanicMetrics, and lib-commons/v5 shim imports. Reference Mode catalogs SafeGo,
name: ring:using-runtime description: "Using lib-observability/runtime, which turns silent goroutine deaths into log/span/metric signal, in two modes. Sweep Mode detects naked goroutines, unobservable defer recover(), missing InitPanicMetrics, and lib-commons/v5 shim imports. Reference Mode catalogs SafeGo, RecoverWithPolicy, the policy decision tree, and Fiber/gRPC/RabbitMQ integration. Go-only. Skip for non-Go or frontend code."
The `runtime` package lived in `lib-commons` through v4 and the v5 shim period. Its canonical home is now **`github.com/LerianStudio/lib-observability/runtime`** (v1.0.0+). `lib-commons` v5 keeps a deprecated compatibility shim at `github.com/LerianStudio/lib-commons/v5/commons/runtime` that re-exports every symbol from lib-observability — existing imports keep compiling, but the shim is marked `Deprecated:` in package docs and will be removed in a future lib-commons major. New code MUST import from `lib-observability/runtime` directly; sweeps SHOULD also flag imports still pointing at the lib-commons shim as a follow-up migration.
Sweep mode:
Reference mode:
**Parent:** ring:using-lib-observability (canonical home of the `runtime` package) **Similar:** ring:using-lib-commons (lifecycle / App glue still lives there), ring:using-assert
Extends `ring:using-lib-observability` panic-handling coverage into 6 focused sub-angles with deeper detection patterns, full API reference, policy decision tree, and framework integrations. Also extends `ring:using-lib-commons` Angle 15 (Panic handling DIY) for codebases still on the v5 shim path. Use when panic handling is the primary concern or when the parent sweep surfaced significant findings.
| Request Shape | Mode | |---|---| | "Sweep / audit panic handling / find naked goroutines" | **Sweep** | | "Which SafeGo variant do I use?" | **Reference** | | "Policy decision tree" | **Reference** | | "Framework integration (Fiber/gRPC/RabbitMQ)" | **Reference** |
---
4-phase sweep. Each phase has a hard gate.
Phase 1: Version Reconnaissance → runtime-version-report.json
Phase 2: CHANGELOG Delta Analysis → runtime-delta-report.json
Phase 3: Multi-Angle DIY Sweep → 6 × runtime-sweep-{N}-{angle}.json
Phase 4: Consolidated Report → runtime-sweep-report.md + runtime-sweep-tasks.json1. Read `go.mod` — extract pinned version of `github.com/LerianStudio/lib-observability` (canonical) AND any pinned `github.com/LerianStudio/lib-commons/vN` (shim path) 2. WebFetch `https://api.github.com/repos/LerianStudio/lib-observability/releases/latest` — extract `tag_name` for the canonical library 3. If the target imports `lib-commons/v5/commons/runtime` (deprecated shim), record `shim_import_detected: true` — this is itself a follow-up migration finding 4. Classify drift; emit `/tmp/runtime-version-report.json`
1. WebFetch `https://raw.githubusercontent.com/LerianStudio/lib-observability/main/CHANGELOG.md` 2. Filter entries affecting the `runtime` package 3. If `shim_import_detected` from Phase 1, also WebFetch `https://raw.githubusercontent.com/LerianStudio/lib-commons/main/CHANGELOG.md` and filter for `commons/runtime` shim-deprecation entries 4. Emit `/tmp/runtime-delta-report.json`
Before emitting any Task call, count the explorers you intend to launch in this turn.
All 6 explorers leave in the SAME TURN, before reading any explorer output.
Forbidden sequences:
If you find yourself about to dispatch an explorer in a turn AFTER any explorer has already returned a result → STOP. You violated parallel dispatch. Report the violation and mark the phase INCOMPLETE rather than completing the trickle.
After the dispatch turn, verify all 6 Task calls were emitted in that single turn. If fewer than 6 went out, the phase did NOT execute correctly. Mark INCOMPLETE and surface the dispatch failure — do NOT silently continue with a partial pool.
Emit all 6 Task calls in a SINGLE TURN, as one atomic batch.
**If your runtime exposes a `multi_tool_use.parallel` wrapper**, use it to dispatch the complete pool in one wrapped invocation. This is the canonical fan-out mechanism on OpenAI-style tool envelopes and on certain Anthropic SDK consumers — naming it explicitly activates parallel emission on runtimes where trickle-dispatch is the default behavior.
**If your runtime emits parallel tool_use blocks natively** (Claude Code with Claude models), `multi_tool_use.parallel` may not be needed — but naming it is harmless and serves as an enforcement anchor.
The STOP-CHECK, anti-trickle, and self-verify guards above remain binding regardless of which mechanism your runtime uses.
Dispatch all 6 explorer angles in **one parallel batch**. Wait for all before Phase 4.
**Per-explorer dispatch** (`subagent_type: ring:codebase-explorer`):
## Target: <absolute pa
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…