{"slug": "pdd-kit-product-driven-development-for-coding-agents", "title": "Pdd-kit – Product-Driven Development for coding agents", "summary": "An open-source toolkit called pdd-kit, installed via `npx pdd-toolkit install`, introduces Product-Driven Development (PDD) to give coding agents and humans a single git-tracked product model stored in a `product-model/` directory of plain Markdown beside the code. The pdd-kit project positions PDD against spec-driven development tools such as OpenSpec, spec-kit and Kiro, which it says describe each change rather than the product, leaving agents to reconstruct the product definition from scratch and differently each time. The product model is organized into seven artifact types — Entities, Interfaces, Domains, Capabilities, Journeys, Business Rules and Variations — and pdd-kit's verification step checks code against the approved model so drift is easy to spot.", "body_md": "**Product-Driven Development for coding agents (OSS)**\n\nThe definition of your product already exists, just unstructured, incomplete and scattered across docs, code, tickets, chats and people.\n\nEvery coding agent reconstructs it from scratch, and differently each time.\n\nPDD gives agents and humans a shared product model that is git-tracked, reviewable, and verifiable.\n\n`npx pdd-toolkit install`\n\n[The problem](#the-problem) ·\n[The Product Model](#the-product-model) ·\n[Where it fits](#clear-product-model-focused-sources) ·\n[Example](#example-the-product-model-of-a-kanban-board) ·\n[Get started](#-get-started) ·\n[Development loop](#the-development-loop) ·\n[FAQ](#faq)\n\nThe definition of your product already exists, just **unstructured, incomplete\nand scattered** across docs, code, tickets, chats and people. Every **coding\nagent reconstructs it** from scratch, and **differently each time**\n([AI is writing code for products it doesn't understand](https://pdd-kit.dev/blog/your-agent-is-guessing)).\n\n**Spec-driven development (SDD)** tools such as OpenSpec, spec-kit and Kiro\ndescribe **each change**, with the product mixed into its design, plan and\ntasks and spread across feature folders\n([SDD describes the change, not the product](https://pdd-kit.dev/blog/pdd-and-spec-driven-development)).\n\n**Product-Driven Development (PDD)** keeps the **product in one place**, apart\nfrom how it's built: a shared product model for agents and humans that is\n**git-tracked, reviewable and verifiable**\n([Introducing pdd-kit](https://pdd-kit.dev/blog/introducing-pdd-kit)).\n\n`product-model/`, a [Product Model](https://pdd-kit.dev/docs/product-model):\none definition of what the product does, as plain Markdown next to the code. It\nis made of:\n\n- **[Entities](https://pdd-kit.dev/docs/entities):** what the product keeps, and who acts on it (Order, Customer, Payment provider).\n- **[Interfaces](https://pdd-kit.dev/docs/interfaces):** how people and systems reach the product (Web app, Mobile app, Partner API).\n- **[Domains](https://pdd-kit.dev/docs/domains):** the subject areas the product is split into (Ordering, Catalog, Billing).\n- **[Capabilities](https://pdd-kit.dev/docs/capabilities):** what the product lets someone do (Check out, Cancel order, Refund).\n- **[Journeys](https://pdd-kit.dev/docs/journeys):** one goal, carried across several capabilities (Browse and buy, Sign up, Reorder).\n- **[Business Rules](https://pdd-kit.dev/docs/business-rules):** what must always hold, and who may do what (Max 3 per order, Only managers refund, Total includes tax).\n- **[Variations](https://pdd-kit.dev/docs/variations):** where the product works in more than one way (Feature flag, Plan tier, A/B test).\n\nBring knowledge from docs, designs, code, and people into one product model. Fill gaps, clarify uncertainty, and make every source leaner and more focused.\n\n*Each information source’s purpose, supported by a shared product model*\n\n| Information source | Purpose | \n|---|---|\n| **User docs** | Teaches people to use the product | \n| **Internal docs** | Records architecture, design decisions, and onboarding | \n| **Design & architecture** | Describes how it should look and work | \n| **Code & tests** | Implements and verifies how it is built | \n| **Tickets, chats & people** | Carry context, requests, and undocumented knowledge | \n\nMore in the FAQ: [Why a Product Model](https://github.com/itai-gendler/pdd-kit/blob/main/docs/faq.md#why-a-product-model).\n\nAgents write code faster than anyone can explain to them what the product is. They fill the gaps by guessing, and the guesses ship.\n\n1. **One definition.** Not scattered across tickets, docs, chats and people, but one model beside the code.\n2. **Agents know what to build.** They read the Journeys, Scenarios and Rules instead of guessing.\n3. **Done means it matches the product.** Verify checks the code against the approved model.\n4. **Drift is easy to spot.** The model stays a clear reference as behavior changes.\n5. **Decisions travel with the code.** Model and code changes are reviewed in one pull request.\n\nTo show what a Product Model answers, here is one for a **kanban board**: a\nconceptual product where a small team plans its work on shared boards of\ncolumns and cards, and an **AI agent proposes the next cards**. It is the\n[Kanban Board](https://github.com/itai-gendler/pdd-kit/tree/main/blueprints/kanban-board) Blueprint, a\nmodel with no code behind it. Every answer below is read from the model.\n\n**View the Kanban Board Product Model live**\n\nOr open it on your machine:\n\n```\nnpx pdd-toolkit blueprint pull kanban-board\nnpx pdd-toolkit view\n```\n\nAll 9 entities in the kanban model: what the product keeps, and who acts on it.\n\nWhich capabilities create, change or remove each entity, filtered to the four capabilities around a proposed card:\n\n- **Card proposals** creates a proposed card, never a card.\n- **Proposed card acceptance** is what turns it into a card on the board.\n- **Proposed card dismissal** changes the proposal and leaves the board alone.\n\nAll 23 capabilities in the kanban model: what the product lets someone do.\n\nWhich interfaces offer each capability, filtered to six card capabilities:\n\n- **The agent connection** offers one capability: proposing cards.\n- **Every change to a card** happens in the board web application, by a member.\n\nAll 32 business rules in the kanban model: what must always hold, and who may do what.\n\nWhere each business rule is attached, filtered to the five attached to the Proposed card entity:\n\n- **Creating one:** only an AI agent a member connected proposes cards.\n- **Deciding on one:** only the board's members accept or dismiss it.\n- **Deleting one:** it goes only with its board.\n\nThe Proposed card entity, one of the 9, and the information kept about it:\n\n- **Four pieces of information:** its title, description, reason and suggested\ncolumn.\n\nHow it moves through its states, and the capability behind every move:\n\n- **Three states:** Proposed, then Accepted or Dismissed. Created and Removed\nmark where its life begins and ends.\n- **Removing it** on its own is forbidden from every state; deleting its board\nremoves it.\n\nThe 4 scenarios of the Card proposals capability:\n\n- **Four scenarios:** proposing cards for a goal, proposing a next step for a\nstalled card, and two refusals.\n\nOne of them, opened step by step:\n\n- **Refuse a direct change from the AI agent:** the agent tries to move a card\nitself, and the product refuses. Every step says who acts, what is read,\nwhere, and which business rules govern it.\n- **Its edge case:** editing, deleting or creating a card, or accepting its own\nproposal, is refused the same way.\n\nOne shared definition of what the product does helps everyone who works on it:\n\n- **Maintainers and reviewers** see a behavior change as a change to the model,\nreviewed in the same pull request as the code.\n- **New contributors** learn what the product does, who may do what and where,\nwithout reading the whole codebase first.\n- **Product managers and docs writers** find product answers in one place,\nwith optional references to the code and material behind them.\n- **Coding agents** read the scenarios and business rules before they change\nanything, instead of guessing. The`pdd-verify` skill checks the\ncode against the model.\n\n**Dogfooded:** pdd-kit is developed with pdd-kit. Its own Product Model\nlives in this repository's [`product-model/` folder](https://github.com/itai-gendler/pdd-kit/blob/main/product-model); open it\nwith `npx pdd-toolkit view itai-gendler/pdd-kit`.\n\n- \n🤖 **Agent skills:** map, ideate and verify for Claude Code, Codex, Cursor, Gemini CLI and GitHub Copilot\n- \n📝 **Markdown-native:** every resource is a plain`.md` file in your repo, reviewed in pull requests\n- \n✅ **Lint and verify:**`npx pdd-toolkit lint` checks the files;`pdd-verify` checks the code against them\n- \n🔁 **Fits your workflow:** implement with plan mode, an SDD tool or freestyle; check the code against the model when you choose\n- \n🖥️ **Local report:**`npx pdd-toolkit view` opens the model in your browser and follows your edits\n- \n📦 **Blueprints:** start from a reviewed model for a common product instead of a blank page\n- \n🔒 **Local-first:** no account, no hosted service; the skills read your code and never run it\n- \n🆓 MIT-licensed and open source\n\n```\nnpx pdd-toolkit install\n```\n\nThe npm package is `pdd-toolkit`; it installs the `pdd-kit` command, so\nafter `npm install --global pdd-toolkit` you can run `pdd-kit install` instead.\n\nThis adds the skills to the coding agents it detects (Claude Code, Codex,\nCursor, Gemini CLI or GitHub Copilot), or to Claude Code and Codex when it\ndetects none; you can change the selection. Then start from where you are,\ninside your agent (Codex uses `$` instead of `/`):\n\nHave code? Run the map skill:\n\n```\n/pdd-map\n```\n\nIt reads the code without running it, asks what the code can't answer, and\nwrites `product-model/` once you approve. Then open the report:\n\n```\nnpx pdd-toolkit view\n```\n\nNo code yet? Describe the product you want:\n\n```\n/pdd-ideate I want to build a booking app for dog walkers\n```\n\nYou pick from a few product shapes, then approve the model.\n[From an idea](https://pdd-kit.dev/docs/from-an-idea)\n\nA familiar kind of product? List the reviewed models and pull one:\n\n```\nnpx pdd-toolkit blueprint list\nnpx pdd-toolkit blueprint pull <name>\n```\n\n[Browse the Blueprints](https://github.com/itai-gendler/pdd-kit/tree/main/blueprints) ·\n[From a Blueprint](https://pdd-kit.dev/docs/from-a-blueprint)\n\n- **Ideate** (`/pdd-ideate` ): the agent records the change in the model\nfirst, and nothing is written until you approve it.\n- **Implement:** your agent builds it your way, with plan mode, an SDD tool,\nor freestyle. pdd-kit doesn't change how you implement.\n- **Verify** (`/pdd-verify` ): the agent checks the code against the\nmodel, reports every gap, and fixes the ones you choose.\n\nOptionally, let pdd-kit orchestrate the implementation and verification loop:\nverify plans the work in phases, your agent implements each phase, and verify\nchecks it before the next. Turn it on with `npx pdd-toolkit install --orchestrate=on`\nor one sentence in your `AGENTS.md`; see\n[Implement with verify](https://pdd-kit.dev/docs/skill-pdd-verify#implement-with-verify-opt-in).\n\n`install`, `update`, `lint`, `view` and the `blueprint` commands. Every command\nand option: [CLI reference](https://pdd-kit.dev/docs/cli), or\n`npx pdd-toolkit --help`.\n\nRead the [frequently asked questions](https://github.com/itai-gendler/pdd-kit/blob/main/docs/faq.md) about adopting pdd-kit,\nwhat the Product Model covers, and getting help.\n\npdd-kit is released under the **MIT License**: do anything, just give\ncredit. See [LICENSE](https://github.com/itai-gendler/pdd-kit/blob/main/LICENSE).", "url": "https://wpnews.pro/news/pdd-kit-product-driven-development-for-coding-agents", "canonical_source": "https://github.com/itai-gendler/pdd-kit", "published_at": "2026-10-20 07:34:25+00:00", "updated_at": "2026-10-20 07:46:59.698777+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "artificial-intelligence"], "entities": ["pdd-kit", "Product-Driven Development", "OpenSpec", "spec-kit", "Kiro"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/pdd-kit-product-driven-development-for-coding-agents", "markdown": "https://wpnews.pro/news/pdd-kit-product-driven-development-for-coding-agents.md", "text": "https://wpnews.pro/news/pdd-kit-product-driven-development-for-coding-agents.txt", "jsonld": "https://wpnews.pro/news/pdd-kit-product-driven-development-for-coding-agents.jsonld"}}