a skill is a text file

Your agent just got better at a job. Nobody retrained it.

A skill is a recipe card in a drawer: a label saying when to use it, instructions inside. The agent reads only the labels — until a job matches one, and that card gets pulled. Watch it happen for real, then write your own card and battery-test it.

One job, two agents, the same model underneath.

“Write a commit message for this diff.” Agent B has one thing agent A doesn’t. Predict: will their answers differ — and by how much?

diff --git a/src/api/client.ts b/src/api/client.ts
@@ -12,9 +12,17 @@
-export async function fetchOrders(userId: string) {
-  const res = await fetch(`/api/orders?user=${userId}`);
-  return res.json();
+export async function fetchOrders(userId: string, retries = 3) {
+  for (let i = 0; i < retries; i++) {
+    const res = await fetch(`/api/orders?user=${userId}`);
+    if (res.ok) return res.json();
+    if (res.status < 500) break; // client errors won't heal on retry
+    await new Promise((r) => setTimeout(r, 2 ** i * 250));
+  }
+  throw new Error("orders unavailable");
 }
agent A — empty drawer

no skills installed; the model does its default thing

waiting for the run…

agent B — one card in the drawer

identical model and prompt, one skill installed

waiting for the run…