rosett-ai 1.3.3 → 1.5.10

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 +413 -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 +106 -21
  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
@@ -1,3 +0,0 @@
1
- ---
2
- project_name: rosett-ai
3
- default_engine: claude
data/.rspec DELETED
@@ -1,5 +0,0 @@
1
- --color
2
- --format documentation
3
- --require spec_helper
4
- --order random
5
- --warnings
data/.rubocop.yml DELETED
@@ -1,380 +0,0 @@
1
- # Rosett-AI - RuboCop Configuration
2
- #
3
- # MFA disabled due to OTP timing issues when pushing gems
4
- Gemspec/RequireMFA:
5
- Enabled: false
6
- #
7
- # Use plugins for extensions that support it
8
- plugins:
9
- - rubocop-factory_bot
10
- - rubocop-performance
11
- - rubocop-rake
12
- - rubocop-rspec
13
- - rubocop-thread_safety
14
- #
15
- # Custom project cops
16
- require:
17
- - ./lib/rubocop/rosett_ai
18
- #
19
- # === Custom Security Cops ===
20
- #
21
- RosettAi/UnsafeYamlLoad:
22
- Enabled: true
23
- Severity: error
24
- #
25
- RosettAi/ShellInterpolation:
26
- Enabled: true
27
- Severity: error
28
- #
29
- # Advisory cops (warning) - existing safe code uses frozen registries
30
- RosettAi/UnsafeConstGet:
31
- Enabled: true
32
- Severity: warning
33
- Exclude:
34
- # RuboCop cops use on_send which is part of the AST API
35
- - 'lib/rubocop/cop/**/*'
36
- # Test helpers use dynamic patterns for setup
37
- - 'spec/**/*'
38
- # These files use frozen PARSER_REGISTRY/CATEGORIES constants (safe pattern)
39
- - 'lib/rosett_ai/retrofit/engine.rb'
40
- - 'lib/rosett_ai/thor/tasks/validate.rb'
41
- # Logger const_get catches NameError and falls back to WARN (safe)
42
- - 'lib/rosett_ai/structured_logger.rb'
43
- #
44
- RosettAi/UnsafeSend:
45
- Enabled: true
46
- Severity: warning
47
- Exclude:
48
- # GTK4 apps use send for action dispatch with validated method names
49
- - 'lib/rosett_ai/desktop/**/*'
50
- # GUI logger delegates via send with internally-defined method names
51
- - 'lib/rosett_ai/desktop/gui_logger.rb'
52
- # Thor tasks use send for Rainbow color methods (hardcoded)
53
- - 'lib/rosett_ai/thor/tasks/**/*'
54
- # RuboCop cops test AST patterns
55
- - 'lib/rubocop/cop/**/*'
56
- # Test helpers may use dynamic dispatch
57
- - 'spec/**/*'
58
- #
59
- # === Thread Safety ===
60
- #
61
- # Thread safety cops are advisory for nncc — many patterns that trigger these
62
- # cops are intentional (singletons, registries, parallel dispatch). We exclude
63
- # files with known-safe patterns and keep the cops enabled to catch new issues.
64
- #
65
- ThreadSafety:
66
- Enabled: true
67
- Exclude:
68
- # Test files may use patterns that trigger thread safety cops for setup/teardown
69
- - 'spec/**/*'
70
- #
71
- ThreadSafety/ClassInstanceVariable:
72
- Enabled: true
73
- Exclude:
74
- # Module-level memoization for singletons (standard Ruby pattern)
75
- - 'lib/rosett_ai.rb'
76
- # Singleton patterns and registries (intentional)
77
- - 'lib/rosett_ai/dbus/**/*'
78
- - 'lib/rosett_ai/deprecation.rb'
79
- - 'lib/rosett_ai/desktop/**/*'
80
- - 'lib/rosett_ai/doctor.rb'
81
- - 'lib/rosett_ai/doctor/check.rb'
82
- - 'lib/rosett_ai/feature_flags.rb'
83
- - 'lib/rosett_ai/path_resolver.rb'
84
- - 'lib/rosett_ai/plugins/registry.rb'
85
- - 'lib/rosett_ai/structured_logger.rb'
86
- - 'lib/rosett_ai/telemetry/reporter.rb'
87
- - 'lib/rosett_ai/thor/tasks/build.rb'
88
- - 'lib/rosett_ai/ui/registry.rb'
89
- - 'spec/**/*'
90
- #
91
- ThreadSafety/NewThread:
92
- Enabled: true
93
- Exclude:
94
- # D-Bus service and focus adapters require threads by design
95
- - 'lib/rosett_ai/dbus/**/*'
96
- # Quorum dispatcher uses threads for parallel engine execution
97
- - 'lib/rosett_ai/quorum/dispatcher.rb'
98
- - 'spec/**/*'
99
- #
100
- ThreadSafety/DirChdir:
101
- Enabled: true
102
- Exclude:
103
- # Tests commonly use Dir.chdir for isolation
104
- - 'spec/**/*'
105
- # Reference compiler needs chdir for relative path handling
106
- - 'lib/rosett_ai/documentation/reference_compiler.rb'
107
- # Gemspec uses chdir for file listing
108
- - '*.gemspec'
109
- #
110
- ThreadSafety/ClassAndModuleAttributes:
111
- Enabled: true
112
- Exclude:
113
- - 'spec/**/*'
114
- #
115
- ThreadSafety/MutableClassInstanceVariable:
116
- Enabled: true
117
- Exclude:
118
- - 'spec/**/*'
119
- # Registry patterns use mutable hashes intentionally
120
- - 'lib/rosett_ai/deprecation.rb'
121
- - 'lib/rosett_ai/doctor.rb'
122
- - 'lib/rosett_ai/ui/registry.rb'
123
- #
124
- AllCops:
125
- TargetRubyVersion: 3.3
126
- NewCops: enable
127
- Exclude:
128
- - 'vendor/**/*'
129
- - 'tmp/**/*'
130
- - 'cache/**/*'
131
- - 'coverage/**/*'
132
- - 'pkg/**/*'
133
- #
134
- # Layout
135
- Layout/LineLength:
136
- Max: 120
137
- AllowedPatterns:
138
- - '^\s*#'
139
- - '^\s*"'
140
- - "^\\s*'"
141
- #
142
- Layout/MultilineMethodCallIndentation:
143
- EnforcedStyle: indented
144
- #
145
- Layout/FirstArrayElementIndentation:
146
- EnforcedStyle: consistent
147
- #
148
- Layout/FirstHashElementIndentation:
149
- EnforcedStyle: consistent
150
- #
151
- # Metrics
152
- Metrics/AbcSize:
153
- Max: 25
154
- Exclude:
155
- # Test setup blocks are inherently verbose (let chains, before hooks, multi-step arrange)
156
- - 'spec/**/*'
157
- # Thor tasks orchestrate multi-stage workflows (build, backup, compile) with sequential steps
158
- - 'lib/rosett_ai/thor/tasks/**/*'
159
- # Compiler render/diff methods handle complex string assembly and multi-pass transformation
160
- - 'lib/rosett_ai/compiler/**/*'
161
- # GTK4 desktop app builds UI widget trees — inherently creates many objects
162
- - 'lib/rosett_ai/desktop/**/*'
163
- # Engine backends render markdown with complex string assembly
164
- - 'lib/rosett_ai/engines/*/backend.rb'
165
- #
166
- Metrics/BlockLength:
167
- Exclude:
168
- # RSpec describe/context blocks are naturally long by design
169
- - 'spec/**/*'
170
- # Standard Ruby exclusions — gemspec, Gemfile, and Rakefile use DSL blocks
171
- - '*.gemspec'
172
- - 'Gemfile'
173
- - 'Rakefile'
174
- #
175
- Metrics/ModuleLength:
176
- Exclude:
177
- # Root module declares 20+ error classes (one-liners) + module-level singletons
178
- - 'lib/rosett_ai.rb'
179
- # Instructions module contains 7 markdown heredoc sections — content, not complexity
180
- - 'lib/rosett_ai/mcp/instructions.rb'
181
- # Governance module is a tool/resource/prompt registry — grows with each tool
182
- - 'lib/rosett_ai/mcp/governance.rb'
183
- #
184
- Metrics/ClassLength:
185
- Max: 200
186
- Exclude:
187
- # BuildPackage orchestrates a 9-stage build pipeline with per-stage methods and formatting
188
- - 'lib/rosett_ai/thor/tasks/build.rb'
189
- # Documentation has scan + apply + reference compilation + locale + status methods
190
- - 'lib/rosett_ai/thor/tasks/documentation.rb'
191
- # Compile orchestrates engine resolution + compilation + orphan removal + locale compilation
192
- - 'lib/rosett_ai/thor/tasks/compile.rb'
193
- # GTK4 desktop app has many UI builder methods and action handlers
194
- - 'lib/rosett_ai/desktop/**/*'
195
- # Thor task classes grow with long_desc blocks (help text, not logic)
196
- - 'lib/rosett_ai/thor/tasks/mcp.rb'
197
- - 'lib/rosett_ai/thor/tasks/dbus.rb'
198
- - 'lib/rosett_ai/thor/tasks/release.rb'
199
- # Init has long_desc blocks + multiple scope setup methods + MCP registration
200
- - 'lib/rosett_ai/thor/tasks/init.rb'
201
- - 'lib/rosett_ai/thor/tasks/tooling.rb'
202
- - 'lib/rosett_ai/thor/tasks/hooks.rb'
203
- - 'lib/rosett_ai/thor/tasks/backup.rb'
204
- #
205
- Metrics/MethodLength:
206
- Max: 25
207
- Exclude:
208
- # Test methods contain multi-step setup and assertion sequences
209
- - 'spec/**/*'
210
- # Thor task methods orchestrate multi-stage CLI workflows with inline output formatting
211
- - 'lib/rosett_ai/thor/tasks/**/*'
212
- # GTK4 desktop app methods build widget trees with multiple configuration steps
213
- - 'lib/rosett_ai/desktop/**/*'
214
- #
215
- Metrics/CyclomaticComplexity:
216
- Max: 10
217
- #
218
- Metrics/PerceivedComplexity:
219
- Max: 10
220
- #
221
- # Naming
222
- Naming/FileName:
223
- Exclude:
224
- - 'Gemfile'
225
- - 'Rakefile'
226
- #
227
- Naming/AccessorMethodName:
228
- Exclude:
229
- # D-Bus interfaces follow standard D-Bus method naming (GetStatus, GetFocusState)
230
- - 'lib/rosett_ai/dbus/*_interface.rb'
231
- #
232
- # Style
233
- Style/Documentation:
234
- Enabled: true
235
- #
236
- Style/FrozenStringLiteralComment:
237
- Enabled: true
238
- EnforcedStyle: always
239
- #
240
- Style/Copyright:
241
- Enabled: true
242
- Notice: 'SPDX-License-Identifier: GPL-3.0-only'
243
- AutocorrectNotice: "# SPDX-License-Identifier: GPL-3.0-only\n# Copyright (C) 2026 Hugo Antonio Sepulveda Manriquez / NeatNerds"
244
- Exclude:
245
- # Dependency manifests and external config files are not project source code
246
- - 'Gemfile'
247
- - '.mdl_style.rb'
248
- #
249
- Style/StringLiterals:
250
- EnforcedStyle: single_quotes
251
- #
252
- Style/StringLiteralsInInterpolation:
253
- EnforcedStyle: single_quotes
254
- #
255
- Style/SymbolArray:
256
- EnforcedStyle: brackets
257
- #
258
- Style/WordArray:
259
- EnforcedStyle: brackets
260
- #
261
- Style/TrailingCommaInArrayLiteral:
262
- EnforcedStyleForMultiline: no_comma
263
- #
264
- Style/TrailingCommaInHashLiteral:
265
- EnforcedStyleForMultiline: no_comma
266
- #
267
- Style/HashSyntax:
268
- EnforcedStyle: ruby19
269
- #
270
- Style/RedundantSelf:
271
- Enabled: true
272
- #
273
- Style/ClassAndModuleChildren:
274
- EnforcedStyle: nested
275
- #
276
- Style/RescueModifier:
277
- Exclude:
278
- # Tests use rescue modifier for concise exception-testing patterns
279
- - 'spec/**/*'
280
- #
281
- Style/RedundantConstantBase:
282
- Enabled: true
283
- Exclude:
284
- # Specs reference ::Thor to avoid resolving to RosettAi::Thor module
285
- - 'spec/rosett_ai/smart_feedback/thor_middleware_spec.rb'
286
- - 'spec/rosett_ai/thor/tasks/**/*'
287
- #
288
- # RSpec
289
- RSpec/ExampleLength:
290
- Max: 15
291
- #
292
- RSpec/MultipleMemoizedHelpers:
293
- Max: 7
294
- #
295
- RSpec/MultipleExpectations:
296
- Max: 5
297
- #
298
- RSpec/NestedGroups:
299
- Max: 4
300
- #
301
- RSpec/DescribeClass:
302
- Exclude:
303
- # Integration specs test cross-cutting behaviour, not individual classes
304
- - 'spec/integration/**/*'
305
- #
306
- RSpec/SpecFilePathFormat:
307
- Enabled: true
308
- Exclude:
309
- # D-Bus module uses uppercase DBus, not D_Bus — directory naming follows module structure
310
- - 'spec/rosett_ai/dbus/**/*'
311
- - 'spec/rosett_ai/thor/tasks/dbus_spec.rb'
312
- #
313
- RSpec/SpecFilePathSuffix:
314
- Enabled: true
315
- #
316
- RSpec/AnyInstance:
317
- Exclude:
318
- # Thor tasks have private stage methods that need stubbing for isolation testing
319
- - 'spec/rosett_ai/thor/tasks/**/*'
320
- # D-Bus interfaces use AnyInstance for stubbing compile pipelines
321
- - 'spec/rosett_ai/dbus/**/*'
322
- #
323
- RSpec/VerifiedDoubles:
324
- Exclude:
325
- # External D-Bus libraries (ruby-dbus, i3ipc) can't be verified — classes loaded dynamically
326
- - 'spec/rosett_ai/dbus/**/*'
327
- - 'spec/rosett_ai/thor/tasks/dbus_spec.rb'
328
- # GTK4/Adwaita classes can't be verified — gem may not be installed
329
- - 'spec/rosett_ai/desktop/**/*'
330
- - 'spec/rosett_ai/thor/tasks/desktop_spec.rb'
331
- # MCP gem classes are optional — can't be verified when gem not loaded
332
- - 'spec/rosett_ai/mcp/server_spec.rb'
333
- #
334
- RSpec/MessageSpies:
335
- Exclude:
336
- # D-Bus specs use expect().to receive for setup simplicity with mocked external services
337
- - 'spec/rosett_ai/dbus/**/*'
338
- # Desktop specs use expect().to receive for GTK4/D-Bus mocking
339
- - 'spec/rosett_ai/desktop/**/*'
340
- - 'spec/rosett_ai/thor/tasks/desktop_spec.rb'
341
- #
342
- RSpec/ReceiveMessages:
343
- Exclude:
344
- # Desktop specs set up mock objects with multiple stubs
345
- - 'spec/rosett_ai/desktop/**/*'
346
- - 'spec/rosett_ai/thor/tasks/desktop_spec.rb'
347
- #
348
- RSpec/LeadingSubject:
349
- Exclude:
350
- # Desktop specs place subject after mocks for readability
351
- - 'spec/rosett_ai/desktop/**/*'
352
- #
353
- RSpec/DescribedClass:
354
- Enabled: true
355
- #
356
- RSpec/MultipleDescribes:
357
- Enabled: true
358
- Exclude:
359
- # Compressor/Destination base + subclasses are tightly coupled — one spec file per hierarchy
360
- - 'spec/rosett_ai/backup/compressor_spec.rb'
361
- - 'spec/rosett_ai/backup/destination_spec.rb'
362
- #
363
- # Performance
364
- Performance/StringReplacement:
365
- Enabled: true
366
- #
367
- Performance/RegexpMatch:
368
- Enabled: true
369
- #
370
- # Rake
371
- Rake/Desc:
372
- Enabled: true
373
- #
374
- # Gemspec
375
- Gemspec/DevelopmentDependencies:
376
- Enabled: true
377
- #
378
- RSpec/PredicateMatcher:
379
- Enabled: true
380
- #
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 3.3.10
data/.yamllint DELETED
@@ -1,51 +0,0 @@
1
- # NeatNerds Code Companion - yamllint Configuration
2
-
3
- extends: default
4
-
5
- rules:
6
- line-length:
7
- max: 240
8
- level: warning
9
-
10
- indentation:
11
- spaces: 2
12
- indent-sequences: whatever
13
-
14
- document-start: disable
15
-
16
- truthy:
17
- level: warning
18
-
19
- comments:
20
- min-spaces-from-content: 1
21
-
22
- braces:
23
- min-spaces-inside: 0
24
- max-spaces-inside: 1
25
-
26
- brackets:
27
- min-spaces-inside: 0
28
- max-spaces-inside: 0
29
-
30
- colons:
31
- max-spaces-before: 0
32
- max-spaces-after: 1
33
-
34
- commas:
35
- max-spaces-before: 0
36
- min-spaces-after: 1
37
- max-spaces-after: 1
38
-
39
- hyphens:
40
- max-spaces-after: 1
41
-
42
- empty-lines:
43
- max: 2
44
- max-start: 0
45
- max-end: 1
46
-
47
- ignore:
48
- - vendor/
49
- - cache/
50
- - coverage/
51
- - .git/
data/.yardopts DELETED
@@ -1,12 +0,0 @@
1
- --output-dir doc/api
2
- --markup markdown
3
- --title "NeatNerds Code Companion API Documentation"
4
- --protected
5
- --no-private
6
- --hide-void-return
7
- --exclude lib/rubocop
8
- lib/**/*.rb
9
- -
10
- CHANGELOG.md
11
- INSTALL.md
12
- doc/SETUP.md
data/AI-DISCLOSURE.md DELETED
@@ -1,48 +0,0 @@
1
- # AI Disclosure
2
-
3
- This project uses AI tools in its development process.
4
-
5
- ## AI Tools Used
6
-
7
- | Tool | Provider | Purpose |
8
- |------|----------|---------|
9
- | Claude Code | Anthropic | Code authoring, refactoring, testing, documentation |
10
-
11
- ## Governance Policy
12
-
13
- 1. **All AI-generated code is human-reviewed** before merging. The human
14
- contributor bears primary responsibility for all committed code,
15
- regardless of whether it was AI-generated.
16
-
17
- 2. **Commit trailers document AI involvement.** Every commit that includes
18
- AI-generated or AI-assisted content carries a `Co-Authored-By` trailer
19
- identifying the AI tool and model version.
20
-
21
- 3. **AI provenance is tracked.** The `.ai-provenance.yml` file records
22
- which sessions contributed to the codebase, the AI model used, the
23
- scope of work, and which files were affected.
24
-
25
- 4. **No AI-generated code ships without tests.** All new functionality
26
- includes test coverage verified by the human reviewer.
27
-
28
- 5. **DCO sign-off required.** All contributions comply with the Developer
29
- Certificate of Origin. The `Signed-off-by` trailer is enforced via
30
- git hooks where applicable.
31
-
32
- ## License Compatibility
33
-
34
- This project is licensed under GPL-3.0-only. AI-generated code is
35
- contributed under the same license. SPDX license identifiers are present
36
- on all source files.
37
-
38
- ## Provenance Verification
39
-
40
- ```bash
41
- raictl provenance validate # Validate all provenance entries
42
- raictl provenance log # View provenance history
43
- raictl comply --headers # Verify SPDX headers
44
- ```
45
-
46
- ## Questions
47
-
48
- For questions about AI usage in this project, contact: query@neatnerds.be
data/CLAUDE.md DELETED
@@ -1,141 +0,0 @@
1
- # Rosett-AI
2
-
3
- ## Project Overview
4
-
5
- | Field | Value |
6
- |-------|-------|
7
- | Gem name | rosett-ai |
8
- | CLI | raictl (bin/raictl) |
9
- | Purpose | Author AI assistant rules once, compile to Claude Code, Cursor, AGENTS.md, and more |
10
- | License | GPL-3.0-only |
11
- | Ruby | 3.3.10 (rbenv) |
12
- | Framework | Thor (CLI), Zeitwerk (autoloading) |
13
-
14
- ## CLI Usage
15
-
16
- ```bash
17
- # Core workflow
18
- raictl compile # Compile rules to ~/.claude/rules/
19
- raictl compile --verbose # Compile with detailed output
20
- raictl compile --simulate --verbose # Dry run with diffs
21
- raictl compile --vendor # Compile and write lockfile
22
- raictl compile --engine generic # Compile for a specific engine
23
- raictl validate # Validate all config files
24
-
25
- # Behaviour management
26
- raictl behaviour list # List behaviour files
27
- raictl behaviour show NAME # Show specific behaviour
28
- raictl behaviour validate [NAME] # Validate behaviour file(s)
29
- raictl behaviour manage add NAME # Create new behaviour
30
-
31
- # Design documents
32
- raictl design list # List all design documents
33
- raictl design show NAME # Show design document details
34
- raictl design validate [NAME] # Validate design document(s)
35
-
36
- # Project lifecycle
37
- raictl init --global # Set up global ~/.claude/ structure
38
- raictl init --local # Set up project-local .claude/ structure
39
- raictl init --project # Set up .rosett-ai/ project structure
40
- raictl doctor # Run diagnostic checks
41
- raictl project status # Show project status
42
-
43
- # Configuration management
44
- raictl config compile # Compile YAML scopes to JSON settings
45
- raictl migrate # Migrate legacy .nncc/ and ~/.config/nncc/ paths
46
-
47
- # Compliance and provenance
48
- raictl comply # Run all compliance checks (CRA, license, SPDX)
49
- raictl provenance add # Record AI contribution for HEAD commit
50
- raictl provenance validate # Validate provenance entries
51
-
52
- # Engines and plugins
53
- raictl engines list # List all known engines
54
- raictl engines detect # Detect installed engines
55
- raictl plugins list engine # List installed engine plugins
56
-
57
- # Other
58
- raictl hooks install # Install git hooks via overcommit
59
- raictl mcp serve # Start MCP JSON-RPC server
60
- raictl completion install # Install shell completions
61
- raictl backup --global # Back up ~/.claude/ structure
62
- ```
63
-
64
- ## Directory Structure
65
-
66
- ```text
67
- ├── bin/raictl # CLI executable (symlinked as rai)
68
- ├── lib/rosett_ai/ # Ruby library code (Zeitwerk-managed)
69
- │ ├── thor/ # CLI command definitions
70
- │ │ ├── cli.rb # Main Thor CLI class
71
- │ │ └── tasks/ # Individual command implementations
72
- │ ├── compiler/ # Rule compilation pipeline
73
- │ ├── engines/ # Engine plugin system
74
- │ ├── doctor/ # Diagnostic checks
75
- │ ├── git_hooks/ # Git hook management
76
- │ ├── migrate/ # Legacy config migration
77
- │ └── version.rb # Version constant
78
- ├── conf/
79
- │ ├── behaviour/ # Behaviour YAML files (rules source)
80
- │ ├── design/ # Design documents (YAML)
81
- │ ├── schemas/ # JSON Schema validation files
82
- │ ├── targets/ # Compiler target profiles
83
- │ ├── packaging/ # Package variant configs (core, gtk4)
84
- │ └── claude_code/ # Claude Code scope configs
85
- ├── spec/ # RSpec test suite
86
- ├── packaging/ # Debian packaging scripts
87
- ├── locales/ # i18n locale files
88
- ├── doc/man/ # Man page source (ronn-ng)
89
- └── rosett-ai.gemspec # Gem specification
90
- ```
91
-
92
- ## Development
93
-
94
- ```bash
95
- bundle install # Install dependencies
96
- overcommit --install # Install git hooks
97
- bundle exec rspec # Run test suite
98
- bundle exec rubocop # Run linter
99
- bundle exec reek # Run code smell detector
100
- bundle exec bundler-audit check # Security audit
101
- ```
102
-
103
- ## Architecture
104
-
105
- - **Engine plugin system**: Engines (claude, generic, agents_md) define how rules compile to target formats. Engines are separate gems discovered via `RAI_ENGINE_PATH` or standard gem paths.
106
- - **Scope hierarchy**: Configuration applies in order: global (`~/.claude/`) → local (`.claude/`) → project (`.rosett-ai/`). Later scopes override earlier ones.
107
- - **XDG config**: Global config lives at `~/.config/rosett-ai/`
108
- - **Compilation pipeline**: Behaviour YAML → rule extraction → target-specific rendering → output files
109
- - **Design doc system**: `conf/design/*.yml` records architectural decisions with question/decision/rationale structure
110
-
111
- ## Testing
112
-
113
- - RSpec with SimpleCov coverage tracking
114
- - Pre-commit hooks: RuboCop, Reek
115
- - Pre-push hooks: RSpec, bundler-audit
116
- - CI: GitLab CI with lint, test, build, and mutation stages
117
-
118
- ## Packaging (Developer Rake Tasks)
119
-
120
- Build, release, and packaging commands are developer-only and available via Rake:
121
-
122
- ```bash
123
- rake build:package # Build core .deb package
124
- rake build:package[gtk4] # Build GTK4 variant
125
- rake build:engine # Build engine plugin .deb
126
- rake release:prepare[minor] # Bump version, changelog, release commit
127
- rake release:tag # Create annotated git tag
128
- rake release:status # Show version, last tag, unreleased commits
129
- rake readme:update # Update README version/test/engine numbers
130
- ```
131
-
132
- - `.deb` packages include hermetic Ruby at `/opt/rosett-ai/`
133
- - Variants: core (CLI-only), gtk4 (with desktop GUI)
134
- - Wrapper script at `/usr/bin/raictl` sets `BUNDLE_PATH` and `BUNDLE_DEPLOYMENT`
135
-
136
- ## Key Conventions
137
-
138
- - Conventional Commits for all commit messages
139
- - Language purity: Ruby only for all scripting
140
- - SPDX license headers on all source files
141
- - GPL-3.0-only license