Pinson, Justice. Bryan Jones was convicted of felony murder and other offenses in connection with a shooting that killed Dorian Drewery and injured Joshua Childs.[1] Jones now appeals, contending that (1) the trial court erred in giving a jury instruction on other-acts evidence under OCGA § 24-4-404 (b) when no such evidence was admitted at trial; and (2) trial counsel rendered constitutionally ineffective assistance in (a) agreeing to a stipulation that prejudiced Jones’s defense and (b) failing to request a jury instruction on voluntary manslaughter. But the trial court’s error in giving the other-acts jury instruction was harmless: among other things, the court omitted that oral instruction from the written instructions sent back with the jury; it properly instructed that other acts could be considered only if it was more likely than not that Jones had committed them, and because there was no evidence of such other acts, the jury could not have made that finding; and in any event, the instruction had little relevance to the central question of whether Jones’s use of deadly force was justified under the circumstances. As for the ineffective-assistance claims, the record shows that trial counsel’s decision to agree to the stipulation was the product of a reasonable strategic effort to prevent the State from offering potentially “devastating” rebuttal evidence. Similarly, counsel’s decision not to request a jury instruction on voluntary manslaughter was reasonable given Jones’s desire to present an “all or nothing” justification defense and the fact that the evidence supporting voluntary manslaughter was thin. So Jones has failed to establish trial error or ineffective assistance, and we therefore affirm his convictions and sentences. 1. Drewery was shot and killed on the evening of March 17, 2018, at a gas station in Lithonia. It is undisputed that Jones was the shooter, and the central question in the case was whether the shooting was a justifiable act of self-defense. The evidence at trial showed that Jones and Drewery were both bikers who frequented that particular gas station, which was a popular hangout for bikers and the site of two past altercations between the two men. The first happened around two weeks before the shooting: the men argued and shouted obscenities at each other, and as Jones prepared to drive away, Drewery smacked Jones. A witness to that incident testified that he heard Jones say to Drewery, “[I]f I do something to you, I’m going to make sure that you’re never seen again.” The second incident happened on the afternoon of the shooting, when the men again got into an argument. A witness to that incident testified that he saw Jones and Drewery arguing with each other and then, as Jones walked away from Drewery, Jones said, “let me go cover myself. I’m going to go shoot this n****.” Afterwards, Jones and Drewery approached the gas station security officer—off-duty DeKalb County police officer Marcus Brooks—about their altercation. Drewery told Officer Brooks that Jones had threatened to kill him, while Jones reported that he and Drewery had been having “an ongoing problem” related to “motorcycle rage” and that Drewery had recently slapped and threatened him. Officer Brooks wrote up a police report for both men for terroristic threats and told them to leave. Jones asked Officer Brooks to escort him to his bike because he was scared, but Officer Brooks declined. The shooting happened around 8:30 p.m. that night. A group of bikers had gathered at the gas station, and Jones and Drewery both showed up. At some point, the men began arguing, and the argument ended with Jones shooting Drewery. Drewery was shot four times: once in the back of his head, twice in his back, and once in his buttocks. Childs, a bystander, was shot once in the leg. Eyewitnesses gave mostly similar accounts of the shooting, but they varied in certain respects. Witness Maurice Bonner testified that on the night of the shooting, he was at the gas station talking to Drewery when he saw Jones. Drewery said, “[T]here’s that b***h mother f**ker right there, he’s always running his mouth.” Witness Titus Rumph, who was standing with Bonner at the time, testified that Jones made an obscene gesture to Drewery. Both Bonner and Rumph testified that Drewery turned to Jones, and they began “trash talking.” Bonner testified that Drewery called Jones “a punk” and “a b***h,” taunting that Jones was scared. Jones responded, “[D]o I look like I’m scared?” while raising his arms, revealing a gun in his waist belt. Jones, who had been headed toward the gas station’s convenience store, turned and started walking back toward his bike. Drewery continued the taunts, saying “[Y]ou’re scared, that’s why you’re way over there. And if you ain’t scared, we can do something now.” Drewery started walking quickly toward Jones, still calling him names. Bonner did not see a gun on Drewery, but he “figured [Drewery] was going to try to hurt [Jones].” Jones turned toward Drewery, and then Bonner heard the gunshots. He estimated the men were 10 to 15 feet apart at the time. Bonner also testified, on cross-examination, about a confrontation he saw at the same gas station in May 2017 between Drewery and a man named Joshua Booth, which began with “trash talking” and escalated into pushing. Booth pulled out a knife, and Drewery either pulled out or was handed a gun. Ultimately the situation was diffused. Bonner also testified that Drewery was “known to get violent.” Witness Cornell Keith testified that he too was at the gas station and heard someone say, “I have these hands for you,” which got his attention. Keith turned to see Jones backing up, as if retreating, and Drewery walking toward him “in a boxing stance.” Keith saw Jones stop and pull out his gun; Jones did not rack the gun, fire warning shots, or tell Drewery to back up before firing. Witness James Grimsley testified that he saw Drewery walking toward Jones at a normal pace, with his hands open, and then saw Jones pull the gun out when the men were about five feet from one another. Drewery turned around to run, and then Jones began firing the gun. Afterward, Jones walked calmly to his bike. Childs testified that he saw Jones arrive and make eye contact with Drewery. At some point, Childs saw the men “coming towards each other” and then heard gunshots. He was knocked to the ground by others who were diving down to avoid the shots, and then realized he had been shot in the leg. Officer Brooks testified that he was inside the gas station when the shooting happened. He ran outside and approached Jones, who said, “[H]e charged at me.” Officer Brooks arrested Jones and took his gun; Jones was calm and compliant. Video footage from Officer Brooks’s body camera showed that, as Jones was being detained and handcuffed, Jones said Drewery had threatened him and “assaulted” him in the past. Officer Brooks testified that no weapons were found on Drewery’s body. The GBI firearms examiner testified that all the cartridge casings, bullets, and metal jacket fragments collected at the scene had been shot from Jones’s gun. The medical examiner testified that no soot or stippling appeared on Drewery’s clothes, meaning that the gun had been fired from an “intermediate or distant range.” After the State rested, Jones’s counsel read to the jury a stipulation, prepared by the defense and agreed to by the prosecution, about the May 2017 incident between Drewery and Booth. The stipulation stated: One: Zachary Wallace is a person who was involved in the motorcycle scene and knew both Bryan Jones and Dorian Drewery prior to March 17th, 2018. Two: Zachary Wallace did not witness the incident at issue where Dorian Drewery was shot on March 17th, 2018. Three: Zachary Wallace did witness an incident on May 29th, 2017 involving Joshua Booth and Dorian Drewery via Facebook live. Zachary Wallace saw the two parties arguing back and forth. He witnessed Joshua Booth with a knife. He witnessed Dorian Drewery with a gun. Dorian Drewery was making verbal threats to Joshua Booth. Four: On a telephone conversation, Zachary Wallace told Bryan Jones what Zachary Wallace witnessed via Facebook Live. Joshua Booth with a knife and Dorian Drewery with a gun. Dorian Drewery was making verbal threats to Joshua Booth. Five: During the same telephone conversation between Bryan Jones and Zachary Wallace, Bryan Jones told Zachary Wallace a) I’m not fixing to let nobody just be punking me and slapping me; b) if he approaches me, threatens me, if he comes to me again like he is going to try and fight me, slap me, or whatever, then I’m going to shoot. I am going to protect myself. The defense presented no other evidence. 2. Jones contends that the trial court erred by instructing the jury on evidence of “other acts” admitted under OCGA § 24-4-404 (b) (“Rule 404 (b)”)[2]. Before trial, the State served notice of its intent to offer Rule 404 (b) evidence in the form of pending criminal charges against Jones arising out of an alleged “road rage” incident. The trial court later ruled that the State could offer this evidence solely for the purpose of showing intent, knowledge, and absence of mistake. At trial, the State did not present the Rule 404 (b) evidence during its case-in-chief but considered presenting it during rebuttal, and during the charge conference, the Rule 404 (b) language was tentatively agreed to. Ultimately, the State did not present any rebuttal evidence, but the 404 (b) language was not removed from the jury charge. Thus, the trial court’s instructions to the jury included that instruction, which began by saying, “[T]he State has offered evidence of other crimes allegedly committed by the accused . . .”[3] Although Jones’s counsel objected after the court gave the instructions and asked for a curative instruction—and the State agreed—the trial court declined to give one, instead opting to delete the erroneous instruction from the written instructions sent back with the jury. There is no question that the Rule 404 (b) portion of this instruction should not have been given, because the State did not present any evidence of alleged other crimes committed by Jones. See Rammage v. State, 307 Ga. 763, 767 (4) (838 SE2d 249) (2020) (“‘There must be at least slight evidence produced at trial to authorize a jury instruction.’”) (citation omitted). The question is whether this undisputed error was harmless or not. “Even when we find error in a jury charge, we will not reverse when the error is harmless, that is, when it is highly probable that the instruction did not contribute to the verdict.” Jones v. State, 302 Ga. 892, 897 (3) (810 SE2d 140) (2018) (citation and punctuation omitted). Accord Middleton v. State, 310 Ga. 365, 370 (3) (850 SE2d 126) (2020). To figure out whether an instructional error was harmless, we assess it in the context of the instructions as a whole. See Jones, 302 Ga. at 897 (3) (assessing effect of arguably misleading instruction by reference to jury instructions in their totality). See also Johnson v. State, 312 Ga. 481, 490 (3) (863 SE2d 137) (2021) (noting that, in determining the impact of a challenged instruction, “we do not evaluate jury charges in isolation, but rather consider them as a whole”) (citation and punctuation omitted). And as with other trial errors, in assessing harm “we review the record de novo, and we weigh the evidence as we would expect reasonable jurors to have done so.” Middleton, 310 Ga. at 370 (3). Under these standards, the instructional error here was harmless. First, the oral instructions told the jury it could consider evidence of other alleged crimes only if it found it more likely than not that Jones committed such other crimes. Given that the State actually presented no evidence of other crimes, the jury could not have made the finding necessary to permit its consideration of any other alleged crimes. Nor is there any indication from the record that the jury was confused, either by the difference between the oral and written instructions or by the language of the other-acts instruction itself. Further, the other-acts instruction had little to do with the case’s central question, which was whether the shooting was a justifiable act of self-defense. The jury was correctly instructed that it could find that Jones was justified in using deadly force only if he “reasonably believe [d] that such force [was] necessary to prevent death or great bodily injury to himself or a third person, or to prevent the commission of a forcible felony.” See OCGA § 16-3-21 (a). It is not at all clear how a suggestion from the mistaken oral instruction that Jones had committed some undefined past crimes would have had any bearing on whether, at the time of the shooting, Jones reasonably believed that it was necessary to shoot Drewery in order to protect himself from grave or mortal harm. See Lewis v. State, 291 Ga. 273, 278-279 (4) (731 SE2d 51) (2012) (giving of improper jury charge on reliability of eyewitness testimony was harmless given that eyewitness identification “did not play a significant role in the State’s case”). Finally, the evidence against Jones was quite strong: it was undisputed that he shot the unarmed Drewery, without warning, from a distance of several feet, in the back. So any confusion over the oral instruction’s possible implication that Jones had committed some unknown past crimes was unlikely to have affected the jury’s determination on Jones’s guilt of the crimes against Drewery. See Jones, 302 Ga. at 897-898 (3) (any error in particular instruction was harmless within context of jury charge as a whole and in light of “very strong” evidence of defendant’s guilt). For all of these reasons, we conclude that it is highly probable that the instructional error here did not contribute to the verdicts. 3. Jones next contends that his trial counsel rendered constitutionally ineffective assistance in two respects. To succeed on a claim of ineffective assistance, a defendant must establish both that his counsel’s performance was deficient and that he was prejudiced as a result of that deficient performance. See Washington v. State, 313 Ga. 771, 773 (3) (873 SE2d 132) (2022) (citing Strickland v. Washington, 466 U.S. 668, 687 (104 SCt 2052, 80 LE2d 674) (1984)). To prove deficient performance, a defendant must establish that counsel “performed his duties in an objectively unreasonable way, considering all the circumstances and in the light of prevailing professional norms.” Washington, 313 Ga. at 773 (3) (citation and punctuation omitted). To overcome the “strong presumption” that counsel performed reasonably, the defendant must show that “no reasonable lawyer would have done what his lawyer did, or would have failed to do what his lawyer did not.” Id. (citation and punctuation omitted). To prove prejudice, a defendant must establish that there is a “reasonable probability that, but for counsel’s deficiency, the result of the trial would have been different.” Id. A reasonable probability is a probability “sufficient to undermine confidence in the outcome” of the trial. Neal v. State, 313 Ga. 746, 751 (3) (873 SE2d 209) (2022) (citation and punctuation omitted). An ineffective-assistance claim fails if the defendant fails to establish either deficient performance or prejudice. See Washington, 313 Ga. at 773 (3). In reviewing a trial court’s ruling on an ineffective-assistance claim, we accept the trial court’s factual findings and credibility determinations unless they are clearly erroneous, but we independently apply the relevant legal principles to the facts. See Sullivan v. State, 301 Ga. 37, 40 (2) (799 SE2d 163) (2017). (a) Jones first contends that his counsel rendered ineffective assistance by agreeing to the stipulation about Zachary Wallace’s account of Drewery’s encounter with Joshua Booth. Jones contends that by stipulating that Jones told Wallace he “was going to shoot” if Drewery approached, threatened, or tried to fight him, trial counsel needlessly put forth evidence that undercut his defense by suggesting he was primed to shoot Drewery, whether justified or not. At the motion for new trial hearing, Jones’s trial counsel testified that entering into the stipulation was a strategic decision intended to avoid putting up any witnesses. That prevented the State from offering rebuttal evidence of the road rage incident, which counsel believed would have been “devastating” to the defense.[4] Counsel testified that he and his co-counsel drafted the stipulation to include what they believed their witnesses would otherwise testify to. As to the part of the stipulation about Jones’s “I’m going to shoot” statement, counsel testified that he believed “that was the language we expected to come out, whether we called a live witness or . . . did it through a stipulation.” He also testified that at the time he believed the impact of that evidence would have been mitigated to some degree by the fact that Jones’s statement was made almost a year before the shooting. In denying Jones’s motion for new trial, the trial court credited counsel’s testimony and concluded that the decision to enter into the stipulation was reasonable trial strategy. We see no clear error in the trial court’s crediting of counsel’s testimony, and we conclude, as the trial court did, that agreeing to the stipulation was an objectively reasonable strategic decision by counsel. Counsel determined that it was important to highlight for the jury both that Drewery had brandished a gun in a past dispute related to “the motorcycle scene” and that Jones was aware of that incident.[5] Counsel determined that it would help Jones to do this through a stipulation rather than live testimony, because it would prevent the State from offering its “devastating” rebuttal evidence, and he surmised that to get the State to agree, the stipulation would have to include Wallace’s expected testimony in its entirety. We cannot say that no reasonable attorney would have made these determinations, and thus the decision to agree to the stipulation did not amount to deficient performance. See, e.g., Broxton v. State, 306 Ga. 127, 135 (2) (829 SE2d 333) (2019) (trial counsel’s agreement to stipulation that defendant was a gang member, intended to bolster defendant’s credibility and prevent jury from focusing on issues not relevant to defense theory, was reasonable trial strategy); Norman v. State, 303 Ga. 635, 639 (2) (814 SE2d 401) (2018) (trial counsel’s agreement to stipulation, intended to prevent State from presenting same evidence through multiple witnesses, was “eminently reasonable” and did not offer a basis for an ineffective assistance claim). So this claim of ineffective assistance fails. (b) Jones also contends that trial counsel rendered ineffective assistance in failing to ask for a jury instruction on voluntary manslaughter. Trial counsel testified at the motion-for-new-trial hearing that, although he had considered requesting a voluntary manslaughter instruction, Jones “always made it very clear” that he had acted in self-defense and without any criminal intent. So counsel deferred to Jones’s preference to pursue an “all or nothing” approach. The trial court credited counsel’s testimony and concluded that this decision amounted to reasonable trial strategy. We agree. Some evidence supported Jones’s self-defense claim, including testimony that Drewery advanced on Jones after the “trash-talking” began, as well as evidence of the parties’ past altercations and Jones’s expression of fear earlier that day after his run-in with Drewery. By contrast, it is questionable whether the evidence supported an instruction on voluntary manslaughter, because “words alone, regardless of whether they are highly insulting, will not justify the excitement of such passion so as to reduce the crime of murder to the lesser offense of voluntary manslaughter.” Barron v. State, 297 Ga. 706, 708 (2) (777 SE2d 435) (2015). And even assuming there was the “slight” evidence necessary to support a voluntary-manslaughter instruction, see Hatney v. State, 308 Ga. 438, 441 (2) (841 SE2d 702) (2020), it was not objectively unreasonable for counsel to conclude that presenting that theory would undermine Jones’s self-defense claim. See Velasco v. State, 306 Ga. 888, 893-894 (3) (b) (834 SE2d 21) (2019) (holding that “[t]rial counsel did not act unreasonably in deciding to pursue only a defense that was consistent with Appellant’s claim of self- defense,” noting not only “the lack of evidence supporting a voluntary manslaughter charge” but also “the general inconsistency between self-defense and voluntary manslaughter claims”). Counsel’s choice was reasonable, see id., and so this claim of ineffective assistance fails, too. Judgment affirmed. All the Justices concur.