<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Fairdraft Studio</title>
    <description>The latest articles on DEV Community by Fairdraft Studio (@fairdraftstudio).</description>
    <link>https://dev.to/fairdraftstudio</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4124395%2Fdf480c72-3b8c-425b-9d8a-1da12c4b8135.png</url>
      <title>DEV Community: Fairdraft Studio</title>
      <link>https://dev.to/fairdraftstudio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fairdraftstudio"/>
    <language>en</language>
    <item>
      <title>A late-invoice follow-up sequence that keeps the client</title>
      <dc:creator>Fairdraft Studio</dc:creator>
      <pubDate>Fri, 25 Sep 2026 11:58:39 +0000</pubDate>
      <link>https://dev.to/fairdraftstudio/a-late-invoice-follow-up-sequence-that-keeps-the-client-3pil</link>
      <guid>https://dev.to/fairdraftstudio/a-late-invoice-follow-up-sequence-that-keeps-the-client-3pil</guid>
      <description>&lt;h2&gt;
  
  
  A late payment is often not a refusal
&lt;/h2&gt;

&lt;p&gt;Before assuming the worst: invoices sit unpaid because they went to the wrong address, because a purchase order number is missing, because the person who approves them is on holiday, or because the finance team pays everything on the 30th regardless of what your invoice says.&lt;/p&gt;

&lt;p&gt;Often the client has not decided not to pay. They simply have not done it yet. A sequence works because it escalates on a schedule, so you never have to decide in the moment how annoyed to sound.&lt;/p&gt;

&lt;p&gt;Write the sequence once and follow it for every client. That is the whole method.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: friendly reminder, 1 to 3 days after the due date
&lt;/h2&gt;

&lt;p&gt;Assume it slipped. Attach the invoice again, since making someone search their inbox is how another week passes.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Subject:&lt;/strong&gt; Invoice 2026-014 for €1,200: quick reminder&lt;/p&gt;

&lt;p&gt;Hi Marc,&lt;/p&gt;

&lt;p&gt;Just a reminder that invoice 2026-014 for €1,200, due on 28 August, is still showing as unpaid on my side. I have attached it again in case it got lost.&lt;/p&gt;

&lt;p&gt;You can pay by bank transfer or the payment link on the invoice. If it is already on its way, please ignore this.&lt;/p&gt;

&lt;p&gt;Thanks!&lt;/p&gt;

&lt;p&gt;Léa&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;No apology, no "sorry to bother you". You are not bothering anyone. You are providing information.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: firm follow-up, 7 to 10 days later
&lt;/h2&gt;

&lt;p&gt;The tone changes here: still warm, but now you ask for something specific.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Subject:&lt;/strong&gt; Overdue: invoice 2026-014 (€1,200, due 28 August)&lt;/p&gt;

&lt;p&gt;Hi Marc,&lt;/p&gt;

&lt;p&gt;I am following up on invoice 2026-014 for €1,200, which was due on 28 August and is now 13 days overdue. I have not had a reply to my reminder of 31 August.&lt;/p&gt;

&lt;p&gt;Could you let me know the date the payment will be made, by Monday? If something is holding it up, such as a missing PO number or the wrong billing details, tell me and I will sort it out straight away.&lt;/p&gt;

&lt;p&gt;The invoice is attached. You can pay by bank transfer or the payment link on the invoice.&lt;/p&gt;

&lt;p&gt;Léa&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Two things do the work: &lt;strong&gt;a request for a specific date&lt;/strong&gt;, and &lt;strong&gt;an offer to fix the blocker&lt;/strong&gt;. "When can I expect payment?" is much harder to leave unanswered than "just checking in".&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: a 60-second phone call, between steps 2 and 4
&lt;/h2&gt;

&lt;p&gt;If you have a number, use it. A one-minute call can settle what two weeks of email did not.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;"Hi Marc, it's Léa. Quick call about invoice 2026-014. Is now a good moment?"&lt;/li&gt;
&lt;li&gt;"It was due on 28 August, for €1,200. Is anything blocking it on your side?"&lt;/li&gt;
&lt;li&gt;Listen. If there is something you can fix right now, fix it while you are on the phone.&lt;/li&gt;
&lt;li&gt;"What date can I expect the payment?" Wait for an actual date.&lt;/li&gt;
&lt;li&gt;"Great, I will send a short email confirming that date." Then send it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That last step matters. The email is polite, and it is also a written record.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: final notice, 7 to 10 days after step 2
&lt;/h2&gt;

&lt;p&gt;Formal, short, and specific about what happens next.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Subject:&lt;/strong&gt; Final notice: invoice 2026-014 (€1,200) overdue since 28 August&lt;/p&gt;

&lt;p&gt;Hello Marc,&lt;/p&gt;

&lt;p&gt;Invoice 2026-014 for €1,200, due on 28 August, remains unpaid after my reminders of 31 August and 10 September.&lt;/p&gt;

&lt;p&gt;Please arrange payment by 24 September. If payment is not received by then, I will pause the remaining work on the project, as set out in our agreement.&lt;/p&gt;

&lt;p&gt;I would much rather resolve this directly. If there is an issue, reply today or call me on [number].&lt;/p&gt;

&lt;p&gt;The invoice is attached. You can pay by bank transfer or the payment link on the invoice.&lt;/p&gt;

&lt;p&gt;Léa&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Only threaten what your contract actually allows
&lt;/h2&gt;

&lt;p&gt;This is the part to get right. Do not mention late fees, interest, pausing work, or "formal recovery" unless your agreement or your local law genuinely gives you that right. An empty threat that the client's accountant recognises as empty costs you the leverage you had.&lt;/p&gt;

&lt;p&gt;Late-payment rules differ by country, and many places set statutory interest or compensation for business-to-business invoices. In the EU, for example, a business that pays another business late generally owes late-payment interest plus at least €40 towards recovery costs (Directive 2011/7/EU). Check what applies where you work, and put it in your terms &lt;strong&gt;before&lt;/strong&gt; the next project rather than inventing it mid-chase.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prevent the next one
&lt;/h2&gt;

&lt;p&gt;Three lines in your scope of work make the next one less likely:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A deposit before work starts.&lt;/strong&gt; Clients who have paid something behave differently from clients who have paid nothing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Payment terms in writing&lt;/strong&gt;, with the due window, the method, and what happens when payment is late.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Billing details collected at kick-off&lt;/strong&gt;: legal entity name, invoicing email, PO number, VAT number. An invoice sent to one person instead of the accounts inbox can sit unseen while that person is away.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When to stop
&lt;/h2&gt;

&lt;p&gt;If the final notice passes with no reply, the decision is commercial, not emotional: the amount, the evidence you have, and whether you would work with them again. In many countries a formal payment demand letter is a cheap next step, and small-claims procedures exist for exactly this. Get advice for your situation rather than acting on a forum post, including this one.&lt;/p&gt;

&lt;p&gt;What you should not do is keep working. Unpaid work plus more unpaid work is not a strategy.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;General information, not legal advice: check the late-payment rules that apply where you work.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article was written with Claude, an AI assistant, and checked for accuracy before publishing. Not affiliated with or endorsed by Anthropic.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>freelancing</category>
      <category>career</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How I designed a Claude skill that turns call notes into action items</title>
      <dc:creator>Fairdraft Studio</dc:creator>
      <pubDate>Mon, 14 Sep 2026 10:55:35 +0000</pubDate>
      <link>https://dev.to/fairdraftstudio/how-i-designed-a-claude-skill-that-turns-call-notes-into-action-items-146e</link>
      <guid>https://dev.to/fairdraftstudio/how-i-designed-a-claude-skill-that-turns-call-notes-into-action-items-146e</guid>
      <description>&lt;p&gt;After a client call, the same admin always follows: reread the notes, work out what was actually decided, write down who owes what by when, and send a recap before memories drift.&lt;/p&gt;

&lt;p&gt;That job is repetitive and has a clear right answer, which makes it a good fit for a Claude skill. So I made one. It is under 100 lines of Markdown, MIT licensed, and free. Below are the design decisions behind it, most of which apply to any skill.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a skill actually is
&lt;/h2&gt;

&lt;p&gt;A skill is a folder with a &lt;code&gt;SKILL.md&lt;/code&gt; file in it. The file starts with YAML frontmatter holding a &lt;code&gt;name&lt;/code&gt; and a &lt;code&gt;description&lt;/code&gt;, followed by instructions in Markdown. There is no code, no dependencies and no API calls. Claude reads the instructions when the skill is relevant and follows them.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;call-notes-to-actions&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Turns&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;a&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;meeting&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;transcript,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;call&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;recording&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;notes,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;or&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;rough&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;meeting"&lt;/span&gt;
  &lt;span class="s"&gt;notes into a crisp summary with decisions, an action-item table (owner, action,&lt;/span&gt;
  &lt;span class="s"&gt;due date), open questions, risks, and a ready-to-send follow-up email. Use when&lt;/span&gt;
  &lt;span class="s"&gt;someone asks to summarize a call or meeting, extract action items, write meeting&lt;/span&gt;
  &lt;span class="s"&gt;minutes, or draft a follow-up email after a client call.&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is the whole interface.&lt;/p&gt;

&lt;h2&gt;
  
  
  The description field is the product
&lt;/h2&gt;

&lt;p&gt;Claude reads the description to decide whether the skill applies to a request. A short, tidy one-liner like "Turns meeting notes into action items" is accurate, but it shares very few words with what people actually type.&lt;/p&gt;

&lt;p&gt;So the description names three things: the inputs (transcript, call recording notes, rough notes), the outputs (summary, decisions, action-item table, follow-up email), and an explicit "Use when..." clause listing the requests: summarise a call, extract action items, write meeting minutes, draft a follow-up email.&lt;/p&gt;

&lt;p&gt;A useful exercise: write down five ways you might ask for the skill, then check that each one shares vocabulary with the description. Instructions that never load do nothing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rules against inventing things
&lt;/h2&gt;

&lt;p&gt;The obvious risk with meeting notes is minutes that look polished but include decisions nobody made. The skill has a few short rules for this, and I now reuse them in every skill:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Only extract what was said.&lt;/strong&gt; No invented decisions, owners or dates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mark inference, don't hide it.&lt;/strong&gt; If an owner or due date is implied but never stated, the skill fills it in and appends &lt;strong&gt;(proposed)&lt;/strong&gt;. You still get a usable draft, and you can see exactly which parts are guesses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Give vagueness somewhere to go.&lt;/strong&gt; Calls are full of "we should look into that". Those become action items with owner &lt;strong&gt;TBD&lt;/strong&gt; instead of being dropped, so nothing quietly disappears.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep decisions and questions apart.&lt;/strong&gt; The instructions define both: a decision is something agreed, and a question is something still open. Without that line, ambiguous points tend to end up in the decisions list, where they look settled.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fixed output beats freeform
&lt;/h2&gt;

&lt;p&gt;The skill specifies the exact output: a summary of at most three bullets, numbered decisions, an action table with &lt;code&gt;owner | action | due | status&lt;/code&gt;, open questions, risks, the follow-up email, and a "To confirm" block to delete before sending.&lt;/p&gt;

&lt;p&gt;A fixed shape has two benefits. The output is skimmable in the same way every time. And gaps become visible: an empty owner cell stands out, while the same gap inside a paragraph does not.&lt;/p&gt;

&lt;p&gt;The email is built from the same table, under the headings "We agreed / I'll / Could you / Still open". Because the recap and the table come from one source, they shouldn't disagree, which is a common failure when you write the recap by hand.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make the skill check its own work
&lt;/h2&gt;

&lt;p&gt;The last section is a checklist the skill goes through silently before answering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;every action item starts with a verb and has an owner and a due date (real, proposed, or TBD)&lt;/li&gt;
&lt;li&gt;nothing appears that the notes don't support, and inferences are marked&lt;/li&gt;
&lt;li&gt;decisions and open questions are not mixed&lt;/li&gt;
&lt;li&gt;relative dates are converted to real dates&lt;/li&gt;
&lt;li&gt;the email matches the action table exactly&lt;/li&gt;
&lt;li&gt;the summary has at most three bullets&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Per line, this is probably the most useful part of the file. It isn't a guarantee, because it's still a model checking its own output, so you should still read the result before sending. But it turns vague quality goals into specific things to check.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dates need their own rule
&lt;/h2&gt;

&lt;p&gt;"Next Friday" is a trap. The skill converts relative dates using the meeting date, or today's date if the meeting date is unknown, and notes that assumption in the "To confirm" block. Any LLM workflow that handles dates needs an explicit rule about which day it counts from. Otherwise you get deadlines that sound confident and are wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;In Claude Code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/plugin marketplace add FairdraftStudio/call-notes-to-actions-skill
/plugin &lt;span class="nb"&gt;install &lt;/span&gt;call-notes-to-actions@fairdraft-studio
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the Claude app: turn on code execution and file creation under Settings &amp;gt; Capabilities, then go to Customize &amp;gt; Skills &amp;gt; Upload skill and choose &lt;code&gt;call-notes-to-actions.zip&lt;/code&gt; from the repo.&lt;/p&gt;

&lt;p&gt;Then paste a transcript and say "summarise this call and draft the follow-up email". The repo has a worked example with an input and its output.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd tell myself before starting
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Spend more time on the description than on the instructions.&lt;/li&gt;
&lt;li&gt;Write the output format before the rules. The shape of the answer constrains everything else.&lt;/li&gt;
&lt;li&gt;Add the self-check list early, not as final polish.&lt;/li&gt;
&lt;li&gt;Test on the messiest real notes you have, not on a clean example you wrote yourself.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Repo (MIT): &lt;a href="https://github.com/FairdraftStudio/call-notes-to-actions-skill" rel="noopener noreferrer"&gt;https://github.com/FairdraftStudio/call-notes-to-actions-skill&lt;/a&gt;. This post and the skill were written with Claude, an AI assistant. Not affiliated with or endorsed by Anthropic.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
