agentsclimarketplace

Effect observability time

Skill theseus-run/theseus/.agents/skills/effect-observability-time

the harness rebuilds itself — agents rewrite agents, skills replace skills.

Install
npx -y skills add theseus-run/theseus --skill effect-observability-time

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when adding or reviewing Effect time, retry, timeout, Clock/Duration, logging, tracing spans, metrics, Config, ConfigProvider, Redacted secrets, or operational observability in Theseus.

SKILL.md

2.4 KB, as published. Nobody here has run it

Effect Observability And Time

Use this skill for time-based behavior, retries, logs, spans, metrics, and runtime config.

Time And Retry

Use Effect primitives instead of ad hoc timers and raw millisecond math.

import { Duration, Effect, Schedule } from "effect"

const guarded = operation.pipe(Effect.timeout(Duration.seconds(5)))

const retryPolicy = Schedule.exponential("200 millis").pipe(
  Schedule.jittered,
)

Rules:

  • Use Clock when code needs current time from the Effect environment.
  • Use Duration helpers for time units when clarity matters.
  • Use Effect.sleep for delays, not setTimeout wrapped by hand.
  • Use Effect.timeout around external calls that can hang.
  • Use Schedule for retry; gate retry by failure shape when only some errors are retryable.
  • Public retry fields should usually accept Schedule.Schedule<unknown> because schedule input is contravariant.

Logging, Tracing, Metrics

  • Use Effect.logInfo, Effect.logDebug, Effect.logError, and Effect.annotateLogs.
  • Use Effect.withSpan("name", { attributes }) around meaningful runtime boundaries.
  • Attach stable IDs and small primitive attributes to logs/spans; avoid dumping large payloads.
  • Use Metric.counter, Metric.gauge, or Metric.histogram when a value is operationally useful across runs, not just useful for local debugging.
  • Avoid console.log in Effect runtime code.

Configuration And Secrets

  • Use Effect Config for runtime configuration when code needs typed environment values.
  • Do not read process.env throughout domain code.
  • Read config once through a service/layer, then inject the parsed values.
  • Keep secrets redacted in logs and errors.
  • Use ConfigProvider in tests or alternate runtimes when config should come from a map/object rather than the process environment.
  • Use Redacted for secrets and unwrap only at the final foreign boundary that needs the raw value.

Checks

  • Does this external call have timeout or cancellation behavior?
  • Are retryable and non-retryable failures separated?
  • Would this log leak secrets or huge payloads?
  • Does the span name describe an operation rather than an implementation detail?
  • Is config read at a boundary and injected afterward?

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.