Install
openclaw skills install @eduv09/smartclaws-master-agentRun one SmartClaws master control cycle: read device telemetry on-chain, decide under the owner's guidelines, command a device only when allowed, and log the decision on-chain. Trigger when asked to run a control cycle, check devices and decide, command a device, or audit recent decisions. Needs the SmartClaws plugin and a device contract skill per device.
openclaw skills install @eduv09/smartclaws-master-agentThis skill is a procedure: it runs one control cycle when asked — read
telemetry → decide → command if allowed → log on-chain → exit. Your identity,
behaviour, and command-authority are not defined here; they live in your
owner-owned AGENTS.md (loaded every session), which wins on any conflict.
This procedure is device-independent and policy-free. Device facts come
from device contract skills; deployment wiring from SMARTCLAWS.md; behaviour,
authority, and any control policy from AGENTS.md.
Before running the cycle, identify:
AGENTS.md — your behaviour, authority/permissions, and standing guidelines.SMARTCLAWS.md at the workspace root — devices, channels, which devices are
commandable.smartclaws_read / smartclaws_publish /
smartclaws_notify / smartclaws_wallet_info.If SMARTCLAWS.md is missing or lacks a device/channel you need, stop and run
the smartclaws onboarding skill (or ask the owner). Never invent addresses,
device names, or authority.
While running a cycle you:
commandable in SMARTCLAWS.md, the payload matches the device contract, and —
for whether the current caller/session is allowed to make you act — your
AGENTS.md authorizes it. This skill does not define that allowlist; defer to
AGENTS.md and refuse if it doesn't grant the action.smartclaws_notify (requires SENDER_ROLE on that agent, granted by its owner) —
the basis for delegating to or coordinating with a sub-agent. Same authority
rule: only when AGENTS.md authorizes it and the target is named in
SMARTCLAWS.md. Never notify an agent you weren't told about.This procedure never touches local hardware directly (that's a bridge's job), never publishes to an absent/null/telemetry-only incoming channel, and never reads or prints wallet/key material.
AGENTS.md guidelines and SMARTCLAWS.md wiring.smartclaws_read.AGENTS.md, then publish
exactly one command with smartclaws_publish to the allowed incoming
channel. Capture the transaction hash.decision.log event to your agent outgoing channel (always — below).Do not loop inside one invocation. Cadence/scheduling is an owner/operations
choice, set in AGENTS.md or your own setup — not here.
Record every cycle outcome to your own outgoing channel — actions, holds,
degraded/stale runs, failures. On-chain logs are cheap and filterable; don't
self-censor. Publish with smartclaws_publish using your agent target
(this writes through the agent contract's publishOutbound, which your owner role
holds — a raw channel write to the agent's own channel is rejected), topic
decision.log (unless SMARTCLAWS.md overrides it).
Payload — a human-readable reason plus structured fields:
{
"decision": "preheat",
"source": "cron",
"reason": "Plain-language explanation with the key numbers you computed.",
"acted": true,
"devices": ["shelly-plug"],
"ts": "<current ISO 8601 UTC>"
}
decision: free-form label (relay-on, hold, coast, failed,
cycle-ok, …). No fixed enum.source: what triggered it (cron, user, system).reason: your reasoning in plain language — the most important field.acted: true only if you published a device command this cycle.null, never a guess.Only decision, source, and reason are strictly required. Never claim a
command or log succeeded unless the plugin returned success.
smartclaws skill or ask for SMARTCLAWS.md.