rosett-ai 1.3.3

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 (527) hide show
  1. checksums.yaml +7 -0
  2. data/.ai-provenance.yml +119 -0
  3. data/.debride_whitelist +186 -0
  4. data/.fasterer.yml +29 -0
  5. data/.mdl_style.rb +10 -0
  6. data/.mdlrc +3 -0
  7. data/.mutant.yml +49 -0
  8. data/.namespace-allowlist +42 -0
  9. data/.reek.yml +1040 -0
  10. data/.rosett-ai/config.yml +3 -0
  11. data/.rspec +5 -0
  12. data/.rubocop.yml +380 -0
  13. data/.ruby-version +1 -0
  14. data/.yamllint +51 -0
  15. data/.yardopts +12 -0
  16. data/AI-DISCLOSURE.md +48 -0
  17. data/CHANGELOG.md +519 -0
  18. data/CLAUDE.md +141 -0
  19. data/CONTRIBUTING.md +734 -0
  20. data/INSTALL.md +154 -0
  21. data/LICENSE +674 -0
  22. data/LICENSE.md +675 -0
  23. data/QUICKSTART.md +73 -0
  24. data/README.md +366 -0
  25. data/Rakefile +200 -0
  26. data/SECURITY.md +114 -0
  27. data/bin/rai +1 -0
  28. data/cliff.toml +52 -0
  29. data/conf/adopt_redactions.yml +8 -0
  30. data/conf/behaviour/.gitkeep +0 -0
  31. data/conf/compliance/cra_rules.yml +25 -0
  32. data/conf/compliance/license_rules.yml +20 -0
  33. data/conf/design/aaif_alignment.yml +181 -0
  34. data/conf/design/ab_testing.yml +172 -0
  35. data/conf/design/accessibility.yml +84 -0
  36. data/conf/design/ai_authorship.yml +210 -0
  37. data/conf/design/ai_provenance.yml +224 -0
  38. data/conf/design/ai_tool_configuration.yml +207 -0
  39. data/conf/design/architecture.yml +139 -0
  40. data/conf/design/autocompletion.yml +115 -0
  41. data/conf/design/backward_compatibility.yml +112 -0
  42. data/conf/design/behaviour_composition.yml +246 -0
  43. data/conf/design/build_rake_extraction.yml +57 -0
  44. data/conf/design/ci_pipeline.yml +100 -0
  45. data/conf/design/claude_code_configuration.yml +157 -0
  46. data/conf/design/compiler.yml +128 -0
  47. data/conf/design/comply.yml +153 -0
  48. data/conf/design/content_packs.yml +84 -0
  49. data/conf/design/desktop_integration.yml +289 -0
  50. data/conf/design/distribution.yml +216 -0
  51. data/conf/design/doctor.yml +184 -0
  52. data/conf/design/documentation.yml +152 -0
  53. data/conf/design/engine_architecture.yml +257 -0
  54. data/conf/design/error_handling.yml +103 -0
  55. data/conf/design/feature_flags.yml +142 -0
  56. data/conf/design/git_hooks.yml +165 -0
  57. data/conf/design/gui_plugins.yml +475 -0
  58. data/conf/design/i18n.yml +84 -0
  59. data/conf/design/integration_testing.yml +56 -0
  60. data/conf/design/licensing_system.yml +88 -0
  61. data/conf/design/lifecycle_management.yml +208 -0
  62. data/conf/design/mcp_integration.yml +207 -0
  63. data/conf/design/mcp_settings.yml +126 -0
  64. data/conf/design/migration.yml +56 -0
  65. data/conf/design/monitoring_observability.yml +194 -0
  66. data/conf/design/namespace_cleanup.yml +145 -0
  67. data/conf/design/plugin_test_segregation.yml +145 -0
  68. data/conf/design/policy_management.yml +229 -0
  69. data/conf/design/project_management.yml +183 -0
  70. data/conf/design/rai_mcp_asset_discovery.yml +164 -0
  71. data/conf/design/rai_mcp_server.yml +605 -0
  72. data/conf/design/release_management.yml +117 -0
  73. data/conf/design/retrofit.yml +199 -0
  74. data/conf/design/retrospective_analyzer.yml +79 -0
  75. data/conf/design/scope_hierarchy.yml +352 -0
  76. data/conf/design/security.yml +115 -0
  77. data/conf/design/session_retrospective.yml +85 -0
  78. data/conf/design/smart_ui_feedback.yml +89 -0
  79. data/conf/design/structured_logging.yml +148 -0
  80. data/conf/design/styles.yml +123 -0
  81. data/conf/design/test_peer_review.yml +89 -0
  82. data/conf/design/testing.yml +136 -0
  83. data/conf/design/threat_model.yml +108 -0
  84. data/conf/design/ui_framework.yml +111 -0
  85. data/conf/design/usage_optimization.yml +122 -0
  86. data/conf/design/version_management.yml +60 -0
  87. data/conf/design/workflow.yml +227 -0
  88. data/conf/mcp/server_defaults.yml +42 -0
  89. data/conf/mcp/trust.yml +21 -0
  90. data/conf/packaging/core.yml +12 -0
  91. data/conf/packaging/gtk4.yml +11 -0
  92. data/conf/packaging/qt6.yml +11 -0
  93. data/conf/policy/default_deny_list.yml +197 -0
  94. data/conf/review/cli-command-audit.yml +857 -0
  95. data/conf/review/design-docs.yml +1064 -0
  96. data/conf/review/design-questionnaire.yml +153 -0
  97. data/conf/review/questionnaire.yml +146 -0
  98. data/conf/review/rosett-ai-core.yml +2919 -0
  99. data/conf/schemas/ai_config_schema.json +73 -0
  100. data/conf/schemas/behaviour_schema.json +132 -0
  101. data/conf/schemas/compliance_rule_schema.json +63 -0
  102. data/conf/schemas/content_pack_manifest_schema.json +51 -0
  103. data/conf/schemas/design_schema.json +210 -0
  104. data/conf/schemas/engine_manifest_schema.json +144 -0
  105. data/conf/schemas/lockfile_schema.json +74 -0
  106. data/conf/schemas/mcp_server_schema.json +48 -0
  107. data/conf/schemas/packaging_schema.json +70 -0
  108. data/conf/schemas/policy_schema.json +85 -0
  109. data/conf/schemas/provenance_schema.json +84 -0
  110. data/conf/schemas/rai_config_schema.json +56 -0
  111. data/conf/schemas/rai_project_schema.json +20 -0
  112. data/conf/schemas/scope_hierarchy_schema.json +49 -0
  113. data/conf/schemas/target_schema.json +67 -0
  114. data/conf/schemas/tooling_schema.json +65 -0
  115. data/conf/schemas/workflow_schema.json +112 -0
  116. data/conf/targets/agents_md.yml +17 -0
  117. data/conf/targets/claude.yml +12 -0
  118. data/conf/tooling/tools.yml +58 -0
  119. data/dist/rosett-ai-mcp.service +48 -0
  120. data/dist/rosett-ai-mcp.yml.default +45 -0
  121. data/doc/AAIF_POSITIONING.md +58 -0
  122. data/doc/ADOPT.md +224 -0
  123. data/doc/AI_PROVENANCE.md +139 -0
  124. data/doc/ARCHITECTURE.md +920 -0
  125. data/doc/BEHAVIOUR.md +409 -0
  126. data/doc/BUILD.md +138 -0
  127. data/doc/CI_CD_RECIPES.md +171 -0
  128. data/doc/CLAUDE_SESSIONS_MOVED.md +16 -0
  129. data/doc/COMMAND_ANALYSIS.md +229 -0
  130. data/doc/CONFIGURATION.md +281 -0
  131. data/doc/DESIGN_AUDIT.md +235 -0
  132. data/doc/DESIGN_PEER_REVIEW.md +771 -0
  133. data/doc/DESKTOP.md +447 -0
  134. data/doc/ENGINES.md +567 -0
  135. data/doc/ENGINE_DEVELOPMENT_GUIDE.md +417 -0
  136. data/doc/FEATURE_AUDIT.md +218 -0
  137. data/doc/IMPLEMENTATION_PLAN.md +669 -0
  138. data/doc/INCIDENT_REPORT_2026-02-02.md +251 -0
  139. data/doc/MIGRATION_GUIDE.md +88 -0
  140. data/doc/PACKAGING.md +232 -0
  141. data/doc/PROJECT_DASHBOARD.md +153 -0
  142. data/doc/PULP_DEPLOYMENT.md +164 -0
  143. data/doc/QUALITY_FIX_SUMMARY.md +110 -0
  144. data/doc/QUICK_START.md +162 -0
  145. data/doc/REEK_CONFIGURATION.md +166 -0
  146. data/doc/REFERENCE.md +253 -0
  147. data/doc/REFERENCES.md +324 -0
  148. data/doc/SECURITY_REVIEW_CHECKLIST.md +72 -0
  149. data/doc/SESSION_2026-02-28_GTK4_HARDENING.md +359 -0
  150. data/doc/SETUP.md +202 -0
  151. data/doc/TEST_PEER_REVIEW.md +152 -0
  152. data/doc/THREAT_MODEL.md +230 -0
  153. data/doc/USAGE.md +545 -0
  154. data/doc/USER_MANUAL.md +585 -0
  155. data/doc/ai_test_review_checklist.md +110 -0
  156. data/doc/changes/2026-02-18-packaging-fpm.md +155 -0
  157. data/doc/changes/2026-02-19-testing-infrastructure.md +221 -0
  158. data/doc/changes/2026-02-20-security-implementation.md +281 -0
  159. data/doc/changes/2026-02-20-styles-implementation.md +220 -0
  160. data/doc/changes/2026-02-21-architecture-completion.md +95 -0
  161. data/doc/changes/2026-02-21-architecture-ui-layer.md +253 -0
  162. data/doc/changes/2026-02-21-cc-config-implementation.md +108 -0
  163. data/doc/changes/2026-02-21-ci-pipeline-implementation.md +214 -0
  164. data/doc/changes/2026-02-21-compiler-multi-target-pipeline.md +241 -0
  165. data/doc/changes/2026-02-21-config-design-show-commands.md +61 -0
  166. data/doc/changes/2026-02-21-design-implementation-overview.md +455 -0
  167. data/doc/changes/2026-02-21-lifecycle-management.md +196 -0
  168. data/doc/changes/2026-02-21-path-resolver.md +128 -0
  169. data/doc/changes/2026-02-24-ci-tmpdir-mutant-fetch.md +45 -0
  170. data/doc/changes/2026-03-01-ci-bundler-strategy.md +120 -0
  171. data/doc/changes/2026-03-20-security-hardening-phase2.md +163 -0
  172. data/doc/context/SESSION-HANDOFF.md +69 -0
  173. data/doc/context/ai-engine-usage-trends-2026.md +80 -0
  174. data/doc/context/plan-pluggable-engines.md +590 -0
  175. data/doc/decisions/001-flog-deferred.md +32 -0
  176. data/doc/decisions/002-path-resolution-strategy.md +158 -0
  177. data/doc/decisions/003-ui-adapter-selection.md +193 -0
  178. data/doc/decisions/004-design-document-validation.md +179 -0
  179. data/doc/decisions/005-package-splitting-strategy.md +200 -0
  180. data/doc/decisions/006-multi-engine-architecture.md +147 -0
  181. data/doc/decisions/007-engine-agnostic-pivot.md +219 -0
  182. data/doc/decisions/008-ci-bundler-strategy.md +129 -0
  183. data/doc/decisions/009-core-only-v1-release.md +60 -0
  184. data/doc/decisions/010-engine-debian-packaging.md +66 -0
  185. data/doc/decisions/011-context-aware-cli.md +71 -0
  186. data/doc/dependency_decisions.yml +247 -0
  187. data/doc/issues/001-wrapper-missing-environment-variables.md +197 -0
  188. data/doc/issues/002-embedded-ruby-wrong-prefix.md +217 -0
  189. data/doc/issues/003-smoke-test-false-positive.md +127 -0
  190. data/doc/issues/004-market-research-design-updates.md +109 -0
  191. data/doc/issues/005-compile-scope-coexistence.md +161 -0
  192. data/doc/locales/.gitkeep +0 -0
  193. data/doc/man/rai.1.ronn +505 -0
  194. data/doc/operations/packaging.md +133 -0
  195. data/doc/operations/rosett-ai-release.md +65 -0
  196. data/doc/reference/error-catalog.md +107 -0
  197. data/doc/reference/rosett-ai-technical-reference.pdf +0 -0
  198. data/doc/reference/src/Pictures/cover.jpg +0 -0
  199. data/doc/reference/src/Pictures/head1.jpg +0 -0
  200. data/doc/reference/src/Pictures/head2.jpg +0 -0
  201. data/doc/reference/src/Pictures/head3.jpg +0 -0
  202. data/doc/reference/src/Pictures/head4.jpg +0 -0
  203. data/doc/reference/src/Pictures/head5.jpg +0 -0
  204. data/doc/reference/src/Pictures/head6.jpg +0 -0
  205. data/doc/reference/src/Pictures/head7.jpg +0 -0
  206. data/doc/reference/src/Pictures/head8.jpg +0 -0
  207. data/doc/reference/src/StyleInd.ist +4 -0
  208. data/doc/reference/src/bibliography.bib +79 -0
  209. data/doc/reference/src/main.tex +1288 -0
  210. data/doc/reference/src/structure.tex +303 -0
  211. data/doc/rosett-ai-bookmarks.html +301 -0
  212. data/kitchen.yml +46 -0
  213. data/lib/rosett_ai/adopter/executor_resolver.rb +77 -0
  214. data/lib/rosett_ai/adopter/local_analysis_collector.rb +154 -0
  215. data/lib/rosett_ai/adopter/rule_adopter.rb +254 -0
  216. data/lib/rosett_ai/ai_config/config_compiler.rb +111 -0
  217. data/lib/rosett_ai/ai_config/context_window.rb +55 -0
  218. data/lib/rosett_ai/ai_config/cost_controls.rb +44 -0
  219. data/lib/rosett_ai/ai_config/fallback_chain.rb +64 -0
  220. data/lib/rosett_ai/ai_config/model_router.rb +121 -0
  221. data/lib/rosett_ai/ai_config/validator.rb +45 -0
  222. data/lib/rosett_ai/authorship/attribution_compiler.rb +99 -0
  223. data/lib/rosett_ai/authorship/disclosure_policy.rb +81 -0
  224. data/lib/rosett_ai/authorship/review_validator.rb +39 -0
  225. data/lib/rosett_ai/authorship/trailer_generator.rb +88 -0
  226. data/lib/rosett_ai/backup/compressor.rb +180 -0
  227. data/lib/rosett_ai/backup/destination.rb +91 -0
  228. data/lib/rosett_ai/behaviour/manager.rb +156 -0
  229. data/lib/rosett_ai/compiler/backend.rb +86 -0
  230. data/lib/rosett_ai/compiler/backends/agents_md_backend.rb +80 -0
  231. data/lib/rosett_ai/compiler/backends/claude_backend.rb +88 -0
  232. data/lib/rosett_ai/compiler/backends/generic_backend.rb +15 -0
  233. data/lib/rosett_ai/compiler/behaviour_compiler.rb +40 -0
  234. data/lib/rosett_ai/compiler/capability_checker.rb +104 -0
  235. data/lib/rosett_ai/compiler/compilation_pipeline.rb +361 -0
  236. data/lib/rosett_ai/compiler/compiled_output.rb +39 -0
  237. data/lib/rosett_ai/compiler/locale_compiler.rb +250 -0
  238. data/lib/rosett_ai/compiler/target_profile.rb +112 -0
  239. data/lib/rosett_ai/completion/generator.rb +101 -0
  240. data/lib/rosett_ai/completion/shells/bash_generator.rb +126 -0
  241. data/lib/rosett_ai/completion/shells/fish_generator.rb +78 -0
  242. data/lib/rosett_ai/completion/shells/zsh_generator.rb +126 -0
  243. data/lib/rosett_ai/comply/checkers/cra_checker.rb +102 -0
  244. data/lib/rosett_ai/comply/checkers/license_checker.rb +85 -0
  245. data/lib/rosett_ai/comply/checkers/spdx_header_checker.rb +98 -0
  246. data/lib/rosett_ai/comply/reporter.rb +113 -0
  247. data/lib/rosett_ai/comply/runner.rb +50 -0
  248. data/lib/rosett_ai/composition/circular_dependency_detector.rb +56 -0
  249. data/lib/rosett_ai/composition/composer.rb +158 -0
  250. data/lib/rosett_ai/composition/composition_result.rb +64 -0
  251. data/lib/rosett_ai/composition/conflict_detector.rb +53 -0
  252. data/lib/rosett_ai/composition/lockfile.rb +103 -0
  253. data/lib/rosett_ai/composition/merge_strategy.rb +131 -0
  254. data/lib/rosett_ai/composition/priority_sorter.rb +29 -0
  255. data/lib/rosett_ai/composition/scope_resolver.rb +55 -0
  256. data/lib/rosett_ai/config/compile_result.rb +37 -0
  257. data/lib/rosett_ai/config/compiler.rb +13 -0
  258. data/lib/rosett_ai/config/domain_transformer.rb +13 -0
  259. data/lib/rosett_ai/config/key_map.rb +13 -0
  260. data/lib/rosett_ai/config/masking_secret_resolver.rb +40 -0
  261. data/lib/rosett_ai/config/scope_router.rb +13 -0
  262. data/lib/rosett_ai/config/secret_resolver.rb +125 -0
  263. data/lib/rosett_ai/configuration.rb +119 -0
  264. data/lib/rosett_ai/content/content_client.rb +60 -0
  265. data/lib/rosett_ai/content/pack_installer.rb +117 -0
  266. data/lib/rosett_ai/content/pack_manifest.rb +50 -0
  267. data/lib/rosett_ai/content/pack_registry.rb +68 -0
  268. data/lib/rosett_ai/content_packs/manager.rb +50 -0
  269. data/lib/rosett_ai/dbus/compositor_detector.rb +77 -0
  270. data/lib/rosett_ai/dbus/focus_adapters/base.rb +59 -0
  271. data/lib/rosett_ai/dbus/focus_adapters/gnome_adapter.rb +172 -0
  272. data/lib/rosett_ai/dbus/focus_adapters/hyprland_adapter.rb +77 -0
  273. data/lib/rosett_ai/dbus/focus_adapters/i3_adapter.rb +65 -0
  274. data/lib/rosett_ai/dbus/focus_adapters/kwin_adapter.rb +103 -0
  275. data/lib/rosett_ai/dbus/focus_adapters/x11_adapter.rb +105 -0
  276. data/lib/rosett_ai/dbus/focus_monitor_interface.rb +103 -0
  277. data/lib/rosett_ai/dbus/manager_interface.rb +213 -0
  278. data/lib/rosett_ai/dbus/plugin_manager_interface.rb +169 -0
  279. data/lib/rosett_ai/dbus/rate_limiter.rb +89 -0
  280. data/lib/rosett_ai/dbus/service.rb +121 -0
  281. data/lib/rosett_ai/dbus/status_notifier_interface.rb +79 -0
  282. data/lib/rosett_ai/deprecation.rb +79 -0
  283. data/lib/rosett_ai/desktop/dbus_client.rb +259 -0
  284. data/lib/rosett_ai/desktop/gtk4_app.rb +371 -0
  285. data/lib/rosett_ai/desktop/gtk4_preferences.rb +331 -0
  286. data/lib/rosett_ai/desktop/gui_logger.rb +236 -0
  287. data/lib/rosett_ai/doctor/check.rb +92 -0
  288. data/lib/rosett_ai/doctor/checks/cache_health_check.rb +50 -0
  289. data/lib/rosett_ai/doctor/checks/dbus_availability_check.rb +39 -0
  290. data/lib/rosett_ai/doctor/checks/engine_detection_check.rb +46 -0
  291. data/lib/rosett_ai/doctor/checks/file_permission_check.rb +44 -0
  292. data/lib/rosett_ai/doctor/checks/gem_dependency_check.rb +55 -0
  293. data/lib/rosett_ai/doctor/checks/ruby_version_check.rb +50 -0
  294. data/lib/rosett_ai/doctor/checks/stale_config_nncc_check.rb +57 -0
  295. data/lib/rosett_ai/doctor/checks/stale_home_nncc_check.rb +59 -0
  296. data/lib/rosett_ai/doctor.rb +81 -0
  297. data/lib/rosett_ai/documentation/reference_compiler.rb +122 -0
  298. data/lib/rosett_ai/documentation/translator.rb +62 -0
  299. data/lib/rosett_ai/engines/base_config_compiler.rb +203 -0
  300. data/lib/rosett_ai/engines/detector.rb +63 -0
  301. data/lib/rosett_ai/engines/registry.rb +50 -0
  302. data/lib/rosett_ai/error_handler.rb +139 -0
  303. data/lib/rosett_ai/exit_codes.rb +76 -0
  304. data/lib/rosett_ai/feature_flags.rb +102 -0
  305. data/lib/rosett_ai/formatting.rb +33 -0
  306. data/lib/rosett_ai/gem_consistency_checker.rb +199 -0
  307. data/lib/rosett_ai/git_hooks/chain_detector.rb +86 -0
  308. data/lib/rosett_ai/git_hooks/installer.rb +175 -0
  309. data/lib/rosett_ai/git_hooks/script_generator.rb +125 -0
  310. data/lib/rosett_ai/gitlab/validators/supplementary_gitlab_ci_yaml_validator.rb +79 -0
  311. data/lib/rosett_ai/i18n/locale_resolver.rb +46 -0
  312. data/lib/rosett_ai/i18n/utf8_checker.rb +32 -0
  313. data/lib/rosett_ai/init/config_file_writer.rb +24 -0
  314. data/lib/rosett_ai/init/directory_builder.rb +38 -0
  315. data/lib/rosett_ai/init/file_copier.rb +95 -0
  316. data/lib/rosett_ai/init/global_initializer.rb +28 -0
  317. data/lib/rosett_ai/init/local_initializer.rb +27 -0
  318. data/lib/rosett_ai/init/mcp_registrar.rb +109 -0
  319. data/lib/rosett_ai/init/project_initializer.rb +38 -0
  320. data/lib/rosett_ai/licensing/license_key.rb +139 -0
  321. data/lib/rosett_ai/licensing/license_store.rb +64 -0
  322. data/lib/rosett_ai/licensing/license_validator.rb +60 -0
  323. data/lib/rosett_ai/licensing/tier.rb +42 -0
  324. data/lib/rosett_ai/mcp/admin/auditor.rb +88 -0
  325. data/lib/rosett_ai/mcp/admin/health_checker.rb +81 -0
  326. data/lib/rosett_ai/mcp/admin/registry.rb +100 -0
  327. data/lib/rosett_ai/mcp/admin/schema_validator.rb +63 -0
  328. data/lib/rosett_ai/mcp/enforcement/.gitkeep +0 -0
  329. data/lib/rosett_ai/mcp/enforcement/hook_generator.rb +197 -0
  330. data/lib/rosett_ai/mcp/enforcement/validator.rb +215 -0
  331. data/lib/rosett_ai/mcp/governance.rb +160 -0
  332. data/lib/rosett_ai/mcp/http_security_config.rb +158 -0
  333. data/lib/rosett_ai/mcp/instructions.rb +266 -0
  334. data/lib/rosett_ai/mcp/key_hasher.rb +66 -0
  335. data/lib/rosett_ai/mcp/keyfile.rb +221 -0
  336. data/lib/rosett_ai/mcp/middleware/authentication.rb +146 -0
  337. data/lib/rosett_ai/mcp/middleware/content_type.rb +56 -0
  338. data/lib/rosett_ai/mcp/middleware/cors.rb +83 -0
  339. data/lib/rosett_ai/mcp/middleware/origin_validation.rb +73 -0
  340. data/lib/rosett_ai/mcp/middleware/rate_limit.rb +106 -0
  341. data/lib/rosett_ai/mcp/middleware/request_size.rb +51 -0
  342. data/lib/rosett_ai/mcp/plugins.rb +143 -0
  343. data/lib/rosett_ai/mcp/prompts/compilation_prompt.rb +40 -0
  344. data/lib/rosett_ai/mcp/prompts/compliance_prompt.rb +41 -0
  345. data/lib/rosett_ai/mcp/prompts/diagnostics_prompt.rb +41 -0
  346. data/lib/rosett_ai/mcp/prompts/validation_prompt.rb +41 -0
  347. data/lib/rosett_ai/mcp/resources/behaviour_resource.rb +127 -0
  348. data/lib/rosett_ai/mcp/resources/config_resource.rb +72 -0
  349. data/lib/rosett_ai/mcp/resources/design_resource.rb +58 -0
  350. data/lib/rosett_ai/mcp/resources/hooks_resource.rb +74 -0
  351. data/lib/rosett_ai/mcp/resources/provenance_resource.rb +51 -0
  352. data/lib/rosett_ai/mcp/resources/rules_resource.rb +60 -0
  353. data/lib/rosett_ai/mcp/resources/schema_resource.rb +72 -0
  354. data/lib/rosett_ai/mcp/response_helper.rb +46 -0
  355. data/lib/rosett_ai/mcp/security_logger.rb +60 -0
  356. data/lib/rosett_ai/mcp/server.rb +212 -0
  357. data/lib/rosett_ai/mcp/settings/server_installer.rb +112 -0
  358. data/lib/rosett_ai/mcp/settings/trust_manager.rb +142 -0
  359. data/lib/rosett_ai/mcp/tools/adopt_tool.rb +70 -0
  360. data/lib/rosett_ai/mcp/tools/backup_tool.rb +64 -0
  361. data/lib/rosett_ai/mcp/tools/behaviour_display_tool.rb +72 -0
  362. data/lib/rosett_ai/mcp/tools/behaviour_list_tool.rb +56 -0
  363. data/lib/rosett_ai/mcp/tools/behaviour_manage_tool.rb +114 -0
  364. data/lib/rosett_ai/mcp/tools/behaviour_show_tool.rb +62 -0
  365. data/lib/rosett_ai/mcp/tools/compile_status_tool.rb +122 -0
  366. data/lib/rosett_ai/mcp/tools/compile_tool.rb +191 -0
  367. data/lib/rosett_ai/mcp/tools/comply_tool.rb +79 -0
  368. data/lib/rosett_ai/mcp/tools/config_compile_tool.rb +71 -0
  369. data/lib/rosett_ai/mcp/tools/config_status_tool.rb +79 -0
  370. data/lib/rosett_ai/mcp/tools/content_tool.rb +78 -0
  371. data/lib/rosett_ai/mcp/tools/context_query_tool.rb +156 -0
  372. data/lib/rosett_ai/mcp/tools/design_list_tool.rb +57 -0
  373. data/lib/rosett_ai/mcp/tools/design_show_tool.rb +69 -0
  374. data/lib/rosett_ai/mcp/tools/doctor_tool.rb +62 -0
  375. data/lib/rosett_ai/mcp/tools/documentation_status_tool.rb +45 -0
  376. data/lib/rosett_ai/mcp/tools/engines_tool.rb +84 -0
  377. data/lib/rosett_ai/mcp/tools/hook_install_tool.rb +190 -0
  378. data/lib/rosett_ai/mcp/tools/hook_preview_tool.rb +173 -0
  379. data/lib/rosett_ai/mcp/tools/hooks_status_tool.rb +84 -0
  380. data/lib/rosett_ai/mcp/tools/init_tool.rb +87 -0
  381. data/lib/rosett_ai/mcp/tools/license_status_tool.rb +44 -0
  382. data/lib/rosett_ai/mcp/tools/project_tool.rb +117 -0
  383. data/lib/rosett_ai/mcp/tools/provenance_tool.rb +97 -0
  384. data/lib/rosett_ai/mcp/tools/provenance_write_tool.rb +40 -0
  385. data/lib/rosett_ai/mcp/tools/retrofit_tool.rb +81 -0
  386. data/lib/rosett_ai/mcp/tools/rule_search_tool.rb +163 -0
  387. data/lib/rosett_ai/mcp/tools/schema_get_tool.rb +94 -0
  388. data/lib/rosett_ai/mcp/tools/tooling_tool.rb +86 -0
  389. data/lib/rosett_ai/mcp/tools/validate_tool.rb +105 -0
  390. data/lib/rosett_ai/mcp/tools/workflow_execute_tool.rb +74 -0
  391. data/lib/rosett_ai/mcp/tools/workflow_tool.rb +78 -0
  392. data/lib/rosett_ai/migration/detector.rb +117 -0
  393. data/lib/rosett_ai/migration/nncc_config_migrator.rb +94 -0
  394. data/lib/rosett_ai/migration/nncc_project_migrator.rb +90 -0
  395. data/lib/rosett_ai/migration/xdg_migrator.rb +123 -0
  396. data/lib/rosett_ai/package_manager/apt.rb +108 -0
  397. data/lib/rosett_ai/package_manager/base.rb +68 -0
  398. data/lib/rosett_ai/package_manager/gem_backend.rb +90 -0
  399. data/lib/rosett_ai/packaging/variant_config.rb +92 -0
  400. data/lib/rosett_ai/path_resolver.rb +115 -0
  401. data/lib/rosett_ai/plugins/contract.rb +43 -0
  402. data/lib/rosett_ai/plugins/engine_contract.rb +60 -0
  403. data/lib/rosett_ai/plugins/gui_contract.rb +74 -0
  404. data/lib/rosett_ai/plugins/mcp_contract.rb +48 -0
  405. data/lib/rosett_ai/plugins/registry.rb +150 -0
  406. data/lib/rosett_ai/policy/auditor.rb +41 -0
  407. data/lib/rosett_ai/policy/deny_list.rb +71 -0
  408. data/lib/rosett_ai/policy/opt_out_scanner.rb +37 -0
  409. data/lib/rosett_ai/policy/policy_compiler.rb +84 -0
  410. data/lib/rosett_ai/policy/protected_files.rb +47 -0
  411. data/lib/rosett_ai/policy/tier_hierarchy.rb +48 -0
  412. data/lib/rosett_ai/policy/validator.rb +35 -0
  413. data/lib/rosett_ai/profiler.rb +79 -0
  414. data/lib/rosett_ai/project/drift_detector.rb +126 -0
  415. data/lib/rosett_ai/project/manager.rb +115 -0
  416. data/lib/rosett_ai/project/sync_manager.rb +138 -0
  417. data/lib/rosett_ai/project/template_applier.rb +105 -0
  418. data/lib/rosett_ai/project_context.rb +82 -0
  419. data/lib/rosett_ai/provenance/entry.rb +63 -0
  420. data/lib/rosett_ai/provenance/file_source.rb +32 -0
  421. data/lib/rosett_ai/provenance/source.rb +62 -0
  422. data/lib/rosett_ai/provenance/store.rb +153 -0
  423. data/lib/rosett_ai/provenance/tracker.rb +62 -0
  424. data/lib/rosett_ai/provenance/trailer_generator.rb +43 -0
  425. data/lib/rosett_ai/provenance/validator.rb +45 -0
  426. data/lib/rosett_ai/quorum/collector.rb +59 -0
  427. data/lib/rosett_ai/quorum/comparator.rb +81 -0
  428. data/lib/rosett_ai/quorum/dispatcher.rb +57 -0
  429. data/lib/rosett_ai/quorum/strategies/adopt.rb +56 -0
  430. data/lib/rosett_ai/rai_config.rb +107 -0
  431. data/lib/rosett_ai/retrofit/base_parser.rb +66 -0
  432. data/lib/rosett_ai/retrofit/engine.rb +171 -0
  433. data/lib/rosett_ai/retrofit/parsers/agents_md_parser.rb +50 -0
  434. data/lib/rosett_ai/retrofit/parsers/claude_parser.rb +69 -0
  435. data/lib/rosett_ai/retrofit/parsers/cursor_parser.rb +82 -0
  436. data/lib/rosett_ai/retrofit/round_trip_validator.rb +65 -0
  437. data/lib/rosett_ai/retrofit/scanner.rb +47 -0
  438. data/lib/rosett_ai/retrofit/secret_detector.rb +87 -0
  439. data/lib/rosett_ai/secrets_resolver.rb +71 -0
  440. data/lib/rosett_ai/smart_feedback/suggester.rb +83 -0
  441. data/lib/rosett_ai/smart_feedback/thor_middleware.rb +84 -0
  442. data/lib/rosett_ai/structured_logger.rb +110 -0
  443. data/lib/rosett_ai/telemetry/json_lines_writer.rb +50 -0
  444. data/lib/rosett_ai/telemetry/log_rotator.rb +67 -0
  445. data/lib/rosett_ai/telemetry/provider.rb +26 -0
  446. data/lib/rosett_ai/telemetry/reporter.rb +144 -0
  447. data/lib/rosett_ai/telemetry.rb +47 -0
  448. data/lib/rosett_ai/text_sanitizer.rb +62 -0
  449. data/lib/rosett_ai/thor/cli.rb +269 -0
  450. data/lib/rosett_ai/thor/tasks/adopt.rb +250 -0
  451. data/lib/rosett_ai/thor/tasks/backup.rb +420 -0
  452. data/lib/rosett_ai/thor/tasks/behaviour.rb +474 -0
  453. data/lib/rosett_ai/thor/tasks/build.rb +1162 -0
  454. data/lib/rosett_ai/thor/tasks/compile.rb +415 -0
  455. data/lib/rosett_ai/thor/tasks/completion.rb +123 -0
  456. data/lib/rosett_ai/thor/tasks/comply.rb +82 -0
  457. data/lib/rosett_ai/thor/tasks/config.rb +265 -0
  458. data/lib/rosett_ai/thor/tasks/content.rb +193 -0
  459. data/lib/rosett_ai/thor/tasks/dbus.rb +321 -0
  460. data/lib/rosett_ai/thor/tasks/design.rb +258 -0
  461. data/lib/rosett_ai/thor/tasks/desktop.rb +129 -0
  462. data/lib/rosett_ai/thor/tasks/doctor.rb +127 -0
  463. data/lib/rosett_ai/thor/tasks/documentation.rb +321 -0
  464. data/lib/rosett_ai/thor/tasks/engines.rb +167 -0
  465. data/lib/rosett_ai/thor/tasks/hooks.rb +219 -0
  466. data/lib/rosett_ai/thor/tasks/init.rb +259 -0
  467. data/lib/rosett_ai/thor/tasks/license.rb +120 -0
  468. data/lib/rosett_ai/thor/tasks/mcp.rb +535 -0
  469. data/lib/rosett_ai/thor/tasks/migrate.rb +121 -0
  470. data/lib/rosett_ai/thor/tasks/plugins.rb +157 -0
  471. data/lib/rosett_ai/thor/tasks/project.rb +260 -0
  472. data/lib/rosett_ai/thor/tasks/provenance.rb +195 -0
  473. data/lib/rosett_ai/thor/tasks/release.rb +314 -0
  474. data/lib/rosett_ai/thor/tasks/retrofit.rb +90 -0
  475. data/lib/rosett_ai/thor/tasks/tooling.rb +308 -0
  476. data/lib/rosett_ai/thor/tasks/validate.rb +108 -0
  477. data/lib/rosett_ai/thor/tasks/workflow.rb +196 -0
  478. data/lib/rosett_ai/tooling/ci_yaml_validator.rb +37 -0
  479. data/lib/rosett_ai/tooling/version_checker.rb +35 -0
  480. data/lib/rosett_ai/ui/accessible_tui.rb +61 -0
  481. data/lib/rosett_ai/ui/base.rb +46 -0
  482. data/lib/rosett_ai/ui/gtk4.rb +98 -0
  483. data/lib/rosett_ai/ui/kde.rb +40 -0
  484. data/lib/rosett_ai/ui/qt6.rb +40 -0
  485. data/lib/rosett_ai/ui/registry.rb +60 -0
  486. data/lib/rosett_ai/ui/tty_helper.rb +74 -0
  487. data/lib/rosett_ai/ui/tui.rb +59 -0
  488. data/lib/rosett_ai/validators/behaviour_validator.rb +20 -0
  489. data/lib/rosett_ai/validators/design_validator.rb +17 -0
  490. data/lib/rosett_ai/validators/schema_validator.rb +84 -0
  491. data/lib/rosett_ai/validators/tooling_validator.rb +17 -0
  492. data/lib/rosett_ai/version.rb +8 -0
  493. data/lib/rosett_ai/version_consistency_checker.rb +129 -0
  494. data/lib/rosett_ai/workflow/audit_log.rb +86 -0
  495. data/lib/rosett_ai/workflow/engine.rb +142 -0
  496. data/lib/rosett_ai/workflow/manager.rb +82 -0
  497. data/lib/rosett_ai/workflow/schema_validator.rb +71 -0
  498. data/lib/rosett_ai/workflow/step_runner.rb +61 -0
  499. data/lib/rosett_ai/workflow/steps/prompt_step.rb +62 -0
  500. data/lib/rosett_ai/workflow/steps/rai_step.rb +74 -0
  501. data/lib/rosett_ai/workflow/steps/shell_step.rb +53 -0
  502. data/lib/rosett_ai/yaml_loader.rb +78 -0
  503. data/lib/rosett_ai.rb +221 -0
  504. data/lib/rubocop/cop/rosett_ai/shell_interpolation.rb +54 -0
  505. data/lib/rubocop/cop/rosett_ai/unsafe_const_get.rb +60 -0
  506. data/lib/rubocop/cop/rosett_ai/unsafe_send.rb +50 -0
  507. data/lib/rubocop/cop/rosett_ai/unsafe_yaml_load.rb +40 -0
  508. data/lib/rubocop/rosett_ai.rb +9 -0
  509. data/lib/scripts/generated/docker_hub_tags.rb +126 -0
  510. data/locales/.gitkeep +0 -0
  511. data/locales/ar.yml +579 -0
  512. data/locales/en.yml +571 -0
  513. data/locales/fr.yml +567 -0
  514. data/packaging/build-engine-deb.sh +81 -0
  515. data/packaging/scripts/postinst +17 -0
  516. data/packaging/scripts/postrm +19 -0
  517. data/packaging/scripts/prerm +10 -0
  518. data/packaging/wrapper.sh.template +38 -0
  519. data/rosett-ai.gemspec +63 -0
  520. data/rules/.gitkeep +0 -0
  521. data/scripts/publish/pulp_upload.sh +123 -0
  522. data/settings.json +29 -0
  523. data/share/applications/be.neatnerds.rosettai.desktop +29 -0
  524. data/share/dbus-1/interfaces/be.neatnerds.rosettai.xml +103 -0
  525. data/share/dbus-1/services/be.neatnerds.rosettai.service +3 -0
  526. data/share/templates/behaviour/criticalthinking.yml +69 -0
  527. metadata +810 -0
data/.reek.yml ADDED
@@ -0,0 +1,1040 @@
1
+ ---
2
+ detectors:
3
+ Attribute:
4
+ enabled: true
5
+ exclude:
6
+ - RosettAi::DBus::ManagerInterface#service
7
+ - RosettAi::Mcp::HttpSecurityConfig
8
+ - RosettAi::Mcp::HttpSecurityConfig::AuthConfig
9
+ - RosettAi::Mcp::HttpSecurityConfig::TlsConfig
10
+ - RosettAi::Mcp::HttpSecurityConfig::OriginConfig
11
+ - RosettAi::Mcp::HttpSecurityConfig::RateLimitConfig
12
+ - RosettAi::Mcp::HttpSecurityConfig::CorsConfig
13
+ BooleanParameter:
14
+ enabled: true
15
+ exclude:
16
+ - RosettAi::Authorship::TrailerGenerator#validate_tool
17
+ - RosettAi::Adopter::RuleAdopter#evaluate
18
+ - RosettAi::AiConfig::ConfigCompiler#initialize
19
+ - RosettAi::Engines::BaseConfigCompiler#initialize
20
+ - RosettAi::Workflow::Engine#execute
21
+ - RosettAi::Composition::Composer#compose
22
+ - RosettAi::Thor::Tasks::Config#resolve_config_compiler
23
+ - RosettAi::Thor::CLI#self.printable_commands
24
+ - RosettAi::Ui::TtyHelper#confirm?
25
+ - RosettAi::Project::TemplateApplier#initialize
26
+ - RosettAi::Project::SyncManager#initialize
27
+ - RosettAi::Thor::Tasks::Project#render_sync_results
28
+ - RosettAi::Retrofit::Engine#initialize
29
+ - RosettAi::Thor::Tasks::Retrofit#render_results
30
+ - RosettAi::Mcp::Tools::CompileTool#call
31
+ - RosettAi::Mcp::Tools::AdoptTool#call
32
+ - RosettAi::Mcp::Tools::BackupTool#call
33
+ - RosettAi::Mcp::Tools::BehaviourManageTool#call
34
+ - RosettAi::Mcp::Tools::ComplyTool#call
35
+ - RosettAi::Mcp::Tools::ConfigCompileTool#call
36
+ - RosettAi::Mcp::Tools::DesignShowTool#call
37
+ - RosettAi::Mcp::Tools::InitTool#call
38
+ - RosettAi::Mcp::Tools::RetrofitTool#call
39
+ - RosettAi::Mcp::Tools::ToolingTool#call
40
+ - RosettAi::Mcp::Tools::WorkflowExecuteTool#call
41
+ - RosettAi::Mcp::Settings::ServerInstaller#remove
42
+ - RosettAi::Mcp::Tools::RuleSearchTool#call
43
+ - RosettAi::Mcp::Tools::HookInstallTool#call
44
+ ClassVariable:
45
+ enabled: true
46
+ exclude: []
47
+ ControlParameter:
48
+ enabled: true
49
+ exclude:
50
+ - RosettAi::Behaviour::Manager#add
51
+ - RosettAi::Behaviour::Manager#initialize
52
+ - RosettAi::Thor::Tasks::Compile#resolve_source_dir
53
+ - RosettAi::Thor::Tasks::Compile#default_target_dir
54
+ - RosettAi::Thor::Tasks::Compile#additional_dirs
55
+ - RosettAi::Ui::AccessibleTui#announce
56
+ - RosettAi::Documentation::ReferenceCompiler#initialize
57
+ - RosettAi::Configuration#resolve_root_path
58
+ - RosettAi::Thor::Tasks::Backup#resolve_restore_target
59
+ - RosettAi::Adopter::RuleAdopter#evaluate
60
+ - RosettAi::Adopter::RuleAdopter#cached_result
61
+ - RosettAi::Policy::PolicyCompiler#compile_protected_files
62
+ - RosettAi::Authorship::TrailerGenerator#validate_tool
63
+ - RosettAi::Provenance::Entry#initialize
64
+ - RosettAi::Provenance::Source#validate_url!
65
+ - RosettAi::Thor::CLI#tree_print_leaf
66
+ - RosettAi::Thor::CLI#tree_print_group
67
+ - RosettAi::Thor::Tasks::Desktop#print_status_tty
68
+ - RosettAi::Init::McpRegistrar#initialize
69
+ - RosettAi::Thor::Tasks::Compile#resolve_engine_option
70
+ - RosettAi::Init::ConfigFileWriter#self.write_default
71
+ - RosettAi::RaiConfig#initialize
72
+ - RosettAi::Cache::CompilerCache#initialize
73
+ - RosettAi::StructuredLogger#initialize
74
+ - RosettAi::Workflow::AuditLog#completed_steps
75
+ - RosettAi::Workflow::Engine#execute
76
+ - RosettAi::Composition::Composer#compose
77
+ - RosettAi::Ui::TtyHelper#confirm?
78
+ - RosettAi::Engines::BaseConfigCompiler#initialize
79
+ - RosettAi::Thor::Tasks::Config#resolve_config_compiler
80
+ - RosettAi::Thor::Tasks::Config#action_icon
81
+ - RosettAi::Thor::Tasks::Config#format_action
82
+ - RosettAi::Backup::TarGzCompressor#compress
83
+ - RosettAi::Backup::ZipCompressor#compress
84
+ - RosettAi::Thor::Tasks::BuildPackage#skipped_stage?
85
+ - RosettAi::Thor::Tasks::BuildPackage#status_text
86
+ - RosettAi::Thor::Tasks::DBus#adapter_for
87
+ - RosettAi::Ui::Registry#resolve
88
+ - RosettAi::Ui::Base#text_direction
89
+ - RosettAi::Documentation::Translator#initialize
90
+ - RosettAi::I18n::LocaleResolver#resolve
91
+ - RosettAi::Thor::Tasks::Release#bump_version
92
+ - RosettAi::Desktop::Gtk4Preferences#create_switch_row
93
+ - RosettAi::Desktop::Gtk4Preferences#create_combo_row
94
+ - RosettAi::Thor::Tasks::Adopt#category_headings
95
+ - RosettAi::Thor::Tasks::Adopt#finding_row
96
+ - RosettAi::Thor::Tasks::BuildEngine#print_engine_summary
97
+ - RosettAi::Thor::Tasks::Project#render_sync_results
98
+ - RosettAi::Thor::Tasks::Retrofit#render_results
99
+ - RosettAi::GitHooks::ScriptGenerator#self.command_block
100
+ - RosettAi::Mcp::Admin::Registry#initialize
101
+ - RosettAi::Mcp::Admin::SchemaValidator#initialize
102
+ - RosettAi::Mcp::Settings::TrustManager#initialize
103
+ - RosettAi::Completion::Generator#shell_generator_for
104
+ - RosettAi::Mcp::Tools::DesignShowTool#call
105
+ - RosettAi::Mcp::Tools::InitTool#call
106
+ - RosettAi::Mcp::Resources::ConfigResource#scope_path
107
+ - RosettAi::Mcp::Server#validate_host_binding
108
+ - RosettAi::Mcp::Server#load_config_yaml
109
+ - RosettAi::Mcp::Tools::CompileTool#call
110
+ - RosettAi::Mcp::Tools::CompileTool#resolve_source_dir
111
+ - RosettAi::Mcp::Tools::CompileTool#resolve_target_dir
112
+ - RosettAi::Mcp::Tools::CompileTool#additional_dirs
113
+ - RosettAi::Mcp::Tools::RuleSearchTool#apply_filters
114
+ - RosettAi::Mcp::Tools::HookPreviewTool#behaviour_dirs
115
+ - RosettAi::Mcp::Tools::HookPreviewTool#load_behaviours
116
+ - RosettAi::Mcp::Tools::HookPreviewTool#build_response
117
+ - RosettAi::Mcp::Tools::HookInstallTool#call
118
+ - RosettAi::Mcp::Tools::HookInstallTool#resolve_hook_path
119
+ - RosettAi::Mcp::Tools::HookInstallTool#resolve_settings_path
120
+ DataClump:
121
+ enabled: true
122
+ max_copies: 2
123
+ min_clump_size: 3
124
+ exclude:
125
+ - RosettAi::Init::FileCopier
126
+ - RosettAi::Migration::Detector
127
+ - RosettAi::AiConfig::ConfigCompiler
128
+ - RosettAi::Comply::Checkers::CraChecker
129
+ - RosettAi::Comply::Checkers::LicenseChecker
130
+ - RosettAi::Retrofit::RoundTripValidator
131
+ - RosettAi::Mcp::Enforcement::Validator
132
+ DuplicateMethodCall:
133
+ enabled: true
134
+ max_calls: 2
135
+ allow_calls:
136
+ - puts
137
+ - print
138
+ - "\\[\\]"
139
+ exclude:
140
+ - RosettAi::Quorum::Dispatcher#dispatch_single
141
+ - RosettAi::DBus::ManagerInterface
142
+ - RosettAi::DBus::ManagerInterface#set_config
143
+ - RosettAi::DBus::PluginManagerInterface
144
+ - RosettAi::Thor::Tasks::DBus
145
+ - RosettAi::Thor::Tasks::Doctor
146
+ - RosettAi::Thor::Tasks::License
147
+ - RosettAi::Thor::Tasks::Content
148
+ - RosettAi::Authorship::AttributionCompiler
149
+ - RosettAi::Thor::Tasks::Config
150
+ - RosettAi::Thor::Tasks::Release
151
+ - RosettAi::Thor::Tasks::Tooling
152
+ - RosettAi::Thor::Tasks::Validate
153
+ - RosettAi::Thor::Tasks::Behaviour
154
+ - RosettAi::Thor::Tasks::Documentation
155
+ - RosettAi::Thor::Tasks::Compile
156
+ - RosettAi::Thor::Tasks::Adopt
157
+ - RosettAi::Thor::Tasks::Init
158
+ - RosettAi::Thor::Tasks::Engines
159
+ - RosettAi::Thor::Tasks::Backup
160
+ - RosettAi::Thor::Tasks::BuildPackage
161
+ - RosettAi::Thor::Tasks::BuildEngine
162
+ - RosettAi::Compiler::LocaleCompiler
163
+ - RosettAi::Compiler::BehaviourCompiler
164
+ - RosettAi::Compiler::CompilationPipeline
165
+ - RosettAi::Compiler::TargetProfile
166
+ - RosettAi::Desktop::DbusClient
167
+ - RosettAi::Desktop::Gtk4App
168
+ - RosettAi::Desktop::Gtk4Preferences
169
+ - RosettAi::Desktop::GuiLogger
170
+ - RosettAi::Policy::PolicyCompiler
171
+ - RosettAi::Comply::Checkers::SpdxHeaderChecker#warn_result
172
+ - RosettAi::Mcp::Admin::Auditor#build_summary
173
+ - RosettAi::Mcp::Admin::HealthChecker#check
174
+ - RosettAi::Thor::Tasks::Mcp#render_audit_report
175
+ - RosettAi::Mcp::Settings::TrustManager#extract_domain
176
+ - RosettAi::SmartFeedback::Suggester#levenshtein
177
+ - RosettAi::SmartFeedback::ThorMiddleware::CommandDispatch#handle_unknown_argument
178
+ - RosettAi::Project::SyncManager#sync_file
179
+ - RosettAi::Workflow::Engine#build_summary
180
+ - RosettAi::Thor::Tasks::Workflow#colorize_status
181
+ - RosettAi::Comply::Reporter#report_json
182
+ - RosettAi::Comply::Reporter#report_summary
183
+ - RosettAi::Mcp::Plugins#discover_plugin_gems
184
+ - RosettAi::Thor::Tasks::Mcp#revoke_key
185
+ - RosettAi::Thor::Tasks::Mcp#rotate_key
186
+ - RosettAi::Mcp::Tools::RuleSearchTool#apply_filters
187
+ FeatureEnvy:
188
+ enabled: true
189
+ exclude:
190
+ - RosettAi::Thor::Tasks::Behaviour#behaviour_files
191
+ - RosettAi::Thor::Tasks::Compile#additional_dirs
192
+ - RosettAi::Composition::MergeStrategy::DeepMerge#apply
193
+ - RosettAi::Composition::MergeStrategy::ArrayUnion#apply
194
+ - RosettAi::Thor::Tasks::Migrate#show_project_results
195
+ - RosettAi::Composition::Composer#load_behaviours
196
+ - RosettAi::Composition::CircularDependencyDetector#dfs
197
+ - RosettAi::Compiler::CompilationPipeline#compile_file
198
+ - RosettAi::Compiler::CompilationPipeline#detect_duplicate_rule_ids
199
+ - RosettAi::Composition::ConflictDetector#detect
200
+ - RosettAi::Composition::Lockfile#build_lockfile_data
201
+ - RosettAi::Authorship::AttributionCompiler#build_section
202
+ - RosettAi::Authorship::TrailerGenerator#validate_tool
203
+ - RosettAi::Authorship::AttributionCompiler#sanitize_entries
204
+ - RosettAi::Provenance::Source#validate_url!
205
+ - RosettAi::Thor::Tasks::Provenance#print_table_format
206
+ - RosettAi::Thor::Tasks::Provenance#print_plain_format
207
+ - RosettAi::AiConfig::ConfigCompiler#compile_context_window
208
+ - RosettAi::Thor::CLI#tree_leaf_commands
209
+ - RosettAi::Thor::CLI#tree_render_entries
210
+ - RosettAi::DBus::FocusAdapters::GnomeAdapter#eval_shell_js
211
+ - RosettAi::DBus::FocusAdapters::HyprlandAdapter#handle_event
212
+ - RosettAi::DBus::FocusAdapters::I3Adapter#handle_window_event
213
+ - RosettAi::DBus::FocusAdapters::KwinAdapter#poll_active_window
214
+ - RosettAi::DBus::ManagerInterface#compile
215
+ - RosettAi::DBus::ManagerInterface#set_config
216
+ - RosettAi::Thor::Tasks::DBus#stop_via_dbus
217
+ - RosettAi::Thor::Tasks::BehaviourManage#cleanup_compiled_rules
218
+ - RosettAi::Behaviour::Manager#cleanup_compiled_rules
219
+ - RosettAi::Thor::Tasks::Adopt#build_adopter
220
+ - RosettAi::Configuration#deep_merge
221
+ - RosettAi::Configuration#merge_values
222
+ - RosettAi::RaiConfig#deep_merge
223
+ - RosettAi::Thor::Tasks::License#print_status_table
224
+ - RosettAi::Thor::Tasks::License#print_warnings
225
+ - RosettAi::Licensing::LicenseValidator#validate_key
226
+ - RosettAi::Licensing::LicenseValidator#add_expiry_warnings
227
+ - RosettAi::Licensing::LicenseStore#validate_permissions!
228
+ - RosettAi::Licensing::LicenseStore#ensure_parent_directory!
229
+ - RosettAi::Thor::Tasks::Content#list_installed
230
+ - RosettAi::Thor::Tasks::Content#list_available
231
+ - RosettAi::Thor::Tasks::Content#download_and_install
232
+ - RosettAi::Thor::Tasks::Content#install
233
+ - RosettAi::Content::PackInstaller#extract_entry
234
+ - RosettAi::Content::PackInstaller#move_to_final
235
+ - RosettAi::Content::PackInstaller#validate_extracted_manifest
236
+ - RosettAi::Content::PackInstaller#reject_traversal!
237
+ - RosettAi::Content::PackRegistry#installed
238
+ - RosettAi::Content::PackRegistry#version
239
+ - RosettAi::Content::PackRegistry#remove!
240
+ - RosettAi::Thor::Tasks::Doctor#build_row
241
+ - RosettAi::Thor::Tasks::Doctor#print_json
242
+ - RosettAi::Doctor::Checks::FilePermissionCheck#perform
243
+ - RosettAi::Thor::Tasks::Behaviour#build_table_row
244
+ - RosettAi::Thor::Tasks::Behaviour#find_behaviour_file
245
+ - RosettAi::Thor::Tasks::BehaviourManage#find_behaviour_file
246
+ - RosettAi::Thor::Tasks::Init#create_project_config
247
+ - RosettAi::Thor::Tasks::Design#find_design_file
248
+ - RosettAi::Thor::Tasks::Tooling#find_tooling_file
249
+ - RosettAi::Thor::Tasks::Design#print_design_header
250
+ - RosettAi::Thor::Tasks::Design#build_design_list_row
251
+ - RosettAi::Thor::Tasks::Validate#validate_category
252
+ - RosettAi::Thor::Tasks::Documentation#scan_with_spinner
253
+ - RosettAi::Thor::Tasks::Documentation#apply_changes_with_spinner
254
+ - RosettAi::Thor::Tasks::Documentation#scan_reference_changes
255
+ - RosettAi::Thor::Tasks::Documentation#compile_reference_document!
256
+ - RosettAi::Thor::Tasks::Documentation#scan_behaviour_changes
257
+ - RosettAi::Thor::Tasks::Documentation#scan_dependency_changes
258
+ - RosettAi::Thor::Tasks::Adopt#category_headings
259
+ - RosettAi::Thor::Tasks::Adopt#finding_row
260
+ - RosettAi::Thor::Tasks::Adopt#run_quorum_analysis
261
+ - RosettAi::Quorum::Collector#normalize
262
+ - RosettAi::Quorum::Comparator#merge_group
263
+ - RosettAi::Adopter::RuleAdopter#append_file_contents
264
+ - RosettAi::Adopter::RuleAdopter#cached_result
265
+ - RosettAi::Adopter::RuleAdopter#load_redaction_patterns
266
+ - RosettAi::Adopter::RuleAdopter#merge_results
267
+ - RosettAi::Adopter::RuleAdopter#redact
268
+ - RosettAi::Adopter::LocalAnalysisCollector#build_description_map
269
+ - RosettAi::Adopter::LocalAnalysisCollector#check_empty_description
270
+ - RosettAi::Adopter::LocalAnalysisCollector#check_missing_priority
271
+ - RosettAi::Adopter::LocalAnalysisCollector#check_identical_descriptions
272
+ - RosettAi::Adopter::LocalAnalysisCollector#extract_bullet_rules
273
+ - RosettAi::Engines::BaseConfigCompiler#compile_scope
274
+ - RosettAi::Engines::BaseConfigCompiler#discover_scope_files
275
+ - RosettAi::Engines::BaseConfigCompiler#load_and_validate
276
+ - RosettAi::Engines::BaseConfigCompiler#write_results
277
+ - RosettAi::Config::SecretResolver#validate_file_permissions!
278
+ - RosettAi::Thor::Tasks::Config#print_result
279
+ - RosettAi::Thor::Tasks::Config#print_summary
280
+ - RosettAi::Thor::Tasks::Config#abort_if_failed
281
+ - RosettAi::Thor::Tasks::Config#find_scope_file
282
+ - RosettAi::Thor::Tasks::Config#resolve_config_compiler
283
+ - RosettAi::Thor::Tasks::Config#result_message
284
+ - RosettAi::Compiler::BehaviourCompiler#render
285
+ - RosettAi::Compiler::BehaviourCompiler#generate_unified_diff
286
+ - RosettAi::Compiler::BehaviourCompiler#lockfile_data
287
+ - RosettAi::Compiler::BehaviourCompiler#validate!
288
+ - RosettAi::Compiler::CompilationPipeline#lockfile_data
289
+ - RosettAi::Compiler::CompilationPipeline#validate!
290
+ - RosettAi::Ui::Gtk4#prompt_user
291
+ - RosettAi::Ui::Gtk4#show_spinner
292
+ - RosettAi::Desktop::Gtk4App#build_actions_group
293
+ - RosettAi::Desktop::Gtk4App#build_header_bar
294
+ - RosettAi::Desktop::Gtk4App#build_main_content
295
+ - RosettAi::Desktop::Gtk4App#build_main_window
296
+ - RosettAi::Desktop::Gtk4App#build_status_group
297
+ - RosettAi::Desktop::Gtk4App#show_about
298
+ - RosettAi::Desktop::Gtk4App#show_fatal_error
299
+ - RosettAi::Desktop::Gtk4Preferences#add_advanced_page
300
+ - RosettAi::Desktop::Gtk4Preferences#add_context_page
301
+ - RosettAi::Desktop::Gtk4Preferences#add_general_page
302
+ - RosettAi::Desktop::Gtk4Preferences#create_switch_row
303
+ - RosettAi::Desktop::Gtk4Preferences#create_combo_row
304
+ - RosettAi::Desktop::Gtk4Preferences#engine_display_names
305
+ - RosettAi::Desktop::Gtk4Preferences#engine_names
306
+ - RosettAi::PackageManager::GemBackend#available_packages
307
+ - RosettAi::DBus::PluginManagerInterface#list_plugins
308
+ - RosettAi::Thor::Tasks::Plugins#print_list_json
309
+ - RosettAi::Desktop::DbusClient#log_error
310
+ - RosettAi::Desktop::GuiLogger#error
311
+ - RosettAi::Compiler::LocaleCompiler#flatten_keys
312
+ - RosettAi::Compiler::LocaleCompiler#write_pot
313
+ - RosettAi::Compiler::LocaleCompiler#write_po
314
+ - RosettAi::Compiler::LocaleCompiler#write_ts
315
+ - RosettAi::VersionConsistencyChecker#excluded?
316
+ - RosettAi::GemConsistencyChecker#excluded?
317
+ - Overcommit::Hook::PreCommit::CheckVersions#run
318
+ - RosettAi::GemConsistencyChecker#check_line_for_stale_gems
319
+ - RosettAi::GemConsistencyChecker#gem_status
320
+ - RosettAi::ErrorHandler#report_plain
321
+ - RosettAi::GemConsistencyChecker#parse_gemspec_constraints
322
+ - RosettAi::GemConsistencyChecker#parse_lockfile_versions
323
+ - RosettAi::Engines::Detector#check_cli_binary
324
+ - RosettAi::Engines::Detector#check_config_dir
325
+ - RosettAi::Thor::Tasks::Engines#detect
326
+ - RosettAi::Thor::Tasks::Engines#status
327
+ - RosettAi::Thor::Tasks::Init#run_engine_detection
328
+ - RosettAi::Thor::Tasks::Init#resolve_detector
329
+ - RosettAi::Thor::Tasks::Init#log_config_result
330
+ - RosettAi::Thor::Tasks::Tooling#print_version_summary
331
+ - RosettAi::Thor::Tasks::Compile#print_summary
332
+ - RosettAi::Thor::Tasks::Init#print_summary
333
+ - RosettAi::Thor::Tasks::Init#build_summary_rows
334
+ - RosettAi::Thor::Tasks::Backup#print_summary
335
+ - RosettAi::Thor::Tasks::Backup#create_archive
336
+ - RosettAi::Thor::Tasks::Backup#collect_local_files
337
+ - RosettAi::Thor::Tasks::Backup#extract_zip
338
+ - RosettAi::Formatting#format_size
339
+ - RosettAi::Formatting#format_duration
340
+ - RosettAi::Thor::CLI#version
341
+ - RosettAi::Thor::Tasks::BuildPackage#jobs_count
342
+ - RosettAi::Backup::ZipCompressor#compress
343
+ - RosettAi::Thor::Tasks::Release#bump_version
344
+ - RosettAi::Thor::Tasks::Release#update_changelog!
345
+ - RosettAi::Thor::Tasks::Release#extract_changelog_section
346
+ - RosettAi::Thor::Tasks::Release#generate_changelog_from_git
347
+ - RosettAi::Comply::Checkers::SpdxHeaderChecker#warn_result
348
+ - RosettAi::Comply::Reporter#build_row
349
+ - RosettAi::Thor::Tasks::Comply#selected_checks
350
+ - RosettAi::Workflow::AuditLog#completed_steps
351
+ - RosettAi::Workflow::SchemaValidator#security_errors
352
+ - RosettAi::Workflow::StepRunner#resolve_step_class
353
+ - RosettAi::Thor::Tasks::Workflow#render_table
354
+ - RosettAi::Project::DriftDetector#detect
355
+ - RosettAi::Project::DriftDetector#check_template_file_drift
356
+ - RosettAi::Project::Manager#count_behaviours
357
+ - RosettAi::Project::Manager#count_designs
358
+ - RosettAi::Project::Manager#load_project_config
359
+ - RosettAi::Project::Manager#load_template_origin
360
+ - RosettAi::Project::SyncManager#classify_change
361
+ - RosettAi::Project::SyncManager#sync_file
362
+ - RosettAi::Project::SyncManager#update_origin_timestamp
363
+ - RosettAi::Project::TemplateApplier#apply_file
364
+ - RosettAi::Retrofit::Engine#retrofit_engine
365
+ - RosettAi::Retrofit::Engine#simulate_engine
366
+ - RosettAi::Retrofit::Engine#write_yaml
367
+ - RosettAi::Retrofit::RoundTripValidator#compare_original_keys
368
+ - RosettAi::Retrofit::RoundTripValidator#find_added_keys
369
+ - RosettAi::Retrofit::SecretDetector#redact
370
+ - RosettAi::Retrofit::SecretDetector#sensitive?
371
+ - RosettAi::GitHooks::ChainDetector#existing_hook
372
+ - RosettAi::GitHooks::Installer#classify_hook
373
+ - RosettAi::Compiler::Backends::AgentsMdBackend#build_header
374
+ - RosettAi::Compiler::Backends::AgentsMdBackend#build_rules
375
+ - RosettAi::Compiler::Backends::AgentsMdBackend#render
376
+ - RosettAi::Compiler::Backends::ClaudeBackend#build_header
377
+ - RosettAi::Compiler::Backends::ClaudeBackend#append_source_metadata
378
+ - RosettAi::Compiler::Backends::ClaudeBackend#format_rule
379
+ - RosettAi::Completion::Generator#extract_command_tree
380
+ - RosettAi::Completion::Generator#extract_subcommands
381
+ - RosettAi::Completion::Shells::BashGenerator#generate
382
+ - RosettAi::Completion::Shells::FishGenerator#generate
383
+ - RosettAi::Completion::Shells::ZshGenerator#generate
384
+ - RosettAi::Completion::Shells::ZshGenerator#subcommand_dispatch
385
+ - RosettAi::SmartFeedback::Suggester#suggest
386
+ - RosettAi::SmartFeedback::ThorMiddleware::CommandDispatch#available_flags
387
+ - RosettAi::Cache::Manifest#hit?
388
+ - RosettAi::Mcp::Admin::Auditor#audit_server
389
+ - RosettAi::Mcp::Admin::HealthChecker#check
390
+ - RosettAi::Mcp::Admin::HealthChecker#check_stdio
391
+ - RosettAi::Mcp::Resources::BehaviourResource#list
392
+ - RosettAi::Mcp::Resources::DesignResource#list
393
+ - RosettAi::Mcp::Tools::BehaviourListTool#call
394
+ - RosettAi::Mcp::Tools::BehaviourListTool#load_behaviour
395
+ - RosettAi::Mcp::Tools::DesignListTool#call
396
+ - RosettAi::Mcp::Tools::ValidateTool#call
397
+ - RosettAi::Mcp::Tools::ValidateTool#validate_scope
398
+ - RosettAi::Thor::Tasks::Mcp#render_server_list
399
+ - RosettAi::Thor::Tasks::Mcp#tools
400
+ - RosettAi::Mcp::HttpSecurityConfig#apply
401
+ - RosettAi::Mcp::HttpSecurityConfig::AuthConfig#apply
402
+ - RosettAi::Mcp::HttpSecurityConfig::TlsConfig#apply
403
+ - RosettAi::Mcp::HttpSecurityConfig::OriginConfig#apply
404
+ - RosettAi::Mcp::HttpSecurityConfig::RateLimitConfig#apply
405
+ - RosettAi::Mcp::HttpSecurityConfig::CorsConfig#apply
406
+ - RosettAi::Mcp::Tools::BehaviourDisplayTool#call
407
+ - RosettAi::Mcp::Tools::BehaviourDisplayTool#load_display
408
+ - RosettAi::Mcp::Tools::BehaviourShowTool#call
409
+ - RosettAi::Mcp::Tools::DesignShowTool#call
410
+ - RosettAi::Mcp::Tools::ProjectTool#action_drift
411
+ - RosettAi::Mcp::Tools::RetrofitTool#call
412
+ - RosettAi::Mcp::Middleware::OriginValidation#initialize
413
+ - RosettAi::Behaviour::Manager#delete
414
+ - RosettAi::Behaviour::Manager#validate_behaviour!
415
+ - RosettAi::Behaviour::Manager#validate_enforcement!
416
+ - RosettAi::ContentPacks::Manager#list
417
+ - RosettAi::Retrofit::Scanner#convert
418
+ - RosettAi::Tooling::CiYamlValidator#validate
419
+ - RosettAi::Tooling::VersionChecker#check
420
+ - RosettAi::Mcp::Tools::CompileTool#build_write_result
421
+ - RosettAi::Mcp::Tools::RuleSearchTool#build_match
422
+ - RosettAi::Mcp::Tools::RuleSearchTool#each_behaviour_file
423
+ - RosettAi::Mcp::Tools::RuleSearchTool#search_behaviour
424
+ - RosettAi::Mcp::Tools::HookPreviewTool#call
425
+ - RosettAi::Mcp::Enforcement::Validator#validate_rule
426
+ - RosettAi::Mcp::Enforcement::HookGenerator#format_rule_entry
427
+ - RosettAi::Mcp::Enforcement::HookGenerator#generate
428
+ - RosettAi::Mcp::Tools::HookPreviewTool#each_behaviour_file
429
+ - RosettAi::Mcp::Tools::HookInstallTool#register_in_settings
430
+ - RosettAi::Mcp::Tools::SchemaGetTool#call
431
+ - RosettAi::Mcp::Tools::ContextQueryTool#each_behaviour
432
+ - RosettAi::Mcp::Resources::BehaviourResource#find_first
433
+ - RosettAi::Mcp::Resources::HooksResource#read
434
+ - RosettAi::Mcp::Resources::RulesResource#list
435
+ - RosettAi::Mcp::Resources::SchemaResource#list
436
+ InstanceVariableAssumption:
437
+ enabled: true
438
+ exclude:
439
+ - RosettAi::Adopter::RuleAdopter
440
+ - RosettAi::Adopter::LocalAnalysisCollector
441
+ - RosettAi::Thor::Tasks::BuildPackage
442
+ - RosettAi::Thor::Tasks::BuildEngine
443
+ - RosettAi::Ui::Registry
444
+ - RosettAi::Plugins::Registry
445
+ - RosettAi::Compiler::CompilationPipeline
446
+ - RosettAi::DBus::FocusAdapters::GnomeAdapter
447
+ - RosettAi::DBus::FocusAdapters::HyprlandAdapter
448
+ - RosettAi::DBus::FocusAdapters::I3Adapter
449
+ - RosettAi::DBus::FocusAdapters::KwinAdapter
450
+ - RosettAi::DBus::FocusAdapters::X11Adapter
451
+ - RosettAi::DBus::Service
452
+ - RosettAi::Desktop::DbusClient
453
+ - RosettAi::Mcp::Enforcement::Validator
454
+ IrresponsibleModule:
455
+ enabled: false
456
+ LongParameterList:
457
+ enabled: true
458
+ max_params: 4
459
+ overrides:
460
+ initialize:
461
+ max_params: 5
462
+ exclude:
463
+ - RosettAi::Composition::Composer#compose
464
+ - RosettAi::Composition::CompositionResult#initialize
465
+ - RosettAi::Composition::CircularDependencyDetector#dfs
466
+ - RosettAi::Provenance::Entry#initialize
467
+ - RosettAi::Compiler::CompilationPipeline#initialize
468
+ - RosettAi::Thor::Tasks::Compile#handle_write
469
+ - RosettAi::Thor::Tasks::Compile#handle_simulate
470
+ - RosettAi::Init::FileCopier#copy_glob_files
471
+ - RosettAi::GemConsistencyChecker#check_line_for_stale_gems
472
+ - RosettAi::Deprecation#warn_deprecated
473
+ - RosettAi::Workflow::AuditLog#record
474
+ - RosettAi::Migration::Detector#check_deprecated_field
475
+ - RosettAi::Mcp::Server#start_puma
476
+ - RosettAi::Mcp::Tools::RuleSearchTool#build_match
477
+ LongYieldList:
478
+ enabled: true
479
+ max_params: 3
480
+ exclude: []
481
+ ManualDispatch:
482
+ enabled: true
483
+ exclude:
484
+ - RosettAi::Thor::Tasks::Backup#resolve_dest_path
485
+ - RosettAi::Ui::Gtk4#prompt_user
486
+ - RosettAi::Desktop::Gtk4App#build_header_bar
487
+ - RosettAi::Desktop::Gtk4App#show_fatal_error
488
+ - RosettAi::Desktop::Gtk4Preferences#present
489
+ - RosettAi::ErrorHandler#tty?
490
+ - RosettAi::Completion::Generator#extract_options
491
+ - RosettAi::SmartFeedback::ThorMiddleware::CommandDispatch#available_flags
492
+ - RosettAi::Deprecation#tty?
493
+ - RosettAi::Thor::CLI#tree_visible_commands
494
+ - RosettAi::Compiler::TargetProfile#self.load
495
+ - RosettAi::Compiler::Backend#self.resolve_backend_class
496
+ - RosettAi::Thor::Tasks::Config#resolve_config_compiler
497
+ - RosettAi::Thor::Tasks::Config#find_scope_file
498
+ - RosettAi::Thor::Tasks::Engines#plugins
499
+ - RosettAi::Mcp::Tools::ConfigStatusTool#detect_engines
500
+ - RosettAi::Mcp::Middleware::Authentication#auth_type
501
+ - RosettAi::Mcp::Middleware::Authentication#keyfile_mode?
502
+ - RosettAi::Mcp::Middleware::Authentication#authenticate_via_env
503
+ - RosettAi::Mcp::Middleware::Cors#resolve_config
504
+ - RosettAi::Mcp::Middleware::OriginValidation#initialize
505
+ - RosettAi::Mcp::Middleware::RateLimit#initialize
506
+ MissingSafeMethod:
507
+ enabled: false
508
+ ModuleInitialize:
509
+ enabled: true
510
+ exclude: []
511
+ NestedIterators:
512
+ enabled: true
513
+ max_allowed_nesting: 1
514
+ ignore_iterators:
515
+ - tap
516
+ exclude:
517
+ - RosettAi::Thor::Tasks::Behaviour#behaviour_files
518
+ - RosettAi::Composition::Composer#annotate_rules
519
+ - RosettAi::Composition::Composer#build_warnings
520
+ - RosettAi::Authorship::AttributionCompiler#sanitize_entries
521
+ - RosettAi::Authorship::AttributionCompiler#append_per_file_summary
522
+ - RosettAi::Provenance::Store#entries_for_file
523
+ - RosettAi::Thor::Tasks::Provenance#print_table_format
524
+ - RosettAi::Thor::Tasks::Provenance#print_plain_format
525
+ - RosettAi::Thor::Tasks::Engines#detect
526
+ - RosettAi::VersionConsistencyChecker#scan_file
527
+ - RosettAi::Thor::Tasks::Backup#extract_tar_gz
528
+ - RosettAi::Thor::Tasks::Backup#extract_tar_xz
529
+ - RosettAi::Thor::Tasks::Backup#extract_zip
530
+ - RosettAi::GemConsistencyChecker#check_line_for_stale_gems
531
+ - RosettAi::Compiler::CompilationPipeline#detect_duplicate_rule_ids
532
+ - RosettAi::Adopter::LocalAnalysisCollector#build_description_map
533
+ - RosettAi::Adopter::LocalAnalysisCollector#check_duplicate_ids
534
+ - RosettAi::Adopter::LocalAnalysisCollector#check_identical_descriptions
535
+ - RosettAi::Adopter::LocalAnalysisCollector#extract_heading_rules
536
+ - RosettAi::Adopter::LocalAnalysisCollector#extract_rules_from_markdown
537
+ - RosettAi::Content::PackInstaller#extract_tarball
538
+ - RosettAi::Backup::TarGzCompressor#compress
539
+ - RosettAi::Backup::TarXzCompressor#compress
540
+ - RosettAi::Backup::ZipCompressor#compress
541
+ - RosettAi::Compiler::BehaviourCompiler#compile
542
+ - RosettAi::Compiler::CompilationPipeline#compile
543
+ - RosettAi::Compiler::CompilationPipeline#discover_categories
544
+ - RosettAi::Compiler::CompilationPipeline#collect_category_files
545
+ - RosettAi::Ui::AccessibleTui#compute_column_widths
546
+ - RosettAi::Compiler::LocaleCompiler#write_pot
547
+ - RosettAi::Compiler::LocaleCompiler#write_po
548
+ - RosettAi::Compiler::LocaleCompiler#write_ts
549
+ - RosettAi::Documentation::ReferenceCompiler#source_files
550
+ - RosettAi::Quorum::Dispatcher#spawn_threads
551
+ - RosettAi::Plugins::Registry#discover_custom_path
552
+ - RosettAi::Thor::Tasks::Backup#collect_global_files
553
+ - RosettAi::Thor::Tasks::Documentation#apply_changes
554
+ - RosettAi::Thor::Tasks::Project#render_drift_results
555
+ - RosettAi::Ui::Gtk4#populate_store
556
+ - RosettAi::Thor::Tasks::Mcp#render_validation_results
557
+ - RosettAi::Mcp::Governance#register_resources
558
+ - RosettAi::Mcp::Governance#register_prompts
559
+ - RosettAi::Completion::Shells::FishGenerator#subcommand_completions
560
+ - RosettAi::SmartFeedback::Suggester#levenshtein
561
+ - RosettAi::Completion::Shells::ZshGenerator#subcommand_functions
562
+ - RosettAi::Mcp::Tools::HooksStatusTool#extract_hooks
563
+ - RosettAi::Mcp::Tools::RuleSearchTool#each_behaviour_file
564
+ - RosettAi::Mcp::Tools::HookPreviewTool#each_behaviour_file
565
+ - RosettAi::Mcp::Tools::ContextQueryTool#each_behaviour
566
+ - RosettAi::Mcp::Tools::HookPreviewTool#validate_and_collect
567
+ - RosettAi::Mcp::Resources::BehaviourResource#list
568
+ NilCheck:
569
+ enabled: true
570
+ exclude:
571
+ - RosettAi::Composition::Composer#filter_sensitive
572
+ - RosettAi::Authorship::ReviewValidator#validate
573
+ - RosettAi::VersionConsistencyChecker#binary?
574
+ - RosettAi::VersionConsistencyChecker#consistent?
575
+ - RosettAi::Cache::Manifest#hit?
576
+ - RosettAi::GemConsistencyChecker#binary?
577
+ - RosettAi::SecretsResolver#from_env
578
+ - RosettAi::Config::SecretResolver#validate_reference!
579
+ - RosettAi::I18n::LocaleResolver#parse_lang
580
+ - RosettAi::Doctor::Checks::RubyVersionCheck#perform
581
+ - RosettAi::ProjectContext#project?
582
+ - RosettAi::Thor::Tasks::Design#show
583
+ - RosettAi::Licensing::LicenseValidator#validate
584
+ - RosettAi::Thor::Tasks::Content#list_available
585
+ - RosettAi::Adopter::ExecutorResolver#guard_api_key!
586
+ - RosettAi::Desktop::Gtk4App#current_focus_text
587
+ - RosettAi::Comply::Runner#active_checkers
588
+ - RosettAi::Project::DriftDetector#detect
589
+ - RosettAi::Retrofit::RoundTripValidator#compare_original_keys
590
+ - RosettAi::Mcp::Tools::BehaviourManageTool#call
591
+ - RosettAi::Mcp::Tools::WorkflowExecuteTool#call
592
+ - RosettAi::Mcp::Tools::CompileTool#build_simulate_result
593
+ - RosettAi::Mcp::Enforcement::Validator#check_pattern
594
+ RepeatedConditional:
595
+ enabled: true
596
+ max_ifs: 3
597
+ exclude:
598
+ - RosettAi::Provenance::Store
599
+ - RosettAi::Behaviour::Manager
600
+ - RosettAi::Thor::Tasks::Compile
601
+ - RosettAi::Thor::Tasks::Config
602
+ - RosettAi::Thor::Tasks::BuildPackage
603
+ - RosettAi::Thor::Tasks::BuildEngine
604
+ - RosettAi::Desktop::DbusClient
605
+ - RosettAi::Desktop::Gtk4App
606
+ - RosettAi::Desktop::GuiLogger
607
+ - RosettAi::Thor::Tasks::Mcp
608
+ SubclassedFromCoreClass:
609
+ enabled: true
610
+ exclude:
611
+ - RosettAi::Error
612
+ - RosettAi::StructuredLogger
613
+ TooManyConstants:
614
+ enabled: true
615
+ max_constants: 7
616
+ exclude:
617
+ - RosettAi::Config::SecretResolver
618
+ TooManyInstanceVariables:
619
+ enabled: true
620
+ max_instance_variables: 5
621
+ exclude:
622
+ - RosettAi::Compiler::CompilationPipeline
623
+ - RosettAi::Composition::CompositionResult
624
+ - RosettAi::Provenance::Entry
625
+ - RosettAi::Thor::Tasks::Behaviour
626
+ - RosettAi::DBus::FocusAdapters::GnomeAdapter
627
+ - RosettAi::DBus::Service
628
+ - RosettAi::Desktop::DbusClient
629
+ - RosettAi::Desktop::Gtk4App
630
+ - RosettAi::Desktop::GuiLogger
631
+ - RosettAi::Thor::Tasks::BuildEngine
632
+ - RosettAi::Mcp::HttpSecurityConfig
633
+ - RosettAi::Mcp::Middleware::RateLimit
634
+ TooManyMethods:
635
+ enabled: true
636
+ max_methods: 12
637
+ exclude:
638
+ - RosettAi::Provenance::Store
639
+ - RosettAi::Plugins::Registry
640
+ - RosettAi::Adopter::LocalAnalysisCollector
641
+ - RosettAi::Adopter::RuleAdopter
642
+ - RosettAi::Thor::Tasks::Adopt
643
+ - RosettAi::Thor::CLI
644
+ - RosettAi::Compiler::BehaviourCompiler
645
+ - RosettAi::Compiler::CompilationPipeline
646
+ - RosettAi::Compiler::LocaleCompiler
647
+ - RosettAi::PathResolver
648
+ - RosettAi::Thor::Tasks::Config
649
+ - RosettAi::Engines::BaseConfigCompiler
650
+ - RosettAi::Configuration
651
+ - RosettAi::RaiConfig
652
+ - RosettAi::Licensing::LicenseKey
653
+ - RosettAi::Licensing::LicenseStore
654
+ - RosettAi::Content::PackInstaller
655
+ - RosettAi::Content::ContentClient
656
+ - RosettAi::Thor::Tasks::Doctor
657
+ - RosettAi::Thor::Tasks::Backup
658
+ - RosettAi::Thor::Tasks::Behaviour
659
+ - RosettAi::Thor::Tasks::BuildPackage
660
+ - RosettAi::Thor::Tasks::Compile
661
+ - RosettAi::Thor::Tasks::Documentation
662
+ - RosettAi::Thor::Tasks::Design
663
+ - RosettAi::Thor::Tasks::Tooling
664
+ - RosettAi::GemConsistencyChecker
665
+ - RosettAi::Documentation::ReferenceCompiler
666
+ - RosettAi::Thor::Tasks::Release
667
+ - RosettAi::Thor::Tasks::Engines
668
+ - RosettAi::Thor::Tasks::DBus
669
+ - RosettAi::Thor::Tasks::Init
670
+ - RosettAi::Thor::Tasks::BuildEngine
671
+ - RosettAi::GitHooks::Installer
672
+ - RosettAi::Thor::Tasks::Hooks
673
+ - RosettAi::Thor::Tasks::Mcp
674
+ - RosettAi::Mcp::Keyfile
675
+ - RosettAi::Mcp::Server
676
+ - RosettAi::Mcp::Settings::TrustManager
677
+ - RosettAi::Desktop::Gtk4App
678
+ - RosettAi::Desktop::DbusClient
679
+ - RosettAi::Desktop::Gtk4Preferences
680
+ - RosettAi::Desktop::GuiLogger
681
+ - RosettAi::DBus::FocusAdapters::GnomeAdapter
682
+ TooManyStatements:
683
+ enabled: true
684
+ max_statements: 8
685
+ exclude:
686
+ - RosettAi::Init::McpRegistrar#register
687
+ - RosettAi::Thor::Tasks::Validate#validate_category
688
+ - RosettAi::Init::FileCopier#copy_global_assets
689
+ - RosettAi::Migration::XdgMigrator#migrate_directory
690
+ - RosettAi::Provenance::Store#verify_chain
691
+ - RosettAi::Thor::Tasks::Provenance#validate
692
+ - RosettAi::Thor::Tasks::Provenance#show
693
+ - RosettAi::Thor::Tasks::Provenance#log
694
+ - RosettAi::Composition::Composer#compose
695
+ - RosettAi::Composition::Composer#build_warnings
696
+ - RosettAi::Composition::CircularDependencyDetector#dfs
697
+ - RosettAi::Composition::ConflictDetector#detect
698
+ - RosettAi::Compiler::CompilationPipeline#detect_duplicate_rule_ids
699
+ - RosettAi::Authorship::AttributionCompiler#append_per_file_summary
700
+ - RosettAi::Authorship::AttributionCompiler#append_trailer_guidance
701
+ - RosettAi::Authorship::AttributionCompiler#build_section
702
+ - RosettAi::Policy::PolicyCompiler#compile_protected_files
703
+ - RosettAi#loader
704
+ - RosettAi::DBus::FocusAdapters::GnomeAdapter#start
705
+ - RosettAi::DBus::FocusAdapters::HyprlandAdapter#start
706
+ - RosettAi::DBus::FocusAdapters::I3Adapter#start
707
+ - RosettAi::DBus::FocusAdapters::KwinAdapter#start
708
+ - RosettAi::DBus::FocusAdapters::X11Adapter#extract_window_title
709
+ - RosettAi::DBus::CompositorDetector#detect_via_dbus
710
+ - RosettAi::DBus::ManagerInterface#compile
711
+ - RosettAi::DBus::Service#start
712
+ - RosettAi::Thor::Tasks::DBus#print_environment_table
713
+ - RosettAi::Thor::Tasks::DBus#print_running_status
714
+ - RosettAi::Thor::Tasks::DBus#fetch_service_status
715
+ - RosettAi::DBus::PluginManagerInterface#install_plugin
716
+ - RosettAi::DBus::PluginManagerInterface#remove_plugin
717
+ - RosettAi::DBus::PluginManagerInterface#list_plugins
718
+ - RosettAi::Thor::Tasks::Plugins#install
719
+ - RosettAi::Thor::Tasks::Plugins#remove
720
+ - RosettAi::Thor::Tasks::Desktop#print_status_tty
721
+ - RosettAi::Thor::Tasks::Init#run_with_spinner
722
+ - RosettAi::Thor::Tasks::Init#run_compile
723
+ - RosettAi::Thor::Tasks::DBus#stop_via_dbus
724
+ - RosettAi::Desktop::DbusClient#connect
725
+ - RosettAi::Desktop::DbusClient#list_engines
726
+ - RosettAi::Desktop::DbusClient#set_config
727
+ - RosettAi::Desktop::Gtk4App#build_actions_group
728
+ - RosettAi::Desktop::Gtk4App#build_content_box
729
+ - RosettAi::Desktop::Gtk4App#build_main_content
730
+ - RosettAi::Desktop::Gtk4App#build_status_group
731
+ - RosettAi::Desktop::Gtk4App#setup_actions
732
+ - RosettAi::Desktop::Gtk4App#show_about
733
+ - RosettAi::Desktop::Gtk4Preferences#add_advanced_page
734
+ - RosettAi::Desktop::Gtk4Preferences#add_context_page
735
+ - RosettAi::Desktop::Gtk4Preferences#add_general_page
736
+ - RosettAi::Desktop::Gtk4Preferences#build
737
+ - RosettAi::Desktop::Gtk4Preferences#create_preferences_dialog
738
+ - RosettAi::Desktop::Gtk4Preferences#create_switch_row
739
+ - RosettAi::Desktop::Gtk4Preferences#create_combo_row
740
+ - RosettAi::Desktop::DbusClient#compile
741
+ - RosettAi::Desktop::Gtk4App#run
742
+ - RosettAi::Desktop::Gtk4App#build_main_window
743
+ - RosettAi::Desktop::GuiLogger#action
744
+ - RosettAi::Desktop::GuiLogger#initialize
745
+ - RosettAi::Desktop::GuiLogger#write_log
746
+ - RosettAi::Thor::Tasks::Desktop#status
747
+ - RosettAi::Thor::Tasks::Design#show
748
+ - RosettAi::Engines::BaseConfigCompiler#compile_scope
749
+ - RosettAi::Engines::BaseConfigCompiler#generate_diff
750
+ - RosettAi::Thor::Tasks::Config#compile
751
+ - RosettAi::Validators::SchemaValidator#load_file
752
+ - RosettAi::Adopter::RuleAdopter#evaluate_remote
753
+ - RosettAi::Backup::TarGzCompressor#compress
754
+ - RosettAi::Backup::TarXzCompressor#compress
755
+ - RosettAi::Compiler::BehaviourCompiler#compile
756
+ - RosettAi::Compiler::BehaviourCompiler#render
757
+ - RosettAi::Compiler::BehaviourCompiler#generate_unified_diff
758
+ - RosettAi::Compiler::BehaviourCompiler#validate!
759
+ - RosettAi::Compiler::CompilationPipeline#compile
760
+ - RosettAi::Compiler::CompilationPipeline#generate_unified_diff
761
+ - RosettAi::Compiler::CompilationPipeline#validate!
762
+ - RosettAi::Compiler::CompilationPipeline#discover_categories
763
+ - RosettAi::Compiler::TargetProfile#self.load
764
+ - RosettAi::Compiler::TargetProfile#self.validate!
765
+ - RosettAi::Packaging::VariantConfig#self.validate!
766
+ - RosettAi::Plugins::Registry#discover_custom_path
767
+ - RosettAi::Compiler::LocaleCompiler#compile
768
+ - RosettAi::Compiler::LocaleCompiler#write_pot
769
+ - RosettAi::Compiler::LocaleCompiler#write_ts
770
+ - RosettAi::Licensing::LicenseKey#decode
771
+ - RosettAi::Thor::Tasks::Content#install
772
+ - RosettAi::Thor::Tasks::Content#update
773
+ - RosettAi::Thor::Tasks::Content#list_available
774
+ - RosettAi#setup_i18n
775
+ - RosettAi::Documentation::Translator#translate
776
+ - RosettAi::Thor::Tasks::Compile#compile_locales
777
+ - RosettAi::GemConsistencyChecker#extract_gem_specs
778
+ - RosettAi::GemConsistencyChecker#excluded?
779
+ - RosettAi::VersionConsistencyChecker#excluded?
780
+ - RosettAi::Thor::Tasks::Tooling#print_version_results
781
+ - RosettAi::Thor::Tasks::Tooling#print_gem_results
782
+ - RosettAi::Thor::Tasks::Release#prepare
783
+ - RosettAi::Thor::Tasks::Release#run_verification_gates!
784
+ - RosettAi::Thor::Tasks::Release#update_changelog!
785
+ - RosettAi::Documentation::ReferenceCompiler#compile!
786
+ - RosettAi::Telemetry::Reporter#resolve_writer
787
+ - RosettAi::Thor::Tasks::Validate#print_summary
788
+ - RosettAi::Thor::Tasks::Adopt#analyze
789
+ - RosettAi::Thor::Tasks::Adopt#print_category_table
790
+ - RosettAi::Thor::Tasks::Adopt#run_analysis
791
+ - RosettAi::Thor::Tasks::Adopt#run_remote_analysis
792
+ - RosettAi::Thor::Tasks::Adopt#run_quorum_with_spinner
793
+ - RosettAi::Thor::Tasks::Backup#create_archive
794
+ - RosettAi::Thor::Tasks::Backup#create
795
+ - RosettAi::Thor::Tasks::Backup#restore_entries
796
+ - RosettAi::Thor::Tasks::BehaviourManage#modify
797
+ - RosettAi::Thor::Tasks::Compile#check_capabilities
798
+ - RosettAi::Thor::Tasks::Compile#generate
799
+ - RosettAi::Thor::Tasks::Compile#resolve_engine_option
800
+ - RosettAi::Thor::Tasks::Compile#handle_write
801
+ - RosettAi::Thor::Tasks::Compile#process_compiled
802
+ - RosettAi::Thor::Tasks::Documentation#scan_behaviour_changes
803
+ - RosettAi::Thor::Tasks::Engines#detect
804
+ - RosettAi::Thor::Tasks::Engines#status
805
+ - RosettAi::Thor::Tasks::Engines#plugins
806
+ - RosettAi::Thor::Tasks::Config#resolve_config_compiler
807
+ - RosettAi::Thor::Tasks::Init#run_engine_detection
808
+ - RosettAi::Thor::Tasks::Documentation#update
809
+ - RosettAi::Comply::Reporter#report_summary
810
+ - RosettAi::Workflow::Engine#execute
811
+ - RosettAi::Thor::Tasks::Workflow#list
812
+ - RosettAi::Thor::Tasks::BuildPackage#create
813
+ - RosettAi::Thor::Tasks::BuildPackage#install_default_config!
814
+ - RosettAi::Thor::Tasks::BuildPackage#install_gems!
815
+ - RosettAi::Thor::Tasks::BuildPackage#log_bundle_debug
816
+ - RosettAi::Thor::Tasks::BuildPackage#print_build_header
817
+ - RosettAi::Thor::Tasks::BuildPackage#install_man_pages!
818
+ - RosettAi::Thor::Tasks::BuildPackage#print_stages_table
819
+ - RosettAi::Thor::Tasks::BuildPackage#run_stage
820
+ - RosettAi::Thor::CLI#invoke_command
821
+ - RosettAi::Thor::Tasks::BuildEngine#create
822
+ - RosettAi::Thor::Tasks::BuildEngine#print_engine_header
823
+ - RosettAi::Thor::Tasks::BuildEngine#print_engine_summary
824
+ - RosettAi::Project::DriftDetector#detect_forward_drift
825
+ - RosettAi::Project::SyncManager#sync
826
+ - RosettAi::Project::SyncManager#simulate
827
+ - RosettAi::Thor::Tasks::Project#render_drift_results
828
+ - RosettAi::Thor::Tasks::Project#render_status
829
+ - RosettAi::Thor::Tasks::Project#render_sync_results
830
+ - RosettAi::Retrofit::Engine#build_yaml_content
831
+ - RosettAi::Thor::Tasks::Retrofit#convert
832
+ - RosettAi::Thor::Tasks::Retrofit#render_results
833
+ - RosettAi::Completion::Shells::BashGenerator#subcommand_cases
834
+ - RosettAi::Completion::Shells::ZshGenerator#subcommand_functions
835
+ - RosettAi::SmartFeedback::Suggester#levenshtein
836
+ - RosettAi::SmartFeedback::ThorMiddleware::CommandDispatch#handle_unknown_command
837
+ - RosettAi::SmartFeedback::ThorMiddleware::CommandDispatch#handle_unknown_argument
838
+ - RosettAi::Mcp::Keyfile#rotate_key
839
+ - RosettAi::Mcp::Middleware::Authentication#authenticate_via_env
840
+ - RosettAi::Mcp::Plugins#load_plugin
841
+ - RosettAi::Mcp::Server#build_rack_app
842
+ - RosettAi::Mcp::Server#serve_http
843
+ - RosettAi::Thor::Tasks::Mcp#generate_key
844
+ - RosettAi::Thor::Tasks::Mcp#list_keys
845
+ - RosettAi::Mcp::Tools::RuleSearchTool#call
846
+ - RosettAi::Mcp::Tools::RuleSearchTool#search_behaviour
847
+ - RosettAi::Mcp::Tools::CompileStatusTool#build_file_report
848
+ - RosettAi::Mcp::Tools::CompileStatusTool#call
849
+ - RosettAi::Mcp::Tools::HookInstallTool#call
850
+ - RosettAi::Mcp::Tools::HookInstallTool#register_in_settings
851
+ - RosettAi::Mcp::Tools::SchemaGetTool#call
852
+ - RosettAi::Mcp::Enforcement::HookGenerator#generate
853
+ - RosettAi::Mcp::Tools::HookPreviewTool#validate_and_collect
854
+ UncommunicativeMethodName:
855
+ enabled: true
856
+ reject:
857
+ - "/^[a-z]$/"
858
+ - "/[0-9]$/"
859
+ accept:
860
+ - t
861
+ - file_sha256
862
+ exclude: []
863
+ UncommunicativeModuleName:
864
+ enabled: true
865
+ reject:
866
+ - "/^.$/"
867
+ - "/[0-9]$/"
868
+ accept:
869
+ - CLI
870
+ - Gtk4
871
+ - Qt6
872
+ exclude: []
873
+ UncommunicativeParameterName:
874
+ enabled: true
875
+ reject:
876
+ - "/^.$/"
877
+ - "/[0-9]$/"
878
+ accept:
879
+ - e
880
+ - k
881
+ - v
882
+ - _
883
+ - sha256
884
+ exclude: []
885
+ UncommunicativeVariableName:
886
+ enabled: true
887
+ reject:
888
+ - "/^.$/"
889
+ - "/[0-9]$/"
890
+ accept:
891
+ - d
892
+ - e
893
+ - f
894
+ - h
895
+ - i
896
+ - j
897
+ - k
898
+ - m
899
+ - r
900
+ - s
901
+ - t
902
+ - v
903
+ - c
904
+ - o
905
+ - w
906
+ - _
907
+ exclude: []
908
+ UnusedParameters:
909
+ enabled: true
910
+ exclude:
911
+ - RosettAi::Telemetry::Provider#report
912
+ - RosettAi::Backup::Compressor#compress
913
+ - RosettAi::Backup::Destination#write
914
+ - RosettAi::Compiler::Backend#render
915
+ - RosettAi::Retrofit::BaseParser#parse
916
+ - RosettAi::PackageManager::Base#install
917
+ - RosettAi::PackageManager::Base#remove
918
+ - RosettAi::PackageManager::Base#installed?
919
+ - RosettAi::PackageManager::Base#available_packages
920
+ - RosettAi::Ui::Base#render
921
+ - RosettAi::Ui::Base#display_table
922
+ - RosettAi::Ui::Base#prompt_user
923
+ - RosettAi::Ui::Base#show_spinner
924
+ - RosettAi::Ui::Base#announce
925
+ - RosettAi::Ui::Gtk4#prompt_user
926
+ - RosettAi::Ui::Qt6#prompt_user
927
+ - RosettAi::Ui::Kde#prompt_user
928
+ UnusedPrivateMethod:
929
+ enabled: true
930
+ exclude:
931
+ - RosettAi::DBus::ManagerInterface
932
+ - RosettAi::DBus::FocusMonitorInterface
933
+ - RosettAi::DBus::StatusNotifierInterface
934
+ - RosettAi::DBus::PluginManagerInterface
935
+ - RosettAi::Doctor::Checks::RubyVersionCheck
936
+ - RosettAi::Doctor::Checks::GemDependencyCheck
937
+ - RosettAi::Doctor::Checks::FilePermissionCheck
938
+ - RosettAi::Doctor::Checks::DbusAvailabilityCheck
939
+ - RosettAi::Doctor::Checks::EngineDetectionCheck
940
+ - RosettAi::Doctor::Checks::CacheHealthCheck
941
+ - RosettAi::Doctor::Checks::StaleHomeNnccCheck
942
+ - RosettAi::Doctor::Checks::StaleConfigNnccCheck
943
+ - RosettAi::Desktop::Gtk4App
944
+ - RosettAi::Desktop::Gtk4Preferences
945
+ - RosettAi::Retrofit::BaseParser
946
+ UtilityFunction:
947
+ enabled: true
948
+ public_methods_only: true
949
+ exclude:
950
+ - RosettAi::Composition::ScopeResolver
951
+ - RosettAi::Composition::PrioritySorter
952
+ - RosettAi::Composition::ConflictDetector
953
+ - RosettAi::Composition::MergeStrategy::FirstWins
954
+ - RosettAi::Composition::MergeStrategy::DeepMerge
955
+ - RosettAi::Composition::MergeStrategy::ArrayUnion
956
+ - RosettAi::Policy::OptOutScanner
957
+ - RosettAi::Policy::TierHierarchy
958
+ - RosettAi::Policy::Validator
959
+ - RosettAi::Provenance::TrailerGenerator
960
+ - RosettAi::Adopter::RuleAdopter
961
+ - RosettAi::Compiler::BehaviourCompiler
962
+ - RosettAi::Compiler::CompilationPipeline
963
+ - RosettAi::Quorum::Strategies::Adopt
964
+ - RosettAi::Backup::TarGzCompressor
965
+ - RosettAi::Ui::Base
966
+ - RosettAi::Engines::BaseConfigCompiler
967
+ - RosettAi::Config::SecretResolver
968
+ - RosettAi::Licensing::LicenseKey
969
+ - RosettAi::Licensing::LicenseStore
970
+ - RosettAi::Licensing::LicenseValidator
971
+ - RosettAi::Licensing::Tier
972
+ - RosettAi::Content::ContentClient
973
+ - RosettAi::Content::PackInstaller
974
+ - RosettAi::Content::PackManifest
975
+ - RosettAi::Content::PackRegistry
976
+ - RosettAi::GemConsistencyChecker
977
+ - RosettAi::RaiConfig
978
+ - RosettAi::Init::ConfigFileWriter
979
+ - RosettAi::Thor::Tasks::Engines
980
+ - RosettAi::PathResolver
981
+ - RosettAi::Ui::Tui
982
+ - RosettAi::Ui::AccessibleTui
983
+ - RosettAi::Ui::Gtk4
984
+ - RosettAi::I18n::LocaleResolver
985
+ - RosettAi::I18n::Utf8Checker
986
+ - RosettAi::Thor::Tasks::Release
987
+ - RosettAi::Documentation::ReferenceCompiler
988
+ - RosettAi::Documentation::Translator
989
+ - RosettAi::Backup::TarXzCompressor
990
+ - RosettAi::Thor::Tasks::BuildEngine
991
+ - RosettAi::Formatting
992
+ - RosettAi::Thor::CLI
993
+ - RosettAi::Mcp::Server
994
+ - RosettAi::Mcp::Resources::BehaviourResource
995
+ - RosettAi::Mcp::Resources::DesignResource
996
+ - RosettAi::Completion::Generator
997
+ - RosettAi::SmartFeedback::Suggester
998
+ - RosettAi::PackageManager::GemBackend
999
+ - RosettAi::Cache::CompilerCache
1000
+ - RosettAi::Mcp::Tools::AdoptTool
1001
+ - RosettAi::Mcp::Tools::BackupTool
1002
+ - RosettAi::Mcp::Tools::ComplyTool
1003
+ - RosettAi::Mcp::Tools::ConfigCompileTool
1004
+ - RosettAi::Mcp::Tools::DoctorTool
1005
+ - RosettAi::Mcp::Tools::DocumentationStatusTool
1006
+ - RosettAi::Mcp::Tools::InitTool
1007
+ - RosettAi::Mcp::Tools::LicenseStatusTool
1008
+ - RosettAi::Mcp::Tools::ProvenanceWriteTool
1009
+ - RosettAi::Mcp::Tools::WorkflowExecuteTool
1010
+ - RosettAi::Mcp::Resources::ProvenanceResource
1011
+ - RosettAi::Retrofit::Scanner
1012
+ - RosettAi::Mcp::Resources::RulesResource#read
1013
+ directories:
1014
+ spec:
1015
+ BooleanParameter:
1016
+ enabled: false
1017
+ DuplicateMethodCall:
1018
+ enabled: false
1019
+ LongParameterList:
1020
+ enabled: false
1021
+ NestedIterators:
1022
+ enabled: false
1023
+ NilCheck:
1024
+ enabled: false
1025
+ UtilityFunction:
1026
+ enabled: false
1027
+ FeatureEnvy:
1028
+ enabled: false
1029
+ TooManyStatements:
1030
+ enabled: false
1031
+ UnusedParameters:
1032
+ enabled: false
1033
+ UnusedPrivateMethod:
1034
+ enabled: false
1035
+ exclude_paths:
1036
+ - vendor
1037
+ - tmp
1038
+ - cache
1039
+ - coverage
1040
+ - ".git-hooks"