[{"data":1,"prerenderedAt":1222},["ShallowReactive",2],{"navigation:en":3,"\u002Fdocs\u002Ffireskills\u002Fcli\u002Fcommands: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":313,"body":314,"description":1216,"extension":1217,"meta":1218,"navigation":1219,"path":305,"seo":1220,"stem":306,"__hash__":1221},"docs\u002Fdocs\u002F2.fireskills\u002F5.cli\u002F1.commands.md","Command Reference",{"type":315,"value":316,"toc":1205},"minimark",[317,334,451,465,468,474,550,616,627,635,640,686,703,708,744,780,786,792,797,840,843,849,858,863,882,892,896,912,927,932,1039,1104,1108,1124,1131,1136,1181,1201],[318,319,320,321,325,326,329,330,333],"p",{},"All commands run from the repository root as ",[322,323,324],"code",{},"bun run fireskill \u003Ccommand>",". Common option: ",[322,327,328],{},"--project \u003Cpath>"," (root of the project; default is the current directory). Most commands also accept ",[322,331,332],{},"--json",".",[335,336,337,350],"table",{},[338,339,340],"thead",{},[341,342,343,347],"tr",{},[344,345,346],"th",{},"Command",[344,348,349],{},"Purpose",[351,352,353,364,374,387,397,411,421,431,441],"tbody",{},[341,354,355,361],{},[356,357,358],"td",{},[322,359,360],{},"transition \u003Cid> \u003Cfolder>",[356,362,363],{},"move a spec one step",[341,365,366,371],{},[356,367,368],{},[322,369,370],{},"effort \u003Cid> \u003C1-10> --reason \"…\"",[356,372,373],{},"set the effort score",[341,375,376,381],{},[356,377,378],{},[322,379,380],{},"validate \u003Cid> [--strict]",[356,382,383,384],{},"quick linter of ",[322,385,386],{},"spec.md",[341,388,389,394],{},[356,390,391],{},[322,392,393],{},"progress [--json] [--watch] [--interval \u003Cs>]",[356,395,396],{},"progress of the specs",[341,398,399,404],{},[356,400,401],{},[322,402,403],{},"milestones sync",[356,405,406,407,410],{},"refresh ",[322,408,409],{},"specs.md"," and milestone progress",[341,412,413,418],{},[356,414,415],{},[322,416,417],{},"test",[356,419,420],{},"run the project tests",[341,422,423,428],{},[356,424,425],{},[322,426,427],{},"lesson add \u002F list \u002F status \u002F prune",[356,429,430],{},"lessons learned",[341,432,433,438],{},[356,434,435],{},[322,436,437],{},"migrate",[356,439,440],{},"move specs from the old layout",[341,442,443,448],{},[356,444,445],{},[322,446,447],{},"config show \u002F set",[356,449,450],{},"per-project settings",[318,452,453,456,457,460,461,464],{},[322,454,455],{},"\u003Cid>"," is the spec number (",[322,458,459],{},"0001",") or the full directory name (",[322,462,463],{},"\u003CNNNN>-\u003Cslug>",").",[466,467],"hr",{},[469,470,472],"h2",{"id":471},"transition",[322,473,471],{},[475,476,481],"pre",{"className":477,"code":478,"language":479,"meta":480,"style":480},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark monokai","bun run fireskill transition \u003Cid> \u003Cdraft|defined|planned|in-progress|review|completed>\n","bash","",[322,482,483],{"__ignoreMap":480},[484,485,488,492,496,499,502,506,509,513,516,518,521,524,527,529,532,534,537,539,542,544,547],"span",{"class":486,"line":487},"line",1,[484,489,491],{"class":490},"sR7ES","bun",[484,493,495],{"class":494},"sLACW"," run",[484,497,498],{"class":494}," fireskill",[484,500,501],{"class":494}," transition",[484,503,505],{"class":504},"sGXK2"," \u003C",[484,507,508],{"class":494},"i",[484,510,512],{"class":511},"ss--_","d",[484,514,515],{"class":504},">",[484,517,505],{"class":504},[484,519,520],{"class":494},"draft",[484,522,523],{"class":504},"|",[484,525,526],{"class":490},"defined",[484,528,523],{"class":504},[484,530,531],{"class":490},"planned",[484,533,523],{"class":504},[484,535,536],{"class":511},"in-progress",[484,538,523],{"class":504},[484,540,541],{"class":490},"review",[484,543,523],{"class":504},[484,545,546],{"class":490},"completed",[484,548,549],{"class":511},">\n",[318,551,552,553,556,557,560,561,560,564,560,567,560,570,560,573,576,577,579,580,582,583,579,585,587,588,582,590,579,592,587,594,582,596,579,598,587,600,582,602,579,604,587,606,582,608,579,610,612,613,333],{},"Moves the spec package one step and rewrites ",[322,554,555],{},"Status"," (",[322,558,559],{},"Draft",", ",[322,562,563],{},"Defined",[322,565,566],{},"Planned",[322,568,569],{},"Implementing",[322,571,572],{},"Reviewing",[322,574,575],{},"Complete","). Allowed moves: ",[322,578,520],{},"→",[322,581,526],{},"; ",[322,584,526],{},[322,586,520],{},"\u002F",[322,589,531],{},[322,591,531],{},[322,593,526],{},[322,595,536],{},[322,597,536],{},[322,599,531],{},[322,601,541],{},[322,603,541],{},[322,605,536],{},[322,607,546],{},[322,609,546],{},[322,611,541],{},". Other moves fail with ",[322,614,615],{},"invalid transition",[318,617,618,619,621,622,626],{},"After the move it refreshes the milestone index (like ",[322,620,403],{},"). It ",[623,624,625],"strong",{},"does not check the gates",": the skills move a spec only after their gate passes.",[475,628,633],{"className":629,"code":631,"language":632,"meta":480},[630],"language-text","0001-convite-de-membros-por-e-mail  draft → defined Defined\n","text",[322,634,631],{"__ignoreMap":480},[469,636,638],{"id":637},"effort",[322,639,637],{},[475,641,643],{"className":477,"code":642,"language":479,"meta":480,"style":480},"bun run fireskill effort \u003Cid> \u003C1-10> --reason \"\u003Crationale>\"\n",[322,644,645],{"__ignoreMap":480},[484,646,647,649,651,653,656,658,660,662,664,666,669,672,676,680,683],{"class":486,"line":487},[484,648,491],{"class":490},[484,650,495],{"class":494},[484,652,498],{"class":494},[484,654,655],{"class":494}," effort",[484,657,505],{"class":504},[484,659,508],{"class":494},[484,661,512],{"class":511},[484,663,515],{"class":504},[484,665,505],{"class":504},[484,667,668],{"class":494},"1-1",[484,670,671],{"class":504},"0>",[484,673,675],{"class":674},"sFhLe"," --reason",[484,677,679],{"class":678},"siCPE"," \"",[484,681,682],{"class":494},"\u003Crationale>",[484,684,685],{"class":678},"\"\n",[318,687,688,689,560,692,695,696,699,700,333],{},"Sets ",[322,690,691],{},"Effort",[322,693,694],{},"Effort updated at"," (ISO timestamp) and ",[322,697,698],{},"Effort rationale",". A score outside 1–10 or an empty reason is rejected. Output: ",[322,701,702],{},"0001-convite-de-membros-por-e-mail\tEffort 4\u002F10",[469,704,706],{"id":705},"validate",[322,707,705],{},[475,709,711],{"className":477,"code":710,"language":479,"meta":480,"style":480},"bun run fireskill validate \u003Cid> [--strict] [--json]\n",[322,712,713],{"__ignoreMap":480},[484,714,715,717,719,721,724,726,728,730,732,735,739,741],{"class":486,"line":487},[484,716,491],{"class":490},[484,718,495],{"class":494},[484,720,498],{"class":494},[484,722,723],{"class":494}," validate",[484,725,505],{"class":504},[484,727,508],{"class":494},[484,729,512],{"class":511},[484,731,515],{"class":504},[484,733,734],{"class":511}," [--strict] ",[484,736,738],{"class":737},"swvn1","[",[484,740,332],{"class":511},[484,742,743],{"class":737},"]\n",[318,745,746,747,750,751,753,754,756,757,759,760,560,763,560,766,560,769,560,772,775,776,779],{},"A ",[623,748,749],{},"quick linter",", not the Definition Gate. It reports errors for: missing ",[322,752,691],{}," or one outside 1–10, missing or too short ",[322,755,698],{},", missing ",[322,758,555],{},", and any of five sections not found by heading (context\u002Fproblem, actors\u002Fstories\u002Frequirements\u002Fscope, scenarios\u002FBDD\u002Facceptance, tasks\u002Fphases, tests\u002Fevidence\u002Fvalidation). It warns about a missing BDD scenario, a missing task list and ",[322,761,762],{},"[TODO]",[322,764,765],{},"[TBD]",[322,767,768],{},"[preencher]",[322,770,771],{},"[em aberto]",[322,773,774],{},"[descrever]"," placeholders. ",[322,777,778],{},"--strict"," turns warnings into errors. The exit code is 1 when invalid.",[318,781,782,783,333],{},"It does not count acceptance criteria, check the interface contract, change gates or move the spec. The gate is ",[322,784,785],{},"node fireskills\u002Fskills\u002Ffireskill-04-validate\u002Fscripts\u002Fvalidate_spec.mjs \u003Cspec.md>",[475,787,790],{"className":788,"code":789,"language":632,"meta":480},[630],"Status: VALID (Passed spec linter)\nErrors: 0 | Warnings: 0\n",[322,791,789],{"__ignoreMap":480},[469,793,795],{"id":794},"progress",[322,796,794],{},[475,798,800],{"className":477,"code":799,"language":479,"meta":480,"style":480},"bun run fireskill progress [--json] [--watch] [--interval \u003Cseconds>]\n",[322,801,802],{"__ignoreMap":480},[484,803,804,806,808,810,813,816,818,821,824,827,830,833,836,838],{"class":486,"line":487},[484,805,491],{"class":490},[484,807,495],{"class":494},[484,809,498],{"class":494},[484,811,812],{"class":494}," progress",[484,814,815],{"class":511}," [--json] ",[484,817,738],{"class":737},[484,819,820],{"class":511},"--watch",[484,822,823],{"class":737},"]",[484,825,826],{"class":737}," [",[484,828,829],{"class":511},"--interval ",[484,831,832],{"class":504},"\u003C",[484,834,835],{"class":511},"seconds",[484,837,515],{"class":504},[484,839,743],{"class":737},[318,841,842],{},"One summary line and one line per spec, with task and item counts:",[475,844,847],{"className":845,"code":846,"language":632,"meta":480},[630],"Summary 1 specs 0\u002F6 tasks   0\u002F55 items  0%\n0001-convite-de-membros-por-e-mail  Draft   0\u002F6 tasks   0\u002F55 items  0%\n",[322,848,846],{"__ignoreMap":480},[318,850,851,853,854,857],{},[322,852,820],{}," prints again when a spec changes; the default interval is shown by ",[322,855,856],{},"config show"," (0.75 s).",[469,859,861],{"id":860},"milestones-sync",[322,862,403],{},[475,864,866],{"className":477,"code":865,"language":479,"meta":480,"style":480},"bun run fireskill milestones sync\n",[322,867,868],{"__ignoreMap":480},[484,869,870,872,874,876,879],{"class":486,"line":487},[484,871,491],{"class":490},[484,873,495],{"class":494},[484,875,498],{"class":494},[484,877,878],{"class":494}," milestones",[484,880,881],{"class":494}," sync\n",[318,883,884,885,887,888,891],{},"Updates the derived blocks of ",[322,886,409],{}," (repository root) and of ",[322,889,890],{},"specs\u002Fmilestones\u002F\u003CID>.md",". Text outside the blocks is preserved.",[469,893,894],{"id":417},[322,895,417],{},[475,897,899],{"className":477,"code":898,"language":479,"meta":480,"style":480},"bun run fireskill test\n",[322,900,901],{"__ignoreMap":480},[484,902,903,905,907,909],{"class":486,"line":487},[484,904,491],{"class":490},[484,906,495],{"class":494},[484,908,498],{"class":494},[484,910,911],{"class":494}," test\n",[318,913,914,915,918,919,922,923,333],{},"Runs ",[322,916,917],{},"bun run test"," from the project root (the Vitest aggregator ",[322,920,921],{},"vitest.config.mts",") and returns its exit code. It does not choose a database: see the ",[924,925,926],"a",{"href":309},"safety guard",[469,928,930],{"id":929},"lesson",[322,931,929],{},[475,933,935],{"className":477,"code":934,"language":479,"meta":480,"style":480},"bun run fireskill lesson add --signal \u003Csignal> --summary \"\u003Ctext>\" --rule \"\u003Ctext>\" --source \"\u003Cspec or PR>\"\nbun run fireskill lesson list [--all]\nbun run fireskill lesson status\nbun run fireskill lesson prune\n",[322,936,937,994,1011,1025],{"__ignoreMap":480},[484,938,939,941,943,945,948,951,954,956,959,962,964,967,969,972,975,978,980,982,984,987,989,992],{"class":486,"line":487},[484,940,491],{"class":490},[484,942,495],{"class":494},[484,944,498],{"class":494},[484,946,947],{"class":494}," lesson",[484,949,950],{"class":494}," add",[484,952,953],{"class":674}," --signal",[484,955,505],{"class":504},[484,957,958],{"class":494},"signa",[484,960,961],{"class":511},"l",[484,963,515],{"class":504},[484,965,966],{"class":674}," --summary",[484,968,679],{"class":678},[484,970,971],{"class":494},"\u003Ctext>",[484,973,974],{"class":678},"\"",[484,976,977],{"class":674}," --rule",[484,979,679],{"class":678},[484,981,971],{"class":494},[484,983,974],{"class":678},[484,985,986],{"class":674}," --source",[484,988,679],{"class":678},[484,990,991],{"class":494},"\u003Cspec or PR>",[484,993,685],{"class":678},[484,995,997,999,1001,1003,1005,1008],{"class":486,"line":996},2,[484,998,491],{"class":490},[484,1000,495],{"class":494},[484,1002,498],{"class":494},[484,1004,947],{"class":494},[484,1006,1007],{"class":494}," list",[484,1009,1010],{"class":511}," [--all]\n",[484,1012,1014,1016,1018,1020,1022],{"class":486,"line":1013},3,[484,1015,491],{"class":490},[484,1017,495],{"class":494},[484,1019,498],{"class":494},[484,1021,947],{"class":494},[484,1023,1024],{"class":494}," status\n",[484,1026,1028,1030,1032,1034,1036],{"class":486,"line":1027},4,[484,1029,491],{"class":490},[484,1031,495],{"class":494},[484,1033,498],{"class":494},[484,1035,947],{"class":494},[484,1037,1038],{"class":494}," prune\n",[318,1040,1041,1044,1045,560,1048,560,1051,560,1054,1057,1058,582,1061,560,1063,560,1066,1069,1070,1073,1074,1077,1078,1081,1082,1085,1086,1089,1090,1093,1094,1069,1097,1100,1101,333],{},[322,1042,1043],{},"--signal"," is ",[322,1046,1047],{},"ac_gap",[322,1049,1050],{},"surviving_mutant",[322,1052,1053],{},"spec_precision_gap",[322,1055,1056],{},"spec_deviation"," or ",[322,1059,1060],{},"gate_fail",[322,1062,1043],{},[322,1064,1065],{},"--summary",[322,1067,1068],{},"--rule"," and ",[322,1071,1072],{},"--source"," are all required. ",[322,1075,1076],{},"list"," shows confirmed lessons; ",[322,1079,1080],{},"--all"," adds candidates and quarantined ones. ",[322,1083,1084],{},"status"," prints counts (",[322,1087,1088],{},"0 confirmed, 1 candidate, 0 quarantined","). ",[322,1091,1092],{},"prune"," removes expired candidates. Files: ",[322,1095,1096],{},".fireskills\u002Flessons.json",[322,1098,1099],{},".fireskills\u002FLESSONS.md",". See ",[924,1102,1103],{"href":273},"Governance & decisions",[469,1105,1106],{"id":437},[322,1107,437],{},[475,1109,1111],{"className":477,"code":1110,"language":479,"meta":480,"style":480},"bun run fireskill migrate\n",[322,1112,1113],{"__ignoreMap":480},[484,1114,1115,1117,1119,1121],{"class":486,"line":487},[484,1116,491],{"class":490},[484,1118,495],{"class":494},[484,1120,498],{"class":494},[484,1122,1123],{"class":494}," migrate\n",[318,1125,1126,1127,1130],{},"Once, moves specs of the previous layout (",[322,1128,1129],{},"specs\u002Fspecs\u002F",") into the state folders.",[469,1132,1134],{"id":1133},"config",[322,1135,1133],{},[475,1137,1139],{"className":477,"code":1138,"language":479,"meta":480,"style":480},"bun run fireskill config show\nbun run fireskill config set --watch-interval \u003Cseconds>\n",[322,1140,1141,1155],{"__ignoreMap":480},[484,1142,1143,1145,1147,1149,1152],{"class":486,"line":487},[484,1144,491],{"class":490},[484,1146,495],{"class":494},[484,1148,498],{"class":494},[484,1150,1151],{"class":494}," config",[484,1153,1154],{"class":494}," show\n",[484,1156,1157,1159,1161,1163,1165,1168,1171,1173,1176,1179],{"class":486,"line":996},[484,1158,491],{"class":490},[484,1160,495],{"class":494},[484,1162,498],{"class":494},[484,1164,1151],{"class":494},[484,1166,1167],{"class":494}," set",[484,1169,1170],{"class":674}," --watch-interval",[484,1172,505],{"class":504},[484,1174,1175],{"class":494},"second",[484,1177,1178],{"class":511},"s",[484,1180,549],{"class":504},[318,1182,1183,1186,1187,1069,1190,1193,1194,1089,1197,1200],{},[322,1184,1185],{},"show"," prints ",[322,1188,1189],{},"project",[322,1191,1192],{},"watch_interval"," (default ",[322,1195,1196],{},"0.75",[322,1198,1199],{},"set"," changes the watch interval.",[1202,1203,1204],"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 .sFhLe, html code.shiki .sFhLe{--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html pre.shiki code .siCPE, html code.shiki .siCPE{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .swvn1, html code.shiki .swvn1{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}",{"title":480,"searchDepth":996,"depth":996,"links":1206},[1207,1208,1209,1210,1211,1212,1213,1214,1215],{"id":471,"depth":996,"text":471},{"id":637,"depth":996,"text":637},{"id":705,"depth":996,"text":705},{"id":794,"depth":996,"text":794},{"id":860,"depth":996,"text":403},{"id":417,"depth":996,"text":417},{"id":929,"depth":996,"text":929},{"id":437,"depth":996,"text":437},{"id":1133,"depth":996,"text":1133},"Every command of bun run fireskill, with real syntax and behavior.","md",{},{"title":304},{"title":313,"description":1216},"1ZrK-thCqnb4JLqvULAhQK93qzAW9odzW0xw6liqqRo",1790707496692]