[{"data":1,"prerenderedAt":1267},["ShallowReactive",2],{"docs-sections":3,"docs-page-\u002Fdocs\u002Fentities":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":36,"body":126,"description":37,"extension":399,"group":29,"meta":1227,"navigation":481,"order":478,"path":35,"seo":1264,"stem":1265,"__hash__":1266},"docs\u002Fdocs\u002Fentities.md",{"type":127,"value":128,"toc":1210},"minimark",[129,133,145,150,218,222,227,284,288,322,325,342,346,363,367,380,383,387,393,637,751,880,890,898,902,926,930,947,950,984,988,997,1004,1008,1011,1088,1094,1098,1101,1185,1188,1206],[130,131,36],"h1",{"id":132},"entities",[134,135,136,140,141,144],"p",{},[137,138,139],"strong",{},"An Entity is a thing your product keeps or reasons about, including the\npeople and systems that act on it."," Capabilities are the Product's verbs;\nEntities are its nouns, and the ones that act are ",[137,142,143],{},"Actors",".",[146,147,149],"h2",{"id":148},"in-practice","In practice",[151,152,153,166],"table",{},[154,155,156],"thead",{},[157,158,159,163],"tr",{},[160,161,162],"th",{},"In your product",[160,164,165],{},"The Entity",[167,168,169,178,186,194,202,210],"tbody",{},[157,170,171,175],{},[172,173,174],"td",{},"A shopper's purchase, from Pending to Confirmed or Refunded",[172,176,177],{},"Order",[157,179,180,183],{},[172,181,182],{},"The person browsing and buying, who owns their orders",[172,184,185],{},"Shopper (acts)",[157,187,188,191],{},[172,189,190],{},"What the store sells, Available or Unavailable",[172,192,193],{},"Catalog product",[157,195,196,199],{},[172,197,198],{},"Money returned against an order, with its own amount and reason",[172,200,201],{},"Refund",[157,203,204,207],{},[172,205,206],{},"The switches a store sets, such as self-service cancellation",[172,208,209],{},"Store settings",[157,211,212,215],{},[172,213,214],{},"The processor that posts settlement results back",[172,216,217],{},"Payment gateway (acts)",[146,219,221],{"id":220},"when-you-create-one","When you create one",[223,224,226],"h3",{"id":225},"one-entity-or-several","One Entity, or several?",[228,229,230,250,256,266,272],"ul",{},[231,232,233,236,237,241,242,245,246,249],"li",{},[137,234,235],{},"A thing a person would call \"this one\"."," A shopper says ",[238,239,240],"em",{},"\"this order\"",",\nnever ",[238,243,244],{},"\"this order line\"",": the items ordered are a fact of Order. Parts and\ncontainers are not Entities: an order line, or ",[238,247,248],{},"\"the library\"",", which is\nsimply all the items.",[231,251,252,255],{},[137,253,254],{},"A part with an address of its own is its own Entity."," If a route, a file,\nor another resource's id names the smaller thing, it is separate however\nfirmly the larger one contains it.",[231,257,258,261,262,265],{},[137,259,260],{},"A family sharing one word: write the Information kept first."," One list\ntrue of every member is one Entity; a list that needs ",[238,263,264],{},"\"depending on the\nkind\""," is several. When it is close, split.",[231,267,268,271],{},[137,269,270],{},"Identity, not storage."," A draft the Product never saves is still an Entity\nwhen someone points at it; a database row nobody can name is not.",[231,273,274,277,278,283],{},[137,275,276],{},"A log is an Entity when an Actor reads it."," An activity log the store's\nadmins open is one Entity, and one ",[279,280,282],"a",{"href":281},".\u002Fbusiness-rules","Business Rule"," says\nwhat it records; no Step lists the entries. A log only your team reads stays\nout.",[146,285,287],{"id":286},"actors-an-entity-that-acts","Actors: an Entity that acts",[134,289,290,293,294,298,299,302,303,306,307,310,311,314,315,318,319,321],{},[137,291,292],{},"An Actor is an Entity that acts on the Product."," It carries ",[295,296,297],"code",{},"acts","\n(",[295,300,301],{},"external",", or ",[295,304,305],{},"internal"," when it acts on the Product owner's behalf, as staff\ndo) and ",[295,308,309],{},"kind",", ",[295,312,313],{},"person"," or ",[295,316,317],{},"system",", which is required with ",[295,320,297],{}," and invalid\nwithout it.",[134,323,324],{},"Make an Entity act when it starts interactions with the Product, with a goal or\nprivilege of its own there. Two roles with the same goals and permissions\nare one Entity, and a privilege that exists only in code is not product meaning.",[134,326,327,330,331,334,335,338,339,341],{},[238,328,329],{},"Actor"," names a role, not a type: a Step's ",[295,332,333],{},"actor",", an Interface's, Experience's\nor Journey's ",[295,336,337],{},"actors",", and a Business Rule grant's ",[295,340,337],{}," must each name an\nEntity that acts.",[223,343,345],{"id":344},"external-systems-direction-decides","External systems: direction decides",[134,347,348,349,352,353,357,358,362],{},"An external system acts only when it ",[137,350,351],{},"initiates",": a processor posting a\nwebhook, a partner calling your API, through an\n",[279,354,356],{"href":355},".\u002Finterfaces","Interface",". A system your Product calls out to is a\ndependency of the ",[279,359,361],{"href":360},".\u002Fcapabilities","Capability"," that calls it, and an Entity\nonly if the Product keeps something about it. The same provider can be either:\npolled, it does not act; pushing updates, it does.",[223,364,366],{"id":365},"an-ai-agent-acts","An AI agent acts",[134,368,369,370,310,373,310,376,379],{},"An AI agent harness that loads a skill and works on someone's behalf acts: give\nit the id ",[295,371,372],{},"ai-agent",[295,374,375],{},"kind: system",[295,377,378],{},"acts: external",". It qualifies because it\nchooses what to inspect, what to propose and when to stop. A CI runner executing\na fixed command does not.",[134,381,382],{},"A built-in AI feature is different: when the Product itself calls a language\nmodel to draft or summarize, that model is a dependency of the Capability, and\nthe drafting is a Product Step. It never acts, however much it feels like an\nassistant. Whichever way AI enters, a kept proposal to change something a\nperson owns waits until that person accepts it.",[146,384,386],{"id":385},"the-file","The file",[134,388,389,392],{},[295,390,391],{},"entities\u002F\u003Cid>.md",": one folder for every Entity, whether or not it acts.",[394,395,401],"pre",{"className":396,"code":397,"filename":398,"language":399,"meta":400,"style":400},"language-md shiki shiki-themes pdd-kit-brand-warm pdd-kit-brand-warm material-theme-palenight","---\ndomain: ordering\nrelations:\n  - entity: refund\n    verb: is repaid by\n    cardinality: one-to-many\n---\n\n# Order\n\nA shopper's confirmed intent to buy.\n\n## Information kept\n\n- **Delivery details** — where and how this order is to be delivered\n- **Total charged** — the amount taken from the shopper\n- **Margin** — what the store earns on it\n\n## States\n\n### Pending\n\nSubmitted and awaiting payment settlement.\n\n### Confirmed\n\nPaid and accepted; stock is committed.\n","entities\u002Forder.md","md","",[295,402,403,412,426,435,449,460,471,476,483,494,499,506,511,520,525,545,560,575,580,588,593,602,607,613,618,626,631],{"__ignoreMap":400},[404,405,408],"span",{"class":406,"line":407},"line",1,[404,409,411],{"class":410},"sjkiA","---\n",[404,413,415,419,422],{"class":406,"line":414},2,[404,416,418],{"class":417},"sg1QC","domain",[404,420,421],{"class":410},":",[404,423,425],{"class":424},"s9fN-"," ordering\n",[404,427,429,432],{"class":406,"line":428},3,[404,430,431],{"class":417},"relations",[404,433,434],{"class":410},":\n",[404,436,438,441,444,446],{"class":406,"line":437},4,[404,439,440],{"class":410},"  -",[404,442,443],{"class":417}," entity",[404,445,421],{"class":410},[404,447,448],{"class":424}," refund\n",[404,450,452,455,457],{"class":406,"line":451},5,[404,453,454],{"class":417},"    verb",[404,456,421],{"class":410},[404,458,459],{"class":424}," is repaid by\n",[404,461,463,466,468],{"class":406,"line":462},6,[404,464,465],{"class":417},"    cardinality",[404,467,421],{"class":410},[404,469,470],{"class":424}," one-to-many\n",[404,472,474],{"class":406,"line":473},7,[404,475,411],{"class":410},[404,477,479],{"class":406,"line":478},8,[404,480,482],{"emptyLinePlaceholder":481},true,"\n",[404,484,486,490],{"class":406,"line":485},9,[404,487,489],{"class":488},"sKwZ8","#",[404,491,493],{"class":492},"sBbkF"," Order\n",[404,495,497],{"class":406,"line":496},10,[404,498,482],{"emptyLinePlaceholder":481},[404,500,502],{"class":406,"line":501},11,[404,503,505],{"class":504},"szETn","A shopper's confirmed intent to buy.\n",[404,507,509],{"class":406,"line":508},12,[404,510,482],{"emptyLinePlaceholder":481},[404,512,514,517],{"class":406,"line":513},13,[404,515,516],{"class":488},"##",[404,518,519],{"class":492}," Information kept\n",[404,521,523],{"class":406,"line":522},14,[404,524,482],{"emptyLinePlaceholder":481},[404,526,528,531,535,539,542],{"class":406,"line":527},15,[404,529,530],{"class":410},"-",[404,532,534],{"class":533},"sU3LZ"," **",[404,536,538],{"class":537},"sfLrv","Delivery details",[404,540,541],{"class":533},"**",[404,543,544],{"class":504}," — where and how this order is to be delivered\n",[404,546,548,550,552,555,557],{"class":406,"line":547},16,[404,549,530],{"class":410},[404,551,534],{"class":533},[404,553,554],{"class":537},"Total charged",[404,556,541],{"class":533},[404,558,559],{"class":504}," — the amount taken from the shopper\n",[404,561,563,565,567,570,572],{"class":406,"line":562},17,[404,564,530],{"class":410},[404,566,534],{"class":533},[404,568,569],{"class":537},"Margin",[404,571,541],{"class":533},[404,573,574],{"class":504}," — what the store earns on it\n",[404,576,578],{"class":406,"line":577},18,[404,579,482],{"emptyLinePlaceholder":481},[404,581,583,585],{"class":406,"line":582},19,[404,584,516],{"class":488},[404,586,587],{"class":492}," States\n",[404,589,591],{"class":406,"line":590},20,[404,592,482],{"emptyLinePlaceholder":481},[404,594,596,599],{"class":406,"line":595},21,[404,597,598],{"class":488},"###",[404,600,601],{"class":492}," Pending\n",[404,603,605],{"class":406,"line":604},22,[404,606,482],{"emptyLinePlaceholder":481},[404,608,610],{"class":406,"line":609},23,[404,611,612],{"class":504},"Submitted and awaiting payment settlement.\n",[404,614,616],{"class":406,"line":615},24,[404,617,482],{"emptyLinePlaceholder":481},[404,619,621,623],{"class":406,"line":620},25,[404,622,598],{"class":488},[404,624,625],{"class":492}," Confirmed\n",[404,627,629],{"class":406,"line":628},26,[404,630,482],{"emptyLinePlaceholder":481},[404,632,634],{"class":406,"line":633},27,[404,635,636],{"class":504},"Paid and accepted; stock is committed.\n",[394,638,641],{"className":396,"code":639,"filename":640,"language":399,"meta":400,"style":400},"---\nkind: person\nacts: external\nrelations:\n  - entity: order\n    verb: owns\n    cardinality: one-to-many\n---\n\n# Shopper\n\nA person who browses the catalog and buys products.\n\n## Information kept\n\n- **Delivery address** — where their orders are sent\n","entities\u002Fshopper.md",[295,642,643,647,656,665,671,682,691,699,703,707,714,718,723,727,733,737],{"__ignoreMap":400},[404,644,645],{"class":406,"line":407},[404,646,411],{"class":410},[404,648,649,651,653],{"class":406,"line":414},[404,650,309],{"class":417},[404,652,421],{"class":410},[404,654,655],{"class":424}," person\n",[404,657,658,660,662],{"class":406,"line":428},[404,659,297],{"class":417},[404,661,421],{"class":410},[404,663,664],{"class":424}," external\n",[404,666,667,669],{"class":406,"line":437},[404,668,431],{"class":417},[404,670,434],{"class":410},[404,672,673,675,677,679],{"class":406,"line":451},[404,674,440],{"class":410},[404,676,443],{"class":417},[404,678,421],{"class":410},[404,680,681],{"class":424}," order\n",[404,683,684,686,688],{"class":406,"line":462},[404,685,454],{"class":417},[404,687,421],{"class":410},[404,689,690],{"class":424}," owns\n",[404,692,693,695,697],{"class":406,"line":473},[404,694,465],{"class":417},[404,696,421],{"class":410},[404,698,470],{"class":424},[404,700,701],{"class":406,"line":478},[404,702,411],{"class":410},[404,704,705],{"class":406,"line":485},[404,706,482],{"emptyLinePlaceholder":481},[404,708,709,711],{"class":406,"line":496},[404,710,489],{"class":488},[404,712,713],{"class":492}," Shopper\n",[404,715,716],{"class":406,"line":501},[404,717,482],{"emptyLinePlaceholder":481},[404,719,720],{"class":406,"line":508},[404,721,722],{"class":504},"A person who browses the catalog and buys products.\n",[404,724,725],{"class":406,"line":513},[404,726,482],{"emptyLinePlaceholder":481},[404,728,729,731],{"class":406,"line":522},[404,730,516],{"class":488},[404,732,519],{"class":492},[404,734,735],{"class":406,"line":527},[404,736,482],{"emptyLinePlaceholder":481},[404,738,739,741,743,746,748],{"class":406,"line":547},[404,740,530],{"class":410},[404,742,534],{"class":533},[404,744,745],{"class":537},"Delivery address",[404,747,541],{"class":533},[404,749,750],{"class":504}," — where their orders are sent\n",[151,752,753,766],{},[154,754,755],{},[157,756,757,760,763],{},[160,758,759],{},"Field or section",[160,761,762],{},"Required",[160,764,765],{},"Says",[167,767,768,779,796,812,827,838,855,868],{},[157,769,770,773,776],{},[172,771,772],{},"H1 and lead",[172,774,775],{},"yes",[172,777,778],{},"The thing's name and what it is",[157,780,781,787,790],{},[172,782,783,310,785],{},[295,784,297],{},[295,786,309],{},[172,788,789],{},"for an Actor",[172,791,792,793],{},"How it acts; see ",[279,794,143],{"href":795},"#actors-an-entity-that-acts",[157,797,798,803,806],{},[172,799,800],{},[295,801,802],{},"singleton",[172,804,805],{},"no",[172,807,808,811],{},[295,809,810],{},"true"," when the Product keeps exactly one: its own settings",[157,813,814,818,820],{},[172,815,816],{},[295,817,418],{},[172,819,805],{},[172,821,822,823],{},"One existing ",[279,824,826],{"href":825},".\u002Fdomains","Domain",[157,828,829,833,835],{},[172,830,831],{},[295,832,431],{},[172,834,805],{},[172,836,837],{},"Its relationships to other Entities",[157,839,840,845,847],{},[172,841,842],{},[295,843,844],{},"references",[172,846,805],{},[172,848,849,850,854],{},"Code or documents behind it, in the ",[279,851,853],{"href":852},".\u002Freferences","Reference"," shape",[157,856,857,862,865],{},[172,858,859],{},[295,860,861],{},"## Information kept",[172,863,864],{},"one of these three",[172,866,867],{},"The named facts the Product keeps",[157,869,870,875,877],{},[172,871,872],{},[295,873,874],{},"## States",[172,876,864],{},[172,878,879],{},"Its named conditions; the first is where it starts",[134,881,882,883,310,885,314,887,889],{},"Every Entity has at least one of ",[295,884,861],{},[295,886,874],{},[295,888,297],{},". A\npayment gateway may keep nothing and exist because it acts.",[134,891,892,897],{},[137,893,894],{},[295,895,896],{},"singleton: true"," marks the Product's own settings, kept once. Settings\neach Workspace keeps are not singletons.",[146,899,901],{"id":900},"named-facts","Named facts",[134,903,904,905,907,908,911,912,915,916,919,920,923,924,144],{},"Each line of ",[295,906,861],{}," is one fact: ",[295,909,910],{},"- **Name** — prose",", with the\nname in bold and an em dash between. Write what the Product keeps, never how it\nis stored: ",[238,913,914],{},"When placed",", not ",[295,917,918],{},"created_at TIMESTAMP",". Computed information is\nstill a fact. Business Rules, Screens and Steps cite a fact by its exact name:\n",[238,921,922],{},"Margin is for operators"," governs the Order's ",[137,925,569],{},[146,927,929],{"id":928},"states-and-the-lifecycle-nobody-authors","States, and the lifecycle nobody authors",[134,931,932,934,935,938,939,942,943,946],{},[295,933,874],{}," lists the named conditions an Entity can be in, each an H3 with a\nline of prose. ",[137,936,937],{},"The Entity declares its States; Scenario Steps move it between\nthem."," A Step says which Entity it creates, changes or removes, and the State\nit leaves or lands in. Each such move is an Arc. Composed across every Scenario,\nthey form the Entity's Lifecycle, and each State's ",[137,940,941],{},"Left here by"," lists the\nScenarios with a Step that puts the Entity there. There is no ",[295,944,945],{},"transitions"," key:\none act can move two things at once, and only the Step can say so.",[146,948,949],{"id":431},"Relations",[134,951,952,954,955,958,959,962,963,966,967,310,970,314,973,976,977,980,981,983],{},[295,953,431],{}," declares how Entities relate, each as\n",[295,956,957],{},"{ entity, verb, cardinality }",": the Shopper ",[295,960,961],{},"owns"," Orders, one-to-many. ",[295,964,965],{},"cardinality"," states both ends\n(",[295,968,969],{},"one-to-one",[295,971,972],{},"one-to-many",[295,974,975],{},"many-to-many",") because whether a saved item can\nsit in two collections is a product decision. Declare a relation on one side\nonly; the inverse is derived. There is no ",[295,978,979],{},"many-to-one",": declare it on the other\nEntity, where it reads ",[295,982,972],{},". A relation may point back at the same\nEntity: a Comment replies to a Comment.",[146,985,987],{"id":986},"is-this-an-erd","Is this an ERD?",[134,989,990,991,993,994,144],{},"Partly. It holds what a conceptual ERD holds (things, relationships,\ncardinality) and nothing physical: no types, keys, join tables or indexes. It\nadds what an ERD lacks: States, links to the Steps that change each thing, and\nwho may act on it. Attach a real schema as a ",[279,992,853],{"href":852}," with\n",[295,995,996],{},"role: implementation",[134,998,999,1000,1003],{},"Not every noun is an Entity. An export of another Entity belongs to that\nEntity; a lock the Product keeps for itself is machinery; a closed list it ships,\nsuch as measurement units, is vocabulary; and an empty list is a condition a\nScenario meets, while ",[238,1001,1002],{},"Archived"," belongs to the thing.",[146,1005,1007],{"id":1006},"how-it-connects","How it connects",[134,1009,1010],{},"An Entity declares almost nothing else; what uses it says so.",[151,1012,1013,1021],{},[154,1014,1015],{},[157,1016,1017,1019],{},[160,1018],{},[160,1020],{},[167,1022,1023,1033,1046,1056,1065,1078],{},[157,1024,1025,1030],{},[172,1026,1027],{},[137,1028,1029],{},"Scenario Step",[172,1031,1032],{},"creates, changes, removes or reads it, naming the States and facts involved",[157,1034,1035,1039],{},[172,1036,1037],{},[137,1038,361],{},[172,1040,1041,1042,1045],{},"is listed as ",[137,1043,1044],{},"Changed by"," when its Steps create, change or remove it",[157,1047,1048,1053],{},[172,1049,1050],{},[137,1051,1052],{},"Screen",[172,1054,1055],{},"shows and collects its facts",[157,1057,1058,1062],{},[172,1059,1060],{},[137,1061,282],{},[172,1063,1064],{},"governs an operation on it, cites its facts, or reads a setting from it",[157,1066,1067,1072],{},[172,1068,1069],{},[137,1070,1071],{},"Interface, Experience, Journey",[172,1073,1074,1075,1077],{},"name it in ",[295,1076,337],{}," when it acts",[157,1079,1080,1085],{},[172,1081,1082],{},[137,1083,1084],{},"Variation",[172,1086,1087],{},"chooses by one of its facts, or assigns its instances",[134,1089,1090,1093],{},[137,1091,1092],{},"No orphans."," Something must change it, present it, name it as an actor, read\nit in a Rule or choose by it in a Variation; a read Step or a relation alone does\nnot count.",[146,1095,1097],{"id":1096},"what-lint-checks","What lint checks",[134,1099,1100],{},"Errors:",[228,1102,1103,1113,1135,1141,1158,1164,1174,1182],{},[231,1104,1105,1106,310,1108,1110,1111,144],{},"A missing H1 or lead, or none of ",[295,1107,861],{},[295,1109,874],{}," and\n",[295,1112,297],{},[231,1114,1115,1117,1118,314,1120,1117,1122,1124,1125,1127,1128,1130,1131,1127,1133,144],{},[295,1116,297],{}," without ",[295,1119,309],{},[295,1121,309],{},[295,1123,297],{},", or a value outside\n",[295,1126,301],{},"\u002F",[295,1129,305],{}," and ",[295,1132,313],{},[295,1134,317],{},[231,1136,1137,1138,1140],{},"A fact not written ",[295,1139,910],{},", two facts with one name, or two\nStates with one name.",[231,1142,1143,1144,1146,1147,314,1150,1153,1154,1157],{},"A ",[295,1145,945],{}," key, a ",[295,1148,1149],{},"## Transitions",[295,1151,1152],{},"## Relations"," section, or an\n",[295,1155,1156],{},"actors\u002F"," folder.",[231,1159,1160,1161,1163],{},"A relation to a missing Entity, a duplicate relation, or ",[295,1162,979],{},"; a\nDomain that does not exist.",[231,1165,1166,1168,1169,310,1171,1173],{},[295,1167,802],{}," other than ",[295,1170,810],{},[295,1172,802],{}," on an Entity that acts, or a\nsingleton on a relation's many end.",[231,1175,1176,1177,314,1179,1181],{},"An ",[295,1178,333],{},[295,1180,337],{}," entry naming an Entity that does not act.",[231,1183,1184],{},"An orphan, as above.",[134,1186,1187],{},"Warnings:",[228,1189,1190,1193,1196,1199],{},[231,1191,1192],{},"A State other than the first that no Step ever puts the Entity in.",[231,1194,1195],{},"A Step moving it from a State nothing produces.",[231,1197,1198],{},"Two Entities declaring relations at each other.",[231,1200,1201,1202,1205],{},"An id that opens with a verb acting on something the model declares, such as\n",[295,1203,1204],{},"cancel-orders"," beside an Order Entity.",[1207,1208,1209],"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 pre.shiki code .sU3LZ, html code.shiki .sU3LZ{--shiki-light:#362B1D;--shiki-light-font-weight:bold;--shiki-default:#362B1D;--shiki-default-font-weight:bold;--shiki-dark:#89DDFF;--shiki-dark-font-weight:bold}html pre.shiki code .sfLrv, html code.shiki .sfLrv{--shiki-light:#362B1D;--shiki-light-font-weight:bold;--shiki-default:#362B1D;--shiki-default-font-weight:bold;--shiki-dark:#F07178;--shiki-dark-font-weight:bold}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":400,"searchDepth":414,"depth":414,"links":1211},[1212,1213,1216,1220,1221,1222,1223,1224,1225,1226],{"id":148,"depth":414,"text":149},{"id":220,"depth":414,"text":221,"children":1214},[1215],{"id":225,"depth":428,"text":226},{"id":286,"depth":414,"text":287,"children":1217},[1218,1219],{"id":344,"depth":428,"text":345},{"id":365,"depth":428,"text":366},{"id":385,"depth":414,"text":386},{"id":900,"depth":414,"text":901},{"id":928,"depth":414,"text":929},{"id":431,"depth":414,"text":949},{"id":986,"depth":414,"text":987},{"id":1006,"depth":414,"text":1007},{"id":1096,"depth":414,"text":1097},{"section":1228,"terms":1229},"open-source",[1230,1233,1235,1238,1241,1244,1247,1249,1252,1257,1262],{"term":1231,"definition":1232},"Entity","A thing the Product keeps or reasons about, including the people and systems that act on it.",{"term":329,"anchor":286,"definition":1234},"An Entity that acts on the Product. Actor is a role a thing plays where it acts, never a resource type of its own.",{"term":1236,"anchor":286,"definition":1237},"Entity kind","Whether an Entity that acts on the Product is a person or a system.",{"term":1239,"anchor":344,"definition":1240},"Acts","Which side of the boundary an Actor acts from: internal to the organisation running the Product, or external to it.",{"term":1242,"anchor":900,"definition":1243},"Information kept","Named facts the Product keeps about an Entity, such as Total charged. Each is cited by name; storage details and data types stay outside the model.",{"term":1245,"anchor":928,"definition":1246},"State","A named condition an Entity can be in, such as Pending or Refunded. Scenario Steps move it between States.",{"term":941,"anchor":928,"definition":1248},"Scenarios containing a Step that puts this Entity in this State, even if a later Step changes it again.",{"term":1250,"anchor":928,"definition":1251},"Arc","A move a Step makes: into a State, out of one, or between two. Nothing declares Arcs; they are composed from the Scenarios.",{"term":1253,"aliases":1254,"anchor":928,"definition":1256},"Lifecycle",[1255],"Machine","An Entity's States and Arcs, showing how it is created, changes State, or is removed, composed from Scenario Steps across the model.",{"term":1258,"aliases":1259,"anchor":431,"definition":1261},"Relation",[1260],"Relationship","A relationship between Entities, such as Shopper owns Orders, stating how many instances can relate on each side.",{"term":1044,"anchor":1006,"definition":1263},"The Capabilities whose Steps create, change, or remove this thing.",{"title":36,"description":37},"docs\u002Fentities","StHLzfV-M_zQX6HD1auJkFGCK0dUcGoBOjMDBcQkTTI",1791840531135]