Create a Tessl plugin: turn agent workflows and guardrails into a versioned bundle of skills, rules, hooks, and MCP servers, then validate and publish it.
93
88%
Does it follow best practices?
Impact
95%
1.31xAverage score across 9 eval scenarios
Low
Low-risk findings worth noting
Decide the smallest arrangement that solves the problem. Guide the user, do not interrogate.
Do not escalate to a plugin for its own sake. If a single skill solves it, that is the answer.
| The user wants the agent to... | Use a... |
|---|---|
| Follow a workflow when a task comes up | Skill |
| Always obey a convention, unprompted | Rule |
| Run a named action on demand | Command |
| Use a tool or live data it does not have | MCP server |
| Run something automatically at a lifecycle event | Hook |
Choose a cross-agent hooks entry when the behavior is agent-independent and one of the generic lifecycle events can express it: PreToolUse, PostToolUse, UserPromptSubmit, SessionStart, or Stop. This is the paved road for linters, validators, and notifications that should work across supported agents.
Choose nativeHooks only when the requirement depends on an agent-specific event, payload field, or behavior that the generic contract cannot express. Name the target agent and the missing generic capability in the plan. Do not use the native tier merely because the user happens to run one agent today.
The most common mistake is making everything a skill. A skill fires when the agent judges a task relevant; a rule is always in context. If the user says the agent "keeps getting X wrong", "every time", or "never follows our convention", that is an always-on convention, which is a rule (sometimes a rule plus a skill), not a skill on its own. Weigh this explicitly for any conventions-style request before defaulting to a skill.
Not every "the agent should X" belongs in skill or rule prose. If a behavior is better enforced deterministically at an agent lifecycle event, use a hook. If it is a broad observable invariant better expressed as a verifier (tessl change verify, an LLM judge at glob level), point the user at the change-verify skill. Context is the right tool for workflows and conventions the agent reasons about; hooks and verifiers are the right tools for deterministic guardrails.
Evaluation is not part of choosing the shape, and not part of this plugin. Once the composition is built, skill-optimizer handles eval as a separate step. The only thing composition owes eval is a well-formed skill or plugin for it to run on.