<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>pdd-kit Blog</title>
    <link>https://pdd-kit.dev/blog</link>
    <description>Ideas and field notes on Product-Driven Development, machine-readable product knowledge, coding agents, and the emerging pdd-kit standard.</description>
    <language>en</language>
    <pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate>
    <atom:link href="https://pdd-kit.dev/blog/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Introducing pdd-kit: PDD for coding agents</title>
      <link>https://pdd-kit.dev/blog/introducing-pdd-kit</link>
      <guid isPermaLink="true">https://pdd-kit.dev/blog/introducing-pdd-kit</guid>
      <pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Itai Gendler</dc:creator>
      <category>Launch</category>
      <description>PDD gives agents and humans a shared product model that is git-tracked, reviewable, and verifiable. Open source and MIT licensed.</description>
      <content:encoded><![CDATA[<p><img src="https://pdd-kit.dev/brand/heroes/product-model-wide.webp" alt="Introducing pdd-kit: PDD for coding agents" /></p><p>Coding agents write code faster than anyone can explain to them what the product
is. So they guess, and the guesses ship. That problem is laid out in
<a href="https://pdd-kit.dev/blog/your-agent-is-guessing">AI is writing code for products it doesn’t understand</a>,
and why spec-driven development does not solve it in
<a href="https://pdd-kit.dev/blog/pdd-and-spec-driven-development">SDD describes the change, not the product</a>.</p><p><strong>Today we are releasing pdd-kit, an open-source implementation of
Product-Driven Development (PDD).</strong> It gives your agent, and your team, one
definition of the product to build from and check against.</p><h2>What you get</h2><p><strong>A Product Model.</strong> A <code>product-model/</code> folder of Markdown files that says what
your product does: who it serves, where they reach it, what it keeps, what it
can do, and which rules must stay true. <strong>It lives beside the code and changes in
the same pull requests.</strong> It defines the product, not the implementation, so
colors, layout and frameworks stay yours to choose.</p><p><strong>Three agent skills</strong> for Claude Code, Codex, Gemini CLI and more:</p><ul><li><code>map</code> reads an existing codebase and drafts the model from it.</li><li><code>ideate</code> decides the next change with you and writes only what you approve.</li><li><code>verify</code> checks the code against the model and works through the gaps with
you until the two agree, or until something blocks it.</li></ul><p><strong>A CLI.</strong> <code>pdd-kit lint</code> checks the model's files. <code>pdd-kit view</code>
opens the model as a local report that follows your edits.</p><p><strong>Blueprints.</strong> Reviewed Product Models of common products in a
<a href="https://pdd-kit.dev/blueprints">public catalog</a>. Pull one into an empty directory and hand it to
your agent.</p><p>Every Blueprint is tested the same way: <strong>a fresh agent gets the model and the
words "build this", and has to ship a working product.</strong></p><h2>One loop, run on every change</h2><pre><code class="language-text">ideate → implement ⇄ verify
  ▲                     │
  └──── next change ────┘

implement: your agent, your way, in phases</code></pre><p>Ideate and verify with pdd-kit. Your own agent implements, your way.</p><h2>Get started</h2><pre><code class="language-bash">npx @itai-gendler/pdd-kit install</code></pre><p>Then start from where you are: <a href="https://pdd-kit.dev/docs/from-your-repo">existing code</a>,
<a href="https://pdd-kit.dev/docs/from-an-idea">an idea</a>, or <a href="https://pdd-kit.dev/docs/from-a-blueprint">a Blueprint</a>.</p><p>To see a real model first, run <code>npx @itai-gendler/pdd-kit view itai-gendler/pdd-kit</code>.
pdd-kit is developed with pdd-kit, and that command opens its own
Product Model.</p><p><strong>It is MIT licensed and local-first</strong>: no account, no hosted service, nothing to
buy. The skills read your code and never run it.</p><h2>What comes next</h2><p>This is an early release, and the
<a href="https://github.com/itai-gendler/pdd-kit/issues">open issues</a> are the roadmap:</p><ul><li><strong>More Blueprints</strong> across different kinds of product, such as a storefront,
a booking app, a project tracker and an API service.</li><li><strong>Review model changes as product changes.</strong> A compare mode in the report
that shows what a branch changes in the product, not just in the Markdown.</li><li><strong>Products that don’t fit one repository.</strong> One product spread across several
repositories, and several products in one repository.</li><li><strong>KPIs in the model</strong>, so it can say how the product's value is measured.</li><li><strong>GitHub issues linked to the model</strong>, so tracked work keeps its product
context.</li><li><strong>Talk to your agent from the report</strong>, without switching back to the
terminal.</li></ul><p>Try it on a repository you know well and compare the model it drafts with the
one in your head. Where they disagree, and where pdd-kit gets in your way,
<a href="https://github.com/itai-gendler/pdd-kit/issues">open an issue</a>. Contributions,
Blueprints included, are welcome through pull requests on
<a href="https://github.com/itai-gendler/pdd-kit">itai-gendler/pdd-kit</a>.</p>]]></content:encoded>
      <media:content url="https://pdd-kit.dev/brand/heroes/product-model-wide.webp" medium="image" />
      <media:thumbnail url="https://pdd-kit.dev/brand/heroes/product-model-wide.webp" />
    </item>
    <item>
      <title>SDD describes the change, not the product</title>
      <link>https://pdd-kit.dev/blog/pdd-and-spec-driven-development</link>
      <guid isPermaLink="true">https://pdd-kit.dev/blog/pdd-and-spec-driven-development</guid>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <dc:creator>Itai Gendler</dc:creator>
      <category>Engineering</category>
      <description>SDD tools mix product and implementation in one place. PDD draws the line and gives the product a model of its own.</description>
      <content:encoded><![CDATA[<p><img src="https://pdd-kit.dev/blog/pdd-and-spec-driven-development.webp" alt="SDD describes the change, not the product" /></p><p>Spec-driven development works. If you use <a href="https://openspec.dev/">OpenSpec</a>,
<a href="https://github.com/github/spec-kit">spec-kit</a> or <a href="https://kiro.dev/">Kiro</a>, you
know the shape: describe the change before you build it, plan it, break it into
tasks, and let the agent work against a written target instead of one sentence
in a chat. This post is not an argument against it. It is about where it falls
short, and what it does not cover properly: the product.</p><h2>What these tools keep</h2><p>None of them throws the work away when it ships.</p><ul><li><strong>OpenSpec</strong> keeps <code>openspec/specs/</code> as the source of truth for how the system
behaves today. Each change carries a proposal, a design, tasks, and delta
specs. Archiving merges the deltas into the main specs and files the rest
under <code>changes/archive/</code>.</li><li><strong>spec-kit</strong> gives each feature its own directory with <code>spec.md</code>, <code>plan.md</code>
and <code>tasks.md</code>, plus a project constitution. Whether those files stay living
or become history is
<a href="https://github.github.io/spec-kit/concepts/spec-persistence.html">left to each team</a>.</li><li><strong>Kiro</strong> writes <code>requirements.md</code>, <code>design.md</code> and <code>tasks.md</code> for each
feature, and keeps <code>product.md</code>, <code>tech.md</code> and <code>structure.md</code> as steering
files that every conversation reads.</li></ul><p>So the files stay. The question is what they hold.</p><h2>The product gets mixed with the build</h2><p><strong>What usually steers these frameworks is the technical side</strong>: the design,
the plan and the tasks. The product requirements are rarely discussed in full, and
what is covered ends up mixed into the technical artifacts the framework
produces.</p><p>And the product never sits in one place. It is spread across feature and change
folders, so nothing describes the whole of it.</p><p>That matters. When the two are mixed, you can no longer tell what the product
must do from how it happens to be built today.</p><h2>The specs drift</h2><p><strong>A spec is only as true as the last time someone updated it.</strong> A hotfix, a
refactor, a change made outside the workflow, and it quietly stops matching the
code. spec-kit's own docs name the risk:
<a href="https://github.github.io/spec-kit/concepts/spec-persistence.html">silent divergence</a>.</p><p>Keeping them current is a chore nobody owns. Every change means touching the
proposal, the design and the specs, and the more files pile up, the more work
each change costs. So it gets skipped, and the next agent builds from a spec
that is no longer true.</p><p>Splitting the product from the implementation changes that. <strong>The product lives
in one place</strong>, so a product decision is written once, not restated in every spec
it touches. A purely technical change, like a refactor or a new library, never
has to touch it. And that one record serves every change, every agent and every
person on the team.</p><h2>Draw the line</h2><p>PDD draws the line between product and implementation, in one place. A Product
Model holds what any rebuild of the product would have to keep, and nothing a
rebuild is free to change:</p><table><thead><tr><th>In the Product Model</th><th>Left to the spec and the code</th></tr></thead><tbody><tr><td>Who can reach each place</td><td>Architecture and data flow</td></tr><tr><td>What it shows and asks for</td><td>Components and layout</td></tr><tr><td>What can be done there</td><td>API style, endpoints and tokens</td></tr><tr><td>Which rules apply</td><td>Libraries and frameworks</td></tr><tr><td>What happens next</td><td>Tasks and file changes</td></tr></tbody></table><p>Because it is kept apart, the model can also be checked against the code on
every change, so drift shows up when it happens instead of a year later.</p><h2>SDD describes the change. PDD describes the product.</h2><p>Spec-driven development is good at what it was built for: planning and building
a change. It was never meant to hold the product. Give the product a home of its
own, kept apart from the technical artifacts and checked against the code, and
<strong>your specs can go back to doing what they do best: describing the build.</strong></p><p>Nothing else has to move. Keep the spec-driven framework you use, or use none at
all. The product just gets a place of its own.</p><p>For the problem this comes from, read
<a href="https://pdd-kit.dev/blog/your-agent-is-guessing">AI is writing code for products it doesn’t understand</a>.</p>]]></content:encoded>
      <media:content url="https://pdd-kit.dev/blog/pdd-and-spec-driven-development.webp" medium="image" />
      <media:thumbnail url="https://pdd-kit.dev/blog/pdd-and-spec-driven-development.webp" />
    </item>
    <item>
      <title>AI is writing code for products it doesn’t understand</title>
      <link>https://pdd-kit.dev/blog/your-agent-is-guessing</link>
      <guid isPermaLink="true">https://pdd-kit.dev/blog/your-agent-is-guessing</guid>
      <pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate>
      <dc:creator>Itai Gendler</dc:creator>
      <category>Perspective</category>
      <description>Coding agents can read code, tests, and tickets. Without a reliable product definition, they still have to reconstruct what the product is supposed to be.</description>
      <content:encoded><![CDATA[<p><img src="https://pdd-kit.dev/blog/ai-writing-code-for-products.webp" alt="AI is writing code for products it doesn’t understand" /></p><p>Coding agents can read code, tests, and tickets. Without a reliable product
definition, they still have to reconstruct what the product is supposed to be.</p><p><strong>We are giving AI control of the codebase without giving it a reliable
definition of the product.</strong></p><p>Ask a coding agent to change what happens when a free trial ends. Should the
workspace become read-only? Is there a grace period? Can users export their data?
Do scheduled actions keep running? What happens to invited teammates?</p><p>The agent can find the relevant code and tests. What it cannot find is which of
those answers represent the product's current intent.</p><h2>Evidence is not a product definition</h2><p>The answers are usually scattered across the pricing page, an old launch ticket,
billing and permission logic, tests, a support playbook, and somebody's memory.
Every source is useful. None defines the current product as a whole.</p><p>Trial expiration crosses billing, permissions, collaboration, data retention,
exports, and automations. Each system can behave consistently while producing a
customer experience nobody deliberately defined.</p><p><strong>The agent does not discover the product. It reconstructs one</strong>, filling every gap
with a product decision nobody explicitly made—then writes code as if that
reconstruction had been approved.</p><p>Code is the closest evidence of what shipped, but it cannot explain what the
behavior means. A temporary workaround looks much like a deliberate business
rule. <strong>Tests confirm what happens, not why it must happen.</strong></p><h2>Better documentation is not enough</h2><p>Wikis, design documents, and decision logs are good at authoring. Their shared
weakness is that they cannot tell us when they have become false. When behavior
changes underneath a document, nothing fails; it quietly stops being true.</p><blockquote><p>The problem is not that a product definition is hard to write. The problem is
that a written product definition has no way of knowing it is now wrong.</p></blockquote><h2>Agents turn ambiguity into action</h2><p>People reconstruct the product from the same fragments. Coding agents simply do
it faster—and then act on the reconstruction.</p><p>More context helps it see more evidence. It does not create the missing decision
that only lived in a conversation or distinguish an intentional constraint from
a historical accident.</p><p><strong>The result can be reasonable code for a subtly incorrect product.</strong> Reviewers catch
some of it. The rest ships.</p><p><img src="https://pdd-kit.dev/blog/agent-product-reconstruction.webp" alt="Tickets, documents, tests, code, chats, and memory flow through reconstruction and produce a plausible product interpretation, shown as different from verified product intent."></p><h2>What a durable product definition requires</h2><p>Simply documenting the product more clearly is not enough. A durable product
definition must be:</p><ul><li><strong>Current and centralized:</strong> one shared definition of how the product should
work, updated as the product changes.</li><li><strong>Versioned with the code:</strong> changing in the same history as implementation.</li><li><strong>Readable by people and agents:</strong> structured without becoming opaque.</li><li><strong>Organized around product definition:</strong> who it serves, where they reach it, what it keeps, what it can do, and which rules must stay true.</li><li><strong>Tied to evidence:</strong> making drift visible when implementation and intent
diverge.</li></ul><p><img src="https://pdd-kit.dev/blog/product-definition-requirements.webp" alt="A current product definition connects to five requirements: versioned with code, readable by people, readable by agents, tied to evidence, and making drift visible."></p><p>Call it a Product Model or a product definition. The name matters less than the
property: <strong>it cannot quietly become fiction.</strong></p><p>With that definition, people can understand the current product without
archaeology, and agents can build from explicit decisions instead of inventing
the missing ones.</p><p>Over the past few weeks, I have been working on an open standard for product
definitions and an open-source implementation of it. I am planning to release
them soon.</p><p>Where does your product definition live today? Have you run into this problem?
How does your organization handle it?</p>]]></content:encoded>
      <media:content url="https://pdd-kit.dev/blog/ai-writing-code-for-products.webp" medium="image" />
      <media:thumbnail url="https://pdd-kit.dev/blog/ai-writing-code-for-products.webp" />
    </item>
  </channel>
</rss>
