rosett-ai 1.3.3 → 1.5.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +398 -22
- data/README.md +56 -42
- data/bin/raictl +13 -0
- data/conf/adopt_redactions.yml +2 -0
- data/conf/compliance/cra_rules.yml +2 -0
- data/conf/compliance/license_rules.yml +2 -0
- data/conf/mcp/server_defaults.yml +2 -0
- data/conf/mcp/trust.yml +1 -0
- data/conf/packaging/core.yml +2 -0
- data/conf/packaging/gtk4.yml +2 -0
- data/conf/packaging/qt6.yml +2 -0
- data/conf/policy/default_deny_list.yml +2 -0
- data/conf/review/cli-command-audit.yml +2 -0
- data/conf/review/design-docs.yml +2 -0
- data/conf/review/design-questionnaire.yml +2 -0
- data/conf/review/questionnaire.yml +2 -0
- data/conf/review/rosett-ai-core.yml +2 -0
- data/conf/schemas/ai_config_schema.json +14 -2
- data/conf/schemas/autoqueue.schema.json +153 -0
- data/conf/schemas/behaviour_schema.json +31 -7
- data/conf/schemas/compliance_rule_schema.json +17 -4
- data/conf/schemas/content_pack_manifest_schema.json +23 -4
- data/conf/schemas/design_schema.json +177 -42
- data/conf/schemas/engine_manifest_schema.json +22 -5
- data/conf/schemas/lockfile_schema.json +26 -4
- data/conf/schemas/mcp_server_schema.json +50 -9
- data/conf/schemas/packaging_schema.json +23 -5
- data/conf/schemas/policy_schema.json +35 -9
- data/conf/schemas/provenance_schema.json +33 -5
- data/conf/schemas/rai_config_schema.json +6 -2
- data/conf/schemas/rai_project_schema.json +8 -2
- data/conf/schemas/scope_hierarchy_schema.json +22 -5
- data/conf/schemas/target_schema.json +33 -6
- data/conf/schemas/tooling_schema.json +53 -12
- data/conf/schemas/workflow_schema.json +39 -9
- data/conf/targets/agents_md.yml +1 -0
- data/conf/targets/claude.yml +2 -0
- data/conf/tooling/tools.yml +2 -0
- data/lib/rosett_ai/adopter/local_analysis_collector.rb +5 -0
- data/lib/rosett_ai/adopter/rule_adopter.rb +40 -0
- data/lib/rosett_ai/ai_config/context_window.rb +3 -0
- data/lib/rosett_ai/ai_config/cost_controls.rb +1 -0
- data/lib/rosett_ai/ai_config/fallback_chain.rb +1 -0
- data/lib/rosett_ai/ai_config/model_router.rb +1 -0
- data/lib/rosett_ai/ai_config/validator.rb +2 -0
- data/lib/rosett_ai/authorship/attribution_compiler.rb +1 -0
- data/lib/rosett_ai/authorship/disclosure_policy.rb +2 -0
- data/lib/rosett_ai/authorship/review_validator.rb +1 -0
- data/lib/rosett_ai/authorship/trailer_generator.rb +1 -0
- data/lib/rosett_ai/backup/compressor.rb +3 -0
- data/lib/rosett_ai/backup/destination.rb +1 -0
- data/lib/rosett_ai/behaviour/manager.rb +1 -0
- data/lib/rosett_ai/compiler/backend.rb +3 -0
- data/lib/rosett_ai/compiler/backends/agents_md_backend.rb +1 -0
- data/lib/rosett_ai/compiler/backends/claude_backend.rb +1 -0
- data/lib/rosett_ai/compiler/behaviour_compiler.rb +1 -0
- data/lib/rosett_ai/compiler/compilation_pipeline.rb +1 -7
- data/lib/rosett_ai/compiler/locale_compiler.rb +2 -0
- data/lib/rosett_ai/compiler/target_profile.rb +11 -0
- data/lib/rosett_ai/completion/generator.rb +2 -0
- data/lib/rosett_ai/completion/shells/zsh_generator.rb +1 -0
- data/lib/rosett_ai/comply/checkers/cra_checker.rb +1 -0
- data/lib/rosett_ai/comply/checkers/license_checker.rb +2 -0
- data/lib/rosett_ai/comply/checkers/spdx_header_checker.rb +4 -0
- data/lib/rosett_ai/comply/runner.rb +2 -0
- data/lib/rosett_ai/composition/composer.rb +1 -0
- data/lib/rosett_ai/composition/lockfile.rb +1 -0
- data/lib/rosett_ai/composition/merge_strategy.rb +1 -0
- data/lib/rosett_ai/config/masking_secret_resolver.rb +9 -0
- data/lib/rosett_ai/config/secret_resolver.rb +4 -0
- data/lib/rosett_ai/configuration.rb +4 -0
- data/lib/rosett_ai/content/content_client.rb +15 -0
- data/lib/rosett_ai/content/pack_installer.rb +1 -0
- data/lib/rosett_ai/content/pack_manifest.rb +21 -0
- data/lib/rosett_ai/content_packs/manager.rb +1 -0
- data/lib/rosett_ai/dbus/compositor_detector.rb +2 -0
- data/lib/rosett_ai/dbus/focus_adapters/base.rb +1 -0
- data/lib/rosett_ai/dbus/focus_adapters/gnome_adapter.rb +5 -0
- data/lib/rosett_ai/dbus/focus_adapters/hyprland_adapter.rb +4 -0
- data/lib/rosett_ai/dbus/focus_adapters/i3_adapter.rb +4 -0
- data/lib/rosett_ai/dbus/focus_adapters/kwin_adapter.rb +4 -0
- data/lib/rosett_ai/dbus/focus_adapters/x11_adapter.rb +4 -0
- data/lib/rosett_ai/dbus/focus_monitor_interface.rb +1 -0
- data/lib/rosett_ai/dbus/manager_interface.rb +1 -0
- data/lib/rosett_ai/dbus/plugin_manager_interface.rb +2 -0
- data/lib/rosett_ai/dbus/rate_limiter.rb +1 -0
- data/lib/rosett_ai/dbus/service.rb +3 -0
- data/lib/rosett_ai/dbus/status_notifier_interface.rb +14 -0
- data/lib/rosett_ai/desktop/dbus_client.rb +6 -0
- data/lib/rosett_ai/desktop/gtk4_app.rb +3 -0
- data/lib/rosett_ai/desktop/gtk4_preferences.rb +1 -0
- data/lib/rosett_ai/desktop/gui_logger.rb +2 -0
- data/lib/rosett_ai/doctor/check.rb +1 -1
- data/lib/rosett_ai/doctor/checks/cache_health_check.rb +1 -0
- data/lib/rosett_ai/doctor.rb +1 -0
- data/lib/rosett_ai/documentation/reference_compiler.rb +9 -0
- data/lib/rosett_ai/documentation/translator.rb +8 -0
- data/lib/rosett_ai/engines/base_config_compiler.rb +71 -1
- data/lib/rosett_ai/engines/detector.rb +5 -0
- data/lib/rosett_ai/engines/registry.rb +7 -0
- data/lib/rosett_ai/exit_codes.rb +6 -0
- data/lib/rosett_ai/formatting.rb +1 -0
- data/lib/rosett_ai/gem_consistency_checker.rb +6 -0
- data/lib/rosett_ai/git_hooks/chain_detector.rb +1 -0
- data/lib/rosett_ai/git_hooks/installer.rb +4 -0
- data/lib/rosett_ai/git_hooks/script_generator.rb +2 -0
- data/lib/rosett_ai/gitlab/validators/supplementary_gitlab_ci_yaml_validator.rb +6 -0
- data/lib/rosett_ai/i18n/utf8_checker.rb +1 -0
- data/lib/rosett_ai/init/config_file_writer.rb +4 -0
- data/lib/rosett_ai/init/directory_builder.rb +15 -0
- data/lib/rosett_ai/init/file_copier.rb +51 -0
- data/lib/rosett_ai/init/mcp_registrar.rb +1 -0
- data/lib/rosett_ai/init/project_initializer.rb +1 -0
- data/lib/rosett_ai/licensing/license_key.rb +4 -0
- data/lib/rosett_ai/licensing/license_store.rb +11 -0
- data/lib/rosett_ai/licensing/tier.rb +9 -0
- data/lib/rosett_ai/mcp/admin/auditor.rb +1 -0
- data/lib/rosett_ai/mcp/admin/health_checker.rb +1 -0
- data/lib/rosett_ai/mcp/admin/registry.rb +1 -0
- data/lib/rosett_ai/mcp/enforcement/hook_generator.rb +27 -4
- data/lib/rosett_ai/mcp/enforcement/validator.rb +24 -3
- data/lib/rosett_ai/mcp/governance.rb +9 -0
- data/lib/rosett_ai/mcp/http_security_config.rb +22 -0
- data/lib/rosett_ai/mcp/key_hasher.rb +4 -2
- data/lib/rosett_ai/mcp/keyfile.rb +4 -0
- data/lib/rosett_ai/mcp/middleware/cors.rb +4 -0
- data/lib/rosett_ai/mcp/middleware/origin_validation.rb +1 -0
- data/lib/rosett_ai/mcp/middleware/rate_limit.rb +3 -0
- data/lib/rosett_ai/mcp/plugins.rb +1 -0
- data/lib/rosett_ai/mcp/prompts/compilation_prompt.rb +2 -0
- data/lib/rosett_ai/mcp/prompts/compliance_prompt.rb +3 -0
- data/lib/rosett_ai/mcp/prompts/diagnostics_prompt.rb +2 -0
- data/lib/rosett_ai/mcp/prompts/validation_prompt.rb +2 -0
- data/lib/rosett_ai/mcp/resources/behaviour_resource.rb +2 -0
- data/lib/rosett_ai/mcp/resources/config_resource.rb +2 -0
- data/lib/rosett_ai/mcp/resources/design_resource.rb +1 -0
- data/lib/rosett_ai/mcp/resources/hooks_resource.rb +3 -0
- data/lib/rosett_ai/mcp/resources/provenance_resource.rb +2 -0
- data/lib/rosett_ai/mcp/resources/rules_resource.rb +1 -0
- data/lib/rosett_ai/mcp/resources/schema_resource.rb +1 -0
- data/lib/rosett_ai/mcp/server.rb +7 -1
- data/lib/rosett_ai/mcp/settings/trust_manager.rb +3 -0
- data/lib/rosett_ai/mcp/tools/adopt_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/backup_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/behaviour_display_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/behaviour_list_tool.rb +3 -0
- data/lib/rosett_ai/mcp/tools/behaviour_manage_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/behaviour_show_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/compile_status_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/compile_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/comply_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/config_compile_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/config_status_tool.rb +3 -0
- data/lib/rosett_ai/mcp/tools/content_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/context_query_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/design_list_tool.rb +3 -0
- data/lib/rosett_ai/mcp/tools/design_show_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/doctor_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/documentation_status_tool.rb +3 -0
- data/lib/rosett_ai/mcp/tools/engines_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/hook_install_tool.rb +7 -0
- data/lib/rosett_ai/mcp/tools/hook_preview_tool.rb +33 -8
- data/lib/rosett_ai/mcp/tools/hooks_status_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/init_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/license_status_tool.rb +3 -0
- data/lib/rosett_ai/mcp/tools/project_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/provenance_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/provenance_write_tool.rb +3 -0
- data/lib/rosett_ai/mcp/tools/retrofit_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/rule_search_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/schema_get_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/tooling_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/validate_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/workflow_execute_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/workflow_tool.rb +5 -0
- data/lib/rosett_ai/migration/detector.rb +1 -0
- data/lib/rosett_ai/migration/nncc_config_migrator.rb +2 -0
- data/lib/rosett_ai/migration/xdg_migrator.rb +3 -1
- data/lib/rosett_ai/package_manager/apt.rb +5 -0
- data/lib/rosett_ai/package_manager/base.rb +1 -0
- data/lib/rosett_ai/package_manager/gem_backend.rb +1 -0
- data/lib/rosett_ai/packaging/variant_config.rb +12 -0
- data/lib/rosett_ai/plugins/contract.rb +1 -0
- data/lib/rosett_ai/plugins/engine_contract.rb +2 -0
- data/lib/rosett_ai/plugins/gui_contract.rb +2 -0
- data/lib/rosett_ai/plugins/mcp_contract.rb +2 -0
- data/lib/rosett_ai/plugins/registry.rb +10 -0
- data/lib/rosett_ai/policy/auditor.rb +1 -0
- data/lib/rosett_ai/policy/opt_out_scanner.rb +1 -0
- data/lib/rosett_ai/policy/tier_hierarchy.rb +2 -0
- data/lib/rosett_ai/policy/validator.rb +1 -0
- data/lib/rosett_ai/profiler.rb +7 -0
- data/lib/rosett_ai/project/drift_detector.rb +1 -0
- data/lib/rosett_ai/project/manager.rb +1 -0
- data/lib/rosett_ai/project/template_applier.rb +1 -0
- data/lib/rosett_ai/provenance/entry.rb +2 -0
- data/lib/rosett_ai/provenance/source.rb +1 -0
- data/lib/rosett_ai/provenance/store.rb +3 -0
- data/lib/rosett_ai/provenance/validator.rb +1 -0
- data/lib/rosett_ai/quorum/collector.rb +1 -0
- data/lib/rosett_ai/quorum/comparator.rb +2 -0
- data/lib/rosett_ai/quorum/strategies/adopt.rb +1 -0
- data/lib/rosett_ai/rai_config.rb +9 -0
- data/lib/rosett_ai/retrofit/engine.rb +2 -0
- data/lib/rosett_ai/retrofit/parsers/agents_md_parser.rb +8 -0
- data/lib/rosett_ai/retrofit/parsers/claude_parser.rb +10 -0
- data/lib/rosett_ai/retrofit/parsers/cursor_parser.rb +9 -0
- data/lib/rosett_ai/retrofit/secret_detector.rb +3 -0
- data/lib/rosett_ai/secrets_resolver.rb +1 -0
- data/lib/rosett_ai/session_hooks/installer.rb +130 -0
- data/lib/rosett_ai/smart_feedback/suggester.rb +4 -0
- data/lib/rosett_ai/smart_feedback/thor_middleware.rb +7 -0
- data/lib/rosett_ai/structured_logger.rb +1 -0
- data/lib/rosett_ai/telemetry/log_rotator.rb +1 -0
- data/lib/rosett_ai/telemetry.rb +1 -0
- data/lib/rosett_ai/thor/cli.rb +9 -0
- data/lib/rosett_ai/thor/tasks/adopt.rb +2 -0
- data/lib/rosett_ai/thor/tasks/backfill_user_yml.rb +207 -0
- data/lib/rosett_ai/thor/tasks/backup.rb +6 -0
- data/lib/rosett_ai/thor/tasks/behaviour.rb +12 -0
- data/lib/rosett_ai/thor/tasks/build.rb +87 -4
- data/lib/rosett_ai/thor/tasks/compile.rb +76 -32
- data/lib/rosett_ai/thor/tasks/completion.rb +9 -0
- data/lib/rosett_ai/thor/tasks/comply.rb +2 -0
- data/lib/rosett_ai/thor/tasks/config.rb +21 -5
- data/lib/rosett_ai/thor/tasks/content.rb +8 -0
- data/lib/rosett_ai/thor/tasks/dbus.rb +13 -0
- data/lib/rosett_ai/thor/tasks/design.rb +2 -0
- data/lib/rosett_ai/thor/tasks/desktop.rb +4 -0
- data/lib/rosett_ai/thor/tasks/doctor.rb +2 -0
- data/lib/rosett_ai/thor/tasks/documentation.rb +7 -0
- data/lib/rosett_ai/thor/tasks/engines.rb +8 -0
- data/lib/rosett_ai/thor/tasks/hooks.rb +8 -0
- data/lib/rosett_ai/thor/tasks/init.rb +1 -0
- data/lib/rosett_ai/thor/tasks/license.rb +8 -0
- data/lib/rosett_ai/thor/tasks/mcp.rb +40 -0
- data/lib/rosett_ai/thor/tasks/migrate.rb +2 -0
- data/lib/rosett_ai/thor/tasks/plugins.rb +15 -0
- data/lib/rosett_ai/thor/tasks/project.rb +8 -0
- data/lib/rosett_ai/thor/tasks/provenance.rb +8 -0
- data/lib/rosett_ai/thor/tasks/release.rb +8 -0
- data/lib/rosett_ai/thor/tasks/retrofit.rb +4 -0
- data/lib/rosett_ai/thor/tasks/validate.rb +1 -0
- data/lib/rosett_ai/thor/tasks/workflow.rb +14 -0
- data/lib/rosett_ai/tooling/version_checker.rb +1 -0
- data/lib/rosett_ai/ui/accessible_tui.rb +18 -0
- data/lib/rosett_ai/ui/base.rb +3 -0
- data/lib/rosett_ai/ui/gtk4.rb +19 -0
- data/lib/rosett_ai/ui/kde.rb +1 -0
- data/lib/rosett_ai/ui/qt6.rb +1 -0
- data/lib/rosett_ai/ui/registry.rb +15 -0
- data/lib/rosett_ai/ui/tui.rb +22 -0
- data/lib/rosett_ai/validators/behaviour_validator.rb +1 -0
- data/lib/rosett_ai/validators/design_validator.rb +2 -0
- data/lib/rosett_ai/validators/schema_validator.rb +4 -0
- data/lib/rosett_ai/validators/tooling_validator.rb +1 -0
- data/lib/rosett_ai/version.rb +2 -1
- data/lib/rosett_ai/version_consistency_checker.rb +6 -0
- data/lib/rosett_ai/workflow/engine.rb +1 -0
- data/lib/rosett_ai/workflow/manager.rb +1 -0
- data/lib/rosett_ai/workflow/schema_validator.rb +2 -0
- data/lib/rosett_ai/workflow/step_runner.rb +1 -0
- data/lib/rosett_ai/workflow/steps/rai_step.rb +1 -0
- data/lib/rosett_ai/yaml_loader.rb +2 -0
- data/lib/rosett_ai.rb +2 -0
- data/lib/scripts/generated/docker_hub_tags.rb +2 -0
- data/locales/ar.yml +2 -0
- data/locales/en.yml +5 -0
- data/locales/fr.yml +2 -0
- metadata +9 -189
- data/.ai-provenance.yml +0 -119
- data/.debride_whitelist +0 -186
- data/.fasterer.yml +0 -29
- data/.mdl_style.rb +0 -10
- data/.mdlrc +0 -3
- data/.mutant.yml +0 -49
- data/.namespace-allowlist +0 -42
- data/.reek.yml +0 -1040
- data/.rosett-ai/config.yml +0 -3
- data/.rspec +0 -5
- data/.rubocop.yml +0 -380
- data/.ruby-version +0 -1
- data/.yamllint +0 -51
- data/.yardopts +0 -12
- data/AI-DISCLOSURE.md +0 -48
- data/CLAUDE.md +0 -141
- data/CONTRIBUTING.md +0 -734
- data/INSTALL.md +0 -154
- data/LICENSE.md +0 -675
- data/QUICKSTART.md +0 -73
- data/Rakefile +0 -200
- data/SECURITY.md +0 -114
- data/cliff.toml +0 -52
- data/conf/behaviour/.gitkeep +0 -0
- data/conf/design/aaif_alignment.yml +0 -181
- data/conf/design/ab_testing.yml +0 -172
- data/conf/design/accessibility.yml +0 -84
- data/conf/design/ai_authorship.yml +0 -210
- data/conf/design/ai_provenance.yml +0 -224
- data/conf/design/ai_tool_configuration.yml +0 -207
- data/conf/design/architecture.yml +0 -139
- data/conf/design/autocompletion.yml +0 -115
- data/conf/design/backward_compatibility.yml +0 -112
- data/conf/design/behaviour_composition.yml +0 -246
- data/conf/design/build_rake_extraction.yml +0 -57
- data/conf/design/ci_pipeline.yml +0 -100
- data/conf/design/claude_code_configuration.yml +0 -157
- data/conf/design/compiler.yml +0 -128
- data/conf/design/comply.yml +0 -153
- data/conf/design/content_packs.yml +0 -84
- data/conf/design/desktop_integration.yml +0 -289
- data/conf/design/distribution.yml +0 -216
- data/conf/design/doctor.yml +0 -184
- data/conf/design/documentation.yml +0 -152
- data/conf/design/engine_architecture.yml +0 -257
- data/conf/design/error_handling.yml +0 -103
- data/conf/design/feature_flags.yml +0 -142
- data/conf/design/git_hooks.yml +0 -165
- data/conf/design/gui_plugins.yml +0 -475
- data/conf/design/i18n.yml +0 -84
- data/conf/design/integration_testing.yml +0 -56
- data/conf/design/licensing_system.yml +0 -88
- data/conf/design/lifecycle_management.yml +0 -208
- data/conf/design/mcp_integration.yml +0 -207
- data/conf/design/mcp_settings.yml +0 -126
- data/conf/design/migration.yml +0 -56
- data/conf/design/monitoring_observability.yml +0 -194
- data/conf/design/namespace_cleanup.yml +0 -145
- data/conf/design/plugin_test_segregation.yml +0 -145
- data/conf/design/policy_management.yml +0 -229
- data/conf/design/project_management.yml +0 -183
- data/conf/design/rai_mcp_asset_discovery.yml +0 -164
- data/conf/design/rai_mcp_server.yml +0 -605
- data/conf/design/release_management.yml +0 -117
- data/conf/design/retrofit.yml +0 -199
- data/conf/design/retrospective_analyzer.yml +0 -79
- data/conf/design/scope_hierarchy.yml +0 -352
- data/conf/design/security.yml +0 -115
- data/conf/design/session_retrospective.yml +0 -85
- data/conf/design/smart_ui_feedback.yml +0 -89
- data/conf/design/structured_logging.yml +0 -148
- data/conf/design/styles.yml +0 -123
- data/conf/design/test_peer_review.yml +0 -89
- data/conf/design/testing.yml +0 -136
- data/conf/design/threat_model.yml +0 -108
- data/conf/design/ui_framework.yml +0 -111
- data/conf/design/usage_optimization.yml +0 -122
- data/conf/design/version_management.yml +0 -60
- data/conf/design/workflow.yml +0 -227
- data/doc/AAIF_POSITIONING.md +0 -58
- data/doc/ADOPT.md +0 -224
- data/doc/AI_PROVENANCE.md +0 -139
- data/doc/ARCHITECTURE.md +0 -920
- data/doc/BEHAVIOUR.md +0 -409
- data/doc/BUILD.md +0 -138
- data/doc/CI_CD_RECIPES.md +0 -171
- data/doc/CLAUDE_SESSIONS_MOVED.md +0 -16
- data/doc/COMMAND_ANALYSIS.md +0 -229
- data/doc/CONFIGURATION.md +0 -281
- data/doc/DESIGN_AUDIT.md +0 -235
- data/doc/DESIGN_PEER_REVIEW.md +0 -771
- data/doc/DESKTOP.md +0 -447
- data/doc/ENGINES.md +0 -567
- data/doc/ENGINE_DEVELOPMENT_GUIDE.md +0 -417
- data/doc/FEATURE_AUDIT.md +0 -218
- data/doc/IMPLEMENTATION_PLAN.md +0 -669
- data/doc/INCIDENT_REPORT_2026-02-02.md +0 -251
- data/doc/MIGRATION_GUIDE.md +0 -88
- data/doc/PACKAGING.md +0 -232
- data/doc/PROJECT_DASHBOARD.md +0 -153
- data/doc/PULP_DEPLOYMENT.md +0 -164
- data/doc/QUALITY_FIX_SUMMARY.md +0 -110
- data/doc/QUICK_START.md +0 -162
- data/doc/REEK_CONFIGURATION.md +0 -166
- data/doc/REFERENCE.md +0 -253
- data/doc/REFERENCES.md +0 -324
- data/doc/SECURITY_REVIEW_CHECKLIST.md +0 -72
- data/doc/SESSION_2026-02-28_GTK4_HARDENING.md +0 -359
- data/doc/SETUP.md +0 -202
- data/doc/TEST_PEER_REVIEW.md +0 -152
- data/doc/THREAT_MODEL.md +0 -230
- data/doc/USAGE.md +0 -545
- data/doc/USER_MANUAL.md +0 -585
- data/doc/ai_test_review_checklist.md +0 -110
- data/doc/changes/2026-02-18-packaging-fpm.md +0 -155
- data/doc/changes/2026-02-19-testing-infrastructure.md +0 -221
- data/doc/changes/2026-02-20-security-implementation.md +0 -281
- data/doc/changes/2026-02-20-styles-implementation.md +0 -220
- data/doc/changes/2026-02-21-architecture-completion.md +0 -95
- data/doc/changes/2026-02-21-architecture-ui-layer.md +0 -253
- data/doc/changes/2026-02-21-cc-config-implementation.md +0 -108
- data/doc/changes/2026-02-21-ci-pipeline-implementation.md +0 -214
- data/doc/changes/2026-02-21-compiler-multi-target-pipeline.md +0 -241
- data/doc/changes/2026-02-21-config-design-show-commands.md +0 -61
- data/doc/changes/2026-02-21-design-implementation-overview.md +0 -455
- data/doc/changes/2026-02-21-lifecycle-management.md +0 -196
- data/doc/changes/2026-02-21-path-resolver.md +0 -128
- data/doc/changes/2026-02-24-ci-tmpdir-mutant-fetch.md +0 -45
- data/doc/changes/2026-03-01-ci-bundler-strategy.md +0 -120
- data/doc/changes/2026-03-20-security-hardening-phase2.md +0 -163
- data/doc/context/SESSION-HANDOFF.md +0 -69
- data/doc/context/ai-engine-usage-trends-2026.md +0 -80
- data/doc/context/plan-pluggable-engines.md +0 -590
- data/doc/decisions/001-flog-deferred.md +0 -32
- data/doc/decisions/002-path-resolution-strategy.md +0 -158
- data/doc/decisions/003-ui-adapter-selection.md +0 -193
- data/doc/decisions/004-design-document-validation.md +0 -179
- data/doc/decisions/005-package-splitting-strategy.md +0 -200
- data/doc/decisions/006-multi-engine-architecture.md +0 -147
- data/doc/decisions/007-engine-agnostic-pivot.md +0 -219
- data/doc/decisions/008-ci-bundler-strategy.md +0 -129
- data/doc/decisions/009-core-only-v1-release.md +0 -60
- data/doc/decisions/010-engine-debian-packaging.md +0 -66
- data/doc/decisions/011-context-aware-cli.md +0 -71
- data/doc/dependency_decisions.yml +0 -247
- data/doc/issues/001-wrapper-missing-environment-variables.md +0 -197
- data/doc/issues/002-embedded-ruby-wrong-prefix.md +0 -217
- data/doc/issues/003-smoke-test-false-positive.md +0 -127
- data/doc/issues/004-market-research-design-updates.md +0 -109
- data/doc/issues/005-compile-scope-coexistence.md +0 -161
- data/doc/locales/.gitkeep +0 -0
- data/doc/man/rai.1.ronn +0 -505
- data/doc/operations/packaging.md +0 -133
- data/doc/operations/rosett-ai-release.md +0 -65
- data/doc/reference/error-catalog.md +0 -107
- data/doc/reference/rosett-ai-technical-reference.pdf +0 -0
- data/doc/reference/src/Pictures/cover.jpg +0 -0
- data/doc/reference/src/Pictures/head1.jpg +0 -0
- data/doc/reference/src/Pictures/head2.jpg +0 -0
- data/doc/reference/src/Pictures/head3.jpg +0 -0
- data/doc/reference/src/Pictures/head4.jpg +0 -0
- data/doc/reference/src/Pictures/head5.jpg +0 -0
- data/doc/reference/src/Pictures/head6.jpg +0 -0
- data/doc/reference/src/Pictures/head7.jpg +0 -0
- data/doc/reference/src/Pictures/head8.jpg +0 -0
- data/doc/reference/src/StyleInd.ist +0 -4
- data/doc/reference/src/bibliography.bib +0 -79
- data/doc/reference/src/main.tex +0 -1288
- data/doc/reference/src/structure.tex +0 -303
- data/doc/rosett-ai-bookmarks.html +0 -301
- data/kitchen.yml +0 -46
- data/lib/rosett_ai/mcp/enforcement/.gitkeep +0 -0
- data/locales/.gitkeep +0 -0
- data/packaging/build-engine-deb.sh +0 -81
- data/packaging/scripts/postinst +0 -17
- data/packaging/scripts/postrm +0 -19
- data/packaging/scripts/prerm +0 -10
- data/packaging/wrapper.sh.template +0 -38
- data/rosett-ai.gemspec +0 -63
- data/rules/.gitkeep +0 -0
- data/scripts/publish/pulp_upload.sh +0 -123
- data/settings.json +0 -29
data/doc/ADOPT.md
DELETED
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
# Rosett-AI - Adopt System
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
The `adopt` command analyzes compiled rule files in `~/.claude/rules/` for quality and safety issues.
|
|
6
|
-
It uses the Claude API to detect inconsistencies, conflicts, harmful content, jailbreaking attempts,
|
|
7
|
-
duplicates, and other problems across your rule set.
|
|
8
|
-
|
|
9
|
-
## How It Works
|
|
10
|
-
|
|
11
|
-
1. Discovers managed rule files (those with `<!-- Generated by rosett-ai` markers) in `~/.claude/rules/`
|
|
12
|
-
2. Filters out files whose source behaviour YAML is marked `sensitive: true`
|
|
13
|
-
3. Checks the cache — if file contents haven't changed since the last analysis, returns cached results
|
|
14
|
-
4. Applies redaction patterns from `conf/adopt_redactions.yml` to file contents
|
|
15
|
-
5. Sends redacted content to the Claude API for analysis
|
|
16
|
-
6. Runs local structural checks on all files (including sensitive ones)
|
|
17
|
-
7. Merges API and local findings into a unified report
|
|
18
|
-
8. Caches the result for future runs
|
|
19
|
-
|
|
20
|
-
## CLI Usage
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
# Full API analysis
|
|
24
|
-
bin/raictl adopt
|
|
25
|
-
|
|
26
|
-
# Local-only structural checks (no API)
|
|
27
|
-
bin/raictl adopt --local
|
|
28
|
-
|
|
29
|
-
# Verbose output
|
|
30
|
-
bin/raictl adopt --verbose
|
|
31
|
-
|
|
32
|
-
# Detailed explanations
|
|
33
|
-
bin/raictl adopt --elaborate
|
|
34
|
-
|
|
35
|
-
# All flags combined
|
|
36
|
-
bin/raictl adopt --elaborate --verbose
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### Flags
|
|
40
|
-
|
|
41
|
-
| Flag | Effect |
|
|
42
|
-
|------|--------|
|
|
43
|
-
| `--local` | Skip API calls, run structural checks only |
|
|
44
|
-
| `--verbose` | Show file counts, checksums, cache status, skipped sensitive files |
|
|
45
|
-
| `--elaborate` | Add an "Explanation" column to the findings table |
|
|
46
|
-
|
|
47
|
-
## Finding Categories
|
|
48
|
-
|
|
49
|
-
The analysis detects these categories of issues:
|
|
50
|
-
|
|
51
|
-
| Category | Description |
|
|
52
|
-
|----------|-------------|
|
|
53
|
-
| `inconsistencies` | Rules that contradict each other in intent or wording |
|
|
54
|
-
| `conflicts` | Rules that directly conflict and cannot both be followed |
|
|
55
|
-
| `harmful` | Rules that instruct harmful actions |
|
|
56
|
-
| `illegal` | Rules that instruct illegal activities |
|
|
57
|
-
| `jailbreaking` | Rules that attempt to bypass AI safety measures |
|
|
58
|
-
| `rule_breaking` | Rules that instruct breaking other rules |
|
|
59
|
-
| `duplicates` | Rules with the same ID or identical descriptions across files |
|
|
60
|
-
| `other` | Other structural or content issues |
|
|
61
|
-
|
|
62
|
-
### Severity Levels
|
|
63
|
-
|
|
64
|
-
| Severity | Meaning |
|
|
65
|
-
|----------|---------|
|
|
66
|
-
| `critical` | Must be fixed immediately — safety or compliance risk |
|
|
67
|
-
| `high` | Should be fixed — significant quality issue |
|
|
68
|
-
| `medium` | Worth addressing — potential confusion or redundancy |
|
|
69
|
-
| `low` | Minor observation — nice to fix |
|
|
70
|
-
|
|
71
|
-
### Overall Status
|
|
72
|
-
|
|
73
|
-
| Status | Meaning |
|
|
74
|
-
|--------|---------|
|
|
75
|
-
| `pass` | No issues found |
|
|
76
|
-
| `warn` | Low or medium severity findings only |
|
|
77
|
-
| `fail` | High or critical severity findings |
|
|
78
|
-
|
|
79
|
-
## Data Privacy
|
|
80
|
-
|
|
81
|
-
Four layers of protection ensure sensitive content is handled appropriately.
|
|
82
|
-
|
|
83
|
-
### 1. Opt-in Per File (Default)
|
|
84
|
-
|
|
85
|
-
Add `sensitive: true` to a behaviour YAML file to exclude its compiled output from API analysis:
|
|
86
|
-
|
|
87
|
-
```yaml
|
|
88
|
-
name: internal_security
|
|
89
|
-
description: Internal security policies
|
|
90
|
-
version: 1.0.0
|
|
91
|
-
sensitive: true
|
|
92
|
-
rules:
|
|
93
|
-
- id: sec_001
|
|
94
|
-
description: Internal policy details
|
|
95
|
-
priority: 90
|
|
96
|
-
enabled: true
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
Sensitive files are still checked locally for structural issues (duplicate IDs, empty descriptions, missing priorities). They are reported as "skipped (sensitive)" in verbose output.
|
|
100
|
-
|
|
101
|
-
### 2. Redaction
|
|
102
|
-
|
|
103
|
-
Configure regex patterns in `conf/adopt_redactions.yml` to replace sensitive content before it reaches the API:
|
|
104
|
-
|
|
105
|
-
```yaml
|
|
106
|
-
---
|
|
107
|
-
patterns:
|
|
108
|
-
- pattern: '\b[A-Z0-9._%+-]+@neatnerds\.be\b'
|
|
109
|
-
replacement: '[EMAIL-REDACTED]'
|
|
110
|
-
- pattern: 'NeatNerds'
|
|
111
|
-
replacement: '[COMPANY]'
|
|
112
|
-
- pattern: 'gitlab\.neatnerds\.be'
|
|
113
|
-
replacement: '[INTERNAL-URL]'
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
Redaction is applied in-memory only — original files are never modified.
|
|
117
|
-
|
|
118
|
-
### 3. Configurable Endpoint
|
|
119
|
-
|
|
120
|
-
Set the `ANTHROPIC_API_BASE_URL` environment variable to route API calls through a private endpoint:
|
|
121
|
-
|
|
122
|
-
```bash
|
|
123
|
-
# Use AWS Bedrock
|
|
124
|
-
export ANTHROPIC_API_BASE_URL=https://bedrock-runtime.us-east-1.amazonaws.com
|
|
125
|
-
|
|
126
|
-
# Use a corporate proxy
|
|
127
|
-
export ANTHROPIC_API_BASE_URL=https://ai-proxy.internal.company.com
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
### 4. Local-Only Mode
|
|
131
|
-
|
|
132
|
-
Use `--local` to skip API calls entirely. Only structural checks are performed:
|
|
133
|
-
|
|
134
|
-
- Duplicate rule IDs across files
|
|
135
|
-
- Empty or blank rule descriptions
|
|
136
|
-
- Rules without priority set
|
|
137
|
-
- Identical rule descriptions across different rule IDs
|
|
138
|
-
|
|
139
|
-
```bash
|
|
140
|
-
bin/raictl adopt --local --verbose
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
## Caching
|
|
144
|
-
|
|
145
|
-
Results are cached in `conf/adopt.cache.yml`. The cache key is a SHA256 hash of all analyzed file contents (after filtering sensitive files). When files haven't changed, the cached result is returned without an API call.
|
|
146
|
-
|
|
147
|
-
### Cache Format
|
|
148
|
-
|
|
149
|
-
```yaml
|
|
150
|
-
---
|
|
151
|
-
checksum: "sha256hex..."
|
|
152
|
-
analyzed_at: "2026-01-29T12:00:00Z"
|
|
153
|
-
result:
|
|
154
|
-
findings: [...]
|
|
155
|
-
overall_status: pass
|
|
156
|
-
summary: "No issues detected"
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
### Invalidating the Cache
|
|
160
|
-
|
|
161
|
-
The cache is automatically invalidated when any managed rule file changes. To force a fresh analysis, delete the cache file:
|
|
162
|
-
|
|
163
|
-
```bash
|
|
164
|
-
rm conf/adopt.cache.yml
|
|
165
|
-
bin/raictl adopt
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
## Local Structural Checks
|
|
169
|
-
|
|
170
|
-
These checks run on all files (including sensitive ones) regardless of `--local`:
|
|
171
|
-
|
|
172
|
-
| Check | Category | Severity |
|
|
173
|
-
|-------|----------|----------|
|
|
174
|
-
| Duplicate rule ID across files | `duplicates` | medium |
|
|
175
|
-
| Empty/blank rule description | `other` | medium |
|
|
176
|
-
| Missing priority | `other` | low |
|
|
177
|
-
| Identical descriptions on different rule IDs | `duplicates` | low |
|
|
178
|
-
|
|
179
|
-
## Environment Variables
|
|
180
|
-
|
|
181
|
-
| Variable | Purpose | Required |
|
|
182
|
-
|----------|---------|----------|
|
|
183
|
-
| `ANTHROPIC_API_KEY` | API authentication key | Yes (API mode) |
|
|
184
|
-
| `ANTHROPIC_API_BASE_URL` | Custom API endpoint | No |
|
|
185
|
-
|
|
186
|
-
## Workflow Integration
|
|
187
|
-
|
|
188
|
-
### Recommended Workflow
|
|
189
|
-
|
|
190
|
-
```bash
|
|
191
|
-
# 1. Compile behaviours to rules
|
|
192
|
-
bin/raictl compile --verbose
|
|
193
|
-
|
|
194
|
-
# 2. Run local checks first
|
|
195
|
-
bin/raictl adopt --local --verbose
|
|
196
|
-
|
|
197
|
-
# 3. Run full API analysis
|
|
198
|
-
bin/raictl adopt --verbose
|
|
199
|
-
|
|
200
|
-
# 4. Fix findings and recompile
|
|
201
|
-
bin/raictl compile --verbose
|
|
202
|
-
|
|
203
|
-
# 5. Verify fixes
|
|
204
|
-
bin/raictl adopt --verbose
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
### CI/CD Integration
|
|
208
|
-
|
|
209
|
-
```bash
|
|
210
|
-
# In CI pipeline — local checks only (no API key needed)
|
|
211
|
-
bin/raictl adopt --local || exit 1
|
|
212
|
-
|
|
213
|
-
# Or with API key available
|
|
214
|
-
ANTHROPIC_API_KEY=$CI_ANTHROPIC_KEY bin/raictl adopt || exit 1
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
## Architecture
|
|
218
|
-
|
|
219
|
-
The adopt system consists of two components:
|
|
220
|
-
|
|
221
|
-
- **`RosettAi::Adopter::RuleAdopter`** (`lib/rosett_ai/adopter/rule_adopter.rb`) — Core logic for file discovery, caching, redaction, API interaction, and local analysis
|
|
222
|
-
- **`RosettAi::Thor::Tasks::Adopt`** (`lib/rosett_ai/thor/tasks/adopt.rb`) — Thor CLI task providing terminal output with tables, spinners, and colored status indicators
|
|
223
|
-
|
|
224
|
-
The adopter uses the official [Anthropic Ruby SDK](https://github.com/anthropics/anthropic-sdk-ruby) (`anthropic` gem v1.16+) for API communication.
|
data/doc/AI_PROVENANCE.md
DELETED
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
# AI Provenance
|
|
2
|
-
|
|
3
|
-
Transparency declaration for AI-assisted development in rosett-ai v1.0.0.
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
raictl (Rosett-AI) was developed through human-AI collaboration.
|
|
8
|
-
This document declares the scope and nature of AI involvement in accordance
|
|
9
|
-
with responsible AI disclosure practices.
|
|
10
|
-
|
|
11
|
-
## AI Tools Used
|
|
12
|
-
|
|
13
|
-
| Tool | Model | Role |
|
|
14
|
-
|------|-------|------|
|
|
15
|
-
| Claude Code (CLI) | Claude Opus 4 / Opus 4.6 / Sonnet 4.5 | Code generation, architecture design, test writing, documentation |
|
|
16
|
-
|
|
17
|
-
## Human Oversight
|
|
18
|
-
|
|
19
|
-
All AI-generated code was:
|
|
20
|
-
|
|
21
|
-
- **Reviewed** by the project author before merge
|
|
22
|
-
- **Validated** by automated quality gates (RSpec, RuboCop, Reek, Mutant, bundler-audit, ruby-audit, gitleaks)
|
|
23
|
-
- **Tested** against 1321 core RSpec examples + 458 engine gem examples (1779 total) with 86%+ line coverage
|
|
24
|
-
- **Mutation-tested** via Mutant at 97.83% kill rate on critical subjects
|
|
25
|
-
- **Architecturally directed** by human decisions documented in ADRs
|
|
26
|
-
|
|
27
|
-
## Scope of AI Contribution
|
|
28
|
-
|
|
29
|
-
### Architecture & Design
|
|
30
|
-
|
|
31
|
-
AI assisted with:
|
|
32
|
-
|
|
33
|
-
- Engine-agnostic architecture design (ADR-007, Q&A sessions Q1-Q9)
|
|
34
|
-
- Design document authoring (23 design docs in `conf/design/`)
|
|
35
|
-
- Implementation planning and phasing
|
|
36
|
-
|
|
37
|
-
All architectural decisions were made by the human author. AI provided
|
|
38
|
-
options, trade-off analysis, and implementation suggestions that were
|
|
39
|
-
accepted, modified, or rejected by the author.
|
|
40
|
-
|
|
41
|
-
### Code Generation
|
|
42
|
-
|
|
43
|
-
AI generated initial implementations for:
|
|
44
|
-
|
|
45
|
-
- Engine backends (11 engines: claude, generic, agents_md, ollama, gpt_neox, goose, aider, cursor, copilot, windsurf, acme)
|
|
46
|
-
- Pluggable plugin architecture (contract modules, dynamic registry, `Gem.find_files` discovery)
|
|
47
|
-
- Engine extraction to external gems (11 `rosett-ai-engine-*` gems including ACME reference)
|
|
48
|
-
- D-Bus service interfaces and focus adapters
|
|
49
|
-
- GTK4/Adwaita desktop application
|
|
50
|
-
- Quorum multi-engine analysis module
|
|
51
|
-
- Compiler pipeline and capability checker
|
|
52
|
-
- CLI Thor tasks and subcommands
|
|
53
|
-
- Custom RuboCop cops (ShellInterpolation, UnsafeYamlLoad)
|
|
54
|
-
- JSON schemas for validation
|
|
55
|
-
|
|
56
|
-
### Test Suite
|
|
57
|
-
|
|
58
|
-
AI generated:
|
|
59
|
-
|
|
60
|
-
- RSpec examples (1307 core + 458 engine gems = 1765 total, across 100+ spec files)
|
|
61
|
-
- Engine stub infrastructure (`spec/support/stub_engines.rb`) for core-only testing without engine gems
|
|
62
|
-
- Factory definitions (factory_bot)
|
|
63
|
-
- Property-based tests (Rantly)
|
|
64
|
-
- Test fixtures (valid, invalid, malicious, Unicode)
|
|
65
|
-
|
|
66
|
-
### Documentation
|
|
67
|
-
|
|
68
|
-
AI generated initial drafts for:
|
|
69
|
-
|
|
70
|
-
- Man page (`doc/man/rai.1.ronn`)
|
|
71
|
-
- ARCHITECTURE.md (with Mermaid diagrams)
|
|
72
|
-
- USAGE.md, INSTALL.md, CONTRIBUTING.md
|
|
73
|
-
- CHANGELOG.md entries
|
|
74
|
-
- ADR documents
|
|
75
|
-
|
|
76
|
-
### Build System & Packaging
|
|
77
|
-
|
|
78
|
-
AI assisted with:
|
|
79
|
-
|
|
80
|
-
- Build system fixes (Gemfile engine decoupling, Bundler env var cleanup)
|
|
81
|
-
- Wrapper script template with runtime path substitution (`@@RUBY_ABI@@`, `@@RUBY_ARCH@@`)
|
|
82
|
-
- Engine .deb packaging infrastructure (`build-engine-deb.sh`, per-engine `build-deb.sh`)
|
|
83
|
-
- CI pipeline fixes (prefix-aware cache, smoke test without system Ruby)
|
|
84
|
-
|
|
85
|
-
### CI/CD Pipeline
|
|
86
|
-
|
|
87
|
-
AI assisted with:
|
|
88
|
-
|
|
89
|
-
- GitLab CI job definitions
|
|
90
|
-
- Security scan configuration
|
|
91
|
-
- Release pipeline design
|
|
92
|
-
- Package build scripts (fpm)
|
|
93
|
-
|
|
94
|
-
## What AI Did NOT Do
|
|
95
|
-
|
|
96
|
-
- **No unsupervised deployments** — all commits reviewed before push
|
|
97
|
-
- **No credential handling** — secrets managed exclusively by human
|
|
98
|
-
- **No production access** — AI operated only on development workstation
|
|
99
|
-
- **No dependency selection** — gem choices made by human author
|
|
100
|
-
- **No license decisions** — GPL-3.0-only chosen by human author
|
|
101
|
-
|
|
102
|
-
## Commit Attribution
|
|
103
|
-
|
|
104
|
-
AI-assisted commits include the trailer:
|
|
105
|
-
|
|
106
|
-
```text
|
|
107
|
-
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Earlier commits may use `Claude Sonnet 4.5` or `Claude Opus 4` depending
|
|
111
|
-
on the model version active at the time.
|
|
112
|
-
|
|
113
|
-
## Verification
|
|
114
|
-
|
|
115
|
-
The following quality gates run on every commit and MR:
|
|
116
|
-
|
|
117
|
-
| Gate | Tool | Threshold |
|
|
118
|
-
|------|------|-----------|
|
|
119
|
-
| Unit tests | RSpec | 0 failures |
|
|
120
|
-
| Line coverage | SimpleCov | 88% overall, 25% per file |
|
|
121
|
-
| Mutation testing | Mutant | Score tracked, no regression |
|
|
122
|
-
| Style | RuboCop | 0 offenses (224 core + 147 engine gem files) |
|
|
123
|
-
| Code smells | Reek | 0 smells |
|
|
124
|
-
| Gem vulnerabilities | bundler-audit | 0 advisories |
|
|
125
|
-
| Ruby vulnerabilities | ruby-audit | 0 advisories |
|
|
126
|
-
| Secret detection | gitleaks | 0 findings |
|
|
127
|
-
| Schema validation | json_schemer | 25 config files valid |
|
|
128
|
-
|
|
129
|
-
## Contact
|
|
130
|
-
|
|
131
|
-
For questions about AI involvement in this project:
|
|
132
|
-
|
|
133
|
-
- Author: Hugo Antonio Sepulveda Manriquez
|
|
134
|
-
- Email: query@neatnerds.be
|
|
135
|
-
- License: GPL-3.0-only
|
|
136
|
-
|
|
137
|
-
---
|
|
138
|
-
|
|
139
|
-
*Last updated: 2026-03-08 | rosett-ai v1.0.0 + pluggable-engines + engine .deb packaging*
|