A skill is not a personality.
"Be strategic" is not a skill. "Sound like me" is not a skill. "Help with work" is not a skill.
A skill is a bounded capability the agent can perform with known inputs, known outputs, and known stop conditions.
Job
The skill layer constrains action.
It gives the agent a smaller job than "figure it out." That makes the output easier to review and the system easier to improve.
Inputs
A useful skill definition should say:
- what user request activates it
- what memory it may use
- what tools it may call
- what output shape it must produce
- what it must cite
- what it must refuse
- when it should ask for review
For a personal agent, good first skills are simple: prepare a brief, extract decisions, turn raw notes into a project update, compare options, draft from approved context, or critique a plan.
Those are not glamorous. They are useful because success can be inspected.
Processing
The skill should do the smallest complete version of the work.
If the user asks for a meeting brief, the skill should gather relevant active memory, identify open questions, note recent changes, and produce a brief. It should not update the project record, send the brief, or infer decisions that were not present.
The boundary is the product.
Output
The output should be a draft artifact with traceability: what was used, what was missing, what assumptions were made, and what needs human review.
This is where many agent systems become too clever. They optimize for finished-looking output. A mature skill optimizes for reviewable output.
Review Question
The review question is: can I tell whether this failed because of the prompt, the retrieved context, the skill boundary, or the model?
If the answer is no, the skill is too vague.
Failure Mode
The failure mode is the universal assistant.
It feels powerful because it can attempt anything. It is hard to improve for the same reason. Every failure becomes a general vibes problem instead of a specific system problem.