[{"data":1,"prerenderedAt":528},["ShallowReactive",2],{"docs-sections":3,"docs-page-\u002Fdocs\u002Fdomains":124},[4,9,13,17,21,25,30,34,38,42,46,50,54,58,62,66,71,75,79,83,88,92,96,100,104,108,112,116,120],{"path":5,"title":6,"description":7,"group":8},"\u002Fdocs","Introduction","pdd-kit brings Product-Driven Development to coding agents through a Git-tracked Product Model and an automatic verification loop.","Get started",{"path":10,"title":11,"description":12,"group":8},"\u002Fdocs\u002Finstallation","Installation","Install the pdd-kit skills into your coding agent at project or global scope.",{"path":14,"title":15,"description":16,"group":8},"\u002Fdocs\u002Ffrom-your-repo","From your repo","Map what an existing repository already does into a Product Model, review it, then check the code against it.",{"path":18,"title":19,"description":20,"group":8},"\u002Fdocs\u002Ffrom-an-idea","From an idea","Decide what a new product does, approve its Product Model, then ask your agent to implement it while verify checks each part.",{"path":22,"title":23,"description":24,"group":8},"\u002Fdocs\u002Ffrom-a-blueprint","From a Blueprint","Pull a reviewed Product Model for a common kind of product instead of starting blank, adapt it if needed, then ask your agent to implement it.",{"path":26,"title":27,"description":28,"group":29},"\u002Fdocs\u002Fproduct-model","Model overview","The Product Model in five minutes (what the product-model\u002F folder holds, what each resource type is for, and how to tell them apart).","Product Model",{"path":31,"title":32,"description":33,"group":29},"\u002Fdocs\u002Fproduct","Product","The one product a Product Model describes (its name, its promise, the languages it is delivered in, its known boundaries, and what it needs to be published as a Blueprint).",{"path":35,"title":36,"description":37,"group":29},"\u002Fdocs\u002Fentities","Entities","The things your product keeps or reasons about (orders, products, settings) and the people and systems that act on it, with what it knows about each and the States it moves through.",{"path":39,"title":40,"description":41,"group":29},"\u002Fdocs\u002Finterfaces","Interfaces","The web apps, mobile apps, CLIs, APIs and webhooks through which people and systems reach your product, the parts inside them, and the places where facts and abilities are met.",{"path":43,"title":44,"description":45,"group":29},"\u002Fdocs\u002Fdomains","Domains","Optional subject areas, such as ordering or billing, that follow the Product's own sections and group its Capabilities and Entities without owning them.",{"path":47,"title":48,"description":49,"group":29},"\u002Fdocs\u002Fcapabilities","Capabilities","The things your product lets someone do, where each is offered, and the Capability Scenarios that show each one working.",{"path":51,"title":52,"description":53,"group":29},"\u002Fdocs\u002Fjourneys","Journeys","Goals where your product carries a person from one Capability into the next, and the Journey Scenarios that walk each path.",{"path":55,"title":56,"description":57,"group":29},"\u002Fdocs\u002Fbusiness-rules","Business Rules","What must always hold in your product, and who may do what (constraints, derivations and permissions), each stated once with everything it applies to.",{"path":59,"title":60,"description":61,"group":29},"\u002Fdocs\u002Fvariations","Variations","Feature flags, settings, plan tiers, A\u002FB tests and API versions, when your product works in more than one supported way and something decides which way applies.",{"path":63,"title":64,"description":65,"group":29},"\u002Fdocs\u002Freferences","References","Point any resource at material kept outside the model (code, a PRD, a design, research), saying what it is and why it is attached.",{"path":67,"title":68,"description":69,"group":70},"\u002Fdocs\u002Fskills","Skills overview","Three self-contained skills cover adoption, intended product change, and automatic verification-to-resolution.","Skills",{"path":72,"title":73,"description":74,"group":70},"\u002Fdocs\u002Fskill-pdd-map","map","Create or expand a Product Model from the code you already have, without running it.",{"path":76,"title":77,"description":78,"group":70},"\u002Fdocs\u002Fskill-pdd-ideate","ideate","Explore or define intended behavior, then write only the exact Product Model change you approve.",{"path":80,"title":81,"description":82,"group":70},"\u002Fdocs\u002Fskill-pdd-verify","verify","Implement the Product Model in code, in phases, or check that the model and the code agree, and resolve every gap you approve until they do or something blocks.",{"path":84,"title":85,"description":86,"group":87},"\u002Fdocs\u002Fcli","CLI overview","Install skills, lint and view a Product Model locally, and move Blueprints between repositories with the pdd-kit CLI.","CLI",{"path":89,"title":90,"description":91,"group":87},"\u002Fdocs\u002Fcli-install","install","Install the bundled pdd-kit agent skills safely for selected AI harnesses and scopes.",{"path":93,"title":94,"description":95,"group":87},"\u002Fdocs\u002Fcli-update","update","Refresh only pdd-kit-managed skill installations in project or global scope.",{"path":97,"title":98,"description":99,"group":87},"\u002Fdocs\u002Fcli-lint","lint","Check that a Product Model is structurally sound (files, relationships, Steps, Rules and References) without claiming it matches the code.",{"path":101,"title":102,"description":103,"group":87},"\u002Fdocs\u002Fcli-view","view","Open a Product Model as a private local report, from your checkout or from a GitHub repository.",{"path":105,"title":106,"description":107,"group":87},"\u002Fdocs\u002Fcli-export","blueprint export","Compile a Product Model into a portable Product Report that can move safely between repositories.",{"path":109,"title":110,"description":111,"group":87},"\u002Fdocs\u002Fcli-open","blueprint open","Expand a local Product Report into a canonical Product Model.",{"path":113,"title":114,"description":115,"group":87},"\u002Fdocs\u002Fcli-list","blueprint list","List the published Blueprints you can pull.",{"path":117,"title":118,"description":119,"group":87},"\u002Fdocs\u002Fcli-pull","blueprint pull","Pull a published Blueprint into the current directory.",{"path":121,"title":122,"description":123,"group":87},"\u002Fdocs\u002Fcli-contribute","blueprint contribute","Open a pull request proposing your Product Model as a Blueprint.",{"id":125,"title":44,"body":126,"description":45,"extension":281,"group":29,"meta":516,"navigation":318,"order":359,"path":43,"seo":525,"stem":526,"__hash__":527},"docs\u002Fdocs\u002Fdomains.md",{"type":127,"value":128,"toc":509},"minimark",[129,133,141,146,198,210,214,220,258,261,265,275,374,433,437,454,470,474,477,494,497,505],[130,131,44],"h1",{"id":132},"domains",[134,135,136,140],"p",{},[137,138,139],"strong",{},"A Domain is a subject area of the Product (ordering, catalog, billing) that\ngroups the Capabilities and Entities about it."," It follows the sections the\nProduct itself shows people, and it classifies without containing: nothing moves\ninto a Domain's folder.",[142,143,145],"h2",{"id":144},"in-practice","In practice",[147,148,149,162],"table",{},[150,151,152],"thead",{},[153,154,155,159],"tr",{},[156,157,158],"th",{},"In your product",[156,160,161],{},"The Domain",[163,164,165,174,182,190],"tbody",{},[153,166,167,171],{},[168,169,170],"td",{},"The shop's order area: checkout, payment, tracking, cancellation, refunds",[168,172,173],{},"Ordering",[153,175,176,179],{},[168,177,178],{},"A Settings menu with Billing and Team pages, each with several things to do",[168,180,181],{},"Billing and Team",[153,183,184,187],{},[168,185,186],{},"A catalog page whose only Capability is Browse catalog",[168,188,189],{},"None: one Capability is not a region",[153,191,192,195],{},[168,193,194],{},"A document opened from Home, Recent and its collection",[168,196,197],{},"None: several sections reach it",[134,199,200,201,205,206,209],{},"In the fixture shop, six Capabilities and five Entities, such as Order and\nRefund, name ",[202,203,204],"code",{},"ordering",". ",[202,207,208],{},"browse-catalog"," names no Domain.",[142,211,213],{"id":212},"when-you-create-one","When you create one",[134,215,216,219],{},[137,217,218],{},"One Domain per section of the Product's navigation, settings or administration\nthat holds two or more Capabilities",", named the way the Product names that\nsection. A Product with no such section has no Domains, and that is valid.",[221,222,223,230,236,242,252],"ul",{},[224,225,226,229],"li",{},[137,227,228],{},"Use the finest section that still holds two."," Settings with Billing and Team\npages, each holding several Capabilities, is two Domains, not one Settings\nDomain.",[224,231,232,235],{},[137,233,234],{},"Something several sections reach has no Domain",", and nothing that is not a\nsection becomes one. A Capability alone on a page beside a sibling section has\nno Domain either.",[224,237,238,241],{},[137,239,240],{},"Something no section reaches"," (signing in, a link in an email, a scheduled\njob) joins the one section whose Capabilities change the same Entities, or has\nno Domain.",[224,243,244,247,248,251],{},[137,245,246],{},"Splitting a Capability never changes the Domains."," If ",[202,249,250],{},"manage-orders","\nbecame four Capabilities, they share a Domain only if the Product's sections\nsay so.",[224,253,254,257],{},[137,255,256],{},"An author's Domains are kept."," Once someone has written or regrouped\nDomains, mapping adds new Capabilities to them and never re-cuts, merges or\nrenames them.",[134,259,260],{},"Team ownership, compliance concerns or code structure never make a Domain; the\nmodel describes the Product, not the organization building it.",[142,262,264],{"id":263},"the-file","The file",[134,266,267,270,271,274],{},[202,268,269],{},"domains\u002F\u003Cid>.md",". The H1 names the Domain, the lead says what it is about, and\n",[202,272,273],{},"## Boundary"," says what it covers and what it does not.",[276,277,283],"pre",{"className":278,"code":279,"filename":280,"language":281,"meta":282,"style":282},"language-md shiki shiki-themes pdd-kit-brand-warm pdd-kit-brand-warm material-theme-palenight","---\ncolorSlot: 4\n---\n\n# Ordering\n\nEverything between a full cart and a fulfilled order.\n\n## Boundary\n\nOwns cart contents, order state, and the transition between them. It does not\nown catalog information or fulfilment logistics.\n","domains\u002Fordering.md","md","",[202,284,285,294,308,313,320,331,336,343,348,357,362,368],{"__ignoreMap":282},[286,287,290],"span",{"class":288,"line":289},"line",1,[286,291,293],{"class":292},"sjkiA","---\n",[286,295,297,301,304],{"class":288,"line":296},2,[286,298,300],{"class":299},"sg1QC","colorSlot",[286,302,303],{"class":292},":",[286,305,307],{"class":306},"s5S7S"," 4\n",[286,309,311],{"class":288,"line":310},3,[286,312,293],{"class":292},[286,314,316],{"class":288,"line":315},4,[286,317,319],{"emptyLinePlaceholder":318},true,"\n",[286,321,323,327],{"class":288,"line":322},5,[286,324,326],{"class":325},"sKwZ8","#",[286,328,330],{"class":329},"sBbkF"," Ordering\n",[286,332,334],{"class":288,"line":333},6,[286,335,319],{"emptyLinePlaceholder":318},[286,337,339],{"class":288,"line":338},7,[286,340,342],{"class":341},"szETn","Everything between a full cart and a fulfilled order.\n",[286,344,346],{"class":288,"line":345},8,[286,347,319],{"emptyLinePlaceholder":318},[286,349,351,354],{"class":288,"line":350},9,[286,352,353],{"class":325},"##",[286,355,356],{"class":329}," Boundary\n",[286,358,360],{"class":288,"line":359},10,[286,361,319],{"emptyLinePlaceholder":318},[286,363,365],{"class":288,"line":364},11,[286,366,367],{"class":341},"Owns cart contents, order state, and the transition between them. It does not\n",[286,369,371],{"class":288,"line":370},12,[286,372,373],{"class":341},"own catalog information or fulfilment logistics.\n",[147,375,376,386],{},[150,377,378],{},[153,379,380,383],{},[156,381,382],{},"Field or section",[156,384,385],{},"Says",[163,387,388,396,410,419],{},[153,389,390,393],{},[168,391,392],{},"H1 and lead (required)",[168,394,395],{},"The Domain's name and what it is about",[153,397,398,403],{},[168,399,400,402],{},[202,401,273],{}," (required)",[168,404,405,406,409],{},"What it owns, and at least one thing it does ",[137,407,408],{},"not"," own",[153,411,412,416],{},[168,413,414],{},[202,415,300],{},[168,417,418],{},"An optional display hint",[153,420,421,426],{},[168,422,423],{},[202,424,425],{},"references",[168,427,428,429],{},"Optional ",[430,431,64],"a",{"href":432},".\u002Freferences",[142,434,436],{"id":435},"how-it-connects","How it connects",[134,438,439,440,443,444,448,449,453],{},"Only two resources name a Domain, each with an optional single ",[202,441,442],{},"domain:"," (a\n",[430,445,447],{"href":446},".\u002Fcapabilities","Capability"," and an ",[430,450,452],{"href":451},".\u002Fentities","Entity","). Everything else\nfollows from those: a Screen or Journey is about the Domains of the Capabilities\nit uses. So one Domain gathers everything about its subject across the model.",[134,455,456,457,461,462,465,466,469],{},"A Domain is what a part of the Product is ",[458,459,460],"em",{},"about","; a Capability is something it\ncan ",[458,463,464],{},"do",". Where a Capability can be reached is its ",[202,467,468],{},"availability",", not its\nDomain.",[142,471,473],{"id":472},"what-lint-checks","What lint checks",[134,475,476],{},"Errors:",[221,478,479,485,491],{},[224,480,481,482,484],{},"A missing H1, lead paragraph or ",[202,483,273],{},".",[224,486,487,488,490],{},"A ",[202,489,273],{}," that never says what the Domain does not own.",[224,492,493],{},"A Capability or Entity naming a Domain that has no file.",[134,495,496],{},"Warnings:",[221,498,499,502],{},[224,500,501],{},"A Domain named by fewer than two Capabilities: it is a folder, not a region.\nEntities don't count.",[224,503,504],{},"A Domain id that opens with a verb acting on something the model declares.",[506,507,508],"style",{},"html pre.shiki code .sjkiA, html code.shiki .sjkiA{--shiki-light:#362B1D;--shiki-default:#362B1D;--shiki-dark:#89DDFF}html pre.shiki code .sg1QC, html code.shiki .sg1QC{--shiki-light:#00585F;--shiki-default:#00585F;--shiki-dark:#F07178}html pre.shiki code .s5S7S, html code.shiki .s5S7S{--shiki-light:#00585F;--shiki-default:#00585F;--shiki-dark:#F78C6C}html pre.shiki code .sKwZ8, html code.shiki .sKwZ8{--shiki-light:#362B1D;--shiki-light-font-weight:bold;--shiki-default:#362B1D;--shiki-default-font-weight:bold;--shiki-dark:#89DDFF;--shiki-dark-font-weight:inherit}html pre.shiki code .sBbkF, html code.shiki .sBbkF{--shiki-light:#00585F;--shiki-light-font-weight:bold;--shiki-default:#00585F;--shiki-default-font-weight:bold;--shiki-dark:#FFCB6B;--shiki-dark-font-weight:inherit}html pre.shiki code .szETn, html code.shiki .szETn{--shiki-light:#362B1D;--shiki-default:#362B1D;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":282,"searchDepth":296,"depth":296,"links":510},[511,512,513,514,515],{"id":144,"depth":296,"text":145},{"id":212,"depth":296,"text":213},{"id":263,"depth":296,"text":264},{"id":435,"depth":296,"text":436},{"id":472,"depth":296,"text":473},{"section":517,"terms":518},"open-source",[519,522],{"term":520,"definition":521},"Domain","A subject area of the Product, such as ordering or billing, that classifies related Capabilities and Entities.",{"term":523,"anchor":263,"definition":524},"Boundary","What a Domain takes in and what it leaves out, stated in the Product's own words.",{"title":44,"description":45},"docs\u002Fdomains","yc1Tey8J93gvfnwbs5Xw7u1mGOGMtqk0aul56T85w0A",1791840531136]