rosett-ai 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (527) hide show
  1. checksums.yaml +7 -0
  2. data/.ai-provenance.yml +119 -0
  3. data/.debride_whitelist +186 -0
  4. data/.fasterer.yml +29 -0
  5. data/.mdl_style.rb +10 -0
  6. data/.mdlrc +3 -0
  7. data/.mutant.yml +49 -0
  8. data/.namespace-allowlist +42 -0
  9. data/.reek.yml +1040 -0
  10. data/.rosett-ai/config.yml +3 -0
  11. data/.rspec +5 -0
  12. data/.rubocop.yml +380 -0
  13. data/.ruby-version +1 -0
  14. data/.yamllint +51 -0
  15. data/.yardopts +12 -0
  16. data/AI-DISCLOSURE.md +48 -0
  17. data/CHANGELOG.md +519 -0
  18. data/CLAUDE.md +141 -0
  19. data/CONTRIBUTING.md +734 -0
  20. data/INSTALL.md +154 -0
  21. data/LICENSE +674 -0
  22. data/LICENSE.md +675 -0
  23. data/QUICKSTART.md +73 -0
  24. data/README.md +366 -0
  25. data/Rakefile +200 -0
  26. data/SECURITY.md +114 -0
  27. data/bin/rai +1 -0
  28. data/cliff.toml +52 -0
  29. data/conf/adopt_redactions.yml +8 -0
  30. data/conf/behaviour/.gitkeep +0 -0
  31. data/conf/compliance/cra_rules.yml +25 -0
  32. data/conf/compliance/license_rules.yml +20 -0
  33. data/conf/design/aaif_alignment.yml +181 -0
  34. data/conf/design/ab_testing.yml +172 -0
  35. data/conf/design/accessibility.yml +84 -0
  36. data/conf/design/ai_authorship.yml +210 -0
  37. data/conf/design/ai_provenance.yml +224 -0
  38. data/conf/design/ai_tool_configuration.yml +207 -0
  39. data/conf/design/architecture.yml +139 -0
  40. data/conf/design/autocompletion.yml +115 -0
  41. data/conf/design/backward_compatibility.yml +112 -0
  42. data/conf/design/behaviour_composition.yml +246 -0
  43. data/conf/design/build_rake_extraction.yml +57 -0
  44. data/conf/design/ci_pipeline.yml +100 -0
  45. data/conf/design/claude_code_configuration.yml +157 -0
  46. data/conf/design/compiler.yml +128 -0
  47. data/conf/design/comply.yml +153 -0
  48. data/conf/design/content_packs.yml +84 -0
  49. data/conf/design/desktop_integration.yml +289 -0
  50. data/conf/design/distribution.yml +216 -0
  51. data/conf/design/doctor.yml +184 -0
  52. data/conf/design/documentation.yml +152 -0
  53. data/conf/design/engine_architecture.yml +257 -0
  54. data/conf/design/error_handling.yml +103 -0
  55. data/conf/design/feature_flags.yml +142 -0
  56. data/conf/design/git_hooks.yml +165 -0
  57. data/conf/design/gui_plugins.yml +475 -0
  58. data/conf/design/i18n.yml +84 -0
  59. data/conf/design/integration_testing.yml +56 -0
  60. data/conf/design/licensing_system.yml +88 -0
  61. data/conf/design/lifecycle_management.yml +208 -0
  62. data/conf/design/mcp_integration.yml +207 -0
  63. data/conf/design/mcp_settings.yml +126 -0
  64. data/conf/design/migration.yml +56 -0
  65. data/conf/design/monitoring_observability.yml +194 -0
  66. data/conf/design/namespace_cleanup.yml +145 -0
  67. data/conf/design/plugin_test_segregation.yml +145 -0
  68. data/conf/design/policy_management.yml +229 -0
  69. data/conf/design/project_management.yml +183 -0
  70. data/conf/design/rai_mcp_asset_discovery.yml +164 -0
  71. data/conf/design/rai_mcp_server.yml +605 -0
  72. data/conf/design/release_management.yml +117 -0
  73. data/conf/design/retrofit.yml +199 -0
  74. data/conf/design/retrospective_analyzer.yml +79 -0
  75. data/conf/design/scope_hierarchy.yml +352 -0
  76. data/conf/design/security.yml +115 -0
  77. data/conf/design/session_retrospective.yml +85 -0
  78. data/conf/design/smart_ui_feedback.yml +89 -0
  79. data/conf/design/structured_logging.yml +148 -0
  80. data/conf/design/styles.yml +123 -0
  81. data/conf/design/test_peer_review.yml +89 -0
  82. data/conf/design/testing.yml +136 -0
  83. data/conf/design/threat_model.yml +108 -0
  84. data/conf/design/ui_framework.yml +111 -0
  85. data/conf/design/usage_optimization.yml +122 -0
  86. data/conf/design/version_management.yml +60 -0
  87. data/conf/design/workflow.yml +227 -0
  88. data/conf/mcp/server_defaults.yml +42 -0
  89. data/conf/mcp/trust.yml +21 -0
  90. data/conf/packaging/core.yml +12 -0
  91. data/conf/packaging/gtk4.yml +11 -0
  92. data/conf/packaging/qt6.yml +11 -0
  93. data/conf/policy/default_deny_list.yml +197 -0
  94. data/conf/review/cli-command-audit.yml +857 -0
  95. data/conf/review/design-docs.yml +1064 -0
  96. data/conf/review/design-questionnaire.yml +153 -0
  97. data/conf/review/questionnaire.yml +146 -0
  98. data/conf/review/rosett-ai-core.yml +2919 -0
  99. data/conf/schemas/ai_config_schema.json +73 -0
  100. data/conf/schemas/behaviour_schema.json +132 -0
  101. data/conf/schemas/compliance_rule_schema.json +63 -0
  102. data/conf/schemas/content_pack_manifest_schema.json +51 -0
  103. data/conf/schemas/design_schema.json +210 -0
  104. data/conf/schemas/engine_manifest_schema.json +144 -0
  105. data/conf/schemas/lockfile_schema.json +74 -0
  106. data/conf/schemas/mcp_server_schema.json +48 -0
  107. data/conf/schemas/packaging_schema.json +70 -0
  108. data/conf/schemas/policy_schema.json +85 -0
  109. data/conf/schemas/provenance_schema.json +84 -0
  110. data/conf/schemas/rai_config_schema.json +56 -0
  111. data/conf/schemas/rai_project_schema.json +20 -0
  112. data/conf/schemas/scope_hierarchy_schema.json +49 -0
  113. data/conf/schemas/target_schema.json +67 -0
  114. data/conf/schemas/tooling_schema.json +65 -0
  115. data/conf/schemas/workflow_schema.json +112 -0
  116. data/conf/targets/agents_md.yml +17 -0
  117. data/conf/targets/claude.yml +12 -0
  118. data/conf/tooling/tools.yml +58 -0
  119. data/dist/rosett-ai-mcp.service +48 -0
  120. data/dist/rosett-ai-mcp.yml.default +45 -0
  121. data/doc/AAIF_POSITIONING.md +58 -0
  122. data/doc/ADOPT.md +224 -0
  123. data/doc/AI_PROVENANCE.md +139 -0
  124. data/doc/ARCHITECTURE.md +920 -0
  125. data/doc/BEHAVIOUR.md +409 -0
  126. data/doc/BUILD.md +138 -0
  127. data/doc/CI_CD_RECIPES.md +171 -0
  128. data/doc/CLAUDE_SESSIONS_MOVED.md +16 -0
  129. data/doc/COMMAND_ANALYSIS.md +229 -0
  130. data/doc/CONFIGURATION.md +281 -0
  131. data/doc/DESIGN_AUDIT.md +235 -0
  132. data/doc/DESIGN_PEER_REVIEW.md +771 -0
  133. data/doc/DESKTOP.md +447 -0
  134. data/doc/ENGINES.md +567 -0
  135. data/doc/ENGINE_DEVELOPMENT_GUIDE.md +417 -0
  136. data/doc/FEATURE_AUDIT.md +218 -0
  137. data/doc/IMPLEMENTATION_PLAN.md +669 -0
  138. data/doc/INCIDENT_REPORT_2026-02-02.md +251 -0
  139. data/doc/MIGRATION_GUIDE.md +88 -0
  140. data/doc/PACKAGING.md +232 -0
  141. data/doc/PROJECT_DASHBOARD.md +153 -0
  142. data/doc/PULP_DEPLOYMENT.md +164 -0
  143. data/doc/QUALITY_FIX_SUMMARY.md +110 -0
  144. data/doc/QUICK_START.md +162 -0
  145. data/doc/REEK_CONFIGURATION.md +166 -0
  146. data/doc/REFERENCE.md +253 -0
  147. data/doc/REFERENCES.md +324 -0
  148. data/doc/SECURITY_REVIEW_CHECKLIST.md +72 -0
  149. data/doc/SESSION_2026-02-28_GTK4_HARDENING.md +359 -0
  150. data/doc/SETUP.md +202 -0
  151. data/doc/TEST_PEER_REVIEW.md +152 -0
  152. data/doc/THREAT_MODEL.md +230 -0
  153. data/doc/USAGE.md +545 -0
  154. data/doc/USER_MANUAL.md +585 -0
  155. data/doc/ai_test_review_checklist.md +110 -0
  156. data/doc/changes/2026-02-18-packaging-fpm.md +155 -0
  157. data/doc/changes/2026-02-19-testing-infrastructure.md +221 -0
  158. data/doc/changes/2026-02-20-security-implementation.md +281 -0
  159. data/doc/changes/2026-02-20-styles-implementation.md +220 -0
  160. data/doc/changes/2026-02-21-architecture-completion.md +95 -0
  161. data/doc/changes/2026-02-21-architecture-ui-layer.md +253 -0
  162. data/doc/changes/2026-02-21-cc-config-implementation.md +108 -0
  163. data/doc/changes/2026-02-21-ci-pipeline-implementation.md +214 -0
  164. data/doc/changes/2026-02-21-compiler-multi-target-pipeline.md +241 -0
  165. data/doc/changes/2026-02-21-config-design-show-commands.md +61 -0
  166. data/doc/changes/2026-02-21-design-implementation-overview.md +455 -0
  167. data/doc/changes/2026-02-21-lifecycle-management.md +196 -0
  168. data/doc/changes/2026-02-21-path-resolver.md +128 -0
  169. data/doc/changes/2026-02-24-ci-tmpdir-mutant-fetch.md +45 -0
  170. data/doc/changes/2026-03-01-ci-bundler-strategy.md +120 -0
  171. data/doc/changes/2026-03-20-security-hardening-phase2.md +163 -0
  172. data/doc/context/SESSION-HANDOFF.md +69 -0
  173. data/doc/context/ai-engine-usage-trends-2026.md +80 -0
  174. data/doc/context/plan-pluggable-engines.md +590 -0
  175. data/doc/decisions/001-flog-deferred.md +32 -0
  176. data/doc/decisions/002-path-resolution-strategy.md +158 -0
  177. data/doc/decisions/003-ui-adapter-selection.md +193 -0
  178. data/doc/decisions/004-design-document-validation.md +179 -0
  179. data/doc/decisions/005-package-splitting-strategy.md +200 -0
  180. data/doc/decisions/006-multi-engine-architecture.md +147 -0
  181. data/doc/decisions/007-engine-agnostic-pivot.md +219 -0
  182. data/doc/decisions/008-ci-bundler-strategy.md +129 -0
  183. data/doc/decisions/009-core-only-v1-release.md +60 -0
  184. data/doc/decisions/010-engine-debian-packaging.md +66 -0
  185. data/doc/decisions/011-context-aware-cli.md +71 -0
  186. data/doc/dependency_decisions.yml +247 -0
  187. data/doc/issues/001-wrapper-missing-environment-variables.md +197 -0
  188. data/doc/issues/002-embedded-ruby-wrong-prefix.md +217 -0
  189. data/doc/issues/003-smoke-test-false-positive.md +127 -0
  190. data/doc/issues/004-market-research-design-updates.md +109 -0
  191. data/doc/issues/005-compile-scope-coexistence.md +161 -0
  192. data/doc/locales/.gitkeep +0 -0
  193. data/doc/man/rai.1.ronn +505 -0
  194. data/doc/operations/packaging.md +133 -0
  195. data/doc/operations/rosett-ai-release.md +65 -0
  196. data/doc/reference/error-catalog.md +107 -0
  197. data/doc/reference/rosett-ai-technical-reference.pdf +0 -0
  198. data/doc/reference/src/Pictures/cover.jpg +0 -0
  199. data/doc/reference/src/Pictures/head1.jpg +0 -0
  200. data/doc/reference/src/Pictures/head2.jpg +0 -0
  201. data/doc/reference/src/Pictures/head3.jpg +0 -0
  202. data/doc/reference/src/Pictures/head4.jpg +0 -0
  203. data/doc/reference/src/Pictures/head5.jpg +0 -0
  204. data/doc/reference/src/Pictures/head6.jpg +0 -0
  205. data/doc/reference/src/Pictures/head7.jpg +0 -0
  206. data/doc/reference/src/Pictures/head8.jpg +0 -0
  207. data/doc/reference/src/StyleInd.ist +4 -0
  208. data/doc/reference/src/bibliography.bib +79 -0
  209. data/doc/reference/src/main.tex +1288 -0
  210. data/doc/reference/src/structure.tex +303 -0
  211. data/doc/rosett-ai-bookmarks.html +301 -0
  212. data/kitchen.yml +46 -0
  213. data/lib/rosett_ai/adopter/executor_resolver.rb +77 -0
  214. data/lib/rosett_ai/adopter/local_analysis_collector.rb +154 -0
  215. data/lib/rosett_ai/adopter/rule_adopter.rb +254 -0
  216. data/lib/rosett_ai/ai_config/config_compiler.rb +111 -0
  217. data/lib/rosett_ai/ai_config/context_window.rb +55 -0
  218. data/lib/rosett_ai/ai_config/cost_controls.rb +44 -0
  219. data/lib/rosett_ai/ai_config/fallback_chain.rb +64 -0
  220. data/lib/rosett_ai/ai_config/model_router.rb +121 -0
  221. data/lib/rosett_ai/ai_config/validator.rb +45 -0
  222. data/lib/rosett_ai/authorship/attribution_compiler.rb +99 -0
  223. data/lib/rosett_ai/authorship/disclosure_policy.rb +81 -0
  224. data/lib/rosett_ai/authorship/review_validator.rb +39 -0
  225. data/lib/rosett_ai/authorship/trailer_generator.rb +88 -0
  226. data/lib/rosett_ai/backup/compressor.rb +180 -0
  227. data/lib/rosett_ai/backup/destination.rb +91 -0
  228. data/lib/rosett_ai/behaviour/manager.rb +156 -0
  229. data/lib/rosett_ai/compiler/backend.rb +86 -0
  230. data/lib/rosett_ai/compiler/backends/agents_md_backend.rb +80 -0
  231. data/lib/rosett_ai/compiler/backends/claude_backend.rb +88 -0
  232. data/lib/rosett_ai/compiler/backends/generic_backend.rb +15 -0
  233. data/lib/rosett_ai/compiler/behaviour_compiler.rb +40 -0
  234. data/lib/rosett_ai/compiler/capability_checker.rb +104 -0
  235. data/lib/rosett_ai/compiler/compilation_pipeline.rb +361 -0
  236. data/lib/rosett_ai/compiler/compiled_output.rb +39 -0
  237. data/lib/rosett_ai/compiler/locale_compiler.rb +250 -0
  238. data/lib/rosett_ai/compiler/target_profile.rb +112 -0
  239. data/lib/rosett_ai/completion/generator.rb +101 -0
  240. data/lib/rosett_ai/completion/shells/bash_generator.rb +126 -0
  241. data/lib/rosett_ai/completion/shells/fish_generator.rb +78 -0
  242. data/lib/rosett_ai/completion/shells/zsh_generator.rb +126 -0
  243. data/lib/rosett_ai/comply/checkers/cra_checker.rb +102 -0
  244. data/lib/rosett_ai/comply/checkers/license_checker.rb +85 -0
  245. data/lib/rosett_ai/comply/checkers/spdx_header_checker.rb +98 -0
  246. data/lib/rosett_ai/comply/reporter.rb +113 -0
  247. data/lib/rosett_ai/comply/runner.rb +50 -0
  248. data/lib/rosett_ai/composition/circular_dependency_detector.rb +56 -0
  249. data/lib/rosett_ai/composition/composer.rb +158 -0
  250. data/lib/rosett_ai/composition/composition_result.rb +64 -0
  251. data/lib/rosett_ai/composition/conflict_detector.rb +53 -0
  252. data/lib/rosett_ai/composition/lockfile.rb +103 -0
  253. data/lib/rosett_ai/composition/merge_strategy.rb +131 -0
  254. data/lib/rosett_ai/composition/priority_sorter.rb +29 -0
  255. data/lib/rosett_ai/composition/scope_resolver.rb +55 -0
  256. data/lib/rosett_ai/config/compile_result.rb +37 -0
  257. data/lib/rosett_ai/config/compiler.rb +13 -0
  258. data/lib/rosett_ai/config/domain_transformer.rb +13 -0
  259. data/lib/rosett_ai/config/key_map.rb +13 -0
  260. data/lib/rosett_ai/config/masking_secret_resolver.rb +40 -0
  261. data/lib/rosett_ai/config/scope_router.rb +13 -0
  262. data/lib/rosett_ai/config/secret_resolver.rb +125 -0
  263. data/lib/rosett_ai/configuration.rb +119 -0
  264. data/lib/rosett_ai/content/content_client.rb +60 -0
  265. data/lib/rosett_ai/content/pack_installer.rb +117 -0
  266. data/lib/rosett_ai/content/pack_manifest.rb +50 -0
  267. data/lib/rosett_ai/content/pack_registry.rb +68 -0
  268. data/lib/rosett_ai/content_packs/manager.rb +50 -0
  269. data/lib/rosett_ai/dbus/compositor_detector.rb +77 -0
  270. data/lib/rosett_ai/dbus/focus_adapters/base.rb +59 -0
  271. data/lib/rosett_ai/dbus/focus_adapters/gnome_adapter.rb +172 -0
  272. data/lib/rosett_ai/dbus/focus_adapters/hyprland_adapter.rb +77 -0
  273. data/lib/rosett_ai/dbus/focus_adapters/i3_adapter.rb +65 -0
  274. data/lib/rosett_ai/dbus/focus_adapters/kwin_adapter.rb +103 -0
  275. data/lib/rosett_ai/dbus/focus_adapters/x11_adapter.rb +105 -0
  276. data/lib/rosett_ai/dbus/focus_monitor_interface.rb +103 -0
  277. data/lib/rosett_ai/dbus/manager_interface.rb +213 -0
  278. data/lib/rosett_ai/dbus/plugin_manager_interface.rb +169 -0
  279. data/lib/rosett_ai/dbus/rate_limiter.rb +89 -0
  280. data/lib/rosett_ai/dbus/service.rb +121 -0
  281. data/lib/rosett_ai/dbus/status_notifier_interface.rb +79 -0
  282. data/lib/rosett_ai/deprecation.rb +79 -0
  283. data/lib/rosett_ai/desktop/dbus_client.rb +259 -0
  284. data/lib/rosett_ai/desktop/gtk4_app.rb +371 -0
  285. data/lib/rosett_ai/desktop/gtk4_preferences.rb +331 -0
  286. data/lib/rosett_ai/desktop/gui_logger.rb +236 -0
  287. data/lib/rosett_ai/doctor/check.rb +92 -0
  288. data/lib/rosett_ai/doctor/checks/cache_health_check.rb +50 -0
  289. data/lib/rosett_ai/doctor/checks/dbus_availability_check.rb +39 -0
  290. data/lib/rosett_ai/doctor/checks/engine_detection_check.rb +46 -0
  291. data/lib/rosett_ai/doctor/checks/file_permission_check.rb +44 -0
  292. data/lib/rosett_ai/doctor/checks/gem_dependency_check.rb +55 -0
  293. data/lib/rosett_ai/doctor/checks/ruby_version_check.rb +50 -0
  294. data/lib/rosett_ai/doctor/checks/stale_config_nncc_check.rb +57 -0
  295. data/lib/rosett_ai/doctor/checks/stale_home_nncc_check.rb +59 -0
  296. data/lib/rosett_ai/doctor.rb +81 -0
  297. data/lib/rosett_ai/documentation/reference_compiler.rb +122 -0
  298. data/lib/rosett_ai/documentation/translator.rb +62 -0
  299. data/lib/rosett_ai/engines/base_config_compiler.rb +203 -0
  300. data/lib/rosett_ai/engines/detector.rb +63 -0
  301. data/lib/rosett_ai/engines/registry.rb +50 -0
  302. data/lib/rosett_ai/error_handler.rb +139 -0
  303. data/lib/rosett_ai/exit_codes.rb +76 -0
  304. data/lib/rosett_ai/feature_flags.rb +102 -0
  305. data/lib/rosett_ai/formatting.rb +33 -0
  306. data/lib/rosett_ai/gem_consistency_checker.rb +199 -0
  307. data/lib/rosett_ai/git_hooks/chain_detector.rb +86 -0
  308. data/lib/rosett_ai/git_hooks/installer.rb +175 -0
  309. data/lib/rosett_ai/git_hooks/script_generator.rb +125 -0
  310. data/lib/rosett_ai/gitlab/validators/supplementary_gitlab_ci_yaml_validator.rb +79 -0
  311. data/lib/rosett_ai/i18n/locale_resolver.rb +46 -0
  312. data/lib/rosett_ai/i18n/utf8_checker.rb +32 -0
  313. data/lib/rosett_ai/init/config_file_writer.rb +24 -0
  314. data/lib/rosett_ai/init/directory_builder.rb +38 -0
  315. data/lib/rosett_ai/init/file_copier.rb +95 -0
  316. data/lib/rosett_ai/init/global_initializer.rb +28 -0
  317. data/lib/rosett_ai/init/local_initializer.rb +27 -0
  318. data/lib/rosett_ai/init/mcp_registrar.rb +109 -0
  319. data/lib/rosett_ai/init/project_initializer.rb +38 -0
  320. data/lib/rosett_ai/licensing/license_key.rb +139 -0
  321. data/lib/rosett_ai/licensing/license_store.rb +64 -0
  322. data/lib/rosett_ai/licensing/license_validator.rb +60 -0
  323. data/lib/rosett_ai/licensing/tier.rb +42 -0
  324. data/lib/rosett_ai/mcp/admin/auditor.rb +88 -0
  325. data/lib/rosett_ai/mcp/admin/health_checker.rb +81 -0
  326. data/lib/rosett_ai/mcp/admin/registry.rb +100 -0
  327. data/lib/rosett_ai/mcp/admin/schema_validator.rb +63 -0
  328. data/lib/rosett_ai/mcp/enforcement/.gitkeep +0 -0
  329. data/lib/rosett_ai/mcp/enforcement/hook_generator.rb +197 -0
  330. data/lib/rosett_ai/mcp/enforcement/validator.rb +215 -0
  331. data/lib/rosett_ai/mcp/governance.rb +160 -0
  332. data/lib/rosett_ai/mcp/http_security_config.rb +158 -0
  333. data/lib/rosett_ai/mcp/instructions.rb +266 -0
  334. data/lib/rosett_ai/mcp/key_hasher.rb +66 -0
  335. data/lib/rosett_ai/mcp/keyfile.rb +221 -0
  336. data/lib/rosett_ai/mcp/middleware/authentication.rb +146 -0
  337. data/lib/rosett_ai/mcp/middleware/content_type.rb +56 -0
  338. data/lib/rosett_ai/mcp/middleware/cors.rb +83 -0
  339. data/lib/rosett_ai/mcp/middleware/origin_validation.rb +73 -0
  340. data/lib/rosett_ai/mcp/middleware/rate_limit.rb +106 -0
  341. data/lib/rosett_ai/mcp/middleware/request_size.rb +51 -0
  342. data/lib/rosett_ai/mcp/plugins.rb +143 -0
  343. data/lib/rosett_ai/mcp/prompts/compilation_prompt.rb +40 -0
  344. data/lib/rosett_ai/mcp/prompts/compliance_prompt.rb +41 -0
  345. data/lib/rosett_ai/mcp/prompts/diagnostics_prompt.rb +41 -0
  346. data/lib/rosett_ai/mcp/prompts/validation_prompt.rb +41 -0
  347. data/lib/rosett_ai/mcp/resources/behaviour_resource.rb +127 -0
  348. data/lib/rosett_ai/mcp/resources/config_resource.rb +72 -0
  349. data/lib/rosett_ai/mcp/resources/design_resource.rb +58 -0
  350. data/lib/rosett_ai/mcp/resources/hooks_resource.rb +74 -0
  351. data/lib/rosett_ai/mcp/resources/provenance_resource.rb +51 -0
  352. data/lib/rosett_ai/mcp/resources/rules_resource.rb +60 -0
  353. data/lib/rosett_ai/mcp/resources/schema_resource.rb +72 -0
  354. data/lib/rosett_ai/mcp/response_helper.rb +46 -0
  355. data/lib/rosett_ai/mcp/security_logger.rb +60 -0
  356. data/lib/rosett_ai/mcp/server.rb +212 -0
  357. data/lib/rosett_ai/mcp/settings/server_installer.rb +112 -0
  358. data/lib/rosett_ai/mcp/settings/trust_manager.rb +142 -0
  359. data/lib/rosett_ai/mcp/tools/adopt_tool.rb +70 -0
  360. data/lib/rosett_ai/mcp/tools/backup_tool.rb +64 -0
  361. data/lib/rosett_ai/mcp/tools/behaviour_display_tool.rb +72 -0
  362. data/lib/rosett_ai/mcp/tools/behaviour_list_tool.rb +56 -0
  363. data/lib/rosett_ai/mcp/tools/behaviour_manage_tool.rb +114 -0
  364. data/lib/rosett_ai/mcp/tools/behaviour_show_tool.rb +62 -0
  365. data/lib/rosett_ai/mcp/tools/compile_status_tool.rb +122 -0
  366. data/lib/rosett_ai/mcp/tools/compile_tool.rb +191 -0
  367. data/lib/rosett_ai/mcp/tools/comply_tool.rb +79 -0
  368. data/lib/rosett_ai/mcp/tools/config_compile_tool.rb +71 -0
  369. data/lib/rosett_ai/mcp/tools/config_status_tool.rb +79 -0
  370. data/lib/rosett_ai/mcp/tools/content_tool.rb +78 -0
  371. data/lib/rosett_ai/mcp/tools/context_query_tool.rb +156 -0
  372. data/lib/rosett_ai/mcp/tools/design_list_tool.rb +57 -0
  373. data/lib/rosett_ai/mcp/tools/design_show_tool.rb +69 -0
  374. data/lib/rosett_ai/mcp/tools/doctor_tool.rb +62 -0
  375. data/lib/rosett_ai/mcp/tools/documentation_status_tool.rb +45 -0
  376. data/lib/rosett_ai/mcp/tools/engines_tool.rb +84 -0
  377. data/lib/rosett_ai/mcp/tools/hook_install_tool.rb +190 -0
  378. data/lib/rosett_ai/mcp/tools/hook_preview_tool.rb +173 -0
  379. data/lib/rosett_ai/mcp/tools/hooks_status_tool.rb +84 -0
  380. data/lib/rosett_ai/mcp/tools/init_tool.rb +87 -0
  381. data/lib/rosett_ai/mcp/tools/license_status_tool.rb +44 -0
  382. data/lib/rosett_ai/mcp/tools/project_tool.rb +117 -0
  383. data/lib/rosett_ai/mcp/tools/provenance_tool.rb +97 -0
  384. data/lib/rosett_ai/mcp/tools/provenance_write_tool.rb +40 -0
  385. data/lib/rosett_ai/mcp/tools/retrofit_tool.rb +81 -0
  386. data/lib/rosett_ai/mcp/tools/rule_search_tool.rb +163 -0
  387. data/lib/rosett_ai/mcp/tools/schema_get_tool.rb +94 -0
  388. data/lib/rosett_ai/mcp/tools/tooling_tool.rb +86 -0
  389. data/lib/rosett_ai/mcp/tools/validate_tool.rb +105 -0
  390. data/lib/rosett_ai/mcp/tools/workflow_execute_tool.rb +74 -0
  391. data/lib/rosett_ai/mcp/tools/workflow_tool.rb +78 -0
  392. data/lib/rosett_ai/migration/detector.rb +117 -0
  393. data/lib/rosett_ai/migration/nncc_config_migrator.rb +94 -0
  394. data/lib/rosett_ai/migration/nncc_project_migrator.rb +90 -0
  395. data/lib/rosett_ai/migration/xdg_migrator.rb +123 -0
  396. data/lib/rosett_ai/package_manager/apt.rb +108 -0
  397. data/lib/rosett_ai/package_manager/base.rb +68 -0
  398. data/lib/rosett_ai/package_manager/gem_backend.rb +90 -0
  399. data/lib/rosett_ai/packaging/variant_config.rb +92 -0
  400. data/lib/rosett_ai/path_resolver.rb +115 -0
  401. data/lib/rosett_ai/plugins/contract.rb +43 -0
  402. data/lib/rosett_ai/plugins/engine_contract.rb +60 -0
  403. data/lib/rosett_ai/plugins/gui_contract.rb +74 -0
  404. data/lib/rosett_ai/plugins/mcp_contract.rb +48 -0
  405. data/lib/rosett_ai/plugins/registry.rb +150 -0
  406. data/lib/rosett_ai/policy/auditor.rb +41 -0
  407. data/lib/rosett_ai/policy/deny_list.rb +71 -0
  408. data/lib/rosett_ai/policy/opt_out_scanner.rb +37 -0
  409. data/lib/rosett_ai/policy/policy_compiler.rb +84 -0
  410. data/lib/rosett_ai/policy/protected_files.rb +47 -0
  411. data/lib/rosett_ai/policy/tier_hierarchy.rb +48 -0
  412. data/lib/rosett_ai/policy/validator.rb +35 -0
  413. data/lib/rosett_ai/profiler.rb +79 -0
  414. data/lib/rosett_ai/project/drift_detector.rb +126 -0
  415. data/lib/rosett_ai/project/manager.rb +115 -0
  416. data/lib/rosett_ai/project/sync_manager.rb +138 -0
  417. data/lib/rosett_ai/project/template_applier.rb +105 -0
  418. data/lib/rosett_ai/project_context.rb +82 -0
  419. data/lib/rosett_ai/provenance/entry.rb +63 -0
  420. data/lib/rosett_ai/provenance/file_source.rb +32 -0
  421. data/lib/rosett_ai/provenance/source.rb +62 -0
  422. data/lib/rosett_ai/provenance/store.rb +153 -0
  423. data/lib/rosett_ai/provenance/tracker.rb +62 -0
  424. data/lib/rosett_ai/provenance/trailer_generator.rb +43 -0
  425. data/lib/rosett_ai/provenance/validator.rb +45 -0
  426. data/lib/rosett_ai/quorum/collector.rb +59 -0
  427. data/lib/rosett_ai/quorum/comparator.rb +81 -0
  428. data/lib/rosett_ai/quorum/dispatcher.rb +57 -0
  429. data/lib/rosett_ai/quorum/strategies/adopt.rb +56 -0
  430. data/lib/rosett_ai/rai_config.rb +107 -0
  431. data/lib/rosett_ai/retrofit/base_parser.rb +66 -0
  432. data/lib/rosett_ai/retrofit/engine.rb +171 -0
  433. data/lib/rosett_ai/retrofit/parsers/agents_md_parser.rb +50 -0
  434. data/lib/rosett_ai/retrofit/parsers/claude_parser.rb +69 -0
  435. data/lib/rosett_ai/retrofit/parsers/cursor_parser.rb +82 -0
  436. data/lib/rosett_ai/retrofit/round_trip_validator.rb +65 -0
  437. data/lib/rosett_ai/retrofit/scanner.rb +47 -0
  438. data/lib/rosett_ai/retrofit/secret_detector.rb +87 -0
  439. data/lib/rosett_ai/secrets_resolver.rb +71 -0
  440. data/lib/rosett_ai/smart_feedback/suggester.rb +83 -0
  441. data/lib/rosett_ai/smart_feedback/thor_middleware.rb +84 -0
  442. data/lib/rosett_ai/structured_logger.rb +110 -0
  443. data/lib/rosett_ai/telemetry/json_lines_writer.rb +50 -0
  444. data/lib/rosett_ai/telemetry/log_rotator.rb +67 -0
  445. data/lib/rosett_ai/telemetry/provider.rb +26 -0
  446. data/lib/rosett_ai/telemetry/reporter.rb +144 -0
  447. data/lib/rosett_ai/telemetry.rb +47 -0
  448. data/lib/rosett_ai/text_sanitizer.rb +62 -0
  449. data/lib/rosett_ai/thor/cli.rb +269 -0
  450. data/lib/rosett_ai/thor/tasks/adopt.rb +250 -0
  451. data/lib/rosett_ai/thor/tasks/backup.rb +420 -0
  452. data/lib/rosett_ai/thor/tasks/behaviour.rb +474 -0
  453. data/lib/rosett_ai/thor/tasks/build.rb +1162 -0
  454. data/lib/rosett_ai/thor/tasks/compile.rb +415 -0
  455. data/lib/rosett_ai/thor/tasks/completion.rb +123 -0
  456. data/lib/rosett_ai/thor/tasks/comply.rb +82 -0
  457. data/lib/rosett_ai/thor/tasks/config.rb +265 -0
  458. data/lib/rosett_ai/thor/tasks/content.rb +193 -0
  459. data/lib/rosett_ai/thor/tasks/dbus.rb +321 -0
  460. data/lib/rosett_ai/thor/tasks/design.rb +258 -0
  461. data/lib/rosett_ai/thor/tasks/desktop.rb +129 -0
  462. data/lib/rosett_ai/thor/tasks/doctor.rb +127 -0
  463. data/lib/rosett_ai/thor/tasks/documentation.rb +321 -0
  464. data/lib/rosett_ai/thor/tasks/engines.rb +167 -0
  465. data/lib/rosett_ai/thor/tasks/hooks.rb +219 -0
  466. data/lib/rosett_ai/thor/tasks/init.rb +259 -0
  467. data/lib/rosett_ai/thor/tasks/license.rb +120 -0
  468. data/lib/rosett_ai/thor/tasks/mcp.rb +535 -0
  469. data/lib/rosett_ai/thor/tasks/migrate.rb +121 -0
  470. data/lib/rosett_ai/thor/tasks/plugins.rb +157 -0
  471. data/lib/rosett_ai/thor/tasks/project.rb +260 -0
  472. data/lib/rosett_ai/thor/tasks/provenance.rb +195 -0
  473. data/lib/rosett_ai/thor/tasks/release.rb +314 -0
  474. data/lib/rosett_ai/thor/tasks/retrofit.rb +90 -0
  475. data/lib/rosett_ai/thor/tasks/tooling.rb +308 -0
  476. data/lib/rosett_ai/thor/tasks/validate.rb +108 -0
  477. data/lib/rosett_ai/thor/tasks/workflow.rb +196 -0
  478. data/lib/rosett_ai/tooling/ci_yaml_validator.rb +37 -0
  479. data/lib/rosett_ai/tooling/version_checker.rb +35 -0
  480. data/lib/rosett_ai/ui/accessible_tui.rb +61 -0
  481. data/lib/rosett_ai/ui/base.rb +46 -0
  482. data/lib/rosett_ai/ui/gtk4.rb +98 -0
  483. data/lib/rosett_ai/ui/kde.rb +40 -0
  484. data/lib/rosett_ai/ui/qt6.rb +40 -0
  485. data/lib/rosett_ai/ui/registry.rb +60 -0
  486. data/lib/rosett_ai/ui/tty_helper.rb +74 -0
  487. data/lib/rosett_ai/ui/tui.rb +59 -0
  488. data/lib/rosett_ai/validators/behaviour_validator.rb +20 -0
  489. data/lib/rosett_ai/validators/design_validator.rb +17 -0
  490. data/lib/rosett_ai/validators/schema_validator.rb +84 -0
  491. data/lib/rosett_ai/validators/tooling_validator.rb +17 -0
  492. data/lib/rosett_ai/version.rb +8 -0
  493. data/lib/rosett_ai/version_consistency_checker.rb +129 -0
  494. data/lib/rosett_ai/workflow/audit_log.rb +86 -0
  495. data/lib/rosett_ai/workflow/engine.rb +142 -0
  496. data/lib/rosett_ai/workflow/manager.rb +82 -0
  497. data/lib/rosett_ai/workflow/schema_validator.rb +71 -0
  498. data/lib/rosett_ai/workflow/step_runner.rb +61 -0
  499. data/lib/rosett_ai/workflow/steps/prompt_step.rb +62 -0
  500. data/lib/rosett_ai/workflow/steps/rai_step.rb +74 -0
  501. data/lib/rosett_ai/workflow/steps/shell_step.rb +53 -0
  502. data/lib/rosett_ai/yaml_loader.rb +78 -0
  503. data/lib/rosett_ai.rb +221 -0
  504. data/lib/rubocop/cop/rosett_ai/shell_interpolation.rb +54 -0
  505. data/lib/rubocop/cop/rosett_ai/unsafe_const_get.rb +60 -0
  506. data/lib/rubocop/cop/rosett_ai/unsafe_send.rb +50 -0
  507. data/lib/rubocop/cop/rosett_ai/unsafe_yaml_load.rb +40 -0
  508. data/lib/rubocop/rosett_ai.rb +9 -0
  509. data/lib/scripts/generated/docker_hub_tags.rb +126 -0
  510. data/locales/.gitkeep +0 -0
  511. data/locales/ar.yml +579 -0
  512. data/locales/en.yml +571 -0
  513. data/locales/fr.yml +567 -0
  514. data/packaging/build-engine-deb.sh +81 -0
  515. data/packaging/scripts/postinst +17 -0
  516. data/packaging/scripts/postrm +19 -0
  517. data/packaging/scripts/prerm +10 -0
  518. data/packaging/wrapper.sh.template +38 -0
  519. data/rosett-ai.gemspec +63 -0
  520. data/rules/.gitkeep +0 -0
  521. data/scripts/publish/pulp_upload.sh +123 -0
  522. data/settings.json +29 -0
  523. data/share/applications/be.neatnerds.rosettai.desktop +29 -0
  524. data/share/dbus-1/interfaces/be.neatnerds.rosettai.xml +103 -0
  525. data/share/dbus-1/services/be.neatnerds.rosettai.service +3 -0
  526. data/share/templates/behaviour/criticalthinking.yml +69 -0
  527. metadata +810 -0
@@ -0,0 +1,771 @@
1
+ # Design Document Peer Review — Interactive Questionnaire
2
+
3
+ **Date**: 2026-03-15
4
+ **Branch**: `chore/design-peer-review` (MR !36)
5
+ **Questionnaire**: `conf/review/design-questionnaire.yml`
6
+ **Registry**: `conf/review/design-docs.yml`
7
+
8
+ ## How to Use
9
+
10
+ For each document below:
11
+
12
+ 1. Read the AI assessment and excerpts
13
+ 2. Confirm or override each Q1-Q10 verdict (pass / concern / fail)
14
+ 3. Add any findings or comments
15
+ 4. Sign off with your verdict (approved / approved_with_notes / needs_fix / rejected)
16
+
17
+ **Legend**: Verdicts marked with `[AI: pass]` are pre-filled from the AI review.
18
+ Override any you disagree with.
19
+
20
+ ---
21
+
22
+ ## Batch 0: New Documents (3)
23
+
24
+ ### 1/23 — `error_handling.yml`
25
+
26
+ **Domain**: core | **Priority**: P1 | **Version**: 0.1.0 (draft)
27
+ **Depends on**: security, architecture, i18n
28
+
29
+ **Intent excerpt**:
30
+ > Establish a structured error hierarchy, standardised exit codes, and localised
31
+ > error messages for rosett-ai. Every error the user encounters must be actionable —
32
+ > stating what went wrong, why, and how to fix it.
33
+
34
+ | # | Question | AI Verdict | Your Verdict | Notes |
35
+ |---|----------|-----------|-------------|-------|
36
+ | Q1 | Intent Clarity | pass | | |
37
+ | Q2 | Constraint Quality | pass | | |
38
+ | Q3 | Criteria Testability | pass | | |
39
+ | Q4 | Dependency Soundness | pass | | |
40
+ | Q5 | Scope Boundaries | pass | | |
41
+ | Q6 | Implementation Readiness | pass | | |
42
+ | Q7 | Security Alignment | pass | | |
43
+ | Q8 | Engine Agnosticism | pass | | |
44
+ | Q9 | Convention Compliance | pass | | |
45
+ | Q10 | Completeness | pass | | |
46
+
47
+ **AI findings**: None
48
+ **Your verdict**: _______________
49
+ **Sign-off date**: _______________
50
+
51
+ ---
52
+
53
+ ### 2/23 — `threat_model.yml`
54
+
55
+ **Domain**: security | **Priority**: P1 | **Version**: 0.1.0 (draft)
56
+ **Depends on**: security, architecture, engine_architecture, content_packs, licensing_system
57
+
58
+ **Intent excerpt**:
59
+ > Define the adversary model, trust boundaries, and threat scenarios for rosett-ai.
60
+ > Security.yml establishes coding rules; this document maps the attack surface —
61
+ > who might attack, what they target, and which mitigations apply.
62
+
63
+ | # | Question | AI Verdict | Your Verdict | Notes |
64
+ |---|----------|-----------|-------------|-------|
65
+ | Q1 | Intent Clarity | pass | | |
66
+ | Q2 | Constraint Quality | pass | | |
67
+ | Q3 | Criteria Testability | pass | | |
68
+ | Q4 | Dependency Soundness | pass | | |
69
+ | Q5 | Scope Boundaries | pass | | |
70
+ | Q6 | Implementation Readiness | pass | | |
71
+ | Q7 | Security Alignment | pass | | |
72
+ | Q8 | Engine Agnosticism | pass | | |
73
+ | Q9 | Convention Compliance | pass | | |
74
+ | Q10 | Completeness | pass | | |
75
+
76
+ **AI findings**: None
77
+ **Your verdict**: _______________
78
+ **Sign-off date**: _______________
79
+
80
+ ---
81
+
82
+ ### 3/23 — `backward_compatibility.yml`
83
+
84
+ **Domain**: core | **Priority**: P2 | **Version**: 0.1.0 (draft)
85
+ **Depends on**: architecture, security, compiler, engine_architecture
86
+
87
+ **Intent excerpt**:
88
+ > Define the deprecation policy, migration paths, and versioning contracts for
89
+ > rosett-ai. Users and engine authors must know which interfaces are stable, how
90
+ > breaking changes are communicated, and what migration steps are required.
91
+
92
+ | # | Question | AI Verdict | Your Verdict | Notes |
93
+ |---|----------|-----------|-------------|-------|
94
+ | Q1 | Intent Clarity | pass | | |
95
+ | Q2 | Constraint Quality | pass | | |
96
+ | Q3 | Criteria Testability | pass | | |
97
+ | Q4 | Dependency Soundness | pass | | |
98
+ | Q5 | Scope Boundaries | pass | | |
99
+ | Q6 | Implementation Readiness | pass | | |
100
+ | Q7 | Security Alignment | pass | | |
101
+ | Q8 | Engine Agnosticism | pass | | |
102
+ | Q9 | Convention Compliance | pass | | |
103
+ | Q10 | Completeness | pass | | |
104
+
105
+ **AI findings**: None
106
+ **Your verdict**: _______________
107
+ **Sign-off date**: _______________
108
+
109
+ ---
110
+
111
+ ## Batch 1: Core P2 (4)
112
+
113
+ ### 4/23 — `engine_architecture.yml`
114
+
115
+ **Domain**: core | **Priority**: P2 | **Version**: 0.1.0 (draft)
116
+ **Depends on**: architecture, security, testing, compiler
117
+
118
+ **Intent excerpt**:
119
+ > Establish a pluggable engine architecture that enables rosett-ai to manage
120
+ > configuration for multiple AI coding tools from a single set of
121
+ > human-authored YAML source files.
122
+
123
+ | # | Question | AI Verdict | Your Verdict | Notes |
124
+ |---|----------|-----------|-------------|-------|
125
+ | Q1 | Intent Clarity | pass | | Fixed: removed implementation phases from intent |
126
+ | Q2 | Constraint Quality | pass | | |
127
+ | Q3 | Criteria Testability | pass | | |
128
+ | Q4 | Dependency Soundness | pass | | |
129
+ | Q5 | Scope Boundaries | pass | | |
130
+ | Q6 | Implementation Readiness | pass | | |
131
+ | Q7 | Security Alignment | pass | | |
132
+ | Q8 | Engine Agnosticism | pass | | |
133
+ | Q9 | Convention Compliance | pass | | |
134
+ | Q10 | Completeness | pass | | |
135
+
136
+ **AI findings**:
137
+
138
+ - (minor, Q1) Intent included implementation phases — removed
139
+
140
+ **Your verdict**: _______________
141
+ **Sign-off date**: _______________
142
+
143
+ ---
144
+
145
+ ### 5/23 — `ai_tool_configuration.yml`
146
+
147
+ **Domain**: core | **Priority**: P2 | **Version**: 0.1.0 (draft)
148
+ **Depends on**: engine_architecture, security, claude_code_configuration
149
+
150
+ **Intent excerpt**:
151
+ > Establish the engine-agnostic AI tool configuration layer for rosett-ai — model
152
+ > selection, context window settings, token budgets, API routing, and
153
+ > operational parameters that apply across all AI tools.
154
+ >
155
+ > Relationship to claude_code_configuration.yml: that document handles Claude
156
+ > Code's specific settings.json format. This document addresses the universal
157
+ > configuration layer that all engines share.
158
+
159
+ | # | Question | AI Verdict | Your Verdict | Notes |
160
+ |---|----------|-----------|-------------|-------|
161
+ | Q1 | Intent Clarity | pass | | Fixed: removed feature list, added relationship note |
162
+ | Q2 | Constraint Quality | pass | | |
163
+ | Q3 | Criteria Testability | pass | | |
164
+ | Q4 | Dependency Soundness | pass | | Fixed: clarified cc_config relationship |
165
+ | Q5 | Scope Boundaries | pass | | |
166
+ | Q6 | Implementation Readiness | pass | | |
167
+ | Q7 | Security Alignment | pass | | |
168
+ | Q8 | Engine Agnosticism | pass | | |
169
+ | Q9 | Convention Compliance | pass | | |
170
+ | Q10 | Completeness | concern | | Missing interactions section |
171
+
172
+ **AI findings**:
173
+
174
+ - (minor, Q1) Intent listed "Key capabilities" inline — rewritten
175
+ - (minor, Q4) Relationship with claude_code_configuration unclear (audit #2) — clarified
176
+ - (minor, Q10) Missing interactions section — noted for future
177
+
178
+ **Your verdict**: _______________
179
+ **Sign-off date**: _______________
180
+
181
+ ---
182
+
183
+ ### 6/23 — `mcp_integration.yml`
184
+
185
+ **Domain**: core | **Priority**: P2 | **Version**: 0.1.0 (draft)
186
+ **Depends on**: security, architecture, compiler, engine_architecture
187
+
188
+ **Intent excerpt**:
189
+ > Enable rosett-ai to participate in the Model Context Protocol (MCP) ecosystem as
190
+ > both a provider and an administrator.
191
+
192
+ | # | Question | AI Verdict | Your Verdict | Notes |
193
+ |---|----------|-----------|-------------|-------|
194
+ | Q1 | Intent Clarity | pass | | |
195
+ | Q2 | Constraint Quality | pass | | 13 constraints, all testable |
196
+ | Q3 | Criteria Testability | pass | | 16 criteria |
197
+ | Q4 | Dependency Soundness | pass | | Fixed: added engine_architecture |
198
+ | Q5 | Scope Boundaries | pass | | |
199
+ | Q6 | Implementation Readiness | pass | | 8 detailed examples |
200
+ | Q7 | Security Alignment | pass | | |
201
+ | Q8 | Engine Agnosticism | pass | | |
202
+ | Q9 | Convention Compliance | pass | | |
203
+ | Q10 | Completeness | concern | | Missing interactions section |
204
+
205
+ **AI findings**:
206
+
207
+ - (minor, Q4) Missing engine_architecture in depends_on — added
208
+ - (minor, Q10) Missing interactions section — noted for future
209
+
210
+ **Your verdict**: _______________
211
+ **Sign-off date**: _______________
212
+
213
+ ---
214
+
215
+ ### 7/23 — `aaif_alignment.yml`
216
+
217
+ **Domain**: core | **Priority**: P2 | **Version**: 0.1.0 (draft)
218
+ **Depends on**: security, architecture, compiler, mcp_integration
219
+
220
+ **Intent excerpt**:
221
+ > Position rosett-ai as a standards-compliant tool within the Agentic AI Foundation
222
+ > (AAIF) ecosystem by implementing AAIF-governed protocols and compilation
223
+ > targets.
224
+
225
+ | # | Question | AI Verdict | Your Verdict | Notes |
226
+ |---|----------|-----------|-------------|-------|
227
+ | Q1 | Intent Clarity | pass | | Fixed: was "Align rosett-ai with..." |
228
+ | Q2 | Constraint Quality | pass | | Fixed: process-oriented constraint rewritten |
229
+ | Q3 | Criteria Testability | pass | | Fixed: --target → --engine |
230
+ | Q4 | Dependency Soundness | pass | | |
231
+ | Q5 | Scope Boundaries | pass | | |
232
+ | Q6 | Implementation Readiness | pass | | 8 scenarios |
233
+ | Q7 | Security Alignment | pass | | |
234
+ | Q8 | Engine Agnosticism | pass | | |
235
+ | Q9 | Convention Compliance | pass | | Fixed: --target → --engine |
236
+ | Q10 | Completeness | concern | | Missing interactions section |
237
+
238
+ **AI findings**:
239
+
240
+ - (major, Q1) Intent was declarative — rewritten to imperative
241
+ - (major, Q2) "License compatibility must be evaluated" — rewritten to testable boundary
242
+ - (major, Q3) Used --target instead of --engine — fixed
243
+ - (minor, Q10) Missing interactions section
244
+
245
+ **Your verdict**: _______________
246
+ **Sign-off date**: _______________
247
+
248
+ ---
249
+
250
+ ## Batch 2: Core P3 (3)
251
+
252
+ ### 8/23 — `workflow.yml`
253
+
254
+ **Domain**: core | **Priority**: P3 | **Version**: 0.1.0 (draft)
255
+ **Depends on**: architecture, engine_architecture, behaviour_composition, security
256
+
257
+ **Intent excerpt**:
258
+ > Provide repeatable, composable AI-assisted workflows that can be shared
259
+ > across projects and teams. Define and execute multi-step workflows as
260
+ > declarative YAML at three scopes.
261
+
262
+ | # | Question | AI Verdict | Your Verdict | Notes |
263
+ |---|----------|-----------|-------------|-------|
264
+ | Q1 | Intent Clarity | pass | | Fixed: was "Developers need..." |
265
+ | Q2 | Constraint Quality | pass | | 8 constraints |
266
+ | Q3 | Criteria Testability | pass | | 7 criteria |
267
+ | Q4 | Dependency Soundness | pass | | Fixed: added security |
268
+ | Q5 | Scope Boundaries | pass | | |
269
+ | Q6 | Implementation Readiness | pass | | |
270
+ | Q7 | Security Alignment | pass | | Array-form shell constraint |
271
+ | Q8 | Engine Agnosticism | pass | | |
272
+ | Q9 | Convention Compliance | pass | | |
273
+ | Q10 | Completeness | concern | | Error path examples sparse |
274
+
275
+ **AI findings**:
276
+
277
+ - (minor, Q1) Intent was declarative — rewritten
278
+ - (minor, Q4) Missing security despite shell execution — added
279
+ - (minor, Q10) Sparse error examples
280
+
281
+ **Your verdict**: _______________
282
+ **Sign-off date**: _______________
283
+
284
+ ---
285
+
286
+ ### 9/23 — `project_management.yml`
287
+
288
+ **Domain**: core | **Priority**: P3 | **Version**: 0.1.0 (draft)
289
+ **Depends on**: architecture, engine_architecture, security
290
+
291
+ **Intent excerpt**:
292
+ > Provide project lifecycle management beyond initial scaffolding — adding
293
+ > behaviours, configuring engines, managing design documents, and
294
+ > synchronising with upstream rosett-ai updates.
295
+
296
+ | # | Question | AI Verdict | Your Verdict | Notes |
297
+ |---|----------|-----------|-------------|-------|
298
+ | Q1 | Intent Clarity | pass | | Fixed: was "Beyond the initial..." |
299
+ | Q2 | Constraint Quality | pass | | |
300
+ | Q3 | Criteria Testability | pass | | |
301
+ | Q4 | Dependency Soundness | pass | | Fixed: added security |
302
+ | Q5 | Scope Boundaries | pass | | |
303
+ | Q6 | Implementation Readiness | pass | | |
304
+ | Q7 | Security Alignment | pass | | |
305
+ | Q8 | Engine Agnosticism | pass | | |
306
+ | Q9 | Convention Compliance | pass | | |
307
+ | Q10 | Completeness | concern | | Sparse error examples |
308
+
309
+ **AI findings**:
310
+
311
+ - (minor, Q1) Intent was declarative — rewritten
312
+ - (minor, Q4) Missing security despite file manipulation — added
313
+
314
+ **Your verdict**: _______________
315
+ **Sign-off date**: _______________
316
+
317
+ ---
318
+
319
+ ### 10/23 — `mcp_settings.yml`
320
+
321
+ **Domain**: core | **Priority**: P2 | **Version**: 0.1.0 (draft)
322
+ **Depends on**: mcp_integration, security, claude_code_configuration
323
+
324
+ **Intent excerpt**:
325
+ > Manage MCP server configuration with a trust-first model that prevents
326
+ > untrusted servers from being silently added to a developer's configuration.
327
+
328
+ | # | Question | AI Verdict | Your Verdict | Notes |
329
+ |---|----------|-----------|-------------|-------|
330
+ | Q1 | Intent Clarity | pass | | Fixed: was "MCP servers extend..." |
331
+ | Q2 | Constraint Quality | pass | | |
332
+ | Q3 | Criteria Testability | pass | | |
333
+ | Q4 | Dependency Soundness | pass | | |
334
+ | Q5 | Scope Boundaries | pass | | |
335
+ | Q6 | Implementation Readiness | pass | | |
336
+ | Q7 | Security Alignment | pass | | HTTPS, trust verification |
337
+ | Q8 | Engine Agnosticism | pass | | |
338
+ | Q9 | Convention Compliance | pass | | |
339
+ | Q10 | Completeness | pass | | |
340
+
341
+ **AI findings**:
342
+
343
+ - (minor, Q1) Intent was descriptive — rewritten to imperative
344
+
345
+ **Your verdict**: _______________
346
+ **Sign-off date**: _______________
347
+
348
+ ---
349
+
350
+ ## Batch 3: Security (4)
351
+
352
+ ### 11/23 — `ai_provenance.yml`
353
+
354
+ **Domain**: security | **Priority**: P2 | **Version**: 0.1.0 (draft)
355
+ **Depends on**: security, engine_architecture, compiler
356
+
357
+ **Intent excerpt**:
358
+ > Establish structured, machine-readable provenance tracking for AI involvement
359
+ > in code contributions managed by rosett-ai. Record which AI tools contributed to
360
+ > which files, what role the AI played, and what external sources it drew from.
361
+
362
+ | # | Question | AI Verdict | Your Verdict | Notes |
363
+ |---|----------|-----------|-------------|-------|
364
+ | Q1 | Intent Clarity | pass | | Fixed: strengthened to "Establish structured..." |
365
+ | Q2 | Constraint Quality | pass | | 10 constraints |
366
+ | Q3 | Criteria Testability | pass | | 12 criteria |
367
+ | Q4 | Dependency Soundness | pass | | |
368
+ | Q5 | Scope Boundaries | pass | | Clean separation from ai_authorship |
369
+ | Q6 | Implementation Readiness | pass | | 4 examples |
370
+ | Q7 | Security Alignment | pass | | YAML.safe_load, PII restrictions |
371
+ | Q8 | Engine Agnosticism | pass | | |
372
+ | Q9 | Convention Compliance | pass | | |
373
+ | Q10 | Completeness | concern | | Could add more error path examples |
374
+
375
+ **AI findings**:
376
+
377
+ - (minor, Q1) Intent started with "Track and attribute" — strengthened
378
+ - (minor, Q10) Error paths covered by StackOverflow bare-URL example
379
+
380
+ **Your verdict**: _______________
381
+ **Sign-off date**: _______________
382
+
383
+ ---
384
+
385
+ ### 12/23 — `ai_authorship.yml`
386
+
387
+ **Domain**: core | **Priority**: P2 | **Version**: 0.1.0 (draft)
388
+ **Depends on**: ai_provenance, security, engine_architecture
389
+
390
+ **Intent excerpt**:
391
+ > Define how AI co-authorship is attributed, disclosed, and managed across
392
+ > all projects using rosett-ai. While ai_provenance.yml tracks the raw data,
393
+ > this design governs the human-facing policies.
394
+
395
+ | # | Question | AI Verdict | Your Verdict | Notes |
396
+ |---|----------|-----------|-------------|-------|
397
+ | Q1 | Intent Clarity | pass | | Imperative "Define how..." |
398
+ | Q2 | Constraint Quality | pass | | 10 constraints |
399
+ | Q3 | Criteria Testability | pass | | 11 criteria |
400
+ | Q4 | Dependency Soundness | pass | | |
401
+ | Q5 | Scope Boundaries | pass | | Clear split from ai_provenance |
402
+ | Q6 | Implementation Readiness | pass | | 4 examples |
403
+ | Q7 | Security Alignment | pass | | |
404
+ | Q8 | Engine Agnosticism | pass | | |
405
+ | Q9 | Convention Compliance | pass | | |
406
+ | Q10 | Completeness | pass | | |
407
+
408
+ **AI findings**: None
409
+ **Your verdict**: _______________
410
+ **Sign-off date**: _______________
411
+
412
+ ---
413
+
414
+ ### 13/23 — `policy_management.yml`
415
+
416
+ **Domain**: security | **Priority**: P2 | **Version**: 0.1.0 (draft)
417
+ **Depends on**: security, ai_provenance, ai_authorship, engine_architecture
418
+
419
+ **Intent excerpt**:
420
+ > Provide a structured framework for organisations to define, enforce, and
421
+ > audit AI usage policies across their development teams.
422
+
423
+ | # | Question | AI Verdict | Your Verdict | Notes |
424
+ |---|----------|-----------|-------------|-------|
425
+ | Q1 | Intent Clarity | pass | | Imperative "Provide..." |
426
+ | Q2 | Constraint Quality | pass | | 10 constraints |
427
+ | Q3 | Criteria Testability | pass | | 12 criteria |
428
+ | Q4 | Dependency Soundness | pass | | |
429
+ | Q5 | Scope Boundaries | pass | | Defers to security.yml |
430
+ | Q6 | Implementation Readiness | pass | | 4 examples |
431
+ | Q7 | Security Alignment | pass | | Multiple references |
432
+ | Q8 | Engine Agnosticism | pass | | |
433
+ | Q9 | Convention Compliance | pass | | |
434
+ | Q10 | Completeness | pass | | |
435
+
436
+ **AI findings**: None
437
+ **Your verdict**: _______________
438
+ **Sign-off date**: _______________
439
+
440
+ ---
441
+
442
+ ### 14/23 — `comply.yml`
443
+
444
+ **Domain**: security | **Priority**: P2 | **Version**: 0.1.0 (draft)
445
+ **Depends on**: security, licensing_system, policy_management
446
+
447
+ **Intent excerpt**:
448
+ > Automate compliance checks for EU CRA and NIS2 directives, GPL-3.0
449
+ > licensing requirements, and organisational policy adherence.
450
+
451
+ | # | Question | AI Verdict | Your Verdict | Notes |
452
+ |---|----------|-----------|-------------|-------|
453
+ | Q1 | Intent Clarity | pass | | Fixed: was "Software distributed within the EU..." |
454
+ | Q2 | Constraint Quality | pass | | 7 constraints |
455
+ | Q3 | Criteria Testability | pass | | |
456
+ | Q4 | Dependency Soundness | pass | | |
457
+ | Q5 | Scope Boundaries | pass | | |
458
+ | Q6 | Implementation Readiness | pass | | |
459
+ | Q7 | Security Alignment | pass | | |
460
+ | Q8 | Engine Agnosticism | pass | | |
461
+ | Q9 | Convention Compliance | pass | | |
462
+ | Q10 | Completeness | concern | | Error path examples sparse |
463
+
464
+ **AI findings**:
465
+
466
+ - (minor, Q1) Intent was declarative — rewritten to imperative
467
+ - (minor, Q10) AGPL-3.0 detection example covers error path
468
+
469
+ **Your verdict**: _______________
470
+ **Sign-off date**: _______________
471
+
472
+ ---
473
+
474
+ ## Batch 4: Compiler (1)
475
+
476
+ ### 15/23 — `behaviour_composition.yml`
477
+
478
+ **Domain**: compiler | **Priority**: P2 | **Version**: 0.1.0 (draft)
479
+ **Depends on**: compiler, architecture, engine_architecture, security
480
+
481
+ **Intent excerpt**:
482
+ > Define how multiple behaviour YAML files are composed, layered, and
483
+ > merged during compilation. This design governs the composition rules:
484
+ > what happens when behaviours conflict, how priorities resolve ties.
485
+
486
+ | # | Question | AI Verdict | Your Verdict | Notes |
487
+ |---|----------|-----------|-------------|-------|
488
+ | Q1 | Intent Clarity | pass | | |
489
+ | Q2 | Constraint Quality | pass | | 10 constraints |
490
+ | Q3 | Criteria Testability | pass | | 13 criteria |
491
+ | Q4 | Dependency Soundness | pass | | |
492
+ | Q5 | Scope Boundaries | pass | | |
493
+ | Q6 | Implementation Readiness | pass | | 5 detailed examples |
494
+ | Q7 | Security Alignment | pass | | Security-domain override protection |
495
+ | Q8 | Engine Agnosticism | pass | | |
496
+ | Q9 | Convention Compliance | pass | | |
497
+ | Q10 | Completeness | pass | | |
498
+
499
+ **AI findings**: None
500
+ **Your verdict**: _______________
501
+ **Sign-off date**: _______________
502
+
503
+ ---
504
+
505
+ ## Batch 5: UI (4)
506
+
507
+ ### 16/23 — `desktop_integration.yml`
508
+
509
+ **Domain**: ui | **Priority**: P3 | **Version**: 0.1.0 (draft)
510
+ **Depends on**: architecture, ui_framework, accessibility, i18n, security
511
+
512
+ **Intent excerpt**:
513
+ > Define how rosett-ai integrates with Linux desktop environments via a D-Bus
514
+ > session bus service (be.neatnerds.rosettai) and optional desktop-specific
515
+ > frontends.
516
+
517
+ | # | Question | AI Verdict | Your Verdict | Notes |
518
+ |---|----------|-----------|-------------|-------|
519
+ | Q1 | Intent Clarity | pass | | |
520
+ | Q2 | Constraint Quality | pass | | 11 constraints |
521
+ | Q3 | Criteria Testability | pass | | 11 criteria |
522
+ | Q4 | Dependency Soundness | pass | | |
523
+ | Q5 | Scope Boundaries | pass | | |
524
+ | Q6 | Implementation Readiness | pass | | 4 examples |
525
+ | Q7 | Security Alignment | pass | | D-Bus handler security |
526
+ | Q8 | Engine Agnosticism | pass | | |
527
+ | Q9 | Convention Compliance | pass | | |
528
+ | Q10 | Completeness | pass | | gui_notes, interactions, accessibility |
529
+
530
+ **AI findings**: None
531
+ **Your verdict**: _______________
532
+ **Sign-off date**: _______________
533
+
534
+ ---
535
+
536
+ ### 17/23 — `gui_plugins.yml`
537
+
538
+ **Domain**: ui | **Priority**: P3 | **Version**: 0.1.0 (draft)
539
+ **Depends on**: architecture, engine_architecture, desktop_integration, security, distribution
540
+
541
+ **Intent excerpt**:
542
+ > Define the pluggable GUI architecture that treats desktop frontends as
543
+ > first-class plugins — the same pattern used for engine plugins.
544
+
545
+ | # | Question | AI Verdict | Your Verdict | Notes |
546
+ |---|----------|-----------|-------------|-------|
547
+ | Q1 | Intent Clarity | pass | | |
548
+ | Q2 | Constraint Quality | pass | | 12 constraints |
549
+ | Q3 | Criteria Testability | pass | | 15 criteria |
550
+ | Q4 | Dependency Soundness | pass | | |
551
+ | Q5 | Scope Boundaries | pass | | |
552
+ | Q6 | Implementation Readiness | pass | | 4 examples, extensive gui_notes |
553
+ | Q7 | Security Alignment | pass | | |
554
+ | Q8 | Engine Agnosticism | pass | | |
555
+ | Q9 | Convention Compliance | pass | | |
556
+ | Q10 | Completeness | pass | | gui_notes, interactions, accessibility |
557
+
558
+ **AI findings**: None
559
+ **Your verdict**: _______________
560
+ **Sign-off date**: _______________
561
+
562
+ ---
563
+
564
+ ### 18/23 — `autocompletion.yml`
565
+
566
+ **Domain**: ui | **Priority**: P3 | **Version**: 0.1.0 (draft)
567
+ **Depends on**: ui_framework, architecture
568
+
569
+ **Intent excerpt**:
570
+ > Generate shell completion scripts for bash, zsh, and fish from the Thor
571
+ > command registry to reduce friction, prevent typos, and improve
572
+ > discoverability.
573
+
574
+ | # | Question | AI Verdict | Your Verdict | Notes |
575
+ |---|----------|-----------|-------------|-------|
576
+ | Q1 | Intent Clarity | pass | | Fixed: was "Tab-completion is..." |
577
+ | Q2 | Constraint Quality | pass | | 6 constraints |
578
+ | Q3 | Criteria Testability | pass | | 8 criteria |
579
+ | Q4 | Dependency Soundness | pass | | |
580
+ | Q5 | Scope Boundaries | pass | | |
581
+ | Q6 | Implementation Readiness | pass | | 3 examples |
582
+ | Q7 | Security Alignment | pass | | No security surface |
583
+ | Q8 | Engine Agnosticism | pass | | |
584
+ | Q9 | Convention Compliance | pass | | |
585
+ | Q10 | Completeness | pass | | |
586
+
587
+ **AI findings**:
588
+
589
+ - (minor, Q1) Intent was declarative — rewritten to imperative
590
+
591
+ **Your verdict**: _______________
592
+ **Sign-off date**: _______________
593
+
594
+ ---
595
+
596
+ ### 19/23 — `smart_ui_feedback.yml`
597
+
598
+ **Domain**: ui | **Priority**: P3 | **Version**: 0.1.0 (draft)
599
+ **Depends on**: ui_framework, architecture, autocompletion
600
+
601
+ **Intent excerpt**:
602
+ > Transform generic Thor error messages into actionable suggestions using
603
+ > edit distance (Levenshtein) matching. Provide "Did you mean?" feedback
604
+ > for mistyped commands, subcommands, flags, and arguments.
605
+
606
+ | # | Question | AI Verdict | Your Verdict | Notes |
607
+ |---|----------|-----------|-------------|-------|
608
+ | Q1 | Intent Clarity | pass | | Fixed: was "When users mistype..." |
609
+ | Q2 | Constraint Quality | pass | | 7 constraints |
610
+ | Q3 | Criteria Testability | pass | | 7 criteria |
611
+ | Q4 | Dependency Soundness | pass | | |
612
+ | Q5 | Scope Boundaries | pass | | |
613
+ | Q6 | Implementation Readiness | pass | | 3 examples |
614
+ | Q7 | Security Alignment | pass | | No security surface |
615
+ | Q8 | Engine Agnosticism | pass | | |
616
+ | Q9 | Convention Compliance | pass | | |
617
+ | Q10 | Completeness | pass | | |
618
+
619
+ **AI findings**:
620
+
621
+ - (minor, Q1) Intent was declarative — rewritten to imperative
622
+
623
+ **Your verdict**: _______________
624
+ **Sign-off date**: _______________
625
+
626
+ ---
627
+
628
+ ## Batch 6: Operations (4)
629
+
630
+ ### 20/23 — `monitoring_observability.yml`
631
+
632
+ **Domain**: operations | **Priority**: P6 | **Version**: 0.1.0 (draft)
633
+ **Depends on**: security, architecture
634
+
635
+ **Intent excerpt**:
636
+ > Provide structured runtime telemetry for the rosett-ai CLI so developers and
637
+ > operators can diagnose errors, measure compile performance, and audit
638
+ > command execution — all without sending any data externally.
639
+
640
+ | # | Question | AI Verdict | Your Verdict | Notes |
641
+ |---|----------|-----------|-------------|-------|
642
+ | Q1 | Intent Clarity | pass | | Imperative "Provide..." |
643
+ | Q2 | Constraint Quality | pass | | 12 constraints |
644
+ | Q3 | Criteria Testability | pass | | 12 criteria |
645
+ | Q4 | Dependency Soundness | pass | | |
646
+ | Q5 | Scope Boundaries | pass | | |
647
+ | Q6 | Implementation Readiness | pass | | 3 examples |
648
+ | Q7 | Security Alignment | pass | | Never log secrets |
649
+ | Q8 | Engine Agnosticism | pass | | |
650
+ | Q9 | Convention Compliance | concern | | Fixed: was version 1.0.0 with status draft |
651
+ | Q10 | Completeness | pass | | |
652
+
653
+ **AI findings**:
654
+
655
+ - (minor, Q9) Version was 1.0.0 with status draft — changed to 0.1.0
656
+
657
+ **Your verdict**: _______________
658
+ **Sign-off date**: _______________
659
+
660
+ ---
661
+
662
+ ### 21/23 — `usage_optimization.yml`
663
+
664
+ **Domain**: operations | **Priority**: P6 | **Version**: 0.1.0 (draft)
665
+ **Depends on**: architecture, compiler
666
+
667
+ **Intent excerpt**:
668
+ > Ensure the rosett-ai CLI remains fast, memory-efficient, and scalable as the
669
+ > engine count and configuration corpus grow. Startup must feel instant
670
+ > (<200ms), compile must skip unchanged files via content-addressed caching.
671
+
672
+ | # | Question | AI Verdict | Your Verdict | Notes |
673
+ |---|----------|-----------|-------------|-------|
674
+ | Q1 | Intent Clarity | pass | | Imperative "Ensure..." |
675
+ | Q2 | Constraint Quality | pass | | 13 constraints |
676
+ | Q3 | Criteria Testability | pass | | 11 criteria |
677
+ | Q4 | Dependency Soundness | pass | | |
678
+ | Q5 | Scope Boundaries | pass | | |
679
+ | Q6 | Implementation Readiness | pass | | 4 examples |
680
+ | Q7 | Security Alignment | pass | | No security surface |
681
+ | Q8 | Engine Agnosticism | pass | | |
682
+ | Q9 | Convention Compliance | concern | | Fixed: was version 1.0.0 with status draft |
683
+ | Q10 | Completeness | pass | | |
684
+
685
+ **AI findings**:
686
+
687
+ - (minor, Q9) Version was 1.0.0 with status draft — changed to 0.1.0
688
+
689
+ **Your verdict**: _______________
690
+ **Sign-off date**: _______________
691
+
692
+ ---
693
+
694
+ ### 22/23 — `distribution.yml`
695
+
696
+ **Domain**: ci | **Priority**: P5 | **Version**: 0.2.0 (draft)
697
+ **Depends on**: ci_pipeline, release_management, documentation, security
698
+
699
+ **Intent excerpt**:
700
+ > Define how built packages reach end users through a self-hosted,
701
+ > multi-format repository backed by Pulp (pulpproject.org).
702
+
703
+ | # | Question | AI Verdict | Your Verdict | Notes |
704
+ |---|----------|-----------|-------------|-------|
705
+ | Q1 | Intent Clarity | pass | | Imperative "Define how..." |
706
+ | Q2 | Constraint Quality | pass | | 18 constraints |
707
+ | Q3 | Criteria Testability | pass | | 13 criteria |
708
+ | Q4 | Dependency Soundness | pass | | Fixed: added security |
709
+ | Q5 | Scope Boundaries | pass | | Phase-bounded |
710
+ | Q6 | Implementation Readiness | pass | | 4 examples |
711
+ | Q7 | Security Alignment | concern | | GPG, HTTPS, tokens present but no explicit security.yml ref |
712
+ | Q8 | Engine Agnosticism | pass | | Infrastructure doc |
713
+ | Q9 | Convention Compliance | pass | | 0.2.0 draft, revised once |
714
+ | Q10 | Completeness | pass | | Very thorough |
715
+
716
+ **AI findings**:
717
+
718
+ - (minor, Q4) Missing security in depends_on — added
719
+ - (minor, Q7) Security-aware but no explicit security.yml reference
720
+
721
+ **Your verdict**: _______________
722
+ **Sign-off date**: _______________
723
+
724
+ ---
725
+
726
+ ### 23/23 — `test_peer_review.yml`
727
+
728
+ **Domain**: testing | **Priority**: P1 | **Version**: 0.1.0 (draft)
729
+ **Depends on**: testing, security
730
+
731
+ **Intent excerpt**:
732
+ > Establish a structured, questionnaire-based peer review process for all
733
+ > test suites across the rosett-ai ecosystem (core + 11 engine plugins).
734
+
735
+ | # | Question | AI Verdict | Your Verdict | Notes |
736
+ |---|----------|-----------|-------------|-------|
737
+ | Q1 | Intent Clarity | pass | | Imperative "Establish..." |
738
+ | Q2 | Constraint Quality | pass | | 8 constraints |
739
+ | Q3 | Criteria Testability | pass | | 8 criteria |
740
+ | Q4 | Dependency Soundness | pass | | |
741
+ | Q5 | Scope Boundaries | pass | | |
742
+ | Q6 | Implementation Readiness | pass | | 3 examples |
743
+ | Q7 | Security Alignment | pass | | AI cannot self-sign-off |
744
+ | Q8 | Engine Agnosticism | pass | | |
745
+ | Q9 | Convention Compliance | pass | | |
746
+ | Q10 | Completeness | concern | | Fixed: anti_patterns section was missing |
747
+
748
+ **AI findings**:
749
+
750
+ - (minor, Q10) Missing anti_patterns section — added 6 anti-patterns
751
+
752
+ **Your verdict**: _______________
753
+ **Sign-off date**: _______________
754
+
755
+ ---
756
+
757
+ ## Summary
758
+
759
+ | Batch | Domain | Count | AI Verdicts |
760
+ |-------|--------|-------|-------------|
761
+ | 0 | New docs | 3 | 3 approved |
762
+ | 1 | Core P2 | 4 | 4 approved_with_notes |
763
+ | 2 | Core P3 | 3 | 3 approved_with_notes |
764
+ | 3 | Security | 4 | 2 approved, 2 approved_with_notes |
765
+ | 4 | Compiler | 1 | 1 approved |
766
+ | 5 | UI | 4 | 2 approved, 2 approved_with_notes |
767
+ | 6 | Operations | 4 | 4 approved_with_notes |
768
+ | **Total** | | **23** | **8 approved, 15 approved_with_notes** |
769
+
770
+ All issues found during review were fixed inline before sign-off.
771
+ No documents received `needs_fix` or `rejected` verdicts.