# isSignal

`isSignal(value)` is a nominal runtime guard that narrows recognized Pibbl signal
objects to [`Signal<unknown>`](/reference/types/canvas-runtime/#signal). It recognizes writable
signals, cached readonly views, and computed signals without accepting arbitrary
objects that merely expose a `get` method.

Related type: [`Signal`](/reference/types/canvas-runtime/#signal).

## API details from source

<span id="api-isSignal"></span>

Checks the nominal Pibbl signal identity rather than accepting objects that merely have a get
method.

```ts
isSignal: (value: unknown) => value is Signal<unknown>
```

Related API: [isSignal](/reference/functions/is-signal/), [Signal](/reference/types/canvas-runtime/#signal).

### Parameters

- **`value`** — Value to check for Pibbl's nominal signal brand.

### Returns

True if the value is a Pibbl signal, narrowing its type accordingly. See [Signal](/reference/types/canvas-runtime/#signal).

### See also

[Signal](/reference/types/canvas-runtime/#signal)

[View source — packages/core/src/lib/signals/graph.ts:1148](/source/packages/core/src/lib/signals/graph-ts/#L1148)

## Implementation guidance for agents

Read the [Authoring, signals, and lifecycle companion](/agents/topics/lifecycle/) for ownership, adaptation, failure modes, and verification. [Agent start](/agents/) provides the version-selection workflow.

## Complete minimal examples

- [Read and update signals](/minimal-examples/lifecycle/signals/): Use writable, readonly, and computed values with synchronous batching. [Plain source](/minimal/lifecycle/signals.ts)
## Documentation version

Documentation built with @pibbl/core 0.0.2, revision 272a94a. ALPHA — NOT FOR PRODUCTION USE.
