<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>WhatProblem</title>
        <link>https://whatproblem.dev/blog</link>
        <atom:link href="https://whatproblem.dev/blog/feed.xml" rel="self" type="application/rss+xml"/>
        <description>Notes on requirements, bug reports and the cost of a vague issue.</description>
        <language>en-gb</language>
        <lastBuildDate>Fri, 09 Oct 2026 00:44:57 +0000</lastBuildDate>
        <item>
            <title>Mermaid diagram not rendering in a GitHub issue: what to check</title>
            <link>https://whatproblem.dev/blog/mermaid-diagram-not-rendering-in-a-github-issue</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/mermaid-diagram-not-rendering-in-a-github-issue</guid>
            <pubDate>Fri, 09 Oct 2026 00:00:00 +0000</pubDate>
            <description>An escaped arrow head is the one that gives you an error box. A br tag, a diagram too big to read and custom fill colours fail more quietly. How to tell which one you have.</description>
        </item>
        <item>
            <title>Do thinking tokens count as output tokens? Yes, and that is the easy half of the sum</title>
            <link>https://whatproblem.dev/blog/do-thinking-tokens-count-as-output-tokens</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/do-thinking-tokens-count-as-output-tokens</guid>
            <pubDate>Fri, 09 Oct 2026 00:00:00 +0000</pubDate>
            <description>Yes, and the provider documentation now says so outright: output_tokens is the inclusive billing total. The number people actually get wrong is on the input side.</description>
        </item>
        <item>
            <title>Does GitHub retry failed webhooks? No, and what to do about it</title>
            <link>https://whatproblem.dev/blog/does-github-retry-failed-webhooks</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/does-github-retry-failed-webhooks</guid>
            <pubDate>Thu, 08 Oct 2026 00:00:00 +0000</pubDate>
            <description>GitHub does not automatically retry a failed webhook delivery. What that means for your handler, how manual redelivery works, and how to catch what you drop.</description>
        </item>
        <item>
            <title>How to stop a GitHub bot replying to its own comments</title>
            <link>https://whatproblem.dev/blog/how-to-stop-a-github-bot-replying-to-its-own-comments</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/how-to-stop-a-github-bot-replying-to-its-own-comments</guid>
            <pubDate>Wed, 07 Oct 2026 00:00:00 +0000</pubDate>
            <description>Why checking the sender login is not enough, and the defence that always holds: a hidden marker in your own comment body, checked before anything else.</description>
        </item>
        <item>
            <title>How to detect bot-created GitHub issues when the [bot] check misses them</title>
            <link>https://whatproblem.dev/blog/how-to-detect-bot-created-github-issues</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/how-to-detect-bot-created-github-issues</guid>
            <pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate>
            <description>GitHub's Bot flag misses scripted human accounts. A working classifier: filing pace, performed_via_github_app and body markers, two signals to call it.</description>
        </item>
        <item>
            <title>What expected behaviour means in a bug report, and what to write when you never had one</title>
            <link>https://whatproblem.dev/blog/what-expected-behaviour-means-in-a-bug-report</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/what-expected-behaviour-means-in-a-bug-report</guid>
            <pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate>
            <description>Expected behaviour is the line saying what you thought would happen. What it means, how it differs from actual, and what to put when you had no expectation.</description>
        </item>
        <item>
            <title>When nobody replies</title>
            <link>https://whatproblem.dev/blog/when-nobody-replies</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/when-nobody-replies</guid>
            <pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate>
            <description>A question that goes unanswered is information, not just an absence. The five things silence on an issue usually means, and what to do with a thread that has gone quiet.</description>
        </item>
        <item>
            <title>Duplicate is a claim about two problems, not two titles</title>
            <link>https://whatproblem.dev/blog/duplicate-is-a-claim-about-two-problems</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/duplicate-is-a-claim-about-two-problems</guid>
            <pubDate>Wed, 23 Sep 2026 00:00:00 +0000</pubDate>
            <description>Two issues that read alike are often different problems, and two that read differently are often the same one. How to tell, and what closing one costs the person who filed it.</description>
        </item>
        <item>
            <title>The clarifying question that gets an answer</title>
            <link>https://whatproblem.dev/blog/the-clarifying-question-that-gets-an-answer</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/the-clarifying-question-that-gets-an-answer</guid>
            <pubDate>Thu, 17 Sep 2026 00:00:00 +0000</pubDate>
            <description>Asking for more information is easy. Asking so that a reply arrives is a different skill. Four things that separate the questions people answer from the ones they ignore.</description>
        </item>
        <item>
            <title>&quot;Cannot reproduce&quot; is a status, not a verdict</title>
            <link>https://whatproblem.dev/blog/cannot-reproduce-is-a-status-not-a-verdict</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/cannot-reproduce-is-a-status-not-a-verdict</guid>
            <pubDate>Fri, 11 Sep 2026 00:00:00 +0000</pubDate>
            <description>Closing an issue because it did not happen on your machine settles nothing. Four places the difference usually hides, and the one question worth asking first.</description>
        </item>
        <item>
            <title>When one issue is really three</title>
            <link>https://whatproblem.dev/blog/when-one-issue-is-really-three</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/when-one-issue-is-really-three</guid>
            <pubDate>Fri, 04 Sep 2026 00:00:00 +0000</pubDate>
            <description>Compound issues stall because there is no single thing to finish. How to spot one, and how to split it without losing the thread that connected the parts.</description>
        </item>
        <item>
            <title>Agreeing what done means, before anyone starts</title>
            <link>https://whatproblem.dev/blog/agreeing-what-done-means</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/agreeing-what-done-means</guid>
            <pubDate>Sat, 29 Aug 2026 00:00:00 +0000</pubDate>
            <description>Acceptance criteria without the ceremony. Three questions that settle what finished looks like while it is still cheap to disagree.</description>
        </item>
        <item>
            <title>Issues filed on someone else's behalf</title>
            <link>https://whatproblem.dev/blog/issues-filed-on-someone-elses-behalf</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/issues-filed-on-someone-elses-behalf</guid>
            <pubDate>Sat, 22 Aug 2026 00:00:00 +0000</pubDate>
            <description>Most bug reports are relayed, not witnessed. What gets lost between the person who saw the problem and the person who wrote it down.</description>
        </item>
        <item>
            <title>When the request arrives already solved</title>
            <link>https://whatproblem.dev/blog/when-the-request-arrives-already-solved</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/when-the-request-arrives-already-solved</guid>
            <pubDate>Sat, 15 Aug 2026 00:00:00 +0000</pubDate>
            <description>We need a dashboard is not a requirement, it is a conclusion. How to get back to the problem someone had before they solved it for you.</description>
        </item>
        <item>
            <title>Write the issue for the person who picks it up in four months, who is you</title>
            <link>https://whatproblem.dev/blog/write-the-issue-for-the-person-who-picks-it-up-in-four-months</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/write-the-issue-for-the-person-who-picks-it-up-in-four-months</guid>
            <pubDate>Sat, 08 Aug 2026 00:00:00 +0000</pubDate>
            <description>Backlog issues are read by strangers, and the most common stranger is the author with four months of forgetting in between.</description>
        </item>
        <item>
            <title>Bug or product decision? Telling them apart before it reaches a sprint</title>
            <link>https://whatproblem.dev/blog/bug-or-product-decision</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/bug-or-product-decision</guid>
            <pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate>
            <description>A meaningful share of bug reports are disagreements about intended behaviour. They are cheap to spot on day one and expensive to discover in week three.</description>
        </item>
        <item>
            <title>Reproduction steps that start where the reader is</title>
            <link>https://whatproblem.dev/blog/reproduction-steps-that-start-where-the-reader-is</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/reproduction-steps-that-start-where-the-reader-is</guid>
            <pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate>
            <description>Most reproduction steps begin halfway through, from a state only their author had. Four rules for steps somebody else can actually follow.</description>
        </item>
        <item>
            <title>&quot;It doesn't work&quot;: eight things that sentence can mean</title>
            <link>https://whatproblem.dev/blog/it-doesnt-work-eight-things-that-sentence-can-mean</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/it-doesnt-work-eight-things-that-sentence-can-mean</guid>
            <pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate>
            <description>The most common bug report in the world is also the least useful. Here are the eight distinct failures it hides, and the one question that separates them.</description>
        </item>
        <item>
            <title>What a vague ticket actually costs, in numbers a manager can use</title>
            <link>https://whatproblem.dev/blog/what-a-vague-ticket-actually-costs</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/what-a-vague-ticket-actually-costs</guid>
            <pubDate>Sat, 01 Aug 2026 00:00:00 +0000</pubDate>
            <description>The cost is not the developer's confusion. It is the wall-clock delay of a question crossing a timezone, multiplied by every unclear ticket you take.</description>
        </item>
        <item>
            <title>The five questions that turn a vague issue into work someone can start</title>
            <link>https://whatproblem.dev/blog/five-questions-that-turn-a-vague-issue-into-work</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/five-questions-that-turn-a-vague-issue-into-work</guid>
            <pubDate>Sat, 01 Aug 2026 00:00:00 +0000</pubDate>
            <description>Most bug reports are missing the same five things. Here is what to ask, why each one matters, and why teams so often do not ask at all.</description>
        </item>
        <item>
            <title>Why issue templates get filled in with &quot;N/A&quot;</title>
            <link>https://whatproblem.dev/blog/why-issue-templates-get-filled-in-with-na</link>
            <guid isPermaLink="true">https://whatproblem.dev/blog/why-issue-templates-get-filled-in-with-na</guid>
            <pubDate>Sat, 01 Aug 2026 00:00:00 +0000</pubDate>
            <description>Templates ask everyone the same questions regardless of what they are reporting. Here is why that fails, and what a template can realistically do instead.</description>
        </item>
    </channel>
</rss>
