[{"data":1,"prerenderedAt":369},["ShallowReactive",2],{"navigation":3,"docs-getting-started\u002Ffirst-feature":90},[4],{"title":5,"path":6,"stem":7,"children":8},"Docs","\u002Fdocs","docs",[9,12,34,40,58,76],{"title":10,"path":6,"stem":11},"Overview","docs\u002Findex",{"title":13,"path":14,"stem":15,"children":16},"CLI Reference","\u002Fdocs\u002Fcli","docs\u002Fcli\u002Findex",[17,18,22,26,30],{"title":13,"path":14,"stem":15},{"title":19,"path":20,"stem":21},"doctor","\u002Fdocs\u002Fcli\u002Fdoctor","docs\u002Fcli\u002Fdoctor",{"title":23,"path":24,"stem":25},"exec","\u002Fdocs\u002Fcli\u002Fexec","docs\u002Fcli\u002Fexec",{"title":27,"path":28,"stem":29},"init","\u002Fdocs\u002Fcli\u002Finit","docs\u002Fcli\u002Finit",{"title":31,"path":32,"stem":33},"status","\u002Fdocs\u002Fcli\u002Fstatus","docs\u002Fcli\u002Fstatus",{"title":35,"path":36,"stem":37,"children":38},"Constitution","\u002Fdocs\u002Fconstitution","docs\u002Fconstitution\u002Findex",[39],{"title":35,"path":36,"stem":37},{"title":41,"path":42,"stem":43,"children":44},"FD Guide","\u002Fdocs\u002Ffd","docs\u002Ffd\u002Findex",[45,46,50,54],{"title":41,"path":42,"stem":43},{"title":47,"path":48,"stem":49},"Closing","\u002Fdocs\u002Ffd\u002Fclosing","docs\u002Ffd\u002Fclosing",{"title":51,"path":52,"stem":53},"Creating","\u002Fdocs\u002Ffd\u002Fcreating","docs\u002Ffd\u002Fcreating",{"title":55,"path":56,"stem":57},"Reviewing","\u002Fdocs\u002Ffd\u002Freviewing","docs\u002Ffd\u002Freviewing",{"title":59,"path":60,"stem":61,"children":62},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002Fgetting-started\u002Findex",[63,64,68,72],{"title":59,"path":60,"stem":61},{"title":65,"path":66,"stem":67},"First Feature","\u002Fdocs\u002Fgetting-started\u002Ffirst-feature","docs\u002Fgetting-started\u002Ffirst-feature",{"title":69,"path":70,"stem":71},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002Fgetting-started\u002Finstallation",{"title":73,"path":74,"stem":75},"Feature Lifecycle","\u002Fdocs\u002Fgetting-started\u002Flifecycle","docs\u002Fgetting-started\u002Flifecycle",{"title":77,"path":78,"stem":79,"children":80},"SDD Guide","\u002Fdocs\u002Fsdd","docs\u002Fsdd\u002Findex",[81,82,86],{"title":77,"path":78,"stem":79},{"title":83,"path":84,"stem":85},"Executing","\u002Fdocs\u002Fsdd\u002Fexecuting","docs\u002Fsdd\u002Fexecuting",{"title":87,"path":88,"stem":89},"Generating","\u002Fdocs\u002Fsdd\u002Fgenerating","docs\u002Fsdd\u002Fgenerating",{"id":91,"title":92,"body":93,"description":363,"extension":364,"meta":365,"navigation":366,"path":66,"seo":367,"stem":67,"__hash__":368},"content\u002Fdocs\u002Fgetting-started\u002Ffirst-feature.md","Your First Feature",{"type":94,"value":95,"toc":355},"minimark",[96,100,104,109,120,123,129,136,143,147,153,156,175,182,189,193,199,210,214,217,298,301,305,311,314,328,332,338,341,344,351],[97,98,92],"h1",{"id":99},"your-first-feature",[101,102,103],"p",{},"This walkthrough covers the full Forgia workflow for a single feature.",[105,106,108],"h2",{"id":107},"_1-create-a-feature-design","1. Create a Feature Design",[110,111,116],"pre",{"className":112,"code":114,"language":115},[113],"language-text","\u002Ffd-new \"Add user authentication with JWT\"\n","text",[117,118,114],"code",{"__ignoreMap":119},"",[101,121,122],{},"Or from a GitHub issue:",[110,124,127],{"className":125,"code":126,"language":115},[113],"\u002Ffd-new #42\n",[117,128,126],{"__ignoreMap":119},[101,130,131,132,135],{},"Claude creates ",[117,133,134],{},".forgia\u002Ffd\u002FFD-001-user-authentication.md"," pre-filled with problem statement, solutions, architecture diagrams, and planned SDDs.",[101,137,138,142],{},[139,140,141],"strong",{},"Fill in the gaps",": edit the FD to add your chosen architecture, define component interfaces, and list the SDDs you want generated.",[105,144,146],{"id":145},"_2-review-the-fd","2. Review the FD",[110,148,151],{"className":149,"code":150,"language":115},[113],"\u002Ffd-review FD-001\n",[117,152,150],{"__ignoreMap":119},[101,154,155],{},"This is a mandatory gate. The review checks:",[157,158,159,163,166,169,172],"ul",{},[160,161,162],"li",{},"Problem is clearly defined (what + why, not how)",[160,164,165],{},"At least 2 solutions with pros\u002Fcons",[160,167,168],{},"Architecture diagrams are present and non-trivial",[160,170,171],{},"Interfaces between components are defined",[160,173,174],{},"Verification criteria are testable",[101,176,177,178,181],{},"If anything fails, the FD stays in ",[117,179,180],{},"planned"," state. Fix the issues and re-run.",[101,183,184,185,188],{},"On pass: status changes to ",[117,186,187],{},"approved",".",[105,190,192],{"id":191},"_3-generate-sdds","3. Generate SDDs",[110,194,197],{"className":195,"code":196,"language":115},[113],"\u002Ffd-sdd FD-001\n",[117,198,196],{"__ignoreMap":119},[101,200,201,202,205,206,209],{},"Creates ",[117,203,204],{},"N"," files in ",[117,207,208],{},".forgia\u002Fsdd\u002FFD-001\u002F",", one per component. Each SDD is a self-contained execution contract: scope, interfaces, constraints, best practices, test requirements, acceptance criteria.",[105,211,213],{"id":212},"_4-execute","4. Execute",[101,215,216],{},"Assign each SDD to an agent:",[110,218,222],{"className":219,"code":220,"language":221,"meta":119,"style":119},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Interactive (Claude Code)\n\u002Fsdd-assign SDD-001 claude\n\n# Autonomous (OpenHands in Docker)\nmise run sdd .forgia\u002Fsdd\u002FFD-001\u002FSDD-001.md\n\n# Parallel batch\nforgia batch FD-001\n","bash",[117,223,224,233,247,254,260,275,280,286],{"__ignoreMap":119},[225,226,229],"span",{"class":227,"line":228},"line",1,[225,230,232],{"class":231},"sHwdD","# Interactive (Claude Code)\n",[225,234,236,240,244],{"class":227,"line":235},2,[225,237,239],{"class":238},"sBMFI","\u002Fsdd-assign",[225,241,243],{"class":242},"sfazB"," SDD-001",[225,245,246],{"class":242}," claude\n",[225,248,250],{"class":227,"line":249},3,[225,251,253],{"emptyLinePlaceholder":252},true,"\n",[225,255,257],{"class":227,"line":256},4,[225,258,259],{"class":231},"# Autonomous (OpenHands in Docker)\n",[225,261,263,266,269,272],{"class":227,"line":262},5,[225,264,265],{"class":238},"mise",[225,267,268],{"class":242}," run",[225,270,271],{"class":242}," sdd",[225,273,274],{"class":242}," .forgia\u002Fsdd\u002FFD-001\u002FSDD-001.md\n",[225,276,278],{"class":227,"line":277},6,[225,279,253],{"emptyLinePlaceholder":252},[225,281,283],{"class":227,"line":282},7,[225,284,285],{"class":231},"# Parallel batch\n",[225,287,289,292,295],{"class":227,"line":288},8,[225,290,291],{"class":238},"forgia",[225,293,294],{"class":242}," batch",[225,296,297],{"class":242}," FD-001\n",[101,299,300],{},"The agent reads the SDD, implements the code, and fills in the Work Log.",[105,302,304],{"id":303},"_5-verify","5. Verify",[110,306,309],{"className":307,"code":308,"language":115},[113],"\u002Ffd-verify FD-001\n",[117,310,308],{"__ignoreMap":119},[101,312,313],{},"Checks that:",[157,315,316,322,325],{},[160,317,318,319],{},"All SDDs have status ",[117,320,321],{},"done",[160,323,324],{},"All Work Logs are filled",[160,326,327],{},"Acceptance criteria are met",[105,329,331],{"id":330},"_6-close","6. Close",[110,333,336],{"className":334,"code":335,"language":115},[113],"\u002Ffd-close FD-001\n",[117,337,335],{"__ignoreMap":119},[101,339,340],{},"Archives the FD, updates the changelog, and aggregates retrospectives from all Work Logs.",[342,343],"hr",{},[101,345,346,347,350],{},"Next: read the ",[348,349,41],"a",{"href":42}," for a deeper look at Feature Designs.",[352,353,354],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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":119,"searchDepth":235,"depth":235,"links":356},[357,358,359,360,361,362],{"id":107,"depth":235,"text":108},{"id":145,"depth":235,"text":146},{"id":191,"depth":235,"text":192},{"id":212,"depth":235,"text":213},{"id":303,"depth":235,"text":304},{"id":330,"depth":235,"text":331},"End-to-end walkthrough: from idea to merged code using the Forgia workflow.","md",{},{"title":65},{"title":92,"description":363},"Xb14kgLv3M7O4PLCYrumVD7Kbo00Mp6TpJXBsD6XdvU",1775060659113]