rosett-ai 1.3.3 → 1.5.9

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 (453) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +398 -22
  3. data/README.md +56 -42
  4. data/bin/raictl +13 -0
  5. data/conf/adopt_redactions.yml +2 -0
  6. data/conf/compliance/cra_rules.yml +2 -0
  7. data/conf/compliance/license_rules.yml +2 -0
  8. data/conf/mcp/server_defaults.yml +2 -0
  9. data/conf/mcp/trust.yml +1 -0
  10. data/conf/packaging/core.yml +2 -0
  11. data/conf/packaging/gtk4.yml +2 -0
  12. data/conf/packaging/qt6.yml +2 -0
  13. data/conf/policy/default_deny_list.yml +2 -0
  14. data/conf/review/cli-command-audit.yml +2 -0
  15. data/conf/review/design-docs.yml +2 -0
  16. data/conf/review/design-questionnaire.yml +2 -0
  17. data/conf/review/questionnaire.yml +2 -0
  18. data/conf/review/rosett-ai-core.yml +2 -0
  19. data/conf/schemas/ai_config_schema.json +14 -2
  20. data/conf/schemas/autoqueue.schema.json +153 -0
  21. data/conf/schemas/behaviour_schema.json +31 -7
  22. data/conf/schemas/compliance_rule_schema.json +17 -4
  23. data/conf/schemas/content_pack_manifest_schema.json +23 -4
  24. data/conf/schemas/design_schema.json +177 -42
  25. data/conf/schemas/engine_manifest_schema.json +22 -5
  26. data/conf/schemas/lockfile_schema.json +26 -4
  27. data/conf/schemas/mcp_server_schema.json +50 -9
  28. data/conf/schemas/packaging_schema.json +23 -5
  29. data/conf/schemas/policy_schema.json +35 -9
  30. data/conf/schemas/provenance_schema.json +33 -5
  31. data/conf/schemas/rai_config_schema.json +6 -2
  32. data/conf/schemas/rai_project_schema.json +8 -2
  33. data/conf/schemas/scope_hierarchy_schema.json +22 -5
  34. data/conf/schemas/target_schema.json +33 -6
  35. data/conf/schemas/tooling_schema.json +53 -12
  36. data/conf/schemas/workflow_schema.json +39 -9
  37. data/conf/targets/agents_md.yml +1 -0
  38. data/conf/targets/claude.yml +2 -0
  39. data/conf/tooling/tools.yml +2 -0
  40. data/lib/rosett_ai/adopter/local_analysis_collector.rb +5 -0
  41. data/lib/rosett_ai/adopter/rule_adopter.rb +40 -0
  42. data/lib/rosett_ai/ai_config/context_window.rb +3 -0
  43. data/lib/rosett_ai/ai_config/cost_controls.rb +1 -0
  44. data/lib/rosett_ai/ai_config/fallback_chain.rb +1 -0
  45. data/lib/rosett_ai/ai_config/model_router.rb +1 -0
  46. data/lib/rosett_ai/ai_config/validator.rb +2 -0
  47. data/lib/rosett_ai/authorship/attribution_compiler.rb +1 -0
  48. data/lib/rosett_ai/authorship/disclosure_policy.rb +2 -0
  49. data/lib/rosett_ai/authorship/review_validator.rb +1 -0
  50. data/lib/rosett_ai/authorship/trailer_generator.rb +1 -0
  51. data/lib/rosett_ai/backup/compressor.rb +3 -0
  52. data/lib/rosett_ai/backup/destination.rb +1 -0
  53. data/lib/rosett_ai/behaviour/manager.rb +1 -0
  54. data/lib/rosett_ai/compiler/backend.rb +3 -0
  55. data/lib/rosett_ai/compiler/backends/agents_md_backend.rb +1 -0
  56. data/lib/rosett_ai/compiler/backends/claude_backend.rb +1 -0
  57. data/lib/rosett_ai/compiler/behaviour_compiler.rb +1 -0
  58. data/lib/rosett_ai/compiler/compilation_pipeline.rb +1 -7
  59. data/lib/rosett_ai/compiler/locale_compiler.rb +2 -0
  60. data/lib/rosett_ai/compiler/target_profile.rb +11 -0
  61. data/lib/rosett_ai/completion/generator.rb +2 -0
  62. data/lib/rosett_ai/completion/shells/zsh_generator.rb +1 -0
  63. data/lib/rosett_ai/comply/checkers/cra_checker.rb +1 -0
  64. data/lib/rosett_ai/comply/checkers/license_checker.rb +2 -0
  65. data/lib/rosett_ai/comply/checkers/spdx_header_checker.rb +4 -0
  66. data/lib/rosett_ai/comply/runner.rb +2 -0
  67. data/lib/rosett_ai/composition/composer.rb +1 -0
  68. data/lib/rosett_ai/composition/lockfile.rb +1 -0
  69. data/lib/rosett_ai/composition/merge_strategy.rb +1 -0
  70. data/lib/rosett_ai/config/masking_secret_resolver.rb +9 -0
  71. data/lib/rosett_ai/config/secret_resolver.rb +4 -0
  72. data/lib/rosett_ai/configuration.rb +4 -0
  73. data/lib/rosett_ai/content/content_client.rb +15 -0
  74. data/lib/rosett_ai/content/pack_installer.rb +1 -0
  75. data/lib/rosett_ai/content/pack_manifest.rb +21 -0
  76. data/lib/rosett_ai/content_packs/manager.rb +1 -0
  77. data/lib/rosett_ai/dbus/compositor_detector.rb +2 -0
  78. data/lib/rosett_ai/dbus/focus_adapters/base.rb +1 -0
  79. data/lib/rosett_ai/dbus/focus_adapters/gnome_adapter.rb +5 -0
  80. data/lib/rosett_ai/dbus/focus_adapters/hyprland_adapter.rb +4 -0
  81. data/lib/rosett_ai/dbus/focus_adapters/i3_adapter.rb +4 -0
  82. data/lib/rosett_ai/dbus/focus_adapters/kwin_adapter.rb +4 -0
  83. data/lib/rosett_ai/dbus/focus_adapters/x11_adapter.rb +4 -0
  84. data/lib/rosett_ai/dbus/focus_monitor_interface.rb +1 -0
  85. data/lib/rosett_ai/dbus/manager_interface.rb +1 -0
  86. data/lib/rosett_ai/dbus/plugin_manager_interface.rb +2 -0
  87. data/lib/rosett_ai/dbus/rate_limiter.rb +1 -0
  88. data/lib/rosett_ai/dbus/service.rb +3 -0
  89. data/lib/rosett_ai/dbus/status_notifier_interface.rb +14 -0
  90. data/lib/rosett_ai/desktop/dbus_client.rb +6 -0
  91. data/lib/rosett_ai/desktop/gtk4_app.rb +3 -0
  92. data/lib/rosett_ai/desktop/gtk4_preferences.rb +1 -0
  93. data/lib/rosett_ai/desktop/gui_logger.rb +2 -0
  94. data/lib/rosett_ai/doctor/check.rb +1 -1
  95. data/lib/rosett_ai/doctor/checks/cache_health_check.rb +1 -0
  96. data/lib/rosett_ai/doctor.rb +1 -0
  97. data/lib/rosett_ai/documentation/reference_compiler.rb +9 -0
  98. data/lib/rosett_ai/documentation/translator.rb +8 -0
  99. data/lib/rosett_ai/engines/base_config_compiler.rb +71 -1
  100. data/lib/rosett_ai/engines/detector.rb +5 -0
  101. data/lib/rosett_ai/engines/registry.rb +7 -0
  102. data/lib/rosett_ai/exit_codes.rb +6 -0
  103. data/lib/rosett_ai/formatting.rb +1 -0
  104. data/lib/rosett_ai/gem_consistency_checker.rb +6 -0
  105. data/lib/rosett_ai/git_hooks/chain_detector.rb +1 -0
  106. data/lib/rosett_ai/git_hooks/installer.rb +4 -0
  107. data/lib/rosett_ai/git_hooks/script_generator.rb +2 -0
  108. data/lib/rosett_ai/gitlab/validators/supplementary_gitlab_ci_yaml_validator.rb +6 -0
  109. data/lib/rosett_ai/i18n/utf8_checker.rb +1 -0
  110. data/lib/rosett_ai/init/config_file_writer.rb +4 -0
  111. data/lib/rosett_ai/init/directory_builder.rb +15 -0
  112. data/lib/rosett_ai/init/file_copier.rb +51 -0
  113. data/lib/rosett_ai/init/mcp_registrar.rb +1 -0
  114. data/lib/rosett_ai/init/project_initializer.rb +1 -0
  115. data/lib/rosett_ai/licensing/license_key.rb +4 -0
  116. data/lib/rosett_ai/licensing/license_store.rb +11 -0
  117. data/lib/rosett_ai/licensing/tier.rb +9 -0
  118. data/lib/rosett_ai/mcp/admin/auditor.rb +1 -0
  119. data/lib/rosett_ai/mcp/admin/health_checker.rb +1 -0
  120. data/lib/rosett_ai/mcp/admin/registry.rb +1 -0
  121. data/lib/rosett_ai/mcp/enforcement/hook_generator.rb +27 -4
  122. data/lib/rosett_ai/mcp/enforcement/validator.rb +24 -3
  123. data/lib/rosett_ai/mcp/governance.rb +9 -0
  124. data/lib/rosett_ai/mcp/http_security_config.rb +22 -0
  125. data/lib/rosett_ai/mcp/key_hasher.rb +4 -2
  126. data/lib/rosett_ai/mcp/keyfile.rb +4 -0
  127. data/lib/rosett_ai/mcp/middleware/cors.rb +4 -0
  128. data/lib/rosett_ai/mcp/middleware/origin_validation.rb +1 -0
  129. data/lib/rosett_ai/mcp/middleware/rate_limit.rb +3 -0
  130. data/lib/rosett_ai/mcp/plugins.rb +1 -0
  131. data/lib/rosett_ai/mcp/prompts/compilation_prompt.rb +2 -0
  132. data/lib/rosett_ai/mcp/prompts/compliance_prompt.rb +3 -0
  133. data/lib/rosett_ai/mcp/prompts/diagnostics_prompt.rb +2 -0
  134. data/lib/rosett_ai/mcp/prompts/validation_prompt.rb +2 -0
  135. data/lib/rosett_ai/mcp/resources/behaviour_resource.rb +2 -0
  136. data/lib/rosett_ai/mcp/resources/config_resource.rb +2 -0
  137. data/lib/rosett_ai/mcp/resources/design_resource.rb +1 -0
  138. data/lib/rosett_ai/mcp/resources/hooks_resource.rb +3 -0
  139. data/lib/rosett_ai/mcp/resources/provenance_resource.rb +2 -0
  140. data/lib/rosett_ai/mcp/resources/rules_resource.rb +1 -0
  141. data/lib/rosett_ai/mcp/resources/schema_resource.rb +1 -0
  142. data/lib/rosett_ai/mcp/server.rb +7 -1
  143. data/lib/rosett_ai/mcp/settings/trust_manager.rb +3 -0
  144. data/lib/rosett_ai/mcp/tools/adopt_tool.rb +4 -0
  145. data/lib/rosett_ai/mcp/tools/backup_tool.rb +4 -0
  146. data/lib/rosett_ai/mcp/tools/behaviour_display_tool.rb +4 -0
  147. data/lib/rosett_ai/mcp/tools/behaviour_list_tool.rb +3 -0
  148. data/lib/rosett_ai/mcp/tools/behaviour_manage_tool.rb +5 -0
  149. data/lib/rosett_ai/mcp/tools/behaviour_show_tool.rb +4 -0
  150. data/lib/rosett_ai/mcp/tools/compile_status_tool.rb +4 -0
  151. data/lib/rosett_ai/mcp/tools/compile_tool.rb +4 -0
  152. data/lib/rosett_ai/mcp/tools/comply_tool.rb +4 -0
  153. data/lib/rosett_ai/mcp/tools/config_compile_tool.rb +4 -0
  154. data/lib/rosett_ai/mcp/tools/config_status_tool.rb +3 -0
  155. data/lib/rosett_ai/mcp/tools/content_tool.rb +5 -0
  156. data/lib/rosett_ai/mcp/tools/context_query_tool.rb +4 -0
  157. data/lib/rosett_ai/mcp/tools/design_list_tool.rb +3 -0
  158. data/lib/rosett_ai/mcp/tools/design_show_tool.rb +4 -0
  159. data/lib/rosett_ai/mcp/tools/doctor_tool.rb +4 -0
  160. data/lib/rosett_ai/mcp/tools/documentation_status_tool.rb +3 -0
  161. data/lib/rosett_ai/mcp/tools/engines_tool.rb +5 -0
  162. data/lib/rosett_ai/mcp/tools/hook_install_tool.rb +7 -0
  163. data/lib/rosett_ai/mcp/tools/hook_preview_tool.rb +33 -8
  164. data/lib/rosett_ai/mcp/tools/hooks_status_tool.rb +5 -0
  165. data/lib/rosett_ai/mcp/tools/init_tool.rb +5 -0
  166. data/lib/rosett_ai/mcp/tools/license_status_tool.rb +3 -0
  167. data/lib/rosett_ai/mcp/tools/project_tool.rb +5 -0
  168. data/lib/rosett_ai/mcp/tools/provenance_tool.rb +5 -0
  169. data/lib/rosett_ai/mcp/tools/provenance_write_tool.rb +3 -0
  170. data/lib/rosett_ai/mcp/tools/retrofit_tool.rb +5 -0
  171. data/lib/rosett_ai/mcp/tools/rule_search_tool.rb +4 -0
  172. data/lib/rosett_ai/mcp/tools/schema_get_tool.rb +5 -0
  173. data/lib/rosett_ai/mcp/tools/tooling_tool.rb +5 -0
  174. data/lib/rosett_ai/mcp/tools/validate_tool.rb +4 -0
  175. data/lib/rosett_ai/mcp/tools/workflow_execute_tool.rb +4 -0
  176. data/lib/rosett_ai/mcp/tools/workflow_tool.rb +5 -0
  177. data/lib/rosett_ai/migration/detector.rb +1 -0
  178. data/lib/rosett_ai/migration/nncc_config_migrator.rb +2 -0
  179. data/lib/rosett_ai/migration/xdg_migrator.rb +3 -1
  180. data/lib/rosett_ai/package_manager/apt.rb +5 -0
  181. data/lib/rosett_ai/package_manager/base.rb +1 -0
  182. data/lib/rosett_ai/package_manager/gem_backend.rb +1 -0
  183. data/lib/rosett_ai/packaging/variant_config.rb +12 -0
  184. data/lib/rosett_ai/plugins/contract.rb +1 -0
  185. data/lib/rosett_ai/plugins/engine_contract.rb +2 -0
  186. data/lib/rosett_ai/plugins/gui_contract.rb +2 -0
  187. data/lib/rosett_ai/plugins/mcp_contract.rb +2 -0
  188. data/lib/rosett_ai/plugins/registry.rb +10 -0
  189. data/lib/rosett_ai/policy/auditor.rb +1 -0
  190. data/lib/rosett_ai/policy/opt_out_scanner.rb +1 -0
  191. data/lib/rosett_ai/policy/tier_hierarchy.rb +2 -0
  192. data/lib/rosett_ai/policy/validator.rb +1 -0
  193. data/lib/rosett_ai/profiler.rb +7 -0
  194. data/lib/rosett_ai/project/drift_detector.rb +1 -0
  195. data/lib/rosett_ai/project/manager.rb +1 -0
  196. data/lib/rosett_ai/project/template_applier.rb +1 -0
  197. data/lib/rosett_ai/provenance/entry.rb +2 -0
  198. data/lib/rosett_ai/provenance/source.rb +1 -0
  199. data/lib/rosett_ai/provenance/store.rb +3 -0
  200. data/lib/rosett_ai/provenance/validator.rb +1 -0
  201. data/lib/rosett_ai/quorum/collector.rb +1 -0
  202. data/lib/rosett_ai/quorum/comparator.rb +2 -0
  203. data/lib/rosett_ai/quorum/strategies/adopt.rb +1 -0
  204. data/lib/rosett_ai/rai_config.rb +9 -0
  205. data/lib/rosett_ai/retrofit/engine.rb +2 -0
  206. data/lib/rosett_ai/retrofit/parsers/agents_md_parser.rb +8 -0
  207. data/lib/rosett_ai/retrofit/parsers/claude_parser.rb +10 -0
  208. data/lib/rosett_ai/retrofit/parsers/cursor_parser.rb +9 -0
  209. data/lib/rosett_ai/retrofit/secret_detector.rb +3 -0
  210. data/lib/rosett_ai/secrets_resolver.rb +1 -0
  211. data/lib/rosett_ai/session_hooks/installer.rb +130 -0
  212. data/lib/rosett_ai/smart_feedback/suggester.rb +4 -0
  213. data/lib/rosett_ai/smart_feedback/thor_middleware.rb +7 -0
  214. data/lib/rosett_ai/structured_logger.rb +1 -0
  215. data/lib/rosett_ai/telemetry/log_rotator.rb +1 -0
  216. data/lib/rosett_ai/telemetry.rb +1 -0
  217. data/lib/rosett_ai/thor/cli.rb +9 -0
  218. data/lib/rosett_ai/thor/tasks/adopt.rb +2 -0
  219. data/lib/rosett_ai/thor/tasks/backfill_user_yml.rb +207 -0
  220. data/lib/rosett_ai/thor/tasks/backup.rb +6 -0
  221. data/lib/rosett_ai/thor/tasks/behaviour.rb +12 -0
  222. data/lib/rosett_ai/thor/tasks/build.rb +87 -4
  223. data/lib/rosett_ai/thor/tasks/compile.rb +76 -32
  224. data/lib/rosett_ai/thor/tasks/completion.rb +9 -0
  225. data/lib/rosett_ai/thor/tasks/comply.rb +2 -0
  226. data/lib/rosett_ai/thor/tasks/config.rb +21 -5
  227. data/lib/rosett_ai/thor/tasks/content.rb +8 -0
  228. data/lib/rosett_ai/thor/tasks/dbus.rb +13 -0
  229. data/lib/rosett_ai/thor/tasks/design.rb +2 -0
  230. data/lib/rosett_ai/thor/tasks/desktop.rb +4 -0
  231. data/lib/rosett_ai/thor/tasks/doctor.rb +2 -0
  232. data/lib/rosett_ai/thor/tasks/documentation.rb +7 -0
  233. data/lib/rosett_ai/thor/tasks/engines.rb +8 -0
  234. data/lib/rosett_ai/thor/tasks/hooks.rb +8 -0
  235. data/lib/rosett_ai/thor/tasks/init.rb +1 -0
  236. data/lib/rosett_ai/thor/tasks/license.rb +8 -0
  237. data/lib/rosett_ai/thor/tasks/mcp.rb +40 -0
  238. data/lib/rosett_ai/thor/tasks/migrate.rb +2 -0
  239. data/lib/rosett_ai/thor/tasks/plugins.rb +15 -0
  240. data/lib/rosett_ai/thor/tasks/project.rb +8 -0
  241. data/lib/rosett_ai/thor/tasks/provenance.rb +8 -0
  242. data/lib/rosett_ai/thor/tasks/release.rb +8 -0
  243. data/lib/rosett_ai/thor/tasks/retrofit.rb +4 -0
  244. data/lib/rosett_ai/thor/tasks/validate.rb +1 -0
  245. data/lib/rosett_ai/thor/tasks/workflow.rb +14 -0
  246. data/lib/rosett_ai/tooling/version_checker.rb +1 -0
  247. data/lib/rosett_ai/ui/accessible_tui.rb +18 -0
  248. data/lib/rosett_ai/ui/base.rb +3 -0
  249. data/lib/rosett_ai/ui/gtk4.rb +19 -0
  250. data/lib/rosett_ai/ui/kde.rb +1 -0
  251. data/lib/rosett_ai/ui/qt6.rb +1 -0
  252. data/lib/rosett_ai/ui/registry.rb +15 -0
  253. data/lib/rosett_ai/ui/tui.rb +22 -0
  254. data/lib/rosett_ai/validators/behaviour_validator.rb +1 -0
  255. data/lib/rosett_ai/validators/design_validator.rb +2 -0
  256. data/lib/rosett_ai/validators/schema_validator.rb +4 -0
  257. data/lib/rosett_ai/validators/tooling_validator.rb +1 -0
  258. data/lib/rosett_ai/version.rb +2 -1
  259. data/lib/rosett_ai/version_consistency_checker.rb +6 -0
  260. data/lib/rosett_ai/workflow/engine.rb +1 -0
  261. data/lib/rosett_ai/workflow/manager.rb +1 -0
  262. data/lib/rosett_ai/workflow/schema_validator.rb +2 -0
  263. data/lib/rosett_ai/workflow/step_runner.rb +1 -0
  264. data/lib/rosett_ai/workflow/steps/rai_step.rb +1 -0
  265. data/lib/rosett_ai/yaml_loader.rb +2 -0
  266. data/lib/rosett_ai.rb +2 -0
  267. data/lib/scripts/generated/docker_hub_tags.rb +2 -0
  268. data/locales/ar.yml +2 -0
  269. data/locales/en.yml +5 -0
  270. data/locales/fr.yml +2 -0
  271. metadata +9 -189
  272. data/.ai-provenance.yml +0 -119
  273. data/.debride_whitelist +0 -186
  274. data/.fasterer.yml +0 -29
  275. data/.mdl_style.rb +0 -10
  276. data/.mdlrc +0 -3
  277. data/.mutant.yml +0 -49
  278. data/.namespace-allowlist +0 -42
  279. data/.reek.yml +0 -1040
  280. data/.rosett-ai/config.yml +0 -3
  281. data/.rspec +0 -5
  282. data/.rubocop.yml +0 -380
  283. data/.ruby-version +0 -1
  284. data/.yamllint +0 -51
  285. data/.yardopts +0 -12
  286. data/AI-DISCLOSURE.md +0 -48
  287. data/CLAUDE.md +0 -141
  288. data/CONTRIBUTING.md +0 -734
  289. data/INSTALL.md +0 -154
  290. data/LICENSE.md +0 -675
  291. data/QUICKSTART.md +0 -73
  292. data/Rakefile +0 -200
  293. data/SECURITY.md +0 -114
  294. data/cliff.toml +0 -52
  295. data/conf/behaviour/.gitkeep +0 -0
  296. data/conf/design/aaif_alignment.yml +0 -181
  297. data/conf/design/ab_testing.yml +0 -172
  298. data/conf/design/accessibility.yml +0 -84
  299. data/conf/design/ai_authorship.yml +0 -210
  300. data/conf/design/ai_provenance.yml +0 -224
  301. data/conf/design/ai_tool_configuration.yml +0 -207
  302. data/conf/design/architecture.yml +0 -139
  303. data/conf/design/autocompletion.yml +0 -115
  304. data/conf/design/backward_compatibility.yml +0 -112
  305. data/conf/design/behaviour_composition.yml +0 -246
  306. data/conf/design/build_rake_extraction.yml +0 -57
  307. data/conf/design/ci_pipeline.yml +0 -100
  308. data/conf/design/claude_code_configuration.yml +0 -157
  309. data/conf/design/compiler.yml +0 -128
  310. data/conf/design/comply.yml +0 -153
  311. data/conf/design/content_packs.yml +0 -84
  312. data/conf/design/desktop_integration.yml +0 -289
  313. data/conf/design/distribution.yml +0 -216
  314. data/conf/design/doctor.yml +0 -184
  315. data/conf/design/documentation.yml +0 -152
  316. data/conf/design/engine_architecture.yml +0 -257
  317. data/conf/design/error_handling.yml +0 -103
  318. data/conf/design/feature_flags.yml +0 -142
  319. data/conf/design/git_hooks.yml +0 -165
  320. data/conf/design/gui_plugins.yml +0 -475
  321. data/conf/design/i18n.yml +0 -84
  322. data/conf/design/integration_testing.yml +0 -56
  323. data/conf/design/licensing_system.yml +0 -88
  324. data/conf/design/lifecycle_management.yml +0 -208
  325. data/conf/design/mcp_integration.yml +0 -207
  326. data/conf/design/mcp_settings.yml +0 -126
  327. data/conf/design/migration.yml +0 -56
  328. data/conf/design/monitoring_observability.yml +0 -194
  329. data/conf/design/namespace_cleanup.yml +0 -145
  330. data/conf/design/plugin_test_segregation.yml +0 -145
  331. data/conf/design/policy_management.yml +0 -229
  332. data/conf/design/project_management.yml +0 -183
  333. data/conf/design/rai_mcp_asset_discovery.yml +0 -164
  334. data/conf/design/rai_mcp_server.yml +0 -605
  335. data/conf/design/release_management.yml +0 -117
  336. data/conf/design/retrofit.yml +0 -199
  337. data/conf/design/retrospective_analyzer.yml +0 -79
  338. data/conf/design/scope_hierarchy.yml +0 -352
  339. data/conf/design/security.yml +0 -115
  340. data/conf/design/session_retrospective.yml +0 -85
  341. data/conf/design/smart_ui_feedback.yml +0 -89
  342. data/conf/design/structured_logging.yml +0 -148
  343. data/conf/design/styles.yml +0 -123
  344. data/conf/design/test_peer_review.yml +0 -89
  345. data/conf/design/testing.yml +0 -136
  346. data/conf/design/threat_model.yml +0 -108
  347. data/conf/design/ui_framework.yml +0 -111
  348. data/conf/design/usage_optimization.yml +0 -122
  349. data/conf/design/version_management.yml +0 -60
  350. data/conf/design/workflow.yml +0 -227
  351. data/doc/AAIF_POSITIONING.md +0 -58
  352. data/doc/ADOPT.md +0 -224
  353. data/doc/AI_PROVENANCE.md +0 -139
  354. data/doc/ARCHITECTURE.md +0 -920
  355. data/doc/BEHAVIOUR.md +0 -409
  356. data/doc/BUILD.md +0 -138
  357. data/doc/CI_CD_RECIPES.md +0 -171
  358. data/doc/CLAUDE_SESSIONS_MOVED.md +0 -16
  359. data/doc/COMMAND_ANALYSIS.md +0 -229
  360. data/doc/CONFIGURATION.md +0 -281
  361. data/doc/DESIGN_AUDIT.md +0 -235
  362. data/doc/DESIGN_PEER_REVIEW.md +0 -771
  363. data/doc/DESKTOP.md +0 -447
  364. data/doc/ENGINES.md +0 -567
  365. data/doc/ENGINE_DEVELOPMENT_GUIDE.md +0 -417
  366. data/doc/FEATURE_AUDIT.md +0 -218
  367. data/doc/IMPLEMENTATION_PLAN.md +0 -669
  368. data/doc/INCIDENT_REPORT_2026-02-02.md +0 -251
  369. data/doc/MIGRATION_GUIDE.md +0 -88
  370. data/doc/PACKAGING.md +0 -232
  371. data/doc/PROJECT_DASHBOARD.md +0 -153
  372. data/doc/PULP_DEPLOYMENT.md +0 -164
  373. data/doc/QUALITY_FIX_SUMMARY.md +0 -110
  374. data/doc/QUICK_START.md +0 -162
  375. data/doc/REEK_CONFIGURATION.md +0 -166
  376. data/doc/REFERENCE.md +0 -253
  377. data/doc/REFERENCES.md +0 -324
  378. data/doc/SECURITY_REVIEW_CHECKLIST.md +0 -72
  379. data/doc/SESSION_2026-02-28_GTK4_HARDENING.md +0 -359
  380. data/doc/SETUP.md +0 -202
  381. data/doc/TEST_PEER_REVIEW.md +0 -152
  382. data/doc/THREAT_MODEL.md +0 -230
  383. data/doc/USAGE.md +0 -545
  384. data/doc/USER_MANUAL.md +0 -585
  385. data/doc/ai_test_review_checklist.md +0 -110
  386. data/doc/changes/2026-02-18-packaging-fpm.md +0 -155
  387. data/doc/changes/2026-02-19-testing-infrastructure.md +0 -221
  388. data/doc/changes/2026-02-20-security-implementation.md +0 -281
  389. data/doc/changes/2026-02-20-styles-implementation.md +0 -220
  390. data/doc/changes/2026-02-21-architecture-completion.md +0 -95
  391. data/doc/changes/2026-02-21-architecture-ui-layer.md +0 -253
  392. data/doc/changes/2026-02-21-cc-config-implementation.md +0 -108
  393. data/doc/changes/2026-02-21-ci-pipeline-implementation.md +0 -214
  394. data/doc/changes/2026-02-21-compiler-multi-target-pipeline.md +0 -241
  395. data/doc/changes/2026-02-21-config-design-show-commands.md +0 -61
  396. data/doc/changes/2026-02-21-design-implementation-overview.md +0 -455
  397. data/doc/changes/2026-02-21-lifecycle-management.md +0 -196
  398. data/doc/changes/2026-02-21-path-resolver.md +0 -128
  399. data/doc/changes/2026-02-24-ci-tmpdir-mutant-fetch.md +0 -45
  400. data/doc/changes/2026-03-01-ci-bundler-strategy.md +0 -120
  401. data/doc/changes/2026-03-20-security-hardening-phase2.md +0 -163
  402. data/doc/context/SESSION-HANDOFF.md +0 -69
  403. data/doc/context/ai-engine-usage-trends-2026.md +0 -80
  404. data/doc/context/plan-pluggable-engines.md +0 -590
  405. data/doc/decisions/001-flog-deferred.md +0 -32
  406. data/doc/decisions/002-path-resolution-strategy.md +0 -158
  407. data/doc/decisions/003-ui-adapter-selection.md +0 -193
  408. data/doc/decisions/004-design-document-validation.md +0 -179
  409. data/doc/decisions/005-package-splitting-strategy.md +0 -200
  410. data/doc/decisions/006-multi-engine-architecture.md +0 -147
  411. data/doc/decisions/007-engine-agnostic-pivot.md +0 -219
  412. data/doc/decisions/008-ci-bundler-strategy.md +0 -129
  413. data/doc/decisions/009-core-only-v1-release.md +0 -60
  414. data/doc/decisions/010-engine-debian-packaging.md +0 -66
  415. data/doc/decisions/011-context-aware-cli.md +0 -71
  416. data/doc/dependency_decisions.yml +0 -247
  417. data/doc/issues/001-wrapper-missing-environment-variables.md +0 -197
  418. data/doc/issues/002-embedded-ruby-wrong-prefix.md +0 -217
  419. data/doc/issues/003-smoke-test-false-positive.md +0 -127
  420. data/doc/issues/004-market-research-design-updates.md +0 -109
  421. data/doc/issues/005-compile-scope-coexistence.md +0 -161
  422. data/doc/locales/.gitkeep +0 -0
  423. data/doc/man/rai.1.ronn +0 -505
  424. data/doc/operations/packaging.md +0 -133
  425. data/doc/operations/rosett-ai-release.md +0 -65
  426. data/doc/reference/error-catalog.md +0 -107
  427. data/doc/reference/rosett-ai-technical-reference.pdf +0 -0
  428. data/doc/reference/src/Pictures/cover.jpg +0 -0
  429. data/doc/reference/src/Pictures/head1.jpg +0 -0
  430. data/doc/reference/src/Pictures/head2.jpg +0 -0
  431. data/doc/reference/src/Pictures/head3.jpg +0 -0
  432. data/doc/reference/src/Pictures/head4.jpg +0 -0
  433. data/doc/reference/src/Pictures/head5.jpg +0 -0
  434. data/doc/reference/src/Pictures/head6.jpg +0 -0
  435. data/doc/reference/src/Pictures/head7.jpg +0 -0
  436. data/doc/reference/src/Pictures/head8.jpg +0 -0
  437. data/doc/reference/src/StyleInd.ist +0 -4
  438. data/doc/reference/src/bibliography.bib +0 -79
  439. data/doc/reference/src/main.tex +0 -1288
  440. data/doc/reference/src/structure.tex +0 -303
  441. data/doc/rosett-ai-bookmarks.html +0 -301
  442. data/kitchen.yml +0 -46
  443. data/lib/rosett_ai/mcp/enforcement/.gitkeep +0 -0
  444. data/locales/.gitkeep +0 -0
  445. data/packaging/build-engine-deb.sh +0 -81
  446. data/packaging/scripts/postinst +0 -17
  447. data/packaging/scripts/postrm +0 -19
  448. data/packaging/scripts/prerm +0 -10
  449. data/packaging/wrapper.sh.template +0 -38
  450. data/rosett-ai.gemspec +0 -63
  451. data/rules/.gitkeep +0 -0
  452. data/scripts/publish/pulp_upload.sh +0 -123
  453. data/settings.json +0 -29
@@ -20,15 +20,29 @@ module RosettAi
20
20
  Rainbow.enabled = false if ENV.key?('NO_COLOR')
21
21
  end
22
22
 
23
+ # Render content in the UI backend.
24
+ #
25
+ # @param content [Object] the content
26
+ # @return [void]
23
27
  def render(content)
24
28
  $stdout.puts(content)
25
29
  end
26
30
 
31
+ # Render a table in the UI backend.
32
+ #
33
+ # @param headers [Object] the headers
34
+ # @param rows [Object] the rows
35
+ # @return [void]
27
36
  def display_table(headers, rows)
28
37
  table = ::Terminal::Table.new(headings: headers, rows: rows)
29
38
  $stdout.puts(table)
30
39
  end
31
40
 
41
+ # Prompt the user for interactive input.
42
+ #
43
+ # @param question [Object] the question
44
+ # @param choices [Object] the choices
45
+ # @return [String]
32
46
  def prompt_user(question, choices: nil)
33
47
  prompt = TTY::Prompt.new
34
48
  if choices
@@ -38,6 +52,10 @@ module RosettAi
38
52
  end
39
53
  end
40
54
 
55
+ # Display a spinner during a long-running operation.
56
+ #
57
+ # @param message [Object] the message
58
+ # @return [void]
41
59
  def show_spinner(message)
42
60
  spinner = TTY::Spinner.new("[:spinner] #{message}", format: :dots)
43
61
  spinner.auto_spin
@@ -49,6 +67,10 @@ module RosettAi
49
67
  raise e
50
68
  end
51
69
 
70
+ # Announce a message to the user via the UI backend.
71
+ #
72
+ # @param message [Object] the message
73
+ # @return [void]
52
74
  def announce(message)
53
75
  warn(message)
54
76
  end
@@ -10,6 +10,7 @@ module RosettAi
10
10
  # Thin wrapper around SchemaValidator. The SCHEMA_PATH constant is preserved
11
11
  # for backward compatibility with existing specs and code that references it.
12
12
  class BehaviourValidator < SchemaValidator
13
+ # @return [String] Path to the JSON Schema file used for validation.
13
14
  SCHEMA_PATH = 'conf/schemas/behaviour_schema.json'
14
15
 
15
16
  def initialize
@@ -4,9 +4,11 @@
4
4
  # Copyright (C) 2026 Hugo Antonio Sepulveda Manriquez / NeatNerds
5
5
 
6
6
  module RosettAi
7
+ # Schema-based YAML validators for behaviours, designs, tooling.
7
8
  module Validators
8
9
  # Validates design documents against the design JSON Schema.
9
10
  class DesignValidator < SchemaValidator
11
+ # @return [String] Path to the JSON Schema file used for validation.
10
12
  SCHEMA_PATH = 'conf/schemas/design_schema.json'
11
13
 
12
14
  def initialize
@@ -34,6 +34,10 @@ module RosettAi
34
34
  @errors.empty?
35
35
  end
36
36
 
37
+ # Validate the input and return any errors.
38
+ #
39
+ # @param file_path [Object] the file path
40
+ # @return [Array<Hash>]
37
41
  def validate(file_path)
38
42
  valid?(file_path)
39
43
  @errors
@@ -7,6 +7,7 @@ module RosettAi
7
7
  module Validators
8
8
  # Validates tooling configuration files against the tooling JSON Schema.
9
9
  class ToolingValidator < SchemaValidator
10
+ # @return [String] Path to the JSON Schema file used for validation.
10
11
  SCHEMA_PATH = 'conf/schemas/tooling_schema.json'
11
12
 
12
13
  def initialize
@@ -4,5 +4,6 @@
4
4
  # Copyright (C) 2026 Hugo Antonio Sepulveda Manriquez / NeatNerds
5
5
 
6
6
  module RosettAi
7
- VERSION = '1.3.3'
7
+ # @return [String] Current version of the rosett-ai gem.
8
+ VERSION = '1.5.9'
8
9
  end
@@ -12,12 +12,16 @@ module RosettAi
12
12
  # Scans non-binary project files for version strings matching the MAJOR.MINOR
13
13
  # series (e.g. 3.3.x) and reports any that don't match the expected PATCH level.
14
14
  class VersionConsistencyChecker
15
+ # @return [Array] Directory names excluded from consistency checking.
15
16
  EXCLUDED_DIRS = ['vendor', 'tmp', 'coverage', '.git', '.bundle'].freeze
17
+ # @return [Array] Filenames excluded from consistency checking.
16
18
  EXCLUDED_FILES = ['.ruby-version', 'CHANGELOG.md', 'Gemfile.lock',
17
19
  'Gemfile.integration.lock',
18
20
  'spec/rosett_ai/version_consistency_checker_spec.rb'].freeze
21
+ # @return [Array] Filename prefixes excluded from consistency checking.
19
22
  EXCLUDED_PREFIXES = ['doc/changes/', 'doc/claude-sessions/', 'doc/INCIDENT_REPORT',
20
23
  'doc/PACKAGING', 'doc/issues/', 'doc/context/', 'conf/design/'].freeze
24
+ # @return [Array] File extensions excluded from consistency checking.
21
25
  EXCLUDED_EXTENSIONS = ['.aux', '.toc', '.out', '.ptc', '.log', '.idx', '.ind',
22
26
  '.ilg', '.bbl', '.blg', '.bcf', '.fls', '.fdb_latexmk',
23
27
  '.run.xml', '.synctex.gz'].freeze
@@ -29,6 +33,8 @@ module RosettAi
29
33
  @results = { expected_version: nil, references: [], mismatches: [], consistent: true }
30
34
  end
31
35
 
36
+ # Run the check and return results.
37
+ # @return [Hash]
32
38
  def check
33
39
  version = read_ruby_version
34
40
  @results = { expected_version: version, references: [], mismatches: [], consistent: true }
@@ -9,6 +9,7 @@ require_relative 'step_runner'
9
9
  require_relative 'audit_log'
10
10
 
11
11
  module RosettAi
12
+ # Declarative workflow engine and step execution.
12
13
  module Workflow
13
14
  # Orchestrates declarative workflow execution.
14
15
  #
@@ -13,6 +13,7 @@ module RosettAi
13
13
  # @author hugo
14
14
  # @author claude
15
15
  class Manager
16
+ # @return [Object] Default directory for workflow definition files.
16
17
  WORKFLOW_DIR = File.join(Dir.home, '.claude', 'conf', 'workflows')
17
18
 
18
19
  def initialize
@@ -15,7 +15,9 @@ module RosettAi
15
15
  # @author hugo
16
16
  # @author claude
17
17
  class SchemaValidator
18
+ # @return [Integer] Maximum number of steps allowed in a workflow.
18
19
  MAX_STEPS = 50
20
+ # @return [Object] Path to the JSON Schema file used for validation.
19
21
  SCHEMA_PATH = File.expand_path('../../../conf/schemas/workflow_schema.json', __dir__)
20
22
 
21
23
  # @param data [Hash] parsed workflow YAML
@@ -17,6 +17,7 @@ module RosettAi
17
17
  # @author hugo
18
18
  # @author claude
19
19
  class StepRunner
20
+ # @return [Hash] Supported workflow step type identifiers.
20
21
  STEP_TYPES = {
21
22
  'shell' => Steps::ShellStep,
22
23
  'rai' => Steps::RaiStep,
@@ -5,6 +5,7 @@
5
5
 
6
6
  module RosettAi
7
7
  module Workflow
8
+ # Individual workflow step type implementations.
8
9
  module Steps
9
10
  # Executes an internal rai CLI subcommand.
10
11
  #
@@ -12,7 +12,9 @@ module RosettAi
12
12
  # denial-of-service via maliciously crafted YAML payloads.
13
13
  module YamlLoader
14
14
  MAX_FILE_SIZE = 1_048_576 # 1 MB
15
+ # @return [Integer] Maximum nesting depth for YAML loading.
15
16
  MAX_DEPTH = 10
17
+ # @return [Integer] Maximum number of keys allowed in loaded YAML.
16
18
  MAX_KEY_COUNT = 1000
17
19
 
18
20
  # Loads and validates a YAML file with bounds checking.
data/lib/rosett_ai.rb CHANGED
@@ -75,6 +75,8 @@ module RosettAi
75
75
  class GitHooksError < Error; end
76
76
  # Raised when MCP server or admin operations fail.
77
77
  class McpError < Error; end
78
+ # Raised when Claude Code session hook installation fails.
79
+ class SessionHooksError < Error; end
78
80
 
79
81
  # @!endgroup
80
82
 
@@ -23,7 +23,9 @@ require 'optparse'
23
23
 
24
24
  # Queries Docker Hub Registry API v2 for official image tags.
25
25
  module DockerHub
26
+ # Base URL for the Docker Hub Registry API v2.
26
27
  REGISTRY_API = 'https://registry.hub.docker.com/v2'
28
+ # Number of tags to request per paginated API call.
27
29
  PAGE_SIZE = 100
28
30
 
29
31
  # Fetch tags for a library (official) image from Docker Hub.
data/locales/ar.yml CHANGED
@@ -1,4 +1,6 @@
1
1
  ---
2
+ # SPDX-FileCopyrightText: 2025-2026 Hugo Antonio Sepulveda Manriquez <query@neatnerds.be>
3
+ # SPDX-License-Identifier: GPL-3.0-only
2
4
  ar:
3
5
  rosett_ai:
4
6
  meta:
data/locales/en.yml CHANGED
@@ -1,4 +1,6 @@
1
1
  ---
2
+ # SPDX-FileCopyrightText: 2025-2026 Hugo Antonio Sepulveda Manriquez <query@neatnerds.be>
3
+ # SPDX-License-Identifier: GPL-3.0-only
2
4
  en:
3
5
  rosett_ai:
4
6
  meta:
@@ -29,6 +31,9 @@ en:
29
31
  target_deprecated: "[DEPRECATED] --target is deprecated, use --engine instead"
30
32
  target_deprecated_strict: "--target is deprecated. Use --engine instead (--strict mode)"
31
33
  engine_and_target_conflict: "Cannot use both --engine and --target. Use --engine only."
34
+ deduplicated: "Deduplicated"
35
+ deduplicated_detail: "Deduplicated: %{filename} (identical to global)"
36
+ scope_project_no_project: "Cannot use --scope project: no project detected (no .rosett-ai/ directory found)"
32
37
  config:
33
38
  scope_not_found: "Scope file not found: %{path}. Valid scopes: %{scopes}"
34
39
  no_scopes: "No scope files found in conf/claude_code/"
data/locales/fr.yml CHANGED
@@ -1,4 +1,6 @@
1
1
  ---
2
+ # SPDX-FileCopyrightText: 2025-2026 Hugo Antonio Sepulveda Manriquez <query@neatnerds.be>
3
+ # SPDX-License-Identifier: GPL-3.0-only
2
4
  fr:
3
5
  rosett_ai:
4
6
  meta:
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rosett-ai
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.3
4
+ version: 1.5.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hugo Antonio Sepulveda Manriquez
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2026-04-19 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: ed25519
@@ -254,95 +253,18 @@ email:
254
253
  - query@neatnerds.be
255
254
  executables:
256
255
  - rai
256
+ - raictl
257
257
  extensions: []
258
258
  extra_rdoc_files: []
259
259
  files:
260
- - ".ai-provenance.yml"
261
- - ".debride_whitelist"
262
- - ".fasterer.yml"
263
- - ".mdl_style.rb"
264
- - ".mdlrc"
265
- - ".mutant.yml"
266
- - ".namespace-allowlist"
267
- - ".reek.yml"
268
- - ".rosett-ai/config.yml"
269
- - ".rspec"
270
- - ".rubocop.yml"
271
- - ".ruby-version"
272
- - ".yamllint"
273
- - ".yardopts"
274
- - AI-DISCLOSURE.md
275
260
  - CHANGELOG.md
276
- - CLAUDE.md
277
- - CONTRIBUTING.md
278
- - INSTALL.md
279
261
  - LICENSE
280
- - LICENSE.md
281
- - QUICKSTART.md
282
262
  - README.md
283
- - Rakefile
284
- - SECURITY.md
285
263
  - bin/rai
286
- - cliff.toml
264
+ - bin/raictl
287
265
  - conf/adopt_redactions.yml
288
- - conf/behaviour/.gitkeep
289
266
  - conf/compliance/cra_rules.yml
290
267
  - conf/compliance/license_rules.yml
291
- - conf/design/aaif_alignment.yml
292
- - conf/design/ab_testing.yml
293
- - conf/design/accessibility.yml
294
- - conf/design/ai_authorship.yml
295
- - conf/design/ai_provenance.yml
296
- - conf/design/ai_tool_configuration.yml
297
- - conf/design/architecture.yml
298
- - conf/design/autocompletion.yml
299
- - conf/design/backward_compatibility.yml
300
- - conf/design/behaviour_composition.yml
301
- - conf/design/build_rake_extraction.yml
302
- - conf/design/ci_pipeline.yml
303
- - conf/design/claude_code_configuration.yml
304
- - conf/design/compiler.yml
305
- - conf/design/comply.yml
306
- - conf/design/content_packs.yml
307
- - conf/design/desktop_integration.yml
308
- - conf/design/distribution.yml
309
- - conf/design/doctor.yml
310
- - conf/design/documentation.yml
311
- - conf/design/engine_architecture.yml
312
- - conf/design/error_handling.yml
313
- - conf/design/feature_flags.yml
314
- - conf/design/git_hooks.yml
315
- - conf/design/gui_plugins.yml
316
- - conf/design/i18n.yml
317
- - conf/design/integration_testing.yml
318
- - conf/design/licensing_system.yml
319
- - conf/design/lifecycle_management.yml
320
- - conf/design/mcp_integration.yml
321
- - conf/design/mcp_settings.yml
322
- - conf/design/migration.yml
323
- - conf/design/monitoring_observability.yml
324
- - conf/design/namespace_cleanup.yml
325
- - conf/design/plugin_test_segregation.yml
326
- - conf/design/policy_management.yml
327
- - conf/design/project_management.yml
328
- - conf/design/rai_mcp_asset_discovery.yml
329
- - conf/design/rai_mcp_server.yml
330
- - conf/design/release_management.yml
331
- - conf/design/retrofit.yml
332
- - conf/design/retrospective_analyzer.yml
333
- - conf/design/scope_hierarchy.yml
334
- - conf/design/security.yml
335
- - conf/design/session_retrospective.yml
336
- - conf/design/smart_ui_feedback.yml
337
- - conf/design/structured_logging.yml
338
- - conf/design/styles.yml
339
- - conf/design/test_peer_review.yml
340
- - conf/design/testing.yml
341
- - conf/design/threat_model.yml
342
- - conf/design/ui_framework.yml
343
- - conf/design/usage_optimization.yml
344
- - conf/design/version_management.yml
345
- - conf/design/workflow.yml
346
268
  - conf/mcp/server_defaults.yml
347
269
  - conf/mcp/trust.yml
348
270
  - conf/packaging/core.yml
@@ -355,6 +277,7 @@ files:
355
277
  - conf/review/questionnaire.yml
356
278
  - conf/review/rosett-ai-core.yml
357
279
  - conf/schemas/ai_config_schema.json
280
+ - conf/schemas/autoqueue.schema.json
358
281
  - conf/schemas/behaviour_schema.json
359
282
  - conf/schemas/compliance_rule_schema.json
360
283
  - conf/schemas/content_pack_manifest_schema.json
@@ -376,98 +299,6 @@ files:
376
299
  - conf/tooling/tools.yml
377
300
  - dist/rosett-ai-mcp.service
378
301
  - dist/rosett-ai-mcp.yml.default
379
- - doc/AAIF_POSITIONING.md
380
- - doc/ADOPT.md
381
- - doc/AI_PROVENANCE.md
382
- - doc/ARCHITECTURE.md
383
- - doc/BEHAVIOUR.md
384
- - doc/BUILD.md
385
- - doc/CI_CD_RECIPES.md
386
- - doc/CLAUDE_SESSIONS_MOVED.md
387
- - doc/COMMAND_ANALYSIS.md
388
- - doc/CONFIGURATION.md
389
- - doc/DESIGN_AUDIT.md
390
- - doc/DESIGN_PEER_REVIEW.md
391
- - doc/DESKTOP.md
392
- - doc/ENGINES.md
393
- - doc/ENGINE_DEVELOPMENT_GUIDE.md
394
- - doc/FEATURE_AUDIT.md
395
- - doc/IMPLEMENTATION_PLAN.md
396
- - doc/INCIDENT_REPORT_2026-02-02.md
397
- - doc/MIGRATION_GUIDE.md
398
- - doc/PACKAGING.md
399
- - doc/PROJECT_DASHBOARD.md
400
- - doc/PULP_DEPLOYMENT.md
401
- - doc/QUALITY_FIX_SUMMARY.md
402
- - doc/QUICK_START.md
403
- - doc/REEK_CONFIGURATION.md
404
- - doc/REFERENCE.md
405
- - doc/REFERENCES.md
406
- - doc/SECURITY_REVIEW_CHECKLIST.md
407
- - doc/SESSION_2026-02-28_GTK4_HARDENING.md
408
- - doc/SETUP.md
409
- - doc/TEST_PEER_REVIEW.md
410
- - doc/THREAT_MODEL.md
411
- - doc/USAGE.md
412
- - doc/USER_MANUAL.md
413
- - doc/ai_test_review_checklist.md
414
- - doc/changes/2026-02-18-packaging-fpm.md
415
- - doc/changes/2026-02-19-testing-infrastructure.md
416
- - doc/changes/2026-02-20-security-implementation.md
417
- - doc/changes/2026-02-20-styles-implementation.md
418
- - doc/changes/2026-02-21-architecture-completion.md
419
- - doc/changes/2026-02-21-architecture-ui-layer.md
420
- - doc/changes/2026-02-21-cc-config-implementation.md
421
- - doc/changes/2026-02-21-ci-pipeline-implementation.md
422
- - doc/changes/2026-02-21-compiler-multi-target-pipeline.md
423
- - doc/changes/2026-02-21-config-design-show-commands.md
424
- - doc/changes/2026-02-21-design-implementation-overview.md
425
- - doc/changes/2026-02-21-lifecycle-management.md
426
- - doc/changes/2026-02-21-path-resolver.md
427
- - doc/changes/2026-02-24-ci-tmpdir-mutant-fetch.md
428
- - doc/changes/2026-03-01-ci-bundler-strategy.md
429
- - doc/changes/2026-03-20-security-hardening-phase2.md
430
- - doc/context/SESSION-HANDOFF.md
431
- - doc/context/ai-engine-usage-trends-2026.md
432
- - doc/context/plan-pluggable-engines.md
433
- - doc/decisions/001-flog-deferred.md
434
- - doc/decisions/002-path-resolution-strategy.md
435
- - doc/decisions/003-ui-adapter-selection.md
436
- - doc/decisions/004-design-document-validation.md
437
- - doc/decisions/005-package-splitting-strategy.md
438
- - doc/decisions/006-multi-engine-architecture.md
439
- - doc/decisions/007-engine-agnostic-pivot.md
440
- - doc/decisions/008-ci-bundler-strategy.md
441
- - doc/decisions/009-core-only-v1-release.md
442
- - doc/decisions/010-engine-debian-packaging.md
443
- - doc/decisions/011-context-aware-cli.md
444
- - doc/dependency_decisions.yml
445
- - doc/issues/001-wrapper-missing-environment-variables.md
446
- - doc/issues/002-embedded-ruby-wrong-prefix.md
447
- - doc/issues/003-smoke-test-false-positive.md
448
- - doc/issues/004-market-research-design-updates.md
449
- - doc/issues/005-compile-scope-coexistence.md
450
- - doc/locales/.gitkeep
451
- - doc/man/rai.1.ronn
452
- - doc/operations/packaging.md
453
- - doc/operations/rosett-ai-release.md
454
- - doc/reference/error-catalog.md
455
- - doc/reference/rosett-ai-technical-reference.pdf
456
- - doc/reference/src/Pictures/cover.jpg
457
- - doc/reference/src/Pictures/head1.jpg
458
- - doc/reference/src/Pictures/head2.jpg
459
- - doc/reference/src/Pictures/head3.jpg
460
- - doc/reference/src/Pictures/head4.jpg
461
- - doc/reference/src/Pictures/head5.jpg
462
- - doc/reference/src/Pictures/head6.jpg
463
- - doc/reference/src/Pictures/head7.jpg
464
- - doc/reference/src/Pictures/head8.jpg
465
- - doc/reference/src/StyleInd.ist
466
- - doc/reference/src/bibliography.bib
467
- - doc/reference/src/main.tex
468
- - doc/reference/src/structure.tex
469
- - doc/rosett-ai-bookmarks.html
470
- - kitchen.yml
471
302
  - lib/rosett_ai.rb
472
303
  - lib/rosett_ai/adopter/executor_resolver.rb
473
304
  - lib/rosett_ai/adopter/local_analysis_collector.rb
@@ -584,7 +415,6 @@ files:
584
415
  - lib/rosett_ai/mcp/admin/health_checker.rb
585
416
  - lib/rosett_ai/mcp/admin/registry.rb
586
417
  - lib/rosett_ai/mcp/admin/schema_validator.rb
587
- - lib/rosett_ai/mcp/enforcement/.gitkeep
588
418
  - lib/rosett_ai/mcp/enforcement/hook_generator.rb
589
419
  - lib/rosett_ai/mcp/enforcement/validator.rb
590
420
  - lib/rosett_ai/mcp/governance.rb
@@ -696,6 +526,7 @@ files:
696
526
  - lib/rosett_ai/retrofit/scanner.rb
697
527
  - lib/rosett_ai/retrofit/secret_detector.rb
698
528
  - lib/rosett_ai/secrets_resolver.rb
529
+ - lib/rosett_ai/session_hooks/installer.rb
699
530
  - lib/rosett_ai/smart_feedback/suggester.rb
700
531
  - lib/rosett_ai/smart_feedback/thor_middleware.rb
701
532
  - lib/rosett_ai/structured_logger.rb
@@ -707,6 +538,7 @@ files:
707
538
  - lib/rosett_ai/text_sanitizer.rb
708
539
  - lib/rosett_ai/thor/cli.rb
709
540
  - lib/rosett_ai/thor/tasks/adopt.rb
541
+ - lib/rosett_ai/thor/tasks/backfill_user_yml.rb
710
542
  - lib/rosett_ai/thor/tasks/backup.rb
711
543
  - lib/rosett_ai/thor/tasks/behaviour.rb
712
544
  - lib/rosett_ai/thor/tasks/build.rb
@@ -765,19 +597,9 @@ files:
765
597
  - lib/rubocop/cop/rosett_ai/unsafe_yaml_load.rb
766
598
  - lib/rubocop/rosett_ai.rb
767
599
  - lib/scripts/generated/docker_hub_tags.rb
768
- - locales/.gitkeep
769
600
  - locales/ar.yml
770
601
  - locales/en.yml
771
602
  - locales/fr.yml
772
- - packaging/build-engine-deb.sh
773
- - packaging/scripts/postinst
774
- - packaging/scripts/postrm
775
- - packaging/scripts/prerm
776
- - packaging/wrapper.sh.template
777
- - rosett-ai.gemspec
778
- - rules/.gitkeep
779
- - scripts/publish/pulp_upload.sh
780
- - settings.json
781
603
  - share/applications/be.neatnerds.rosettai.desktop
782
604
  - share/dbus-1/interfaces/be.neatnerds.rosettai.xml
783
605
  - share/dbus-1/services/be.neatnerds.rosettai.service
@@ -788,7 +610,6 @@ licenses:
788
610
  metadata:
789
611
  homepage_uri: https://gitlab.neatnerds.be/foss/rosett-ai/rosett-ai
790
612
  source_code_uri: https://gitlab.neatnerds.be/foss/rosett-ai/rosett-ai
791
- post_install_message:
792
613
  rdoc_options: []
793
614
  require_paths:
794
615
  - lib
@@ -796,15 +617,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
796
617
  requirements:
797
618
  - - ">="
798
619
  - !ruby/object:Gem::Version
799
- version: 3.3.0
620
+ version: '3.4'
800
621
  required_rubygems_version: !ruby/object:Gem::Requirement
801
622
  requirements:
802
623
  - - ">="
803
624
  - !ruby/object:Gem::Version
804
625
  version: '0'
805
626
  requirements: []
806
- rubygems_version: 3.5.22
807
- signing_key:
627
+ rubygems_version: 3.6.9
808
628
  specification_version: 4
809
629
  summary: Rosett-AI — author AI assistant rules once, compile to many
810
630
  test_files: []
data/.ai-provenance.yml DELETED
@@ -1,119 +0,0 @@
1
- ---
2
- provenance_version: 1
3
- entries:
4
- - commit: pending
5
- timestamp: '2026-04-14T20:00:00Z'
6
- session_id: W3-RELEASE-PREP
7
- contributor: Hugo Antonio Sepulveda Manriquez <hugo@neatnerds.be>
8
- ai_tool: Claude Opus 4.6 (Anthropic)
9
- ai_role: AI-Co-Author
10
- files:
11
- - path: Rakefile
12
- source_type: modified_code
13
- - path: README.md
14
- source_type: documentation
15
- - path: CLAUDE.md
16
- source_type: documentation
17
- - path: doc/USER_MANUAL.md
18
- source_type: documentation
19
- - path: lib/rosett_ai/thor/cli.rb
20
- source_type: modified_code
21
- - path: spec/rosett_ai/thor/cli_spec.rb
22
- source_type: test_code
23
- - path: LICENSE
24
- source_type: documentation
25
- scope: Release preparation for v1.2.0 — Rakefile extraction, README automation, honest-label diagrams
26
- review_status: human-reviewed
27
- - commit: ac855641b940e6ebc1daa94e13e8e5e2e8ae7beb
28
- timestamp: '2026-04-15T08:30:00Z'
29
- session_id: W3-SHIP-V120
30
- contributor: Hugo Antonio Sepulveda Manriquez <hugo@neatnerds.be>
31
- ai_tool: Claude Opus 4.6 (Anthropic)
32
- ai_role: AI-Co-Author
33
- files:
34
- - path: spec/integration/engine_circular_require_spec.rb
35
- source_type: test_code
36
- scope: Integration test for engine circular require prevention
37
- review_status: human-reviewed
38
- - commit: c14da8f016166d1d283b2c921f89a726d080055e
39
- timestamp: '2026-04-15T09:00:00Z'
40
- session_id: W3-SHIP-V120
41
- contributor: Hugo Antonio Sepulveda Manriquez <hugo@neatnerds.be>
42
- ai_tool: Claude Opus 4.6 (Anthropic)
43
- ai_role: AI-Co-Author
44
- files:
45
- - path: README.md
46
- source_type: documentation
47
- scope: Update README test count to 4672
48
- review_status: human-reviewed
49
- - commit: 7f8735e566e841e5d369712f385cbbf245c5ab40
50
- timestamp: '2026-04-15T09:10:00Z'
51
- session_id: W3-SHIP-V120
52
- contributor: Hugo Antonio Sepulveda Manriquez <hugo@neatnerds.be>
53
- ai_tool: Claude Opus 4.6 (Anthropic)
54
- ai_role: AI-Co-Author
55
- files:
56
- - path: spec/integration/compile_end_to_end_spec.rb
57
- source_type: test_code
58
- scope: Fix agents_md e2e test expectation to match title-cased output
59
- review_status: human-reviewed
60
- - commit: 9d41be667f3a868aa2cd3c8c09c370a8d626977b
61
- timestamp: '2026-04-15T09:15:00Z'
62
- session_id: W3-SHIP-V120
63
- contributor: Hugo Antonio Sepulveda Manriquez <hugo@neatnerds.be>
64
- ai_tool: Claude Opus 4.6 (Anthropic)
65
- ai_role: AI-Co-Author
66
- files:
67
- - path: spec/integration/engine_registration_spec.rb
68
- source_type: test_code
69
- - path: spec/rosett_ai/compiler/backend_spec.rb
70
- source_type: test_code
71
- scope: Fix title-case expectation and skip backend routing test
72
- review_status: human-reviewed
73
- - commit: f488dbfad8528d321c35f73b99a0fc0be6f24706
74
- timestamp: '2026-04-15T09:30:00Z'
75
- session_id: W3-SHIP-V120
76
- contributor: Hugo Antonio Sepulveda Manriquez <hugo@neatnerds.be>
77
- ai_tool: Claude Opus 4.6 (Anthropic)
78
- ai_role: AI-Co-Author
79
- files:
80
- - path: lib/rosett_ai/path_resolver.rb
81
- source_type: modified_code
82
- - path: lib/rosett_ai/behaviour/manager.rb
83
- source_type: modified_code
84
- - path: lib/rosett_ai/thor/tasks/behaviour.rb
85
- source_type: modified_code
86
- - path: .reek.yml
87
- source_type: configuration
88
- - path: spec/rosett_ai/behaviour/manager_spec.rb
89
- source_type: test_code
90
- - path: spec/rosett_ai/thor/tasks/behaviour_spec.rb
91
- source_type: test_code
92
- scope: 3-tier behaviour lookup chain (project > XDG user > packaged) and XDG-compliant Manager
93
- review_status: human-reviewed
94
- - commit: c80a5313acd423d17e460afab29784d053c3927c
95
- timestamp: '2026-04-15T09:45:00Z'
96
- session_id: W3-SHIP-V120
97
- contributor: Hugo Antonio Sepulveda Manriquez <hugo@neatnerds.be>
98
- ai_tool: Claude Opus 4.6 (Anthropic)
99
- ai_role: AI-Co-Author
100
- files:
101
- - path: lib/rosett_ai/thor/tasks/compile.rb
102
- source_type: modified_code
103
- - path: .reek.yml
104
- source_type: configuration
105
- scope: Fix compile pipeline 3-tier source lookup with correct precedence ordering
106
- review_status: human-reviewed
107
- - commit: 6c570e60a4c25cf6bf9ddf0e3669645c90343ef0
108
- timestamp: '2026-04-15T10:00:00Z'
109
- session_id: W3-SHIP-V120
110
- contributor: Hugo Antonio Sepulveda Manriquez <hugo@neatnerds.be>
111
- ai_tool: Claude Opus 4.6 (Anthropic)
112
- ai_role: AI-Co-Author
113
- files:
114
- - path: spec/integration/xdg_behaviour_lookup_spec.rb
115
- source_type: test_code
116
- - path: spec/rosett_ai/path_resolver_spec.rb
117
- source_type: test_code
118
- scope: Regression tests for XDG 3-tier behaviour lookup, precedence, and compile
119
- review_status: human-reviewed