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
90%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Use this skill when designing or reviewing a device/platform harness for put.io work. The harness should wrap platform tools, expose a typed command surface, drive runtime behavior, assert meaningful state, and leave proof artifacts.
taizn or putio-roku.harness-pattern.md: adapter, CLI/API, runtime driver, assertions, proof artifacts, repo integration, and boundaries.Mini-example command surface:
harness package --profile <profile-name>
harness install --device <device-alias>
harness launch --app <app-id>
harness press --key play-pause
harness assert-screen --name player --artifact artifacts/live/player.pngThe exact command names should follow the target repo, but the shape should stay narrow, typed, and proof-producing.
Minimal TypeScript shape:
type HarnessArtifact = {
kind: "screenshot" | "log" | "state" | "review-html";
path: string;
};
type HarnessResult = {
status: "ok" | "failed";
device: string;
artifacts: HarnessArtifact[];
message?: string;
};
interface PlatformAdapter {
package(profile: string): Promise<HarnessResult>;
install(device: string): Promise<HarnessResult>;
launch(appId: string): Promise<HarnessResult>;
press(key: string): Promise<HarnessResult>;
screenshot(path: string): Promise<HarnessResult>;
}For a harness design or implementation plan, report: