Google added Agent Skills support to Genkit across TypeScript, Go, Dart, and Python. The implementation makes progressive disclosure a harness behavior rather than a prompting convention.
A skill remains a normal directory. SKILL.md contains metadata and instructions, while optional scripts, references, and assets hold executable or supporting resources. At initialization, Genkit scans configured skill paths and puts only frontmatter metadata into the system prompt.
When a request matches a skill description, middleware exposes a use_skill activation path and loads the full instructions. The active skill can then pull its own references or execute bundled scripts. Unrelated skills stay out of the model’s working context.
In Genkit Go, this is implemented through the middleware lifecycle. Model wrappers handle individual calls, tool wrappers intercept executions, and generate wrappers see complete tool-loop iterations. The Skills middleware uses those hooks to discover, activate, and execute specialized knowledge without requiring a separate service.
The minimum integration is small: install the Genkit Go SDK, point the Skills middleware at one or more directories, and pass it through ai.WithUse during generation. That simplicity preserves a useful property of skills: they can be versioned and distributed like code.
The quality risk moves to metadata. If hundreds of skills have vague or overlapping descriptions, progressive disclosure still selects poorly. Genkit solves the loading mechanism. Teams still need ownership, collision checks, trace-based usage audits, and tests for when a skill should activate.
