From ynh
Interactive wizard to create a ynh harness from scratch. Walks through naming, vendor selection, artifact scaffolding, and installation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ynh:ynh-create-harnessThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are guiding a user through creating their first ynh (ynh) harness. Follow this workflow step by step, asking one question at a time.
You are guiding a user through creating their first ynh (ynh) harness. Follow this workflow step by step, asking one question at a time.
Read these references to understand the current formats and conventions:
references/harness-format.md for manifest syntax, directory structure, and install/run commandsreferences/artifact-formats.md for skill, agent, rule, and command formatsAlso read the working examples in testdata/sample-harness/ to see realistic artifacts:
testdata/sample-harness/.harness.jsontestdata/sample-harness/skills/hello/SKILL.mdtestdata/sample-harness/agents/code-reviewer.mdtestdata/sample-harness/rules/be-concise.mdtestdata/sample-harness/commands/check.mdAsk the user what they want to name their harness. Explain that this becomes the command they type to launch it (e.g., if they name it david, they'll run david to start a session).
The name should be lowercase, short, and memorable. It becomes a shell command.
Ask where to create the harness directory. Suggest a sensible default like ~/harnesses/<name> or a sibling directory to wherever they're working. Let them choose.
Ask which AI vendor they want as the default. Run ynh vendors (or read the output of internal/vendor/ adapters) to show what's available. Currently: claude, codex, cursor.
Explain they can always override with -v at runtime.
Ask which artifact types they want scaffolded. Offer these options:
They can pick any combination, or start with none and add later.
Create the directory structure based on their choices:
<output-dir>/
├── .harness.json
├── AGENTS.md (optional - read natively by most vendors; ynh shims Claude via @-import)
├── skills/ (if selected)
│ └── <example>/
│ └── SKILL.md
├── agents/ (if selected)
│ └── <example>.md
├── rules/ (if selected)
│ └── <example>.md
└── commands/ (if selected)
└── <example>.md
For .harness.json:
{
"$schema": "https://eyelock.github.io/ynh/schema/harness.schema.json",
"name": "<their-name>",
"version": "0.1.0",
"description": "<their description>",
"default_vendor": "<their-vendor>"
}
For each artifact type selected, generate a starter example with realistic content (not lorem ipsum). Use the testdata examples as reference for format, but make the content relevant to the user's context if they mentioned what they work on.
Important: Follow the exact formats from references/artifact-formats.md:
SKILL.md containing YAML frontmatter (name, description)name, description, tools)Show them how to install:
ynh install <output-dir>
If the harness lives inside a monorepo, use --path:
ynh install <repo-url> --path <subdir>
Offer to run this command for them. Then show how to use it:
<name> # interactive session
<name> "hello, introduce yourself" # quick test
If ynh isn't on their PATH, remind them about the build step (make build) and PATH setup from references/harness-format.md.
After the harness is working, mention:
includes to .harness.json. See references/harness-format.md for the syntax./ynh-team-setup to create a team harness with delegation.[email protected]:...) are recommended. ynh delegates to the local git binary - if git clone works, ynh works.npx claudepluginhub eyelock/ynhProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.