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.
- checksums.yaml +7 -0
- data/.ai-provenance.yml +119 -0
- data/.debride_whitelist +186 -0
- data/.fasterer.yml +29 -0
- data/.mdl_style.rb +10 -0
- data/.mdlrc +3 -0
- data/.mutant.yml +49 -0
- data/.namespace-allowlist +42 -0
- data/.reek.yml +1040 -0
- data/.rosett-ai/config.yml +3 -0
- data/.rspec +5 -0
- data/.rubocop.yml +380 -0
- data/.ruby-version +1 -0
- data/.yamllint +51 -0
- data/.yardopts +12 -0
- data/AI-DISCLOSURE.md +48 -0
- data/CHANGELOG.md +519 -0
- data/CLAUDE.md +141 -0
- data/CONTRIBUTING.md +734 -0
- data/INSTALL.md +154 -0
- data/LICENSE +674 -0
- data/LICENSE.md +675 -0
- data/QUICKSTART.md +73 -0
- data/README.md +366 -0
- data/Rakefile +200 -0
- data/SECURITY.md +114 -0
- data/bin/rai +1 -0
- data/cliff.toml +52 -0
- data/conf/adopt_redactions.yml +8 -0
- data/conf/behaviour/.gitkeep +0 -0
- data/conf/compliance/cra_rules.yml +25 -0
- data/conf/compliance/license_rules.yml +20 -0
- data/conf/design/aaif_alignment.yml +181 -0
- data/conf/design/ab_testing.yml +172 -0
- data/conf/design/accessibility.yml +84 -0
- data/conf/design/ai_authorship.yml +210 -0
- data/conf/design/ai_provenance.yml +224 -0
- data/conf/design/ai_tool_configuration.yml +207 -0
- data/conf/design/architecture.yml +139 -0
- data/conf/design/autocompletion.yml +115 -0
- data/conf/design/backward_compatibility.yml +112 -0
- data/conf/design/behaviour_composition.yml +246 -0
- data/conf/design/build_rake_extraction.yml +57 -0
- data/conf/design/ci_pipeline.yml +100 -0
- data/conf/design/claude_code_configuration.yml +157 -0
- data/conf/design/compiler.yml +128 -0
- data/conf/design/comply.yml +153 -0
- data/conf/design/content_packs.yml +84 -0
- data/conf/design/desktop_integration.yml +289 -0
- data/conf/design/distribution.yml +216 -0
- data/conf/design/doctor.yml +184 -0
- data/conf/design/documentation.yml +152 -0
- data/conf/design/engine_architecture.yml +257 -0
- data/conf/design/error_handling.yml +103 -0
- data/conf/design/feature_flags.yml +142 -0
- data/conf/design/git_hooks.yml +165 -0
- data/conf/design/gui_plugins.yml +475 -0
- data/conf/design/i18n.yml +84 -0
- data/conf/design/integration_testing.yml +56 -0
- data/conf/design/licensing_system.yml +88 -0
- data/conf/design/lifecycle_management.yml +208 -0
- data/conf/design/mcp_integration.yml +207 -0
- data/conf/design/mcp_settings.yml +126 -0
- data/conf/design/migration.yml +56 -0
- data/conf/design/monitoring_observability.yml +194 -0
- data/conf/design/namespace_cleanup.yml +145 -0
- data/conf/design/plugin_test_segregation.yml +145 -0
- data/conf/design/policy_management.yml +229 -0
- data/conf/design/project_management.yml +183 -0
- data/conf/design/rai_mcp_asset_discovery.yml +164 -0
- data/conf/design/rai_mcp_server.yml +605 -0
- data/conf/design/release_management.yml +117 -0
- data/conf/design/retrofit.yml +199 -0
- data/conf/design/retrospective_analyzer.yml +79 -0
- data/conf/design/scope_hierarchy.yml +352 -0
- data/conf/design/security.yml +115 -0
- data/conf/design/session_retrospective.yml +85 -0
- data/conf/design/smart_ui_feedback.yml +89 -0
- data/conf/design/structured_logging.yml +148 -0
- data/conf/design/styles.yml +123 -0
- data/conf/design/test_peer_review.yml +89 -0
- data/conf/design/testing.yml +136 -0
- data/conf/design/threat_model.yml +108 -0
- data/conf/design/ui_framework.yml +111 -0
- data/conf/design/usage_optimization.yml +122 -0
- data/conf/design/version_management.yml +60 -0
- data/conf/design/workflow.yml +227 -0
- data/conf/mcp/server_defaults.yml +42 -0
- data/conf/mcp/trust.yml +21 -0
- data/conf/packaging/core.yml +12 -0
- data/conf/packaging/gtk4.yml +11 -0
- data/conf/packaging/qt6.yml +11 -0
- data/conf/policy/default_deny_list.yml +197 -0
- data/conf/review/cli-command-audit.yml +857 -0
- data/conf/review/design-docs.yml +1064 -0
- data/conf/review/design-questionnaire.yml +153 -0
- data/conf/review/questionnaire.yml +146 -0
- data/conf/review/rosett-ai-core.yml +2919 -0
- data/conf/schemas/ai_config_schema.json +73 -0
- data/conf/schemas/behaviour_schema.json +132 -0
- data/conf/schemas/compliance_rule_schema.json +63 -0
- data/conf/schemas/content_pack_manifest_schema.json +51 -0
- data/conf/schemas/design_schema.json +210 -0
- data/conf/schemas/engine_manifest_schema.json +144 -0
- data/conf/schemas/lockfile_schema.json +74 -0
- data/conf/schemas/mcp_server_schema.json +48 -0
- data/conf/schemas/packaging_schema.json +70 -0
- data/conf/schemas/policy_schema.json +85 -0
- data/conf/schemas/provenance_schema.json +84 -0
- data/conf/schemas/rai_config_schema.json +56 -0
- data/conf/schemas/rai_project_schema.json +20 -0
- data/conf/schemas/scope_hierarchy_schema.json +49 -0
- data/conf/schemas/target_schema.json +67 -0
- data/conf/schemas/tooling_schema.json +65 -0
- data/conf/schemas/workflow_schema.json +112 -0
- data/conf/targets/agents_md.yml +17 -0
- data/conf/targets/claude.yml +12 -0
- data/conf/tooling/tools.yml +58 -0
- data/dist/rosett-ai-mcp.service +48 -0
- data/dist/rosett-ai-mcp.yml.default +45 -0
- data/doc/AAIF_POSITIONING.md +58 -0
- data/doc/ADOPT.md +224 -0
- data/doc/AI_PROVENANCE.md +139 -0
- data/doc/ARCHITECTURE.md +920 -0
- data/doc/BEHAVIOUR.md +409 -0
- data/doc/BUILD.md +138 -0
- data/doc/CI_CD_RECIPES.md +171 -0
- data/doc/CLAUDE_SESSIONS_MOVED.md +16 -0
- data/doc/COMMAND_ANALYSIS.md +229 -0
- data/doc/CONFIGURATION.md +281 -0
- data/doc/DESIGN_AUDIT.md +235 -0
- data/doc/DESIGN_PEER_REVIEW.md +771 -0
- data/doc/DESKTOP.md +447 -0
- data/doc/ENGINES.md +567 -0
- data/doc/ENGINE_DEVELOPMENT_GUIDE.md +417 -0
- data/doc/FEATURE_AUDIT.md +218 -0
- data/doc/IMPLEMENTATION_PLAN.md +669 -0
- data/doc/INCIDENT_REPORT_2026-02-02.md +251 -0
- data/doc/MIGRATION_GUIDE.md +88 -0
- data/doc/PACKAGING.md +232 -0
- data/doc/PROJECT_DASHBOARD.md +153 -0
- data/doc/PULP_DEPLOYMENT.md +164 -0
- data/doc/QUALITY_FIX_SUMMARY.md +110 -0
- data/doc/QUICK_START.md +162 -0
- data/doc/REEK_CONFIGURATION.md +166 -0
- data/doc/REFERENCE.md +253 -0
- data/doc/REFERENCES.md +324 -0
- data/doc/SECURITY_REVIEW_CHECKLIST.md +72 -0
- data/doc/SESSION_2026-02-28_GTK4_HARDENING.md +359 -0
- data/doc/SETUP.md +202 -0
- data/doc/TEST_PEER_REVIEW.md +152 -0
- data/doc/THREAT_MODEL.md +230 -0
- data/doc/USAGE.md +545 -0
- data/doc/USER_MANUAL.md +585 -0
- data/doc/ai_test_review_checklist.md +110 -0
- data/doc/changes/2026-02-18-packaging-fpm.md +155 -0
- data/doc/changes/2026-02-19-testing-infrastructure.md +221 -0
- data/doc/changes/2026-02-20-security-implementation.md +281 -0
- data/doc/changes/2026-02-20-styles-implementation.md +220 -0
- data/doc/changes/2026-02-21-architecture-completion.md +95 -0
- data/doc/changes/2026-02-21-architecture-ui-layer.md +253 -0
- data/doc/changes/2026-02-21-cc-config-implementation.md +108 -0
- data/doc/changes/2026-02-21-ci-pipeline-implementation.md +214 -0
- data/doc/changes/2026-02-21-compiler-multi-target-pipeline.md +241 -0
- data/doc/changes/2026-02-21-config-design-show-commands.md +61 -0
- data/doc/changes/2026-02-21-design-implementation-overview.md +455 -0
- data/doc/changes/2026-02-21-lifecycle-management.md +196 -0
- data/doc/changes/2026-02-21-path-resolver.md +128 -0
- data/doc/changes/2026-02-24-ci-tmpdir-mutant-fetch.md +45 -0
- data/doc/changes/2026-03-01-ci-bundler-strategy.md +120 -0
- data/doc/changes/2026-03-20-security-hardening-phase2.md +163 -0
- data/doc/context/SESSION-HANDOFF.md +69 -0
- data/doc/context/ai-engine-usage-trends-2026.md +80 -0
- data/doc/context/plan-pluggable-engines.md +590 -0
- data/doc/decisions/001-flog-deferred.md +32 -0
- data/doc/decisions/002-path-resolution-strategy.md +158 -0
- data/doc/decisions/003-ui-adapter-selection.md +193 -0
- data/doc/decisions/004-design-document-validation.md +179 -0
- data/doc/decisions/005-package-splitting-strategy.md +200 -0
- data/doc/decisions/006-multi-engine-architecture.md +147 -0
- data/doc/decisions/007-engine-agnostic-pivot.md +219 -0
- data/doc/decisions/008-ci-bundler-strategy.md +129 -0
- data/doc/decisions/009-core-only-v1-release.md +60 -0
- data/doc/decisions/010-engine-debian-packaging.md +66 -0
- data/doc/decisions/011-context-aware-cli.md +71 -0
- data/doc/dependency_decisions.yml +247 -0
- data/doc/issues/001-wrapper-missing-environment-variables.md +197 -0
- data/doc/issues/002-embedded-ruby-wrong-prefix.md +217 -0
- data/doc/issues/003-smoke-test-false-positive.md +127 -0
- data/doc/issues/004-market-research-design-updates.md +109 -0
- data/doc/issues/005-compile-scope-coexistence.md +161 -0
- data/doc/locales/.gitkeep +0 -0
- data/doc/man/rai.1.ronn +505 -0
- data/doc/operations/packaging.md +133 -0
- data/doc/operations/rosett-ai-release.md +65 -0
- data/doc/reference/error-catalog.md +107 -0
- 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 +4 -0
- data/doc/reference/src/bibliography.bib +79 -0
- data/doc/reference/src/main.tex +1288 -0
- data/doc/reference/src/structure.tex +303 -0
- data/doc/rosett-ai-bookmarks.html +301 -0
- data/kitchen.yml +46 -0
- data/lib/rosett_ai/adopter/executor_resolver.rb +77 -0
- data/lib/rosett_ai/adopter/local_analysis_collector.rb +154 -0
- data/lib/rosett_ai/adopter/rule_adopter.rb +254 -0
- data/lib/rosett_ai/ai_config/config_compiler.rb +111 -0
- data/lib/rosett_ai/ai_config/context_window.rb +55 -0
- data/lib/rosett_ai/ai_config/cost_controls.rb +44 -0
- data/lib/rosett_ai/ai_config/fallback_chain.rb +64 -0
- data/lib/rosett_ai/ai_config/model_router.rb +121 -0
- data/lib/rosett_ai/ai_config/validator.rb +45 -0
- data/lib/rosett_ai/authorship/attribution_compiler.rb +99 -0
- data/lib/rosett_ai/authorship/disclosure_policy.rb +81 -0
- data/lib/rosett_ai/authorship/review_validator.rb +39 -0
- data/lib/rosett_ai/authorship/trailer_generator.rb +88 -0
- data/lib/rosett_ai/backup/compressor.rb +180 -0
- data/lib/rosett_ai/backup/destination.rb +91 -0
- data/lib/rosett_ai/behaviour/manager.rb +156 -0
- data/lib/rosett_ai/compiler/backend.rb +86 -0
- data/lib/rosett_ai/compiler/backends/agents_md_backend.rb +80 -0
- data/lib/rosett_ai/compiler/backends/claude_backend.rb +88 -0
- data/lib/rosett_ai/compiler/backends/generic_backend.rb +15 -0
- data/lib/rosett_ai/compiler/behaviour_compiler.rb +40 -0
- data/lib/rosett_ai/compiler/capability_checker.rb +104 -0
- data/lib/rosett_ai/compiler/compilation_pipeline.rb +361 -0
- data/lib/rosett_ai/compiler/compiled_output.rb +39 -0
- data/lib/rosett_ai/compiler/locale_compiler.rb +250 -0
- data/lib/rosett_ai/compiler/target_profile.rb +112 -0
- data/lib/rosett_ai/completion/generator.rb +101 -0
- data/lib/rosett_ai/completion/shells/bash_generator.rb +126 -0
- data/lib/rosett_ai/completion/shells/fish_generator.rb +78 -0
- data/lib/rosett_ai/completion/shells/zsh_generator.rb +126 -0
- data/lib/rosett_ai/comply/checkers/cra_checker.rb +102 -0
- data/lib/rosett_ai/comply/checkers/license_checker.rb +85 -0
- data/lib/rosett_ai/comply/checkers/spdx_header_checker.rb +98 -0
- data/lib/rosett_ai/comply/reporter.rb +113 -0
- data/lib/rosett_ai/comply/runner.rb +50 -0
- data/lib/rosett_ai/composition/circular_dependency_detector.rb +56 -0
- data/lib/rosett_ai/composition/composer.rb +158 -0
- data/lib/rosett_ai/composition/composition_result.rb +64 -0
- data/lib/rosett_ai/composition/conflict_detector.rb +53 -0
- data/lib/rosett_ai/composition/lockfile.rb +103 -0
- data/lib/rosett_ai/composition/merge_strategy.rb +131 -0
- data/lib/rosett_ai/composition/priority_sorter.rb +29 -0
- data/lib/rosett_ai/composition/scope_resolver.rb +55 -0
- data/lib/rosett_ai/config/compile_result.rb +37 -0
- data/lib/rosett_ai/config/compiler.rb +13 -0
- data/lib/rosett_ai/config/domain_transformer.rb +13 -0
- data/lib/rosett_ai/config/key_map.rb +13 -0
- data/lib/rosett_ai/config/masking_secret_resolver.rb +40 -0
- data/lib/rosett_ai/config/scope_router.rb +13 -0
- data/lib/rosett_ai/config/secret_resolver.rb +125 -0
- data/lib/rosett_ai/configuration.rb +119 -0
- data/lib/rosett_ai/content/content_client.rb +60 -0
- data/lib/rosett_ai/content/pack_installer.rb +117 -0
- data/lib/rosett_ai/content/pack_manifest.rb +50 -0
- data/lib/rosett_ai/content/pack_registry.rb +68 -0
- data/lib/rosett_ai/content_packs/manager.rb +50 -0
- data/lib/rosett_ai/dbus/compositor_detector.rb +77 -0
- data/lib/rosett_ai/dbus/focus_adapters/base.rb +59 -0
- data/lib/rosett_ai/dbus/focus_adapters/gnome_adapter.rb +172 -0
- data/lib/rosett_ai/dbus/focus_adapters/hyprland_adapter.rb +77 -0
- data/lib/rosett_ai/dbus/focus_adapters/i3_adapter.rb +65 -0
- data/lib/rosett_ai/dbus/focus_adapters/kwin_adapter.rb +103 -0
- data/lib/rosett_ai/dbus/focus_adapters/x11_adapter.rb +105 -0
- data/lib/rosett_ai/dbus/focus_monitor_interface.rb +103 -0
- data/lib/rosett_ai/dbus/manager_interface.rb +213 -0
- data/lib/rosett_ai/dbus/plugin_manager_interface.rb +169 -0
- data/lib/rosett_ai/dbus/rate_limiter.rb +89 -0
- data/lib/rosett_ai/dbus/service.rb +121 -0
- data/lib/rosett_ai/dbus/status_notifier_interface.rb +79 -0
- data/lib/rosett_ai/deprecation.rb +79 -0
- data/lib/rosett_ai/desktop/dbus_client.rb +259 -0
- data/lib/rosett_ai/desktop/gtk4_app.rb +371 -0
- data/lib/rosett_ai/desktop/gtk4_preferences.rb +331 -0
- data/lib/rosett_ai/desktop/gui_logger.rb +236 -0
- data/lib/rosett_ai/doctor/check.rb +92 -0
- data/lib/rosett_ai/doctor/checks/cache_health_check.rb +50 -0
- data/lib/rosett_ai/doctor/checks/dbus_availability_check.rb +39 -0
- data/lib/rosett_ai/doctor/checks/engine_detection_check.rb +46 -0
- data/lib/rosett_ai/doctor/checks/file_permission_check.rb +44 -0
- data/lib/rosett_ai/doctor/checks/gem_dependency_check.rb +55 -0
- data/lib/rosett_ai/doctor/checks/ruby_version_check.rb +50 -0
- data/lib/rosett_ai/doctor/checks/stale_config_nncc_check.rb +57 -0
- data/lib/rosett_ai/doctor/checks/stale_home_nncc_check.rb +59 -0
- data/lib/rosett_ai/doctor.rb +81 -0
- data/lib/rosett_ai/documentation/reference_compiler.rb +122 -0
- data/lib/rosett_ai/documentation/translator.rb +62 -0
- data/lib/rosett_ai/engines/base_config_compiler.rb +203 -0
- data/lib/rosett_ai/engines/detector.rb +63 -0
- data/lib/rosett_ai/engines/registry.rb +50 -0
- data/lib/rosett_ai/error_handler.rb +139 -0
- data/lib/rosett_ai/exit_codes.rb +76 -0
- data/lib/rosett_ai/feature_flags.rb +102 -0
- data/lib/rosett_ai/formatting.rb +33 -0
- data/lib/rosett_ai/gem_consistency_checker.rb +199 -0
- data/lib/rosett_ai/git_hooks/chain_detector.rb +86 -0
- data/lib/rosett_ai/git_hooks/installer.rb +175 -0
- data/lib/rosett_ai/git_hooks/script_generator.rb +125 -0
- data/lib/rosett_ai/gitlab/validators/supplementary_gitlab_ci_yaml_validator.rb +79 -0
- data/lib/rosett_ai/i18n/locale_resolver.rb +46 -0
- data/lib/rosett_ai/i18n/utf8_checker.rb +32 -0
- data/lib/rosett_ai/init/config_file_writer.rb +24 -0
- data/lib/rosett_ai/init/directory_builder.rb +38 -0
- data/lib/rosett_ai/init/file_copier.rb +95 -0
- data/lib/rosett_ai/init/global_initializer.rb +28 -0
- data/lib/rosett_ai/init/local_initializer.rb +27 -0
- data/lib/rosett_ai/init/mcp_registrar.rb +109 -0
- data/lib/rosett_ai/init/project_initializer.rb +38 -0
- data/lib/rosett_ai/licensing/license_key.rb +139 -0
- data/lib/rosett_ai/licensing/license_store.rb +64 -0
- data/lib/rosett_ai/licensing/license_validator.rb +60 -0
- data/lib/rosett_ai/licensing/tier.rb +42 -0
- data/lib/rosett_ai/mcp/admin/auditor.rb +88 -0
- data/lib/rosett_ai/mcp/admin/health_checker.rb +81 -0
- data/lib/rosett_ai/mcp/admin/registry.rb +100 -0
- data/lib/rosett_ai/mcp/admin/schema_validator.rb +63 -0
- data/lib/rosett_ai/mcp/enforcement/.gitkeep +0 -0
- data/lib/rosett_ai/mcp/enforcement/hook_generator.rb +197 -0
- data/lib/rosett_ai/mcp/enforcement/validator.rb +215 -0
- data/lib/rosett_ai/mcp/governance.rb +160 -0
- data/lib/rosett_ai/mcp/http_security_config.rb +158 -0
- data/lib/rosett_ai/mcp/instructions.rb +266 -0
- data/lib/rosett_ai/mcp/key_hasher.rb +66 -0
- data/lib/rosett_ai/mcp/keyfile.rb +221 -0
- data/lib/rosett_ai/mcp/middleware/authentication.rb +146 -0
- data/lib/rosett_ai/mcp/middleware/content_type.rb +56 -0
- data/lib/rosett_ai/mcp/middleware/cors.rb +83 -0
- data/lib/rosett_ai/mcp/middleware/origin_validation.rb +73 -0
- data/lib/rosett_ai/mcp/middleware/rate_limit.rb +106 -0
- data/lib/rosett_ai/mcp/middleware/request_size.rb +51 -0
- data/lib/rosett_ai/mcp/plugins.rb +143 -0
- data/lib/rosett_ai/mcp/prompts/compilation_prompt.rb +40 -0
- data/lib/rosett_ai/mcp/prompts/compliance_prompt.rb +41 -0
- data/lib/rosett_ai/mcp/prompts/diagnostics_prompt.rb +41 -0
- data/lib/rosett_ai/mcp/prompts/validation_prompt.rb +41 -0
- data/lib/rosett_ai/mcp/resources/behaviour_resource.rb +127 -0
- data/lib/rosett_ai/mcp/resources/config_resource.rb +72 -0
- data/lib/rosett_ai/mcp/resources/design_resource.rb +58 -0
- data/lib/rosett_ai/mcp/resources/hooks_resource.rb +74 -0
- data/lib/rosett_ai/mcp/resources/provenance_resource.rb +51 -0
- data/lib/rosett_ai/mcp/resources/rules_resource.rb +60 -0
- data/lib/rosett_ai/mcp/resources/schema_resource.rb +72 -0
- data/lib/rosett_ai/mcp/response_helper.rb +46 -0
- data/lib/rosett_ai/mcp/security_logger.rb +60 -0
- data/lib/rosett_ai/mcp/server.rb +212 -0
- data/lib/rosett_ai/mcp/settings/server_installer.rb +112 -0
- data/lib/rosett_ai/mcp/settings/trust_manager.rb +142 -0
- data/lib/rosett_ai/mcp/tools/adopt_tool.rb +70 -0
- data/lib/rosett_ai/mcp/tools/backup_tool.rb +64 -0
- data/lib/rosett_ai/mcp/tools/behaviour_display_tool.rb +72 -0
- data/lib/rosett_ai/mcp/tools/behaviour_list_tool.rb +56 -0
- data/lib/rosett_ai/mcp/tools/behaviour_manage_tool.rb +114 -0
- data/lib/rosett_ai/mcp/tools/behaviour_show_tool.rb +62 -0
- data/lib/rosett_ai/mcp/tools/compile_status_tool.rb +122 -0
- data/lib/rosett_ai/mcp/tools/compile_tool.rb +191 -0
- data/lib/rosett_ai/mcp/tools/comply_tool.rb +79 -0
- data/lib/rosett_ai/mcp/tools/config_compile_tool.rb +71 -0
- data/lib/rosett_ai/mcp/tools/config_status_tool.rb +79 -0
- data/lib/rosett_ai/mcp/tools/content_tool.rb +78 -0
- data/lib/rosett_ai/mcp/tools/context_query_tool.rb +156 -0
- data/lib/rosett_ai/mcp/tools/design_list_tool.rb +57 -0
- data/lib/rosett_ai/mcp/tools/design_show_tool.rb +69 -0
- data/lib/rosett_ai/mcp/tools/doctor_tool.rb +62 -0
- data/lib/rosett_ai/mcp/tools/documentation_status_tool.rb +45 -0
- data/lib/rosett_ai/mcp/tools/engines_tool.rb +84 -0
- data/lib/rosett_ai/mcp/tools/hook_install_tool.rb +190 -0
- data/lib/rosett_ai/mcp/tools/hook_preview_tool.rb +173 -0
- data/lib/rosett_ai/mcp/tools/hooks_status_tool.rb +84 -0
- data/lib/rosett_ai/mcp/tools/init_tool.rb +87 -0
- data/lib/rosett_ai/mcp/tools/license_status_tool.rb +44 -0
- data/lib/rosett_ai/mcp/tools/project_tool.rb +117 -0
- data/lib/rosett_ai/mcp/tools/provenance_tool.rb +97 -0
- data/lib/rosett_ai/mcp/tools/provenance_write_tool.rb +40 -0
- data/lib/rosett_ai/mcp/tools/retrofit_tool.rb +81 -0
- data/lib/rosett_ai/mcp/tools/rule_search_tool.rb +163 -0
- data/lib/rosett_ai/mcp/tools/schema_get_tool.rb +94 -0
- data/lib/rosett_ai/mcp/tools/tooling_tool.rb +86 -0
- data/lib/rosett_ai/mcp/tools/validate_tool.rb +105 -0
- data/lib/rosett_ai/mcp/tools/workflow_execute_tool.rb +74 -0
- data/lib/rosett_ai/mcp/tools/workflow_tool.rb +78 -0
- data/lib/rosett_ai/migration/detector.rb +117 -0
- data/lib/rosett_ai/migration/nncc_config_migrator.rb +94 -0
- data/lib/rosett_ai/migration/nncc_project_migrator.rb +90 -0
- data/lib/rosett_ai/migration/xdg_migrator.rb +123 -0
- data/lib/rosett_ai/package_manager/apt.rb +108 -0
- data/lib/rosett_ai/package_manager/base.rb +68 -0
- data/lib/rosett_ai/package_manager/gem_backend.rb +90 -0
- data/lib/rosett_ai/packaging/variant_config.rb +92 -0
- data/lib/rosett_ai/path_resolver.rb +115 -0
- data/lib/rosett_ai/plugins/contract.rb +43 -0
- data/lib/rosett_ai/plugins/engine_contract.rb +60 -0
- data/lib/rosett_ai/plugins/gui_contract.rb +74 -0
- data/lib/rosett_ai/plugins/mcp_contract.rb +48 -0
- data/lib/rosett_ai/plugins/registry.rb +150 -0
- data/lib/rosett_ai/policy/auditor.rb +41 -0
- data/lib/rosett_ai/policy/deny_list.rb +71 -0
- data/lib/rosett_ai/policy/opt_out_scanner.rb +37 -0
- data/lib/rosett_ai/policy/policy_compiler.rb +84 -0
- data/lib/rosett_ai/policy/protected_files.rb +47 -0
- data/lib/rosett_ai/policy/tier_hierarchy.rb +48 -0
- data/lib/rosett_ai/policy/validator.rb +35 -0
- data/lib/rosett_ai/profiler.rb +79 -0
- data/lib/rosett_ai/project/drift_detector.rb +126 -0
- data/lib/rosett_ai/project/manager.rb +115 -0
- data/lib/rosett_ai/project/sync_manager.rb +138 -0
- data/lib/rosett_ai/project/template_applier.rb +105 -0
- data/lib/rosett_ai/project_context.rb +82 -0
- data/lib/rosett_ai/provenance/entry.rb +63 -0
- data/lib/rosett_ai/provenance/file_source.rb +32 -0
- data/lib/rosett_ai/provenance/source.rb +62 -0
- data/lib/rosett_ai/provenance/store.rb +153 -0
- data/lib/rosett_ai/provenance/tracker.rb +62 -0
- data/lib/rosett_ai/provenance/trailer_generator.rb +43 -0
- data/lib/rosett_ai/provenance/validator.rb +45 -0
- data/lib/rosett_ai/quorum/collector.rb +59 -0
- data/lib/rosett_ai/quorum/comparator.rb +81 -0
- data/lib/rosett_ai/quorum/dispatcher.rb +57 -0
- data/lib/rosett_ai/quorum/strategies/adopt.rb +56 -0
- data/lib/rosett_ai/rai_config.rb +107 -0
- data/lib/rosett_ai/retrofit/base_parser.rb +66 -0
- data/lib/rosett_ai/retrofit/engine.rb +171 -0
- data/lib/rosett_ai/retrofit/parsers/agents_md_parser.rb +50 -0
- data/lib/rosett_ai/retrofit/parsers/claude_parser.rb +69 -0
- data/lib/rosett_ai/retrofit/parsers/cursor_parser.rb +82 -0
- data/lib/rosett_ai/retrofit/round_trip_validator.rb +65 -0
- data/lib/rosett_ai/retrofit/scanner.rb +47 -0
- data/lib/rosett_ai/retrofit/secret_detector.rb +87 -0
- data/lib/rosett_ai/secrets_resolver.rb +71 -0
- data/lib/rosett_ai/smart_feedback/suggester.rb +83 -0
- data/lib/rosett_ai/smart_feedback/thor_middleware.rb +84 -0
- data/lib/rosett_ai/structured_logger.rb +110 -0
- data/lib/rosett_ai/telemetry/json_lines_writer.rb +50 -0
- data/lib/rosett_ai/telemetry/log_rotator.rb +67 -0
- data/lib/rosett_ai/telemetry/provider.rb +26 -0
- data/lib/rosett_ai/telemetry/reporter.rb +144 -0
- data/lib/rosett_ai/telemetry.rb +47 -0
- data/lib/rosett_ai/text_sanitizer.rb +62 -0
- data/lib/rosett_ai/thor/cli.rb +269 -0
- data/lib/rosett_ai/thor/tasks/adopt.rb +250 -0
- data/lib/rosett_ai/thor/tasks/backup.rb +420 -0
- data/lib/rosett_ai/thor/tasks/behaviour.rb +474 -0
- data/lib/rosett_ai/thor/tasks/build.rb +1162 -0
- data/lib/rosett_ai/thor/tasks/compile.rb +415 -0
- data/lib/rosett_ai/thor/tasks/completion.rb +123 -0
- data/lib/rosett_ai/thor/tasks/comply.rb +82 -0
- data/lib/rosett_ai/thor/tasks/config.rb +265 -0
- data/lib/rosett_ai/thor/tasks/content.rb +193 -0
- data/lib/rosett_ai/thor/tasks/dbus.rb +321 -0
- data/lib/rosett_ai/thor/tasks/design.rb +258 -0
- data/lib/rosett_ai/thor/tasks/desktop.rb +129 -0
- data/lib/rosett_ai/thor/tasks/doctor.rb +127 -0
- data/lib/rosett_ai/thor/tasks/documentation.rb +321 -0
- data/lib/rosett_ai/thor/tasks/engines.rb +167 -0
- data/lib/rosett_ai/thor/tasks/hooks.rb +219 -0
- data/lib/rosett_ai/thor/tasks/init.rb +259 -0
- data/lib/rosett_ai/thor/tasks/license.rb +120 -0
- data/lib/rosett_ai/thor/tasks/mcp.rb +535 -0
- data/lib/rosett_ai/thor/tasks/migrate.rb +121 -0
- data/lib/rosett_ai/thor/tasks/plugins.rb +157 -0
- data/lib/rosett_ai/thor/tasks/project.rb +260 -0
- data/lib/rosett_ai/thor/tasks/provenance.rb +195 -0
- data/lib/rosett_ai/thor/tasks/release.rb +314 -0
- data/lib/rosett_ai/thor/tasks/retrofit.rb +90 -0
- data/lib/rosett_ai/thor/tasks/tooling.rb +308 -0
- data/lib/rosett_ai/thor/tasks/validate.rb +108 -0
- data/lib/rosett_ai/thor/tasks/workflow.rb +196 -0
- data/lib/rosett_ai/tooling/ci_yaml_validator.rb +37 -0
- data/lib/rosett_ai/tooling/version_checker.rb +35 -0
- data/lib/rosett_ai/ui/accessible_tui.rb +61 -0
- data/lib/rosett_ai/ui/base.rb +46 -0
- data/lib/rosett_ai/ui/gtk4.rb +98 -0
- data/lib/rosett_ai/ui/kde.rb +40 -0
- data/lib/rosett_ai/ui/qt6.rb +40 -0
- data/lib/rosett_ai/ui/registry.rb +60 -0
- data/lib/rosett_ai/ui/tty_helper.rb +74 -0
- data/lib/rosett_ai/ui/tui.rb +59 -0
- data/lib/rosett_ai/validators/behaviour_validator.rb +20 -0
- data/lib/rosett_ai/validators/design_validator.rb +17 -0
- data/lib/rosett_ai/validators/schema_validator.rb +84 -0
- data/lib/rosett_ai/validators/tooling_validator.rb +17 -0
- data/lib/rosett_ai/version.rb +8 -0
- data/lib/rosett_ai/version_consistency_checker.rb +129 -0
- data/lib/rosett_ai/workflow/audit_log.rb +86 -0
- data/lib/rosett_ai/workflow/engine.rb +142 -0
- data/lib/rosett_ai/workflow/manager.rb +82 -0
- data/lib/rosett_ai/workflow/schema_validator.rb +71 -0
- data/lib/rosett_ai/workflow/step_runner.rb +61 -0
- data/lib/rosett_ai/workflow/steps/prompt_step.rb +62 -0
- data/lib/rosett_ai/workflow/steps/rai_step.rb +74 -0
- data/lib/rosett_ai/workflow/steps/shell_step.rb +53 -0
- data/lib/rosett_ai/yaml_loader.rb +78 -0
- data/lib/rosett_ai.rb +221 -0
- data/lib/rubocop/cop/rosett_ai/shell_interpolation.rb +54 -0
- data/lib/rubocop/cop/rosett_ai/unsafe_const_get.rb +60 -0
- data/lib/rubocop/cop/rosett_ai/unsafe_send.rb +50 -0
- data/lib/rubocop/cop/rosett_ai/unsafe_yaml_load.rb +40 -0
- data/lib/rubocop/rosett_ai.rb +9 -0
- data/lib/scripts/generated/docker_hub_tags.rb +126 -0
- data/locales/.gitkeep +0 -0
- data/locales/ar.yml +579 -0
- data/locales/en.yml +571 -0
- data/locales/fr.yml +567 -0
- data/packaging/build-engine-deb.sh +81 -0
- data/packaging/scripts/postinst +17 -0
- data/packaging/scripts/postrm +19 -0
- data/packaging/scripts/prerm +10 -0
- data/packaging/wrapper.sh.template +38 -0
- data/rosett-ai.gemspec +63 -0
- data/rules/.gitkeep +0 -0
- data/scripts/publish/pulp_upload.sh +123 -0
- data/settings.json +29 -0
- data/share/applications/be.neatnerds.rosettai.desktop +29 -0
- data/share/dbus-1/interfaces/be.neatnerds.rosettai.xml +103 -0
- data/share/dbus-1/services/be.neatnerds.rosettai.service +3 -0
- data/share/templates/behaviour/criticalthinking.yml +69 -0
- metadata +810 -0
|
@@ -0,0 +1,1064 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Design Document Peer Review Registry — Rosett-AI core
|
|
3
|
+
# Generated: 2026-03-15
|
|
4
|
+
# Updated: 2026-03-16 (gap-fill design document review)
|
|
5
|
+
# Questionnaire: conf/review/design-questionnaire.yml
|
|
6
|
+
#
|
|
7
|
+
# Status values: pending | in_review | needs_fix | signed_off
|
|
8
|
+
# This file is updated during the review process.
|
|
9
|
+
#
|
|
10
|
+
# Scope: All design documents including gap-fill additions
|
|
11
|
+
# 25 original + 3 new gap-fill + 9 updated gap-fill = 37 reviewed
|
|
12
|
+
|
|
13
|
+
repository: rosett-ai
|
|
14
|
+
scope: design_documents
|
|
15
|
+
total_files: 37
|
|
16
|
+
reviewed: 37
|
|
17
|
+
signed_off: 37
|
|
18
|
+
|
|
19
|
+
files:
|
|
20
|
+
# ── Batch 0: New documents (created in Phase 1) ─────────────────
|
|
21
|
+
conf/design/error_handling.yml:
|
|
22
|
+
status: signed_off
|
|
23
|
+
reviewer: hugo
|
|
24
|
+
review_date: "2026-03-15"
|
|
25
|
+
sign_off_date: "2026-03-15"
|
|
26
|
+
verdict: approved
|
|
27
|
+
intent: "Establish structured error hierarchy, exit codes, and localised error messages for Rosett-AI"
|
|
28
|
+
answers:
|
|
29
|
+
Q1: pass
|
|
30
|
+
Q2: pass
|
|
31
|
+
Q3: pass
|
|
32
|
+
Q4: pass
|
|
33
|
+
Q5: pass
|
|
34
|
+
Q6: pass
|
|
35
|
+
Q7: pass
|
|
36
|
+
Q8: pass
|
|
37
|
+
Q9: pass
|
|
38
|
+
Q10: pass
|
|
39
|
+
findings: []
|
|
40
|
+
|
|
41
|
+
conf/design/threat_model.yml:
|
|
42
|
+
status: signed_off
|
|
43
|
+
reviewer: hugo
|
|
44
|
+
review_date: "2026-03-15"
|
|
45
|
+
sign_off_date: "2026-03-15"
|
|
46
|
+
verdict: approved
|
|
47
|
+
intent: "Define adversary model, trust boundaries, and threat scenarios for Rosett-AI"
|
|
48
|
+
answers:
|
|
49
|
+
Q1: pass
|
|
50
|
+
Q2: pass
|
|
51
|
+
Q3: pass
|
|
52
|
+
Q4: pass
|
|
53
|
+
Q5: pass
|
|
54
|
+
Q6: pass
|
|
55
|
+
Q7: pass
|
|
56
|
+
Q8: pass
|
|
57
|
+
Q9: pass
|
|
58
|
+
Q10: pass
|
|
59
|
+
findings: []
|
|
60
|
+
|
|
61
|
+
conf/design/backward_compatibility.yml:
|
|
62
|
+
status: signed_off
|
|
63
|
+
reviewer: hugo
|
|
64
|
+
review_date: "2026-03-15"
|
|
65
|
+
sign_off_date: "2026-03-15"
|
|
66
|
+
verdict: approved
|
|
67
|
+
intent: "Define deprecation policy, migration paths, and SemVer enforcement for Rosett-AI"
|
|
68
|
+
answers:
|
|
69
|
+
Q1: pass
|
|
70
|
+
Q2: pass
|
|
71
|
+
Q3: pass
|
|
72
|
+
Q4: pass
|
|
73
|
+
Q5: pass
|
|
74
|
+
Q6: pass
|
|
75
|
+
Q7: pass
|
|
76
|
+
Q8: pass
|
|
77
|
+
Q9: pass
|
|
78
|
+
Q10: pass
|
|
79
|
+
findings: []
|
|
80
|
+
|
|
81
|
+
# ── Session-created: New design documents ───────────────────────
|
|
82
|
+
conf/design/retrofit.yml:
|
|
83
|
+
status: signed_off
|
|
84
|
+
reviewer: hugo
|
|
85
|
+
review_date: "2026-03-16"
|
|
86
|
+
sign_off_date: "2026-03-16"
|
|
87
|
+
verdict: approved_with_notes
|
|
88
|
+
intent: "Provide reverse-compilation command to import native configs into Rosett-AI YAML"
|
|
89
|
+
answers:
|
|
90
|
+
Q1: pass
|
|
91
|
+
Q2: pass
|
|
92
|
+
Q3: pass
|
|
93
|
+
Q4: pass
|
|
94
|
+
Q5: pass
|
|
95
|
+
Q6: pass
|
|
96
|
+
Q7: pass
|
|
97
|
+
Q8: pass
|
|
98
|
+
Q9: pass
|
|
99
|
+
Q10: pass
|
|
100
|
+
findings:
|
|
101
|
+
- severity: minor
|
|
102
|
+
question: Q1
|
|
103
|
+
description: "Intent used >- scalar, missing lifecycle relationship"
|
|
104
|
+
resolution: "Switched to | scalar, added init/compile lifecycle paragraph"
|
|
105
|
+
- severity: minor
|
|
106
|
+
question: Q4
|
|
107
|
+
description: "Missing error_handling dep"
|
|
108
|
+
resolution: "Added error_handling to depends_on"
|
|
109
|
+
- severity: minor
|
|
110
|
+
question: Q5
|
|
111
|
+
description: "Missing scope boundary constraint"
|
|
112
|
+
resolution: "Added constraint: retrofit vs compile vs project_management"
|
|
113
|
+
- severity: minor
|
|
114
|
+
question: Q10
|
|
115
|
+
description: "Missing cross-references and quoted patterns"
|
|
116
|
+
resolution: "Added gui_notes with 7 cross-references, quoted patterns, expanded testing"
|
|
117
|
+
|
|
118
|
+
conf/design/git_hooks.yml:
|
|
119
|
+
status: signed_off
|
|
120
|
+
reviewer: hugo
|
|
121
|
+
review_date: "2026-03-16"
|
|
122
|
+
sign_off_date: "2026-03-16"
|
|
123
|
+
verdict: approved_with_notes
|
|
124
|
+
intent: "Provide configurable git hook integration for automated rai commands"
|
|
125
|
+
answers:
|
|
126
|
+
Q1: pass
|
|
127
|
+
Q2: pass
|
|
128
|
+
Q3: pass
|
|
129
|
+
Q4: pass
|
|
130
|
+
Q5: pass
|
|
131
|
+
Q6: pass
|
|
132
|
+
Q7: pass
|
|
133
|
+
Q8: pass
|
|
134
|
+
Q9: pass
|
|
135
|
+
Q10: pass
|
|
136
|
+
findings:
|
|
137
|
+
- severity: minor
|
|
138
|
+
question: Q3
|
|
139
|
+
description: "Missing TTY-aware output for hooks list/status"
|
|
140
|
+
resolution: "Added TTY-aware output to list and status criteria"
|
|
141
|
+
- severity: minor
|
|
142
|
+
question: Q4
|
|
143
|
+
description: "Missing workflow and monitoring_observability deps"
|
|
144
|
+
resolution: "Added both to depends_on"
|
|
145
|
+
- severity: minor
|
|
146
|
+
question: Q5
|
|
147
|
+
description: "Missing explicit scope boundary vs workflows"
|
|
148
|
+
resolution: "Added constraint: hooks automate git lifecycle; workflows orchestrate steps"
|
|
149
|
+
- severity: minor
|
|
150
|
+
question: Q10
|
|
151
|
+
description: "Missing cross-references, quoted patterns, testing detail"
|
|
152
|
+
resolution: "Added gui_notes with 6 cross-references, quoted patterns, expanded testing"
|
|
153
|
+
|
|
154
|
+
# ── Batch 1: Core P2 ────────────────────────────────────────────
|
|
155
|
+
conf/design/engine_architecture.yml:
|
|
156
|
+
status: signed_off
|
|
157
|
+
reviewer: hugo
|
|
158
|
+
review_date: "2026-03-16"
|
|
159
|
+
sign_off_date: "2026-03-16"
|
|
160
|
+
verdict: approved_with_notes
|
|
161
|
+
intent: "Establish pluggable engine architecture for multi-AI-tool configuration management"
|
|
162
|
+
answers:
|
|
163
|
+
Q1: pass
|
|
164
|
+
Q2: pass
|
|
165
|
+
Q3: pass
|
|
166
|
+
Q4: pass
|
|
167
|
+
Q5: pass
|
|
168
|
+
Q6: pass
|
|
169
|
+
Q7: pass
|
|
170
|
+
Q8: pass
|
|
171
|
+
Q9: pass
|
|
172
|
+
Q10: pass
|
|
173
|
+
findings:
|
|
174
|
+
- severity: minor
|
|
175
|
+
question: Q4
|
|
176
|
+
description: "Missing error_handling dep"
|
|
177
|
+
resolution: "Added error_handling to depends_on"
|
|
178
|
+
- severity: minor
|
|
179
|
+
question: Q9
|
|
180
|
+
description: "Unquoted patterns, missing asset contract in manifest"
|
|
181
|
+
resolution: "Quoted patterns, added supported_assets to manifest example"
|
|
182
|
+
|
|
183
|
+
conf/design/ai_tool_configuration.yml:
|
|
184
|
+
status: signed_off
|
|
185
|
+
reviewer: hugo
|
|
186
|
+
review_date: "2026-03-15"
|
|
187
|
+
sign_off_date: "2026-03-15"
|
|
188
|
+
verdict: approved_with_notes
|
|
189
|
+
intent: "Establish engine-agnostic AI tool configuration layer for model routing, cost controls, and operational parameters"
|
|
190
|
+
answers:
|
|
191
|
+
Q1: pass
|
|
192
|
+
Q2: pass
|
|
193
|
+
Q3: pass
|
|
194
|
+
Q4: pass
|
|
195
|
+
Q5: pass
|
|
196
|
+
Q6: pass
|
|
197
|
+
Q7: pass
|
|
198
|
+
Q8: pass
|
|
199
|
+
Q9: pass
|
|
200
|
+
Q10: concern
|
|
201
|
+
findings:
|
|
202
|
+
- severity: minor
|
|
203
|
+
question: Q1
|
|
204
|
+
description: "Intent listed Key capabilities inline (feature list, not mission statement)"
|
|
205
|
+
resolution: "Rewrote intent to focus on purpose; added relationship clarification to claude_code_configuration"
|
|
206
|
+
- severity: minor
|
|
207
|
+
question: Q4
|
|
208
|
+
description: "Relationship between ai_tool_configuration and claude_code_configuration was unclear (audit issue #2)"
|
|
209
|
+
resolution: "Added explicit relationship paragraph to intent documenting migration path"
|
|
210
|
+
- severity: minor
|
|
211
|
+
question: Q10
|
|
212
|
+
description: "Missing interactions section"
|
|
213
|
+
resolution: "Noted as future enhancement; does not block sign-off"
|
|
214
|
+
|
|
215
|
+
conf/design/mcp_integration.yml:
|
|
216
|
+
status: signed_off
|
|
217
|
+
reviewer: hugo
|
|
218
|
+
review_date: "2026-03-16"
|
|
219
|
+
sign_off_date: "2026-03-16"
|
|
220
|
+
verdict: approved_with_notes
|
|
221
|
+
intent: "Enable rosett-ai to participate in MCP ecosystem as server and administrator"
|
|
222
|
+
answers:
|
|
223
|
+
Q1: pass
|
|
224
|
+
Q2: pass
|
|
225
|
+
Q3: pass
|
|
226
|
+
Q4: pass
|
|
227
|
+
Q5: pass
|
|
228
|
+
Q6: pass
|
|
229
|
+
Q7: pass
|
|
230
|
+
Q8: pass
|
|
231
|
+
Q9: pass
|
|
232
|
+
Q10: pass
|
|
233
|
+
findings:
|
|
234
|
+
- severity: minor
|
|
235
|
+
question: Q1
|
|
236
|
+
description: "Missing scope boundary with mcp_settings and aaif_alignment"
|
|
237
|
+
resolution: "Added paragraph clarifying protocol participation vs trust management vs ecosystem positioning"
|
|
238
|
+
- severity: minor
|
|
239
|
+
question: Q3
|
|
240
|
+
description: "Missing exit codes and TTY-aware output"
|
|
241
|
+
resolution: "Added exit code 0/1/2 and TTY-aware output criteria"
|
|
242
|
+
- severity: minor
|
|
243
|
+
question: Q4
|
|
244
|
+
description: "Missing error_handling dep"
|
|
245
|
+
resolution: "Added error_handling to depends_on"
|
|
246
|
+
- severity: minor
|
|
247
|
+
question: Q5
|
|
248
|
+
description: "Missing scope boundary constraint"
|
|
249
|
+
resolution: "Added constraint: mcp_integration governs protocol; mcp_settings governs trust"
|
|
250
|
+
- severity: minor
|
|
251
|
+
question: Q9
|
|
252
|
+
description: "Unquoted patterns, missing module structure"
|
|
253
|
+
resolution: "Quoted patterns, added MCP module structure in gui_notes"
|
|
254
|
+
- severity: minor
|
|
255
|
+
question: Q10
|
|
256
|
+
description: "Missing cross-references, expanded testing detail"
|
|
257
|
+
resolution: "Added gui_notes with 7 cross-references, MCP module structure, expanded testing"
|
|
258
|
+
|
|
259
|
+
conf/design/aaif_alignment.yml:
|
|
260
|
+
status: signed_off
|
|
261
|
+
reviewer: hugo
|
|
262
|
+
review_date: "2026-03-16"
|
|
263
|
+
sign_off_date: "2026-03-16"
|
|
264
|
+
verdict: approved_with_notes
|
|
265
|
+
intent: "Position rosett-ai as standards-compliant tool within AAIF ecosystem"
|
|
266
|
+
answers:
|
|
267
|
+
Q1: pass
|
|
268
|
+
Q2: pass
|
|
269
|
+
Q3: pass
|
|
270
|
+
Q4: pass
|
|
271
|
+
Q5: pass
|
|
272
|
+
Q6: pass
|
|
273
|
+
Q7: pass
|
|
274
|
+
Q8: pass
|
|
275
|
+
Q9: pass
|
|
276
|
+
Q10: pass
|
|
277
|
+
findings:
|
|
278
|
+
- severity: minor
|
|
279
|
+
question: Q4
|
|
280
|
+
description: "Missing error_handling dep"
|
|
281
|
+
resolution: "Added error_handling to depends_on"
|
|
282
|
+
- severity: minor
|
|
283
|
+
question: Q10
|
|
284
|
+
description: "Missing cross-references, quoted patterns, testing detail"
|
|
285
|
+
resolution: "Added gui_notes with 6 cross-references, quoted patterns, expanded testing"
|
|
286
|
+
|
|
287
|
+
# ── Batch 2: Core P3 ────────────────────────────────────────────
|
|
288
|
+
conf/design/workflow.yml:
|
|
289
|
+
status: signed_off
|
|
290
|
+
reviewer: hugo
|
|
291
|
+
review_date: "2026-03-16"
|
|
292
|
+
sign_off_date: "2026-03-16"
|
|
293
|
+
verdict: approved_with_notes
|
|
294
|
+
intent: "Provide repeatable, composable AI-assisted workflows as declarative YAML"
|
|
295
|
+
answers:
|
|
296
|
+
Q1: pass
|
|
297
|
+
Q2: pass
|
|
298
|
+
Q3: pass
|
|
299
|
+
Q4: pass
|
|
300
|
+
Q5: pass
|
|
301
|
+
Q6: pass
|
|
302
|
+
Q7: pass
|
|
303
|
+
Q8: pass
|
|
304
|
+
Q9: pass
|
|
305
|
+
Q10: pass
|
|
306
|
+
findings:
|
|
307
|
+
- severity: major
|
|
308
|
+
question: Q1
|
|
309
|
+
description: "Intent needed git_hooks relationship note and step type mention"
|
|
310
|
+
resolution: "Split intent into 2 paragraphs, added git_hooks complementarity note"
|
|
311
|
+
- severity: major
|
|
312
|
+
question: Q2
|
|
313
|
+
description: "Missing step type constraints and workflow bounds"
|
|
314
|
+
resolution: "Added shell/rai/prompt step types, max step count (50), prompt security"
|
|
315
|
+
- severity: major
|
|
316
|
+
question: Q3
|
|
317
|
+
description: "Missing resume and dry-run acceptance criteria"
|
|
318
|
+
resolution: "Added --resume from audit log and --simulate dry-run criteria"
|
|
319
|
+
- severity: major
|
|
320
|
+
question: Q4
|
|
321
|
+
description: "Missing error_handling and git_hooks in depends_on"
|
|
322
|
+
resolution: "Added both to depends_on list"
|
|
323
|
+
- severity: major
|
|
324
|
+
question: Q5
|
|
325
|
+
description: "No explicit scope boundary between workflows and git hooks"
|
|
326
|
+
resolution: "Added constraint clarifying workflows vs hooks separation"
|
|
327
|
+
- severity: major
|
|
328
|
+
question: Q6
|
|
329
|
+
description: "Examples lacked step type variety and error scenarios"
|
|
330
|
+
resolution: "Added 5 examples: mixed types, dry-run, step failure, string-form rejection, multi-engine"
|
|
331
|
+
- severity: major
|
|
332
|
+
question: Q7
|
|
333
|
+
description: "Prompt security and network declaration missing"
|
|
334
|
+
resolution: "Added prompt injection review, audit hash, network_required declaration"
|
|
335
|
+
- severity: minor
|
|
336
|
+
question: Q8
|
|
337
|
+
description: "Multi-engine per-step capability not documented"
|
|
338
|
+
resolution: "Added per-step engine override constraint and example"
|
|
339
|
+
- severity: minor
|
|
340
|
+
question: Q10
|
|
341
|
+
description: "Missing cross-references, workflow schema outline, and testing detail"
|
|
342
|
+
resolution: "Added gui_notes with 6 cross-references, schema outline, expanded testing preferences"
|
|
343
|
+
|
|
344
|
+
conf/design/project_management.yml:
|
|
345
|
+
status: signed_off
|
|
346
|
+
reviewer: hugo
|
|
347
|
+
review_date: "2026-03-16"
|
|
348
|
+
sign_off_date: "2026-03-16"
|
|
349
|
+
verdict: approved_with_notes
|
|
350
|
+
intent: "Provide project lifecycle management beyond scaffolding — templates, drift detection, sync"
|
|
351
|
+
answers:
|
|
352
|
+
Q1: pass
|
|
353
|
+
Q2: pass
|
|
354
|
+
Q3: pass
|
|
355
|
+
Q4: pass
|
|
356
|
+
Q5: pass
|
|
357
|
+
Q6: pass
|
|
358
|
+
Q7: pass
|
|
359
|
+
Q8: pass
|
|
360
|
+
Q9: pass
|
|
361
|
+
Q10: pass
|
|
362
|
+
findings:
|
|
363
|
+
- severity: major
|
|
364
|
+
question: Q1
|
|
365
|
+
description: "Missing init/retrofit lifecycle relationship"
|
|
366
|
+
resolution: "Added second paragraph documenting init→retrofit→project→compile lifecycle"
|
|
367
|
+
- severity: major
|
|
368
|
+
question: Q2
|
|
369
|
+
description: "Ambiguous baseline, missing security constraints"
|
|
370
|
+
resolution: "Clarified forward/template drift types, added safe_load, sync trust, audit format"
|
|
371
|
+
- severity: major
|
|
372
|
+
question: Q3
|
|
373
|
+
description: "Missing exit codes, drift type split, TTY-aware output"
|
|
374
|
+
resolution: "Added exit codes, --type forward/template flags, TTY-aware status"
|
|
375
|
+
- severity: major
|
|
376
|
+
question: Q4
|
|
377
|
+
description: "Missing compiler, error_handling, backward_compatibility deps"
|
|
378
|
+
resolution: "Added all three to depends_on"
|
|
379
|
+
- severity: major
|
|
380
|
+
question: Q5
|
|
381
|
+
description: "No explicit scope boundary vs init/retrofit/compile"
|
|
382
|
+
resolution: "Added scope boundary constraint with lifecycle flow"
|
|
383
|
+
- severity: major
|
|
384
|
+
question: Q6
|
|
385
|
+
description: "Missing sync conflict, drift output, and security examples"
|
|
386
|
+
resolution: "Added 3 new examples + 2 anti-patterns"
|
|
387
|
+
- severity: major
|
|
388
|
+
question: Q7
|
|
389
|
+
description: "Missing template content validation and sync source trust"
|
|
390
|
+
resolution: "Added template security audit and sync integrity verification constraints"
|
|
391
|
+
- severity: minor
|
|
392
|
+
question: Q8
|
|
393
|
+
description: "Per-engine drift responsibility unclear"
|
|
394
|
+
resolution: "Noted that per-engine drift is compile's domain"
|
|
395
|
+
- severity: minor
|
|
396
|
+
question: Q9
|
|
397
|
+
description: "Intent used >- scalar, missing gems"
|
|
398
|
+
resolution: "Switched to | scalar, added json_schemer + thor + diffy"
|
|
399
|
+
- severity: minor
|
|
400
|
+
question: Q10
|
|
401
|
+
description: "Missing cross-references and testing detail"
|
|
402
|
+
resolution: "Added gui_notes with 7 cross-references, expanded testing preferences"
|
|
403
|
+
|
|
404
|
+
conf/design/mcp_settings.yml:
|
|
405
|
+
status: signed_off
|
|
406
|
+
reviewer: hugo
|
|
407
|
+
review_date: "2026-03-16"
|
|
408
|
+
sign_off_date: "2026-03-16"
|
|
409
|
+
verdict: approved_with_notes
|
|
410
|
+
intent: "Manage MCP server configuration with trust-first model preventing untrusted servers"
|
|
411
|
+
answers:
|
|
412
|
+
Q1: pass
|
|
413
|
+
Q2: pass
|
|
414
|
+
Q3: pass
|
|
415
|
+
Q4: pass
|
|
416
|
+
Q5: pass
|
|
417
|
+
Q6: pass
|
|
418
|
+
Q7: pass
|
|
419
|
+
Q8: pass
|
|
420
|
+
Q9: pass
|
|
421
|
+
Q10: pass
|
|
422
|
+
findings:
|
|
423
|
+
- severity: minor
|
|
424
|
+
question: Q1
|
|
425
|
+
description: "Missing scope boundary with mcp_integration and engine_architecture"
|
|
426
|
+
resolution: "Added paragraph clarifying trust/config vs protocol vs engine compilation"
|
|
427
|
+
- severity: minor
|
|
428
|
+
question: Q2
|
|
429
|
+
description: "Missing YAML.safe_load and array-form system() constraints"
|
|
430
|
+
resolution: "Added both security constraints"
|
|
431
|
+
- severity: minor
|
|
432
|
+
question: Q3
|
|
433
|
+
description: "Missing exit codes and TTY-aware output"
|
|
434
|
+
resolution: "Added exit code 0/1/2 and TTY-aware output criteria"
|
|
435
|
+
- severity: minor
|
|
436
|
+
question: Q4
|
|
437
|
+
description: "Missing error_handling dep"
|
|
438
|
+
resolution: "Added error_handling to depends_on"
|
|
439
|
+
- severity: minor
|
|
440
|
+
question: Q5
|
|
441
|
+
description: "Missing scope boundary constraint"
|
|
442
|
+
resolution: "Added constraint: mcp_settings governs trust; mcp_integration governs protocol"
|
|
443
|
+
- severity: minor
|
|
444
|
+
question: Q6
|
|
445
|
+
description: "Missing CI pipeline example and trust rejection detail"
|
|
446
|
+
resolution: "Added CI pipeline JSON output example, expanded trust rejection example"
|
|
447
|
+
- severity: minor
|
|
448
|
+
question: Q9
|
|
449
|
+
description: "Used >- scalar, unquoted patterns"
|
|
450
|
+
resolution: "Switched to | scalar, quoted patterns"
|
|
451
|
+
- severity: minor
|
|
452
|
+
question: Q10
|
|
453
|
+
description: "Missing cross-references, trust chain, testing detail"
|
|
454
|
+
resolution: "Added gui_notes with 6 cross-references, trust chain flow, expanded testing"
|
|
455
|
+
|
|
456
|
+
# ── Batch 3: Security ───────────────────────────────────────────
|
|
457
|
+
conf/design/ai_provenance.yml:
|
|
458
|
+
status: signed_off
|
|
459
|
+
reviewer: hugo
|
|
460
|
+
review_date: "2026-03-16"
|
|
461
|
+
sign_off_date: "2026-03-16"
|
|
462
|
+
verdict: approved_with_notes
|
|
463
|
+
intent: "Establish structured provenance tracking for AI involvement in code contributions"
|
|
464
|
+
answers:
|
|
465
|
+
Q1: pass
|
|
466
|
+
Q2: pass
|
|
467
|
+
Q3: pass
|
|
468
|
+
Q4: pass
|
|
469
|
+
Q5: pass
|
|
470
|
+
Q6: pass
|
|
471
|
+
Q7: pass
|
|
472
|
+
Q8: pass
|
|
473
|
+
Q9: pass
|
|
474
|
+
Q10: pass
|
|
475
|
+
findings:
|
|
476
|
+
- severity: major
|
|
477
|
+
question: Q1
|
|
478
|
+
description: "Missing boundary clarification with ai_authorship"
|
|
479
|
+
resolution: "Added paragraph clarifying provenance (records) vs authorship (attributes) vs policy (governs)"
|
|
480
|
+
- severity: major
|
|
481
|
+
question: Q2
|
|
482
|
+
description: "Append-only growth unbounded, missing error_handling ref"
|
|
483
|
+
resolution: "Added archival/rotation policy and error_handling reference"
|
|
484
|
+
- severity: major
|
|
485
|
+
question: Q3
|
|
486
|
+
description: "Missing exit codes, provenance log command, TTY-aware output"
|
|
487
|
+
resolution: "Added all three"
|
|
488
|
+
- severity: major
|
|
489
|
+
question: Q4
|
|
490
|
+
description: "Missing error_handling and ai_authorship deps"
|
|
491
|
+
resolution: "Added both to depends_on"
|
|
492
|
+
- severity: major
|
|
493
|
+
question: Q5
|
|
494
|
+
description: "No explicit scope boundary for provenance vs authorship vs policy"
|
|
495
|
+
resolution: "Added scope boundary constraint"
|
|
496
|
+
- severity: major
|
|
497
|
+
question: Q7
|
|
498
|
+
description: "No tamper protection for provenance entries"
|
|
499
|
+
resolution: "Added SHA-256 hash chain for tamper-evident append-only log"
|
|
500
|
+
- severity: minor
|
|
501
|
+
question: Q8
|
|
502
|
+
description: "Multi-engine provenance per commit not documented"
|
|
503
|
+
resolution: "Added note that single commit can have entries from multiple engines"
|
|
504
|
+
- severity: minor
|
|
505
|
+
question: Q9
|
|
506
|
+
description: "Preference patterns not quoted"
|
|
507
|
+
resolution: "Quoted and expanded preference patterns"
|
|
508
|
+
- severity: minor
|
|
509
|
+
question: Q10
|
|
510
|
+
description: "Missing cross-references, schema outline, testing detail"
|
|
511
|
+
resolution: "Added gui_notes with 6 cross-references, provenance entry schema, expanded testing"
|
|
512
|
+
|
|
513
|
+
conf/design/ai_authorship.yml:
|
|
514
|
+
status: signed_off
|
|
515
|
+
reviewer: hugo
|
|
516
|
+
review_date: "2026-03-16"
|
|
517
|
+
sign_off_date: "2026-03-16"
|
|
518
|
+
verdict: approved_with_notes
|
|
519
|
+
intent: "Define AI co-authorship attribution, disclosure, and management policies"
|
|
520
|
+
answers:
|
|
521
|
+
Q1: pass
|
|
522
|
+
Q2: pass
|
|
523
|
+
Q3: pass
|
|
524
|
+
Q4: pass
|
|
525
|
+
Q5: pass
|
|
526
|
+
Q6: pass
|
|
527
|
+
Q7: pass
|
|
528
|
+
Q8: pass
|
|
529
|
+
Q9: pass
|
|
530
|
+
Q10: pass
|
|
531
|
+
findings:
|
|
532
|
+
- severity: major
|
|
533
|
+
question: Q1
|
|
534
|
+
description: "Missing policy_management boundary in provenance–authorship–policy triad"
|
|
535
|
+
resolution: "Added paragraph clarifying authorship as attribution layer"
|
|
536
|
+
- severity: major
|
|
537
|
+
question: Q2
|
|
538
|
+
description: "Disclosure level change handling and error_handling ref missing"
|
|
539
|
+
resolution: "Added mid-project disclosure change constraint and error_handling ref"
|
|
540
|
+
- severity: major
|
|
541
|
+
question: Q4
|
|
542
|
+
description: "Missing compiler, error_handling, policy_management deps"
|
|
543
|
+
resolution: "Added all three to depends_on"
|
|
544
|
+
- severity: major
|
|
545
|
+
question: Q7
|
|
546
|
+
description: "Trailer injection and compiled metadata safety not addressed"
|
|
547
|
+
resolution: "Added trailer validation against engine manifests and metadata exposure limits"
|
|
548
|
+
- severity: minor
|
|
549
|
+
question: Q3
|
|
550
|
+
description: "Missing exit codes and TTY-aware authorship status"
|
|
551
|
+
resolution: "Added exit codes and TTY-aware output criterion"
|
|
552
|
+
- severity: minor
|
|
553
|
+
question: Q5
|
|
554
|
+
description: "No explicit scope constraint"
|
|
555
|
+
resolution: "Added scope boundary: authorship (attribution) vs provenance (records) vs policy (governs)"
|
|
556
|
+
- severity: minor
|
|
557
|
+
question: Q10
|
|
558
|
+
description: "Missing cross-references, disclosure matrix, testing detail"
|
|
559
|
+
resolution: "Added gui_notes with 7 cross-references, disclosure level matrix, expanded testing"
|
|
560
|
+
|
|
561
|
+
conf/design/policy_management.yml:
|
|
562
|
+
status: signed_off
|
|
563
|
+
reviewer: hugo
|
|
564
|
+
review_date: "2026-03-16"
|
|
565
|
+
sign_off_date: "2026-03-16"
|
|
566
|
+
verdict: approved_with_notes
|
|
567
|
+
intent: "Provide structured framework for organisations to define and enforce AI usage policies"
|
|
568
|
+
answers:
|
|
569
|
+
Q1: pass
|
|
570
|
+
Q2: pass
|
|
571
|
+
Q3: pass
|
|
572
|
+
Q4: pass
|
|
573
|
+
Q5: pass
|
|
574
|
+
Q6: pass
|
|
575
|
+
Q7: pass
|
|
576
|
+
Q8: pass
|
|
577
|
+
Q9: pass
|
|
578
|
+
Q10: pass
|
|
579
|
+
findings:
|
|
580
|
+
- severity: major
|
|
581
|
+
question: Q1
|
|
582
|
+
description: "Missing provenance-authorship-policy triad note"
|
|
583
|
+
resolution: "Added paragraph clarifying policy as governance layer in triad"
|
|
584
|
+
- severity: major
|
|
585
|
+
question: Q2
|
|
586
|
+
description: "Missing error_handling ref, file size limits, content validation"
|
|
587
|
+
resolution: "Added all three + path traversal prevention for deny lists"
|
|
588
|
+
- severity: major
|
|
589
|
+
question: Q3
|
|
590
|
+
description: "Vague git-tracking criterion, missing exit codes and TTY"
|
|
591
|
+
resolution: "Replaced with concrete criteria, added exit codes + TTY-aware"
|
|
592
|
+
- severity: major
|
|
593
|
+
question: Q5
|
|
594
|
+
description: "No explicit compile-time vs runtime scope boundary"
|
|
595
|
+
resolution: "Added constraint: rai compiles policies, does not enforce at runtime"
|
|
596
|
+
- severity: major
|
|
597
|
+
question: Q7
|
|
598
|
+
description: "Missing content security and path traversal prevention"
|
|
599
|
+
resolution: "Added ANSI stripping, control char validation, path traversal rejection"
|
|
600
|
+
- severity: minor
|
|
601
|
+
question: Q4
|
|
602
|
+
description: "Missing compiler and error_handling deps"
|
|
603
|
+
resolution: "Added both to depends_on"
|
|
604
|
+
- severity: minor
|
|
605
|
+
question: Q10
|
|
606
|
+
description: "Missing cross-references, schema outline, testing detail"
|
|
607
|
+
resolution: "Added gui_notes with 7 cross-references, policy schema outline, expanded testing"
|
|
608
|
+
|
|
609
|
+
conf/design/comply.yml:
|
|
610
|
+
status: signed_off
|
|
611
|
+
reviewer: hugo
|
|
612
|
+
review_date: "2026-03-16"
|
|
613
|
+
sign_off_date: "2026-03-16"
|
|
614
|
+
verdict: approved_with_notes
|
|
615
|
+
intent: "Automate compliance checks for EU CRA/NIS2 directives and GPL-3.0 licensing"
|
|
616
|
+
answers:
|
|
617
|
+
Q1: pass
|
|
618
|
+
Q2: pass
|
|
619
|
+
Q3: pass
|
|
620
|
+
Q4: pass
|
|
621
|
+
Q5: pass
|
|
622
|
+
Q6: pass
|
|
623
|
+
Q7: pass
|
|
624
|
+
Q8: pass
|
|
625
|
+
Q9: pass
|
|
626
|
+
Q10: pass
|
|
627
|
+
findings:
|
|
628
|
+
- severity: minor
|
|
629
|
+
question: Q1
|
|
630
|
+
description: "Missing scope boundary vs policy_management"
|
|
631
|
+
resolution: "Added paragraph: comply verifies, policy defines"
|
|
632
|
+
- severity: minor
|
|
633
|
+
question: Q4
|
|
634
|
+
description: "Missing error_handling and engine_architecture deps"
|
|
635
|
+
resolution: "Added both to depends_on"
|
|
636
|
+
- severity: minor
|
|
637
|
+
question: Q10
|
|
638
|
+
description: "Missing cross-references, CI example, TTY-aware output"
|
|
639
|
+
resolution: "Added gui_notes with 6 cross-references, CI report example, TTY-aware constraint"
|
|
640
|
+
|
|
641
|
+
# ── Batch 4: Compiler ───────────────────────────────────────────
|
|
642
|
+
conf/design/behaviour_composition.yml:
|
|
643
|
+
status: signed_off
|
|
644
|
+
reviewer: hugo
|
|
645
|
+
review_date: "2026-03-15"
|
|
646
|
+
sign_off_date: "2026-03-15"
|
|
647
|
+
verdict: approved
|
|
648
|
+
intent: "Define composition, layering, and merging rules for multiple behaviour YAML files"
|
|
649
|
+
answers:
|
|
650
|
+
Q1: pass
|
|
651
|
+
Q2: pass
|
|
652
|
+
Q3: pass
|
|
653
|
+
Q4: pass
|
|
654
|
+
Q5: pass
|
|
655
|
+
Q6: pass
|
|
656
|
+
Q7: pass
|
|
657
|
+
Q8: pass
|
|
658
|
+
Q9: pass
|
|
659
|
+
Q10: pass
|
|
660
|
+
findings: []
|
|
661
|
+
|
|
662
|
+
# ── Batch 5: UI ─────────────────────────────────────────────────
|
|
663
|
+
conf/design/desktop_integration.yml:
|
|
664
|
+
status: signed_off
|
|
665
|
+
reviewer: hugo
|
|
666
|
+
review_date: "2026-03-16"
|
|
667
|
+
sign_off_date: "2026-03-16"
|
|
668
|
+
verdict: approved_with_notes
|
|
669
|
+
intent: "Define D-Bus session bus integration and optional desktop frontends for Linux"
|
|
670
|
+
answers:
|
|
671
|
+
Q1: pass
|
|
672
|
+
Q2: pass
|
|
673
|
+
Q3: pass
|
|
674
|
+
Q4: pass
|
|
675
|
+
Q5: pass
|
|
676
|
+
Q6: pass
|
|
677
|
+
Q7: pass
|
|
678
|
+
Q8: pass
|
|
679
|
+
Q9: pass
|
|
680
|
+
Q10: pass
|
|
681
|
+
findings:
|
|
682
|
+
- severity: minor
|
|
683
|
+
question: Q1
|
|
684
|
+
description: "Missing scope boundary with gui_plugins"
|
|
685
|
+
resolution: "Added paragraph clarifying D-Bus/compositor vs GUI gem packaging"
|
|
686
|
+
- severity: minor
|
|
687
|
+
question: Q3
|
|
688
|
+
description: "Missing exit codes and TTY-aware output"
|
|
689
|
+
resolution: "Added exit code 0/1/5 and TTY-aware output criteria"
|
|
690
|
+
- severity: minor
|
|
691
|
+
question: Q4
|
|
692
|
+
description: "Missing error_handling dep"
|
|
693
|
+
resolution: "Added error_handling to depends_on"
|
|
694
|
+
- severity: minor
|
|
695
|
+
question: Q5
|
|
696
|
+
description: "Missing scope boundary constraint"
|
|
697
|
+
resolution: "Added constraint: desktop_integration governs D-Bus; gui_plugins governs GUI gems"
|
|
698
|
+
- severity: minor
|
|
699
|
+
question: Q9
|
|
700
|
+
description: "Unquoted constraints, patterns, anti-patterns"
|
|
701
|
+
resolution: "Quoted all constraint, anti-pattern, and pattern strings"
|
|
702
|
+
- severity: minor
|
|
703
|
+
question: Q10
|
|
704
|
+
description: "Missing cross-references section in gui_notes, testing detail"
|
|
705
|
+
resolution: "Added 6 cross-references to gui_notes, expanded testing preferences"
|
|
706
|
+
|
|
707
|
+
conf/design/gui_plugins.yml:
|
|
708
|
+
status: signed_off
|
|
709
|
+
reviewer: hugo
|
|
710
|
+
review_date: "2026-03-16"
|
|
711
|
+
sign_off_date: "2026-03-16"
|
|
712
|
+
verdict: approved_with_notes
|
|
713
|
+
intent: "Define pluggable GUI architecture treating desktop frontends as first-class plugins"
|
|
714
|
+
answers:
|
|
715
|
+
Q1: pass
|
|
716
|
+
Q2: pass
|
|
717
|
+
Q3: pass
|
|
718
|
+
Q4: pass
|
|
719
|
+
Q5: pass
|
|
720
|
+
Q6: pass
|
|
721
|
+
Q7: pass
|
|
722
|
+
Q8: pass
|
|
723
|
+
Q9: pass
|
|
724
|
+
Q10: pass
|
|
725
|
+
findings:
|
|
726
|
+
- severity: minor
|
|
727
|
+
question: Q1
|
|
728
|
+
description: "Missing scope boundary with desktop_integration"
|
|
729
|
+
resolution: "Added paragraph clarifying GUI gem architecture vs D-Bus service"
|
|
730
|
+
- severity: minor
|
|
731
|
+
question: Q3
|
|
732
|
+
description: "Missing exit codes and TTY-aware output"
|
|
733
|
+
resolution: "Added exit code 0/1/5 and TTY-aware output criteria"
|
|
734
|
+
- severity: minor
|
|
735
|
+
question: Q4
|
|
736
|
+
description: "Missing error_handling dep"
|
|
737
|
+
resolution: "Added error_handling to depends_on"
|
|
738
|
+
- severity: minor
|
|
739
|
+
question: Q5
|
|
740
|
+
description: "Missing scope boundary constraint"
|
|
741
|
+
resolution: "Added constraint: gui_plugins governs GUI gems; desktop_integration governs D-Bus"
|
|
742
|
+
- severity: minor
|
|
743
|
+
question: Q9
|
|
744
|
+
description: "Unquoted constraints, patterns, anti-patterns, acceptance criteria"
|
|
745
|
+
resolution: "Quoted all string values across constraints, criteria, patterns, anti-patterns"
|
|
746
|
+
- severity: minor
|
|
747
|
+
question: Q10
|
|
748
|
+
description: "Missing cross-references section in gui_notes, testing detail"
|
|
749
|
+
resolution: "Added 6 cross-references to gui_notes, expanded testing preferences"
|
|
750
|
+
|
|
751
|
+
conf/design/autocompletion.yml:
|
|
752
|
+
status: signed_off
|
|
753
|
+
reviewer: hugo
|
|
754
|
+
review_date: "2026-03-16"
|
|
755
|
+
sign_off_date: "2026-03-16"
|
|
756
|
+
verdict: approved_with_notes
|
|
757
|
+
intent: "Generate shell completion scripts for bash, zsh, and fish from Thor command registry"
|
|
758
|
+
answers:
|
|
759
|
+
Q1: pass
|
|
760
|
+
Q2: pass
|
|
761
|
+
Q3: pass
|
|
762
|
+
Q4: pass
|
|
763
|
+
Q5: pass
|
|
764
|
+
Q6: pass
|
|
765
|
+
Q7: pass
|
|
766
|
+
Q8: pass
|
|
767
|
+
Q9: pass
|
|
768
|
+
Q10: pass
|
|
769
|
+
findings:
|
|
770
|
+
- severity: minor
|
|
771
|
+
question: Q1
|
|
772
|
+
description: "Missing scope boundary (shell vs TUI completion)"
|
|
773
|
+
resolution: "Added scope note distinguishing shell tab completion from TUI input completion"
|
|
774
|
+
- severity: minor
|
|
775
|
+
question: Q4
|
|
776
|
+
description: "Missing security and error_handling deps"
|
|
777
|
+
resolution: "Added both to depends_on"
|
|
778
|
+
- severity: minor
|
|
779
|
+
question: Q7
|
|
780
|
+
description: "Missing shell injection prevention constraint"
|
|
781
|
+
resolution: "Added constraint for shell-safe escaping of dynamic values"
|
|
782
|
+
- severity: minor
|
|
783
|
+
question: Q10
|
|
784
|
+
description: "Missing cross-references, error example, testing detail"
|
|
785
|
+
resolution: "Added gui_notes with 5 cross-references, unsupported shell example, testing"
|
|
786
|
+
|
|
787
|
+
conf/design/smart_ui_feedback.yml:
|
|
788
|
+
status: signed_off
|
|
789
|
+
reviewer: hugo
|
|
790
|
+
review_date: "2026-03-16"
|
|
791
|
+
sign_off_date: "2026-03-16"
|
|
792
|
+
verdict: approved_with_notes
|
|
793
|
+
intent: "Transform generic Thor error messages into actionable suggestions using edit distance"
|
|
794
|
+
answers:
|
|
795
|
+
Q1: pass
|
|
796
|
+
Q2: pass
|
|
797
|
+
Q3: pass
|
|
798
|
+
Q4: pass
|
|
799
|
+
Q5: pass
|
|
800
|
+
Q6: pass
|
|
801
|
+
Q7: pass
|
|
802
|
+
Q8: pass
|
|
803
|
+
Q9: pass
|
|
804
|
+
Q10: pass
|
|
805
|
+
findings:
|
|
806
|
+
- severity: minor
|
|
807
|
+
question: Q4
|
|
808
|
+
description: "Missing error_handling dep"
|
|
809
|
+
resolution: "Added error_handling to depends_on"
|
|
810
|
+
- severity: minor
|
|
811
|
+
question: Q5
|
|
812
|
+
description: "Missing scope boundary vs autocompletion"
|
|
813
|
+
resolution: "Added constraint: typo suggestions (reactive) vs tab completion (proactive)"
|
|
814
|
+
- severity: minor
|
|
815
|
+
question: Q10
|
|
816
|
+
description: "Missing cross-references, exit codes, testing detail"
|
|
817
|
+
resolution: "Added gui_notes with 3 cross-references, exit codes, expanded testing"
|
|
818
|
+
|
|
819
|
+
# ── Batch 6: Operations ─────────────────────────────────────────
|
|
820
|
+
conf/design/monitoring_observability.yml:
|
|
821
|
+
status: signed_off
|
|
822
|
+
reviewer: hugo
|
|
823
|
+
review_date: "2026-03-16"
|
|
824
|
+
sign_off_date: "2026-03-16"
|
|
825
|
+
verdict: approved_with_notes
|
|
826
|
+
intent: "Provide structured runtime telemetry for the Rosett-AI CLI via JSON Lines logs"
|
|
827
|
+
answers:
|
|
828
|
+
Q1: pass
|
|
829
|
+
Q2: pass
|
|
830
|
+
Q3: pass
|
|
831
|
+
Q4: pass
|
|
832
|
+
Q5: pass
|
|
833
|
+
Q6: pass
|
|
834
|
+
Q7: pass
|
|
835
|
+
Q8: pass
|
|
836
|
+
Q9: pass
|
|
837
|
+
Q10: pass
|
|
838
|
+
findings:
|
|
839
|
+
- severity: major
|
|
840
|
+
question: Q1
|
|
841
|
+
description: "Missing relationship to workflow audit, provenance, error_handling"
|
|
842
|
+
resolution: "Added paragraph clarifying telemetry as observability layer vs audit/provenance/error"
|
|
843
|
+
- severity: major
|
|
844
|
+
question: Q2
|
|
845
|
+
description: "Missing log rotation and scope boundary constraints"
|
|
846
|
+
resolution: "Added configurable rotation policy and scope boundary vs workflow/provenance"
|
|
847
|
+
- severity: minor
|
|
848
|
+
question: Q4
|
|
849
|
+
description: "Missing error_handling and workflow deps"
|
|
850
|
+
resolution: "Added both to depends_on"
|
|
851
|
+
- severity: minor
|
|
852
|
+
question: Q6
|
|
853
|
+
description: "Missing error and rotation examples"
|
|
854
|
+
resolution: "Added telemetry file unwritable and log rotation scenarios"
|
|
855
|
+
- severity: minor
|
|
856
|
+
question: Q10
|
|
857
|
+
description: "Missing cross-references and quoted patterns"
|
|
858
|
+
resolution: "Added gui_notes with 6 cross-references, quoted preference patterns"
|
|
859
|
+
|
|
860
|
+
conf/design/usage_optimization.yml:
|
|
861
|
+
status: signed_off
|
|
862
|
+
reviewer: hugo
|
|
863
|
+
review_date: "2026-03-15"
|
|
864
|
+
sign_off_date: "2026-03-15"
|
|
865
|
+
verdict: approved_with_notes
|
|
866
|
+
intent: "Ensure Rosett-AI CLI remains fast, memory-efficient, and scalable via caching and profiling"
|
|
867
|
+
answers:
|
|
868
|
+
Q1: pass
|
|
869
|
+
Q2: pass
|
|
870
|
+
Q3: pass
|
|
871
|
+
Q4: pass
|
|
872
|
+
Q5: pass
|
|
873
|
+
Q6: pass
|
|
874
|
+
Q7: pass
|
|
875
|
+
Q8: pass
|
|
876
|
+
Q9: concern
|
|
877
|
+
Q10: pass
|
|
878
|
+
findings:
|
|
879
|
+
- severity: minor
|
|
880
|
+
question: Q9
|
|
881
|
+
description: "Version was 1.0.0 with status draft (convention: draft = 0.x.0)"
|
|
882
|
+
resolution: "Changed version from 1.0.0 to 0.1.0"
|
|
883
|
+
|
|
884
|
+
conf/design/distribution.yml:
|
|
885
|
+
status: signed_off
|
|
886
|
+
reviewer: hugo
|
|
887
|
+
review_date: "2026-03-16"
|
|
888
|
+
sign_off_date: "2026-03-16"
|
|
889
|
+
verdict: approved_with_notes
|
|
890
|
+
intent: "Define package distribution through self-hosted Pulp repository with multi-format support"
|
|
891
|
+
answers:
|
|
892
|
+
Q1: pass
|
|
893
|
+
Q2: pass
|
|
894
|
+
Q3: pass
|
|
895
|
+
Q4: pass
|
|
896
|
+
Q5: pass
|
|
897
|
+
Q6: pass
|
|
898
|
+
Q7: pass
|
|
899
|
+
Q8: pass
|
|
900
|
+
Q9: pass
|
|
901
|
+
Q10: pass
|
|
902
|
+
findings:
|
|
903
|
+
- severity: minor
|
|
904
|
+
question: Q1
|
|
905
|
+
description: "Missing release_management relationship"
|
|
906
|
+
resolution: "Added paragraph clarifying handoff point (tag event)"
|
|
907
|
+
- severity: minor
|
|
908
|
+
question: Q2
|
|
909
|
+
description: "Missing scope boundary constraint"
|
|
910
|
+
resolution: "Added constraint separating distribution from release/build"
|
|
911
|
+
- severity: minor
|
|
912
|
+
question: Q3
|
|
913
|
+
description: "Missing CI exit codes"
|
|
914
|
+
resolution: "Added CI publish job exit codes"
|
|
915
|
+
- severity: minor
|
|
916
|
+
question: Q4
|
|
917
|
+
description: "Missing error_handling dep"
|
|
918
|
+
resolution: "Added error_handling to depends_on"
|
|
919
|
+
- severity: minor
|
|
920
|
+
question: Q10
|
|
921
|
+
description: "Missing cross-references, unquoted patterns"
|
|
922
|
+
resolution: "Added gui_notes with 5 cross-references, quoted preference patterns"
|
|
923
|
+
|
|
924
|
+
conf/design/test_peer_review.yml:
|
|
925
|
+
status: signed_off
|
|
926
|
+
reviewer: hugo
|
|
927
|
+
review_date: "2026-03-15"
|
|
928
|
+
sign_off_date: "2026-03-15"
|
|
929
|
+
verdict: approved_with_notes
|
|
930
|
+
intent: "Establish structured questionnaire-based peer review process for all test suites"
|
|
931
|
+
answers:
|
|
932
|
+
Q1: pass
|
|
933
|
+
Q2: pass
|
|
934
|
+
Q3: pass
|
|
935
|
+
Q4: pass
|
|
936
|
+
Q5: pass
|
|
937
|
+
Q6: pass
|
|
938
|
+
Q7: pass
|
|
939
|
+
Q8: pass
|
|
940
|
+
Q9: pass
|
|
941
|
+
Q10: concern
|
|
942
|
+
findings:
|
|
943
|
+
- severity: minor
|
|
944
|
+
question: Q10
|
|
945
|
+
description: "Missing anti_patterns section"
|
|
946
|
+
resolution: "Added 6 anti-patterns covering self-review, batch sign-off, and implementation mirroring"
|
|
947
|
+
|
|
948
|
+
# ── Gap-Fill: New design documents (2026-03-16) ───────────────────
|
|
949
|
+
conf/design/doctor.yml:
|
|
950
|
+
status: signed_off
|
|
951
|
+
reviewer: claude
|
|
952
|
+
review_date: "2026-03-16"
|
|
953
|
+
sign_off_date: "2026-03-16"
|
|
954
|
+
verdict: approved
|
|
955
|
+
intent: "Provide single diagnostic command checking all runtime prerequisites with actionable fixes"
|
|
956
|
+
answers:
|
|
957
|
+
Q1: pass
|
|
958
|
+
Q2: pass
|
|
959
|
+
Q3: pass
|
|
960
|
+
Q4: pass
|
|
961
|
+
Q5: pass
|
|
962
|
+
Q6: pass
|
|
963
|
+
Q7: pass
|
|
964
|
+
Q8: pass
|
|
965
|
+
Q9: pass
|
|
966
|
+
Q10: pass
|
|
967
|
+
findings: []
|
|
968
|
+
|
|
969
|
+
conf/design/feature_flags.yml:
|
|
970
|
+
status: signed_off
|
|
971
|
+
reviewer: claude
|
|
972
|
+
review_date: "2026-03-16"
|
|
973
|
+
sign_off_date: "2026-03-16"
|
|
974
|
+
verdict: approved
|
|
975
|
+
intent: "Provide lightweight env-based feature gating for experimental features before stable release"
|
|
976
|
+
answers:
|
|
977
|
+
Q1: pass
|
|
978
|
+
Q2: pass
|
|
979
|
+
Q3: pass
|
|
980
|
+
Q4: pass
|
|
981
|
+
Q5: pass
|
|
982
|
+
Q6: pass
|
|
983
|
+
Q7: pass
|
|
984
|
+
Q8: pass
|
|
985
|
+
Q9: pass
|
|
986
|
+
Q10: pass
|
|
987
|
+
findings: []
|
|
988
|
+
|
|
989
|
+
conf/design/structured_logging.yml:
|
|
990
|
+
status: signed_off
|
|
991
|
+
reviewer: claude
|
|
992
|
+
review_date: "2026-03-16"
|
|
993
|
+
sign_off_date: "2026-03-16"
|
|
994
|
+
verdict: approved
|
|
995
|
+
intent: "Enhance logger with correlation IDs and structured JSON output for cross-command tracing"
|
|
996
|
+
answers:
|
|
997
|
+
Q1: pass
|
|
998
|
+
Q2: pass
|
|
999
|
+
Q3: pass
|
|
1000
|
+
Q4: pass
|
|
1001
|
+
Q5: pass
|
|
1002
|
+
Q6: pass
|
|
1003
|
+
Q7: pass
|
|
1004
|
+
Q8: pass
|
|
1005
|
+
Q9: pass
|
|
1006
|
+
Q10: pass
|
|
1007
|
+
findings: []
|
|
1008
|
+
|
|
1009
|
+
# ── Gap-Fill: New reviews (2026-03-17) ────────────────────────────
|
|
1010
|
+
conf/design/documentation.yml:
|
|
1011
|
+
status: signed_off
|
|
1012
|
+
reviewer: claude
|
|
1013
|
+
review_date: "2026-03-17"
|
|
1014
|
+
sign_off_date: "2026-03-17"
|
|
1015
|
+
verdict: approved_with_notes
|
|
1016
|
+
intent: "Provide end-user documentation including man pages, YARD API docs, install guide, and quick start"
|
|
1017
|
+
answers:
|
|
1018
|
+
Q1: pass
|
|
1019
|
+
Q2: pass
|
|
1020
|
+
Q3: concern
|
|
1021
|
+
Q4: pass
|
|
1022
|
+
Q5: pass
|
|
1023
|
+
Q6: pass
|
|
1024
|
+
Q7: pass
|
|
1025
|
+
Q8: pass
|
|
1026
|
+
Q9: concern
|
|
1027
|
+
Q10: pass
|
|
1028
|
+
findings:
|
|
1029
|
+
- severity: minor
|
|
1030
|
+
question: Q3
|
|
1031
|
+
description: "YARD criterion said '0 undocumented warnings' but actual enforcement is 40% threshold"
|
|
1032
|
+
resolution: "Updated criterion and examples to reflect 40% YARD tag threshold with 100% target"
|
|
1033
|
+
- severity: minor
|
|
1034
|
+
question: Q9
|
|
1035
|
+
description: "Version 0.1.0 but content is comprehensive with all artifacts implemented"
|
|
1036
|
+
resolution: "Bumped version to 0.2.0; set status to implemented"
|
|
1037
|
+
|
|
1038
|
+
conf/design/testing.yml:
|
|
1039
|
+
status: signed_off
|
|
1040
|
+
reviewer: claude
|
|
1041
|
+
review_date: "2026-03-17"
|
|
1042
|
+
sign_off_date: "2026-03-17"
|
|
1043
|
+
verdict: approved_with_notes
|
|
1044
|
+
intent: "Validate testing strategy with mutation testing, property-based tests, and snapshot baselines"
|
|
1045
|
+
answers:
|
|
1046
|
+
Q1: pass
|
|
1047
|
+
Q2: pass
|
|
1048
|
+
Q3: concern
|
|
1049
|
+
Q4: pass
|
|
1050
|
+
Q5: pass
|
|
1051
|
+
Q6: concern
|
|
1052
|
+
Q7: pass
|
|
1053
|
+
Q8: pass
|
|
1054
|
+
Q9: pass
|
|
1055
|
+
Q10: pass
|
|
1056
|
+
findings:
|
|
1057
|
+
- severity: minor
|
|
1058
|
+
question: Q3
|
|
1059
|
+
description: "SimpleCov thresholds said 90% line / 80% per-file but actuals are 88% / 25%"
|
|
1060
|
+
resolution: "Updated constraint to reflect baselines (88% line, 25% per-file) with target notes"
|
|
1061
|
+
- severity: minor
|
|
1062
|
+
question: Q6
|
|
1063
|
+
description: "Rantly generators file missing; property tests exist but in individual spec files"
|
|
1064
|
+
resolution: "Created spec/support/rantly_generators.rb; existing property tests validated"
|