kortext 2.2.3 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +175 -65
  3. package/agents/architect.md +85 -0
  4. package/agents/compliance-expert.md +36 -75
  5. package/agents/copywriter.md +36 -92
  6. package/agents/db-admin.md +43 -91
  7. package/agents/designer.md +40 -77
  8. package/agents/devops-engineer.md +37 -113
  9. package/agents/growth-expert.md +45 -88
  10. package/agents/product-manager.md +38 -83
  11. package/agents/qa-engineer.md +51 -99
  12. package/agents/security-engineer.md +47 -92
  13. package/bin/kortext.js +2 -0
  14. package/dist/app.js +829 -0
  15. package/dist/cli-spawn.js +137 -0
  16. package/dist/daemon.js +40 -0
  17. package/dist/db.js +78 -0
  18. package/dist/design-preview.js +533 -0
  19. package/dist/docs.js +701 -0
  20. package/dist/engines.js +225 -0
  21. package/dist/index.js +109 -0
  22. package/dist/pick-directory.js +38 -0
  23. package/dist/projects.js +189 -0
  24. package/dist/readiness.js +288 -0
  25. package/dist/runner.js +771 -0
  26. package/dist/update.js +55 -0
  27. package/docs/CHANGELOG.md +11 -0
  28. package/package.json +53 -13
  29. package/templates/AGENTS.md +62 -0
  30. package/templates/docs/API.md +67 -0
  31. package/templates/docs/ARCHITECTURE.md +31 -0
  32. package/templates/docs/BRIEF.md +27 -0
  33. package/templates/docs/CONTENT.md +66 -0
  34. package/templates/docs/DATABASE.md +63 -0
  35. package/templates/docs/DESIGN.md +124 -0
  36. package/templates/docs/ENGINEERING.md +66 -0
  37. package/templates/docs/ENVIRONMENT.md +102 -0
  38. package/templates/docs/GROWTH.md +44 -0
  39. package/templates/docs/LEGAL.md +48 -0
  40. package/templates/docs/PRODUCT.md +43 -0
  41. package/templates/docs/SECURITY.md +65 -0
  42. package/templates/docs/STACK.md +57 -0
  43. package/templates/docs/STRUCTURE.md +73 -0
  44. package/templates/docs/TEST.md +62 -0
  45. package/ui/dist/assets/abnfDiagram-VCTEODGH-Bm7Q2BML.js +1 -0
  46. package/ui/dist/assets/arc-BV9hs0Hu.js +1 -0
  47. package/ui/dist/assets/architecture-7GRP2DOG-RckR3gBI.js +1 -0
  48. package/ui/dist/assets/architectureDiagram-5GKGNRK7-CHiJ6JFT.js +36 -0
  49. package/ui/dist/assets/array-BifhSqXX.js +1 -0
  50. package/ui/dist/assets/blockDiagram-I7D4REHJ-qCbaKVhd.js +129 -0
  51. package/ui/dist/assets/c4Diagram-7LVT6UL2-DidCDJrv.js +38 -0
  52. package/ui/dist/assets/channel-CNUQ11ne.js +1 -0
  53. package/ui/dist/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  54. package/ui/dist/assets/chunk-4HAMMTFA-CDGFjfVp.js +62 -0
  55. package/ui/dist/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  56. package/ui/dist/assets/chunk-75Z2AOVW-CbNT4sDh.js +2 -0
  57. package/ui/dist/assets/chunk-DU6HZSFF-Cq2BVv26.js +127 -0
  58. package/ui/dist/assets/chunk-F27PBJKO-CE365m0v.js +1 -0
  59. package/ui/dist/assets/chunk-FOHPRMQF-DHwB1DNv.js +161 -0
  60. package/ui/dist/assets/chunk-GMAD6QVW-DxWL1VC-.js +72 -0
  61. package/ui/dist/assets/chunk-GVQU2GXP-aARV8YbK.js +1 -0
  62. package/ui/dist/assets/chunk-IMKFNOWR-CC790Kt2.js +231 -0
  63. package/ui/dist/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  64. package/ui/dist/assets/chunk-L3NEJ4N5-BfE4VE8J.js +1 -0
  65. package/ui/dist/assets/chunk-OSK3NFVY-BImQbSWH.js +10 -0
  66. package/ui/dist/assets/chunk-P2QGCYS3-CN3XD313.js +1 -0
  67. package/ui/dist/assets/chunk-POPQ4Y6H-Dqb6jOrX.js +1 -0
  68. package/ui/dist/assets/chunk-PWAF6VOD-DfXX6rBk.js +1 -0
  69. package/ui/dist/assets/chunk-SHT3W25Y-DATyyqPK.js +168 -0
  70. package/ui/dist/assets/chunk-SVP7TREG-r1chwRmg.js +88 -0
  71. package/ui/dist/assets/chunk-TICWLB2K-DL4atHUC.js +206 -0
  72. package/ui/dist/assets/chunk-XXDRQBXY-DXrM6jh7.js +1 -0
  73. package/ui/dist/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  74. package/ui/dist/assets/classDiagram-ZZMXUADV-BpQxfIQ7.js +1 -0
  75. package/ui/dist/assets/classDiagram-v2-VYDZK3BY-BpQxfIQ7.js +1 -0
  76. package/ui/dist/assets/cose-bilkent-JH36ORCC-Bhe-ZBlS.js +1 -0
  77. package/ui/dist/assets/cynefin-OW5HDTMX-D1koLd-G.js +1 -0
  78. package/ui/dist/assets/cynefinDiagram-5FMLGOSQ-BMcw40hV.js +62 -0
  79. package/ui/dist/assets/cytoscape.esm-CGd-uY3x.js +321 -0
  80. package/ui/dist/assets/dagre-GXQ25YYZ-DBun-Rs2.js +4 -0
  81. package/ui/dist/assets/dagre-PrKaheQc.js +1 -0
  82. package/ui/dist/assets/defaultLocale-BFoDCU3G.js +1 -0
  83. package/ui/dist/assets/diagram-S7CK7UJ4-C1fUIGvo.js +30 -0
  84. package/ui/dist/assets/diagram-UQ7AKVKN-B5FDfkvB.js +41 -0
  85. package/ui/dist/assets/diagram-VSXAHHWV-CCIpOCNC.js +3 -0
  86. package/ui/dist/assets/diagram-VX7I27RA-DV0q2xo_.js +24 -0
  87. package/ui/dist/assets/diagram-Z3DM3KII-B3LCdNgI.js +24 -0
  88. package/ui/dist/assets/dist-EcW76Zvr.js +1 -0
  89. package/ui/dist/assets/ebnfDiagram-PWID7BFC-De_oRbYe.js +1 -0
  90. package/ui/dist/assets/erDiagram-RLTQ6QDP-B9NikMr1.js +99 -0
  91. package/ui/dist/assets/eventmodeling-NTZA5JFV-DZ4t581k.js +1 -0
  92. package/ui/dist/assets/flowDiagram-HODETNUW-DuTOJp1C.js +1 -0
  93. package/ui/dist/assets/ganttDiagram-EL5Y4UJY-BVTqqlPw.js +292 -0
  94. package/ui/dist/assets/gitGraph-4MIJSDKK-xRFaEJdZ.js +1 -0
  95. package/ui/dist/assets/gitGraphDiagram-WWUBYQGX-CK5_GCmX.js +106 -0
  96. package/ui/dist/assets/graphlib-DS17s2tU.js +1 -0
  97. package/ui/dist/assets/index-CjkpNftW.js +46 -0
  98. package/ui/dist/assets/index-DVIDTWin.css +1 -0
  99. package/ui/dist/assets/info-A6RAGUB7-Dg7z-CTI.js +1 -0
  100. package/ui/dist/assets/infoDiagram-27XIBGKW-YaqsOXh0.js +2 -0
  101. package/ui/dist/assets/init-C-OQMol4.js +1 -0
  102. package/ui/dist/assets/ishikawaDiagram-5VMMS53U-C-wtxZPa.js +70 -0
  103. package/ui/dist/assets/journeyDiagram-3NMN7TZE-DsXSXf16.js +139 -0
  104. package/ui/dist/assets/kanban-definition-UXKFOSKX-Ct59fuWk.js +89 -0
  105. package/ui/dist/assets/katex-CXMH3UgJ.js +257 -0
  106. package/ui/dist/assets/line-BUVw9Mhs.js +1 -0
  107. package/ui/dist/assets/linear-D8ncLO0X.js +1 -0
  108. package/ui/dist/assets/mermaid-parser.core-BDC4bG-O.js +7 -0
  109. package/ui/dist/assets/mermaid.core-DZY3WwzX.js +44 -0
  110. package/ui/dist/assets/mindmap-definition-YA3MSWOX-DtiuF6Ce.js +96 -0
  111. package/ui/dist/assets/ordinal-BDEzSJ7C.js +1 -0
  112. package/ui/dist/assets/packet-AYTQ26CC-BX2-w9rD.js +1 -0
  113. package/ui/dist/assets/path-fybaL0A-.js +1 -0
  114. package/ui/dist/assets/pegDiagram-XKGWAZYB-CotwuIHB.js +1 -0
  115. package/ui/dist/assets/pie-WAS4IAKB-Hth8ZVpm.js +1 -0
  116. package/ui/dist/assets/pieDiagram-E7YTZNPT-D9-INs8B.js +39 -0
  117. package/ui/dist/assets/quadrantDiagram-AXDQQJYC-CMtBXZGV.js +7 -0
  118. package/ui/dist/assets/radar-RG4KPBEZ-6UuwQPsw.js +1 -0
  119. package/ui/dist/assets/railroad-74A4TZTK-BF5TZgj0.js +1 -0
  120. package/ui/dist/assets/railroad-abnf-HS5TGJTU-3KYovtYT.js +1 -0
  121. package/ui/dist/assets/railroad-ebnf-LZEXJU2U-DeP4WedE.js +1 -0
  122. package/ui/dist/assets/railroad-peg-WCYAUIDC-i42N1-yk.js +1 -0
  123. package/ui/dist/assets/railroadDiagram-O6MQD6OU-BS6zkU3Z.js +1 -0
  124. package/ui/dist/assets/requirementDiagram-BXWQKSXE-J4IOB-kP.js +84 -0
  125. package/ui/dist/assets/rough.esm-Dy-Kn_BL.js +1 -0
  126. package/ui/dist/assets/sankeyDiagram-P5KCCOFB-jYTCuYzQ.js +40 -0
  127. package/ui/dist/assets/sequenceDiagram-WJ2MYXX4-Cd2r6PW-.js +162 -0
  128. package/ui/dist/assets/sizeCapture-INFHLROL-B0uUizjq.js +1 -0
  129. package/ui/dist/assets/src-7TsfZXRO.js +1 -0
  130. package/ui/dist/assets/stateDiagram-D77RDMKH-DXOdtOKe.js +1 -0
  131. package/ui/dist/assets/stateDiagram-v2-MP3YSRHH-9h7sIf3R.js +1 -0
  132. package/ui/dist/assets/swimlanes-42K2YHIH-BvJGmGs1.js +1 -0
  133. package/ui/dist/assets/swimlanesDiagram-VR7AAH4N-QA4gPi6a.js +8 -0
  134. package/ui/dist/assets/timeline-definition-24CTP7MA-CAaD6-yd.js +120 -0
  135. package/ui/dist/assets/treeView-Q6P3EWNA-4gDEXIyJ.js +1 -0
  136. package/ui/dist/assets/treemap-WGGIJYW6-CGel5TwW.js +1 -0
  137. package/ui/dist/assets/vennDiagram-4TSXK5OY-DpxsKboL.js +34 -0
  138. package/ui/dist/assets/wardley-WFR3VGLG-Ck38v5ns.js +1 -0
  139. package/ui/dist/assets/wardleyDiagram-VM6X3IG4-Ba0grrqs.js +78 -0
  140. package/ui/dist/assets/xychartDiagram-S5SC5T6Z-DH_gC96K.js +7 -0
  141. package/ui/dist/index.html +13 -0
  142. package/ui/dist/kortext-logo-dark.svg +41 -0
  143. package/ui/dist/kortext-logo.svg +41 -0
  144. package/workflows/existing-project-analysis.md +87 -0
  145. package/workflows/new-project-analysis.md +98 -0
  146. package/workflows/planning-pipeline.md +61 -0
  147. package/AGENTS.md +0 -28
  148. package/agents/backend-developer.md +0 -132
  149. package/agents/delivery-manager.md +0 -121
  150. package/agents/engineering-manager.md +0 -208
  151. package/agents/frontend-developer.md +0 -174
  152. package/agents/operation-manager.md +0 -122
  153. package/hooks/audit-logger.sh +0 -25
  154. package/hooks/auto-locker.sh +0 -74
  155. package/hooks/auto-unlocker.sh +0 -17
  156. package/hooks/backlog-sync-guard.sh +0 -12
  157. package/hooks/branch-guard.sh +0 -32
  158. package/hooks/commit-msg-guard.sh +0 -43
  159. package/hooks/git-pre-commit.sh +0 -76
  160. package/hooks/git-pre-push.sh +0 -17
  161. package/hooks/handover-guard.sh +0 -33
  162. package/hooks/kortext-init.sh +0 -194
  163. package/hooks/kortext-lib.sh +0 -151
  164. package/hooks/lint-guard.sh +0 -50
  165. package/hooks/secret-scanner.sh +0 -89
  166. package/hooks/size-guard.sh +0 -48
  167. package/hooks/snapshot-guard.sh +0 -39
  168. package/hooks/write-guard.sh +0 -77
  169. package/rules/behavior.md +0 -252
  170. package/rules/branching.md +0 -82
  171. package/rules/commands.md +0 -112
  172. package/rules/emergency.md +0 -160
  173. package/rules/mcp.md +0 -47
  174. package/rules/models.md +0 -93
  175. package/scripts/kortext-backlog-add.py +0 -123
  176. package/scripts/kortext-backlog-health.py +0 -112
  177. package/scripts/kortext-backlog-sync.py +0 -117
  178. package/scripts/kortext-bulk-plan.py +0 -63
  179. package/scripts/kortext-cli.py +0 -376
  180. package/scripts/kortext-consistency-check.py +0 -74
  181. package/scripts/kortext-context-check.py +0 -146
  182. package/scripts/kortext-handover.py +0 -107
  183. package/scripts/kortext-item-check.py +0 -61
  184. package/scripts/kortext-item-start.py +0 -70
  185. package/scripts/kortext-item-transition.py +0 -78
  186. package/scripts/kortext-lock.py +0 -174
  187. package/scripts/kortext-session-start.py +0 -127
  188. package/scripts/lock_kortext.sh +0 -34
  189. package/settings/.claude-settings.template.json +0 -48
  190. package/settings/CHANGELOG.md +0 -176
  191. package/settings/INTEGRATION-MAP.md +0 -276
  192. package/settings/README.md +0 -255
  193. package/settings/USER-GUIDE.md +0 -502
  194. package/settings/VERSION +0 -1
  195. package/settings/config.md +0 -8
  196. package/settings/runtime-adapters.md +0 -104
  197. package/skills/backend-developer/.gitkeep +0 -0
  198. package/skills/compliance-expert/.gitkeep +0 -0
  199. package/skills/copywriter/.gitkeep +0 -0
  200. package/skills/db-admin/.gitkeep +0 -0
  201. package/skills/delivery-manager/.gitkeep +0 -0
  202. package/skills/designer/.gitkeep +0 -0
  203. package/skills/devops-engineer/.gitkeep +0 -0
  204. package/skills/engineering-manager/.gitkeep +0 -0
  205. package/skills/frontend-developer/.gitkeep +0 -0
  206. package/skills/growth-expert/.gitkeep +0 -0
  207. package/skills/operation-manager/.gitkeep +0 -0
  208. package/skills/product-manager/.gitkeep +0 -0
  209. package/skills/qa-engineer/.gitkeep +0 -0
  210. package/skills/security-engineer/.gitkeep +0 -0
  211. package/workflows/00-kortext-setup.md +0 -53
  212. package/workflows/01a-analysis-pipeline.md +0 -117
  213. package/workflows/01b-onboarding-pipeline.md +0 -110
  214. package/workflows/02-planning-pipeline.md +0 -146
  215. package/workflows/02b-spike-workflow.md +0 -120
  216. package/workflows/03-environment-setup.md +0 -99
  217. package/workflows/04-development-cycle.md +0 -203
  218. package/workflows/05-test-cycle.md +0 -123
  219. package/workflows/06-deployment-cycle.md +0 -224
  220. package/workflows/07-rollback-pipeline.md +0 -203
  221. package/workflows/08-hotfix-pipeline.md +0 -196
  222. package/workflows/09-maintenance-cycle.md +0 -133
  223. package/workspace/archive/.gitkeep +0 -0
  224. package/workspace/backups/.gitkeep +0 -0
  225. package/workspace/memory/backlog/.gitkeep +0 -0
  226. package/workspace/memory/backlog/BXX-[bug-name].md +0 -2
  227. package/workspace/memory/backlog/DXX-[debt-name].md +0 -2
  228. package/workspace/memory/backlog/README.md +0 -31
  229. package/workspace/memory/backlog/TXX-[task-name].md +0 -2
  230. package/workspace/memory/backlog/debt-dashboard.md +0 -3
  231. package/workspace/memory/backlog/epic-dashboard.md +0 -10
  232. package/workspace/memory/backlog/version-dashboard.md +0 -7
  233. package/workspace/memory/context/.gitkeep +0 -0
  234. package/workspace/memory/context/README.md +0 -35
  235. package/workspace/memory/context/[agent-name]-active.md +0 -2
  236. package/workspace/memory/decisions.md +0 -17
  237. package/workspace/memory/handover.md +0 -40
  238. package/workspace/memory/learned.md +0 -21
  239. package/workspace/references/access.md +0 -47
  240. package/workspace/references/api-reference.md +0 -59
  241. package/workspace/references/blueprint.md +0 -29
  242. package/workspace/references/content-strategy.md +0 -39
  243. package/workspace/references/db-schema.md +0 -51
  244. package/workspace/references/design-system.md +0 -107
  245. package/workspace/references/dictionary.md +0 -42
  246. package/workspace/references/file-system.md +0 -42
  247. package/workspace/references/growth-strategy.md +0 -46
  248. package/workspace/references/legal-strategy.md +0 -35
  249. package/workspace/references/required-skills.md +0 -11
  250. package/workspace/references/security-rules.md +0 -34
  251. package/workspace/references/tech-stack.md +0 -49
  252. package/workspace/references/test-strategy.md +0 -48
  253. package/workspace/reports/analysis-reports.md +0 -40
  254. package/workspace/reports/content-reports.md +0 -29
  255. package/workspace/reports/delivery-reports.md +0 -26
  256. package/workspace/reports/growth-reports.md +0 -9
  257. package/workspace/reports/legal-reports.md +0 -29
  258. package/workspace/reports/product-requirements.md +0 -28
  259. package/workspace/reports/release-notes.md +0 -20
  260. package/workspace/reports/security-reports.md +0 -27
  261. package/workspace/reports/status-reports.md +0 -48
  262. package/workspace/reports/tech-requirements.md +0 -30
  263. package/workspace/reports/test-reports.md +0 -61
  264. package/workspace/templates/BXX-[bug-name].md +0 -34
  265. package/workspace/templates/DXX-[debt-name].md +0 -35
  266. package/workspace/templates/EXX-[epic-name].md +0 -48
  267. package/workspace/templates/HXX-[hotfix-name].md +0 -73
  268. package/workspace/templates/SXX-[spike-name].md +0 -51
  269. package/workspace/templates/TXX-[task-name].md +0 -34
  270. package/workspace/templates/[agent-name]-active.md +0 -4
  271. package/workspace/templates/[original-name]_[YYYY-MM-DD_HHMMSS].md +0 -5
  272. package/workspace/templates/adr-XXX.md +0 -66
  273. package/workspace/templates/debt-dashboard.md +0 -10
  274. package/workspace/templates/epic-dashboard.md +0 -10
  275. package/workspace/templates/version-dashboard.md +0 -10
@@ -0,0 +1,102 @@
1
+ ---
2
+ status: uninitialized
3
+ author: +devops-engineer
4
+ approver: +prime
5
+ ---
6
+
7
+ # Environment Setup Guide
8
+
9
+ > +devops-engineer's guide. This file is the single point of reference for a new developer (human or agent) who wants to bring the project up from scratch.
10
+
11
+ ## Local Setup
12
+
13
+ - **Prerequisites:** [Node version, package manager, OS notes]
14
+ - **Installation:**
15
+ - `git clone <repo>`
16
+ - `cd <project>`
17
+ - `<package-manager> install`
18
+ - **Start commands:**
19
+ - `<package-manager> run dev` — development server
20
+ - `<package-manager> test` — tests
21
+
22
+ ## Environment Variables
23
+
24
+ The `.env` file is git-ignored. Copy it from `.env.example`.
25
+
26
+ | Key | Required | Default | Description |
27
+ | :--- | :---: | :--- | :--- |
28
+ | `[KEY_NAME]` | Yes/No | `[default]` | [Description] |
29
+
30
+ ## Database
31
+
32
+ - **Provider:** [PostgreSQL / Supabase / Firebase]
33
+ - **Migration:** [Migration tool command]
34
+ - **Seed data:** [Seed command, if any]
35
+ - **Local instance:** [Docker / native]
36
+
37
+ ## External Services
38
+
39
+ - **Auth:** [Provider + connection steps]
40
+ - **Payments:** [Provider + where sandbox keys come from]
41
+ - **Email:** [Provider + test mode note]
42
+ - **Storage/CDN:** [Provider + local stub, if any]
43
+
44
+ ## Common Issues
45
+
46
+ - **Issue:** [Common error message] → **Fix:** [Steps]
47
+ - **Issue:** [Port conflict] → **Fix:** [Change the port in .env]
48
+
49
+ # Access & Service Configuration
50
+
51
+ ## Local Development Tools
52
+
53
+ - [Tool name] — [setup note]
54
+ - [MCP server name] — [setup note]
55
+
56
+ ## Version Control
57
+
58
+ - GitHub Repo: [to be filled by prime]
59
+ - Organization: [to be filled by prime]
60
+ - Branch strategy: [which branches exist, what merges into what, what is protected]
61
+
62
+ ## CI/CD Pipeline
63
+
64
+ - **Cloud provider:** [e.g., AWS, Vercel, Google Cloud]
65
+ - **CI/CD platform:** [e.g., GitHub Actions, GitLab CI]
66
+ - **On every push:** [what runs — lint, typecheck, tests]
67
+ - **On merge to the release branch:** [what deploys, and where]
68
+ - **Rollback:** [how a bad release is undone, and by whom]
69
+
70
+ ## Hosting & Deployment
71
+
72
+ - Production URL: [to be filled by prime]
73
+ - Staging URL: [to be filled by prime]
74
+ - Platform: [Firebase Hosting / Vercel / AWS]
75
+ - **Hosting region:** [where the servers physically run — e.g., `eu-central-1` (Frankfurt). Compliance decides the cross-border transfer regime on this line, so name a region, not a provider]
76
+
77
+ ## Server Access
78
+
79
+ - SSH Root: [to be filled by prime]
80
+ - Domain: [to be filled by prime]
81
+
82
+ ## Database Instances
83
+
84
+ - Provider: [Firebase / Supabase / PostgreSQL]
85
+ - Engine + version: [e.g., PostgreSQL 16 — the schema is designed for this]
86
+ - **Region:** [where the data physically sits]
87
+ - Production Instance: [to be filled by prime]
88
+ - Staging Instance: [to be filled by prime]
89
+
90
+ ## Other Services
91
+
92
+ - Analytics: [Google Analytics / Mixpanel]
93
+ - CDN: [Cloudflare]
94
+ - Mail: [SendGrid / Resend]
95
+
96
+ ## Change Requests
97
+
98
+ - [What THIS document asks of another, one line per request: - `TARGET.md` — what must change there and why. It travels to that document when this one is approved. Lines that start with `from` are the other direction — what others asked of this document; the human decides them, kortext ticks them, leave them exactly as they are. Leave this section empty when nothing upstream needs to change]
99
+
100
+ ## Questions for Prime
101
+
102
+ - [Anything prime must answer before this document can be relied on — leave this section empty when there is nothing]
@@ -0,0 +1,44 @@
1
+ ---
2
+ status: uninitialized
3
+ author: +growth-expert
4
+ approver: +prime
5
+ ---
6
+
7
+ # Growth & Analytic Strategy
8
+
9
+ ## Analytics Goals & Metrics
10
+
11
+ - **North Star Metric:** [The core success measure, e.g., Active Transacting Users]
12
+ - **Primary Targets:** [e.g., 10% conversion rate, 5K MAU]
13
+
14
+ ## Tracking Setup & Tools
15
+
16
+ - **Analytics Tools:** [e.g., Google Analytics 4, Mixpanel, Amplitude]
17
+ - **Tag Management:** [e.g., Google Tag Manager (GTM)]
18
+ - **Error Tracking:** [e.g., Sentry, Datadog]
19
+
20
+ ## Key Events to Track (Event Taxonomy)
21
+
22
+ All events must follow a naming convention like the examples below (e.g., `Object_Action`).
23
+
24
+ - `user_signed_up`: When a user successfully registers (**Parameters:** method, tier)
25
+ - `purchase_completed`: When a user completes a payment (**Parameters:** amount, currency)
26
+ - `[event_name]`: [Trigger condition and parameters]
27
+
28
+ ## SEO & ASO Strategy
29
+
30
+ - **On-Page SEO:** [H1 tags, meta description rules, schema.org structure]
31
+ - **URL Structure:** [e.g., /category/product-name (kebab-case, SEO friendly)]
32
+ - **Sitemap & Robots.txt:** [Generation and indexing policy]
33
+
34
+ ## User Acquisition & Funnel
35
+
36
+ - [A/B test plans, funnel stages (Acquisition, Activation, Retention...)]
37
+
38
+ ## Change Requests
39
+
40
+ - [What THIS document asks of another, one line per request: - `TARGET.md` — what must change there and why. It travels to that document when this one is approved. Lines that start with `from` are the other direction — what others asked of this document; the human decides them, kortext ticks them, leave them exactly as they are. Leave this section empty when nothing upstream needs to change]
41
+
42
+ ## Questions for Prime
43
+
44
+ - [Anything prime must answer before this document can be relied on — leave this section empty when there is nothing]
@@ -0,0 +1,48 @@
1
+ ---
2
+ status: uninitialized
3
+ author: +compliance-expert
4
+ approver: +prime
5
+ ---
6
+
7
+ # Legal & Compliance Strategy
8
+
9
+ ## Compliance Scope
10
+
11
+ - [Compliance targets based on the project's scope (KVKK, GDPR, CCPA, etc.)]
12
+
13
+ ## Identified Risks
14
+
15
+ - [Risk description — e.g., user location data being kept exposed]
16
+
17
+ ## Required Approvals & Consents
18
+
19
+ - [e.g., Privacy Policy consent at sign-up (required)]
20
+ - [How will cookie consent (Cookie Policy) be handled?]
21
+
22
+ ## Data Lifecycle
23
+
24
+ > One row per personal-data field `DATABASE.md` marks. Retention and erasure are duties,
25
+ > not preferences — name the period and the mechanism, not an intention.
26
+
27
+ | Data | Lawful basis | Retention | Erasure — how and on whose request | Shared with |
28
+ | --- | --- | --- | --- | --- |
29
+ | `[table.column]` | [consent / contract / legitimate interest] | [e.g., 2 years after last login] | [the mechanism that actually deletes it] | [the processor from `STACK.md`, or none] |
30
+
31
+ ## Required Notices
32
+
33
+ > The user-facing text this product owes its users. `CONTENT.md` writes each one in full —
34
+ > name what must be said and where, not the wording.
35
+
36
+ - **[Notice]** — [what it must disclose, on which surface, at which moment]
37
+
38
+ ## Technical Integration Requests
39
+
40
+ - [e.g., The `password` and `national_id` columns in the database must be hashed.]
41
+
42
+ ## Change Requests
43
+
44
+ - [What THIS document asks of another, one line per request: - `TARGET.md` — what must change there and why. It travels to that document when this one is approved. Lines that start with `from` are the other direction — what others asked of this document; the human decides them, kortext ticks them, leave them exactly as they are. Leave this section empty when nothing upstream needs to change]
45
+
46
+ ## Questions for Prime
47
+
48
+ - [Anything prime must answer before this document can be relied on — leave this section empty when there is nothing]
@@ -0,0 +1,43 @@
1
+ ---
2
+ status: uninitialized
3
+ author: +product-manager
4
+ approver: +prime
5
+ ---
6
+
7
+ # Product
8
+
9
+
10
+ ## Scope
11
+
12
+ - **In scope:** [What this product does — one line per capability]
13
+ - **Out of scope:** [What it deliberately does not do, and why]
14
+
15
+ ## User Types
16
+
17
+ - **[User type]:** [what they can do, what they must never see]
18
+
19
+ ## Personal Data per Flow
20
+
21
+ - **[Flow name]:** [which personal data the flow needs and why it needs it — write `none` where a flow needs no personal data. The compliance analysis is run against this list]
22
+
23
+ ## User Stories (Tasks) & Acceptance Criteria
24
+
25
+ ### [task-id]: [task-name]
26
+
27
+ As a [User Type], I want to [Do Something], so that [I reach This Goal].
28
+
29
+ **Acceptance Criteria:**
30
+
31
+ > What must be observably true for this story to be done. Behaviour only — code
32
+ > review, QA and security are release gates, and `TEST.md` owns them.
33
+
34
+ - [ ] [When the user presses the button, X must happen]
35
+ - [ ] [On error, this message must be shown]
36
+
37
+ ## Change Requests
38
+
39
+ - [What THIS document asks of another, one line per request: - `TARGET.md` — what must change there and why. It travels to that document when this one is approved. Lines that start with `from` are the other direction — what others asked of this document; the human decides them, kortext ticks them, leave them exactly as they are. Leave this section empty when nothing upstream needs to change]
40
+
41
+ ## Questions for Prime
42
+
43
+ - [Anything prime must answer before this document can be relied on — leave this section empty when there is nothing]
@@ -0,0 +1,65 @@
1
+ ---
2
+ status: uninitialized
3
+ author: +security-engineer
4
+ approver: +architect
5
+ ---
6
+
7
+ # Security Rules
8
+
9
+ ## Security Overview
10
+
11
+ - [Summary and findings of the project's tech stack report]
12
+ - [Areas that need attention]
13
+
14
+ ## Auth & Authorization Model
15
+
16
+ > The schema and the endpoints are built on this section. Name roles and permissions
17
+ > concretely — `DATABASE.md` turns them into tables and `API.md` applies them per endpoint.
18
+
19
+ - **Authentication:** [mechanism — e.g., email + password with TOTP, OAuth via provider, magic link]
20
+ - **Session / token:** [what is issued, where it is stored, how long it lives, how it is revoked]
21
+ - **Roles:**
22
+
23
+ | Role | Can do | Must never reach |
24
+ | --- | --- | --- |
25
+ | `[role]` | [what this role is allowed to do] | [what it must never see or change] |
26
+
27
+ - **Authorization rule:** [how a permission is decided at request time — ownership, role, tenant, or a combination]
28
+
29
+ ## Secret Management
30
+
31
+ - **Where secrets live:** [e.g., the platform's secret store; never in the repo]
32
+ - **Never committed:** [the `.gitignore` entries that enforce it]
33
+ - **Rotation:** [who rotates what, and when]
34
+
35
+ ## Data Storage & Logging
36
+
37
+ - **At rest / in transit:** [what is encrypted and with what]
38
+ - **Sensitive fields:** [what needs hashing, masking or tokenizing rather than plain storage]
39
+ - **Never logged:** [the values that must never reach a log line or an error report]
40
+
41
+ ## Security Rules
42
+
43
+ - [Security rules to follow across the project]
44
+
45
+ ## Vulnerability Findings
46
+
47
+ > On an existing project, what the code already gets wrong. On a new project this section
48
+ > is written after the first implementation — leave it empty until then.
49
+
50
+ | Risk Level | Finding | Description | Recommendation |
51
+ |---|---|---|---|
52
+ | [High/Med] | [e.g., XSS vulnerability] | [Which file, how it occurs] | [Suggested fix] |
53
+ | [Low] | [e.g., Outdated package] | [Outdated library] | [Update npm package] |
54
+
55
+ ## Action Plan
56
+
57
+ - [What must be done during the analysis phase based on the findings]
58
+
59
+ ## Change Requests
60
+
61
+ - [What THIS document asks of another, one line per request: - `TARGET.md` — what must change there and why. It travels to that document when this one is approved. Lines that start with `from` are the other direction — what others asked of this document; the human decides them, kortext ticks them, leave them exactly as they are. Leave this section empty when nothing upstream needs to change]
62
+
63
+ ## Questions for Prime
64
+
65
+ - [Anything prime must answer before this document can be relied on — leave this section empty when there is nothing]
@@ -0,0 +1,57 @@
1
+ ---
2
+ status: uninitialized
3
+ author: +architect
4
+ approver: +prime
5
+ ---
6
+
7
+ # Tech Stack & Infrastructure
8
+
9
+ ## Core Technologies
10
+
11
+ - **Frontend:** [Language, framework, version — e.g., TypeScript, React 18, Next.js 14, Kotlin, SwiftUI]
12
+ - **Backend:** [Language, framework, version — e.g., Node.js 20, NestJS]
13
+ - **Database:** [Database, version — e.g., PostgreSQL 16, Redis]
14
+
15
+ ## Tooling & Prerequisites
16
+
17
+ - **Package Manager:** [e.g., npm, yarn, pnpm]
18
+ - **Environment:** [e.g., Docker Desktop, Node v20+]
19
+ - **Containerization:** [e.g., Docker — the local runtime, not the deployment target]
20
+ - **Testing:** [e.g., Jest, Cypress, Playwright]
21
+ - **Tools:** [e.g., Postman, Antigravity, etc.]
22
+ - **MCP's:** [e.g., Vercel MCP, Firebase MCP]
23
+
24
+ ## Prerequisites from prime
25
+
26
+ > Everything the stack needs that only a person can supply. The planning flow turns each
27
+ > row into an `assignee: prime` task and blocks whatever depends on it, so a missing row
28
+ > becomes work nobody scheduled.
29
+
30
+ | Need | Why the stack needs it | Blocks |
31
+ | --- | --- | --- |
32
+ | `[e.g., an Apple Developer account]` | [what cannot be built without it] | [what waits on it] |
33
+ | `[e.g., a physical test device]` | [what cannot be verified without it] | [what waits on it] |
34
+
35
+ ## Third-Party Services & Integrations
36
+
37
+ > Every row here is a processor `LEGAL.md` will rule on. Name the region it runs in and
38
+ > say plainly whether it sees user data — a service with no region named cannot be judged.
39
+
40
+ | Service | Purpose | Region | Sees user data |
41
+ | --- | --- | --- | --- |
42
+ | `[Auth0]` | Auth | `[eu]` | [yes — email, name] |
43
+ | `[Stripe]` | Payments | `[us]` | [yes — name, billing address] |
44
+ | `[Cloudflare]` | CDN | `[global]` | [no] |
45
+
46
+ ## Security & Policies
47
+
48
+ - [How sensitive data is stored, custom gitignore rules, etc.]
49
+ - For security rules, see `.kortext/SECURITY.md`.
50
+
51
+ ## Change Requests
52
+
53
+ - [What THIS document asks of another, one line per request: - `TARGET.md` — what must change there and why. It travels to that document when this one is approved. Lines that start with `from` are the other direction — what others asked of this document; the human decides them, kortext ticks them, leave them exactly as they are. Leave this section empty when nothing upstream needs to change]
54
+
55
+ ## Questions for Prime
56
+
57
+ - [Anything prime must answer before this document can be relied on — leave this section empty when there is nothing]
@@ -0,0 +1,73 @@
1
+ ---
2
+ status: uninitialized
3
+ author: +architect
4
+ approver: +prime
5
+ ---
6
+
7
+ # File System & Architecture
8
+
9
+ ## High-Level Folder Structure
10
+
11
+ ```
12
+ [Project Root]/
13
+ ├── src/
14
+ │ ├── components/ → [Description]
15
+ │ ├── pages/ → [Description]
16
+ │ ├── utils/ → [Description]
17
+ │ └── api/ → [Description]
18
+ ├── public/ → [Description]
19
+ └── [Config Files] → (package.json, tsconfig.json, etc.)
20
+ ```
21
+
22
+ ## Directory Rules
23
+
24
+ - **`/components/`:** Holds reusable UI elements only.
25
+ - **`/pages/` or `/app/`:** Holds page/route management only.
26
+ - **`/utils/`:** Pure helper functions live here (no state).
27
+
28
+ ## Path Aliases
29
+
30
+ - [e.g., `@components/*` -> `src/components/*`]
31
+ - [e.g., `@utils/*` -> `src/utils/*`]
32
+
33
+ ## Feature-Based vs Type-Based Structure
34
+
35
+ - [Which structure the project follows (domain-driven, feature-sliced, etc.) and a short explanation]
36
+
37
+ # Coding Dictionary & Standards
38
+
39
+ ## Naming Conventions
40
+
41
+ - **Variables & Functions:** [`camelCase, snake_case`]
42
+ - **Classes & Interfaces:** [`PascalCase`]
43
+ - **Constants:** [`UPPER_SNAKE_CASE`]
44
+ - **Files & Directories:** [`kebab-case`]
45
+ - **Database Tables:** [`snake_case, plural/singular`]
46
+
47
+ ## Code Quality & Formatting
48
+
49
+ - **Linter & Formatter:** [e.g., ESLint + Prettier settings]
50
+ - **Indent:** [e.g., 2 spaces]
51
+ - **Quote Mark:** [e.g., Single quotes ('')]
52
+
53
+ ## Project Terminology (Domain Language)
54
+
55
+ - **[Term]:** [Definition / what it means in our app]
56
+ - *Example:* **Client:** The customer using the app (we do not say "User").
57
+ - *Example:* **Cart:** The shopping cart (we do not say "Basket").
58
+
59
+ ## Commenting & Documentation Rules
60
+
61
+ - [e.g., Use JSDoc; comments explain "why" the code does something, not "what" it does]
62
+
63
+ ## Error Handling Pattern
64
+
65
+ - [General try/catch or error response conventions]
66
+
67
+ ## Change Requests
68
+
69
+ - [What THIS document asks of another, one line per request: - `TARGET.md` — what must change there and why. It travels to that document when this one is approved. Lines that start with `from` are the other direction — what others asked of this document; the human decides them, kortext ticks them, leave them exactly as they are. Leave this section empty when nothing upstream needs to change]
70
+
71
+ ## Questions for Prime
72
+
73
+ - [Anything prime must answer before this document can be relied on — leave this section empty when there is nothing]
@@ -0,0 +1,62 @@
1
+ ---
2
+ status: uninitialized
3
+ author: +qa-engineer
4
+ approver: +architect
5
+ ---
6
+
7
+ # Testing Strategy
8
+
9
+ ## Testing Scope & Approach
10
+
11
+ - **Scope:** [What will be tested, and what will (for now) not be tested?]
12
+ - **Main Approach:** [e.g., Will TDD be applied? Will shift-left testing be practiced?]
13
+
14
+ ## Tools & Frameworks
15
+
16
+ - **Unit Testing:** [e.g., Jest, Vitest]
17
+ - **Integration/E2E Testing:** [e.g., Cypress, Playwright]
18
+ - **Load/Performance Testing:** [e.g., k6, JMeter]
19
+
20
+ ## Test Layers
21
+
22
+ ### Unit Tests
23
+
24
+ - **Responsibility:** Developers (+backend-developer / +frontend-developer)
25
+ - **Rule:** Every function is tested in isolation (coverage target: `80%`)
26
+
27
+ ### Integration Tests
28
+
29
+ - **Responsibility:** Developers & +qa-engineer
30
+ - **Rule:** API endpoints and database communication are tested.
31
+
32
+ ### End-to-End (E2E) & Smoke Tests
33
+
34
+ - **Responsibility:** +qa-engineer
35
+ - **Rule:** The user's main flows (login, add to cart, checkout) must pass before anything ships to production.
36
+
37
+ ## CI/CD Integration (Pipeline Rules)
38
+
39
+ - Outcome: `[Merge is blocked when tests fail]`
40
+ - Outcome: `[PR is rejected when coverage drops below 80%]`
41
+
42
+ ## Compliance & Risk Gates
43
+
44
+ > A gate here proves an obligation `LEGAL.md` states or a risk `ENGINEERING.md` registers.
45
+ > Each row names what fails the release, not what someone should remember to check.
46
+
47
+ | Obligation / risk | Source | The gate that proves it |
48
+ | --- | --- | --- |
49
+ | [e.g., consent is captured before any tracking fires] | `LEGAL.md` | [the test that fails when a tag loads without consent] |
50
+ | [e.g., the job queue survives a restart] | `ENGINEERING.md` | [the test that proves it] |
51
+
52
+ ## Acceptance Criteria (Definition of Done)
53
+
54
+ - [What test criteria must a task meet before the QA persona can approve it?]
55
+
56
+ ## Change Requests
57
+
58
+ - [What THIS document asks of another, one line per request: - `TARGET.md` — what must change there and why. It travels to that document when this one is approved. Lines that start with `from` are the other direction — what others asked of this document; the human decides them, kortext ticks them, leave them exactly as they are. Leave this section empty when nothing upstream needs to change]
59
+
60
+ ## Questions for Prime
61
+
62
+ - [Anything prime must answer before this document can be relied on — leave this section empty when there is nothing]
@@ -0,0 +1 @@
1
+ import{m as e,t}from"./mermaid-parser.core-BDC4bG-O.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r}from"./src-7TsfZXRO.js";import"./chunk-DU6HZSFF-Cq2BVv26.js";import{n as i,r as a,t as o}from"./chunk-SVP7TREG-r1chwRmg.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";import"./mermaid.core-DZY3WwzX.js";var c=e().RailroadAbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=n(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=n(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=n(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=n(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=n(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=n(e=>{s(e,o),e.title&&o.setTitle(e.title),e.rules.map(e=>o.addRule(m(e)))},`populateDb`),g={parser:{parse:n(e=>{o.clear(),r.debug(`[ABNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new t(n);let i=n.value;r.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
@@ -0,0 +1 @@
1
+ import{n as e,t}from"./path-fybaL0A-.js";import{a as n,c as r,d as i,f as a,i as o,l as s,m as c,n as l,o as u,p as d,r as f,u as p}from"./dist-EcW76Zvr.js";function m(e){return e.innerRadius}function h(e){return e.outerRadius}function g(e){return e.startAngle}function _(e){return e.endAngle}function v(e){return e&&e.padAngle}function y(e,t,n,r,i,a,o,s){var c=n-e,l=r-t,u=o-i,d=s-a,f=d*c-u*l;if(!(f*f<1e-12))return f=(u*(t-a)-d*(e-i))/f,[e+f*c,t+f*l]}function b(e,t,n,r,i,a,o){var c=e-n,l=t-r,u=(o?a:-a)/d(c*c+l*l),f=u*l,p=-u*c,m=e+f,h=t+p,g=n+f,_=r+p,v=(m+g)/2,y=(h+_)/2,b=g-m,x=_-h,S=b*b+x*x,C=i-a,w=m*_-g*h,T=(x<0?-1:1)*d(s(0,C*C*S-w*w)),E=(w*x-b*T)/S,D=(-w*b-x*T)/S,O=(w*x+b*T)/S,k=(-w*b+x*T)/S,A=E-v,j=D-y,M=O-v,N=k-y;return A*A+j*j>M*M+N*N&&(E=O,D=k),{cx:E,cy:D,x01:-f,y01:-p,x11:E*(i/C-1),y11:D*(i/C-1)}}function x(){var s=m,x=h,S=e(0),C=null,w=g,T=_,E=v,D=null,O=t(k);function k(){var e,t,m=+s.apply(this,arguments),h=+x.apply(this,arguments),g=w.apply(this,arguments)-r,_=T.apply(this,arguments)-r,v=l(_-g),k=_>g;if(D||=e=O(),h<m&&(t=h,h=m,m=t),!(h>1e-12))D.moveTo(0,0);else if(v>c-1e-12)D.moveTo(h*u(g),h*a(g)),D.arc(0,0,h,g,_,!k),m>1e-12&&(D.moveTo(m*u(_),m*a(_)),D.arc(0,0,m,_,g,k));else{var A=g,j=_,M=g,N=_,P=v,F=v,I=E.apply(this,arguments)/2,L=I>1e-12&&(C?+C.apply(this,arguments):d(m*m+h*h)),R=p(l(h-m)/2,+S.apply(this,arguments)),z=R,B=R,V,H;if(L>1e-12){var U=o(L/m*a(I)),W=o(L/h*a(I));(P-=U*2)>1e-12?(U*=k?1:-1,M+=U,N-=U):(P=0,M=N=(g+_)/2),(F-=W*2)>1e-12?(W*=k?1:-1,A+=W,j-=W):(F=0,A=j=(g+_)/2)}var G=h*u(A),K=h*a(A),q=m*u(N),J=m*a(N);if(R>1e-12){var Y=h*u(j),X=h*a(j),Z=m*u(M),Q=m*a(M),$;if(v<i){if($=y(G,K,Z,Q,Y,X,q,J)){var ee=G-$[0],te=K-$[1],ne=Y-$[0],re=X-$[1],ie=1/a(f((ee*ne+te*re)/(d(ee*ee+te*te)*d(ne*ne+re*re)))/2),ae=d($[0]*$[0]+$[1]*$[1]);z=p(R,(m-ae)/(ie-1)),B=p(R,(h-ae)/(ie+1))}else z=B=0}}F>1e-12?B>1e-12?(V=b(Z,Q,G,K,h,B,k),H=b(Y,X,q,J,h,B,k),D.moveTo(V.cx+V.x01,V.cy+V.y01),B<R?D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,h,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),!k),D.arc(H.cx,H.cy,B,n(H.y11,H.x11),n(H.y01,H.x01),!k))):(D.moveTo(G,K),D.arc(0,0,h,A,j,!k)):D.moveTo(G,K),!(m>1e-12)||!(P>1e-12)?D.lineTo(q,J):z>1e-12?(V=b(q,J,Y,X,m,-z,k),H=b(G,K,Z,Q,m,-z,k),D.lineTo(V.cx+V.x01,V.cy+V.y01),z<R?D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,m,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),k),D.arc(H.cx,H.cy,z,n(H.y11,H.x11),n(H.y01,H.x01),!k))):D.arc(0,0,m,N,M,k)}if(D.closePath(),e)return D=null,e+``||null}return k.centroid=function(){var e=(+s.apply(this,arguments)+ +x.apply(this,arguments))/2,t=(+w.apply(this,arguments)+ +T.apply(this,arguments))/2-i/2;return[u(t)*e,a(t)*e]},k.innerRadius=function(t){return arguments.length?(s=typeof t==`function`?t:e(+t),k):s},k.outerRadius=function(t){return arguments.length?(x=typeof t==`function`?t:e(+t),k):x},k.cornerRadius=function(t){return arguments.length?(S=typeof t==`function`?t:e(+t),k):S},k.padRadius=function(t){return arguments.length?(C=t==null?null:typeof t==`function`?t:e(+t),k):C},k.startAngle=function(t){return arguments.length?(w=typeof t==`function`?t:e(+t),k):w},k.endAngle=function(t){return arguments.length?(T=typeof t==`function`?t:e(+t),k):T},k.padAngle=function(t){return arguments.length?(E=typeof t==`function`?t:e(+t),k):E},k.context=function(e){return arguments.length?(D=e??null,k):D},k}export{x as t};
@@ -0,0 +1 @@
1
+ import"./chunk-FOHPRMQF-DHwB1DNv.js";import{M as e}from"./mermaid-parser.core-BDC4bG-O.js";export{e as createArchitectureServices};