Should I include the ciphertext length in an AAD when using Chacha20+Poly1205 AEAD?
It is not necessary; ChaCha20+Poly1305 already includes the length of the ciphertext into the data which is MACed (and hence stirs it into the tag), hence you don't need to.  If someone appends or truncates ciphertext data, they'd change the data the MAC is computed over, and so the tag would not verify.

We can see the pseudocode (in section 2.8.1 of the RFC) which includes the ciphertext length in this line:


    mac_data |= num_to_4_le_bytes(ciphertext.length)
    tag = poly1305_mac(mac_data, otk)



Now, it won't hurt things if you decide to include the length into the AAD; however that's something that the designers have already thought of, and so you don't need to.