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,303 @@
|
|
|
1
|
+
%------------------------------------------------------------------------------
|
|
2
|
+
% VARIOUS REQUIRED PACKAGES
|
|
3
|
+
%------------------------------------------------------------------------------
|
|
4
|
+
|
|
5
|
+
\usepackage{titlesec} % Allows customization of titles
|
|
6
|
+
|
|
7
|
+
\usepackage{graphicx} % Required for including pictures
|
|
8
|
+
\graphicspath{{Pictures/}} % Specifies the directory where pictures are stored
|
|
9
|
+
|
|
10
|
+
\usepackage{tikz} % Required for drawing custom shapes
|
|
11
|
+
|
|
12
|
+
\usepackage{makeidx} % Required for indexing
|
|
13
|
+
\makeindex
|
|
14
|
+
|
|
15
|
+
\usepackage[english]{babel} % English language/hyphenation
|
|
16
|
+
\usepackage{csquotes}
|
|
17
|
+
|
|
18
|
+
\usepackage{enumitem} % Customize lists
|
|
19
|
+
\setlist{nolistsep} % Reduce spacing between bullet points and numbered lists
|
|
20
|
+
|
|
21
|
+
\usepackage{booktabs} % Required for nicer horizontal rules in tables
|
|
22
|
+
|
|
23
|
+
\usepackage{eso-pic} % Required for specifying an image background in the title
|
|
24
|
+
% page
|
|
25
|
+
|
|
26
|
+
\usepackage{listings} % Code listings
|
|
27
|
+
\usepackage{xcolor}
|
|
28
|
+
|
|
29
|
+
% Code listing style
|
|
30
|
+
\lstdefinestyle{nnccstyle}{
|
|
31
|
+
backgroundcolor=\color{black!3},
|
|
32
|
+
basicstyle=\ttfamily\small,
|
|
33
|
+
breakatwhitespace=false,
|
|
34
|
+
breaklines=true,
|
|
35
|
+
captionpos=b,
|
|
36
|
+
commentstyle=\color{green!50!black},
|
|
37
|
+
keywordstyle=\color{ocre}\bfseries,
|
|
38
|
+
stringstyle=\color{red!60!black},
|
|
39
|
+
numberstyle=\tiny\color{gray},
|
|
40
|
+
numbers=left,
|
|
41
|
+
numbersep=8pt,
|
|
42
|
+
frame=single,
|
|
43
|
+
rulecolor=\color{black!20},
|
|
44
|
+
showspaces=false,
|
|
45
|
+
showstringspaces=false,
|
|
46
|
+
showtabs=false,
|
|
47
|
+
tabsize=2,
|
|
48
|
+
xleftmargin=1.5em,
|
|
49
|
+
framexleftmargin=1em
|
|
50
|
+
}
|
|
51
|
+
\lstset{style=nnccstyle}
|
|
52
|
+
|
|
53
|
+
% YAML language definition for listings
|
|
54
|
+
\lstdefinelanguage{yaml}{
|
|
55
|
+
keywords={true,false,null,y,n},
|
|
56
|
+
sensitive=false,
|
|
57
|
+
comment=[l]{\#},
|
|
58
|
+
morecomment=[s]{/*}{*/},
|
|
59
|
+
morestring=[b]',
|
|
60
|
+
morestring=[b]"
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
\usepackage{tabularx} % Better tables
|
|
64
|
+
\usepackage{longtable} % Multi-page tables
|
|
65
|
+
\usepackage{array}
|
|
66
|
+
|
|
67
|
+
%------------------------------------------------------------------------------
|
|
68
|
+
% MAIN TABLE OF CONTENTS
|
|
69
|
+
%------------------------------------------------------------------------------
|
|
70
|
+
|
|
71
|
+
\usepackage{titletoc} % Required for manipulating the table of contents
|
|
72
|
+
|
|
73
|
+
\contentsmargin{0cm} % Removes the default margin
|
|
74
|
+
% Chapter text styling
|
|
75
|
+
\titlecontents{chapter}[1.25cm] % Indentation
|
|
76
|
+
{\addvspace{15pt}\large\sffamily\bfseries} % Spacing and font options for chapters
|
|
77
|
+
{\color{ocre!60}\contentslabel[\Large\thecontentslabel]{1.25cm}\color{ocre}} % Chapter number
|
|
78
|
+
{}
|
|
79
|
+
{\color{ocre!60}\normalsize\sffamily\bfseries\;\titlerule*[.5pc]{.}\;\thecontentspage} % Page number
|
|
80
|
+
% Section text styling
|
|
81
|
+
\titlecontents{section}[1.25cm] % Indentation
|
|
82
|
+
{\addvspace{5pt}\sffamily\bfseries} % Spacing and font options for sections
|
|
83
|
+
{\contentslabel[\thecontentslabel]{1.25cm}} % Section number
|
|
84
|
+
{}
|
|
85
|
+
{\sffamily\hfill\color{black}\thecontentspage} % Page number
|
|
86
|
+
[]
|
|
87
|
+
% Subsection text styling
|
|
88
|
+
\titlecontents{subsection}[1.25cm] % Indentation
|
|
89
|
+
{\addvspace{1pt}\sffamily\small} % Spacing and font options for subsections
|
|
90
|
+
{\contentslabel[\thecontentslabel]{1.25cm}} % Subsection number
|
|
91
|
+
{}
|
|
92
|
+
{\sffamily\;\titlerule*[.5pc]{.}\;\thecontentspage} % Page number
|
|
93
|
+
[]
|
|
94
|
+
|
|
95
|
+
%----------------------------------------------------------------------------------------
|
|
96
|
+
% MINI TABLE OF CONTENTS IN CHAPTER HEADS
|
|
97
|
+
%----------------------------------------------------------------------------------------
|
|
98
|
+
|
|
99
|
+
% Section text styling
|
|
100
|
+
\titlecontents{lsection}[0em] % Indentation
|
|
101
|
+
{\footnotesize\sffamily} % Font settings
|
|
102
|
+
{}
|
|
103
|
+
{}
|
|
104
|
+
{}
|
|
105
|
+
|
|
106
|
+
% Subsection text styling
|
|
107
|
+
\titlecontents{lsubsection}[.5em] % Indentation
|
|
108
|
+
{\normalfont\footnotesize\sffamily} % Font settings
|
|
109
|
+
{}
|
|
110
|
+
{}
|
|
111
|
+
{}
|
|
112
|
+
|
|
113
|
+
%------------------------------------------------------------------------------
|
|
114
|
+
% PAGE HEADERS
|
|
115
|
+
%------------------------------------------------------------------------------
|
|
116
|
+
|
|
117
|
+
\usepackage{fancyhdr} % Required for header and footer configuration
|
|
118
|
+
|
|
119
|
+
\pagestyle{fancy}
|
|
120
|
+
\renewcommand{\chaptermark}[1]{\markboth{\sffamily\normalsize\bfseries\chaptername\ \thechapter.\ #1}{}} % Chapter text font settings
|
|
121
|
+
\renewcommand{\sectionmark}[1]{\markright{\sffamily\normalsize\thesection\hspace{5pt}#1}{}} % Section text font settings
|
|
122
|
+
\fancyhf{} \fancyhead[LE,RO]{\sffamily\normalsize\thepage} % Font setting for
|
|
123
|
+
% the page number in the header
|
|
124
|
+
\fancyhead[LO]{\rightmark} % Print the nearest section name on the left side of
|
|
125
|
+
% odd pages
|
|
126
|
+
\fancyhead[RE]{\leftmark} % Print the current chapter name on the right side of
|
|
127
|
+
% even pages
|
|
128
|
+
\renewcommand{\headrulewidth}{0.5pt} % Width of the rule under the header
|
|
129
|
+
\addtolength{\headheight}{2.5pt} % Increase the spacing around the header
|
|
130
|
+
% slightly
|
|
131
|
+
\renewcommand{\footrulewidth}{0pt} % Removes the rule in the footer
|
|
132
|
+
\fancypagestyle{plain}{\fancyhead{}\renewcommand{\headrulewidth}{0pt}} % Style
|
|
133
|
+
% for when a plain pagestyle is specified
|
|
134
|
+
|
|
135
|
+
% Removes the header from odd empty pages at the end of chapters
|
|
136
|
+
\makeatletter
|
|
137
|
+
\renewcommand{\cleardoublepage}{
|
|
138
|
+
\clearpage\ifodd\c@page\else
|
|
139
|
+
\hbox{}
|
|
140
|
+
\vspace*{\fill}
|
|
141
|
+
\thispagestyle{empty}
|
|
142
|
+
\newpage
|
|
143
|
+
\fi}
|
|
144
|
+
|
|
145
|
+
%------------------------------------------------------------------------------
|
|
146
|
+
% HYPERLINKS IN THE DOCUMENTS
|
|
147
|
+
%------------------------------------------------------------------------------
|
|
148
|
+
|
|
149
|
+
% For an unclear reason, the package should be loaded now and not later
|
|
150
|
+
\usepackage{hyperref}
|
|
151
|
+
\hypersetup{hidelinks,colorlinks=true,linkcolor=ocre!80!black,
|
|
152
|
+
urlcolor=ocre,citecolor=ocre,
|
|
153
|
+
bookmarksopen=false,
|
|
154
|
+
pdftitle={NeatNerds Code Companion -- Technical Reference},
|
|
155
|
+
pdfauthor={Hugo Antonio Sepulveda Manriquez}}
|
|
156
|
+
|
|
157
|
+
%------------------------------------------------------------------------------
|
|
158
|
+
% SECTION NUMBERING IN THE MARGIN
|
|
159
|
+
%------------------------------------------------------------------------------
|
|
160
|
+
|
|
161
|
+
\renewcommand{\@seccntformat}[1]{\llap{\textcolor{ocre}{\csname the#1\endcsname}\hspace{1em}}}
|
|
162
|
+
\renewcommand{\section}{\@startsection{section}{1}{\z@}
|
|
163
|
+
{-4ex \@plus -1ex \@minus -.4ex}
|
|
164
|
+
{1ex \@plus.2ex }
|
|
165
|
+
{\normalfont\large\sffamily\bfseries}}
|
|
166
|
+
\renewcommand{\subsection}{\@startsection {subsection}{2}{\z@}
|
|
167
|
+
{-3ex \@plus -0.1ex \@minus -.4ex}
|
|
168
|
+
{0.5ex \@plus.2ex }
|
|
169
|
+
{\normalfont\sffamily\bfseries}}
|
|
170
|
+
\renewcommand{\subsubsection}{\@startsection {subsubsection}{3}{\z@}
|
|
171
|
+
{-2ex \@plus -0.1ex \@minus -.2ex}
|
|
172
|
+
{.2ex \@plus.2ex }
|
|
173
|
+
{\normalfont\small\sffamily\bfseries}}
|
|
174
|
+
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}
|
|
175
|
+
{-2ex \@plus-.2ex \@minus .2ex}
|
|
176
|
+
{.1ex}
|
|
177
|
+
{\normalfont\small\sffamily\bfseries}}
|
|
178
|
+
|
|
179
|
+
%------------------------------------------------------------------------------
|
|
180
|
+
% CHAPTER HEADINGS
|
|
181
|
+
%------------------------------------------------------------------------------
|
|
182
|
+
|
|
183
|
+
\newcommand{\thechapterimage}{}
|
|
184
|
+
\newcommand{\chapterimage}[1]{\renewcommand{\thechapterimage}{#1}}
|
|
185
|
+
|
|
186
|
+
% Numbered chapters with mini tableofcontents
|
|
187
|
+
\def\thechapter{\arabic{chapter}}
|
|
188
|
+
\def\@makechapterhead#1{
|
|
189
|
+
\thispagestyle{empty}
|
|
190
|
+
{\centering \normalfont\sffamily
|
|
191
|
+
\ifnum \c@secnumdepth >\m@ne
|
|
192
|
+
\if@mainmatter
|
|
193
|
+
\startcontents
|
|
194
|
+
\begin{tikzpicture}[remember picture,overlay]
|
|
195
|
+
\node at (current page.north west)
|
|
196
|
+
{\begin{tikzpicture}[remember picture,overlay]
|
|
197
|
+
\node[anchor=north west,inner sep=0pt] at (0,0) {\includegraphics[width=\paperwidth]{\thechapterimage}};
|
|
198
|
+
\draw[anchor=west] (5cm,-9cm) node [rounded corners=20pt,fill=ocre!10!white,text opacity=1,draw=ocre,draw opacity=1,line width=1.5pt,fill opacity=.6,inner sep=12pt]{\huge\sffamily\bfseries\textcolor{black}{\thechapter. #1\strut\makebox[22cm]{}}};
|
|
199
|
+
\end{tikzpicture}};
|
|
200
|
+
\end{tikzpicture}}
|
|
201
|
+
\par\vspace*{230\p@}
|
|
202
|
+
\fi
|
|
203
|
+
\fi}
|
|
204
|
+
|
|
205
|
+
% Unnumbered chapters without mini tableofcontents
|
|
206
|
+
\def\@makeschapterhead#1{
|
|
207
|
+
\thispagestyle{empty}
|
|
208
|
+
{\centering \normalfont\sffamily
|
|
209
|
+
\ifnum \c@secnumdepth >\m@ne
|
|
210
|
+
\if@mainmatter
|
|
211
|
+
\begin{tikzpicture}[remember picture,overlay]
|
|
212
|
+
\node at (current page.north west)
|
|
213
|
+
{\begin{tikzpicture}[remember picture,overlay]
|
|
214
|
+
\node[anchor=north west,inner sep=0pt] at (0,0) {\includegraphics[width=\paperwidth]{\thechapterimage}};
|
|
215
|
+
\draw[anchor=west] (5cm,-9cm) node [rounded corners=20pt,fill=ocre!10!white,fill opacity=.6,inner sep=12pt,text opacity=1,draw=ocre,draw opacity=1,line width=1.5pt]{\huge\sffamily\bfseries\textcolor{black}{#1\strut\makebox[22cm]{}}};
|
|
216
|
+
\end{tikzpicture}};
|
|
217
|
+
\end{tikzpicture}}
|
|
218
|
+
\par\vspace*{230\p@}
|
|
219
|
+
\fi
|
|
220
|
+
\fi
|
|
221
|
+
}
|
|
222
|
+
\makeatother
|
|
223
|
+
|
|
224
|
+
%----------------------------------------------------------------------------------------
|
|
225
|
+
% DEFINITION OF COLORED BOXES
|
|
226
|
+
%----------------------------------------------------------------------------------------
|
|
227
|
+
|
|
228
|
+
\RequirePackage[framemethod=default]{mdframed}
|
|
229
|
+
|
|
230
|
+
% Constraint box (blue-tinted)
|
|
231
|
+
\newmdenv[skipabove=7pt,
|
|
232
|
+
skipbelow=7pt,
|
|
233
|
+
backgroundcolor=black!5,
|
|
234
|
+
linecolor=ocre,
|
|
235
|
+
innerleftmargin=5pt,
|
|
236
|
+
innerrightmargin=5pt,
|
|
237
|
+
innertopmargin=5pt,
|
|
238
|
+
leftmargin=0cm,
|
|
239
|
+
rightmargin=0cm,
|
|
240
|
+
innerbottommargin=5pt]{constraintbox}
|
|
241
|
+
|
|
242
|
+
% Criterion box (left-bordered)
|
|
243
|
+
\newmdenv[skipabove=7pt,
|
|
244
|
+
skipbelow=7pt,
|
|
245
|
+
rightline=false,
|
|
246
|
+
leftline=true,
|
|
247
|
+
topline=false,
|
|
248
|
+
bottomline=false,
|
|
249
|
+
backgroundcolor=ocre!10,
|
|
250
|
+
linecolor=ocre,
|
|
251
|
+
innerleftmargin=5pt,
|
|
252
|
+
innerrightmargin=5pt,
|
|
253
|
+
innertopmargin=5pt,
|
|
254
|
+
innerbottommargin=5pt,
|
|
255
|
+
leftmargin=0cm,
|
|
256
|
+
rightmargin=0cm,
|
|
257
|
+
linewidth=4pt]{criterionbox}
|
|
258
|
+
|
|
259
|
+
% Anti-pattern box (red-tinted warning)
|
|
260
|
+
\newmdenv[skipabove=7pt,
|
|
261
|
+
skipbelow=7pt,
|
|
262
|
+
rightline=false,
|
|
263
|
+
leftline=true,
|
|
264
|
+
topline=false,
|
|
265
|
+
bottomline=false,
|
|
266
|
+
linecolor=red!60,
|
|
267
|
+
backgroundcolor=red!5,
|
|
268
|
+
innerleftmargin=5pt,
|
|
269
|
+
innerrightmargin=5pt,
|
|
270
|
+
innertopmargin=5pt,
|
|
271
|
+
leftmargin=0cm,
|
|
272
|
+
rightmargin=0cm,
|
|
273
|
+
linewidth=4pt,
|
|
274
|
+
innerbottommargin=5pt]{antipatternbox}
|
|
275
|
+
|
|
276
|
+
% Decision box (gray-bordered)
|
|
277
|
+
\newmdenv[skipabove=7pt,
|
|
278
|
+
skipbelow=7pt,
|
|
279
|
+
rightline=false,
|
|
280
|
+
leftline=true,
|
|
281
|
+
topline=false,
|
|
282
|
+
bottomline=false,
|
|
283
|
+
linecolor=gray,
|
|
284
|
+
backgroundcolor=black!5,
|
|
285
|
+
innerleftmargin=5pt,
|
|
286
|
+
innerrightmargin=5pt,
|
|
287
|
+
innertopmargin=5pt,
|
|
288
|
+
leftmargin=0cm,
|
|
289
|
+
rightmargin=0cm,
|
|
290
|
+
linewidth=4pt,
|
|
291
|
+
innerbottommargin=5pt]{decisionbox}
|
|
292
|
+
|
|
293
|
+
%----------------------------------------------------------------------------------------
|
|
294
|
+
% REMARK ENVIRONMENT
|
|
295
|
+
%----------------------------------------------------------------------------------------
|
|
296
|
+
|
|
297
|
+
\newenvironment{remark}{\par\vspace{10pt}\small
|
|
298
|
+
\begin{list}{}{
|
|
299
|
+
\leftmargin=35pt
|
|
300
|
+
\rightmargin=25pt}\item\ignorespaces
|
|
301
|
+
\makebox[-2.5pt]{\begin{tikzpicture}[overlay]
|
|
302
|
+
\node[draw=ocre!60,line width=1pt,circle,fill=ocre!25,font=\sffamily\bfseries,inner sep=2pt,outer sep=0pt] at (-15pt,0pt){\textcolor{ocre}{R}};\end{tikzpicture}}
|
|
303
|
+
\advance\baselineskip -1pt}{\end{list}\vskip5pt}
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
<!DOCTYPE NETSCAPE-Bookmark-file-1>
|
|
2
|
+
<!-- This is an automatically generated file.
|
|
3
|
+
It will be read and overwritten.
|
|
4
|
+
DO NOT EDIT! -->
|
|
5
|
+
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
|
|
6
|
+
<TITLE>nncc Project References</TITLE>
|
|
7
|
+
<H1>nncc — NeatNerds Code Companion References</H1>
|
|
8
|
+
|
|
9
|
+
<DL><p>
|
|
10
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">nncc Project References</H3>
|
|
11
|
+
<DL><p>
|
|
12
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">1. Licensing & Legal</H3>
|
|
13
|
+
<DL><p>
|
|
14
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">GPL & Open Source</H3>
|
|
15
|
+
<DL><p>
|
|
16
|
+
<DT><A HREF="https://www.gnu.org/licenses/gpl-3.0.en.html">GPL-3.0 Full Text (HTML)</A>
|
|
17
|
+
<DT><A HREF="https://www.gnu.org/licenses/gpl-3.0.txt">GPL-3.0 Full Text (TXT)</A>
|
|
18
|
+
<DT><A HREF="https://www.gnu.org/licenses/agpl-3.0.en.html">AGPL-3.0 Full Text (HTML)</A>
|
|
19
|
+
<DT><A HREF="https://www.gnu.org/licenses/agpl-3.0.txt">AGPL-3.0 Full Text (TXT)</A>
|
|
20
|
+
<DT><A HREF="https://www.gnu.org/licenses/">GNU Licenses Overview</A>
|
|
21
|
+
<DT><A HREF="https://www.gnu.org/licenses/why-not-lgpl.html">Why Not LGPL</A>
|
|
22
|
+
<DT><A HREF="https://www.gnu.org/licenses/gpl-faq.en.html#CanDeveloperThirdParty">FSF GPL FAQ: Third-Party Relicensing</A>
|
|
23
|
+
<DT><A HREF="https://www.apache.org/licenses/GPL-compatibility.html">Apache-2.0 / GPL-3.0 Compatibility</A>
|
|
24
|
+
<DT><A HREF="https://fsf.org/">Free Software Foundation</A>
|
|
25
|
+
<DT><A HREF="https://spdx.org/licenses/">SPDX License List</A>
|
|
26
|
+
<DT><A HREF="https://spdx.github.io/spdx-spec/v3.0.1/annexes/spdx-license-expressions/">SPDX Specification v3.0.1 — License Expressions</A>
|
|
27
|
+
</DL><p>
|
|
28
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">Anthropic Legal & Terms</H3>
|
|
29
|
+
<DL><p>
|
|
30
|
+
<DT><A HREF="https://www.anthropic.com/legal/consumer-terms">Anthropic Consumer Terms of Service</A>
|
|
31
|
+
<DT><A HREF="https://www.anthropic.com/legal/commercial-terms">Anthropic Commercial Terms of Service</A>
|
|
32
|
+
<DT><A HREF="https://www.anthropic.com/legal/aup">Anthropic Acceptable Use Policy</A>
|
|
33
|
+
<DT><A HREF="https://code.claude.com/docs/en/legal-and-compliance">Claude Code Legal & Compliance</A>
|
|
34
|
+
<DT><A HREF="https://www.anthropic.com/news/expanded-legal-protections-api-improvements">Expanded Legal Protections & API Improvements</A>
|
|
35
|
+
</DL><p>
|
|
36
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">US Copyright Law & AI</H3>
|
|
37
|
+
<DL><p>
|
|
38
|
+
<DT><A HREF="https://www.copyright.gov/ai/">US Copyright Office — AI Hub</A>
|
|
39
|
+
<DT><A HREF="https://www.copyright.gov/ai/Copyright-and-Artificial-Intelligence-Part-2-Copyrightability-Report.pdf">USCO Part 2: Copyrightability Report (PDF)</A>
|
|
40
|
+
<DT><A HREF="https://www.copyright.gov/ai/Copyright-and-Artificial-Intelligence-Part-3-Generative-AI-Training-Report-Pre-Publication-Version.pdf">USCO Part 3: Generative AI Training Report (PDF)</A>
|
|
41
|
+
<DT><A HREF="https://www.federalregister.gov/documents/2023/03/16/2023-05321/copyright-registration-guidance-works-containing-material-generated-by-artificial-intelligence">Federal Register: AI Copyright Registration Guidance (Mar 2023)</A>
|
|
42
|
+
<DT><A HREF="https://www.copyright.gov/docs/zarya-of-the-dawn.pdf">Zarya of the Dawn — Official USCO Letter (PDF)</A>
|
|
43
|
+
<DT><A HREF="https://media.cadc.uscourts.gov/opinions/docs/2025/03/23-5233.pdf">Thaler v. Perlmutter — D.C. Circuit Opinion (PDF)</A>
|
|
44
|
+
<DT><A HREF="https://cdn.patentlyo.com/media/2025/10/Thaler-v-Perlmutter-Petition.pdf">Thaler v. Perlmutter — SCOTUS Petition (PDF)</A>
|
|
45
|
+
<DT><A HREF="https://www.congress.gov/crs-product/LSB10922">CRS Report: Generative AI and Copyright Law</A>
|
|
46
|
+
</DL><p>
|
|
47
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">EU AI Act & Copyright</H3>
|
|
48
|
+
<DL><p>
|
|
49
|
+
<DT><A HREF="https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=OJ:L_202401689">EU AI Act Full Text — EUR-Lex (PDF)</A>
|
|
50
|
+
<DT><A HREF="https://artificialintelligenceact.eu/article/53/">EU AI Act Article 53 — GPAI Obligations</A>
|
|
51
|
+
<DT><A HREF="https://artificialintelligenceact.eu/article/50/">EU AI Act Article 50 — Transparency</A>
|
|
52
|
+
<DT><A HREF="https://www.europarl.europa.eu/RegData/etudes/BRIE/2025/782585/EPRS_BRI(2025)782585_EN.pdf">EP Briefing: Copyright of AI-Generated Works (2025, PDF)</A>
|
|
53
|
+
<DT><A HREF="https://www.europarl.europa.eu/RegData/etudes/STUD/2025/774095/IUST_STU(2025)774095_EN.pdf">EP Study: Generative AI and Copyright (2025, PDF)</A>
|
|
54
|
+
</DL><p>
|
|
55
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">Legal Analysis (Law Firms)</H3>
|
|
56
|
+
<DL><p>
|
|
57
|
+
<DT><A HREF="https://www.jonesday.com/en/insights/2025/02/copyrightability-of-ai-outputs-us-copyright-office-analyzes-human-authorship-requirement">Jones Day: Copyrightability of AI Outputs (Feb 2025)</A>
|
|
58
|
+
<DT><A HREF="https://www.foley.com/insights/publications/2025/02/clarifying-copyrightability-ai-assisted-works/">Foley & Lardner: Clarifying Copyrightability (Feb 2025)</A>
|
|
59
|
+
<DT><A HREF="https://www.skadden.com/insights/publications/2025/03/appellate-court-affirms-human-authorship">Skadden: Appellate Court Affirms Human Authorship (Mar 2025)</A>
|
|
60
|
+
<DT><A HREF="https://www.finnegan.com/en/insights/ip-updates/dc-circuit-court-holds-that-human-authorship-is-required-as-a-matter-of-statutory-law-for-copyright-protection.html">Finnegan: DC Circuit — Human Authorship Required</A>
|
|
61
|
+
<DT><A HREF="https://www.bitlaw.com/ai/AI-copyright.html">BitLaw: Copyright Protection for AI-Generated Works</A>
|
|
62
|
+
</DL><p>
|
|
63
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">AI Model Licenses</H3>
|
|
64
|
+
<DL><p>
|
|
65
|
+
<DT><A HREF="https://help.mistral.ai/en/articles/347393-under-which-license-are-mistral-s-open-models-available">Mistral Open Models License (Apache 2.0)</A>
|
|
66
|
+
<DT><A HREF="https://github.com/EleutherAI/gpt-neox">EleutherAI GPT-NeoX (Apache 2.0)</A>
|
|
67
|
+
<DT><A HREF="https://ai.meta.com/llama/license/">Meta Llama 2 License</A>
|
|
68
|
+
<DT><A HREF="https://www.llama.com/llama3/license/">Meta Llama 3/3.1/3.2 License</A>
|
|
69
|
+
<DT><A HREF="https://www.llama.com/llama4/license/">Meta Llama 4 License</A>
|
|
70
|
+
</DL><p>
|
|
71
|
+
</DL><p>
|
|
72
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">2. AI Ecosystem (AAIF, MCP, AGENTS.md)</H3>
|
|
73
|
+
<DL><p>
|
|
74
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">AAIF (Agentic AI Foundation)</H3>
|
|
75
|
+
<DL><p>
|
|
76
|
+
<DT><A HREF="https://aaif.io/">AAIF Website</A>
|
|
77
|
+
<DT><A HREF="https://www.linuxfoundation.org/projects">Linux Foundation Projects</A>
|
|
78
|
+
<DT><A HREF="https://en.wikipedia.org/wiki/Open-core_model">Open-Core Model (Wikipedia)</A>
|
|
79
|
+
</DL><p>
|
|
80
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">MCP (Model Context Protocol)</H3>
|
|
81
|
+
<DL><p>
|
|
82
|
+
<DT><A HREF="https://modelcontextprotocol.io/specification/2025-03-26">MCP Specification (2025-03-26)</A>
|
|
83
|
+
<DT><A HREF="https://registry.modelcontextprotocol.io">MCP Server Registry</A>
|
|
84
|
+
<DT><A HREF="https://github.com/modelcontextprotocol/ruby-sdk">MCP Ruby SDK (gem: mcp v0.9.2)</A>
|
|
85
|
+
<DT><A HREF="https://github.com/modelcontextprotocol/servers">MCP Reference Servers</A>
|
|
86
|
+
<DT><A HREF="https://github.com/modelcontextprotocol">MCP GitHub Organization</A>
|
|
87
|
+
</DL><p>
|
|
88
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">AGENTS.md & Goose</H3>
|
|
89
|
+
<DL><p>
|
|
90
|
+
<DT><A HREF="https://agents.md/">AGENTS.md Specification</A>
|
|
91
|
+
<DT><A HREF="https://github.com/block/goose">Goose by Block (Apache-2.0)</A>
|
|
92
|
+
<DT><A HREF="https://github.com/block/goose/blob/main/GOVERNANCE.md">Goose GOVERNANCE.md</A>
|
|
93
|
+
</DL><p>
|
|
94
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">Anthropic SDK</H3>
|
|
95
|
+
<DL><p>
|
|
96
|
+
<DT><A HREF="https://github.com/anthropics/anthropic-sdk-ruby">Anthropic Ruby SDK</A>
|
|
97
|
+
</DL><p>
|
|
98
|
+
</DL><p>
|
|
99
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">3. D-Bus & Desktop IPC</H3>
|
|
100
|
+
<DL><p>
|
|
101
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">D-Bus Specification & Documentation</H3>
|
|
102
|
+
<DL><p>
|
|
103
|
+
<DT><A HREF="https://dbus.freedesktop.org/doc/dbus-specification.html">D-Bus Specification (freedesktop.org)</A>
|
|
104
|
+
<DT><A HREF="https://dbus.freedesktop.org/doc/dbus-api-design.html">D-Bus API Design Guidelines</A>
|
|
105
|
+
<DT><A HREF="https://dbus.freedesktop.org/doc/dbus-tutorial.html">D-Bus Tutorial (freedesktop.org)</A>
|
|
106
|
+
<DT><A HREF="https://en.wikipedia.org/wiki/D-Bus">D-Bus (Wikipedia)</A>
|
|
107
|
+
<DT><A HREF="https://wiki.archlinux.org/title/D-Bus">D-Bus (ArchWiki)</A>
|
|
108
|
+
<DT><A HREF="https://develop.kde.org/docs/features/d-bus/introduction_to_dbus/">KDE D-Bus Introduction</A>
|
|
109
|
+
</DL><p>
|
|
110
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">D-Bus Architecture & Design</H3>
|
|
111
|
+
<DL><p>
|
|
112
|
+
<DT><A HREF="https://blogs.kde.org/2020/10/11/linux-desktop-shell-ipc-wayland-vs-d-bus-and-lack-agreement-when-use-them/">Wayland vs D-Bus for Shell IPC (KDE Blog)</A>
|
|
113
|
+
<DT><A HREF="https://rfc.archlinux.page/0025-dbus-broker-default/">Arch Linux RFC 0025: dbus-broker Default</A>
|
|
114
|
+
<DT><A HREF="https://wiki.archlinux.org/title/Systemd/User">systemd/User Session (ArchWiki)</A>
|
|
115
|
+
</DL><p>
|
|
116
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">ruby-dbus</H3>
|
|
117
|
+
<DL><p>
|
|
118
|
+
<DT><A HREF="https://github.com/mvidner/ruby-dbus">ruby-dbus on GitHub (v0.24.0)</A>
|
|
119
|
+
<DT><A HREF="https://github.com/mvidner/ruby-dbus/blob/master/doc/Tutorial.md">ruby-dbus Tutorial</A>
|
|
120
|
+
<DT><A HREF="https://rubygems.org/gems/ruby-dbus">ruby-dbus on RubyGems</A>
|
|
121
|
+
</DL><p>
|
|
122
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">Wayland Protocols</H3>
|
|
123
|
+
<DL><p>
|
|
124
|
+
<DT><A HREF="https://wayland.app/protocols/wlr-foreign-toplevel-management-unstable-v1">wlr-foreign-toplevel-management Protocol</A>
|
|
125
|
+
</DL><p>
|
|
126
|
+
</DL><p>
|
|
127
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">4. GNOME / GTK4 Development</H3>
|
|
128
|
+
<DL><p>
|
|
129
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">GNOME HIG & Design</H3>
|
|
130
|
+
<DL><p>
|
|
131
|
+
<DT><A HREF="https://developer.gnome.org/hig/">GNOME Human Interface Guidelines</A>
|
|
132
|
+
<DT><A HREF="https://developer.gnome.org/documentation/guidelines/accessibility.html">GNOME Accessibility Guidelines</A>
|
|
133
|
+
<DT><A HREF="https://gnome.pages.gitlab.gnome.org/libadwaita/">Libadwaita Documentation</A>
|
|
134
|
+
</DL><p>
|
|
135
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">GTK4 API & Testing</H3>
|
|
136
|
+
<DL><p>
|
|
137
|
+
<DT><A HREF="https://docs.gtk.org/gtk4/section-accessibility.html">GTK4 Accessibility Documentation</A>
|
|
138
|
+
<DT><A HREF="https://docs.gtk.org/gtk4/func.test_accessible_has_role.html">GTK4 Test Accessible Functions</A>
|
|
139
|
+
</DL><p>
|
|
140
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">Ruby GTK4 Bindings</H3>
|
|
141
|
+
<DL><p>
|
|
142
|
+
<DT><A HREF="https://github.com/ruby-gnome/ruby-gnome">ruby-gnome Project</A>
|
|
143
|
+
<DT><A HREF="https://rubygems.org/gems/gtk4">gtk4 Gem (v4.3.5)</A>
|
|
144
|
+
<DT><A HREF="https://rubygems.org/gems/adwaita">adwaita Gem (v4.3.5)</A>
|
|
145
|
+
</DL><p>
|
|
146
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">Build & i18n</H3>
|
|
147
|
+
<DL><p>
|
|
148
|
+
<DT><A HREF="https://mesonbuild.com/i18n-module.html">Meson i18n Module</A>
|
|
149
|
+
</DL><p>
|
|
150
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">Evidence: No GCC Plugin Support</H3>
|
|
151
|
+
<DL><p>
|
|
152
|
+
<DT><A HREF="https://github.com/pop-os/gnome-control-center/blob/e87068996f29fe812e94478d4cebc38741c1853d/debian/patches/system76_firmware.patch">Pop!_OS GNOME Control Center Fork Patch</A>
|
|
153
|
+
</DL><p>
|
|
154
|
+
</DL><p>
|
|
155
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">5. KDE / Qt6 Development</H3>
|
|
156
|
+
<DL><p>
|
|
157
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">KDE Development</H3>
|
|
158
|
+
<DL><p>
|
|
159
|
+
<DT><A HREF="https://develop.kde.org/docs/features/configuration/kcm/">KDE KCM Development Documentation</A>
|
|
160
|
+
<DT><A HREF="https://develop.kde.org/hig/">KDE Human Interface Guidelines</A>
|
|
161
|
+
<DT><A HREF="https://develop.kde.org/docs/features/configuration/porting_kf6/">KDE Frameworks 6 Porting Guide</A>
|
|
162
|
+
</DL><p>
|
|
163
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">Qt6 Accessibility</H3>
|
|
164
|
+
<DL><p>
|
|
165
|
+
<DT><A HREF="https://doc.qt.io/qt-6/qaccessible.html">Qt6 QAccessible Documentation</A>
|
|
166
|
+
<DT><A HREF="https://community.kde.org/Accessibility/qt-atspi">KDE Accessibility / qt-atspi</A>
|
|
167
|
+
</DL><p>
|
|
168
|
+
</DL><p>
|
|
169
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">6. Accessibility Standards</H3>
|
|
170
|
+
<DL><p>
|
|
171
|
+
<DT><A HREF="https://www.etsi.org/deliver/etsi_en/301500_301599/301549/">EN 301 549 (EU Accessibility Standard)</A>
|
|
172
|
+
<DT><A HREF="https://www.w3.org/WAI/WCAG2/supplemental/patterns/o5p03-manageable-quantity/">WCAG 2.2 — Cognitive: Manageable Quantity</A>
|
|
173
|
+
<DT><A HREF="https://www.w3.org/WAI/cognitive/">W3C Cognitive Accessibility</A>
|
|
174
|
+
<DT><A HREF="https://documentation.ubuntu.com/desktop/en/latest/reference/accessibility/dbus/">AT-SPI2 D-Bus Interfaces (Ubuntu)</A>
|
|
175
|
+
</DL><p>
|
|
176
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">7. GUI Testing</H3>
|
|
177
|
+
<DL><p>
|
|
178
|
+
<DT><A HREF="https://gitlab.com/dogtail/dogtail">Dogtail — Cross-Toolkit GUI Testing (v1.0.7)</A>
|
|
179
|
+
<DT><A HREF="https://ydirson.gitlab.io/the-floss-cook/a11y/2020/04/29/dogtail-against-gtk-and-qt.html">Dogtail Against GTK and Qt (Article)</A>
|
|
180
|
+
<DT><A HREF="https://github.com/faaxm/spix">Spix — Qt6 UI Test Automation (MIT, KDAB)</A>
|
|
181
|
+
<DT><A HREF="https://wiki.debian.org/ContinuousIntegration/GUI">Debian CI GUI Testing</A>
|
|
182
|
+
</DL><p>
|
|
183
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">8. Compositor & Window Manager Integration</H3>
|
|
184
|
+
<DL><p>
|
|
185
|
+
<DT><A HREF="https://github.com/veelenga/i3ipc-ruby">i3ipc Ruby Gem (sway/i3)</A>
|
|
186
|
+
<DT><A HREF="https://wiki.hyprland.org/IPC/">Hyprland IPC Documentation</A>
|
|
187
|
+
<DT><A HREF="https://awesomewm.org/doc/api/libraries/dbus.html">awesome WM D-Bus Module</A>
|
|
188
|
+
</DL><p>
|
|
189
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">9. Ruby Gems & Libraries</H3>
|
|
190
|
+
<DL><p>
|
|
191
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">Runtime Dependencies</H3>
|
|
192
|
+
<DL><p>
|
|
193
|
+
<DT><A HREF="https://rubygems.org/gems/thor">thor (~> 1.5) — CLI framework</A>
|
|
194
|
+
<DT><A HREF="https://rubygems.org/gems/zeitwerk">zeitwerk (~> 2.7) — Autoloader</A>
|
|
195
|
+
<DT><A HREF="https://rubygems.org/gems/json_schemer">json_schemer (~> 2.5) — JSON Schema validation</A>
|
|
196
|
+
<DT><A HREF="https://rubygems.org/gems/i18n">i18n (~> 1.14) — Internationalisation</A>
|
|
197
|
+
<DT><A HREF="https://rubygems.org/gems/gettext">gettext (~> 3.5) — i18n (gettext format)</A>
|
|
198
|
+
<DT><A HREF="https://rubygems.org/gems/anthropic">anthropic (~> 1.16) — Claude API client</A>
|
|
199
|
+
<DT><A HREF="https://rubygems.org/gems/faraday">faraday (~> 2.14) — HTTP client</A>
|
|
200
|
+
<DT><A HREF="https://rubygems.org/gems/jwt">jwt (~> 2.10) — JWT license tokens</A>
|
|
201
|
+
<DT><A HREF="https://rubygems.org/gems/jwt-eddsa">jwt-eddsa (~> 0.9) — Ed25519 JWT extension</A>
|
|
202
|
+
<DT><A HREF="https://rubygems.org/gems/ed25519">ed25519 (~> 1.4) — License key signing</A>
|
|
203
|
+
<DT><A HREF="https://rubygems.org/gems/tty-prompt">tty-prompt (~> 0.23) — Interactive prompts</A>
|
|
204
|
+
<DT><A HREF="https://rubygems.org/gems/tty-spinner">tty-spinner (~> 0.9) — CLI spinners</A>
|
|
205
|
+
<DT><A HREF="https://rubygems.org/gems/terminal-table">terminal-table (~> 4.0) — CLI table output</A>
|
|
206
|
+
<DT><A HREF="https://rubygems.org/gems/rainbow">rainbow (~> 3.1) — Terminal colours</A>
|
|
207
|
+
<DT><A HREF="https://rubygems.org/gems/paint">paint (~> 2.3) — Terminal colours</A>
|
|
208
|
+
<DT><A HREF="https://rubygems.org/gems/rubyzip">rubyzip (~> 2.4) — ZIP archive handling</A>
|
|
209
|
+
<DT><A HREF="https://rubygems.org/gems/json">json (~> 2.18) — JSON parsing</A>
|
|
210
|
+
</DL><p>
|
|
211
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">Development Dependencies</H3>
|
|
212
|
+
<DL><p>
|
|
213
|
+
<DT><A HREF="https://rubygems.org/gems/rspec">rspec (~> 3.13) — Test framework</A>
|
|
214
|
+
<DT><A HREF="https://rubygems.org/gems/rubocop">rubocop (~> 1.82) — Linter</A>
|
|
215
|
+
<DT><A HREF="https://rubygems.org/gems/reek">reek (~> 6.5) — Code smell detection</A>
|
|
216
|
+
<DT><A HREF="https://rubygems.org/gems/mutant-rspec">mutant-rspec (~> 0.14) — Mutation testing</A>
|
|
217
|
+
<DT><A HREF="https://rubygems.org/gems/simplecov">simplecov (~> 0.22) — Coverage</A>
|
|
218
|
+
<DT><A HREF="https://rubygems.org/gems/factory_bot">factory_bot (~> 6.5) — Test factories</A>
|
|
219
|
+
<DT><A HREF="https://rubygems.org/gems/fakefs">fakefs (~> 3.2) — Filesystem stubs</A>
|
|
220
|
+
<DT><A HREF="https://rubygems.org/gems/rantly">rantly (~> 3.0) — Property-based testing</A>
|
|
221
|
+
<DT><A HREF="https://rubygems.org/gems/webmock">webmock (~> 3.26) — HTTP mocking</A>
|
|
222
|
+
<DT><A HREF="https://rubygems.org/gems/bundler-audit">bundler-audit (~> 0.9) — CVE audit</A>
|
|
223
|
+
<DT><A HREF="https://rubygems.org/gems/ruby_audit">ruby_audit (~> 3.1) — Ruby CVE audit</A>
|
|
224
|
+
<DT><A HREF="https://rubygems.org/gems/flay">flay (~> 2.14) — Duplication detection</A>
|
|
225
|
+
<DT><A HREF="https://rubygems.org/gems/overcommit">overcommit (~> 0.68) — Git hooks</A>
|
|
226
|
+
<DT><A HREF="https://rubygems.org/gems/ronn-ng">ronn-ng (~> 0.10) — Man page generation</A>
|
|
227
|
+
<DT><A HREF="https://rubygems.org/gems/yard">yard (~> 0.9) — Documentation</A>
|
|
228
|
+
<DT><A HREF="https://rubygems.org/gems/mdl">mdl (~> 0.15) — Markdown lint</A>
|
|
229
|
+
<DT><A HREF="https://rubygems.org/gems/fpm">fpm (~> 1.17) — Package builder</A>
|
|
230
|
+
</DL><p>
|
|
231
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">Future / Desktop Dependencies</H3>
|
|
232
|
+
<DL><p>
|
|
233
|
+
<DT><A HREF="https://rubygems.org/gems/ruby-dbus">ruby-dbus (0.24.0) — D-Bus IPC</A>
|
|
234
|
+
<DT><A HREF="https://rubygems.org/gems/gtk4">gtk4 (4.3.5) — GTK4 bindings</A>
|
|
235
|
+
<DT><A HREF="https://rubygems.org/gems/adwaita">adwaita (4.3.5) — Libadwaita bindings</A>
|
|
236
|
+
<DT><A HREF="https://rubygems.org/gems/i3ipc">i3ipc — sway/i3 IPC</A>
|
|
237
|
+
<DT><A HREF="https://rubygems.org/gems/mcp">mcp (0.9.2) — MCP server SDK</A>
|
|
238
|
+
</DL><p>
|
|
239
|
+
</DL><p>
|
|
240
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">10. Build, Packaging & Distribution</H3>
|
|
241
|
+
<DL><p>
|
|
242
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">Build Tools</H3>
|
|
243
|
+
<DL><p>
|
|
244
|
+
<DT><A HREF="https://github.com/jordansissel/fpm">fpm Project (GitHub)</A>
|
|
245
|
+
<DT><A HREF="https://fpm.readthedocs.io/en/latest/">fpm Documentation (ReadTheDocs)</A>
|
|
246
|
+
<DT><A HREF="https://github.com/rbenv/rbenv">rbenv — Ruby Version Manager</A>
|
|
247
|
+
<DT><A HREF="https://github.com/rbenv/ruby-build">ruby-build — Compile Ruby from Source</A>
|
|
248
|
+
</DL><p>
|
|
249
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">Debian Packaging</H3>
|
|
250
|
+
<DL><p>
|
|
251
|
+
<DT><A HREF="https://man7.org/linux/man-pages/man1/dpkg-deb.1.html">dpkg-deb Man Page</A>
|
|
252
|
+
<DT><A HREF="https://wiki.debian.org/FakeRoot">Debian FakeRoot Wiki</A>
|
|
253
|
+
<DT><A HREF="https://rsync.samba.org/">rsync Homepage</A>
|
|
254
|
+
<DT><A HREF="https://download.samba.org/pub/rsync/rsync.1">rsync Man Page</A>
|
|
255
|
+
</DL><p>
|
|
256
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">System Libraries</H3>
|
|
257
|
+
<DL><p>
|
|
258
|
+
<DT><A HREF="https://www.gnu.org/software/libc/">GNU C Library (glibc)</A>
|
|
259
|
+
<DT><A HREF="https://www.openssl.org/">OpenSSL</A>
|
|
260
|
+
<DT><A HREF="https://www.zlib.net/">zlib</A>
|
|
261
|
+
<DT><A HREF="https://pyyaml.org/wiki/LibYAML">LibYAML</A>
|
|
262
|
+
</DL><p>
|
|
263
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">Repository Management</H3>
|
|
264
|
+
<DL><p>
|
|
265
|
+
<DT><A HREF="https://pulpproject.org">Pulp Project — Multi-Format Repository</A>
|
|
266
|
+
</DL><p>
|
|
267
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">Versioning & Changelog</H3>
|
|
268
|
+
<DL><p>
|
|
269
|
+
<DT><A HREF="https://semver.org">Semantic Versioning 2.0.0</A>
|
|
270
|
+
<DT><A HREF="https://keepachangelog.com/en/1.1.0/">Keep a Changelog 1.1.0</A>
|
|
271
|
+
<DT><A HREF="https://git-cliff.org/docs/configuration">git-cliff Configuration Reference</A>
|
|
272
|
+
</DL><p>
|
|
273
|
+
</DL><p>
|
|
274
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">11. Code Quality & Development Tools</H3>
|
|
275
|
+
<DL><p>
|
|
276
|
+
<DT><A HREF="https://github.com/troessner/reek">Reek — Code Smell Detector</A>
|
|
277
|
+
<DT><A HREF="https://github.com/troessner/reek/blob/master/docs/Reek-4-to-Reek-5-migration.md">Reek 4-to-5 Migration Guide</A>
|
|
278
|
+
<DT><A HREF="https://github.com/troessner/reek/blob/master/docs/Duplicate-Method-Call.md">Reek: Duplicate Method Call Documentation</A>
|
|
279
|
+
<DT><A HREF="https://github.com/sds/overcommit">Overcommit — Git Hook Manager</A>
|
|
280
|
+
<DT><A HREF="https://rubygems.org">RubyGems Package Registry</A>
|
|
281
|
+
<DT><A HREF="https://json-schema.org/draft/2020-12/schema">JSON Schema Draft 2020-12</A>
|
|
282
|
+
</DL><p>
|
|
283
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">12. Standards & Specifications</H3>
|
|
284
|
+
<DL><p>
|
|
285
|
+
<DT><A HREF="https://specifications.freedesktop.org/basedir/latest/">XDG Base Directory Specification</A>
|
|
286
|
+
<DT><A HREF="https://wiki.archlinux.org/title/XDG_Base_Directory">XDG Base Directory (ArchWiki)</A>
|
|
287
|
+
<DT><A HREF="https://userbase.kde.org/KDE_System_Administration/XDG_Filesystem_Hierarchy">KDE XDG Filesystem Hierarchy</A>
|
|
288
|
+
<DT><A HREF="https://endoflife.date/api/ruby.json">Ruby End-of-Life Dates (API)</A>
|
|
289
|
+
<DT><A HREF="https://www.ruby-lang.org/en/downloads/releases/">Ruby Official Releases</A>
|
|
290
|
+
</DL><p>
|
|
291
|
+
<DT><H3 ADD_DATE="1740528000" LAST_MODIFIED="1740528000">13. Project Infrastructure</H3>
|
|
292
|
+
<DL><p>
|
|
293
|
+
<DT><A HREF="https://gitlab.neatnerds.be/neatnerds/nncc">nncc Repository (GitLab)</A>
|
|
294
|
+
<DT><A HREF="https://gitlab.neatnerds.be/neatnerds/nncc/-/releases">nncc Releases</A>
|
|
295
|
+
<DT><A HREF="https://neatnerds.be/nncc/pricing">nncc Content Pack Pricing</A>
|
|
296
|
+
<DT><A HREF="https://repo.neatnerds.be/gpg.key">APT Repository GPG Key</A>
|
|
297
|
+
<DT><A HREF="https://repo.neatnerds.be/stable">APT Repository (stable)</A>
|
|
298
|
+
<DT><A HREF="https://repo.neatnerds.be/stable/rpm">RPM Repository (stable)</A>
|
|
299
|
+
</DL><p>
|
|
300
|
+
</DL><p>
|
|
301
|
+
</DL><p>
|