[{"data":1,"prerenderedAt":915},["ShallowReactive",2],{"docs-sections":3,"docs-page-\u002Fdocs\u002Fvariations":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":60,"body":126,"description":61,"extension":442,"group":29,"meta":897,"navigation":613,"order":610,"path":59,"seo":912,"stem":913,"__hash__":914},"docs\u002Fdocs\u002Fvariations.md",{"type":127,"value":128,"toc":886},"minimark",[129,133,141,148,153,229,232,236,243,248,292,295,299,311,333,337,340,426,430,436,638,721,724,728,808,820,824,827,882],[130,131,60],"h1",{"id":132},"variations",[134,135,136,140],"p",{},[137,138,139],"strong",{},"A Variation is when your product works in more than one supported way, and\nsomething decides which way applies."," Feature flags, per-customer settings,\nplan tiers, A\u002FB tests, regional rules and API versions all end up here.",[134,142,143,144,147],{},"Each supported way is an ",[137,145,146],{},"alternative",": an ordinary, complete resource (a\nScenario, a Screen, a Business Rule, an Interface). The Variation names the\nchoice, says why the ways coexist, and says once what picks one.",[149,150,152],"h2",{"id":151},"in-practice","In practice",[154,155,156,172],"table",{},[157,158,159],"thead",{},[160,161,162,166,169],"tr",{},[163,164,165],"th",{},"In your product",[163,167,168],{},"The Variation",[163,170,171],{},"Kind",[173,174,175,187,198,209,219],"tbody",{},[160,176,177,181,184],{},[178,179,180],"td",{},"A store setting picks Standard or Strict refund review",[178,182,183],{},"Two Business Rules",[178,185,186],{},"Configuration",[160,188,189,192,195],{},[178,190,191],{},"Half the shoppers skip the address review at checkout",[178,193,194],{},"Two Scenarios of Checkout",[178,196,197],{},"Experiment",[160,199,200,203,206],{},[178,201,202],{},"Partners call webhook v1 or v2, both still supported",[178,204,205],{},"Two Interfaces",[178,207,208],{},"Version",[160,210,211,214,217],{},[178,212,213],{},"EU stores issue a VAT invoice, US stores a sales tax receipt",[178,215,216],{},"Two Entities",[178,218,186],{},[160,220,221,224,227],{},[178,222,223],{},"A plan tier shows a product page with or without remaining stock",[178,225,226],{},"Two Screens",[178,228,186],{},[134,230,231],{},"Nothing about an alternative moves: its folder, owner and Scenarios stay where\nthey are. Interfaces, Experiences, Screens, Entities, Capabilities, Journeys,\nScenarios and Business Rules can vary.",[149,233,235],{"id":234},"when-you-create-one","When you create one",[134,237,238,239,242],{},"Create one when ",[137,240,241],{},"two or more ways are supported right now, and a setting, flag,\nplan, assignment or version decides which applies",". Without it, a reviewer would\nsee two Rules that both seem to govern every refund, or two near-identical\ncheckouts, and not know why.",[244,245,247],"h3",{"id":246},"vary-the-smallest-resource-that-contains-the-difference","Vary the smallest resource that contains the difference",[154,249,250,260],{},[157,251,252],{},[160,253,254,257],{},[163,255,256],{},"What differs",[163,258,259],{},"What varies",[173,261,262,270,278,285],{},[160,263,264,267],{},[178,265,266],{},"What a person does, such as a checkout with or without address review",[178,268,269],{},"Two Scenarios of one Capability",[160,271,272,275],{},[178,273,274],{},"What a place shows or offers",[178,276,277],{},"Screens or Experiences",[160,279,280,283],{},[178,281,282],{},"What the Product keeps, such as a VAT invoice or a sales tax receipt",[178,284,36],{},[160,286,287,290],{},[178,288,289],{},"A whole policy, such as Standard or Strict refund review",[178,291,56],{},[134,293,294],{},"A single Step never varies on its own; the Scenario holding it does.",[244,296,298],{"id":297},"what-selects-decides-it","What selects decides it",[134,300,301,302,306,307,310],{},"Something chosen ",[303,304,305],"em",{},"before"," the behavior starts (a setting, a flag, a plan, an\nassignment, a version) makes a Variation when it switches between complete\nsupported forms: what a person does, what a place shows or offers, what the\nProduct keeps, or a whole policy. Anything the behavior meets ",[303,308,309],{},"along the way","\nstays inside one Scenario:",[312,313,314,321,327],"ul",{},[315,316,317,320],"li",{},[137,318,319],{},"The state of the thing"," (an item out of stock, a document in a draft\nformat) is a condition in the Scenario.",[315,322,323,326],{},[137,324,325],{},"A choice that only changes the Product's own Steps, or only the outcome,"," is\na decision point (a branch inside one Scenario) or a separate Scenario, not a\nVariation.",[315,328,329,332],{},[137,330,331],{},"Several independent settings on one flow"," (a captcha and a password policy\non one sign-up) are decision points, so no flow needs a Variation per\ncombination.",[244,334,336],{"id":335},"variation-or-not","Variation or not?",[134,338,339],{},"A flag or setting (an admin's configuration counts too) makes a Variation only\nwhen it switches between two complete forms. Turning one thing on or off is not\ntwo forms.",[154,341,342,352],{},[157,343,344],{},[160,345,346,349],{},[163,347,348],{},"What you see",[163,350,351],{},"Model it as",[173,353,354,362,375,390,398,406,418],{},[160,355,356,359],{},[178,357,358],{},"A flag or setting that switches between two complete forms of a place or flow, such as a product page with or without stock",[178,360,361],{},"A Variation",[160,363,364,367],{},[178,365,366],{},"A flag, plan or setting that only turns a feature on or off",[178,368,369,370],{},"An ordinary resource whose description (the paragraph under its title) says it exists only while the switch is on; its permissions carry the switch as a ",[371,372,374],"a",{"href":373},".\u002Fbusiness-rules#grant-keys","condition",[160,376,377,384],{},[178,378,379,380,383],{},"A flag that only decides ",[303,381,382],{},"who may"," do something, such as self-service cancellation",[178,385,386,387],{},"A permission condition on a ",[371,388,389],{"href":373},"Business Rule",[160,391,392,395],{},[178,393,394],{},"A threshold or other value one policy reads",[178,396,397],{},"Content of that one resource",[160,399,400,403],{},[178,401,402],{},"A difference only in looks, or a setting that only changes looks, such as dark mode",[178,404,405],{},"Design, not modeled; attach a Reference if useful",[160,407,408,411],{},[178,409,410],{},"The same flow in several languages",[178,412,413,417],{},[414,415,416],"code",{},"languages",", not alternatives",[160,419,420,423],{},[178,421,422],{},"A retired version nobody uses any more",[178,424,425],{},"Nothing: the model holds only what is supported",[149,427,429],{"id":428},"the-file","The file",[134,431,432,435],{},[414,433,434],{},"variations\u002F\u003Cid>.md",". The H1 names the choice; the lead says why the ways\ncoexist.",[437,438,444],"pre",{"className":439,"code":440,"filename":441,"language":442,"meta":443,"style":443},"language-md shiki shiki-themes pdd-kit-brand-warm pdd-kit-brand-warm material-theme-palenight","---\nkind: configuration          # experiment | configuration | version\nof: business-rule            # the one type every alternative has\nsettings:\n  - { entity: store-settings, fact: Refund review mode }\ntakesEffect: When a refund is requested. A settings change applies to subsequent requests.\nstability: A refund already under review keeps the policy captured when it was requested.\nalternatives:\n  - id: refund-review-standard\n    selectedWhen: Refund review mode is Standard. Missing mode uses Standard.\n  - id: refund-review-strict\n    selectedWhen: Refund review mode is Strict.\n---\n\n# Refund review\n\nStores choose how strictly refunds are reviewed; both policies are supported.\n","variations\u002Frefund-review.md","md","",[414,445,446,455,473,487,496,527,538,549,557,570,581,593,603,608,615,626,631],{"__ignoreMap":443},[447,448,451],"span",{"class":449,"line":450},"line",1,[447,452,454],{"class":453},"sjkiA","---\n",[447,456,458,462,465,469],{"class":449,"line":457},2,[447,459,461],{"class":460},"sg1QC","kind",[447,463,464],{"class":453},":",[447,466,468],{"class":467},"s9fN-"," configuration",[447,470,472],{"class":471},"shP-r","          # experiment | configuration | version\n",[447,474,476,479,481,484],{"class":449,"line":475},3,[447,477,478],{"class":460},"of",[447,480,464],{"class":453},[447,482,483],{"class":467}," business-rule",[447,485,486],{"class":471},"            # the one type every alternative has\n",[447,488,490,493],{"class":449,"line":489},4,[447,491,492],{"class":460},"settings",[447,494,495],{"class":453},":\n",[447,497,499,502,505,508,510,513,516,519,521,524],{"class":449,"line":498},5,[447,500,501],{"class":453},"  -",[447,503,504],{"class":453}," {",[447,506,507],{"class":460}," entity",[447,509,464],{"class":453},[447,511,512],{"class":467}," store-settings",[447,514,515],{"class":453},",",[447,517,518],{"class":460}," fact",[447,520,464],{"class":453},[447,522,523],{"class":467}," Refund review mode",[447,525,526],{"class":453}," }\n",[447,528,530,533,535],{"class":449,"line":529},6,[447,531,532],{"class":460},"takesEffect",[447,534,464],{"class":453},[447,536,537],{"class":467}," When a refund is requested. A settings change applies to subsequent requests.\n",[447,539,541,544,546],{"class":449,"line":540},7,[447,542,543],{"class":460},"stability",[447,545,464],{"class":453},[447,547,548],{"class":467}," A refund already under review keeps the policy captured when it was requested.\n",[447,550,552,555],{"class":449,"line":551},8,[447,553,554],{"class":460},"alternatives",[447,556,495],{"class":453},[447,558,560,562,565,567],{"class":449,"line":559},9,[447,561,501],{"class":453},[447,563,564],{"class":460}," id",[447,566,464],{"class":453},[447,568,569],{"class":467}," refund-review-standard\n",[447,571,573,576,578],{"class":449,"line":572},10,[447,574,575],{"class":460},"    selectedWhen",[447,577,464],{"class":453},[447,579,580],{"class":467}," Refund review mode is Standard. Missing mode uses Standard.\n",[447,582,584,586,588,590],{"class":449,"line":583},11,[447,585,501],{"class":453},[447,587,564],{"class":460},[447,589,464],{"class":453},[447,591,592],{"class":467}," refund-review-strict\n",[447,594,596,598,600],{"class":449,"line":595},12,[447,597,575],{"class":460},[447,599,464],{"class":453},[447,601,602],{"class":467}," Refund review mode is Strict.\n",[447,604,606],{"class":449,"line":605},13,[447,607,454],{"class":453},[447,609,611],{"class":449,"line":610},14,[447,612,614],{"emptyLinePlaceholder":613},true,"\n",[447,616,618,622],{"class":449,"line":617},15,[447,619,621],{"class":620},"sKwZ8","#",[447,623,625],{"class":624},"sBbkF"," Refund review\n",[447,627,629],{"class":449,"line":628},16,[447,630,614],{"emptyLinePlaceholder":613},[447,632,634],{"class":449,"line":633},17,[447,635,637],{"class":636},"szETn","Stores choose how strictly refunds are reviewed; both policies are supported.\n",[154,639,640,650],{},[157,641,642],{},[160,643,644,647],{},[163,645,646],{},"Field",[163,648,649],{},"Says",[173,651,652,690,703,712],{},[160,653,654,658],{},[178,655,656],{},[414,657,478],{},[178,659,660,661,664,665,664,668,664,671,664,674,664,677,664,680,664,683,686,687],{},"The one type every alternative has: ",[414,662,663],{},"interface",", ",[414,666,667],{},"experience",[414,669,670],{},"screen",[414,672,673],{},"entity",[414,675,676],{},"capability",[414,678,679],{},"capability-scenario",[414,681,682],{},"journey",[414,684,685],{},"journey-scenario"," or ",[414,688,689],{},"business-rule",[160,691,692,696],{},[178,693,694],{},[414,695,554],{},[178,697,698,699,702],{},"The resources, by their own ids, each with ",[414,700,701],{},"selectedWhen",": when this one applies, including the default",[160,704,705,709],{},[178,706,707],{},[414,708,532],{},[178,710,711],{},"When the choice is made or re-evaluated",[160,713,714,718],{},[178,715,716],{},[414,717,543],{},[178,719,720],{},"How long the choice holds, and what happens to existing records or sessions when it changes",[134,722,723],{},"Membership lives only here: no alternative's own file mentions the Variation.",[149,725,727],{"id":726},"subtypes","Subtypes",[154,729,730,744],{},[157,731,732],{},[160,733,734,738,741],{},[163,735,736],{},[414,737,461],{},[163,739,740],{},"Use it for",[163,742,743],{},"Extra fields",[173,745,746,762,789],{},[160,747,748,753,756],{},[178,749,750],{},[414,751,752],{},"configuration",[178,754,755],{},"Settings, feature flags, plans, regions, deployments",[178,757,758,759,761],{},"Optional ",[414,760,492],{},": the facts that choose",[160,763,764,769,772],{},[178,765,766],{},[414,767,768],{},"experiment",[178,770,771],{},"A\u002FB tests and other trials",[178,773,774,775,778,779,782,783,664,786],{},"Required ",[414,776,777],{},"assignmentUnit"," and ",[414,780,781],{},"assignmentMethod","; optional ",[414,784,785],{},"assignmentFact",[414,787,788],{},"allocation",[160,790,791,796,799],{},[178,792,793],{},[414,794,795],{},"version",[178,797,798],{},"Contracts or forms live together, such as API v1 and v2",[178,800,758,801,804,805],{},[414,802,803],{},"discriminator","; each alternative needs a ",[414,806,807],{},"label",[134,809,810,811,815,816,819],{},"Don't invent what you don't know: leave out an optional field, say \"unknown\" in\na required one, and in a model mapped from code, list that code under\n",[371,812,814],{"href":813},".\u002Fproduct-model#coverage","Coverage"," ",[414,817,818],{},"limitations",".",[149,821,823],{"id":822},"what-lint-checks","What lint checks",[134,825,826],{},"All of these are errors:",[312,828,829,848,854,857,870,879],{},[315,830,831,664,833,664,835,664,837,839,840,842,843,778,846,819],{},[414,832,461],{},[414,834,478],{},[414,836,532],{},[414,838,543],{}," and at least two ",[414,841,554],{}," are\nrequired, each alternative with ",[414,844,845],{},"id",[414,847,701],{},[315,849,850,851,853],{},"Every alternative exists, is of the type ",[414,852,478],{}," names, and appears once; a\nresource belongs to at most one Variation.",[315,855,856],{},"The alternatives of a Scenario Variation share their Capability or Journey.",[315,858,859,860,862,863,866,867,869],{},"An Experiment has ",[414,861,777],{}," (who is assigned, such as\n",[414,864,865],{},"{ entity: shopper }",") and ",[414,868,781],{},", how, in words.",[315,871,872,873,875,876,878],{},"A field outside the subtype (",[414,874,492],{}," on an Experiment, a ",[414,877,807],{}," outside a\nVersion) and a Version without unique labels.",[315,880,881],{},"Every Entity and fact reference resolves.",[883,884,885],"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 .shP-r, html code.shiki .shP-r{--shiki-light:#4C3E2B;--shiki-light-font-style:italic;--shiki-default:#4C3E2B;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}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":443,"searchDepth":457,"depth":457,"links":887},[888,889,894,895,896],{"id":151,"depth":457,"text":152},{"id":234,"depth":457,"text":235,"children":890},[891,892,893],{"id":246,"depth":475,"text":247},{"id":297,"depth":475,"text":298},{"id":335,"depth":475,"text":336},{"id":428,"depth":457,"text":429},{"id":726,"depth":457,"text":727},{"id":822,"depth":457,"text":823},{"section":898,"terms":899},"open-source",[900,903,906,908,910],{"term":901,"definition":902},"Variation","A product that works in more than one supported way, with what decides which way applies: a feature flag, a setting, a plan, an A\u002FB test or a version.",{"term":904,"anchor":428,"definition":905},"Alternative","One of the supported ways in a Variation, still a complete resource of its own type, with the condition that selects it.",{"term":197,"anchor":726,"definition":907},"A Variation whose alternatives are offered to compare outcomes, such as an A\u002FB test, with who is assigned and how.",{"term":186,"anchor":726,"definition":909},"A Variation chosen by a setting, feature flag, plan or deployment.",{"term":208,"anchor":726,"definition":911},"A Variation whose alternatives are contracts or forms that stay supported together, such as API v1 and v2, each with a label.",{"title":60,"description":61},"docs\u002Fvariations","za1PskL7VVSs3P2DUrFezqq7hcYBGHxRlDxRcNNHW2U",1791840531139]