<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Agent-Skills on Andrea Grandi</title>
        <link>https://www.andreagrandi.it/tags/agent-skills/</link>
        <description>Recent content in Agent-Skills on Andrea Grandi</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en-us</language>
        <lastBuildDate>Sun, 07 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.andreagrandi.it/tags/agent-skills/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Why add an agent skill to a CLI that already has a context command?</title>
        <link>https://www.andreagrandi.it/posts/why-add-agent-skill-cli-context-command/</link>
        <pubDate>Sun, 07 Jun 2026 00:00:00 +0000</pubDate>
        
        <guid>https://www.andreagrandi.it/posts/why-add-agent-skill-cli-context-command/</guid>
        <description>&lt;img src="https://www.andreagrandi.it/posts/why-add-agent-skill-cli-context-command/logbasset.png" alt="Featured image of post Why add an agent skill to a CLI that already has a context command?" /&gt;&lt;h2 id=&#34;introduction&#34;&gt;Introduction
&lt;/h2&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/andreagrandi/logbasset&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;strong&gt;logbasset&lt;/strong&gt;&lt;/a&gt;, my open source CLI for querying &lt;a class=&#34;link&#34; href=&#34;https://www.dataset.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Scalyr&lt;/a&gt; logs, was already built to be friendly to AI coding agents. It ships a &lt;code&gt;context&lt;/code&gt; command that prints an agent-facing reference — every command, flag, output format, time syntax, and even a list of flags that &lt;em&gt;look&lt;/em&gt; plausible but don&amp;rsquo;t exist — plus a &lt;code&gt;schema&lt;/code&gt; command that emits the same information as machine-readable JSON.&lt;/p&gt;
&lt;p&gt;So when I sat down to add an installable &lt;a class=&#34;link&#34; href=&#34;https://www.skills.sh/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;agent skill&lt;/a&gt;, I had a fair question to answer first: if the binary already documents itself, what&amp;rsquo;s the skill even for?&lt;/p&gt;
&lt;h2 id=&#34;self-documentation-isnt-discovery&#34;&gt;Self-documentation isn&amp;rsquo;t discovery
&lt;/h2&gt;&lt;p&gt;The &lt;code&gt;context&lt;/code&gt; command answers &lt;em&gt;how&lt;/em&gt; to use logbasset. But it only helps an agent that has &lt;strong&gt;already decided&lt;/strong&gt; to reach for logbasset in the first place. Nothing tells the agent &amp;ldquo;this tool exists, and it&amp;rsquo;s the right one when the user mentions Scalyr logs.&amp;rdquo; That&amp;rsquo;s a separate problem — discovery — and a context command can&amp;rsquo;t solve it, because the agent has to know to run it.&lt;/p&gt;
&lt;p&gt;An agent skill fills exactly that gap. A skill is matched by its description, so it acts as the trigger layer: &lt;em&gt;&amp;ldquo;when the user wants to investigate, search, or tail Scalyr/DataSet logs, use logbasset.&amp;rdquo;&lt;/em&gt; Once it fires, it hands off to the binary.&lt;/p&gt;
&lt;h2 id=&#34;a-thin-skill-not-a-second-copy-of-the-docs&#34;&gt;A thin skill, not a second copy of the docs
&lt;/h2&gt;&lt;p&gt;The obvious mistake would be to stuff the whole command reference into the skill. That instantly creates a second source of truth that goes stale the moment I add a flag — and now I&amp;rsquo;m maintaining the same documentation in two places.&lt;/p&gt;
&lt;p&gt;So the skill does almost nothing. It tells the agent: check that &lt;code&gt;logbasset&lt;/code&gt; is installed, then run &lt;code&gt;logbasset context&lt;/code&gt; and &lt;code&gt;logbasset schema&lt;/code&gt; to load the &lt;em&gt;current&lt;/em&gt; reference, then build the query. It deliberately lists no flags of its own. A CLI change can never make it lie, because it never claims anything specific — it just points at the binary, which is always right.&lt;/p&gt;
&lt;p&gt;That combination is the whole idea: the &lt;code&gt;context&lt;/code&gt; command makes logbasset &lt;strong&gt;usable&lt;/strong&gt; by an agent, and the skill makes it &lt;strong&gt;discoverable&lt;/strong&gt; — with near-zero maintenance, because the skill delegates instead of duplicating.&lt;/p&gt;
&lt;h2 id=&#34;try-it&#34;&gt;Try it
&lt;/h2&gt;&lt;p&gt;If you use logbasset with a coding agent, install the skill alongside the binary:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx skills add andreagrandi/logbasset
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;It works with any &lt;a class=&#34;link&#34; href=&#34;https://www.skills.sh/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;skills.sh-supported agent&lt;/a&gt; — Claude Code, Codex, Cursor, and others — and the binary stays a separate install.&lt;/p&gt;
&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;Giving your CLI a &lt;code&gt;context&lt;/code&gt; or &lt;code&gt;schema&lt;/code&gt; command is great: it lets an agent use the tool correctly. But a small, thin skill on top is what gets the agent to reach for it in the first place. If your CLI already self-documents, you&amp;rsquo;re most of the way there — a discovery layer is a cheap, high-leverage addition, as long as you keep it thin and let the binary remain the source of truth.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
