Harness Wire

link-harness-wire holds the words a harness's messages and skills are written in: Link's own connection's threads, what came of a message, and a skill as the Agent Skills standard writes one.

link is Link's own connection, lnk agent chat send's, with no account and no bot, from the agent's owner alone. Its threads are link:<name>, and main unless a chat names one.

A thread's name

link_thread makes a thread of a name of 1 to 64 letters, digits, -, _ and ., starting with a letter or digit, and refuses any other, saying why.

Checking a thread

is_link_thread says whether a thread is one of link's, and check_link_thread refuses one that isn't, or whose name link_thread wouldn't take.

What came of a message

Asked is what came of a message sent to the harness: its answer, whole, or that it joined a turn already running, whose answer, on the message that started it, answers it too.

A skill

A skill is a folder named for it, holding SKILL.md, whose front matter says its name and description above its instructions. Link reads only those two: a harness lists them in its prompt, and its model reads the rest when a task needs it.

Its name

check_name takes the standard's names: 1 to 64 lowercase letters, digits and -, with no - first, last or twice in a row.

Reading one

parse reads a SKILL.md into a Skill, its name and its description on one line, and refuses one with no front matter between two lines of ---, or whose name or description is missing or not as the standard says. A description is at most 1,024 characters.