CtrlK
BlogDocsLog inGet started
Tessl Logo

putio/device-harness

Design small, typed, agent-friendly harnesses for hard-to-automate device and TV platforms. Use when shaping tools for Tizen, Roku, Android TV, Apple TV/tvOS, emulator wrappers, screenshot collectors, remote-control drivers, runtime assertion tools, or similar proof loops.

72

Quality

90%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

examples.mdreferences/

Examples

These examples are training references for the harness pattern. They are not the product this skill creates.

taizn

taizn demonstrates the packaging, install, and signing side of a device harness.

Pattern signals:

  • tiny TypeScript CLI companion for Tizen work
  • wraps Tizen CLI and sdb
  • exposes focused commands such as profile, package, and install
  • uses a repo config file for stable inputs
  • uses an ignored working directory for local output and generated state
  • reads sensitive values from env or local config instead of git
  • turns multi-step Tizen ceremony into repeatable commands

Use this pattern when a platform needs reliable build/package/install setup before runtime testing can start.

Good boundaries:

  • keep signing material, cert passwords, device identities, and local SDK paths out of checked-in examples
  • keep app-specific navigation and playback checks out of the generic Tizen wrapper
  • make packaging and install failures typed enough that an agent can fix the root cause

putio-roku

putio-roku demonstrates a hardware-backed runtime proof loop.

Pattern signals:

  • Make targets wrap common live-device workflows
  • TypeScript scripts drive live Roku checks
  • Roku ECP handles launch, deeplinks, keypresses, and screenshots
  • SceneGraph/runtime queries support assertions when available
  • screenshots, logs, review HTML, and compact summaries make behavior reviewable
  • live checks cover navigation, playback, focus, media-key behavior, and visual artifacts

Use this pattern when platform behavior can only be trusted after running on a real device or emulator.

Good boundaries:

  • keep Roku IPs, developer passwords, channel IDs, account data, and content IDs out of git
  • keep generic remote-control and screenshot primitives separate from app journeys
  • keep scenario expectations in named scripts or scenario files so the platform driver remains reusable

What To Copy

Copy the shape, not the exact implementation:

  • a small typed CLI or script API
  • repo-local commands for common flows
  • clean local config and env boundaries
  • device communication wrapped behind narrow functions
  • meaningful waits and assertions
  • proof artifacts written to predictable paths
  • concise failure messages that point to the failing platform step

What Not To Copy

Do not make a new harness depend on another platform's quirks:

  • Tizen signing flow does not belong in a Roku or Android harness
  • Roku ECP assumptions do not belong in a Tizen harness
  • app-specific playback journeys do not belong in a generic platform adapter
  • personal device setup does not belong in checked-in docs

references

examples.md

harness-pattern.md

platform-notes.md

SKILL.md

tile.json