agentsclimarketplace

Design agents

Skill pantheon-org/tekhne/skills/agentic-harness/opencode-toolkit/design-agents

Create and refine OpenCode agents via guided Q&A. Use when creating an agent file, improving an existing agent, configuring AGENTS.md frontmatter, setting subagent_type, defining allowed-tools, restricting permissions, designing agent routing, writing a system prompt, configuring mode: subagent, setting a permission block, or working with the Task tool delegation pattern. Examples: 'Create an agent for code reviews', 'My agent ignores context', 'Add a database expert subagent', 'Make my agent faster', 'Agent triggers on wrong requests'.From its SKILL.md

Install
npx -y skills add pantheon-org/tekhne --skill design-agents

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 9 stars9 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 1 command, including `bun run opencode`.

SKILL.md

4.0 KB, 857 tokens by cl100k_base, as published. Nobody here has run it

Agent Architect

Create and refine OpenCode agents through a guided Q&A process.

Quick Start

Create .opencode/agents/<name>.md:

---
description: Code review specialist. Use when user says "review", "check my code", "find bugs".
---

You are an expert code reviewer. Analyze code for bugs, security issues, and performance problems.
Provide specific, actionable feedback with line references.

For subagents (Task tool only), add mode: subagent. For permission restrictions, add a permission: block:

---
mode: subagent
permission:
  bash:
    "*": "ask"
    "npm test": "allow"
---

Run bun run opencode and type /agents to confirm the new agent appears in the list.

Mindset

An agent is a markdown file with YAML frontmatter. Three decisions drive every design:

DecisionWhy it matters
Scope (description)Controls when the agent triggers — too vague = never fires, too broad = fires on everything
Mode (mode:)all = visible everywhere; subagent = Task-tool only; primary = main list only
Permissions (permission:)Standard tools need no config; skills ALWAYS need explicit allowlists

When to use: You need a distinct scope, persona, or permission set that differs from the default.

When NOT to use: Do not create an agent just to run a single command — use a slash command instead. Do not create a subagent when you just need a custom system prompt — use AGENTS.md.

Creation Workflow

Ask questions first. Follow phases in references/agent-patterns.md:

  1. Phase 1 — Core Purpose: What does it do? What triggers it? What persona?
  2. Phase 1.5 — Research: Look up current best practices for the domain.
  3. Phase 2 — Capabilities: Permissions, skills, mode (subagent vs primary vs all).
  4. Phase 3 — Review: Show draft, iterate until user approves.

Anti-Patterns

NEVER use bash: { "*": "allow" }. WHY: Allows destructive commands like rm -rf. Use "*": "ask" plus an explicit allowlist.

# BAD
permission:
  bash:
    "*": "allow"
# GOOD
permission:
  bash:
    "*": "ask"
    "npm test": "allow"
    "git status": "allow"

NEVER write system prompts in third person. WHY: The model reads its own system prompt — third person is confusing and degrades instruction-following.

# BAD — "The assistant analyzes code..."
# GOOD — "You analyze code for bugs, security issues, and performance problems."

NEVER add permission: block for standard tools. WHY: It creates noise and can accidentally restrict access to built-in capabilities. Only use permission: when you need to restrict or explicitly allow skills.

Anti-PatternFix
Vague descriptionAdd concrete trigger examples
Missing mode: subagent on subagentsSet it explicitly
skill: { "my-skill": "allow" } without "*": "deny"Deny "*" first

Eval Scenarios

References

What ships with it: 7 files

21.5 KB alongside SKILL.md

.tessl-plugin/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.