Harness Skills

Skills are reusable instruction bundles that can be useful for project conventions, workflow guidance, domain-specific procedures, or any other instructions that should be discoverable by the underlying harness runtime. You can make skills available to a HarnessAgent for the lifetime of a session.

Define Skills

Pass skills to HarnessAgent with the skills setting:

const agent = new HarnessAgent({
harness: claudeCode,
sandbox: createVercelSandbox({
runtime: 'node24',
ports: [4000],
}),
skills: [
{
name: 'careful-refactors',
description: 'Make small, low-risk code changes.',
content:
'Prefer minimal diffs. Preserve public APIs. Before editing, read references/checklist.md and follow it.',
files: [
{
path: 'references/checklist.md',
content:
'# Refactor checklist\n\n- Identify the smallest useful change.\n- Preserve public APIs.\n- Run the narrowest relevant test.',
},
],
},
],
});

Each skill has:

  • name: stable identifier for the skill.
  • description: short model-facing summary.
  • content: full instruction content.
  • files: optional additional text files bundled with the skill.

Additional files use skill-relative POSIX paths, for example reference.md, references/codes.md, or templates/config.json. Reference those paths from content when the agent should read them.

When to Use Skills

Use skills for reusable instructions that should be available on demand, instead of always being loaded into the agent's context like regular instructions.

Use instructions for broad agent behavior and current-session priorities.