[{"data":1,"prerenderedAt":620},["ShallowReactive",2],{"page-\u002Fv1\u002Fadopt\u002Fwith-ai-assistants":3},{"id":4,"title":5,"body":6,"description":613,"extension":614,"meta":615,"navigation":329,"path":616,"seo":617,"stem":618,"__hash__":619},"content\u002Fv1\u002Fadopt\u002Fwith-ai-assistants.md","Using AI assistants (optional examples)",{"type":7,"value":8,"toc":604},"minimark",[9,13,30,47,57,127,149,160,165,211,282,285,289,296,304,313,355,365,367,371,384,390,397,455,457,461,464,470,472,476,479,502,504,508,572,576,600],[10,11,5],"h1",{"id":12},"using-ai-assistants-optional-examples",[14,15,16],"blockquote",{},[17,18,19,23,24,29],"p",{},[20,21,22],"strong",{},"Not part of Core MUST."," Modular Hexagonal Domain-Driven Design is ",[25,26,28],"a",{"href":27},"\u002Fv1\u002Fcore\u002Frequirements","AI-neutral",". Skip this page entirely if your project does not use AI coding assistants.",[17,31,32,33,36,37,41,42,46],{},"This page shows ",[20,34,35],{},"example layouts"," for teams that ",[38,39,40],"em",{},"do"," want assistants to follow the same Core rules as humans. Pick the pattern that matches your tool; keep ",[25,43,45],{"href":44},"\u002Fv1\u002Fcore","this site"," as the source of truth.",[17,48,49,52,53,56],{},[20,50,51],{},"Prefer a host one-shot"," when an agent should bootstrap a repo with the ",[20,54,55],{},"entire architecture in one fetch",":",[58,59,60,76],"ul",{},[61,62,63,64,70,71],"li",{},"Index: ",[25,65,67],{"href":66},"\u002Fv1\u002Fadopt\u002Fapply",[68,69,66],"code",{}," · ",[25,72,74],{"href":73},"\u002Fllms.txt",[68,75,73],{},[61,77,78,79,70,85,70,91,70,97,70,103,70,109,70,115,70,121],{},"Hosts (equal): ",[25,80,82],{"href":81},"\u002Fapply\u002Flaravel.full.md",[68,83,84],{},"laravel",[25,86,88],{"href":87},"\u002Fapply\u002Fsymfony.full.md",[68,89,90],{},"symfony",[25,92,94],{"href":93},"\u002Fapply\u002Fyii.full.md",[68,95,96],{},"yii",[25,98,100],{"href":99},"\u002Fapply\u002Fcodeigniter.full.md",[68,101,102],{},"codeigniter",[25,104,106],{"href":105},"\u002Fapply\u002Fcakephp.full.md",[68,107,108],{},"cakephp",[25,110,112],{"href":111},"\u002Fapply\u002Fspiral.full.md",[68,113,114],{},"spiral",[25,116,118],{"href":117},"\u002Fapply\u002Fslim.full.md",[68,119,120],{},"slim",[25,122,124],{"href":123},"\u002Fapply\u002Fmezzio.full.md",[68,125,126],{},"mezzio",[17,128,129,132,133,137,138,141,142,141,145,148],{},[20,130,131],{},"Download:"," ",[25,134,136],{"href":135},"\u002Fv1\u002Fcore\u002Fagent-pack","Optional assistant pack"," (",[68,139,140],{},"SKILL.md",", ",[68,143,144],{},"RULES.core.md",[68,146,147],{},"CHECKLIST.md",").",[17,150,151,152,155,156,159],{},"This page is a ",[20,153,154],{},"layout reference",". Each host one-shot’s ",[20,157,158],{},"Phase AI"," is the authoritative ordered procedure for Cursor \u002F Claude \u002F Gemini \u002F Copilot \u002F generic on that host.",[161,162,164],"h2",{"id":163},"shared-principles-any-tool","Shared principles (any tool)",[166,167,168,174,180,199,205],"ol",{},[61,169,170,173],{},[20,171,172],{},"Core stays on this site"," — local AI files are a short reminder, not a fork of the standard.",[61,175,176,179],{},[20,177,178],{},"Separate host rules"," — ORM \u002F admin UI \u002F host tooling notes live beside Core rules, never mixed into Domain MUST wording.",[61,181,182,185,186,141,189,141,192,141,195,198],{},[20,183,184],{},"Greenfield names in prompts"," — ",[68,187,188],{},"Ordering",[68,190,191],{},"Warehouse",[68,193,194],{},"Directory",[68,196,197],{},"Identity"," (or your renamed domains).",[61,200,201,204],{},[20,202,203],{},"Humans still own boundaries"," — run architecture boundary tests; do not trust the assistant alone.",[61,206,207,210],{},[20,208,209],{},"No AI vendor required"," — Cursor, Copilot, Claude, Windsurf, Aider, or others are interchangeable here.",[212,213,218],"pre",{"className":214,"code":215,"language":216,"meta":217,"style":217},"language-mermaid shiki shiki-themes github-light github-dark","flowchart LR\n  SITE[This docs site — sole canon]\n  PACK[Optional pack files in repo]\n  TOOL[Any AI assistant]\n  CODE[Module code + boundary tests]\n  SITE --> PACK\n  SITE --> TOOL\n  PACK --> TOOL\n  TOOL --> CODE\n  CODE -->|CI \u002F review| SITE\n","mermaid","",[68,219,220,228,234,240,246,252,258,264,270,276],{"__ignoreMap":217},[221,222,225],"span",{"class":223,"line":224},"line",1,[221,226,227],{},"flowchart LR\n",[221,229,231],{"class":223,"line":230},2,[221,232,233],{},"  SITE[This docs site — sole canon]\n",[221,235,237],{"class":223,"line":236},3,[221,238,239],{},"  PACK[Optional pack files in repo]\n",[221,241,243],{"class":223,"line":242},4,[221,244,245],{},"  TOOL[Any AI assistant]\n",[221,247,249],{"class":223,"line":248},5,[221,250,251],{},"  CODE[Module code + boundary tests]\n",[221,253,255],{"class":223,"line":254},6,[221,256,257],{},"  SITE --> PACK\n",[221,259,261],{"class":223,"line":260},7,[221,262,263],{},"  SITE --> TOOL\n",[221,265,267],{"class":223,"line":266},8,[221,268,269],{},"  PACK --> TOOL\n",[221,271,273],{"class":223,"line":272},9,[221,274,275],{},"  TOOL --> CODE\n",[221,277,279],{"class":223,"line":278},10,[221,280,281],{},"  CODE -->|CI \u002F review| SITE\n",[283,284],"hr",{},[161,286,288],{"id":287},"example-a-cursor","Example A — Cursor",[17,290,291,292,295],{},"Illustrative only. Paths reflect a common Cursor layout; adjust if your workspace differs. Replace ",[68,293,294],{},"\u003Chost>"," with your framework slug.",[212,297,302],{"className":298,"code":300,"language":301,"meta":217},[299],"language-text","your-app\u002F\n├── README.md                          # links to this docs site\n├── ROADMAP.md                         # product backlog only\n├── .cursor\u002F\n│   ├── rules\u002F\n│   │   ├── modular-hexagonal-ddd.mdc  # from RULES.core.md (+ short pointer to docs URL)\n│   │   └── \u003Chost>-host.mdc            # optional — adapter-only notes\n│   └── skills\u002F\n│       └── modular-hexagonal-ddd\u002F\n│           └── SKILL.md               # from the optional pack\n└── app\u002FModules\u002F…                      # or src\u002FModules\u002F — host convention\n","text",[68,303,300],{"__ignoreMap":217},[17,305,306],{},[20,307,308,309,312],{},"Suggested ",[68,310,311],{},"modular-hexagonal-ddd.mdc"," head matter (conceptually):",[212,314,318],{"className":315,"code":316,"language":317,"meta":217,"style":217},"language-markdown shiki shiki-themes github-light github-dark","# Modular Hexagonal DDD — Core pointer\n\nCanonical docs: \u003CURL of this site>\u002Fv1\u002Fcore  (Core 1.0.0-draft)\nHost adapter: \u003CURL>\u002Fv1\u002Fadapters\u002F\u003Chost>\n\nFollow RULES from the optional pack. Do not invent alternate module layouts.\nDesign test: peer replaced by HTTP → Application\u002FDomain still compile.\n","markdown",[68,319,320,325,331,336,341,345,350],{"__ignoreMap":217},[221,321,322],{"class":223,"line":224},[221,323,324],{},"# Modular Hexagonal DDD — Core pointer\n",[221,326,327],{"class":223,"line":230},[221,328,330],{"emptyLinePlaceholder":329},true,"\n",[221,332,333],{"class":223,"line":236},[221,334,335],{},"Canonical docs: \u003CURL of this site>\u002Fv1\u002Fcore  (Core 1.0.0-draft)\n",[221,337,338],{"class":223,"line":242},[221,339,340],{},"Host adapter: \u003CURL>\u002Fv1\u002Fadapters\u002F\u003Chost>\n",[221,342,343],{"class":223,"line":248},[221,344,330],{"emptyLinePlaceholder":329},[221,346,347],{"class":223,"line":254},[221,348,349],{},"Follow RULES from the optional pack. Do not invent alternate module layouts.\n",[221,351,352],{"class":223,"line":260},[221,353,354],{},"Design test: peer replaced by HTTP → Application\u002FDomain still compile.\n",[17,356,357,358,360,361,364],{},"Paste the body of ",[68,359,144],{}," under that pointer. Keep host ORM\u002FUI tooling guidance in ",[68,362,363],{},"\u003Chost>-host.mdc",".",[283,366],{},[161,368,370],{"id":369},"example-b-generic-project-instructions-vendor-agnostic","Example B — Generic project instructions (vendor-agnostic)",[17,372,373,374,141,377,141,380,383],{},"Works for tools that read a root instructions file (",[68,375,376],{},"AGENTS.md",[68,378,379],{},".github\u002Fcopilot-instructions.md",[68,381,382],{},"CLAUDE.md",", etc.):",[212,385,388],{"className":386,"code":387,"language":301,"meta":217},[299],"your-app\u002F\n├── README.md\n├── AGENTS.md                 # or your tool’s equivalent filename\n├── docs\u002F\n│   └── architecture-pointer.md\n└── .ai\u002F                      # optional folder name — pick one convention\n    ├── RULES.core.md         # copied from the pack\n    ├── SKILL.md\n    └── CHECKLIST.md\n",[68,389,387],{"__ignoreMap":217},[17,391,392],{},[20,393,394,395,56],{},"Minimal ",[68,396,376],{},[212,398,400],{"className":315,"code":399,"language":317,"meta":217,"style":217},"# Architecture\n\nWe follow Modular Hexagonal Domain-Driven Design.\n\n- Canon: \u003CURL of this site> (Core 1.0.0-draft)\n- Host mapping: \u003CURL>\u002Fv1\u002Fadapters\u002F\u003Chost>\n- Local reminder: .ai\u002FRULES.core.md\n- Review checklist: .ai\u002FCHECKLIST.md\n\nDo not treat this file as a second architecture standard.\nWhen unsure, open the canon site pages (strictness ladder, ACL, events, contracts).\n",[68,401,402,407,411,416,420,425,430,435,440,444,449],{"__ignoreMap":217},[221,403,404],{"class":223,"line":224},[221,405,406],{},"# Architecture\n",[221,408,409],{"class":223,"line":230},[221,410,330],{"emptyLinePlaceholder":329},[221,412,413],{"class":223,"line":236},[221,414,415],{},"We follow Modular Hexagonal Domain-Driven Design.\n",[221,417,418],{"class":223,"line":242},[221,419,330],{"emptyLinePlaceholder":329},[221,421,422],{"class":223,"line":248},[221,423,424],{},"- Canon: \u003CURL of this site> (Core 1.0.0-draft)\n",[221,426,427],{"class":223,"line":254},[221,428,429],{},"- Host mapping: \u003CURL>\u002Fv1\u002Fadapters\u002F\u003Chost>\n",[221,431,432],{"class":223,"line":260},[221,433,434],{},"- Local reminder: .ai\u002FRULES.core.md\n",[221,436,437],{"class":223,"line":266},[221,438,439],{},"- Review checklist: .ai\u002FCHECKLIST.md\n",[221,441,442],{"class":223,"line":272},[221,443,330],{"emptyLinePlaceholder":329},[221,445,446],{"class":223,"line":278},[221,447,448],{},"Do not treat this file as a second architecture standard.\n",[221,450,452],{"class":223,"line":451},11,[221,453,454],{},"When unsure, open the canon site pages (strictness ladder, ACL, events, contracts).\n",[283,456],{},[161,458,460],{"id":459},"example-c-first-session-prompt-copypaste","Example C — First session prompt (copy\u002Fpaste)",[17,462,463],{},"Use after the pack (or pointer) is in the repo:",[212,465,468],{"className":466,"code":467,"language":301,"meta":217},[299],"Follow Modular Hexagonal Domain-Driven Design from our canonical docs:\n\u003CURL>\u002Fv1\u002Fcore and \u003CURL>\u002Fv1\u002Fadapters\u002F\u003Chost>.\n\nPrefer one-shot: \u003CURL>\u002Fapply\u002F\u003Chost>.full.md\nRules reminder: .ai\u002FRULES.core.md (or .cursor\u002Fskills\u002Fmodular-hexagonal-ddd\u002FSKILL.md).\nKeep delivery work in ROADMAP.md. Do not invent alternate layouts.\nGreenfield illustrative names only — rename Ordering\u002FWarehouse to our domains when implementing.\n\nTask: \u003Cdescribe the feature>\n",[68,469,467],{"__ignoreMap":217},[283,471],{},[161,473,475],{"id":474},"example-d-pr-review-habit","Example D — PR \u002F review habit",[17,477,478],{},"Whether or not an assistant wrote the code:",[166,480,481,492,499],{},[61,482,483,484,487,488,148],{},"Run host boundary tests (see the matching adapter ",[20,485,486],{},"Tooling"," page under ",[25,489,491],{"href":490},"\u002Fv1\u002Fadapters","Adapters",[61,493,494,495,498],{},"Walk ",[25,496,147],{"href":497},"\u002Fdownloads\u002Fmodular-hexagonal-ddd-core-agent-pack\u002FCHECKLIST.md"," from the pack.",[61,500,501],{},"Re-check the design test on any new cross-module touch.",[283,503],{},[161,505,507],{"id":506},"what-not-to-do","What not to do",[509,510,511,524],"table",{},[512,513,514],"thead",{},[515,516,517,521],"tr",{},[518,519,520],"th",{},"Smell",[518,522,523],{},"Prefer",[525,526,527,536,544,556,564],"tbody",{},[515,528,529,533],{},[530,531,532],"td",{},"Pasting the entire Core site into the repo as a second canon",[530,534,535],{},"Short pointer + optional pack",[515,537,538,541],{},[530,539,540],{},"Requiring Cursor (or any vendor) in the project README as architecture MUST",[530,542,543],{},"Link this optional page only",[515,545,546,549],{},[530,547,548],{},"Mixing product GAP IDs into AI rules",[530,550,551,552,555],{},"Keep ",[68,553,554],{},"ROADMAP.md"," for delivery",[515,557,558,561],{},[530,559,560],{},"Letting the assistant skip ACL\u002FEvents “for speed”",[530,562,563],{},"Reject in review; fix toward Core",[515,565,566,569],{},[530,567,568],{},"Treating one host’s folders as Core",[530,570,571],{},"Point at that host’s adapter only",[161,573,575],{"id":574},"related","Related",[58,577,578,582,588,594],{},[61,579,580],{},[25,581,136],{"href":135},[61,583,584],{},[25,585,587],{"href":586},"\u002Fv1\u002Fadopt\u002Fbootstrap","Greenfield bootstrap",[61,589,590],{},[25,591,593],{"href":592},"\u002Fv1\u002Fadopt","Adopt overview",[61,595,596,599],{},[25,597,598],{"href":27},"Portable requirements"," (AI is a non-goal \u002F not required)",[601,602,603],"style",{},"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":217,"searchDepth":230,"depth":230,"links":605},[606,607,608,609,610,611,612],{"id":163,"depth":230,"text":164},{"id":287,"depth":230,"text":288},{"id":369,"depth":230,"text":370},{"id":459,"depth":230,"text":460},{"id":474,"depth":230,"text":475},{"id":506,"depth":230,"text":507},{"id":574,"depth":230,"text":575},"Separate, optional examples for teams that choose AI coding assistants — not required by Modular Hexagonal DDD.","md",{},"\u002Fv1\u002Fadopt\u002Fwith-ai-assistants",{"title":5,"description":613},"v1\u002Fadopt\u002Fwith-ai-assistants","kuL6U37-SQHBHO_zsjWhGcl2ENW5qy1MRK8Hz6DRqR0",1786241413138]