Nice speech. What now? Photo: Jim Lo Scalzo/AFP/Getty Images

President Donald Trump gave a pretty good speech to a joint session of Congress tonight. He followed the script, and threw in some unexpected rhetorical flourishes, like a shout-out to civil rights and outrage about anti-Semitic incidents at the very beginning. But if one of its main functions was to give confused congressional Republicans some clear direction on the big agenda items that are about to be fulfilled or squandered, it was a total washout.

Republicans are practically at each other’s throats over how to repeal and replace Obamacare — the party’s top policy priority. Trump has in the past complicated this effort by endorsing a quick replacement plan — on which Republicans are far from agreement — and by insisting the new plan cover as many people as the system being demolished. He did almost nothing tonight address the quandaries his fellow Republicans face on health-care policy, other than a brief statement of support for the idea of tax credits to help pay for insurance, presumably a rebuke to conservatives who openly worried such credits would represent a new entitlement. What did Trump want Congress to do about Medicaid, which Obamacare optionally expanded, splitting Republican governors over that key safety net program’s function and future? “[W]e should give our great State Governors the resources and flexibility they need with Medicaid to make sure no one is left out.” That’s about as vague as you can get. And there was nothing at all about how to pay for whatever comes next after Obamacare.

Speaking of taxes: Tax cuts are right behind Obamacare on the congressional GOPs urgent action list. There are big differences of opinion among Republicans about the size and structure of tax cuts, and in particular how to deal with the new administration’s demands that the tax code discriminate against companies that import goods and export jobs. In tonight’s speech, Trump devoted more time to the feelings of Harley-Davidson’s executives about other countries’ tax codes than to any exposition on what the U.S. tax code should look like. And indeed, his only real mention of taxes was as an intro to an equally vague disquisition on the need for fair as well as free trade — a theme that has provided leaden ballast to thousands of political speeches for many decades.

The third big topic on which Republicans needed his guidance was the budget, and if they expected any specificity on that crucial priority, they were bitterly disappointed. Trump repeated his commitment to a big defense-spending increase, and did display an understanding that providing that would mean getting rid of the spending cap agreement under which defense spending would be “sequestered” if budget targets were missed. As to how those caps would be cast aside — something that in the normal course of events would require 60 Senate votes and a lot of Democratic support — we heard nada. And there was also nothing about the rest of the budget, including the fraught subject of which entitlement programs would be on and off the table.

The huge gaps of information in Trump’s speech are not just a matter of a refusal to give guidance to congressional Republicans who are all over the map on Obamacare and taxes and the budget, and cannot spare more than a few dissenting votes. He also failed to give Americans the details that separate bogus and magical promises from an actual, realizable agenda. Yes, it would be nice if Congress could fix health care and reform the tax code and set budget priorities without making tough choices. But that is simply not possible. And for all the rave reviews Trump received for delivering an upbeat message tonight, it was mainly upbeat because it dodged all the real questions.