I did mostly like J_campion. First with only one stone (more than 10000 instructions), than I tried choosing the rune that miimized the next step. I got to 6001 instructions.
And then I added loops. Mainly, I looked at the next occurence of the current letter, and tried to see if it was a recurring pattern. And then I tried to find how many times it was occurring. It was a naive algorithme, since I could find the good pattern in FUMFUMFUM, but for example for BAOBABBAOBABBAOBAB, it would test BAO, AOB and finaly OBABBA, which would have worked.
I also tested that the states of the runes and the initial position were the same before and after the second occurence.
The instructions I got where the one for the first occurence, then setting the counter rune, then looping the instructions for the second occurence. Of course, I checked if it was shorter than doing the same thing without a loop.
I got around 4250 instructions this way.
After that, I optimized a bit, by only setting the runes for the state before the loop, than doing one more turn of the loop, to do all the occurrences inside the loop.
I got around 4020 instructions
And just 10min before the end, I added a small optimization because noticed that any ascending chain, like RSTUVWXYZ could be produced by [.+], and the same thing for descending chains containing A.
That’s how I got under 4000 instructions.