[{"data":1,"prerenderedAt":728},["ShallowReactive",2],{"docs-sections":3,"docs-page-\u002Fdocs\u002Fproduct":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":32,"body":126,"description":33,"extension":161,"group":29,"meta":720,"navigation":308,"order":244,"path":31,"seo":725,"stem":726,"__hash__":727},"docs\u002Fdocs\u002Fproduct.md",{"type":127,"value":128,"toc":710},"minimark",[129,134,147,152,155,358,362,370,384,388,400,514,525,530,540,544,547,555,580,584,608,612,615,698,701,706],[130,131,133],"h1",{"id":132},"the-product","The Product",[135,136,137,141,142,146],"p",{},[138,139,140],"strong",{},"The Product is the one thing a Product Model describes: what it promises, and\nwhere its boundary lies."," Every model has exactly one, in ",[143,144,145],"code",{},"product.md",". The\nrest of the model (who uses it, where, what it can do and under which rules)\nexplains that promise.",[148,149,151],"h2",{"id":150},"in-practice","In practice",[135,153,154],{},"The fixture shop's Product:",[156,157,163],"pre",{"className":158,"code":159,"filename":160,"language":161,"meta":162,"style":162},"language-md shiki shiki-themes pdd-kit-brand-warm pdd-kit-brand-warm material-theme-palenight","---\nid: fixture-shop\nsummary: Browse a product catalog, buy products, and manage the resulting orders.\ncategory: commerce\ntags: [commerce, fixture]\nauthors:\n  - name: pdd-kit\nlicense: MIT\nlanguages: [en, de]\nlimitations: []\n---\n\n# Fixture Shop\n\nA tiny webshop where shoppers browse a catalog and buy products, and store admins manage the resulting orders.\n\n## Intent\n\nExercise the complete pdd-kit report contract with a small deterministic product.\n","product\u002Fproduct.md","md","",[143,164,165,174,188,199,210,233,242,256,267,287,298,303,310,321,326,333,338,347,352],{"__ignoreMap":162},[166,167,170],"span",{"class":168,"line":169},"line",1,[166,171,173],{"class":172},"sjkiA","---\n",[166,175,177,181,184],{"class":168,"line":176},2,[166,178,180],{"class":179},"sg1QC","id",[166,182,183],{"class":172},":",[166,185,187],{"class":186},"s9fN-"," fixture-shop\n",[166,189,191,194,196],{"class":168,"line":190},3,[166,192,193],{"class":179},"summary",[166,195,183],{"class":172},[166,197,198],{"class":186}," Browse a product catalog, buy products, and manage the resulting orders.\n",[166,200,202,205,207],{"class":168,"line":201},4,[166,203,204],{"class":179},"category",[166,206,183],{"class":172},[166,208,209],{"class":186}," commerce\n",[166,211,213,216,218,221,224,227,230],{"class":168,"line":212},5,[166,214,215],{"class":179},"tags",[166,217,183],{"class":172},[166,219,220],{"class":172}," [",[166,222,223],{"class":186},"commerce",[166,225,226],{"class":172},",",[166,228,229],{"class":186}," fixture",[166,231,232],{"class":172},"]\n",[166,234,236,239],{"class":168,"line":235},6,[166,237,238],{"class":179},"authors",[166,240,241],{"class":172},":\n",[166,243,245,248,251,253],{"class":168,"line":244},7,[166,246,247],{"class":172},"  -",[166,249,250],{"class":179}," name",[166,252,183],{"class":172},[166,254,255],{"class":186}," pdd-kit\n",[166,257,259,262,264],{"class":168,"line":258},8,[166,260,261],{"class":179},"license",[166,263,183],{"class":172},[166,265,266],{"class":186}," MIT\n",[166,268,270,273,275,277,280,282,285],{"class":168,"line":269},9,[166,271,272],{"class":179},"languages",[166,274,183],{"class":172},[166,276,220],{"class":172},[166,278,279],{"class":186},"en",[166,281,226],{"class":172},[166,283,284],{"class":186}," de",[166,286,232],{"class":172},[166,288,290,293,295],{"class":168,"line":289},10,[166,291,292],{"class":179},"limitations",[166,294,183],{"class":172},[166,296,297],{"class":172}," []\n",[166,299,301],{"class":168,"line":300},11,[166,302,173],{"class":172},[166,304,306],{"class":168,"line":305},12,[166,307,309],{"emptyLinePlaceholder":308},true,"\n",[166,311,313,317],{"class":168,"line":312},13,[166,314,316],{"class":315},"sKwZ8","#",[166,318,320],{"class":319},"sBbkF"," Fixture Shop\n",[166,322,324],{"class":168,"line":323},14,[166,325,309],{"emptyLinePlaceholder":308},[166,327,329],{"class":168,"line":328},15,[166,330,332],{"class":331},"szETn","A tiny webshop where shoppers browse a catalog and buy products, and store admins manage the resulting orders.\n",[166,334,336],{"class":168,"line":335},16,[166,337,309],{"emptyLinePlaceholder":308},[166,339,341,344],{"class":168,"line":340},17,[166,342,343],{"class":315},"##",[166,345,346],{"class":319}," Intent\n",[166,348,350],{"class":168,"line":349},18,[166,351,309],{"emptyLinePlaceholder":308},[166,353,355],{"class":168,"line":354},19,[166,356,357],{"class":331},"Exercise the complete pdd-kit report contract with a small deterministic product.\n",[148,359,361],{"id":360},"one-product-or-several","One Product or several?",[135,363,364,365,369],{},"A website, a mobile app, a CLI and a public API are usually\n",[366,367,40],"a",{"href":368},".\u002Finterfaces"," of one Product, not separate Products. Keep\nseparate Products for genuinely separate promises.",[135,371,372,373,376,377,383],{},"Repository layout doesn't decide it: several packages may build one Product.\nToday a repository holds one Product Model in one ",[143,374,375],{},"product-model\u002F","; support for\nseveral Products in one repository is planned\n(",[366,378,382],{"href":379,"rel":380},"https:\u002F\u002Fgithub.com\u002Fitai-gendler\u002Fpdd-kit\u002Fissues\u002F46",[381],"nofollow","#46",").",[148,385,387],{"id":386},"the-file","The file",[135,389,390,392,393,395,396,399],{},[143,391,145],{},", or ",[143,394,160],{}," once it has a logo. The H1 is the\nProduct's name and the paragraph under it the description. An optional\n",[143,397,398],{},"## Intent"," says the outcome the Product protects.",[401,402,403,416],"table",{},[404,405,406],"thead",{},[407,408,409,413],"tr",{},[410,411,412],"th",{},"Field",[410,414,415],{},"Says",[417,418,419,429,438,450,466,478,492,501],"tbody",{},[407,420,421,426],{},[422,423,424],"td",{},[143,425,180],{},[422,427,428],{},"The Product's id, in kebab-case; it may differ from the repository name. Required",[407,430,431,435],{},[422,432,433],{},[143,434,193],{},[422,436,437],{},"One line, for listings",[407,439,440,447],{},[422,441,442,444,445],{},[143,443,204],{},", ",[143,446,215],{},[422,448,449],{},"What kind of product it is, for Blueprint listings",[407,451,452,456],{},[422,453,454],{},[143,455,238],{},[422,457,458,459,462,463],{},"Who made it: each a ",[143,460,461],{},"name"," and an optional ",[143,464,465],{},"url",[407,467,468,472],{},[422,469,470],{},[143,471,261],{},[422,473,474,475],{},"One SPDX identifier, such as ",[143,476,477],{},"MIT",[407,479,480,484],{},[422,481,482],{},[143,483,272],{},[422,485,486,487,491],{},"The languages the Interfaces are delivered in; an ",[366,488,490],{"href":489},".\u002Finterfaces#the-file","Interface"," may narrow it",[407,493,494,498],{},[422,495,496],{},[143,497,292],{},[422,499,500],{},"What the Product deliberately does not do",[407,502,503,508],{},[422,504,505],{},[143,506,507],{},"references",[422,509,510,511],{},"Outside material, as ",[366,512,64],{"href":513},".\u002Freferences",[135,515,516,517,521,522,524],{},"Content kept in several languages is a fact of an Entity, and how someone's\nlanguage is chosen is a kept fact such as ",[518,519,520],"em",{},"Preferred language",". Neither belongs\nin ",[143,523,272],{},".",[526,527,529],"h3",{"id":528},"limitations-vs-coverage","Limitations vs Coverage",[135,531,532,534,535,539],{},[143,533,292],{}," are deliberate boundaries of the Product itself, including what\nit leaves to other systems: \"In-store purchasing is outside this Product\",\n\"People sign in with their existing account\". ",[366,536,538],{"href":537},".\u002Fproduct-model#coverage","Coverage","\nnever describes the Product; it records which code the model accounts for.",[148,541,543],{"id":542},"logo-and-publishing","Logo and publishing",[135,545,546],{},"A logo expands the Product into a folder:",[156,548,553],{"className":549,"code":551,"language":552,"meta":162},[550],"language-text","product-model\u002Fproduct\u002F\n├── product.md\n├── logo.svg\n└── cover.webp      # optional\n","text",[143,554,551],{"__ignoreMap":162},[135,556,557,558,560,561,565,566,568,569,571,572,575,576,579],{},"A model without a logo stays compact, as ",[143,559,145],{},". To publish the model as\na ",[366,562,564],{"href":563},".\u002Ffrom-a-blueprint#what-a-blueprint-is","Blueprint",", it needs a ",[143,567,204],{},",\nat least one tag, at least one author, a ",[143,570,261],{},", and ",[143,573,574],{},"logo.svg",". An optional\n",[143,577,578],{},"cover.webp"," is the illustration a Blueprint listing shows on its card.",[148,581,583],{"id":582},"how-it-connects","How it connects",[585,586,587,595,600],"ul",{},[588,589,590,592,593,524],"li",{},[366,591,40],{"href":368}," are where the Product meets people and systems;\neach may narrow its ",[143,594,272],{},[588,596,597,599],{},[366,598,538],{"href":537}," says which of the repository's code\nthe model accounts for.",[588,601,602,604,605,524],{},[366,603,64],{"href":513}," attach outside material, such as a product\nbrief with ",[143,606,607],{},"role: intent",[148,609,611],{"id":610},"what-lint-checks","What lint checks",[135,613,614],{},"Errors:",[585,616,617,626,644,650,655,666,675,684,693],{},[588,618,619,620,622,623,625],{},"Exactly one manifest: ",[143,621,145],{}," or ",[143,624,160],{},", never both.",[588,627,628,631,632,444,634,462,636,638,639,641,642,524],{},[143,629,630],{},"product\u002F"," holds only ",[143,633,145],{},[143,635,574],{},[143,637,578],{},",\nand a ",[143,640,630],{}," folder needs its logo. Without one, use ",[143,643,145],{},[588,645,646,647,649],{},"No unknown frontmatter keys, and ",[143,648,398],{}," at most once.",[588,651,652,654],{},[143,653,180],{}," is present, lowercase kebab-case and at most 64 characters; the H1 and\ndescription are present.",[588,656,657,659,660,662,663,665],{},[143,658,193],{}," is one line of at most 400 characters; ",[143,661,204],{}," is kebab-case of\nat most 60; ",[143,664,261],{}," is one SPDX identifier.",[588,667,668,669,671,672,674],{},"Each author has a ",[143,670,461],{}," of 1–120 characters, an optional HTTP(S) ",[143,673,465],{},", and\nnothing else.",[588,676,677,678,622,680,683],{},"Every language is a well-formed tag, like ",[143,679,279],{},[143,681,682],{},"pt-BR",", listed once.",[588,685,686,688,689,692],{},[143,687,574],{}," is a plain file of at most 256 KiB with a ",[143,690,691],{},"viewBox",": shapes only,\nwith no scripts, animation, text, external links or embedded content.",[588,694,695,697],{},[143,696,578],{}," is a plain, well-formed still WebP of at most 1 MiB, 16:9, and\n1200 to 4096 pixels wide. An animated WebP is refused.",[135,699,700],{},"Warnings:",[585,702,703],{},[588,704,705],{},"A limitation that talks about the model (\"not modeled\", \"outside the\nmodel\") instead of stating a product constraint.",[707,708,709],"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 .s9fN-, html code.shiki .s9fN-{--shiki-light:#6E3500;--shiki-default:#6E3500;--shiki-dark:#C3E88D}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":162,"searchDepth":176,"depth":176,"links":711},[712,713,714,717,718,719],{"id":150,"depth":176,"text":151},{"id":360,"depth":176,"text":361},{"id":386,"depth":176,"text":387,"children":715},[716],{"id":528,"depth":190,"text":529},{"id":542,"depth":176,"text":543},{"id":582,"depth":176,"text":583},{"id":610,"depth":176,"text":611},{"section":721,"terms":722},"open-source",[723],{"term":32,"definition":724},"The one coherent value promise this model describes, and the boundary drawn around it.",{"title":32,"description":33},"docs\u002Fproduct","JHS_NU0iiL6j7xtm_Uule_88PqFIu5mlGPNiE3JQMcg",1791840533577]