CtrlK
BlogDocsLog inGet started
Tessl Logo

plan-composition

Use once the problem and artifacts are understood, to decide the right shape for the context. Produces a short composition plan - a single skill for simple cases, or a plugin with the right mix of skills, rules, hooks, MCP servers, and commands - and confirms it with the user before anything is built.

89

1.31x
Quality

61%

Does it follow best practices?

Impact

95%

1.31x

Average score across 9 eval scenarios

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./plugin-creator/skills/plan-composition/SKILL.md

The canonical home for this skill is tessl/plugin-creator

SKILL.md
Quality
Evals
Security

Plan the composition

You know the problem and have the material. Now decide how best to arrange it. This is a plan, not a build, keep it short and confirm it before creating anything.

First, choose the primitive

Before deciding single-skill-vs-plugin, decide what kind of context each part is, because it is easy to default everything to skills. See references/choosing-the-shape.md.

  • If the agent should follow a workflow when a relevant task comes up, use a skill.
  • If the agent should always obey a convention, unprompted, use a rule.
  • If behavior must run deterministically at an agent lifecycle event, use a hook. Prefer cross-agent hooks; use nativeHooks only when the event or data is agent-specific.
  • If the agent needs live tools or data, use an MCP server.

Watch for always-on-convention language: "the agent keeps getting X wrong", "every time", "it never follows our...". That is usually a rule (or a rule plus a skill), not a skill alone. Do not push a conventions request toward skills by default.

Decide the shape

Default to the smallest thing that solves the problem.

  • A single skill — for a simple, self-contained workflow. In Tessl a skill is already a minimal plugin (it gets a plugin.json), so this is not a lesser option; it is the right one when the problem is simple.
  • A plugin with several primitives — when the problem has distinct parts (decompose), related skills belong together, or it mixes model guidance with deterministic behavior or live capabilities.
  • A plugin with a hook — when a command must run automatically at a lifecycle event. Use the generic tier for agent-independent behavior and the native tier only as an agent-specific escape hatch.
  • A plugin with an MCP server — when the agent needs a tool or live data, not just instructions. Add one only when it clearly earns its place.

Write the plan

In a few lines, state: the problem, the artifacts, and the proposed shape, which primitive each part becomes (skill, rule, hook, MCP server, or command), and whether anything needs decomposing. For a hook, state the lifecycle event and whether the generic or native tier is justified. Explain the why, especially if you are proposing to split a big skill, encode a convention as a rule, or use an agent-specific hook. Confirm with the user, or make the call and tell them your reasoning.

Hand off

Pass the confirmed plan to build-composition.

When to stop

Stop when there is a confirmed composition plan.

Repository
tesslio/product-plugins
Last updated
First committed

Canonical home

tessl/plugin-creator
In sync

since Jul 6, 2026

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.