diff --git a/src/mais_humana/cli.py b/src/mais_humana/cli.py index 855f5fb..a0f13b0 100644 --- a/src/mais_humana/cli.py +++ b/src/mais_humana/cli.py @@ -92,6 +92,7 @@ def build_parser() -> argparse.ArgumentParser: mcp_artifacts.add_argument("--ecosystem-root", default="G:/_codex-git") mcp_artifacts.add_argument("--project-root", default="G:/_codex-git/tudo-para-ia-mais-humana") mcp_artifacts.add_argument("--central-platform-folder", default="") + mcp_artifacts.add_argument("--no-scan", action="store_true", help="Use the generated MCP catalog directly, without rescanning repositories.") repo_mesh = sub.add_parser("repo-mesh", help="Inventory repository mirrors and write safe synchronization artifacts.") repo_mesh.add_argument("--ecosystem-root", default="G:/_codex-git") repo_mesh.add_argument("--project-root", default="G:/_codex-git/tudo-para-ia-mais-humana") @@ -287,10 +288,12 @@ def _write_text(path: Path, text: str) -> str: def command_mcp_contract_artifacts(args: argparse.Namespace) -> int: project_root = Path(args.project_root) central = Path(args.central_platform_folder) if args.central_platform_folder else None - scans = scan_ecosystem(Path(args.ecosystem_root)) - cells = build_matrix(scans) - reports = build_platform_reports(scans, cells) - rulebook = evaluate_rulebook(reports) + rulebook = None + if not args.no_scan: + scans = scan_ecosystem(Path(args.ecosystem_root)) + cells = build_matrix(scans) + reports = build_platform_reports(scans, cells) + rulebook = evaluate_rulebook(reports) contracts = build_mcp_contract_report(rulebook) ledger = build_mcp_transit_ledger(contracts) admin_routes = administration_route_readiness_payload() @@ -325,6 +328,7 @@ def command_mcp_contract_artifacts(args: argparse.Namespace) -> int: "coverageCount": len(contracts.coverage), "transitRecords": ledger.records_count, "administrationRoutes": admin_routes["contractsCount"], + "scanMode": "generated_catalog_only" if args.no_scan else "ecosystem_scan", "centralError": central_error, "generatedFiles": written, } diff --git a/tests/test_mcp_provider_contract.py b/tests/test_mcp_provider_contract.py index f8bbc17..1e8ec36 100644 --- a/tests/test_mcp_provider_contract.py +++ b/tests/test_mcp_provider_contract.py @@ -163,7 +163,7 @@ class McpProviderContractTests(unittest.TestCase): "business", "business checkout billing entitlements sameSource panelReady responseReady traceId auditId", ) - code = main(["mcp-contract-artifacts", "--ecosystem-root", str(root), "--project-root", str(project)]) + code = main(["mcp-contract-artifacts", "--ecosystem-root", str(root), "--project-root", str(project), "--no-scan"]) self.assertEqual(code, 0) provider = json.loads((project / "dados" / "mcp-provider-mais-humana-compacto.json").read_text(encoding="utf-8")) admin_routes = json.loads((project / "dados" / "mcp-administration-routes-readiness.json").read_text(encoding="utf-8"))