Backhanded Compliments This challenge is created in celebration of my first esoteric language, Backhand!

Backhand is a one dimensional language with a non-linear pointer flow. The pointer moves three steps at a time, only executing every third instruction.

The program 1..1..+..O..@ will add 1+1 and output 2 before terminating. The intermediate instructions are skipped, so 1&lt;&gt;1()+{}O[]@ is exactly the same program.

When the pointer is about to step off the end of the tape, it instead reverses direction and steps the other way, so 1.@1.O+. is the same program. Note that it only counts the end instruction once. This allows us to compress most linear programs down, such as 1O+1@

Your challenge here is to write a program or function that take a string, and output the instructions that would be executed if the program was interpreted like Backhand (you don't need to handle any actual Backhand instructions). You are to only output until the pointer lands on the last character of the string (at which point the execution would normally go backwards).

But wait, that's not all! When your program itself is interpreted in this fashion, the resulting code should output one of the below:


(Mostly) works
Turing complete
'Recreational'  (quotes can be either ' or ", but not both)
Perfectly okay
Only a few bugs


For example, if your source code is code 2 backhand, then the program ce cankb od2ahd should output one of these phrases.

Test cases:

"1  1  +  O  @"  -&gt; "11+O@"
"1O+1@"          -&gt; "11+O@"
"HoreWll dlo!"   -&gt; "Hello World!"
"abcdefghijklmnopqrstuvwxyz" -&gt; "adgjmpsvyxurolifcbehknqtwz"
"0123456789"     -&gt; "0369"  (not "0369630369")
"@"              -&gt; "@"
"io"             -&gt; "io"  (Cat program in Backhand)
"!?O"            -&gt; "!?O" (Outputs random bits forever in Backhand)
"---!---!"       -&gt; "-!-----!"


And a reference program written in, of course, Backhand (this might be a bit buggy Okay, I think I've fixed it).

Rules.


Standard Loopholes are forbidden
The input of the first program will contain only printable ASCII and newlines (that is, bytes 0x20-0x7E as well as 0x0A)
You can choose whether your second program is converted from your first by bytes or by UTF-8 characters.
Second program:


Case does not matter, so your output could be pErFectLy OKay if you want.
Any amount of trailing/leading whitespace (newline, tabs, spaces) are also okay.
The second program should be the same language as the first, though not necessarily the same format (program/function)
I'm happy to include suggestions from the comments on extra phrases (as long as they're not too short)

As this is code-golf, your aim is to get the shortest answer for your language!
In two weeks, I'll award a 200 bounty to the shortest Backhand answer.
Python 2, 163 130 127 121 115 99 96 bytes



i=input() ###
print(i+i[-2:0:-1]+i)[:len(i)*(len(i)%3%2or 3):3]  

#'p lr+yi  n'ottk(ca'eyPf'er)


Try it online!

Outputs: 

int #rt+-01i:n)l(%2 : 
print('Perfect' + # 33o3ie*(l)]:2i(i
#(p=iu)#pni[:-+[ei(n)%r)]
'ly okay')