mxrb 0.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 (237) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.de-DE.md +108 -0
  4. data/README.md +172 -0
  5. data/README.pt-BR.md +109 -0
  6. data/bin/mxrb +1613 -0
  7. data/docs/README.md +10 -0
  8. data/docs/de-DE/README.md +24 -0
  9. data/docs/de-DE/architectural-patterns.md +26 -0
  10. data/docs/de-DE/architectural-standard.md +48 -0
  11. data/docs/de-DE/architecture.md +76 -0
  12. data/docs/de-DE/compiler.md +162 -0
  13. data/docs/de-DE/conventions.md +19 -0
  14. data/docs/de-DE/design-system.md +52 -0
  15. data/docs/de-DE/entity-dsl.md +53 -0
  16. data/docs/de-DE/native-runtime-quality-report.md +74 -0
  17. data/docs/de-DE/oql-sql.md +211 -0
  18. data/docs/de-DE/platform-api-integration.md +36 -0
  19. data/docs/de-DE/platform-operations.md +243 -0
  20. data/docs/de-DE/project-structure.md +32 -0
  21. data/docs/de-DE/ruby-first-roadmap.md +116 -0
  22. data/docs/de-DE/scaffolds.md +59 -0
  23. data/docs/de-DE/semantic-refactoring.md +56 -0
  24. data/docs/de-DE/team-server.md +33 -0
  25. data/docs/de-DE/validation-matrix.md +64 -0
  26. data/docs/de-DE/vetclinic-acceptance.md +24 -0
  27. data/docs/de-DE/writing.md +138 -0
  28. data/docs/en-US/README.md +24 -0
  29. data/docs/en-US/architectural-patterns.md +151 -0
  30. data/docs/en-US/architectural-standard.md +89 -0
  31. data/docs/en-US/architecture.md +170 -0
  32. data/docs/en-US/compiler.md +157 -0
  33. data/docs/en-US/conventions.md +82 -0
  34. data/docs/en-US/design-system.md +163 -0
  35. data/docs/en-US/entity-dsl.md +53 -0
  36. data/docs/en-US/native-runtime-quality-report.md +73 -0
  37. data/docs/en-US/oql-sql.md +201 -0
  38. data/docs/en-US/platform-api-integration.md +36 -0
  39. data/docs/en-US/platform-operations.md +244 -0
  40. data/docs/en-US/project-structure.md +49 -0
  41. data/docs/en-US/ruby-first-roadmap.md +186 -0
  42. data/docs/en-US/scaffolds.md +57 -0
  43. data/docs/en-US/semantic-refactoring.md +198 -0
  44. data/docs/en-US/team-server.md +32 -0
  45. data/docs/en-US/validation-matrix.md +257 -0
  46. data/docs/en-US/vetclinic-acceptance.md +23 -0
  47. data/docs/en-US/writing.md +655 -0
  48. data/docs/pt-BR/README.md +24 -0
  49. data/docs/pt-BR/architectural-patterns.md +25 -0
  50. data/docs/pt-BR/architectural-standard.md +533 -0
  51. data/docs/pt-BR/architecture.md +300 -0
  52. data/docs/pt-BR/compiler.md +162 -0
  53. data/docs/pt-BR/conventions.md +19 -0
  54. data/docs/pt-BR/design-system.md +65 -0
  55. data/docs/pt-BR/entity-dsl.md +116 -0
  56. data/docs/pt-BR/native-runtime-quality-report.md +73 -0
  57. data/docs/pt-BR/oql-sql.md +208 -0
  58. data/docs/pt-BR/platform-api-integration.md +36 -0
  59. data/docs/pt-BR/platform-operations.md +260 -0
  60. data/docs/pt-BR/project-structure.md +32 -0
  61. data/docs/pt-BR/ruby-first-roadmap.md +239 -0
  62. data/docs/pt-BR/scaffolds.md +104 -0
  63. data/docs/pt-BR/semantic-refactoring.md +55 -0
  64. data/docs/pt-BR/team-server.md +59 -0
  65. data/docs/pt-BR/validation-matrix.md +86 -0
  66. data/docs/pt-BR/vetclinic-acceptance.md +50 -0
  67. data/docs/pt-BR/writing.md +177 -0
  68. data/examples/sudoku_evaluation.rb +14 -0
  69. data/examples/sudoku_functional_test.rb +28 -0
  70. data/lib/mxrb/architecture/graph.rb +124 -0
  71. data/lib/mxrb/architecture/validator.rb +98 -0
  72. data/lib/mxrb/benchmark.rb +33 -0
  73. data/lib/mxrb/compare.rb +390 -0
  74. data/lib/mxrb/compiler/adapter.rb +96 -0
  75. data/lib/mxrb/compiler/artifact_document_compiler.rb +102 -0
  76. data/lib/mxrb/compiler/artifact_materializer.rb +53 -0
  77. data/lib/mxrb/compiler/client_model_materializer.rb +42 -0
  78. data/lib/mxrb/compiler/code_action_document_compiler.rb +64 -0
  79. data/lib/mxrb/compiler/code_action_materializer.rb +35 -0
  80. data/lib/mxrb/compiler/code_action_type_compiler.rb +32 -0
  81. data/lib/mxrb/compiler/combo_box_bundle_compiler.rb +314 -0
  82. data/lib/mxrb/compiler/compatibility_analyzer.rb +169 -0
  83. data/lib/mxrb/compiler/constants_materializer.rb +111 -0
  84. data/lib/mxrb/compiler/data_grid_bundle_compiler.rb +290 -0
  85. data/lib/mxrb/compiler/database_connector_action_compiler.rb +280 -0
  86. data/lib/mxrb/compiler/deployment_asset_copier.rb +60 -0
  87. data/lib/mxrb/compiler/deployment_bootstrapper.rb +208 -0
  88. data/lib/mxrb/compiler/deployment_materializer.rb +43 -0
  89. data/lib/mxrb/compiler/deployment_metadata.rb +64 -0
  90. data/lib/mxrb/compiler/domain_document_compiler.rb +153 -0
  91. data/lib/mxrb/compiler/domain_model_materializer.rb +35 -0
  92. data/lib/mxrb/compiler/domain_security_compiler.rb +82 -0
  93. data/lib/mxrb/compiler/gallery_bundle_compiler.rb +190 -0
  94. data/lib/mxrb/compiler/generic_widget_bundle_compiler.rb +281 -0
  95. data/lib/mxrb/compiler/image_bundle_compiler.rb +216 -0
  96. data/lib/mxrb/compiler/java_proxy_generator.rb +509 -0
  97. data/lib/mxrb/compiler/legacy_data_grid_compiler.rb +267 -0
  98. data/lib/mxrb/compiler/legacy_page_builder.rb +287 -0
  99. data/lib/mxrb/compiler/mda.rb +99 -0
  100. data/lib/mxrb/compiler/microflow_document_compiler.rb +85 -0
  101. data/lib/mxrb/compiler/microflow_materializer.rb +48 -0
  102. data/lib/mxrb/compiler/microflow_node_compiler.rb +250 -0
  103. data/lib/mxrb/compiler/model_package.rb +116 -0
  104. data/lib/mxrb/compiler/model_values.rb +67 -0
  105. data/lib/mxrb/compiler/nanoflow_program_compiler.rb +483 -0
  106. data/lib/mxrb/compiler/navigation_document_compiler.rb +93 -0
  107. data/lib/mxrb/compiler/packager.rb +100 -0
  108. data/lib/mxrb/compiler/page_bundle_builder.rb +56 -0
  109. data/lib/mxrb/compiler/page_bundle_compiler.rb +2004 -0
  110. data/lib/mxrb/compiler/page_document_compiler.rb +77 -0
  111. data/lib/mxrb/compiler/portable_packager.rb +356 -0
  112. data/lib/mxrb/compiler/project_jar_archive.rb +84 -0
  113. data/lib/mxrb/compiler/project_jar_builder.rb +121 -0
  114. data/lib/mxrb/compiler/project_materializer.rb +139 -0
  115. data/lib/mxrb/compiler/project_model_orderer.rb +52 -0
  116. data/lib/mxrb/compiler/runtime_data_types.rb +31 -0
  117. data/lib/mxrb/compiler/runtime_model_schema.rb +90 -0
  118. data/lib/mxrb/compiler/schemas/runtime-10.24.0.73019.json +1052 -0
  119. data/lib/mxrb/compiler/schemas/runtime-11.json +1215 -0
  120. data/lib/mxrb/compiler/schemas/runtime-6.10.8.json +1148 -0
  121. data/lib/mxrb/compiler/schemas/runtime-7.17.0.json +1144 -0
  122. data/lib/mxrb/compiler/schemas/runtime-7.5.0.json +1215 -0
  123. data/lib/mxrb/compiler/schemas/runtime-9.6.1.29396.json +868 -0
  124. data/lib/mxrb/compiler/schemas/system-model-10.24.0.73019.b64 +1135 -0
  125. data/lib/mxrb/compiler/schemas/system-model-11.12.1.b64 +815 -0
  126. data/lib/mxrb/compiler/schemas/system-model-6.10.8.b64 +497 -0
  127. data/lib/mxrb/compiler/schemas/system-model-7.17.0.b64 +519 -0
  128. data/lib/mxrb/compiler/schemas/system-model-7.5.0.b64 +504 -0
  129. data/lib/mxrb/compiler/schemas/system-model-9.6.1.29396.b64 +816 -0
  130. data/lib/mxrb/compiler/security_materializer.rb +104 -0
  131. data/lib/mxrb/compiler/settings_document_compiler.rb +45 -0
  132. data/lib/mxrb/compiler/settings_materializer.rb +25 -0
  133. data/lib/mxrb/compiler/source_model.rb +128 -0
  134. data/lib/mxrb/compiler/system_model_seed.rb +88 -0
  135. data/lib/mxrb/compiler/system_queue_materializer.rb +54 -0
  136. data/lib/mxrb/compiler/system_text_materializer.rb +49 -0
  137. data/lib/mxrb/compiler/translation_materializer.rb +95 -0
  138. data/lib/mxrb/compiler/web_bundle_builder.rb +155 -0
  139. data/lib/mxrb/compiler/web_list_data_source.rb +139 -0
  140. data/lib/mxrb/compiler/web_operation_compiler.rb +614 -0
  141. data/lib/mxrb/compiler/web_shell_materializer.rb +194 -0
  142. data/lib/mxrb/compiler/widget_package_extractor.rb +63 -0
  143. data/lib/mxrb/doctor.rb +116 -0
  144. data/lib/mxrb/dsl/builder.rb +1636 -0
  145. data/lib/mxrb/errors.rb +18 -0
  146. data/lib/mxrb/evaluation.rb +131 -0
  147. data/lib/mxrb/exporter.rb +1716 -0
  148. data/lib/mxrb/frontend/migrator.rb +775 -0
  149. data/lib/mxrb/functional.rb +307 -0
  150. data/lib/mxrb/github/annotator.rb +161 -0
  151. data/lib/mxrb/initializer.rb +257 -0
  152. data/lib/mxrb/integrity/validator.rb +136 -0
  153. data/lib/mxrb/io/bson_codec.rb +145 -0
  154. data/lib/mxrb/io/mpr_file.rb +558 -0
  155. data/lib/mxrb/io/mxunit_codec.rb +42 -0
  156. data/lib/mxrb/marketplace.rb +380 -0
  157. data/lib/mxrb/model/association.rb +98 -0
  158. data/lib/mxrb/model/attribute.rb +100 -0
  159. data/lib/mxrb/model/connector.rb +17 -0
  160. data/lib/mxrb/model/design_materializer.rb +133 -0
  161. data/lib/mxrb/model/design_migration.rb +126 -0
  162. data/lib/mxrb/model/design_system.rb +111 -0
  163. data/lib/mxrb/model/domain_model.rb +51 -0
  164. data/lib/mxrb/model/entity.rb +180 -0
  165. data/lib/mxrb/model/menu.rb +38 -0
  166. data/lib/mxrb/model/microflow.rb +100 -0
  167. data/lib/mxrb/model/module.rb +142 -0
  168. data/lib/mxrb/model/navigation.rb +127 -0
  169. data/lib/mxrb/model/page.rb +410 -0
  170. data/lib/mxrb/model/project.rb +187 -0
  171. data/lib/mxrb/model/unit.rb +48 -0
  172. data/lib/mxrb/module_initializer.rb +75 -0
  173. data/lib/mxrb/official_marketplace/content_api.rb +292 -0
  174. data/lib/mxrb/official_marketplace/dependency_resolver.rb +329 -0
  175. data/lib/mxrb/official_marketplace/lifecycle.rb +367 -0
  176. data/lib/mxrb/official_marketplace/module_package_importer.rb +318 -0
  177. data/lib/mxrb/official_marketplace/widget_package_installer.rb +414 -0
  178. data/lib/mxrb/official_marketplace.rb +720 -0
  179. data/lib/mxrb/oql/analyzer.rb +155 -0
  180. data/lib/mxrb/oql/index_advisor.rb +85 -0
  181. data/lib/mxrb/oql/plan_analyzer.rb +185 -0
  182. data/lib/mxrb/oql/server.rb +132 -0
  183. data/lib/mxrb/oql/sql_server_plan_analyzer.rb +190 -0
  184. data/lib/mxrb/oql/sql_server_workload_analyzer.rb +80 -0
  185. data/lib/mxrb/oql/workload_analyzer.rb +175 -0
  186. data/lib/mxrb/oql/workload_baseline.rb +60 -0
  187. data/lib/mxrb/oql.rb +424 -0
  188. data/lib/mxrb/project_lifecycle.rb +76 -0
  189. data/lib/mxrb/protocols/plan.rb +86 -0
  190. data/lib/mxrb/protocols.rb +123 -0
  191. data/lib/mxrb/runtime/database_workspace.rb +677 -0
  192. data/lib/mxrb/runtime/docker_executor.rb +41 -0
  193. data/lib/mxrb/runtime/docker_workspace.rb +29 -0
  194. data/lib/mxrb/runtime/executor.rb +169 -0
  195. data/lib/mxrb/runtime/java_locator.rb +26 -0
  196. data/lib/mxrb/runtime/native.rb +474 -0
  197. data/lib/mxrb/runtime/sql_server_database.rb +146 -0
  198. data/lib/mxrb/runtime/toolchain.rb +82 -0
  199. data/lib/mxrb/scaffold/cli.rb +113 -0
  200. data/lib/mxrb/scaffold/generator.rb +246 -0
  201. data/lib/mxrb/scaffold/help.rb +80 -0
  202. data/lib/mxrb/scaffold/page_templates.rb +54 -0
  203. data/lib/mxrb/scaffold/recipes.rb +198 -0
  204. data/lib/mxrb/scaffold/registry.rb +82 -0
  205. data/lib/mxrb/scaffold/templates.rb +723 -0
  206. data/lib/mxrb/scaffold/transaction.rb +84 -0
  207. data/lib/mxrb/schema/tables.rb +55 -0
  208. data/lib/mxrb/semantic/analyzer.rb +473 -0
  209. data/lib/mxrb/semantic/batch_plan.rb +68 -0
  210. data/lib/mxrb/semantic/domain_mutator.rb +419 -0
  211. data/lib/mxrb/semantic/embedder.rb +51 -0
  212. data/lib/mxrb/semantic/extractor.rb +290 -0
  213. data/lib/mxrb/semantic/index.rb +623 -0
  214. data/lib/mxrb/semantic/inliner.rb +216 -0
  215. data/lib/mxrb/semantic/mover.rb +153 -0
  216. data/lib/mxrb/semantic/onnx_embedder.rb +34 -0
  217. data/lib/mxrb/semantic/remover.rb +70 -0
  218. data/lib/mxrb/semantic/renamer.rb +211 -0
  219. data/lib/mxrb/semantic/tfidf_embedder.rb +46 -0
  220. data/lib/mxrb/semantic/vec_store.rb +75 -0
  221. data/lib/mxrb/team_server.rb +390 -0
  222. data/lib/mxrb/templates/project/10.24.0.73019.json +32 -0
  223. data/lib/mxrb/templates/project/11.12.1.json +32 -0
  224. data/lib/mxrb/templates/project/6.10.8.json +50 -0
  225. data/lib/mxrb/templates/project/7.17.0.json +50 -0
  226. data/lib/mxrb/templates/project/7.5.0.json +50 -0
  227. data/lib/mxrb/templates/project/9.6.1.29396.json +50 -0
  228. data/lib/mxrb/version.rb +5 -0
  229. data/lib/mxrb/widget_package.rb +338 -0
  230. data/lib/mxrb/widget_synchronizer.rb +31 -0
  231. data/lib/mxrb/writer.rb +3775 -0
  232. data/lib/mxrb.rb +188 -0
  233. data/marketplace/catalog.json +10 -0
  234. data/marketplace/modules/shared-kernel/domain/README.md +4 -0
  235. data/marketplace/modules/shared-kernel/module.rb +5 -0
  236. data/marketplace/modules/shared-kernel/mxrb-module.json +9 -0
  237. metadata +447 -0
@@ -0,0 +1,239 @@
1
+ # MXRB: Ruby acima de tudo
2
+
3
+ **Português** · [English](../en-US/ruby-first-roadmap.md) · [Deutsch](../de-DE/ruby-first-roadmap.md)
4
+
5
+ ## Princípio arquitetural
6
+
7
+ Ruby é a única linguagem pública do MXRB.
8
+
9
+ - O modelo Mendix é lido, criado, alterado e analisado por APIs e DSLs Ruby.
10
+ - A CLI é apenas uma camada fina sobre essas APIs.
11
+ - Não haverá MDL, parser de uma linguagem paralela ou sintaxe própria concorrendo com Ruby.
12
+ - Recursos sem abstração concisa continuam sem perdas e editáveis nos Hashes
13
+ Ruby gerados por `native_unit`.
14
+ - Studio Pro e MxBuild são validadores externos importantes, mas não são dependências do núcleo Ruby.
15
+
16
+ ## Capacidades
17
+
18
+ ### Disponível
19
+
20
+ - Leitura e escrita profunda de MPR v1 e v2.
21
+ - Exportação de MPR para projeto Ruby editável.
22
+ - Geração, validação e comparação estrutural.
23
+ - Índice semântico de módulos, entidades, atributos, associações e documentos.
24
+ - Consultas Ruby de referências, chamadores, chamadas e impacto transitivo.
25
+ - Comandos CLI `refs`, `callers`, `callees` e `impact`, todos delegando à API Ruby.
26
+ - Renomeação profunda com prévia Ruby e aplicação explícita.
27
+ - Análise estática Ruby de ciclos, alvos ausentes, referências externas,
28
+ artefatos não referenciados e acoplamento entre módulos.
29
+ - Regras de lint personalizadas escritas como objetos chamáveis Ruby.
30
+ - Diff semântico tipado em Ruby, com mudanças `added`, `removed` e `changed`.
31
+ - Navegação estrutural por busca, descrição de relações e árvore semântica.
32
+ - Avaliações executáveis de modelo em Ruby, com checks reutilizáveis, severidade,
33
+ score e extensão por blocos Ruby.
34
+ - Testes funcionais de microflows definidos em Ruby, instrumentados numa cópia
35
+ descartável e executados pelo runtime Mendix sem JUnit.
36
+ - Execução local ou Docker de `mx check`, pacote portátil e runtime, com seleção
37
+ automática da família Java do projeto.
38
+ - Gate nativo de cobertura: 100% de linhas e 100% de branches no CI,
39
+ com default local mais estrito de 100/100 quando os limites são omitidos.
40
+
41
+ Projetos graváveis mantêm um cache do índice semântico identificado por
42
+ fingerprint. `mxrb cache status`, `warm` e `clear` expõem métricas e manutenção;
43
+ a troca usa upsert antes da limpeza da entrada antiga.
44
+
45
+ A validação nativa exata do Mendix 5 continua dependente de Windows/Studio Pro.
46
+ Ela fica documentada como limitação legada remota e não é um gate atual de
47
+ entrega.
48
+
49
+ Perfis de navegação agora leem e escrevem documentos nativos Mendix, incluindo
50
+ homes por papel e menus recursivos. Assets de tema e código fazem round-trip
51
+ com manifesto de checksums; tokens possuem inventário, lint, métricas de
52
+ contraste e migração de literais com preview.
53
+
54
+ ## API semântica
55
+
56
+ ```ruby
57
+ Mxrb.open("app.mpr") do |project|
58
+ order = project.find_artifact("Sales.Order")
59
+ refs = project.references_to(order)
60
+ callers = project.callers_of("Sales.Recalculate")
61
+ callees = project.callees_of("Sales.Checkout")
62
+ impact = project.impact_of("Sales.Order")
63
+
64
+ impact.artifacts.each do |artifact|
65
+ puts "#{artifact.kind}: #{artifact.qualified_name}"
66
+ end
67
+ end
68
+ ```
69
+
70
+ Os resultados são objetos Ruby imutáveis: `Mxrb::Semantic::Artifact`,
71
+ `Mxrb::Semantic::Reference` e `Mxrb::Semantic::Impact`.
72
+
73
+ Projetos abertos para escrita persistem no MPR um cache do índice semântico com
74
+ fingerprint. Aberturas somente leitura podem reutilizá-lo, mas nunca alteram o
75
+ projeto.
76
+
77
+ Uma renomeação é sempre inspecionável antes da escrita:
78
+
79
+ ```ruby
80
+ Mxrb.open("app.mpr", readonly: false) do |project|
81
+ plan = project.plan_rename("Sales.Order", to: "Invoice")
82
+ plan.changes.each { |change| puts change.inspect }
83
+ plan.apply!
84
+ end
85
+ ```
86
+
87
+ Na CLI, `mxrb rename app.mpr Sales.Order Invoice` apenas mostra a prévia.
88
+ Acrescente `--apply` para efetivar a alteração.
89
+
90
+ ## Remoção segura
91
+
92
+ Units independentes, como microflows e páginas, podem ser inspecionadas antes
93
+ da remoção:
94
+
95
+ ```ruby
96
+ Mxrb.open("app.mpr", readonly: false) do |project|
97
+ plano = project.plan_remove("Sales.FluxoSemUso")
98
+ plano.apply! if plano.safe?
99
+ end
100
+ ```
101
+
102
+ O plano é bloqueado enquanto houver referências recebidas ou units filhas.
103
+ Elementos embutidos no domínio exigem sua mutação tipada. Na CLI,
104
+ `mxrb remove app.mpr Sales.FluxoSemUso` mostra a prévia e `--apply` só grava
105
+ um plano seguro.
106
+
107
+ ## Movimentação segura no módulo
108
+
109
+ Units independentes podem ser movidas para um módulo ou pasta sem alterar seu
110
+ nome qualificado nem suas referências:
111
+
112
+ ```ruby
113
+ Mxrb.open("app.mpr", readonly: false) do |project|
114
+ plano = project.plan_move("Sales.Processar", to: "Sales.Automacao")
115
+ plano.apply!
116
+ end
117
+ ```
118
+
119
+ O plano preserva o tipo nativo de contenção e bloqueia elementos embutidos do
120
+ domínio, destinos que não são containers, ciclos de pastas e movimentos entre
121
+ módulos. `mxrb move app.mpr Sales.Processar Sales.Automacao` mostra os IDs dos
122
+ containers; `--apply` executa a transação.
123
+
124
+ ## Análise estática
125
+
126
+ ```ruby
127
+ report = Mxrb.open("app.mpr", &:analyze)
128
+
129
+ report.errors.each { warn _1.message }
130
+ report.unreferenced.each { puts _1.qualified_name }
131
+ report.call_cycles.each { puts _1.artifacts.map(&:qualified_name) }
132
+ report.module_dependencies.each { puts "#{_1.from} -> #{_1.to}" }
133
+ ```
134
+
135
+ Integrações externas desconhecidas geram aviso; um alvo ausente dentro de um
136
+ módulo existente gera erro. Referências `System.*` são reconhecidas como parte
137
+ da plataforma Mendix.
138
+
139
+ ## Diff semântico
140
+
141
+ ```ruby
142
+ result = Mxrb.diff("before.mpr", "after.mpr")
143
+
144
+ result.added.each { puts _1.path }
145
+ result.removed.each { puts _1.path }
146
+ result.changed.each { puts "#{_1.before} -> #{_1.after}" }
147
+ ```
148
+
149
+ `mxrb diff before.mpr after.mpr` imprime uma mudança tipada por linha, adequada
150
+ para logs e revisão em Git. `mxrb compare` continua compatível com a saída
151
+ textual anterior.
152
+
153
+ ## Navegação
154
+
155
+ ```ruby
156
+ project.search_artifacts("checkout", kind: :microflow)
157
+ project.describe_artifact("Sales.Checkout")
158
+ ```
159
+
160
+ Os comandos equivalentes são `mxrb find`, `mxrb describe` e `mxrb tree`.
161
+
162
+ ## Avaliações de modelo
163
+
164
+ ```ruby
165
+ result = Mxrb.open("app.mpr") do |project|
166
+ project.evaluate do
167
+ artifact "Sales.Order", kind: :entity
168
+ no_call_cycles
169
+ no_missing_internal_references
170
+ maximum_unreferenced 20, severity: :warning
171
+ forbid_dependency from: :Domain, to: :Presentation
172
+ end
173
+ end
174
+
175
+ abort result.errors.map(&:message).join("\n") unless result.passed?
176
+ ```
177
+
178
+ Arquivos de avaliação são Ruby comum e rodam com
179
+ `mxrb evaluate app.mpr evaluation.rb`; não existe linguagem de regras paralela.
180
+
181
+ ## Marketplace oficial Mendix
182
+
183
+ Esta família permanece separada de `mxrb module`, que instala módulos Ruby do
184
+ catálogo interno. O formato entregue é:
185
+
186
+ ```sh
187
+ mxrb marketplace search "Community Commons"
188
+ mxrb marketplace show 170
189
+ mxrb marketplace versions 170 --mendix-version 11.12.1
190
+ mxrb marketplace pull 170 --mpr App.mpr
191
+ mxrb marketplace update 170 --mpr App.mpr
192
+ mxrb marketplace update 170 --mpr App.mpr --apply
193
+ mxrb marketplace remove CommunityCommons --mpr App.mpr
194
+ mxrb marketplace remove CommunityCommons --mpr App.mpr --apply
195
+ mxrb marketplace pull github:mendix/CommunityCommons
196
+ mxrb marketplace import ./CommunityCommons.mpk --mpr App.mpr
197
+ mxrb marketplace login --pat-file .env
198
+ mxrb marketplace audit
199
+ ```
200
+
201
+ Capacidades entregues:
202
+
203
+ 1. API oficial: pesquisar conteúdo público/privado, resolver versões compatíveis,
204
+ baixar pelo `downloadURL` e auditar vulnerabilidades e atualizações.
205
+ 2. GitHub: resolver releases públicas, baixar `.mpk` ou arquivo da release,
206
+ extrair com proteção contra caminhos inseguros e registrar versão, origem e
207
+ checksum em lockfile.
208
+ 3. MPK local: ler o MPR interno e importar diretamente todas as units e assets
209
+ no MPR de destino via Ruby/SQLite/BSON, sem ferramentas Mendix.
210
+ 4. PAT Mendix: validar e armazenar com permissões restritas, exigindo o escopo
211
+ `mx:marketplace-content:read` e enviando-o somente ao host oficial da API.
212
+ 5. Lifecycle transacional: `update` e `remove` são prévias por padrão, preservam
213
+ IDs referenciados externamente, recusam assets alterados e protegem MPR,
214
+ `mprcontents`, cache, lock e assets antes de `--apply` explícito.
215
+ 6. Dependências oficiais: `marketplace dependencies` lê referências no MPR
216
+ interno, resolve recursivamente, confirma a identidade real em cada MPK,
217
+ reconhece módulos do próprio projeto, instala folhas primeiro e faz rollback.
218
+ 7. Export/rebuild autenticado: os grafos Kafka passaram em 10.24 e 11.12, com
219
+ assets, checksums e diagnósticos fonte/reconstrução preservados.
220
+ 8. Frontend oficial: DataWidgets 3.11.3 foi importado com Content ID 116540 e
221
+ Version ID `e7b6d703-8e47-42f4-bb92-934e3601e71b`; o Combo box é o componente
222
+ oficial independente Widget/clientModule 219304, versão 2.9.0, Version ID
223
+ `dce845f4-d051-4161-847c-016c01703caa`. A instalação faz backup e substitui
224
+ o asset 2.6.x antes pertencente ao Atlas Core (Content ID 117187).
225
+ 9. Aceitação reproduzível: `script/frontend_acceptance` bloqueia drift de
226
+ modelo, assets, checksums ou proveniência do lock/cache/originais. O renderer
227
+ nativo tem zero achados de preflight na origem e reconstrução das fixtures
228
+ aceitas de 10.24 e 11.12.
229
+ 10. Migração segura: `mxrb frontend migrate App.mpr` mostra a prévia e somente
230
+ `--apply` grava um plano transacional considerado seguro.
231
+
232
+ GitHub não cobre módulos sem fonte ou release pública; MPK local continua útil
233
+ como rota offline. A integração oficial usa somente o contrato OpenAPI publicado.
234
+ A trilha de migração está concluída em toda a matriz de frontend suportada. O
235
+ oráculo MxBuild externo e opcional retorna zero erros na origem e reconstrução
236
+ de 10.24 e 11.12; `mx check` também preserva diagnósticos observáveis dos
237
+ pacotes byte a byte em cada round-trip. O MXRB permanece independente: `mx` e
238
+ MxBuild são somente oráculos de validação, nunca geradores, mutadores ou
239
+ dependências de runtime.
@@ -0,0 +1,104 @@
1
+ # Scaffolds de projeto
2
+
3
+ **Português** · [English](../en-US/scaffolds.md) · [Deutsch](../de-DE/scaffolds.md)
4
+
5
+ Todos os comandos aceitam `--target DIR`, recusam sobrescrever arquivos e
6
+ conectam automaticamente os agregadores `evaluate`/`evaluate_dir`. Use
7
+ `mxrb <comando> --help` para ver uso, destino e opções.
8
+
9
+ `--dry-run` mostra arquivos e agregadores sem gravar; `--json` produz saída
10
+ para automação. `mxrb scaffold list` lista geradores e instâncias registradas.
11
+ `mxrb scaffold destroy <kind:name>` remove somente arquivos que ainda possuem
12
+ o hash criado pelo gerador, protegendo edições posteriores.
13
+
14
+ | Comando | Resultado principal |
15
+ | --- | --- |
16
+ | `mxrb init App` | Projeto, módulo principal, perfil Responsive e página Home |
17
+ | `mxrb module new Billing` | Novo módulo conectado ao projeto |
18
+ | `mxrb entity new App.Customer` | `domain/entities/customer.rb` |
19
+ | `mxrb enumeration new App.Status` | `domain/enumerations/status.rb` |
20
+ | `mxrb constant new App.ApiUrl` | `domain/constants/api_url.rb` |
21
+ | `mxrb use-case new App.ACT_Create` | `application/use_cases/act_create.rb` |
22
+ | `mxrb validation new App.VAL_Customer` | `application/validations/val_customer.rb` |
23
+ | `mxrb query new App.QRY_Customers` | `application/queries/qry_customers.rb` |
24
+ | `mxrb repository new App.CustomerRepository` | Contrato e adaptador inicial |
25
+ | `mxrb scheduled-event new App.Cleanup` | Evento agendado e microflow |
26
+ | `mxrb presentation init App` | Pastas e agregador de apresentação |
27
+ | `mxrb page new App.CustomerOverview` | Página mínima com layout, título e roles comentados |
28
+ | `mxrb page templates` | Árvore de modelos de página auditados |
29
+ | `mxrb page new App.Dashboard --template dashboard` | Página baseada em modelo |
30
+ | `mxrb page new App.Order --chain page:nanoflow:microflow` | Fatia vertical executável |
31
+ | `mxrb nanoflow new App.NAN_OpenCustomer` | Nanoflow cliente |
32
+ | `mxrb security init App` | Papéis, `CheckEverything` no projeto e orientação de acesso |
33
+ | `mxrb integration new App.PetApi` | Adaptador de integração |
34
+ | `mxrb published-rest new App.CustomersApi` | Handler editável para REST publicado |
35
+ | `mxrb consumed-rest new App.ExternalPets` | Adaptador REST consumido |
36
+ | `mxrb java-action new App.ParseDocument` | Adaptador para Java Action |
37
+ | `mxrb functional-test new App.ACT_Create` | Definição de teste de runtime |
38
+ | `mxrb evaluation new architecture` | Avaliação estática do modelo |
39
+ | `mxrb design init` | Design system do projeto |
40
+ | `mxrb ci init github` | Workflow GitHub Actions |
41
+
42
+ Entidades começam vazias e apontam para o [guia completo da DSL](entity-dsl.md).
43
+ REST publicado e Java Action geram adaptadores Ruby: o documento/ação nativo
44
+ ainda deve vir do baseline exportado ou do Studio Pro. Os demais itens tipados
45
+ geram diretamente a DSL suportada pelo mxrb.
46
+
47
+ O gerador cria estrutura e conexão, não inventa regras de negócio. Atributos,
48
+ fluxos, widgets, permissões efetivas, URLs e credenciais continuam sendo
49
+ decisões do projeto. Páginas são esqueletos nativos mínimos; roles e conteúdo
50
+ ficam comentados até serem definidos. `init` cria o perfil Responsive e uma
51
+ página Home mínima para que o scaffold possa ser verificado e compilado
52
+ oficialmente. Outras páginas e itens de menu podem ser escritos na DSL Ruby.
53
+
54
+ `mxrb page new App.Order --chain ...` transforma o scaffold mínimo de página
55
+ em uma fatia vertical executável: gera entidade de amostra, microflow de data
56
+ source, formulário com campos e ações, página e item no perfil Responsive. Há
57
+ três cadeias de ação Mendix explícitas:
58
+
59
+ ```sh
60
+ mxrb page new App.Order --chain page:microflow
61
+ mxrb page generate App.Order --chain page:nanoflow
62
+ mxrb page g App.Order --chain page:nanoflow:microflow
63
+ ```
64
+
65
+ `page:microflow` chama o Runtime diretamente; `page:nanoflow` mantém a ação no
66
+ cliente; `page:nanoflow:microflow` usa o nanoflow como orquestrador cliente e
67
+ chama o microflow no Runtime. Todas criam `ACT_LoadOrder` para o data source;
68
+ as cadeias que terminam em microflow criam também `ACT_RefreshOrder`. Sem
69
+ `--chain`, `page new` preserva o esqueleto mínimo. `page generate` e `page g`
70
+ são aliases de `page new`. Cada cadeia é materializada em um MPR válido, serve
71
+ como ponto de partida removível e exercita o preflight do compilador; arquivos
72
+ existentes nunca são sobrescritos.
73
+
74
+ ## Modelos de página
75
+
76
+ No Mendix, page templates são pontos de partida: sua estrutura é copiada para
77
+ uma página comum e editável. O catálogo do MXRB expõe somente padrões que o
78
+ compilador e o Runtime já auditam:
79
+
80
+ ```sh
81
+ mxrb page templates
82
+ mxrb page templates --json
83
+ mxrb page new App.Landing --template starter
84
+ mxrb page new App.Empty --template blank
85
+ mxrb page new App.Operations --template dashboard
86
+ mxrb page new App.Order_NewEdit --template form-vertical
87
+ ```
88
+
89
+ `form-vertical` cria também entidade de amostra e `ACT_Load...` para o DataView.
90
+ Qualquer modelo pode receber `--chain`; por exemplo,
91
+ `--template dashboard --chain page:nanoflow` adiciona a ação cliente ao
92
+ dashboard. Esses nomes são contratos estáveis do MXRB inspirados nos padrões
93
+ Mendix, não uma promessa de importar silenciosamente todo template instalado
94
+ por Atlas ou Marketplace. Veja a [documentação oficial de páginas](https://docs.mendix.com/refguide/pages/).
95
+
96
+ Para um checkout local durante desenvolvimento:
97
+
98
+ ```sh
99
+ mxrb init VetClinic --mxrb-path /caminho/para/mxrb
100
+ cd VetClinic
101
+ bundle install
102
+ bundle exec mxrb generate project.rb
103
+ bundle exec mxrb validate VetClinic.mpr
104
+ ```
@@ -0,0 +1,55 @@
1
+ # Refatoração semântica
2
+
3
+ **Português** · [English](../en-US/semantic-refactoring.md) · [Deutsch](../de-DE/semantic-refactoring.md)
4
+
5
+ O índice semântico combina artefatos tipados e referências BSON.
6
+ `Project.Navigation` participa de impacto, rename e segurança de remoção.
7
+
8
+ ```ruby
9
+ Mxrb.open("Shop.mpr", readonly: false) do |project|
10
+ plan = project.plan_rename("Sales.Home", to: "Landing")
11
+ plan.changes.each { puts _1.inspect }
12
+ plan.apply!
13
+ end
14
+ ```
15
+
16
+ Todo refactoring segue plano, preview e `apply!`. Um rename atualiza BSON e
17
+ `_MxrbArchitecture` na mesma transação. Remove bloqueia referências e unidades
18
+ filhas; move, extract, inline e mutações de domínio expõem mudanças antes de
19
+ gravar.
20
+
21
+ O analyzer encontra alvos ausentes, perfis sem home, nomes duplicados, user
22
+ roles desconhecidas, homes sem acesso, tokens não resolvidos e contraste
23
+ insuficiente. O cache semântico usa fingerprint das unidades; `mxrb cache
24
+ status`, `warm` e `clear` expõem métricas e manutenção.
25
+
26
+ `project.semantic_search_artifacts("criar pedido", limit: 5)` oferece ranking
27
+ determinístico em Ruby. A gem opcional `sqlite-vec` acelera a busca em MPRs
28
+ graváveis com um índice KNN identificado por backend, dimensão e fingerprint
29
+ do modelo. A primeira busca preenche os vetores antes de registrar o índice
30
+ como pronto; projetos somente leitura e plataformas sem a extensão mantêm a
31
+ mesma API em memória. A adaptação legada é
32
+ `mxrb find app.mpr "criar pedido" --semantic`. O comando dedicado também
33
+ expõe backend, limite e distância cosseno:
34
+
35
+ ```sh
36
+ bundle exec mxrb search "pagamento" App.mpr
37
+ bundle exec mxrb search "criar pedido" App.mpr --backend onnx --limit 5
38
+ ```
39
+
40
+ O resultado tabular contém rank, distância, nome qualificado e tipo; `--json`
41
+ oferece a mesma informação para automação.
42
+
43
+ Para desenvolvimento ONNX local, use `BUNDLE_WITH=onnx bundle install`.
44
+ `backend: :onnx` e o backend automático passam a usar o pipeline documentado
45
+ `embedding` do Informers com `sentence-transformers/all-MiniLM-L6-v2`. Um job
46
+ dedicado do CI ativa `MXRB_ONNX=1` e executa smoke test real de 384 dimensões;
47
+ a instalação e a suíte comuns não baixam o modelo.
48
+
49
+ O smoke test nativo do sqlite-vec usa um arquivo de dependências próprio para
50
+ plataformas suportadas: `BUNDLE_GEMFILE=Gemfile.sqlite-vec bundle install` e
51
+ depois `MXRB_SQLITE_VEC=1 BUNDLE_GEMFILE=Gemfile.sqlite-vec bundle exec rspec
52
+ spec/semantic_search_spec.rb`. Assim o lockfile principal continua portátil,
53
+ mas o CI testa a extensão real.
54
+
55
+ [Voltar ao índice](README.md)
@@ -0,0 +1,59 @@
1
+ # Team Server
2
+
3
+ O MXRB integra diretamente com o Team Server Git e com a App Repository API.
4
+ Nenhum comando usa `mx`, Studio Pro ou o Model SDK como intermediário.
5
+
6
+ ```bash
7
+ mxrb team-server login --pat-file /caminho/seguro/team-server.env
8
+ mxrb team-server projects --pat-file /caminho/seguro/team-server.env
9
+ mxrb team-server info a9e4af8a-2776-4b10-a471-8c42df8f5f43
10
+ mxrb team-server branches a9e4af8a-2776-4b10-a471-8c42df8f5f43
11
+ mxrb team-server clone \
12
+ https://git.api.mendix.com/a9e4af8a-2776-4b10-a471-8c42df8f5f43.git \
13
+ ./app
14
+ mxrb team-server pull ./app
15
+ mxrb team-server push ./app --branch main
16
+ ```
17
+
18
+ `projects` pagina a Projects API oficial e retorna todos os projetos da empresa.
19
+ O cliente preserva o PAT apenas no mesmo host HTTPS e corrige com segurança o
20
+ redirect HTTP anunciado pelo serviço somente quando origem e destino têm o
21
+ mesmo host HSTS.
22
+
23
+ ## Credenciais
24
+
25
+ O modo recomendado armazena somente o caminho absoluto do arquivo informado em
26
+ `~/.config/mxrb/credentials`. O arquivo pode ser texto puro, JSON com
27
+ `team_server_pat`, ou `.env`:
28
+
29
+ ```dotenv
30
+ MXRB_TEAM_SERVER_PAT=seu_pat
31
+ ```
32
+
33
+ Também é possível definir `MXRB_TEAM_SERVER_PAT_FILE` sem executar `login`.
34
+ Se nenhum arquivo for configurado, operações Git usam o credential helper do
35
+ próprio usuário. A App Repository API exige um arquivo PAT.
36
+
37
+ O PAT nunca é incluído na URL, nos argumentos do processo ou no `.git/config`.
38
+ Durante operações Git ele é entregue por um `GIT_ASKPASS` temporário, apagado
39
+ imediatamente ao final.
40
+
41
+ Escopos:
42
+
43
+ - leitura: `mx:modelrepository:repo:read`;
44
+ - push: `mx:modelrepository:repo:write`.
45
+
46
+ ## Limites oficiais
47
+
48
+ A Mendix informa que clones feitos fora do Studio Pro não recebem todo o
49
+ pós-processamento e metadados de revisão adicionados pelo Studio Pro. O MXRB
50
+ valida estruturalmente cada MPR após clone e pull, mas commits externos ainda
51
+ podem não conter metadados exigidos pelo deploy no Mendix Cloud. O compilador e
52
+ runtime próprios do MXRB não dependem desses metadados de Cloud.
53
+
54
+ ## Aceitação real
55
+
56
+ O repositório `a9e4af8a-2776-4b10-a471-8c42df8f5f43` foi consultado pela App
57
+ Repository API e clonado por HTTPS. O MXRB validou `MyFirstModule.mpr`, detectou
58
+ a branch `main` e confirmou que o remote permaneceu sem PAT embutido. O arquivo
59
+ temporário usado na aceitação foi destruído ao final.
@@ -0,0 +1,86 @@
1
+ # Matriz de validação do MXRB
2
+
3
+ **Português** · [English](../en-US/validation-matrix.md) · [Deutsch](../de-DE/validation-matrix.md)
4
+
5
+ Última atualização: 5 de agosto de 2026.
6
+
7
+ O pipeline validado é:
8
+
9
+ ```text
10
+ MPR original → validate → export → generate → validate → compare
11
+ ```
12
+
13
+ Os originais nunca são modificados.
14
+
15
+ | Projeto | Mendix | Formato | Resultado |
16
+ |---|---:|---|---|
17
+ | QueryApiBlogPost | 7.17.0-rc5 | v1 | passou |
18
+ | Sudoku | 11.12.1 | v2 | passou; 409 `.mxunit` |
19
+ | MendixApp | 9.6.1 | v1 | passou |
20
+ | ConnectorKitDemo | 7.5.0 | v1 | passou |
21
+ | TreeviewDemo | 5.21.4 | v1 | passou |
22
+ | GridViewPlayground | 6.10.8 | v1 | passou |
23
+
24
+ ## Cobertura profunda editável
25
+
26
+ O comparador cobre metadados, segurança, árvore de units, entidades, access
27
+ rules, associações, páginas, widgets, eventos, menus e corpos completos de
28
+ microflows/nanoflows. UUIDs e coordenadas visuais são normalizados.
29
+
30
+ Os 264 corpos de flows da matriz são emitidos como Ruby tipado. As 133 páginas
31
+ contêm 1.304 nós de 25 tipos; estruturas profundas permanecem hashes Ruby
32
+ editáveis. Toda unit nativa mantém o baseline JSON e também é expandida em
33
+ `.mxrb/native_units.rb`, inclusive conteúdo sem DSL concisa.
34
+
35
+ ## Validação oficial 11.12.1
36
+
37
+ - `mx show-version` reconheceu o MPR reconstruído;
38
+ - `mx check` terminou com **0 erros**;
39
+ - original e reconstruído: **23 warnings, 1 depreciação e 6 recomendações**;
40
+ - `mxbuild --target=package`: **BUILD SUCCEEDED**;
41
+ - MDA atual: 11.941.148 bytes, SHA-256
42
+ `fc4fb7a2ea2b4ad7cdb0fcd3296a5dbb5c4d148371aad997ab0032d2c5c0cf33`.
43
+
44
+ ## Validação oficial Mendix 5–9
45
+
46
+ O projeto 6.10 gerou MDA no original e reconstruído. As versões 7.5 e 7.17
47
+ chegaram à compilação Java com os mesmos erros de dependências dos originais.
48
+ O 9.6.1 manteve paridade de 896 diagnósticos. O 5.21 exato depende de WPF e
49
+ Windows; sua paridade foi verificada pelo conversor oficial 6.10 em memória.
50
+
51
+ ## Limite de confiança
52
+
53
+ A matriz prova os cenários inspecionados, não compatibilidade universal com
54
+ todo metamodelo Mendix. Encodings `.mxunit` desconhecidos são rejeitados em vez
55
+ de adivinhados. A validação exata do 5.21 em Studio Pro/Windows continua sendo
56
+ um limite explícito.
57
+
58
+ ## Índice semântico
59
+
60
+ Os seis MPRs produziram **1.778 artefatos** e **3.387 referências**. Consultas
61
+ de referências, callers, callees, impacto, lint e diff tipado foram exercitadas
62
+ sem MDL.
63
+
64
+ ## Avaliações, cobertura e runtime
65
+
66
+ - 1.039 exemplos, zero falhas;
67
+ - 100% das linhas: 17.224/17.224;
68
+ - 100% dos branches: 6.811/6.811;
69
+ - avaliação Sudoku: 7/7 checks;
70
+ - testes funcionais Sudoku: 3/3 localmente em 34,16 s;
71
+ - testes funcionais Sudoku: 3/3 no Docker em 39,52 s.
72
+
73
+ Asserções Ruby verificam retorno e contagens XPath persistidas: Games 1/2/3 e
74
+ Cells 81/162/243. JUnit XML é apenas relatório opcional gerado em Ruby.
75
+
76
+ O gate 11.12.1 agora inclui navegador Chromium autenticado: login, navegação
77
+ Home/Orders, captura determinística de DOM/layout/estilo/ARIA, screenshots,
78
+ comparação SHA-256 com baseline explícito, detecção de erros de widget/Runtime
79
+ e logout real. Os scaffolds `page --chain` também materializam e passam
80
+ preflight nos três caminhos suportados; `page --template` foi exercitado em
81
+ Runtime para dashboard e formulário vertical com CSS computado auditado.
82
+
83
+ `script/validate_matrix` repetiu os seis round-trips, 1.506 units, em 14,760 s.
84
+ `script/benchmark` mediu o pipeline Sudoku completo em 6,8463 s. O fuzzing
85
+ determinístico cobre 250 documentos BSON aninhados e 50 arquivos `.mxunit`
86
+ atômicos, inclusive valores binários.
@@ -0,0 +1,50 @@
1
+ # Aceitação end-to-end do VetClinic
2
+
3
+ O projeto de aceitação foi removido e recriado do zero com `mxrb init`. Todos
4
+ os geradores foram exercitados antes do preenchimento das regras de negócio:
5
+ entidades, enumerações, use cases, validações, queries, repository, constante,
6
+ scheduled event, apresentação, página, nanoflow, segurança, integrações, REST,
7
+ Java Action, design, CI, teste funcional e avaliação arquitetural.
8
+
9
+ ## Resultado dos gates
10
+
11
+ - validação estrutural MXRB: aprovada;
12
+ - lint semântico: 0 erros e 0 avisos;
13
+ - avaliação arquitetural: 100%;
14
+ - `mx check` oficial Mendix 11.12.1: 0 erros;
15
+ - `mxbuild`: build concluído e pacote MDA gerado;
16
+ - Runtime Mendix sincronizado: teste funcional `ACT_CreateAnimal` aprovado;
17
+ - regressão do MXRB: 622 exemplos, 0 falhas;
18
+ - cobertura: 100% de linhas e 100% de branches;
19
+ - RuboCop: 0 infrações.
20
+
21
+ O modelo cobre enumerações, seis entidades de negócio, generalização de
22
+ `System.User`, membros de sistema, regras de acesso, índices simples e
23
+ compostos, associações N:1, N:N e 1:1, microflows, nanoflow, página, navegação e
24
+ scheduled event.
25
+
26
+ ## Trabalho que continua intencionalmente manual
27
+
28
+ Scaffold é estrutura, não especificação de negócio. Foi necessário escrever
29
+ atributos, regras, ações dos fluxos, valores de enumeração, permissões, teste e
30
+ avaliação. O VetClinic original teve a navegação conectada no `project.rb`;
31
+ depois desse aceite, `init` passou a criar perfil, layout e Home mínimos. Itens
32
+ de menu adicionais ainda não têm comando próprio. Página, integrações e
33
+ endpoints também exigem conteúdo real.
34
+
35
+ `published-rest`, `consumed-rest` e `java-action` produzem adaptadores de
36
+ microflow compiláveis. Um documento REST publicado/consumido ou Java Action
37
+ nativo ainda requer um baseline exportado ou Studio Pro. Isso não impede a
38
+ validade e o build do MPR aceito, mas delimita honestamente o alcance atual
39
+ desses três scaffolds.
40
+
41
+ ## Correções orientadas pelo aceite
42
+
43
+ O ciclo oficial revelou e corrigiu serialização moderna de projeto, módulo,
44
+ domain model, entidades, atributos, enumerações, associações, acesso, índices,
45
+ navegação, páginas, flows, scheduled events e textos; também corrigiu colisão
46
+ entre artefatos homônimos, referências de enum, role administrativa mínima,
47
+ cache/índice semântico e marcação de entry points. O writer passou a partir de
48
+ um seed oficial versionado e preserva os metadados obrigatórios do Mendix.
49
+ Um smoke test independente confirmou que o scaffold vazio atual também passa
50
+ em `mx check` e MxBuild sem edição manual.