<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Documentation on Blog of Jérémie Litzler</title><link>https://iamjeremie.me/tags/documentation/</link><description>Recent content in Documentation on Blog of Jérémie Litzler</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Fri, 28 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://iamjeremie.me/tags/documentation/index.xml" rel="self" type="application/rss+xml"/><item><title>Don’t Design the Skill Too Early—Use What You’ve Done to Craft One.</title><link>https://iamjeremie.me/post/2026-08/dont-design-the-skill-too-early/</link><pubDate>Fri, 28 Aug 2026 00:00:00 +0000</pubDate><guid>https://iamjeremie.me/post/2026-08/dont-design-the-skill-too-early/</guid><description>&lt;img src="https://iamjeremie.me/post/2026-08/dont-design-the-skill-too-early/2026-08-28-a-skilled-blacksmith-working-in-his-rustic-workshop.jpg" alt="Featured image of post Don’t Design the Skill Too Early—Use What You’ve Done to Craft One." /&gt;&lt;p&gt;I didn’t set out to design the skill I’ll be talking about today when &lt;a class="link" href="https://iamjeremie.me/post/2026-08/i-replaced-claude-ai/"&gt;I replaced Claude.ai&lt;/a&gt;. It came a few months later, after working on three distinct topics filled with context, data and prompts, I noticed what they had in common..&lt;/p&gt;
&lt;p&gt;That turned out to become a skill because I noticed that I was using a pattern I could reuse.&lt;/p&gt;
&lt;p&gt;Let’s review the steps to build it.&lt;/p&gt;
&lt;h2 id="three-projects-one-method"&gt;&lt;a href="#three-projects-one-method" class="header-anchor"&gt;&lt;/a&gt;Three Projects, One Method
&lt;/h2&gt;&lt;p&gt;Over a few weeks, three unrelated projects had grown and matured in my Claude archive: sizing a solar installation with battery storage at home, replacing an Amazon Seller Central integration for a small book shop, and working out how mobile push notifications could reach an app I was working on for a client.&lt;/p&gt;
&lt;p&gt;Nothing connected them except that each had needed research, several rounds of refinement, and a set of decisions at the end.&lt;/p&gt;
&lt;p&gt;Opening them side by side, the same skeleton appeared in all three:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;&lt;/th&gt;
					&lt;th&gt;Solar project&lt;/th&gt;
					&lt;th&gt;Book website&lt;/th&gt;
					&lt;th&gt;Push notifications&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Context&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;README.md&lt;/code&gt; with plans and load curves&lt;/td&gt;
					&lt;td&gt;folded into the prompt&lt;/td&gt;
					&lt;td&gt;a raw meeting transcript&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Ask&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;PROMPT.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;INITIAL-PROMPT.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;—&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Deliverable&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;PLAN.md&lt;/code&gt; v7, with a correction log&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;PLAN.md&lt;/code&gt;, marked “Draft v1”&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;SYNTHESE-ET-QUESTIONS.md&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Feedback&lt;/td&gt;
					&lt;td&gt;’FEEDBACK-PLAN-v1’ through ’v7’&lt;/td&gt;
					&lt;td&gt;—&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;FEEDBACK-SYNTHESE-v1.md&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Reproducibility&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;analyse/*.py&lt;/code&gt; plus their CSV outputs&lt;/td&gt;
					&lt;td&gt;—&lt;/td&gt;
					&lt;td&gt;diagrams and a sourced references section&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;I didn’t plan for it.&lt;/p&gt;
&lt;p&gt;It emerged because I organized the way I used Claude Code when prompting it.Anthropic’s own guidance states that this moment marks the ideal time to reach for a skill: “&lt;a class="link" href="https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills" target="_blank" rel="noopener"&gt;As you work on a task with Claude, ask Claude to capture its successful approaches and common mistakes into reusable context and code within a skill.””&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The alternative—sitting down to design the ideal brainstorming workflow—would have produced something that wasn’t as ready-to-use as my first draft of this skill. We would have invented the parts we thought mattered instead of keeping the parts that had already survived seven rounds of being wrong.&lt;/p&gt;
&lt;h2 id="i-asked-where-the-examples-disagreed"&gt;&lt;a href="#i-asked-where-the-examples-disagreed" class="header-anchor"&gt;&lt;/a&gt;I Asked Where the Examples Disagreed
&lt;/h2&gt;&lt;p&gt;My three examples thatagreed with mee told me what towriten. But as you see above, they also disagree and that tells you what to ask about.&lt;/p&gt;
&lt;p&gt;They disagreed on four points, and each one changed the shape of the skill:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;where the context lives and how it’s organized,&lt;/li&gt;
&lt;li&gt;how the deliverable should be versioned,&lt;/li&gt;
&lt;li&gt;what the files should be called (&lt;code&gt;README.md&lt;/code&gt; vs. &lt;code&gt;INITIAL-PROMPT.md&lt;/code&gt;),&lt;/li&gt;
&lt;li&gt;and which companion documents were part of the flow.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Rather than picking silently, we put the four questions up front and let the answers drive the build.&lt;/p&gt;
&lt;p&gt;I defended the versioning answer hardest. The solar plan is a single &lt;code&gt;PLAN.md&lt;/code&gt;, rewritten in place at every round, carrying a section called &lt;em&gt;Historique des corrections&lt;/em&gt; that reads like this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-plaintext" data-lang="plaintext"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;v3: the module price was overestimated by ~75%; the claim that &amp;#34;the battery never pays for itself&amp;#34; was false, for lack of comparing against having no battery at all.
&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;That log records what went &lt;strong&gt;wrong&lt;/strong&gt;, not just the additions. Keeping &lt;code&gt;PLAN-v1.md&lt;/code&gt;, &lt;code&gt;PLAN-v2.md&lt;/code&gt; and so on would have preserved the same text with none of the meaning—&lt;code&gt;git&lt;/code&gt; already holds the old words. What &lt;code&gt;git&lt;/code&gt; can’t tell you which of yesterday’s conclusions you should stop trusting.&lt;/p&gt;
&lt;h2 id="the-rules-were-the-real-payload"&gt;&lt;a href="#the-rules-were-the-real-payload" class="header-anchor"&gt;&lt;/a&gt;The Rules Were the Real Payload
&lt;/h2&gt;&lt;p&gt;We needed to capture the habits that made those three sessions produce something trustworthy:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Never compute in the chat. That’s something I’ve come to avoid early on because I need to understand the figures AI throws at me, not just &lt;em&gt;believe they’re true&lt;/em&gt;. Any number that reaches the deliverable comes from a script because arithmetic that happens in prose can’t be rerun when an input changes at v5. Since you provide the data, you can check the soundness of the output from the script.&lt;/li&gt;
&lt;li&gt;Claims need a reliable source to hold added value. Collect them in a “sources” section and quote them where it matters.&lt;/li&gt;
&lt;li&gt;Split questions by audience simplifies follow up. On a large brainstorming, you know your audience and having a question section per audience makes easier to know what to act on. For technical feasibility, product arbitration and compliance sign-off are three distinct readers, and mixing them produces a list nobody can act on.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="conclusion"&gt;&lt;a href="#conclusion" class="header-anchor"&gt;&lt;/a&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;Anthropic’s guidance for building skills recommends creating evaluations before writing extensive documentation so that a skill &lt;a class="link" href="https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices" target="_blank" rel="noopener"&gt;“solves real problems rather than documenting imagined ones”&lt;/a&gt;. Therefore, you iterate on observed behavior rather than assumptions. Working on these three sessions constitutes a budget-friendly way to get most of that for free: &lt;em&gt;they’re&lt;/em&gt; the evaluations, already run, with their failures already recorded.&lt;/p&gt;
&lt;p&gt;The skill we ended up with argues that a plan has value only if it records the journey to a set of decisions and choices. Its history makes the case better than its text does. Don’t design the skill too early. First, perform work yourself alongside the LLM, then, when you notice a repeated pattern, evaluate if a skill is waiting to emerge.&lt;/p&gt;
&lt;p&gt;If you liked this article…&lt;/p&gt;
&lt;div class="jli-notice jli-notice-tip" id="Follow me" &gt;
 &lt;p class="jli-notice-title"&gt;Follow me&lt;/p&gt;&lt;p&gt;Thanks for reading this article. Make sure to &lt;a class="link" href="https://x.com/LitzlerJeremie" target="_blank" rel="noopener"&gt;follow me on X&lt;/a&gt;, &lt;a class="link" href="https://iamjeremie.substack.com/" target="_blank" rel="noopener"&gt;subscribe to my Substack publication&lt;/a&gt; and bookmark my blog to read more in the future.&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Credit: Photo by ΘSWΛLD (&lt;code&gt;https://www.pexels.com/photo/blacksmith-at-work-in-rustic-workshop-34116082/&lt;/code&gt;)&lt;/p&gt;</description></item></channel></rss>