{
  "$schema": "https://schemas.agentskills.io/discovery/0.2.0/schema.json",
  "name": "TinyDuino LightMeter - Hardware Sensory Workbench",
  "description": "Hardware light meter workbench and agentic sensory skills for TinyDuino, BLE112, and KY-018 photoresistor, powered by WebMCP and ShadowClaw.",
  "skills": [
    {
      "name": "daylight-harvest",
      "type": "skill-md",
      "description": "Energy-saving daylight harvesting coordinator calculating artificial light offsets based on live TinyDuino lux.",
      "url": "../../.agents/skills/daylight-harvest/SKILL.md",
      "digest": "sha256:d412954b0ba53ea49b2943f3a44bc0f9aef2a78725e32cc2879debf121c6f73d",
      "tools": [
        {
          "name": "tinyduino_ambient_level",
          "url": "../../.agents/tools/tinyduino_ambient_level.json",
          "digest": "sha256:e471aaab74234bf0bc152556aeae9c9b86c4c6c928ff59136a28db7ad189076c"
        }
      ]
    },
    {
      "name": "dusk-trigger",
      "type": "skill-md",
      "description": "Detect true physical dusk and twilight using TinyDuino live illuminance rather than clock-based estimates.",
      "url": "../../.agents/skills/dusk-trigger/SKILL.md",
      "digest": "sha256:cefa698b2df3e1a600baff62d73197db320000958a89b1cfdbe7b9df53678ebc",
      "tools": [
        {
          "name": "tinyduino_ambient_level",
          "url": "../../.agents/tools/tinyduino_ambient_level.json",
          "digest": "sha256:e471aaab74234bf0bc152556aeae9c9b86c4c6c928ff59136a28db7ad189076c"
        }
      ]
    },
    {
      "name": "lightmeter",
      "type": "skill-md",
      "description": "Read live ambient illuminance from the TinyDuino KY-018 sensor, classify lighting conditions, and display metrics.",
      "url": "../../.agents/skills/lightmeter/SKILL.md",
      "digest": "sha256:3ad93ecd1cff60fa21e7a472f5bf50fce9e3d26f0a6c25e8463d2ab7460edd2c",
      "tools": [
        {
          "name": "tinyduino_read_light",
          "url": "../../.agents/tools/tinyduino_read_light.json",
          "digest": "sha256:c711cf6e7ce9ceee8b8106c8071ff362ab55717c9b756228117b3601b033cb7c"
        }
      ]
    },
    {
      "name": "nightlight",
      "type": "skill-md",
      "description": "Monitor ambient darkness and control TinyDuino Pin 13 / Pin 7 LEDs as an automatic reactive nightlight.",
      "url": "../../.agents/skills/nightlight/SKILL.md",
      "digest": "sha256:fbb20ab87d2ade796b3af4e8aa5677459a34b83645d217576eee807c67f86858",
      "tools": [
        {
          "name": "tinyduino_set_led",
          "url": "../../.agents/tools/tinyduino_set_led.json",
          "digest": "sha256:daa94c4125a73d2f92464f63e916cf99e12ce4bc422bd740418c5b2544a9120c"
        }
      ]
    },
    {
      "name": "skill-creator",
      "type": "skill-md",
      "description": "Create, edit, review, and validate ShadowClaw declarative skills and their supporting resources.",
      "url": "../../.agents/skills/skill-creator/SKILL.md",
      "digest": "sha256:988436fbfa40e2da9e3a56904e4482a2783848feb291037667b26e188625874b",
      "files": [
        "SKILL.md",
        "references/declarative-pipelines.md",
        "references/declarative-tools.md",
        "references/frontmatter-spec.md"
      ]
    },
    {
      "name": "tinyduino-doctor",
      "type": "skill-md",
      "description": "Automated troubleshooting doctor diagnosing Web Bluetooth connection failures, BlueZ GATT errors, and CCCD timing.",
      "url": "../../.agents/skills/tinyduino-doctor/SKILL.md",
      "digest": "sha256:a05ecbabb0d84d7153718f649ebb925ce98828ab19f62357c12c9e2d4aa0c6be",
      "tools": [
        {
          "name": "tinyduino_get_connection_status",
          "url": "../../.agents/tools/tinyduino_get_connection_status.json",
          "digest": "sha256:92575fb698177847a66c853db1b9e3e2be261cbf67daf82b47046fe5f5b6a05c"
        }
      ],
      "scripts": [
        {
          "name": "tinyduino",
          "url": "../../.agents/scripts/tinyduino.js",
          "digest": "sha256:cebca45691c331ebd094a264f1c24d49613ef2caa1287fb179caba9b380955db"
        }
      ]
    },
    {
      "name": "tinyduino-status",
      "type": "skill-md",
      "description": "Comprehensive hardware diagnostic inspecting connection state, packet counts, last ACK, and sensor telemetry.",
      "url": "../../.agents/skills/tinyduino-status/SKILL.md",
      "digest": "sha256:473177ed6e02165f1dc42ed79d7f68d7a218ceb2c471fb8fef539943156ab976",
      "tools": [
        {
          "name": "tinyduino_get_status",
          "url": "../../.agents/tools/tinyduino_get_status.json",
          "digest": "sha256:2ec3cee57915697cbb2e63b9fc35a702a551a6ecc6776ce3c6f888b457be6f02"
        }
      ],
      "scripts": [
        {
          "name": "tinyduino",
          "url": "../../.agents/scripts/tinyduino.js",
          "digest": "sha256:cebca45691c331ebd094a264f1c24d49613ef2caa1287fb179caba9b380955db"
        }
      ]
    }
  ],
  "tools": [
    {
      "name": "tinyduino_ambient_level",
      "description": "Lightweight sensory check returning current ambient light level, lux, category, and Matter 0x0400 cluster MeasuredValue for smart home automation.",
      "url": "../../.agents/tools/tinyduino_ambient_level.json",
      "digest": "sha256:e471aaab74234bf0bc152556aeae9c9b86c4c6c928ff59136a28db7ad189076c"
    },
    {
      "name": "tinyduino_connect",
      "description": "Trigger Web Bluetooth connection dialog or activate simulated hardware.",
      "url": "../../.agents/tools/tinyduino_connect.json",
      "digest": "sha256:bdce36ae637a58ceb278c08ef235566f51fc9913cf9278845d656c3273f3fa9a"
    },
    {
      "name": "tinyduino_disconnect",
      "description": "Disconnect from TinyDuino Web Bluetooth GATT server or deactivate simulation.",
      "url": "../../.agents/tools/tinyduino_disconnect.json",
      "digest": "sha256:e3cf335de2ae95153c5f28fe5f5f5f2d4fe4bdcc51b5ce4ba8061f06925f4e35"
    },
    {
      "name": "tinyduino_get_connection_status",
      "description": "Inspect the current transport mode (connected, disconnected, simulated), device name, and packet counters.",
      "url": "../../.agents/tools/tinyduino_get_connection_status.json",
      "digest": "sha256:92575fb698177847a66c853db1b9e3e2be261cbf67daf82b47046fe5f5b6a05c"
    },
    {
      "name": "tinyduino_get_status",
      "description": "Return current TinyDuino connection state, LightMeter A0 telemetry, auxiliary sensor values, and recent samples without transmitting a new BLE packet.",
      "url": "../../.agents/tools/tinyduino_get_status.json",
      "digest": "sha256:2ec3cee57915697cbb2e63b9fc35a702a551a6ecc6776ce3c6f888b457be6f02"
    },
    {
      "name": "tinyduino_read_light",
      "description": "Trigger an immediate analogRead(A0) on the TinyDuino KY-018 photoresistor over Web Bluetooth GATT Handle 17, and return the live LightMeter metrics (raw A0, voltage, brightness %, and estimated lux).",
      "url": "../../.agents/tools/tinyduino_read_light.json",
      "digest": "sha256:c711cf6e7ce9ceee8b8106c8071ff362ab55717c9b756228117b3601b033cb7c"
    },
    {
      "name": "tinyduino_read_telemetry",
      "description": "Return snapshot of raw ADC, voltage, brightness %, estimated lux, and lighting category.",
      "url": "../../.agents/tools/tinyduino_read_telemetry.json",
      "digest": "sha256:f50b6f1223f8612012d1c86a2a3bcf6f1ea965ac1a863cb49cc12b625a5f1f61"
    },
    {
      "name": "tinyduino_render_surface",
      "description": "Render or embed the interactive TinyDuino LightMeter control panel inside an agent chat or UI surface.",
      "url": "../../.agents/tools/tinyduino_render_surface.json",
      "digest": "sha256:199d9f9a99b0c0cc5223565aa783ffea8f94a80f70328945301243af17c27f44"
    },
    {
      "name": "tinyduino_send_command",
      "description": "Send an arbitrary ASCII command string (e.g. LIGHT, STATUS, LED_ON, RATE:500, PING) to TinyDuino over GATT Handle 17.",
      "url": "../../.agents/tools/tinyduino_send_command.json",
      "digest": "sha256:405c84623caba511ce5ce1eeed35cc6844653feb4e4fe502e21e0a9e7cf4c4d1"
    },
    {
      "name": "tinyduino_send_raw",
      "description": "Send raw hexadecimal bytes (e.g. '80 0c 00 00' or '01') to TinyDuino over GATT Handle 17.",
      "url": "../../.agents/tools/tinyduino_send_raw.json",
      "digest": "sha256:418f79835b46120f8904760f8419c9f27a7aaac262ebeaa521fc65a43694a89b"
    },
    {
      "name": "tinyduino_set_led",
      "description": "Control the TinyDuino onboard LED (Pin 13) and ASD2009 Proto Board LEDs. Modes: ON (force ON), OFF (force OFF), or AUTO (automatic BLE state blink).",
      "url": "../../.agents/tools/tinyduino_set_led.json",
      "digest": "sha256:daa94c4125a73d2f92464f63e916cf99e12ce4bc422bd740418c5b2544a9120c"
    },
    {
      "name": "tinyduino_stop_stream",
      "description": "Stop continuous A0 LightMeter telemetry streaming from the TinyDuino.",
      "url": "../../.agents/tools/tinyduino_stop_stream.json",
      "digest": "sha256:38335468becb57e38a9b6ea794e72661ed725dbe5841c61cf5220ac31abf860f"
    },
    {
      "name": "tinyduino_stream_light",
      "description": "Start continuous A0 LightMeter telemetry streaming from TinyDuino and optionally set sampling interval in ms (250, 500, 1000).",
      "url": "../../.agents/tools/tinyduino_stream_light.json",
      "digest": "sha256:59fc914a2b160ffb5d675e5078cdba048bcc92be31c87dd59d0383f67e880936"
    }
  ],
  "scripts": [
    {
      "name": "tinyduino-adapter",
      "description": "Portable ESM engine logic and tool execution handler for tinyduino-adapter.",
      "url": "../../.agents/scripts/tinyduino-adapter.js",
      "digest": "sha256:13618351ee09f1a11c334fb946e937d459b7b41b49a915f108da17a995cad278"
    },
    {
      "name": "tinyduino-ble",
      "description": "Portable ESM engine logic and tool execution handler for tinyduino-ble.",
      "url": "../../.agents/scripts/tinyduino-ble.js",
      "digest": "sha256:be06dd5a7042e8168912f7f7c1040b34c384116c5ac2d2bdc4eb0e2391deb4ac"
    },
    {
      "name": "tinyduino-element",
      "description": "Portable ESM engine logic and tool execution handler for tinyduino-element.",
      "url": "../../.agents/scripts/tinyduino-element.js",
      "digest": "sha256:2e641521531c4313921a9c9e7399d89886be749a7beedea22e0d85befbc230e7"
    },
    {
      "name": "tinyduino",
      "description": "Portable ESM engine logic and tool execution handler for tinyduino.",
      "url": "../../.agents/scripts/tinyduino.js",
      "digest": "sha256:cebca45691c331ebd094a264f1c24d49613ef2caa1287fb179caba9b380955db"
    }
  ],
  "dependencies": {
    "tools": [
      "../../.agents/tools/tinyduino_ambient_level.json",
      "../../.agents/tools/tinyduino_connect.json",
      "../../.agents/tools/tinyduino_disconnect.json",
      "../../.agents/tools/tinyduino_get_connection_status.json",
      "../../.agents/tools/tinyduino_get_status.json",
      "../../.agents/tools/tinyduino_read_light.json",
      "../../.agents/tools/tinyduino_read_telemetry.json",
      "../../.agents/tools/tinyduino_render_surface.json",
      "../../.agents/tools/tinyduino_send_command.json",
      "../../.agents/tools/tinyduino_send_raw.json",
      "../../.agents/tools/tinyduino_set_led.json",
      "../../.agents/tools/tinyduino_stop_stream.json",
      "../../.agents/tools/tinyduino_stream_light.json"
    ],
    "scripts": [
      "../../.agents/scripts/tinyduino-adapter.js",
      "../../.agents/scripts/tinyduino-ble.js",
      "../../.agents/scripts/tinyduino-element.js",
      "../../.agents/scripts/tinyduino.js"
    ]
  }
}
