[{"data":1,"prerenderedAt":267},["ShallowReactive",2],{"page-\u002Fv1\u002Fadopt\u002Fbootstrap":3},{"id":4,"title":5,"body":6,"description":260,"extension":261,"meta":262,"navigation":202,"path":263,"seo":264,"stem":265,"__hash__":266},"content\u002Fv1\u002Fadopt\u002Fbootstrap.md","Greenfield bootstrap",{"type":7,"value":8,"toc":251},"minimark",[9,13,22,29,36,41,44,55,59,110,117,121,153,157,186,190,229,233],[10,11,5],"h1",{"id":12},"greenfield-bootstrap",[14,15,16,17,21],"p",{},"Checklist for starting a ",[18,19,20],"strong",{},"new"," host project on Modular Hexagonal Domain-Driven Design. This site is the architecture source of truth — keep only host wiring and product backlog in the consuming repository.",[14,23,24,25,28],{},"The architecture is ",[18,26,27],{},"AI-neutral",". Bootstrap succeeds with humans and ordinary tooling; AI assistants are optional.",[14,30,31,32,35],{},"If you are ",[18,33,34],{},"porting existing modules",", keep standards from here, but plan a separate migration of code and quality gates (boundary tests, formatter, static analysis).",[37,38,40],"h2",{"id":39},"_1-point-the-team-here","1. Point the team here",[14,42,43],{},"In the new repo’s root README (short pointer is enough):",[45,46,52],"pre",{"className":47,"code":49,"language":50,"meta":51},[48],"language-text","Architecture standard: Modular Hexagonal Domain-Driven Design\nCanonical docs: \u003CURL of this site>  (Core 1.0.0-draft)\nHost adapter: \u003CURL>\u002Fv1\u002Fadapters\u002F\u003Chost>\n  # \u003Chost> = laravel | symfony | yii | codeigniter | cakephp | spiral | slim | mezzio\n","text","",[53,54,49],"code",{"__ignoreMap":51},[37,56,58],{"id":57},"_2-documents-in-the-new-repo","2. Documents in the new repo",[60,61,62,75],"table",{},[63,64,65],"thead",{},[66,67,68,72],"tr",{},[69,70,71],"th",{},"Keep locally",[69,73,74],{},"Notes",[76,77,78,87,97],"tbody",{},[66,79,80,84],{},[81,82,83],"td",{},"Thin README pointer",[81,85,86],{},"Links to this site; optional host-only deltas",[66,88,89,94],{},[81,90,91],{},[53,92,93],{},"ROADMAP.md",[81,95,96],{},"Product delivery only — not architecture essays",[66,98,99,102],{},[81,100,101],{},"Optional PRD",[81,103,104,105],{},"Product\u002Fstack notes; MUST architecture rules must match ",[106,107,109],"a",{"href":108},"\u002Fv1\u002Fcore\u002Frequirements","Requirements",[14,111,112,113,116],{},"Do ",[18,114,115],{},"not"," maintain a long divergent architecture essay if it contradicts this site.",[37,118,120],{"id":119},"_3-code-skeleton","3. Code skeleton",[122,123,124,133,136,147,150],"ol",{},[125,126,127,128,132],"li",{},"Create the host application (any supported host — see ",[106,129,131],{"href":130},"\u002Fv1\u002Fadapters","Adapters",").",[125,134,135],{},"Add module root + Shared root to PSR-4 autoload.",[125,137,138,139,142,143,146],{},"Start Shared empty — promote technical ports on ",[18,140,141],{},"second"," use (",[53,144,145],{},"Clock",", transactions, event dispatch, …).",[125,148,149],{},"Add architecture boundary tests (assertions are Core MUST; commands live on each host’s Tooling page).",[125,151,152],{},"Scaffold the first module (host generator or manual folders + composition root registration).",[37,154,156],{"id":155},"_4-optional-ai-assistant-rules","4. Optional — AI assistant rules",[14,158,159,160,164,165,168,169,172,173,177,178,182,183,185],{},"Only if your team uses an AI coding assistant: prefer the host ",[106,161,163],{"href":162},"\u002Fv1\u002Fadopt\u002Fapply","apply playbook"," (one-shot ",[53,166,167],{},"*.full.md"," for your framework). It covers ",[18,170,171],{},"Cursor, Claude, Gemini, Copilot, and generic"," layouts. Also see ",[106,174,176],{"href":175},"\u002Fv1\u002Fadopt\u002Fwith-ai-assistants","Using AI assistants"," and the ",[106,179,181],{"href":180},"\u002Fv1\u002Fcore\u002Fagent-pack","optional assistant pack",". This step is ",[18,184,115],{}," required for architecture compliance.",[37,187,189],{"id":188},"_5-definition-of-done-for-bootstrap-complete","5. Definition of done for “bootstrap complete”",[191,192,195,205,211,217,223],"ul",{"className":193},[194],"contains-task-list",[125,196,199,204],{"className":197},[198],"task-list-item",[200,201],"input",{"disabled":202,"type":203},true,"checkbox"," Boundary \u002F arch test green with ≥1 sample module",[125,206,208,210],{"className":207},[198],[200,209],{"disabled":202,"type":203}," Formatter + test commands documented for the host",[125,212,214,216],{"className":213},[198],[200,215],{"disabled":202,"type":203}," README links to this site as canonical Core",[125,218,220,222],{"className":219},[198],[200,221],{"disabled":202,"type":203}," No unrelated product-module trees treated as the architecture standard",[125,224,226,228],{"className":225},[198],[200,227],{"disabled":202,"type":203}," (Optional) Assistant rules pack installed if the team uses AI tools",[37,230,232],{"id":231},"related","Related",[191,234,235,240,245],{},[125,236,237],{},[106,238,239],{"href":108},"Portable requirements",[125,241,242],{},[106,243,244],{"href":130},"Adapters overview",[125,246,247],{},[106,248,250],{"href":249},"\u002Fv1\u002Fcore\u002Fpure-php-psr-skeleton","Pure PHP + PSR skeleton",{"title":51,"searchDepth":252,"depth":252,"links":253},2,[254,255,256,257,258,259],{"id":39,"depth":252,"text":40},{"id":57,"depth":252,"text":58},{"id":119,"depth":252,"text":120},{"id":155,"depth":252,"text":156},{"id":188,"depth":252,"text":189},{"id":231,"depth":252,"text":232},"Bootstrap checklist for a new project adopting Modular Hexagonal DDD from this canonical documentation site.","md",{},"\u002Fv1\u002Fadopt\u002Fbootstrap",{"title":5,"description":260},"v1\u002Fadopt\u002Fbootstrap","bL3njKTbkDYIUOKp4kY9RTGvjkjJAA-h-8EG6BY4cIA",1786241413077]