Feature · @linda/skills
Eight skills you can install.
Each skill is a directory: an instructions file the LLM reads, a JSON schema for outputs, optional examples. The LLM opts into the ones it needs and ignores the rest.
The shape of a skill
/skills/installed/resume-intake/
├── SKILL.md # natural-language instructions the LLM reads
├── schema.json # JSON schema for the structured output
└── examples/
├── good-1.json
└── good-2.json
The LLM doesn't read every skill into context at startup. It reads
/skills/index.json to know what's available, then opens
SKILL.md for the one it picks. Context-efficient.
The eight built-ins
resume-intake Read a dropped resume (PDF/DOCX), extract structured fields, auto-fill the form.
kyc-id-check ID photo → OCR → structured fields. Capability-gated on file/camera support.
payment-intake Card details captured one field at a time with PCI-friendly mode (offload to provider).
signature-capture Trackpad/touch signature → base64 PNG → posted to your endpoint.
consent-flow Read T&Cs aloud, capture explicit consent, log timestamp + IP for audit.
multi-step-wizard Page-by-page wizard pattern — auto-detects sections, shows progress.
calendar-booking Pick a slot via natural language; integrates with Cal.com / Google Calendar.
address-verify Free-text → structured address, hit a verification service if mounted.
Define your own
import { defineSkill } from "@linda/skills";
export const lead_qualifier = defineSkill({
name: "lead-qualifier",
instructions: `
Ask BANT questions one at a time. Score the lead 0-100.
Return tier: hot | warm | cold.
`,
schema: {
type: "object",
required: ["score", "tier"],
properties: {
score: { type: "number" },
tier: { type: "string", enum: ["hot", "warm", "cold"] },
},
},
}); Ship an agent-driven flow this afternoon.
Install Linda, paste a config, and your form turns into an agent that fills its own inputs.