[{"data":1,"prerenderedAt":840},["ShallowReactive",2],{"navigation:en":3,"\u002Fdocs\u002Ffireskills\u002Fmethodology\u002Flifecycle-states:en":311},[4],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"Nuxfire Docs","\u002Fdocs","docs\u002F0.index",[9,11,152],{"title":5,"path":6,"stem":7,"icon":10},"i-lucide-layout-grid",{"title":12,"path":13,"stem":14,"children":15,"icon":151},"SaaS Starter Kit","\u002Fdocs\u002Fsaas-starter-kit","docs\u002F1.saas-starter-kit\u002F0.index",[16,19,63,129],{"title":17,"path":13,"stem":14,"icon":18},"What is the SaaS Starter Kit?","i-lucide-info",{"title":20,"icon":21,"hide":22,"path":23,"stem":24,"children":25,"page":62},"Getting Started","i-lucide-play",true,"\u002Fdocs\u002Fsaas-starter-kit\u002Fgetting-started","docs\u002F1.saas-starter-kit\u002F1.getting-started",[26,30,34,38,42,46,50,54,58],{"title":27,"path":28,"stem":29},"Quick Start","\u002Fdocs\u002Fsaas-starter-kit\u002Fgetting-started\u002Fquick-start","docs\u002F1.saas-starter-kit\u002F1.getting-started\u002F0.quick-start",{"title":31,"path":32,"stem":33},"Installation","\u002Fdocs\u002Fsaas-starter-kit\u002Fgetting-started\u002Finstallation","docs\u002F1.saas-starter-kit\u002F1.getting-started\u002F1.installation",{"title":35,"path":36,"stem":37},"Cloudflare Access","\u002Fdocs\u002Fsaas-starter-kit\u002Fgetting-started\u002Fcloudflare-access","docs\u002F1.saas-starter-kit\u002F1.getting-started\u002F2.cloudflare-access",{"title":39,"path":40,"stem":41},"Configuration","\u002Fdocs\u002Fsaas-starter-kit\u002Fgetting-started\u002Fconfiguration","docs\u002F1.saas-starter-kit\u002F1.getting-started\u002F3.configuration",{"title":43,"path":44,"stem":45},"Secrets","\u002Fdocs\u002Fsaas-starter-kit\u002Fgetting-started\u002Fsecrets","docs\u002F1.saas-starter-kit\u002F1.getting-started\u002F4.secrets",{"title":47,"path":48,"stem":49},"Environment Variables","\u002Fdocs\u002Fsaas-starter-kit\u002Fgetting-started\u002Fenvironment-variables","docs\u002F1.saas-starter-kit\u002F1.getting-started\u002F5.environment-variables",{"title":51,"path":52,"stem":53},"Deploy","\u002Fdocs\u002Fsaas-starter-kit\u002Fgetting-started\u002Fdeploy","docs\u002F1.saas-starter-kit\u002F1.getting-started\u002F6.deploy",{"title":55,"path":56,"stem":57},"Local Development","\u002Fdocs\u002Fsaas-starter-kit\u002Fgetting-started\u002Flocal-development","docs\u002F1.saas-starter-kit\u002F1.getting-started\u002F7.local-development",{"title":59,"path":60,"stem":61},"Project Structure","\u002Fdocs\u002Fsaas-starter-kit\u002Fgetting-started\u002Fproject-structure","docs\u002F1.saas-starter-kit\u002F1.getting-started\u002F8.project-structure",false,{"title":64,"icon":65,"hide":22,"path":66,"stem":67,"children":68,"page":62},"Features","i-lucide-box","\u002Fdocs\u002Fsaas-starter-kit\u002Ffeatures","docs\u002F1.saas-starter-kit\u002F2.features",[69,73,77,81,85,89,93,97,101,105,109,113,117,121,125],{"title":70,"path":71,"stem":72},"Authentication","\u002Fdocs\u002Fsaas-starter-kit\u002Ffeatures\u002Fauth","docs\u002F1.saas-starter-kit\u002F2.features\u002F1.auth",{"title":74,"path":75,"stem":76},"Rate Limiting","\u002Fdocs\u002Fsaas-starter-kit\u002Ffeatures\u002Frate-limiting","docs\u002F1.saas-starter-kit\u002F2.features\u002F10.rate-limiting",{"title":78,"path":79,"stem":80},"WebSockets","\u002Fdocs\u002Fsaas-starter-kit\u002Ffeatures\u002Fwebsockets","docs\u002F1.saas-starter-kit\u002F2.features\u002F11.websockets",{"title":82,"path":83,"stem":84},"Blog","\u002Fdocs\u002Fsaas-starter-kit\u002Ffeatures\u002Fblog","docs\u002F1.saas-starter-kit\u002F2.features\u002F14.blog",{"title":86,"path":87,"stem":88},"Documentation","\u002Fdocs\u002Fsaas-starter-kit\u002Ffeatures\u002Fdocumentation","docs\u002F1.saas-starter-kit\u002F2.features\u002F15.documentation",{"title":90,"path":91,"stem":92},"Analytics","\u002Fdocs\u002Fsaas-starter-kit\u002Ffeatures\u002Fanalytics","docs\u002F1.saas-starter-kit\u002F2.features\u002F16.analytics",{"title":94,"path":95,"stem":96},"Platform Admin Console","\u002Fdocs\u002Fsaas-starter-kit\u002Ffeatures\u002Fplatform-admin","docs\u002F1.saas-starter-kit\u002F2.features\u002F17.platform-admin",{"title":98,"path":99,"stem":100},"Database","\u002Fdocs\u002Fsaas-starter-kit\u002Ffeatures\u002Fdatabase","docs\u002F1.saas-starter-kit\u002F2.features\u002F2.database",{"title":102,"path":103,"stem":104},"Payments & Billing","\u002Fdocs\u002Fsaas-starter-kit\u002Ffeatures\u002Fpayments","docs\u002F1.saas-starter-kit\u002F2.features\u002F3.payments",{"title":106,"path":107,"stem":108},"Emails","\u002Fdocs\u002Fsaas-starter-kit\u002Ffeatures\u002Femails","docs\u002F1.saas-starter-kit\u002F2.features\u002F4.emails",{"title":110,"path":111,"stem":112},"Notifications","\u002Fdocs\u002Fsaas-starter-kit\u002Ffeatures\u002Fnotifications","docs\u002F1.saas-starter-kit\u002F2.features\u002F5.notifications",{"title":114,"path":115,"stem":116},"Role-Based Access Control","\u002Fdocs\u002Fsaas-starter-kit\u002Ffeatures\u002Frbac","docs\u002F1.saas-starter-kit\u002F2.features\u002F6.rbac",{"title":118,"path":119,"stem":120},"Async Jobs","\u002Fdocs\u002Fsaas-starter-kit\u002Ffeatures\u002Fasync-jobs","docs\u002F1.saas-starter-kit\u002F2.features\u002F7.async-jobs",{"title":122,"path":123,"stem":124},"Storage","\u002Fdocs\u002Fsaas-starter-kit\u002Ffeatures\u002Fstorage","docs\u002F1.saas-starter-kit\u002F2.features\u002F8.storage",{"title":126,"path":127,"stem":128},"Internationalization","\u002Fdocs\u002Fsaas-starter-kit\u002Ffeatures\u002Finternationalization","docs\u002F1.saas-starter-kit\u002F2.features\u002F9.internationalization",{"title":130,"icon":131,"path":132,"stem":133,"children":134,"page":62},"Concepts","i-lucide-graduation-cap","\u002Fdocs\u002Fsaas-starter-kit\u002Fconcepts","docs\u002F1.saas-starter-kit\u002F3.concepts",[135,139,143,147],{"title":136,"path":137,"stem":138},"Technology Stack","\u002Fdocs\u002Fsaas-starter-kit\u002Fconcepts\u002Ftech-stack","docs\u002F1.saas-starter-kit\u002F3.concepts\u002F0.tech-stack",{"title":140,"path":141,"stem":142},"SST.dev","\u002Fdocs\u002Fsaas-starter-kit\u002Fconcepts\u002Fsst","docs\u002F1.saas-starter-kit\u002F3.concepts\u002F1.sst",{"title":144,"path":145,"stem":146},"NuxtHub","\u002Fdocs\u002Fsaas-starter-kit\u002Fconcepts\u002Fnuxt-hub","docs\u002F1.saas-starter-kit\u002F3.concepts\u002F2.nuxt-hub",{"title":148,"path":149,"stem":150},"Design System & Branding","\u002Fdocs\u002Fsaas-starter-kit\u002Fconcepts\u002Fdesign-system","docs\u002F1.saas-starter-kit\u002F3.concepts\u002F3.design-system","i-lucide-zap",{"title":153,"path":154,"stem":155,"children":156,"icon":159},"Fireskills","\u002Fdocs\u002Ffireskills","docs\u002F2.fireskills\u002F0.index",[157,160,219,249,275,293],{"title":158,"path":154,"stem":155,"icon":159},"What is Fireskills?","i-lucide-flame",{"title":20,"icon":21,"hide":22,"path":161,"stem":162,"children":163,"page":62},"\u002Fdocs\u002Ffireskills\u002Fgetting-started","docs\u002F2.fireskills\u002F1.getting-started",[164,167,171,175,179,183,187,191,195,199,203,207,211,215],{"title":27,"path":165,"stem":166},"\u002Fdocs\u002Ffireskills\u002Fgetting-started\u002Fquick-start","docs\u002F2.fireskills\u002F1.getting-started\u002F00.quick-start",{"title":168,"path":169,"stem":170},"Workflow & Governance","\u002Fdocs\u002Ffireskills\u002Fgetting-started\u002Fworkflow","docs\u002F2.fireskills\u002F1.getting-started\u002F01.workflow",{"title":172,"path":173,"stem":174},"Project Context","\u002Fdocs\u002Ffireskills\u002Fgetting-started\u002Fproject-context","docs\u002F2.fireskills\u002F1.getting-started\u002F02.project-context",{"title":176,"path":177,"stem":178},"Step 0: Setup","\u002Fdocs\u002Ffireskills\u002Fgetting-started\u002Fstep-setup","docs\u002F2.fireskills\u002F1.getting-started\u002F03.step-setup",{"title":180,"path":181,"stem":182},"Step 1: Inbox","\u002Fdocs\u002Ffireskills\u002Fgetting-started\u002Fstep-inbox","docs\u002F2.fireskills\u002F1.getting-started\u002F04.step-inbox",{"title":184,"path":185,"stem":186},"Step 2: Backlog","\u002Fdocs\u002Ffireskills\u002Fgetting-started\u002Fstep-backlog","docs\u002F2.fireskills\u002F1.getting-started\u002F05.step-backlog",{"title":188,"path":189,"stem":190},"Step 3: Specify","\u002Fdocs\u002Ffireskills\u002Fgetting-started\u002Fstep-specify","docs\u002F2.fireskills\u002F1.getting-started\u002F06.step-specify",{"title":192,"path":193,"stem":194},"Step 4: Validate","\u002Fdocs\u002Ffireskills\u002Fgetting-started\u002Fstep-validate","docs\u002F2.fireskills\u002F1.getting-started\u002F07.step-validate",{"title":196,"path":197,"stem":198},"Step 5: Tasks","\u002Fdocs\u002Ffireskills\u002Fgetting-started\u002Fstep-tasks","docs\u002F2.fireskills\u002F1.getting-started\u002F08.step-tasks",{"title":200,"path":201,"stem":202},"Step 6: TDD\u002FBDD","\u002Fdocs\u002Ffireskills\u002Fgetting-started\u002Fstep-tdd-bdd","docs\u002F2.fireskills\u002F1.getting-started\u002F09.step-tdd-bdd",{"title":204,"path":205,"stem":206},"Step 7: Implement","\u002Fdocs\u002Ffireskills\u002Fgetting-started\u002Fstep-implement","docs\u002F2.fireskills\u002F1.getting-started\u002F10.step-implement",{"title":208,"path":209,"stem":210},"Step 8: Documentator","\u002Fdocs\u002Ffireskills\u002Fgetting-started\u002Fstep-documentator","docs\u002F2.fireskills\u002F1.getting-started\u002F11.step-documentator",{"title":212,"path":213,"stem":214},"Late Changes","\u002Fdocs\u002Ffireskills\u002Fgetting-started\u002Flate-changes","docs\u002F2.fireskills\u002F1.getting-started\u002F12.late-changes",{"title":216,"path":217,"stem":218},"Other Entry Points","\u002Fdocs\u002Ffireskills\u002Fgetting-started\u002Fother-entry-points","docs\u002F2.fireskills\u002F1.getting-started\u002F13.other-entry-points",{"title":220,"icon":221,"hide":22,"path":222,"stem":223,"children":224,"page":62},"Methodology","i-lucide-git-branch","\u002Fdocs\u002Ffireskills\u002Fmethodology","docs\u002F2.fireskills\u002F2.methodology",[225,229,233,237,241,245],{"title":226,"path":227,"stem":228},"The Three Acts","\u002Fdocs\u002Ffireskills\u002Fmethodology\u002Fthree-acts","docs\u002F2.fireskills\u002F2.methodology\u002F0.three-acts",{"title":230,"path":231,"stem":232},"The Three Gates","\u002Fdocs\u002Ffireskills\u002Fmethodology\u002Fthree-gates","docs\u002F2.fireskills\u002F2.methodology\u002F1.three-gates",{"title":234,"path":235,"stem":236},"The Canonical Spec","\u002Fdocs\u002Ffireskills\u002Fmethodology\u002Fcanonical-spec","docs\u002F2.fireskills\u002F2.methodology\u002F2.canonical-spec",{"title":238,"path":239,"stem":240},"Lifecycle States","\u002Fdocs\u002Ffireskills\u002Fmethodology\u002Flifecycle-states","docs\u002F2.fireskills\u002F2.methodology\u002F3.lifecycle-states",{"title":242,"path":243,"stem":244},"Effort Scale","\u002Fdocs\u002Ffireskills\u002Fmethodology\u002Feffort-scale","docs\u002F2.fireskills\u002F2.methodology\u002F4.effort-scale",{"title":246,"path":247,"stem":248},"Milestones & Governance","\u002Fdocs\u002Ffireskills\u002Fmethodology\u002Fgovernance-and-milestones","docs\u002F2.fireskills\u002F2.methodology\u002F5.governance-and-milestones",{"title":250,"icon":251,"hide":22,"path":252,"stem":253,"children":254,"page":62},"Skills","i-lucide-layers","\u002Fdocs\u002Ffireskills\u002Fskills","docs\u002F2.fireskills\u002F3.skills",[255,259,263,267,271],{"title":256,"path":257,"stem":258},"Catalog","\u002Fdocs\u002Ffireskills\u002Fskills\u002Fcatalog","docs\u002F2.fireskills\u002F3.skills\u002F0.catalog",{"title":260,"path":261,"stem":262},"Act I: Define","\u002Fdocs\u002Ffireskills\u002Fskills\u002Fact-1-define","docs\u002F2.fireskills\u002F3.skills\u002F1.act-1-define",{"title":264,"path":265,"stem":266},"Act II: Design & Prove","\u002Fdocs\u002Ffireskills\u002Fskills\u002Fact-2-design-prove","docs\u002F2.fireskills\u002F3.skills\u002F2.act-2-design-prove",{"title":268,"path":269,"stem":270},"Act III: Deliver","\u002Fdocs\u002Ffireskills\u002Fskills\u002Fact-3-deliver","docs\u002F2.fireskills\u002F3.skills\u002F3.act-3-deliver",{"title":272,"path":273,"stem":274},"Governance & Decisions","\u002Fdocs\u002Ffireskills\u002Fskills\u002Fgovernance-and-decisions","docs\u002F2.fireskills\u002F3.skills\u002F4.governance-and-decisions",{"title":276,"icon":277,"hide":22,"path":278,"stem":279,"children":280,"page":62},"Specialists","i-lucide-sparkles","\u002Fdocs\u002Ffireskills\u002Fspecialists","docs\u002F2.fireskills\u002F4.specialists",[281,285,289],{"title":282,"path":283,"stem":284},"Overview","\u002Fdocs\u002Ffireskills\u002Fspecialists\u002Foverview","docs\u002F2.fireskills\u002F4.specialists\u002F0.overview",{"title":286,"path":287,"stem":288},"Nuxfire Stack","\u002Fdocs\u002Ffireskills\u002Fspecialists\u002Fnuxfire-stack","docs\u002F2.fireskills\u002F4.specialists\u002F1.nuxfire-stack",{"title":290,"path":291,"stem":292},"Engineering Specialists","\u002Fdocs\u002Ffireskills\u002Fspecialists\u002Fengineering-specialists","docs\u002F2.fireskills\u002F4.specialists\u002F2.engineering-specialists",{"title":294,"icon":295,"hide":22,"path":296,"stem":297,"children":298,"page":62},"CLI & Tooling","i-lucide-terminal","\u002Fdocs\u002Ffireskills\u002Fcli","docs\u002F2.fireskills\u002F5.cli",[299,303,307],{"title":300,"path":301,"stem":302},"CLI Overview","\u002Fdocs\u002Ffireskills\u002Fcli\u002Foverview","docs\u002F2.fireskills\u002F5.cli\u002F0.overview",{"title":304,"path":305,"stem":306},"Commands","\u002Fdocs\u002Ffireskills\u002Fcli\u002Fcommands","docs\u002F2.fireskills\u002F5.cli\u002F1.commands",{"title":308,"path":309,"stem":310},"Safety Scripts","\u002Fdocs\u002Ffireskills\u002Fcli\u002Fgovernance-scripts","docs\u002F2.fireskills\u002F5.cli\u002F2.governance-scripts",{"id":312,"title":238,"body":313,"description":834,"extension":835,"meta":836,"navigation":837,"path":239,"seo":838,"stem":240,"__hash__":839},"docs\u002Fdocs\u002F2.fireskills\u002F2.methodology\u002F3.lifecycle-states.md",{"type":314,"value":315,"toc":827},"minimark",[316,325,328,333,481,483,487,554,557,579,586,589,637,661,749,759,761,765,805,807,811,823],[317,318,319,320,324],"p",{},"A spec's state is expressed twice: by the folder it sits in and by the ",[321,322,323],"code",{},"Status"," field of its header. The CLI keeps both in step.",[326,327],"hr",{},[329,330,332],"h2",{"id":331},"state-mapping","State mapping",[334,335,336,356],"table",{},[337,338,339],"thead",{},[340,341,342,346,350,353],"tr",{},[343,344,345],"th",{},"Folder",[343,347,348],{},[321,349,323],{},[343,351,352],{},"Act",[343,354,355],{},"Set by",[357,358,359,380,401,422,443,462],"tbody",{},[340,360,361,367,372,375],{},[362,363,364],"td",{},[321,365,366],{},"specs\u002Fdraft\u002F",[362,368,369],{},[321,370,371],{},"Draft",[362,373,374],{},"I",[362,376,377],{},[321,378,379],{},"iniciar_spec.mjs",[340,381,382,387,392,395],{},[362,383,384],{},[321,385,386],{},"specs\u002Fdefined\u002F",[362,388,389],{},[321,390,391],{},"Defined",[362,393,394],{},"I → II",[362,396,397,400],{},[321,398,399],{},"$fireskill-04-validate"," when the Definition Gate passes",[340,402,403,408,413,416],{},[362,404,405],{},[321,406,407],{},"specs\u002Fplanned\u002F",[362,409,410],{},[321,411,412],{},"Planned",[362,414,415],{},"II",[362,417,418,421],{},[321,419,420],{},"$fireskill-05-tasks"," when the Plan Gate passes",[340,423,424,429,434,437],{},[362,425,426],{},[321,427,428],{},"specs\u002Fin-progress\u002F",[362,430,431],{},[321,432,433],{},"Implementing",[362,435,436],{},"III",[362,438,439,442],{},[321,440,441],{},"$fireskill-07-implement"," before the first production change",[340,444,445,450,455,457],{},[362,446,447],{},[321,448,449],{},"specs\u002Freview\u002F",[362,451,452],{},[321,453,454],{},"Reviewing",[362,456,436],{},[362,458,459,461],{},[321,460,441],{}," when the Delivery Gate passes",[340,463,464,469,474,476],{},[362,465,466],{},[321,467,468],{},"specs\u002Fcompleted\u002F",[362,470,471],{},[321,472,473],{},"Complete",[362,475,436],{},[362,477,478,480],{},[321,479,399],{},", at the final acceptance",[326,482],{},[329,484,486],{"id":485},"the-transition-command","The transition command",[488,489,494],"pre",{"className":490,"code":491,"language":492,"meta":493,"style":493},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark monokai","bun run fireskill transition \u003CNNNN>-\u003Cslug> \u003Cfolder>\n","bash","",[321,495,496],{"__ignoreMap":493},[497,498,501,505,509,512,515,519,522,526,529,532,535,538,541,543,545,548,551],"span",{"class":499,"line":500},"line",1,[497,502,504],{"class":503},"sR7ES","bun",[497,506,508],{"class":507},"sLACW"," run",[497,510,511],{"class":507}," fireskill",[497,513,514],{"class":507}," transition",[497,516,518],{"class":517},"sGXK2"," \u003C",[497,520,521],{"class":507},"NNN",[497,523,525],{"class":524},"ss--_","N",[497,527,528],{"class":517},">",[497,530,531],{"class":507},"-",[497,533,534],{"class":517},"\u003C",[497,536,537],{"class":507},"slu",[497,539,540],{"class":524},"g",[497,542,528],{"class":517},[497,544,518],{"class":517},[497,546,547],{"class":507},"folde",[497,549,550],{"class":524},"r",[497,552,553],{"class":517},">\n",[317,555,556],{},"For example:",[488,558,560],{"className":490,"code":559,"language":492,"meta":493,"style":493},"bun run fireskill transition 0001 defined\n",[321,561,562],{"__ignoreMap":493},[497,563,564,566,568,570,572,576],{"class":499,"line":500},[497,565,504],{"class":503},[497,567,508],{"class":507},[497,569,511],{"class":507},[497,571,514],{"class":507},[497,573,575],{"class":574},"sYThS"," 0001",[497,577,578],{"class":507}," defined\n",[317,580,581,582,585],{},"Real output: ",[321,583,584],{},"0001-convite-de-membros-por-e-mail\tdraft → defined\tDefined",".",[317,587,588],{},"What it does:",[590,591,592,607,613,627,630],"ol",{},[593,594,595,596,599,600,603,604,585],"li",{},"Finds the spec by its number (",[321,597,598],{},"0001",") or its full directory name (",[321,601,602],{},"\u003CNNNN>-\u003Cslug>","); an unknown identifier fails with ",[321,605,606],{},"spec not found",[593,608,609,610,585],{},"Accepts only the moves in the table below; anything else fails with ",[321,611,612],{},"invalid transition: \u003Cfrom> to \u003Cto>",[593,614,615,616,618,619,622,623,626],{},"Rewrites the ",[321,617,323],{}," line of ",[321,620,621],{},"spec.md"," and moves the whole package (with ",[321,624,625],{},"research\u002F",") to the destination folder.",[593,628,629],{},"Refuses to overwrite an existing destination.",[593,631,632,633,636],{},"Refreshes the milestone index afterwards (the same as ",[321,634,635],{},"milestones sync",").",[317,638,639,640,644,645,648,649,652,653,656,657,660],{},"What it does ",[641,642,643],"strong",{},"not"," do: ",[641,646,647],{},"it does not read or check the gates."," A spec whose ",[321,650,651],{},"Definition Gate"," is ",[321,654,655],{},"Pending"," can be moved to ",[321,658,659],{},"defined",". The gates are the responsibility of the skills, which move the spec only after their gate passes.",[334,662,663,673],{},[337,664,665],{},[340,666,667,670],{},[343,668,669],{},"From",[343,671,672],{},"Allowed destinations",[357,674,675,686,700,713,726,739],{},[340,676,677,682],{},[362,678,679],{},[321,680,681],{},"draft",[362,683,684],{},[321,685,659],{},[340,687,688,692],{},[362,689,690],{},[321,691,659],{},[362,693,694,696,697],{},[321,695,681],{},", ",[321,698,699],{},"planned",[340,701,702,706],{},[362,703,704],{},[321,705,699],{},[362,707,708,696,710],{},[321,709,659],{},[321,711,712],{},"in-progress",[340,714,715,719],{},[362,716,717],{},[321,718,712],{},[362,720,721,696,723],{},[321,722,699],{},[321,724,725],{},"review",[340,727,728,732],{},[362,729,730],{},[321,731,725],{},[362,733,734,696,736],{},[321,735,712],{},[321,737,738],{},"completed",[340,740,741,745],{},[362,742,743],{},[321,744,738],{},[362,746,747],{},[321,748,725],{},[317,750,751,754,755,758],{},[321,752,753],{},"bun run fireskill migrate"," moves specs from the previous layout (",[321,756,757],{},"specs\u002Fspecs\u002F",") into these folders, once.",[326,760],{},[329,762,764],{"id":763},"what-each-state-means","What each state means",[766,767,768,773,778,783,789,799],"ul",{},[593,769,770,772],{},[641,771,371],{},": the spec is being written. Problem, actors, requirements and scenarios are still being settled.",[593,774,775,777],{},[641,776,391],{},": the Definition Gate passed. The scope is locked for planning.",[593,779,780,782],{},[641,781,412],{},": the Plan Gate passed. Tasks exist and the tests fail for the right reason (RED).",[593,784,785,788],{},[641,786,787],{},"In progress",": implementation. Specialists are loaded, code is written until the tests are green, visual reviews happen.",[593,790,791,794,795,798],{},[641,792,793],{},"Review",": the Delivery Gate passed; final acceptance is pending. Here you may run ",[321,796,797],{},"$fireskill-the-judge"," on the diff.",[593,800,801,804],{},[641,802,803],{},"Completed",": accepted. Evidence, documentation and Definition of Done are recorded.",[326,806],{},[329,808,810],{"id":809},"going-back","Going back",[317,812,813,814,817,818,822],{},"Going back happens through ",[321,815,816],{},"$fireskill-update-spec",", which sets the status and gates that the change invalidates (see ",[819,820,821],"a",{"href":231},"Quality Gates",") and then uses the allowed backward moves above.",[824,825,826],"style",{},"html pre.shiki code .sR7ES, html code.shiki .sR7ES{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .sLACW, html code.shiki .sLACW{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .sGXK2, html code.shiki .sGXK2{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .ss--_, html code.shiki .ss--_{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}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);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html pre.shiki code .sYThS, html code.shiki .sYThS{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}",{"title":493,"searchDepth":828,"depth":828,"links":829},2,[830,831,832,833],{"id":331,"depth":828,"text":332},{"id":485,"depth":828,"text":486},{"id":763,"depth":828,"text":764},{"id":809,"depth":828,"text":810},"How a spec moves across state folders, and what the transition command does and does not check.","md",{},{"title":238},{"title":238,"description":834},"YHy616_ldWwLLhCcqZY_D4zgcvdie3xRavmglOezoB0",1790707495257]