PTENES
MODULE 3.4

🎯 The description is the trigger

With 20 skills installed, how does the agent know which one to use? It doesn’t read the entire `skill.md` for each one—it reads a single, short field from each. This module is about that field: a description, the text that determines whether your skill is found or ignored.

6
Topics
25
Minutes
Foundation
Level
Theory
Type
0 of 60%
1

🔎 The only text that matters when choosing

New here? When you have several skills installed, the agent doesn't read each skill's full `skill.md` all the time — that would cost a lot in tokens (the unit that measures how much text was processed, covered in module 0.1). To decide which skill fits your request, it scans only the description — the short sentence at the top of the file, in the front matter.

This is module 3.2’s three-level loading in practice: level 1 is the name and description, and it’s ONLY with this level 1 that the agent decides whether to open the full skill (level 2). If the description doesn’t convince it, the skill isn’t even considered—no matter how good the steps inside are. It’s the label on a drawer: if it doesn’t accurately describe what’s inside, no one will open that drawer at the right time.

💡 Main Concept

The description doesn’t describe WHAT the skill is—it describes WHEN to use it.

  • •It's compared against the user's request, not read in isolation.
  • •Concrete words the user would say carry more weight than internal technical jargon.
2

⚖️ Vague vs. specific

A vague description talks about the general domain; a good one describes the specific SITUATION that triggers it. Compare: “helps with documents” doesn’t give you anything useful for making a decision — almost any request “fits” that, or none really do. But “generates a contract PDF from a Word template when the user asks for ‘contract,’ ‘generate PDF,’ or ‘document template’” gives the agent real trigger words to compare with the request.

✗ Vague description

  • ✗"Helps with documents."
  • ✗"Tool for reports."
  • ✗"General automation skill."

✓ Specific description

  • ✓"Generates a contract PDF from a Word template when the user asks for a 'contract' or to 'generate PDF'."
  • ✓"Generates the monthly sales report in PDF when the user says 'month-end close'."
  • ✓"Schedules a recurring task when the user says 'every day,' 'every week,' or 'run on its own.'"

✨ Practical Tip

Write the description as if you were answering "when should I open this drawer?"—not "what’s inside this drawer?" The right question changes the entire text.

3

⌨️ /explicit command vs. natural language

New here? There are two ways to trigger a skill. The first is to type the /nome-da-skill direct — like calling someone by their exact name, with no room for error, because you're pointing to the `name` in the front matter. The second is to write in plain English ("generate this month's report") and let the agent MATCH your intent to the description from an installed skill—like a receptionist who hears your request and knows which department to send you to.

"generate the report of the month" skill A: "help with requests" skill B: "send a billing email" skill C: "monthly PDF report" skill D: "schedule a recurring task" Match: skill C loads level 2

Caption: the request in Portuguese comes in on the left; the agent compares it with the description of each installed skill (highlighted in the middle) and activates the best match — in this example, skill C.

🔍 Inside

  • /command: zero ambiguity — you chose the skill by name, period.
  • Natural language: depends entirely on the quality of the description for ALL installed skills, not just yours.
  • Most well-made skills work in both modes because the `name` is clear AND the `description` is specific.
4

⚠️ Common description errors

Three traps keep recurring: (1) too generic—words that could describe any skill in the domain; (2) focused on “what the skill is” (“PDF tool”) instead of “when to use it” (“generates a contract PDF when the user says X”); (3) overlap—two skills with similar descriptions competing for the same request, which makes the agent choose incorrectly or hesitate between them.

How a description evolves: bad → better → good

# Ruim
description: Ajuda com relatórios da empresa.

# Melhor
description: Gera relatórios em PDF a partir de planilhas Excel.

# Boa
description: Gera o PDF do relatório mensal de vendas a partir da
  planilha vendas.xlsx quando o usuário pedir "relatório mensal",
  "fechamento do mês" ou "PDF de vendas". Não usar para relatórios
  de outro tipo (ver skill "relatorio-financeiro-anual").

⚠️ Attention

The “good” version above does more than describe—it also says what NOT to cover, pointing to another skill. That resolves the overlap before it becomes a problem (see topic 5).

5

🥊 Competition between similar skills

When two skills compete for the same situation — for example, "skill-relatorio-vendas" and "skill-relatorio-geral" with similar descriptions — the agent may get confused, choose the wrong one, or ask you too many questions to break the tie. The solution is to DIFFERENTIATE: each description should make clear the boundary that separates it from the other, not just what it does. Think of two neighboring storefront signs — if both say "sells food," customers won't know which is the pizzeria and which is the ice cream shop.

t=0

User types: "put together the July sales report".

t=1

The agent scans the descriptions of all installed skills in parallel—not one at a time in order.

t=2

If two descriptions match equally well, the agent may choose the “more specific” one or stop and ask—a behavior that isn’t always predictable.

t=3

With clearly differentiated descriptions, there’s an immediate, unambiguous match—no hesitation.

✗ Conflicting descriptions

  • ✗"Generates a sales report." (skill A)
  • ✗"Generates the monthly report." (skill B)

✓ Distinct descriptions

  • ✓"Generates a sales-by-region report in Excel." (skill A)
  • ✓"Generates the month's consolidated financial report in PDF." (skill B)
6

🧪 Testing whether the description triggers correctly

You don’t have to guess whether the description works — you can test it directly. Open a new session (without context from the previous conversation), write a natural-language request the way a real user would, and see whether the agent recognizes and activates the right skill. Repeat with 2-3 different sentences that describe the same intent — if any fail, the trigger is still too weak.

Copy-run—objective

In a new session, test whether your skill’s description triggers with 3 different phrases a real user might say.

Sem executar nada ainda: olhando só as descriptions das skills
que você tem disponíveis agora, me diga qual skill você usaria
para cada um destes três pedidos, e por quê:
1) "<frase 1 que um usuário real diria>"
2) "<frase 2, mesma intenção, palavras diferentes>"
3) "<frase 3, mais indireta/informal>"
Se nenhuma skill combinar bem com algum pedido, me diga isso
também — não force um match.

How to verify: all three answers should point to your skill <nome-da-skill>. If any of them points to another skill (or none at all), go back to the description and adjust the trigger words.

✨ Practical Tip

Ask someone who did NOT write the skill to describe, in their own words, when they would use it — if their description doesn't match yours, the description is wrong, not the person.

Quick check (optional): what does the agent read FIRST to decide which skill to use among several installed ones?

✅ Module Summary

✓
Trigger: the description is the only text scanned to route between skills.
✓
Vague vs. specific: describe WHEN to use it, in words the user would say.
✓
Two trigger modes: /exact command or natural language via description.
✓
Common errors: generic, focused on “what it is” instead of “when,” unresolved concurrency.
✓
Test: validate with 3 real sentences in a new session.

Quick exercise:

Take one of your descriptions (or write a new one for a repetitive task) and rewrite it three times: one version focused only on “what it is,” another on “when to use it,” and a final version combining both—compare which one is easier to recognize.

Next module:

3.5 — Project vs. global: where to store each skill, and why that changes how generic it needs to be.