In my recent works, not being comfortable with assembler, I had to look for many information sites. One thing I never found and thought it was missing, was a summary of the flags that could be set by the user, and tested.
In the end, only the Carry flag can be fully operated and tested with specific instructions.

Sometimes you can also use the BIT instruction:
"BIT sets the Z flag as though the value in the address tested were ANDed with the accumulator. The S and V flags are set to match bits 7 and 6 respectively in the value stored at the tested address."

I have often seen using this instruction to set the V bit to 1 like this:

In case it helps to offer any exposition as to `CLV`, 6502s have a dedicated input pin, SO, which when asserted will set overflow. It's there in case the hardware design requires a low-latency polling input:

That gets you to the top of whatever responds to the external hardware in at most 3 cycles, whereas an interrupt takes at least 8 and possibly as many as 15, and having the 6502 constantly poll an address in memory would cost 6 even if you put it on the zero page (and would probably mean more electronics).

That suggests that you need a cheap way to clear the overflow flag, but it doesn't really matter if you've no cheap way to set it.

An example use of this feature is the Commodore 1540 and 1541 disk drives; they have 6502s in them and V is signalled to indicate that the next byte has been assembled from the disk.

All those other options are very interesting, keep bringing them on
(Initially I made this table was because I needed extremely compact and fast ways to set/test/branch; I counted bytes and cycles many, many times... But having other ways to do is very interesting and can sometimes spare a specific instruction ! ).

Given that `LDA`, `LDX` and `LDY` all set N and Z and all work as immediate instructions, if you have a register you don't mind overwriting then you can set N that way, and if you're setting N=0 then you can also pick a value for Z. It's two cycles, so it costs the same as a `SEC`, etc.

If you can't afford the register, wrapping a `LDA` in `PHA`/`PLA` allows you to adjust those flags without losing the register contents. Compare and contrast with a more direct `LDA`/`PHA`/`PLP` which lets you be explicit about all the flags in the same number of cycles but overwrites A.