maestro-fleet 4.5.0__tar.gz
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.
- maestro_fleet-4.5.0/LICENSE +109 -0
- maestro_fleet-4.5.0/PKG-INFO +382 -0
- maestro_fleet-4.5.0/README.md +354 -0
- maestro_fleet-4.5.0/maestro/__init__.py +15 -0
- maestro_fleet-4.5.0/maestro/audit/__init__.py +5 -0
- maestro_fleet-4.5.0/maestro/audit/anchor/__init__.py +56 -0
- maestro_fleet-4.5.0/maestro/audit/anchor/azure_blob.py +99 -0
- maestro_fleet-4.5.0/maestro/audit/anchor/base.py +38 -0
- maestro_fleet-4.5.0/maestro/audit/anchor/filesystem.py +49 -0
- maestro_fleet-4.5.0/maestro/audit/anchor/s3.py +103 -0
- maestro_fleet-4.5.0/maestro/audit/anchor/s3_compatible.py +115 -0
- maestro_fleet-4.5.0/maestro/audit/anchor/scheduler.py +59 -0
- maestro_fleet-4.5.0/maestro/audit/log.py +238 -0
- maestro_fleet-4.5.0/maestro/audit/policy.py +67 -0
- maestro_fleet-4.5.0/maestro/audit/signer.py +58 -0
- maestro_fleet-4.5.0/maestro/audit/types.py +50 -0
- maestro_fleet-4.5.0/maestro/auth.py +286 -0
- maestro_fleet-4.5.0/maestro/backup.py +268 -0
- maestro_fleet-4.5.0/maestro/bridge.py +496 -0
- maestro_fleet-4.5.0/maestro/cli.py +3396 -0
- maestro_fleet-4.5.0/maestro/cli_argparse.py +208 -0
- maestro_fleet-4.5.0/maestro/cli_ui.py +92 -0
- maestro_fleet-4.5.0/maestro/config/__init__.py +1 -0
- maestro_fleet-4.5.0/maestro/config/mcp-servers.schema.json +58 -0
- maestro_fleet-4.5.0/maestro/config/role-paths-default.json +418 -0
- maestro_fleet-4.5.0/maestro/config/secret-allowlist.json +4 -0
- maestro_fleet-4.5.0/maestro/core/__init__.py +1 -0
- maestro_fleet-4.5.0/maestro/core/bridge_notifier.py +653 -0
- maestro_fleet-4.5.0/maestro/core/bridge_poller.py +852 -0
- maestro_fleet-4.5.0/maestro/core/bridge_slack_bot.py +1215 -0
- maestro_fleet-4.5.0/maestro/core/crew.py +2274 -0
- maestro_fleet-4.5.0/maestro/core/fleet_monitor.py +964 -0
- maestro_fleet-4.5.0/maestro/core/fleet_runner.py +6896 -0
- maestro_fleet-4.5.0/maestro/core/fleet_usage_tracker.py +722 -0
- maestro_fleet-4.5.0/maestro/core/gates.py +96 -0
- maestro_fleet-4.5.0/maestro/core/plans.py +109 -0
- maestro_fleet-4.5.0/maestro/core/post_voyage_verify.py +425 -0
- maestro_fleet-4.5.0/maestro/core/pr_merge.py +257 -0
- maestro_fleet-4.5.0/maestro/core/pr_review_dispatch.py +246 -0
- maestro_fleet-4.5.0/maestro/core/worktrees.py +841 -0
- maestro_fleet-4.5.0/maestro/core_constants.py +76 -0
- maestro_fleet-4.5.0/maestro/docs/AIR-GAPPED.md +59 -0
- maestro_fleet-4.5.0/maestro/docs/ARCHITECTURE.md +477 -0
- maestro_fleet-4.5.0/maestro/docs/BRANCH-DISCIPLINE.md +128 -0
- maestro_fleet-4.5.0/maestro/docs/CHAIN-OF-COMMAND.md +363 -0
- maestro_fleet-4.5.0/maestro/docs/CLI-ERRORS.md +168 -0
- maestro_fleet-4.5.0/maestro/docs/CLI-REFERENCE.md +755 -0
- maestro_fleet-4.5.0/maestro/docs/COMPARATOR-everything-claude-code.md +136 -0
- maestro_fleet-4.5.0/maestro/docs/COMPLIANCE-MAPPING.md +179 -0
- maestro_fleet-4.5.0/maestro/docs/CONFIG-MODELS.md +91 -0
- maestro_fleet-4.5.0/maestro/docs/CREW-INVOCATION.md +299 -0
- maestro_fleet-4.5.0/maestro/docs/ENTERPRISE-SECURITY.md +404 -0
- maestro_fleet-4.5.0/maestro/docs/ENTERPRISE-SETUP.md +381 -0
- maestro_fleet-4.5.0/maestro/docs/GETTING-STARTED.md +645 -0
- maestro_fleet-4.5.0/maestro/docs/HUMAN-REVIEW-GATES.md +451 -0
- maestro_fleet-4.5.0/maestro/docs/LICENCE.md +134 -0
- maestro_fleet-4.5.0/maestro/docs/LIFECYCLE-AUTOMATION.md +220 -0
- maestro_fleet-4.5.0/maestro/docs/OPERATOR-GUIDE.md +802 -0
- maestro_fleet-4.5.0/maestro/docs/ORDERS-AND-VOYAGES.md +329 -0
- maestro_fleet-4.5.0/maestro/docs/OWNER-GUIDE.md +1247 -0
- maestro_fleet-4.5.0/maestro/docs/PARALLEL-VOYAGES.md +329 -0
- maestro_fleet-4.5.0/maestro/docs/PERSONAS.md +382 -0
- maestro_fleet-4.5.0/maestro/docs/PRICING.md +215 -0
- maestro_fleet-4.5.0/maestro/docs/PUBLIC-SECURITY-OVERVIEW.md +102 -0
- maestro_fleet-4.5.0/maestro/docs/QUICKSTART.md +209 -0
- maestro_fleet-4.5.0/maestro/docs/ROLE-OVERLAYS.md +615 -0
- maestro_fleet-4.5.0/maestro/docs/ROLES-GUIDE.md +222 -0
- maestro_fleet-4.5.0/maestro/docs/SECURITY-QUESTIONNAIRE.md +172 -0
- maestro_fleet-4.5.0/maestro/docs/SETUP.md +170 -0
- maestro_fleet-4.5.0/maestro/docs/SUPPORT.md +202 -0
- maestro_fleet-4.5.0/maestro/docs/TROUBLESHOOTING.md +826 -0
- maestro_fleet-4.5.0/maestro/docs/TRUST.md +242 -0
- maestro_fleet-4.5.0/maestro/docs/bridge-setup-guide.md +551 -0
- maestro_fleet-4.5.0/maestro/egress/__init__.py +42 -0
- maestro_fleet-4.5.0/maestro/egress/airgap.py +30 -0
- maestro_fleet-4.5.0/maestro/egress/diagram.py +229 -0
- maestro_fleet-4.5.0/maestro/egress/filter.py +282 -0
- maestro_fleet-4.5.0/maestro/egress/proxy.py +66 -0
- maestro_fleet-4.5.0/maestro/env.py +59 -0
- maestro_fleet-4.5.0/maestro/errors.py +80 -0
- maestro_fleet-4.5.0/maestro/hooks/__init__.py +17 -0
- maestro_fleet-4.5.0/maestro/hooks/branch_guard.py +263 -0
- maestro_fleet-4.5.0/maestro/hooks/bridge_question.py +59 -0
- maestro_fleet-4.5.0/maestro/hooks/notification.py +77 -0
- maestro_fleet-4.5.0/maestro/hooks/posttool.py +387 -0
- maestro_fleet-4.5.0/maestro/hooks/pretool.py +370 -0
- maestro_fleet-4.5.0/maestro/hooks/secret_patterns.py +226 -0
- maestro_fleet-4.5.0/maestro/hooks/stop.py +503 -0
- maestro_fleet-4.5.0/maestro/identity/__init__.py +42 -0
- maestro_fleet-4.5.0/maestro/identity/acl.py +102 -0
- maestro_fleet-4.5.0/maestro/identity/auth.py +101 -0
- maestro_fleet-4.5.0/maestro/identity/defaults/__init__.py +0 -0
- maestro_fleet-4.5.0/maestro/identity/encryption.py +210 -0
- maestro_fleet-4.5.0/maestro/identity/gate.py +113 -0
- maestro_fleet-4.5.0/maestro/identity/integrity.py +219 -0
- maestro_fleet-4.5.0/maestro/identity/loader.py +196 -0
- maestro_fleet-4.5.0/maestro/identity/rights.py +307 -0
- maestro_fleet-4.5.0/maestro/identity/types.py +56 -0
- maestro_fleet-4.5.0/maestro/init.py +563 -0
- maestro_fleet-4.5.0/maestro/launch/__init__.py +3 -0
- maestro_fleet-4.5.0/maestro/launch/sandbox.py +162 -0
- maestro_fleet-4.5.0/maestro/licence/__init__.py +245 -0
- maestro_fleet-4.5.0/maestro/licence/client.py +156 -0
- maestro_fleet-4.5.0/maestro/licence/config.py +102 -0
- maestro_fleet-4.5.0/maestro/licence/errors.py +44 -0
- maestro_fleet-4.5.0/maestro/licence/grace.py +64 -0
- maestro_fleet-4.5.0/maestro/licence/storage.py +245 -0
- maestro_fleet-4.5.0/maestro/mcp.py +330 -0
- maestro_fleet-4.5.0/maestro/personas/__init__.py +27 -0
- maestro_fleet-4.5.0/maestro/personas/_schema.json +147 -0
- maestro_fleet-4.5.0/maestro/personas/default/persona.json +38 -0
- maestro_fleet-4.5.0/maestro/personas/default/roles/BLD.md +16 -0
- maestro_fleet-4.5.0/maestro/personas/default/roles/DOC.md +15 -0
- maestro_fleet-4.5.0/maestro/personas/default/roles/LEAD.md +16 -0
- maestro_fleet-4.5.0/maestro/personas/default/roles/PLN.md +16 -0
- maestro_fleet-4.5.0/maestro/personas/default/roles/REL.md +15 -0
- maestro_fleet-4.5.0/maestro/personas/default/roles/SEC.md +15 -0
- maestro_fleet-4.5.0/maestro/personas/default/roles/TST.md +15 -0
- maestro_fleet-4.5.0/maestro/personas/game-rangers/persona.json +38 -0
- maestro_fleet-4.5.0/maestro/personas/game-rangers/roles/Anti-Poaching-Unit.md +15 -0
- maestro_fleet-4.5.0/maestro/personas/game-rangers/roles/Chief-Ranger.md +16 -0
- maestro_fleet-4.5.0/maestro/personas/game-rangers/roles/Field-Ranger.md +16 -0
- maestro_fleet-4.5.0/maestro/personas/game-rangers/roles/Logistics-Coordinator.md +15 -0
- maestro_fleet-4.5.0/maestro/personas/game-rangers/roles/Naturalist.md +16 -0
- maestro_fleet-4.5.0/maestro/personas/game-rangers/roles/Scout.md +16 -0
- maestro_fleet-4.5.0/maestro/personas/game-rangers/roles/Veterinarian.md +15 -0
- maestro_fleet-4.5.0/maestro/personas/loader.py +69 -0
- maestro_fleet-4.5.0/maestro/personas/models.py +65 -0
- maestro_fleet-4.5.0/maestro/personas/nautical/persona.json +38 -0
- maestro_fleet-4.5.0/maestro/personas/nautical/roles/BOS.md +460 -0
- maestro_fleet-4.5.0/maestro/personas/nautical/roles/COX.md +666 -0
- maestro_fleet-4.5.0/maestro/personas/nautical/roles/LKT.md +465 -0
- maestro_fleet-4.5.0/maestro/personas/nautical/roles/NAV.md +433 -0
- maestro_fleet-4.5.0/maestro/personas/nautical/roles/QM.md +320 -0
- maestro_fleet-4.5.0/maestro/personas/nautical/roles/SCR.md +384 -0
- maestro_fleet-4.5.0/maestro/personas/nautical/roles/SHP.md +397 -0
- maestro_fleet-4.5.0/maestro/personas/navy-seals/persona.json +38 -0
- maestro_fleet-4.5.0/maestro/personas/navy-seals/roles/Comms.md +16 -0
- maestro_fleet-4.5.0/maestro/personas/navy-seals/roles/Intel-Analyst.md +15 -0
- maestro_fleet-4.5.0/maestro/personas/navy-seals/roles/Logistics-Officer.md +15 -0
- maestro_fleet-4.5.0/maestro/personas/navy-seals/roles/Operator.md +15 -0
- maestro_fleet-4.5.0/maestro/personas/navy-seals/roles/Recon.md +15 -0
- maestro_fleet-4.5.0/maestro/personas/navy-seals/roles/Team-Leader.md +16 -0
- maestro_fleet-4.5.0/maestro/personas/navy-seals/roles/Verifier.md +15 -0
- maestro_fleet-4.5.0/maestro/personas/render.py +8 -0
- maestro_fleet-4.5.0/maestro/personas/resolver.py +106 -0
- maestro_fleet-4.5.0/maestro/personas/storm-troopers/persona.json +38 -0
- maestro_fleet-4.5.0/maestro/personas/storm-troopers/roles/Archivist.md +16 -0
- maestro_fleet-4.5.0/maestro/personas/storm-troopers/roles/Commander.md +16 -0
- maestro_fleet-4.5.0/maestro/personas/storm-troopers/roles/Imperial-Security.md +15 -0
- maestro_fleet-4.5.0/maestro/personas/storm-troopers/roles/Inspector.md +15 -0
- maestro_fleet-4.5.0/maestro/personas/storm-troopers/roles/Logistics-Officer.md +15 -0
- maestro_fleet-4.5.0/maestro/personas/storm-troopers/roles/Strategist.md +16 -0
- maestro_fleet-4.5.0/maestro/personas/storm-troopers/roles/Trooper.md +15 -0
- maestro_fleet-4.5.0/maestro/project_analysis.py +314 -0
- maestro_fleet-4.5.0/maestro/quickstart.py +660 -0
- maestro_fleet-4.5.0/maestro/registry.py +68 -0
- maestro_fleet-4.5.0/maestro/review.py +325 -0
- maestro_fleet-4.5.0/maestro/roles/BLD.md +253 -0
- maestro_fleet-4.5.0/maestro/roles/DOC.md +222 -0
- maestro_fleet-4.5.0/maestro/roles/LEAD.md +237 -0
- maestro_fleet-4.5.0/maestro/roles/PLN.md +400 -0
- maestro_fleet-4.5.0/maestro/roles/REL.md +259 -0
- maestro_fleet-4.5.0/maestro/roles/SEC.md +270 -0
- maestro_fleet-4.5.0/maestro/roles/TST.md +413 -0
- maestro_fleet-4.5.0/maestro/roles/loader.py +367 -0
- maestro_fleet-4.5.0/maestro/roles/overlay.py +259 -0
- maestro_fleet-4.5.0/maestro/secrets/__init__.py +41 -0
- maestro_fleet-4.5.0/maestro/secrets/aws_secrets.py +70 -0
- maestro_fleet-4.5.0/maestro/secrets/azure_keyvault.py +66 -0
- maestro_fleet-4.5.0/maestro/secrets/base.py +23 -0
- maestro_fleet-4.5.0/maestro/secrets/env.py +41 -0
- maestro_fleet-4.5.0/maestro/secrets/one_password.py +121 -0
- maestro_fleet-4.5.0/maestro/secrets/os_keyring.py +93 -0
- maestro_fleet-4.5.0/maestro/secrets/refs.py +256 -0
- maestro_fleet-4.5.0/maestro/secrets/registry.py +83 -0
- maestro_fleet-4.5.0/maestro/secrets/secrets.py +68 -0
- maestro_fleet-4.5.0/maestro/secrets/vault.py +103 -0
- maestro_fleet-4.5.0/maestro/security/__init__.py +20 -0
- maestro_fleet-4.5.0/maestro/security/owasp_patterns.py +725 -0
- maestro_fleet-4.5.0/maestro/security/review.py +166 -0
- maestro_fleet-4.5.0/maestro/setup.py +617 -0
- maestro_fleet-4.5.0/maestro/setup_cheatsheet.py +113 -0
- maestro_fleet-4.5.0/maestro/templates/claude-maestro.md.j2 +200 -0
- maestro_fleet-4.5.0/maestro/templates/claude-project.md.j2 +80 -0
- maestro_fleet-4.5.0/maestro/templates/requirements/bug-report.md.j2 +73 -0
- maestro_fleet-4.5.0/maestro/templates/requirements/doc-audit.md.j2 +64 -0
- maestro_fleet-4.5.0/maestro/templates/requirements/new-feature.md.j2 +53 -0
- maestro_fleet-4.5.0/maestro/templates/requirements/performance.md.j2 +61 -0
- maestro_fleet-4.5.0/maestro/templates/requirements/project-setup.md.j2 +59 -0
- maestro_fleet-4.5.0/maestro/templates/requirements/refactor.md.j2 +58 -0
- maestro_fleet-4.5.0/maestro/templates/requirements/security-review.md.j2 +60 -0
- maestro_fleet-4.5.0/maestro/templates/requirements/test-coverage.md.j2 +60 -0
- maestro_fleet-4.5.0/maestro/templates_loader.py +90 -0
- maestro_fleet-4.5.0/maestro/update.py +643 -0
- maestro_fleet-4.5.0/maestro/workspace.py +65 -0
- maestro_fleet-4.5.0/maestro_fleet.egg-info/PKG-INFO +382 -0
- maestro_fleet-4.5.0/maestro_fleet.egg-info/SOURCES.txt +311 -0
- maestro_fleet-4.5.0/maestro_fleet.egg-info/dependency_links.txt +1 -0
- maestro_fleet-4.5.0/maestro_fleet.egg-info/entry_points.txt +2 -0
- maestro_fleet-4.5.0/maestro_fleet.egg-info/requires.txt +21 -0
- maestro_fleet-4.5.0/maestro_fleet.egg-info/top_level.txt +1 -0
- maestro_fleet-4.5.0/pyproject.toml +70 -0
- maestro_fleet-4.5.0/setup.cfg +4 -0
- maestro_fleet-4.5.0/tests/test_ac_pipeline.py +828 -0
- maestro_fleet-4.5.0/tests/test_active_processes_drain.py +236 -0
- maestro_fleet-4.5.0/tests/test_adm_mcp_cli.py +330 -0
- maestro_fleet-4.5.0/tests/test_adm_review_cli.py +338 -0
- maestro_fleet-4.5.0/tests/test_adm_security_scan_cli.py +294 -0
- maestro_fleet-4.5.0/tests/test_adm_setup.py +240 -0
- maestro_fleet-4.5.0/tests/test_adm_setup_e2e.py +182 -0
- maestro_fleet-4.5.0/tests/test_adm_update_mcp_migration.py +423 -0
- maestro_fleet-4.5.0/tests/test_admiralty_shim.py +49 -0
- maestro_fleet-4.5.0/tests/test_audit_anchor.py +127 -0
- maestro_fleet-4.5.0/tests/test_audit_anchor_mandatory.py +142 -0
- maestro_fleet-4.5.0/tests/test_audit_log.py +172 -0
- maestro_fleet-4.5.0/tests/test_auth_legacy_bypass.py +197 -0
- maestro_fleet-4.5.0/tests/test_branch_guard.py +334 -0
- maestro_fleet-4.5.0/tests/test_branch_guard_loose_orders.py +174 -0
- maestro_fleet-4.5.0/tests/test_branch_storm_and_target_repo.py +289 -0
- maestro_fleet-4.5.0/tests/test_bridge_setup_wizard.py +185 -0
- maestro_fleet-4.5.0/tests/test_cli_argparse.py +120 -0
- maestro_fleet-4.5.0/tests/test_cli_main_handler.py +398 -0
- maestro_fleet-4.5.0/tests/test_cli_noun_aliases.py +151 -0
- maestro_fleet-4.5.0/tests/test_cli_ui.py +191 -0
- maestro_fleet-4.5.0/tests/test_cli_version.py +10 -0
- maestro_fleet-4.5.0/tests/test_convergence_gating.py +600 -0
- maestro_fleet-4.5.0/tests/test_convergence_retry.py +396 -0
- maestro_fleet-4.5.0/tests/test_convergence_retry_0272.py +213 -0
- maestro_fleet-4.5.0/tests/test_convergence_retry_fast_path.py +437 -0
- maestro_fleet-4.5.0/tests/test_cox_security_gate.py +252 -0
- maestro_fleet-4.5.0/tests/test_crew.py +679 -0
- maestro_fleet-4.5.0/tests/test_data_flow_diagram.py +95 -0
- maestro_fleet-4.5.0/tests/test_dispatch_uses_worktree.py +279 -0
- maestro_fleet-4.5.0/tests/test_dispatcher_reliability.py +878 -0
- maestro_fleet-4.5.0/tests/test_doctor_preflight.py +221 -0
- maestro_fleet-4.5.0/tests/test_egress.py +291 -0
- maestro_fleet-4.5.0/tests/test_egress_filter.py +140 -0
- maestro_fleet-4.5.0/tests/test_egress_modes.py +182 -0
- maestro_fleet-4.5.0/tests/test_eight_bells_review_gate.py +266 -0
- maestro_fleet-4.5.0/tests/test_env_var_fallback.py +87 -0
- maestro_fleet-4.5.0/tests/test_errors.py +97 -0
- maestro_fleet-4.5.0/tests/test_fleet_monitor.py +244 -0
- maestro_fleet-4.5.0/tests/test_fleet_runner.py +1297 -0
- maestro_fleet-4.5.0/tests/test_fleet_runner_mcp.py +177 -0
- maestro_fleet-4.5.0/tests/test_friendly_argparse.py +163 -0
- maestro_fleet-4.5.0/tests/test_identity_acl.py +140 -0
- maestro_fleet-4.5.0/tests/test_identity_integrity.py +145 -0
- maestro_fleet-4.5.0/tests/test_identity_rights.py +238 -0
- maestro_fleet-4.5.0/tests/test_idle_watchdog.py +355 -0
- maestro_fleet-4.5.0/tests/test_invoke_claude_json.py +295 -0
- maestro_fleet-4.5.0/tests/test_iteration_timeout.py +45 -0
- maestro_fleet-4.5.0/tests/test_licence.py +507 -0
- maestro_fleet-4.5.0/tests/test_licence_cli_test_flags.py +169 -0
- maestro_fleet-4.5.0/tests/test_licence_config.py +122 -0
- maestro_fleet-4.5.0/tests/test_licence_extended.py +381 -0
- maestro_fleet-4.5.0/tests/test_licence_fake_activation.py +302 -0
- maestro_fleet-4.5.0/tests/test_max_turns.py +160 -0
- maestro_fleet-4.5.0/tests/test_mcp_registry.py +434 -0
- maestro_fleet-4.5.0/tests/test_modernised_role_files.py +184 -0
- maestro_fleet-4.5.0/tests/test_monitor_observability.py +366 -0
- maestro_fleet-4.5.0/tests/test_multi_role_advance.py +243 -0
- maestro_fleet-4.5.0/tests/test_nav_plan_schema.py +173 -0
- maestro_fleet-4.5.0/tests/test_no_legacy_residue.py +197 -0
- maestro_fleet-4.5.0/tests/test_no_raw_brand_strings.py +184 -0
- maestro_fleet-4.5.0/tests/test_operator_roles.py +164 -0
- maestro_fleet-4.5.0/tests/test_owasp_patterns.py +351 -0
- maestro_fleet-4.5.0/tests/test_parallel_crew_isolation.py +331 -0
- maestro_fleet-4.5.0/tests/test_parallel_voyage_e2e.py +393 -0
- maestro_fleet-4.5.0/tests/test_persona_e2e.py +147 -0
- maestro_fleet-4.5.0/tests/test_persona_loader.py +114 -0
- maestro_fleet-4.5.0/tests/test_persona_resolver.py +172 -0
- maestro_fleet-4.5.0/tests/test_persona_security.py +160 -0
- maestro_fleet-4.5.0/tests/test_persona_squad_names.py +123 -0
- maestro_fleet-4.5.0/tests/test_placeholder_repo_config.py +154 -0
- maestro_fleet-4.5.0/tests/test_post_nav_gate.py +266 -0
- maestro_fleet-4.5.0/tests/test_post_nav_gate_e2e.py +322 -0
- maestro_fleet-4.5.0/tests/test_posttool_file_counter.py +110 -0
- maestro_fleet-4.5.0/tests/test_posttool_owasp.py +253 -0
- maestro_fleet-4.5.0/tests/test_pr_creation_default_branch.py +336 -0
- maestro_fleet-4.5.0/tests/test_pretool_pr_gate.py +180 -0
- maestro_fleet-4.5.0/tests/test_pretool_secret_guard.py +459 -0
- maestro_fleet-4.5.0/tests/test_project_analysis.py +202 -0
- maestro_fleet-4.5.0/tests/test_queue_encoding_tolerance.py +184 -0
- maestro_fleet-4.5.0/tests/test_quickstart.py +239 -0
- maestro_fleet-4.5.0/tests/test_quickstart_repo_link.py +369 -0
- maestro_fleet-4.5.0/tests/test_requirement_templates.py +103 -0
- maestro_fleet-4.5.0/tests/test_review_time_tracking.py +179 -0
- maestro_fleet-4.5.0/tests/test_role_cli.py +209 -0
- maestro_fleet-4.5.0/tests/test_role_dispatcher_integration.py +155 -0
- maestro_fleet-4.5.0/tests/test_role_loader.py +201 -0
- maestro_fleet-4.5.0/tests/test_role_model_resolution.py +220 -0
- maestro_fleet-4.5.0/tests/test_role_overlay.py +345 -0
- maestro_fleet-4.5.0/tests/test_role_tool_scoping.py +193 -0
- maestro_fleet-4.5.0/tests/test_run_cli.py +176 -0
- maestro_fleet-4.5.0/tests/test_secret_doctor_scrub.py +137 -0
- maestro_fleet-4.5.0/tests/test_secret_patterns.py +349 -0
- maestro_fleet-4.5.0/tests/test_secret_refs.py +144 -0
- maestro_fleet-4.5.0/tests/test_secrets_provider.py +188 -0
- maestro_fleet-4.5.0/tests/test_security_review_cli.py +115 -0
- maestro_fleet-4.5.0/tests/test_security_review_slash_command.py +126 -0
- maestro_fleet-4.5.0/tests/test_session_id.py +121 -0
- maestro_fleet-4.5.0/tests/test_setup_cheatsheet.py +109 -0
- maestro_fleet-4.5.0/tests/test_subprocess_env_scrub.py +194 -0
- maestro_fleet-4.5.0/tests/test_usage_voyage_filter.py +124 -0
- maestro_fleet-4.5.0/tests/test_verify_and_push_branch_guard.py +100 -0
- maestro_fleet-4.5.0/tests/test_voyage_branch_propagation.py +294 -0
- maestro_fleet-4.5.0/tests/test_voyage_reconcile.py +296 -0
- maestro_fleet-4.5.0/tests/test_voyage_seq_numbering.py +152 -0
- maestro_fleet-4.5.0/tests/test_voyage_sweep_ownership.py +351 -0
- maestro_fleet-4.5.0/tests/test_workspace_dual_read.py +95 -0
- maestro_fleet-4.5.0/tests/test_workstation_setup.py +89 -0
- maestro_fleet-4.5.0/tests/test_worktrees.py +397 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
ADMIRALTY FRAMEWORK — COMMERCIAL LICENSE AGREEMENT
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Tech 127 Pty Ltd (Tech 127). All rights reserved.
|
|
4
|
+
|
|
5
|
+
IMPORTANT: READ THIS LICENSE CAREFULLY BEFORE INSTALLING, COPYING, OR USING
|
|
6
|
+
THE ADMIRALTY FRAMEWORK SOFTWARE ("SOFTWARE"). BY INSTALLING OR USING THE
|
|
7
|
+
SOFTWARE, YOU ("LICENSEE") AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT.
|
|
8
|
+
IF YOU DO NOT AGREE, DO NOT INSTALL OR USE THE SOFTWARE.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
1. GRANT OF LICENSE
|
|
13
|
+
|
|
14
|
+
Subject to the terms and conditions of this Agreement, Tech 127 Pty Ltd
|
|
15
|
+
("Licensor") grants Licensee a limited, non-exclusive, non-transferable,
|
|
16
|
+
non-sublicensable license to install and use the Software solely for Licensee's
|
|
17
|
+
internal business purposes.
|
|
18
|
+
|
|
19
|
+
2. RESTRICTIONS
|
|
20
|
+
|
|
21
|
+
Licensee shall NOT, directly or indirectly:
|
|
22
|
+
|
|
23
|
+
(a) Redistribute, sell, resell, rent, lease, or otherwise transfer the
|
|
24
|
+
Software or any portion thereof to any third party;
|
|
25
|
+
|
|
26
|
+
(b) Sublicense the Software or grant any rights in the Software to any
|
|
27
|
+
third party;
|
|
28
|
+
|
|
29
|
+
(c) Reverse engineer, decompile, disassemble, or otherwise attempt to
|
|
30
|
+
derive or reconstruct the source code, algorithms, or structure of the
|
|
31
|
+
Software, except to the extent expressly permitted by applicable law
|
|
32
|
+
notwithstanding this restriction;
|
|
33
|
+
|
|
34
|
+
(d) Modify, adapt, translate, or create derivative works based upon the
|
|
35
|
+
Software without prior written consent from the Licensor;
|
|
36
|
+
|
|
37
|
+
(e) Remove, alter, or obscure any proprietary notices, labels, or marks
|
|
38
|
+
on or in the Software;
|
|
39
|
+
|
|
40
|
+
(f) Use the Software to provide services to third parties (including
|
|
41
|
+
software-as-a-service, hosting, or outsourcing arrangements) without
|
|
42
|
+
prior written consent from the Licensor;
|
|
43
|
+
|
|
44
|
+
(g) Use the Software for any unlawful purpose or in violation of any
|
|
45
|
+
applicable laws or regulations.
|
|
46
|
+
|
|
47
|
+
3. INTELLECTUAL PROPERTY
|
|
48
|
+
|
|
49
|
+
The Software, including all copies, modifications, and derivative works thereof,
|
|
50
|
+
is and shall remain the exclusive property of Tech 127 Pty Ltd (Tech 127). This
|
|
51
|
+
Agreement does not convey to Licensee any title or ownership interest in the
|
|
52
|
+
Software or any intellectual property rights therein. All rights not expressly
|
|
53
|
+
granted herein are reserved by Licensor.
|
|
54
|
+
|
|
55
|
+
4. CONFIDENTIALITY
|
|
56
|
+
|
|
57
|
+
The Software contains proprietary and confidential information of Licensor.
|
|
58
|
+
Licensee agrees to take reasonable precautions to protect such confidential
|
|
59
|
+
information and not to disclose it to any third party without the prior written
|
|
60
|
+
consent of Licensor.
|
|
61
|
+
|
|
62
|
+
5. DISCLAIMER OF WARRANTIES
|
|
63
|
+
|
|
64
|
+
THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
65
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
66
|
+
FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT. LICENSOR DOES
|
|
67
|
+
NOT WARRANT THAT THE SOFTWARE WILL BE ERROR-FREE, UNINTERRUPTED, OR FREE OF
|
|
68
|
+
DEFECTS. LICENSEE ASSUMES THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
|
|
69
|
+
OF THE SOFTWARE.
|
|
70
|
+
|
|
71
|
+
6. LIMITATION OF LIABILITY
|
|
72
|
+
|
|
73
|
+
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL LICENSOR
|
|
74
|
+
BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, CONSEQUENTIAL, OR
|
|
75
|
+
PUNITIVE DAMAGES (INCLUDING, WITHOUT LIMITATION, LOSS OF PROFITS, LOSS OF
|
|
76
|
+
DATA, BUSINESS INTERRUPTION, OR LOSS OF GOODWILL) ARISING OUT OF OR RELATED
|
|
77
|
+
TO THIS AGREEMENT OR THE USE OR INABILITY TO USE THE SOFTWARE, EVEN IF
|
|
78
|
+
LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
79
|
+
|
|
80
|
+
IN NO EVENT SHALL LICENSOR'S TOTAL CUMULATIVE LIABILITY ARISING OUT OF OR
|
|
81
|
+
RELATED TO THIS AGREEMENT EXCEED THE AMOUNT PAID BY LICENSEE FOR THE SOFTWARE
|
|
82
|
+
IN THE TWELVE (12) MONTHS PRECEDING THE CLAIM.
|
|
83
|
+
|
|
84
|
+
7. TERM AND TERMINATION
|
|
85
|
+
|
|
86
|
+
This Agreement is effective until terminated. Licensor may terminate this
|
|
87
|
+
Agreement immediately upon written notice if Licensee breaches any term hereof.
|
|
88
|
+
Upon termination, Licensee must immediately cease all use of the Software and
|
|
89
|
+
destroy all copies in its possession.
|
|
90
|
+
|
|
91
|
+
8. GOVERNING LAW
|
|
92
|
+
|
|
93
|
+
This Agreement shall be governed by and construed in accordance with the laws
|
|
94
|
+
of the jurisdiction in which Licensor is domiciled, without regard to its
|
|
95
|
+
conflict of law provisions.
|
|
96
|
+
|
|
97
|
+
9. ENTIRE AGREEMENT
|
|
98
|
+
|
|
99
|
+
This Agreement constitutes the entire agreement between the parties with respect
|
|
100
|
+
to the Software and supersedes all prior or contemporaneous understandings,
|
|
101
|
+
agreements, or representations.
|
|
102
|
+
|
|
103
|
+
10. CONTACT
|
|
104
|
+
|
|
105
|
+
For licensing enquiries, permissions beyond the scope of this license, or to
|
|
106
|
+
report a violation, contact:
|
|
107
|
+
|
|
108
|
+
Tech 127 Pty Ltd
|
|
109
|
+
GitHub: https://github.com/127hub
|
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: maestro-fleet
|
|
3
|
+
Version: 4.5.0
|
|
4
|
+
Summary: Maestro — Fleet Command System: AI-powered multi-agent Claude Code orchestration framework
|
|
5
|
+
License: Proprietary
|
|
6
|
+
Project-URL: Homepage, https://github.com/tavisbasing/Maestro
|
|
7
|
+
Project-URL: Repository, https://github.com/tavisbasing/Maestro
|
|
8
|
+
Requires-Python: >=3.9
|
|
9
|
+
Description-Content-Type: text/markdown
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Requires-Dist: jinja2>=3.0
|
|
12
|
+
Requires-Dist: jsonschema>=4.0
|
|
13
|
+
Provides-Extra: dev
|
|
14
|
+
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
15
|
+
Requires-Dist: pytest-cov>=5.0; extra == "dev"
|
|
16
|
+
Requires-Dist: pytest-mock>=3.14; extra == "dev"
|
|
17
|
+
Provides-Extra: azure-secrets
|
|
18
|
+
Requires-Dist: azure-keyvault-secrets>=4.7; extra == "azure-secrets"
|
|
19
|
+
Requires-Dist: azure-identity>=1.15; extra == "azure-secrets"
|
|
20
|
+
Provides-Extra: azure-anchor
|
|
21
|
+
Requires-Dist: azure-storage-blob>=12.19; extra == "azure-anchor"
|
|
22
|
+
Requires-Dist: azure-identity>=1.15; extra == "azure-anchor"
|
|
23
|
+
Provides-Extra: aws-secrets
|
|
24
|
+
Requires-Dist: boto3>=1.34; extra == "aws-secrets"
|
|
25
|
+
Provides-Extra: aws-anchor
|
|
26
|
+
Requires-Dist: boto3>=1.34; extra == "aws-anchor"
|
|
27
|
+
Dynamic: license-file
|
|
28
|
+
|
|
29
|
+
# Maestro — Multi-Agent Orchestration for Claude Code
|
|
30
|
+
|
|
31
|
+
[](https://github.com/tavisbasing/Maestro/actions/workflows/ci.yml)
|
|
32
|
+
|
|
33
|
+
> AI-powered multi-agent orchestration for Claude Code. Coordinate up to 5 parallel AI squads across complex software projects — with role-based specialisation, dependency ordering, token tracking, backup/restore, and full audit trails.
|
|
34
|
+
|
|
35
|
+
**Site:** [maestrodevs.com](https://maestrodevs.com) · **Docs:** [docs.maestrodevs.com](https://docs.maestrodevs.com) · **Install:** `pip install maestro-fleet`
|
|
36
|
+
|
|
37
|
+
> **Formerly Admiralty.** Maestro was rebranded from the Admiralty Fleet Command System. In v4.0, the `adm`/`admiralty` CLI aliases and `ADMIRALTY_*` environment variables were permanently removed. Use `mso` and `MAESTRO_*` exclusively. The workspace directory is now `.mso/` (auto-migrated from `.adm/` on first `mso dispatch`). See [docs/MIGRATION-v4.md](docs/MIGRATION-v4.md) for the upgrade guide.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## What It Does
|
|
42
|
+
|
|
43
|
+
Maestro turns Claude Code into a coordinated team. You define work as **Orders** (discrete tasks), group them into **Sprints** (voyages), and the Dispatcher launches up to 5 specialised **Squads** in parallel — each running as an independent Claude Code session in its own role.
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Human (You) → LEAD (Claude, interactive) → Dispatcher (mso dispatch) → 5 Squads
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
In the built-in **nautical persona** (the default), this reads:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Captain (You) → Quartermaster (Claude) → Fleet Admiral (mso dispatch) → 5 Crews
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
The nautical persona is purely stylistic — same mechanics, different vocabulary. See [docs/PERSONAS.md](docs/PERSONAS.md) for persona reference and switching instructions.
|
|
56
|
+
|
|
57
|
+
**Roles:**
|
|
58
|
+
|
|
59
|
+
| Code | Name | Nautical alias | Focus | Model |
|
|
60
|
+
|------|------|---------------|-------|-------|
|
|
61
|
+
| PLN | Planner | Navigator (NAV) | Planning & architecture | Sonnet 4.6 |
|
|
62
|
+
| BLD | Builder | Shipwright (SHP) | Development & implementation | Sonnet 4.6 |
|
|
63
|
+
| TST | Tester | Bosun (BOS) | QA & testing | Sonnet 4.6 |
|
|
64
|
+
| DOC | Docs writer | Scribe (SCR) | Documentation | Sonnet 4.6 |
|
|
65
|
+
| SEC | Security reviewer | Lookout (LKT) | Security & investigation | Haiku 4.5 |
|
|
66
|
+
| REL | Releaser | Coxswain (COX) | Integration & deployment | Opus 4.7 |
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Installation
|
|
71
|
+
|
|
72
|
+
1. Install Maestro from public PyPI:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
pip install maestro-fleet
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
To pin a specific version, append e.g. `==4.5.0`. The Python import name is `maestro` regardless (so `from maestro import …` keeps working). Airgapped / restricted-egress operators: see [docs/AIR-GAPPED.md](docs/AIR-GAPPED.md) for the private-index install pattern.
|
|
79
|
+
|
|
80
|
+
2. Activate your licence (issued via Polar; see <https://maestrodevs.com/pricing>):
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
mso licence activate <YOUR-KEY>
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
3. Verify the CLI is installed and the licence is active:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
mso version
|
|
90
|
+
mso licence status
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**v4.0:** Legacy CLI aliases have been removed. Use `mso` exclusively.
|
|
94
|
+
|
|
95
|
+
The wheel itself is openly distributed; the runtime licence check is the gate. Source remains private under proprietary licence; see [LICENSE](LICENSE) for the full terms. **Air-gapped / restricted-egress environments:** see [docs/AIR-GAPPED.md](docs/AIR-GAPPED.md) for the staging-machine activation pattern and the egress allowlist.
|
|
96
|
+
|
|
97
|
+
Then scaffold a workspace:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
mso init --project MYPROJECT --directory my-workspace
|
|
101
|
+
cd my-workspace
|
|
102
|
+
mso dispatch --max-crews 3
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
To enable the Slack bridge for mobile control, run the setup wizard before starting the bridge:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
mso bridge setup # interactive configuration wizard (first-time setup)
|
|
109
|
+
mso bridge start # start after setup is complete
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Quickstart
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
pip install maestro-fleet
|
|
118
|
+
mso quickstart
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
`mso quickstart` verifies your environment, scaffolds a demo workspace, dispatches a three-order demo sprint, and prints a summary — all in one command. Full guide: [docs/QUICKSTART.md](docs/QUICKSTART.md).
|
|
122
|
+
|
|
123
|
+
For deeper configuration, prerequisite validation, project analysis, and CI-friendly `--check` mode: `mso setup` — see [docs/SETUP.md](docs/SETUP.md).
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Persona Quickstart
|
|
128
|
+
|
|
129
|
+
Maestro ships with four built-in personas. Switch with:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
# Use corporate persona (professional, no nautical metaphors)
|
|
133
|
+
mso dispatch --persona corporate
|
|
134
|
+
|
|
135
|
+
# Use startup persona (casual, fast-moving)
|
|
136
|
+
mso dispatch --persona startup
|
|
137
|
+
|
|
138
|
+
# Use default (minimal, no character)
|
|
139
|
+
mso dispatch --persona default
|
|
140
|
+
|
|
141
|
+
# The nautical persona is active by default
|
|
142
|
+
mso dispatch # same as --persona nautical
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Or set it permanently in `.mso/config/workspace.json`:
|
|
146
|
+
|
|
147
|
+
```json
|
|
148
|
+
{
|
|
149
|
+
"persona": "corporate"
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Full persona reference: [docs/PERSONAS.md](docs/PERSONAS.md).
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## CLI Reference
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
# Dispatch & monitoring
|
|
161
|
+
mso dispatch [--max-crews N] [--cleanup] [--stagger-delay S] [--timeout M] [--max-turns N] [--persona NAME]
|
|
162
|
+
mso status [--once] [--compact]
|
|
163
|
+
mso cleanup
|
|
164
|
+
mso squad --crew {1-5} [--status | --watch | --cleanup] # alias: crew
|
|
165
|
+
mso verify [--voyage VOY-ID] [--skip-tests]
|
|
166
|
+
|
|
167
|
+
# Sprints (voyages), orders & review
|
|
168
|
+
mso sprint create "Title" | list | status VOY-ID | reconcile [--dry-run] # alias: voyage
|
|
169
|
+
mso bug "description" [!high]
|
|
170
|
+
mso review queue | show | approve | revise --notes T | reject --notes T <ORDER-ID>
|
|
171
|
+
|
|
172
|
+
# Roles (per-role overlays — FTR-0186)
|
|
173
|
+
mso roles list | show CODE [--core|--overlay-only|--json] | validate | diff CODE | migrate-paths
|
|
174
|
+
|
|
175
|
+
# Workspace lifecycle
|
|
176
|
+
mso init --project ACRONYM [--directory PATH]
|
|
177
|
+
mso quickstart
|
|
178
|
+
mso setup [--check]
|
|
179
|
+
mso update [--dry-run] [--force] [--directory PATH]
|
|
180
|
+
mso config models
|
|
181
|
+
mso projects list | remove
|
|
182
|
+
|
|
183
|
+
# Usage / security / identity / audit (enterprise tiers)
|
|
184
|
+
mso usage [--summary | --voyage VOY-ID | --order ID | --report]
|
|
185
|
+
mso security scan [--json --severity-threshold HIGH] | review [--against REF --staged]
|
|
186
|
+
mso identity init | add-user | add-group | user|group|acl <add|remove|list> | show
|
|
187
|
+
mso audit anchor [--auto]
|
|
188
|
+
mso secrets doctor | rotate --key KEY | scrub | list
|
|
189
|
+
mso data-flow
|
|
190
|
+
|
|
191
|
+
# Licence / MCP / bridge / hooks / backup
|
|
192
|
+
mso licence activate <KEY> | status | deactivate | revalidate # alias: license
|
|
193
|
+
mso mcp list | add | remove | validate | show
|
|
194
|
+
mso bridge setup | start | stop | restart | status | test
|
|
195
|
+
mso hooks install | uninstall
|
|
196
|
+
mso backup [--project ACRONYM] [--list]
|
|
197
|
+
mso restore BACKUP_FILE [--force] [--dry-run]
|
|
198
|
+
mso version
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
All commands use the `mso` prefix exclusively (the `adm` alias was removed in v4.0). Run `mso <command> --help` for the full flag set per command.
|
|
202
|
+
|
|
203
|
+
See [docs/CLI-REFERENCE.md](docs/CLI-REFERENCE.md) for full documentation.
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## V6 Enterprise Hardening — foundation merged (v3.0.0 release-gated)
|
|
208
|
+
|
|
209
|
+
A sprint targeting **v3.0.0** has shipped its foundation: identity + ACL, immutable audit trail with external anchoring, secrets-provider abstraction (Azure Key Vault / AWS Secrets Manager / HashiCorp Vault / 1Password / OS keyring / env), data-residency egress filter (permissive / restrictive / air-gapped / proxied), GDPR-aligned identity privacy + Article 15/17/18 rights tooling, and operator role separation (Human / Fleet Operator / Contributor / Auditor). Foundation merged in [PR #24](https://github.com/tavisbasing/Maestro/pull/24).
|
|
210
|
+
|
|
211
|
+
The post-implementation pen-test found **2 CRITICAL + 2 HIGH** open findings (audit-log truncation, print/subprocess secrets exfil, raw-socket egress bypass). The REL release gate **BLOCKS v3.0.0** until those are resolved in a v3.0.x patch sprint.
|
|
212
|
+
|
|
213
|
+
See:
|
|
214
|
+
- [docs/ENTERPRISE-SECURITY.md](docs/ENTERPRISE-SECURITY.md) — operator + buyer guide
|
|
215
|
+
- [docs/COMPLIANCE-MAPPING.md](docs/COMPLIANCE-MAPPING.md) — SOC2 + ISO27001 control mapping
|
|
216
|
+
- [docs/TRUST.md](docs/TRUST.md) — public-facing trust posture + open findings + SLAs
|
|
217
|
+
|
|
218
|
+
## What's New
|
|
219
|
+
|
|
220
|
+
For the full per-release history (including the latest release) see **[CHANGELOG.md](CHANGELOG.md)**. Highlights since v4.0:
|
|
221
|
+
|
|
222
|
+
- **v4.3.x — dispatcher reliability:** per-crew worktree isolation (parallel squads), crash-safe finalization + watchdog, convergence gating (no silent archive on a failed merge), per-tick heartbeat, and a process-tree kill for hung crews.
|
|
223
|
+
- **v4.2.0 — security posture hardening** + `mso usage --voyage` fixes.
|
|
224
|
+
- **v4.1.0 — v4 clean-break** (legacy `admiralty`/`adm` purge completed).
|
|
225
|
+
|
|
226
|
+
### v4.0.0 — Hard-cutover rebrand
|
|
227
|
+
|
|
228
|
+
- **All legacy aliases removed.** Legacy CLI entry points are gone. Use `mso` only. `MAESTRO_*` env vars exclusively. See [docs/MIGRATION-v4.md](docs/MIGRATION-v4.md).
|
|
229
|
+
- **Workspace directory:** `.adm/` auto-migrates to `.mso/` on first `mso dispatch`. Use `mso migrate-workspace --resolve` for split-brain situations.
|
|
230
|
+
- **`mso migrate-workspace` command** added for manual migration and split-brain resolution.
|
|
231
|
+
- **Default GitHub org** configurable via `workspace.json` `defaultGitHubOrg` field.
|
|
232
|
+
|
|
233
|
+
## What's New in v3.0.0
|
|
234
|
+
|
|
235
|
+
**v3.0.0 — Admiralty → Maestro rebrand + persona system**
|
|
236
|
+
|
|
237
|
+
- **Rebrand to Maestro.** CLI entry point: `mso` (legacy `adm` retained through v3.x). Package: `maestro` (legacy `admiralty` retained through v3.x). Environment variables: `MAESTRO_*` (legacy `ADMIRALTY_*` dual-read through v3.x). All shims removed in v4.0.
|
|
238
|
+
- **Persona system.** Four built-in personas: nautical (default, the heritage theme), corporate, startup, default (minimal). Switch with `--persona` flag, `MAESTRO_PERSONA` env var, or `workspace.json`. Custom personas supported via YAML. See [docs/PERSONAS.md](docs/PERSONAS.md).
|
|
239
|
+
- **Role renames.** Canonical codes: PLN/BLD/TST/DOC/SEC/REL/LEAD. Legacy codes NAV/SHP/BOS/SCR/LKT/COX/QM remain as aliases and continue to work in all order JSON, role-paths config, and CLI flags.
|
|
240
|
+
- **Dual-read workspace.** `.mso/` preferred, `.adm/` fallback. Both are equivalent; existing `.adm/` workspaces work without migration.
|
|
241
|
+
- **CLAUDE.md persona injection.** The Quartermaster (nautical) / LEAD (default) framing in CLAUDE.md is now persona-driven via templates.
|
|
242
|
+
|
|
243
|
+
## What's New in v2.5.0
|
|
244
|
+
|
|
245
|
+
**v2.5.0 — Licence backend (Polar.sh) + public wheel distribution + branch discipline**
|
|
246
|
+
|
|
247
|
+
- **`mso licence` CLI** — `activate <KEY>` / `status` / `deactivate` / `revalidate`. Replaces the GitHub-collaborator auth gate. HMAC-signed local store at `~/.maestro/licence.json` (mode 0600); per-customer signing secret in OS keychain. 14-day offline grace from each successful online validation.
|
|
248
|
+
- **Polar.sh as the single licence integration.** Selected over Lemon Squeezy / Paddle / Keygen-self-host on take rate, OSS alignment, and AU-tax MoR coverage.
|
|
249
|
+
- **Public wheel distribution** at [`maestrodevs/maestrodevs.github.io`](https://github.com/maestrodevs/maestrodevs.github.io). The source repo stays private; the dist repo ships built wheels via a GitHub Pages PEP 503 simple/ index.
|
|
250
|
+
- **Branch discipline enforcement (BUG-0004).** `voyageBranch` is now load-bearing across three layers — dispatcher's `_verify_dispatcher_branch`, pretool `branch_guard.py`, and a "Branch discipline (mandatory)" section in every role prompt template.
|
|
251
|
+
- **Domain:** [maestrodevs.com](https://maestrodevs.com) (live).
|
|
252
|
+
|
|
253
|
+
## What's New in v2.2.0
|
|
254
|
+
|
|
255
|
+
**v2.2.0 — Releaser role expansion**
|
|
256
|
+
- **REL (Coxswain) is the terminal role** for every sprint — opens the PR, monitors `gh pr checks --watch`, fetches Copilot review comments, applies/regresses/declines each, resolves review threads via GraphQL, writes the `REL-to-LEAD.md` handoff, and notifies the Human via the bridge
|
|
257
|
+
- **Default REL model bumped to Opus 4.7** (`claude-opus-4-7`)
|
|
258
|
+
- **One sprint = one branch = one PR** — bundling forbidden by the branching policy
|
|
259
|
+
|
|
260
|
+
## What's New in v2.1.0
|
|
261
|
+
|
|
262
|
+
**v2.1.0 — Quality gates + workspace updates**
|
|
263
|
+
- **Quality gates** — structured `acceptanceCriteria` in orders; TST validates, REL enforces. Three validation types: `manual`, `command`, `file-exists`. Two severity levels: `blocking` and `advisory`
|
|
264
|
+
- **`mso update`** — new command to propagate schema and template changes from the installed pip package into an existing `.mso/` workspace without overwriting user data
|
|
265
|
+
|
|
266
|
+
## What's New in v2.0.0
|
|
267
|
+
|
|
268
|
+
**v2.0.0 — Architecture separation + `adm` CLI**
|
|
269
|
+
- **`adm` command** — CLI renamed from the v1.x binary to `adm` for brevity (now `mso` in v3.0.0+)
|
|
270
|
+
- **`.mso/` folder** — project artefacts live in `.mso/` (or `.maestro/` in v3.0.0+) in user projects
|
|
271
|
+
- **CLAUDE.md layering** — three-layer context system: project CLAUDE.md → `.mso/claude.md` → pip docs
|
|
272
|
+
- **`mso init`** scaffolds `.mso/` with pre-filled CLAUDE.md layers from templates
|
|
273
|
+
|
|
274
|
+
See [maestro/docs/VERSIONING.md](maestro/docs/VERSIONING.md) for full version history and scheme.
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Repo Structure
|
|
279
|
+
|
|
280
|
+
| Repository | Visibility | Purpose |
|
|
281
|
+
|---|---|---|
|
|
282
|
+
| [`tavisbasing/Maestro`](https://github.com/tavisbasing/Maestro) | private | Source — framework code + MSO project state. Single `main` branch; sprint / bug branches PR back to it. |
|
|
283
|
+
| [`maestrodevs/maestrodevs.github.io`](https://github.com/maestrodevs/maestrodevs.github.io) | public | Distribution — built wheels + PEP 503 simple/ index served via GitHub Pages. Auto-populated by the publish workflow on every `v*.*.*` tag-push. |
|
|
284
|
+
|
|
285
|
+
The wheel is openly downloadable; runtime use requires a valid licence key (see [docs/LICENCE.md](docs/LICENCE.md)).
|
|
286
|
+
|
|
287
|
+
In user projects, Maestro artefacts live under `.mso/` (scaffolded by `mso init`):
|
|
288
|
+
|
|
289
|
+
```
|
|
290
|
+
my-project/
|
|
291
|
+
├── .mso/ # Maestro artefacts
|
|
292
|
+
│ ├── claude.md # Layer 2: Maestro orchestration context
|
|
293
|
+
│ ├── config/ # workspace.json, role-paths.json
|
|
294
|
+
│ ├── orders/ # active/, complete/, failed/
|
|
295
|
+
│ ├── voyages/ # active/, complete/
|
|
296
|
+
│ └── queues/ # orders/, bugs/, security/, ...
|
|
297
|
+
└── CLAUDE.md # Layer 1: project architecture, stack, conventions
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## Glossary
|
|
303
|
+
|
|
304
|
+
Maestro uses role-neutral terminology by default. The built-in nautical persona adds a layer of seafaring vocabulary. Here is the full mapping:
|
|
305
|
+
|
|
306
|
+
| Canonical term | Nautical persona | Plain description |
|
|
307
|
+
|----------------|-----------------|-------------------|
|
|
308
|
+
| **Human** | Captain | The person directing the squads |
|
|
309
|
+
| **LEAD** | Quartermaster | Your AI partner in the main session — plans, delegates, advises |
|
|
310
|
+
| **Dispatcher** | Fleet Admiral | The automation layer that launches and manages squads |
|
|
311
|
+
| **Squad** | Crew | An independent Claude Code session executing a single order |
|
|
312
|
+
| **PLN** | Navigator (NAV) | Plans, writes architecture notes, breaks requirements into orders |
|
|
313
|
+
| **BLD** | Shipwright (SHP) | Implements features and fixes bugs |
|
|
314
|
+
| **TST** | Bosun (BOS) | Tests, reviews, and validates work |
|
|
315
|
+
| **DOC** | Scribe (SCR) | Creates and updates documentation |
|
|
316
|
+
| **SEC** | Lookout (LKT) | Audits code for vulnerabilities and risks |
|
|
317
|
+
| **REL** | Coxswain (COX) | Handles deployment, CI/CD, and release |
|
|
318
|
+
| **Order** | Order | A single unit of work assigned to one squad |
|
|
319
|
+
| **Sprint** | Voyage | A group of related orders, tracked together |
|
|
320
|
+
| **Requirement** | Requirement | High-level description of what needs to happen |
|
|
321
|
+
| **Dispatch** | Dispatch | Starting the fleet to process queued orders |
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
## Documentation
|
|
326
|
+
|
|
327
|
+
| Document | Audience |
|
|
328
|
+
|----------|----------|
|
|
329
|
+
| [docs/QUICKSTART.md](docs/QUICKSTART.md) | New users — 5-minute guide to first dispatch |
|
|
330
|
+
| [docs/GETTING-STARTED.md](docs/GETTING-STARTED.md) | New users — full installation and setup walkthrough |
|
|
331
|
+
| [docs/PERSONAS.md](docs/PERSONAS.md) | All users — persona system reference |
|
|
332
|
+
| [docs/CHAIN-OF-COMMAND.md](docs/CHAIN-OF-COMMAND.md) | Technical — 3-layer chain spec with persona-aware sub-sections |
|
|
333
|
+
| [docs/LICENCE.md](docs/LICENCE.md) | All users — `mso licence` activate / status / deactivate / revalidate |
|
|
334
|
+
| [docs/AIR-GAPPED.md](docs/AIR-GAPPED.md) | Restricted-egress / offline operators |
|
|
335
|
+
| [docs/CLI-REFERENCE.md](docs/CLI-REFERENCE.md) | All users — complete command reference |
|
|
336
|
+
| [docs/OPERATOR-GUIDE.md](docs/OPERATOR-GUIDE.md) | All users — daily operations, scaling, cost management |
|
|
337
|
+
| [docs/ROLES-GUIDE.md](docs/ROLES-GUIDE.md) | All users — understanding squad roles |
|
|
338
|
+
| [docs/ORDERS-AND-VOYAGES.md](docs/ORDERS-AND-VOYAGES.md) | All users — creating and managing work |
|
|
339
|
+
| [docs/BRANCH-DISCIPLINE.md](docs/BRANCH-DISCIPLINE.md) | Operators — voyageBranch enforcement |
|
|
340
|
+
| [docs/TRUST.md](docs/TRUST.md) | Security buyers — trust posture, threat model, open findings, SLAs |
|
|
341
|
+
| [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | Security / infra — diagram, data flow, egress inventory |
|
|
342
|
+
| [docs/OWNER-GUIDE.md](docs/OWNER-GUIDE.md) | Framework owners — development and releases |
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## Security
|
|
347
|
+
|
|
348
|
+
For security questions, vulnerability reporting, and compliance documentation:
|
|
349
|
+
|
|
350
|
+
- [SECURITY.md](SECURITY.md) — vulnerability reporting policy + links to all security docs
|
|
351
|
+
- [docs/PUBLIC-SECURITY-OVERVIEW.md](docs/PUBLIC-SECURITY-OVERVIEW.md) — 1-page CISO-facing summary with data-flow diagram
|
|
352
|
+
- [docs/ENTERPRISE-SECURITY.md](docs/ENTERPRISE-SECURITY.md) — operator technical detail (ACL, audit, secrets, egress)
|
|
353
|
+
- [docs/COMPLIANCE-MAPPING.md](docs/COMPLIANCE-MAPPING.md) — SOC2 + ISO27001 control mapping
|
|
354
|
+
|
|
355
|
+
**Report vulnerabilities** to **maestro@tech127.com** — do not open public GitHub issues.
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
## Requirements
|
|
360
|
+
|
|
361
|
+
- Python 3.9+
|
|
362
|
+
- [Claude Code](https://claude.ai/code) CLI installed and authenticated
|
|
363
|
+
- Anthropic API key with access to Sonnet 4.6, Haiku 4.5, and Opus 4.7
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## License
|
|
368
|
+
|
|
369
|
+
Proprietary — All Rights Reserved.
|
|
370
|
+
|
|
371
|
+
The Maestro framework is commercial software, owned and operated by **Tech 127 Pty Ltd** (Australia). Use is governed by the terms of the [LICENSE](LICENSE) file included in this repository. In summary:
|
|
372
|
+
|
|
373
|
+
- You may use the software for internal business purposes under the terms of a valid licence (issued at activation via Polar — see [maestrodevs.com/pricing](https://maestrodevs.com/pricing)).
|
|
374
|
+
- Redistribution, resale, sublicensing, and reverse engineering are strictly prohibited.
|
|
375
|
+
- All intellectual property rights remain with Tech 127 Pty Ltd.
|
|
376
|
+
|
|
377
|
+
The wheel published at [maestrodevs.github.io](https://github.com/maestrodevs/maestrodevs.github.io) is openly downloadable; the **runtime licence check** is the gate. Runtime use without a valid key is unauthorised and a breach of the licence.
|
|
378
|
+
|
|
379
|
+
For licensing enquiries, billing, or sales:
|
|
380
|
+
- Email: [maestro@tech127.com](mailto:maestro@tech127.com)
|
|
381
|
+
- Website: [maestrodevs.com](https://maestrodevs.com)
|
|
382
|
+
- Docs: [docs.maestrodevs.com](https://docs.maestrodevs.com)
|