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/README.md
CHANGED
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
raictl is an engine-agnostic configuration management tool for AI-assisted development workflows.
|
|
6
6
|
Define operational rules in generic YAML, then compile them to any supported AI tool's native format.
|
|
7
|
-
|
|
8
|
-
Additional engines (Cursor, Copilot, Windsurf, Goose, Aider, Ollama, GPT-NeoX, Generic) are in development.
|
|
7
|
+
Ships with Claude Code and AGENTS.md builtin engines; additional engines available as plugin gems.
|
|
9
8
|
|
|
10
9
|
```mermaid
|
|
11
10
|
graph LR
|
|
@@ -50,10 +49,10 @@ graph LR
|
|
|
50
49
|
|
|
51
50
|
| Field | Value |
|
|
52
51
|
|-------|-------|
|
|
53
|
-
| Version | <!-- rai:version -->1.
|
|
52
|
+
| Version | <!-- rai:version -->1.3.4<!-- /rai:version --> |
|
|
54
53
|
| License | GPL-3.0-only |
|
|
55
|
-
| Ruby | 3.
|
|
56
|
-
| Tests | <!-- rai:tests -->
|
|
54
|
+
| Ruby | 3.4.8 (rbenv) |
|
|
55
|
+
| Tests | <!-- rai:tests -->4477 RSpec specs<!-- /rai:tests --> |
|
|
57
56
|
| Author | Hugo Antonio Sepulveda Manriquez |
|
|
58
57
|
|
|
59
58
|
## Quick Start
|
|
@@ -67,7 +66,7 @@ gem install rosett-ai
|
|
|
67
66
|
### Or install from .deb (Debian/Ubuntu)
|
|
68
67
|
|
|
69
68
|
```bash
|
|
70
|
-
sudo dpkg -i rosett-ai_1.
|
|
69
|
+
sudo dpkg -i rosett-ai_1.3.4-1_amd64.deb
|
|
71
70
|
```
|
|
72
71
|
|
|
73
72
|
### Initialize
|
|
@@ -125,6 +124,10 @@ mindmap
|
|
|
125
124
|
YAML DoS Prevention
|
|
126
125
|
Path Whitelisting
|
|
127
126
|
Custom RuboCop Cops
|
|
127
|
+
MCP Server
|
|
128
|
+
33 Tools / 8 Resources
|
|
129
|
+
Systemd User Service
|
|
130
|
+
Enforcement Pipeline
|
|
128
131
|
CLI
|
|
129
132
|
Compile / Validate / Adopt
|
|
130
133
|
Backup / Migrate / Doctor
|
|
@@ -143,6 +146,7 @@ mindmap
|
|
|
143
146
|
- **GTK4/Adwaita Application** -- Crash-proof GUI with `safe_action()` wrapper pattern
|
|
144
147
|
- **Behaviour Management** -- Priority-sorted rules (1-100 scale) with sensitivity filtering
|
|
145
148
|
- **Adopt Analysis** -- Local structural checks with optional API-powered analysis
|
|
149
|
+
- **MCP Server** -- Model Context Protocol server with 33 tools, 8 resources, 4 prompts; runs as a systemd user service
|
|
146
150
|
- **Content Packs** -- Premium content delivery via Ed25519-signed JWT licensing
|
|
147
151
|
- **Debian Packaging** -- `.deb` packages via fpm for core, gtk4, and qt6 variants
|
|
148
152
|
- **i18n** -- Internationalisation with gettext/Qt locale compilation
|
|
@@ -178,6 +182,12 @@ graph TB
|
|
|
178
182
|
GENERIC[engines/generic/]:::planned
|
|
179
183
|
end
|
|
180
184
|
|
|
185
|
+
subgraph MCP_LAYER["MCP Layer"]
|
|
186
|
+
MCP_SRV[MCP Server]:::available
|
|
187
|
+
MCP_TOOLS[33 Tools]
|
|
188
|
+
MCP_RES[8 Resources]
|
|
189
|
+
end
|
|
190
|
+
|
|
181
191
|
subgraph DESKTOP["Desktop Layer"]
|
|
182
192
|
DBUS_SVC[D-Bus Service]
|
|
183
193
|
GTK4[GTK4 App]
|
|
@@ -193,6 +203,10 @@ graph TB
|
|
|
193
203
|
COMP --> YAML
|
|
194
204
|
VALID --> YAML
|
|
195
205
|
CONFIG --> PATH
|
|
206
|
+
MCP_SRV --> COMP
|
|
207
|
+
MCP_SRV --> VALID
|
|
208
|
+
MCP_TOOLS --> MCP_SRV
|
|
209
|
+
MCP_RES --> MCP_SRV
|
|
196
210
|
DBUS_SVC --> COMP
|
|
197
211
|
GTK4 -->|D-Bus IPC| DBUS_SVC
|
|
198
212
|
FOCUS --> DBUS_SVC
|
|
@@ -228,10 +242,18 @@ raictl behaviour display # Show behaviour configuration
|
|
|
228
242
|
raictl config compile # Compile YAML scopes to JSON
|
|
229
243
|
raictl design list # List design documents
|
|
230
244
|
|
|
245
|
+
# MCP server
|
|
246
|
+
raictl mcp serve # Start MCP JSON-RPC server
|
|
247
|
+
raictl mcp status # Show MCP server status
|
|
248
|
+
|
|
231
249
|
# Desktop
|
|
232
250
|
raictl dbus start # Start D-Bus service
|
|
233
251
|
raictl desktop gtk4 # Launch GTK4 application
|
|
234
252
|
|
|
253
|
+
# Compliance & provenance
|
|
254
|
+
raictl comply # Run compliance checks (CRA, license, SPDX)
|
|
255
|
+
raictl provenance add # Record AI contribution for HEAD commit
|
|
256
|
+
|
|
235
257
|
# Backup
|
|
236
258
|
raictl backup --global --local # Back up all configurations
|
|
237
259
|
```
|
|
@@ -272,40 +294,32 @@ See [USAGE.md](doc/USAGE.md) for the full command reference.
|
|
|
272
294
|
```text
|
|
273
295
|
rosett-ai/
|
|
274
296
|
├── bin/raictl # CLI executable
|
|
275
|
-
├── lib/rosett_ai/
|
|
276
|
-
│ ├──
|
|
277
|
-
│
|
|
278
|
-
│
|
|
279
|
-
│
|
|
280
|
-
│
|
|
281
|
-
│
|
|
282
|
-
│
|
|
283
|
-
│
|
|
284
|
-
│
|
|
285
|
-
│
|
|
286
|
-
│
|
|
287
|
-
│ ├──
|
|
288
|
-
│
|
|
289
|
-
|
|
290
|
-
│ ├──
|
|
291
|
-
│ ├──
|
|
292
|
-
│ ├──
|
|
293
|
-
│ ├──
|
|
294
|
-
│
|
|
295
|
-
|
|
296
|
-
├──
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
│ └── packaging/ # Package variant configs
|
|
302
|
-
├── spec/ # RSpec tests (119 files)
|
|
303
|
-
├── doc/ # Documentation
|
|
304
|
-
│ ├── decisions/ # ADRs (001-007)
|
|
305
|
-
│ └── changes/ # Implementation notes
|
|
306
|
-
├── locales/ # i18n (en, fr, ar)
|
|
307
|
-
├── packaging/ # Debian scripts
|
|
308
|
-
└── CLAUDE.md # Project instructions
|
|
297
|
+
├── lib/rosett_ai/ # Ruby library
|
|
298
|
+
│ ├── compiler/ # Compilation pipeline
|
|
299
|
+
│ ├── engines/ # Engine plugin registry + detector
|
|
300
|
+
│ ├── mcp/ # MCP server (33 tools, 8 resources)
|
|
301
|
+
│ ├── desktop/ # GTK4 app + GUI logger
|
|
302
|
+
│ ├── dbus/ # D-Bus service + focus adapters
|
|
303
|
+
│ ├── validators/ # Schema-based validators
|
|
304
|
+
│ ├── comply/ # CRA/license/SPDX compliance
|
|
305
|
+
│ ├── provenance/ # AI provenance tracking
|
|
306
|
+
│ ├── licensing/ # Ed25519 JWT license keys
|
|
307
|
+
│ ├── content/ # Content pack system
|
|
308
|
+
│ ├── backup/ # Backup with compression
|
|
309
|
+
│ ├── thor/tasks/ # CLI subcommands
|
|
310
|
+
│ └── ui/ # UI adapter registry
|
|
311
|
+
├── conf/ # Configuration
|
|
312
|
+
│ ├── behaviour/ # Behaviour YAML files
|
|
313
|
+
│ ├── design/ # Design documents
|
|
314
|
+
│ ├── schemas/ # JSON Schemas
|
|
315
|
+
│ ├── mcp/ # MCP server config
|
|
316
|
+
│ └── packaging/ # Package variant configs
|
|
317
|
+
├── dist/ # Systemd service units
|
|
318
|
+
├── spec/ # RSpec tests
|
|
319
|
+
├── doc/ # Documentation
|
|
320
|
+
├── locales/ # i18n (en, fr, ar)
|
|
321
|
+
├── packaging/ # Debian scripts
|
|
322
|
+
└── share/ # Desktop/D-Bus integration files
|
|
309
323
|
```
|
|
310
324
|
|
|
311
325
|
## Development
|
|
@@ -315,7 +329,7 @@ rosett-ai/
|
|
|
315
329
|
```bash
|
|
316
330
|
git clone https://gitlab.com/neatnerds/foss/rosett-ai.git
|
|
317
331
|
cd rosett-ai
|
|
318
|
-
rbenv install 3.
|
|
332
|
+
rbenv install 3.4.8
|
|
319
333
|
bundle install
|
|
320
334
|
overcommit --install
|
|
321
335
|
bin/raictl version
|
|
@@ -362,5 +376,5 @@ GPL-3.0-only
|
|
|
362
376
|
|
|
363
377
|
## Contact
|
|
364
378
|
|
|
365
|
-
- Author:
|
|
379
|
+
- Author: query@neatnerds.be
|
|
366
380
|
- Support: query@neatnerds.be
|
data/bin/raictl
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
# SPDX-License-Identifier: GPL-3.0-only
|
|
5
|
+
# Copyright (C) 2026 Hugo Antonio Sepulveda Manriquez / NeatNerds
|
|
6
|
+
|
|
7
|
+
# NeatNerds Code Companion - CLI Executable
|
|
8
|
+
# This is the main entry point for the rai command
|
|
9
|
+
|
|
10
|
+
require 'rosett_ai'
|
|
11
|
+
|
|
12
|
+
RosettAi::I18n::Utf8Checker.check!
|
|
13
|
+
RosettAi::Thor::CLI.start(ARGV)
|
data/conf/adopt_redactions.yml
CHANGED
data/conf/mcp/trust.yml
CHANGED
data/conf/packaging/core.yml
CHANGED
data/conf/packaging/gtk4.yml
CHANGED
data/conf/packaging/qt6.yml
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
+
# SPDX-FileCopyrightText: 2025-2026 Hugo Antonio Sepulveda Manriquez <query@neatnerds.be>
|
|
3
|
+
# SPDX-License-Identifier: GPL-3.0-only
|
|
2
4
|
# Default deny list patterns for AI tool access control.
|
|
3
5
|
#
|
|
4
6
|
# These patterns prevent AI tools from reading or modifying sensitive files.
|
data/conf/review/design-docs.yml
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
+
# SPDX-FileCopyrightText: 2025-2026 Hugo Antonio Sepulveda Manriquez <hugo@neatnerds.be>
|
|
3
|
+
# SPDX-License-Identifier: GPL-3.0-only
|
|
2
4
|
# Design Document Peer Review Registry — Rosett-AI core
|
|
3
5
|
# Generated: 2026-03-15
|
|
4
6
|
# Updated: 2026-03-16 (gap-fill design document review)
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
+
# SPDX-FileCopyrightText: 2025-2026 Hugo Antonio Sepulveda Manriquez <hugo@neatnerds.be>
|
|
3
|
+
# SPDX-License-Identifier: GPL-3.0-only
|
|
2
4
|
# Test Peer Review Questionnaire Template
|
|
3
5
|
# Version: 1.0.0
|
|
4
6
|
# Used by: Rosett-AI test peer review process (see conf/design/test_peer_review.yml)
|
|
@@ -30,7 +30,11 @@
|
|
|
30
30
|
},
|
|
31
31
|
"truncation_strategy": {
|
|
32
32
|
"type": "string",
|
|
33
|
-
"enum": [
|
|
33
|
+
"enum": [
|
|
34
|
+
"tail",
|
|
35
|
+
"head",
|
|
36
|
+
"middle"
|
|
37
|
+
],
|
|
34
38
|
"description": "How to truncate input when exceeding context window"
|
|
35
39
|
}
|
|
36
40
|
}
|
|
@@ -41,7 +45,11 @@
|
|
|
41
45
|
"properties": {
|
|
42
46
|
"preferred_tier": {
|
|
43
47
|
"type": "string",
|
|
44
|
-
"enum": [
|
|
48
|
+
"enum": [
|
|
49
|
+
"economy",
|
|
50
|
+
"standard",
|
|
51
|
+
"premium"
|
|
52
|
+
],
|
|
45
53
|
"description": "Default cost tier preference (advisory only)"
|
|
46
54
|
},
|
|
47
55
|
"monthly_budget_note": {
|
|
@@ -69,5 +77,9 @@
|
|
|
69
77
|
"description": "Engine-specific operational parameters (temperature, top_p, etc.)",
|
|
70
78
|
"additionalProperties": true
|
|
71
79
|
}
|
|
80
|
+
},
|
|
81
|
+
"$comment": {
|
|
82
|
+
"spdx": "SPDX-FileCopyrightText: 2025-2026 Hugo Antonio Sepulveda Manriquez <query@neatnerds.be> | SPDX-License-Identifier: GPL-3.0-only",
|
|
83
|
+
"note": null
|
|
72
84
|
}
|
|
73
85
|
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://gitlab.neatnerds.be/foss/rosett-ai/rosett-ai/schemas/autoqueue.schema.json",
|
|
4
|
+
"title": "NeatNerds Orchestrator Autoqueue",
|
|
5
|
+
"description": "Schema for the persistent orchestrator dispatch queue (autoqueue.yml). Validates queue items, priorities, tiers, lifecycle statuses, and inter-item dependencies.",
|
|
6
|
+
"$comment": {
|
|
7
|
+
"date": "2026-05-22",
|
|
8
|
+
"version": "0.2.0",
|
|
9
|
+
"source": "rosett-ai",
|
|
10
|
+
"changes_0.2.0": "Option A schema update: status enum extended to include deferred/stuck-killed/failed; dependencies items accept integer WP IDs in addition to aq-NNN strings; acceptance_summary required only for actionable statuses (queued/dispatched/blocked/done-with-followup)"
|
|
11
|
+
},
|
|
12
|
+
"type": "object",
|
|
13
|
+
"required": ["version", "items"],
|
|
14
|
+
"additionalProperties": true,
|
|
15
|
+
"properties": {
|
|
16
|
+
"version": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "Schema version (semver)"
|
|
19
|
+
},
|
|
20
|
+
"last_updated": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "ISO 8601 datetime of last modification"
|
|
23
|
+
},
|
|
24
|
+
"last_updated_by": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"description": "Session or agent that last modified the queue"
|
|
27
|
+
},
|
|
28
|
+
"cpu_budget": {
|
|
29
|
+
"type": "object",
|
|
30
|
+
"description": "Available CPU budget for dispatch decisions",
|
|
31
|
+
"properties": {
|
|
32
|
+
"total": {
|
|
33
|
+
"type": "integer",
|
|
34
|
+
"minimum": 1,
|
|
35
|
+
"description": "Total CPU cores available"
|
|
36
|
+
},
|
|
37
|
+
"reserved_orchestrator": {
|
|
38
|
+
"type": "integer",
|
|
39
|
+
"minimum": 0,
|
|
40
|
+
"description": "Cores reserved for the orchestrator session"
|
|
41
|
+
},
|
|
42
|
+
"reserved_system": {
|
|
43
|
+
"type": "integer",
|
|
44
|
+
"minimum": 0,
|
|
45
|
+
"description": "Cores reserved for system processes"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"additionalProperties": false
|
|
49
|
+
},
|
|
50
|
+
"items": {
|
|
51
|
+
"type": "array",
|
|
52
|
+
"description": "Ordered list of dispatch queue items",
|
|
53
|
+
"items": {
|
|
54
|
+
"type": "object",
|
|
55
|
+
"required": [
|
|
56
|
+
"id",
|
|
57
|
+
"priority",
|
|
58
|
+
"tier",
|
|
59
|
+
"cpu_count",
|
|
60
|
+
"status"
|
|
61
|
+
],
|
|
62
|
+
"if": {
|
|
63
|
+
"properties": {
|
|
64
|
+
"status": {"enum": ["queued", "dispatched", "blocked", "done-with-followup"]}
|
|
65
|
+
},
|
|
66
|
+
"required": ["status"]
|
|
67
|
+
},
|
|
68
|
+
"then": {
|
|
69
|
+
"required": ["acceptance_summary"]
|
|
70
|
+
},
|
|
71
|
+
"additionalProperties": true,
|
|
72
|
+
"properties": {
|
|
73
|
+
"id": {
|
|
74
|
+
"type": "string",
|
|
75
|
+
"pattern": "^aq-\\d+$",
|
|
76
|
+
"description": "Unique queue item identifier (aq-NNN)"
|
|
77
|
+
},
|
|
78
|
+
"session_name": {
|
|
79
|
+
"type": "string",
|
|
80
|
+
"description": "Name of the worker session to be dispatched"
|
|
81
|
+
},
|
|
82
|
+
"priority": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"enum": ["immediate", "high", "normal", "low"],
|
|
85
|
+
"description": "Dispatch priority"
|
|
86
|
+
},
|
|
87
|
+
"tier": {
|
|
88
|
+
"type": "string",
|
|
89
|
+
"enum": ["micro", "standard", "campaign"],
|
|
90
|
+
"description": "Mission tier (determines CPU and time budget)"
|
|
91
|
+
},
|
|
92
|
+
"model": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"description": "Claude model to use for the dispatched session"
|
|
95
|
+
},
|
|
96
|
+
"cpu_count": {
|
|
97
|
+
"type": "integer",
|
|
98
|
+
"minimum": 1,
|
|
99
|
+
"description": "Number of CPU cores to pin for this session"
|
|
100
|
+
},
|
|
101
|
+
"status": {
|
|
102
|
+
"type": "string",
|
|
103
|
+
"enum": ["queued", "dispatched", "done", "done-with-followup", "blocked", "deferred", "stuck-killed", "failed"],
|
|
104
|
+
"description": "Current lifecycle status of the queue item. Terminal statuses: done, done-with-followup, deferred, stuck-killed, failed."
|
|
105
|
+
},
|
|
106
|
+
"linked_wps": {
|
|
107
|
+
"type": "array",
|
|
108
|
+
"items": {
|
|
109
|
+
"type": "integer"
|
|
110
|
+
},
|
|
111
|
+
"description": "OpenProject WP IDs linked to this mission"
|
|
112
|
+
},
|
|
113
|
+
"dependencies": {
|
|
114
|
+
"type": "array",
|
|
115
|
+
"items": {
|
|
116
|
+
"oneOf": [
|
|
117
|
+
{"type": "string", "pattern": "^aq-\\d+$"},
|
|
118
|
+
{"type": "integer", "minimum": 1}
|
|
119
|
+
]
|
|
120
|
+
},
|
|
121
|
+
"description": "Other autoqueue IDs (aq-NNN strings) or OpenProject WP IDs (integers) that must be done before this can pop"
|
|
122
|
+
},
|
|
123
|
+
"brief_path": {
|
|
124
|
+
"type": "string",
|
|
125
|
+
"description": "Absolute path to a pre-staged MISSION-BRIEF.md (optional)"
|
|
126
|
+
},
|
|
127
|
+
"rationale": {
|
|
128
|
+
"type": "string",
|
|
129
|
+
"description": "Why this item was queued"
|
|
130
|
+
},
|
|
131
|
+
"queued_at": {
|
|
132
|
+
"type": "string",
|
|
133
|
+
"description": "ISO 8601 datetime when the item was added"
|
|
134
|
+
},
|
|
135
|
+
"queued_by": {
|
|
136
|
+
"type": "string",
|
|
137
|
+
"description": "Session or agent that added this item"
|
|
138
|
+
},
|
|
139
|
+
"estimated_effort_hours": {
|
|
140
|
+
"type": "number",
|
|
141
|
+
"minimum": 0,
|
|
142
|
+
"description": "Estimated effort in hours"
|
|
143
|
+
},
|
|
144
|
+
"acceptance_summary": {
|
|
145
|
+
"type": "string",
|
|
146
|
+
"minLength": 1,
|
|
147
|
+
"description": "One-paragraph summary of what done looks like for this item"
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
@@ -7,10 +7,17 @@
|
|
|
7
7
|
"date": "2026-04-17",
|
|
8
8
|
"version": "1.3.0",
|
|
9
9
|
"source": "rosett-ai",
|
|
10
|
-
"compatible_claude_code_versions": [
|
|
10
|
+
"compatible_claude_code_versions": [
|
|
11
|
+
">=0.1.0"
|
|
12
|
+
],
|
|
13
|
+
"spdx": "SPDX-FileCopyrightText: 2025-2026 Hugo Antonio Sepulveda Manriquez <query@neatnerds.be> | SPDX-License-Identifier: GPL-3.0-only"
|
|
11
14
|
},
|
|
12
15
|
"type": "object",
|
|
13
|
-
"required": [
|
|
16
|
+
"required": [
|
|
17
|
+
"name",
|
|
18
|
+
"description",
|
|
19
|
+
"rules"
|
|
20
|
+
],
|
|
14
21
|
"additionalProperties": false,
|
|
15
22
|
"properties": {
|
|
16
23
|
"name": {
|
|
@@ -49,7 +56,11 @@
|
|
|
49
56
|
},
|
|
50
57
|
"scope": {
|
|
51
58
|
"type": "string",
|
|
52
|
-
"enum": [
|
|
59
|
+
"enum": [
|
|
60
|
+
"global",
|
|
61
|
+
"project",
|
|
62
|
+
"personal"
|
|
63
|
+
],
|
|
53
64
|
"description": "Compilation scope: global (to ~/.claude/rules/), project (to .claude/rules/), personal (to ~/.claude/rules/, not shared). Defaults to global when omitted."
|
|
54
65
|
},
|
|
55
66
|
"sensitive": {
|
|
@@ -69,7 +80,10 @@
|
|
|
69
80
|
"description": "Operational rules for Claude Code (at least one required)",
|
|
70
81
|
"items": {
|
|
71
82
|
"type": "object",
|
|
72
|
-
"required": [
|
|
83
|
+
"required": [
|
|
84
|
+
"id",
|
|
85
|
+
"description"
|
|
86
|
+
],
|
|
73
87
|
"properties": {
|
|
74
88
|
"id": {
|
|
75
89
|
"type": "string",
|
|
@@ -95,7 +109,11 @@
|
|
|
95
109
|
"properties": {
|
|
96
110
|
"type": {
|
|
97
111
|
"type": "string",
|
|
98
|
-
"enum": [
|
|
112
|
+
"enum": [
|
|
113
|
+
"enforceable",
|
|
114
|
+
"advisory",
|
|
115
|
+
"informational"
|
|
116
|
+
],
|
|
99
117
|
"description": "Enforcement tier: enforceable (hook-generatable), advisory (guidance only), informational (context only)"
|
|
100
118
|
},
|
|
101
119
|
"pattern": {
|
|
@@ -114,7 +132,11 @@
|
|
|
114
132
|
},
|
|
115
133
|
"action": {
|
|
116
134
|
"type": "string",
|
|
117
|
-
"enum": [
|
|
135
|
+
"enum": [
|
|
136
|
+
"block",
|
|
137
|
+
"warn",
|
|
138
|
+
"log"
|
|
139
|
+
],
|
|
118
140
|
"description": "Enforcement action: block (reject tool call), warn (stderr warning), log (silent log)"
|
|
119
141
|
},
|
|
120
142
|
"message": {
|
|
@@ -122,7 +144,9 @@
|
|
|
122
144
|
"description": "Human-readable message shown when the rule triggers"
|
|
123
145
|
}
|
|
124
146
|
},
|
|
125
|
-
"required": [
|
|
147
|
+
"required": [
|
|
148
|
+
"type"
|
|
149
|
+
],
|
|
126
150
|
"additionalProperties": false
|
|
127
151
|
}
|
|
128
152
|
}
|
|
@@ -6,10 +6,15 @@
|
|
|
6
6
|
"$comment": {
|
|
7
7
|
"date": "2026-03-16",
|
|
8
8
|
"version": "1.0.0",
|
|
9
|
-
"source": "rosett-ai"
|
|
9
|
+
"source": "rosett-ai",
|
|
10
|
+
"spdx": "SPDX-FileCopyrightText: 2025-2026 Hugo Antonio Sepulveda Manriquez <query@neatnerds.be> | SPDX-License-Identifier: GPL-3.0-only"
|
|
10
11
|
},
|
|
11
12
|
"type": "object",
|
|
12
|
-
"required": [
|
|
13
|
+
"required": [
|
|
14
|
+
"name",
|
|
15
|
+
"version",
|
|
16
|
+
"rules"
|
|
17
|
+
],
|
|
13
18
|
"additionalProperties": false,
|
|
14
19
|
"properties": {
|
|
15
20
|
"name": {
|
|
@@ -31,7 +36,11 @@
|
|
|
31
36
|
"minItems": 1,
|
|
32
37
|
"items": {
|
|
33
38
|
"type": "object",
|
|
34
|
-
"required": [
|
|
39
|
+
"required": [
|
|
40
|
+
"id",
|
|
41
|
+
"description",
|
|
42
|
+
"severity"
|
|
43
|
+
],
|
|
35
44
|
"additionalProperties": false,
|
|
36
45
|
"properties": {
|
|
37
46
|
"id": {
|
|
@@ -45,7 +54,11 @@
|
|
|
45
54
|
},
|
|
46
55
|
"severity": {
|
|
47
56
|
"type": "string",
|
|
48
|
-
"enum": [
|
|
57
|
+
"enum": [
|
|
58
|
+
"error",
|
|
59
|
+
"warning",
|
|
60
|
+
"info"
|
|
61
|
+
],
|
|
49
62
|
"description": "Severity level"
|
|
50
63
|
},
|
|
51
64
|
"check": {
|