English syntax makes a distinction between auxiliary verbs and full verbs. (Note that this answer is only talking about English; other languages do things differently. And as people have pointed out in the comments, specifically my Midwestern American dialect: British and Irish readers will probably disagree with several of my grammaticality judgements, since those dialects allow contractions in some places where AmE forbids them. See the comments for some examples!)
"Auxiliary" verbs have a few special properties in English; the most famous one is that they swap places with the subject when asking a direct question. For example, can is an auxiliary verb in the sentence he can swim, so if you turn it into a question, it moves to the front: can he swim? The verb likes seems similar on the surface, but is not an auxiliary: he likes to swim, but not *likes he to swim? Instead, an extra auxiliary is added for the question: does he like to swim?
Things get trickier when using verbs like "have", which can be either auxiliaries or full verbs, depending on their meaning. Compare you have finished ~ have you finished? against you have a cat ~ *have you a cat? In the first case, it's an auxiliary marking what linguists call "perfective aspect"; in the second case, it's a full verb indicating ownership. This is why do you have a cat? *I've is ungrammatical: only auxiliary verbs can contract.
And on top of that, there's an additional rule. Auxiliary verbs usually come attached to the full verb, but sometimes that full verb disappears if it's clear from context. This is called verbal ellipsis, and is extremely common: Have you finished? I have. Do you take this woman to be your wife? I do. But, crucially, auxiliary verbs cannot contract when there is verbal ellipsis. This is why your first example (have you completed the project? *I've) is ungrammatical.
These rules together can be summed up as: certain verbs in English can contract together with the preceding word, but only when acting as auxiliaries, and not if the following full verb is elided.
P.S. An extra point was added while I was writing!
Not sure if this even works, but for example, if I were to ask "I am going to pick you up after work", an accepted response could be "Don't. I'm already on my way home". Even if it isn't a complete sentence, it still sounds a lot cleaner than the "I've" response.
This is a different type of contraction. Another feature of auxiliaries in English is that they can be negated by putting "not" directly after them; full verbs can't do that without sounding extremely archaic (*he completed not the task!).
When this happens, the "not" can sometimes contract to "n't", losing its vowel. But this is separate from the auxiliary itself getting contracted, which is what was happening up above. "Not"-contraction isn't subject to the same restrictions, which is why I didn't is a valid sentence, but *I'dn't isn't.
P.P.S. If you look into this further on your own, be aware that there are two competing definitions of "auxiliary" in English! One definition, the one I'm using, is: auxiliary verbs are the ones that can swap places with the subject in negation ("syntactic auxiliaries"). Another definition is: auxiliary verbs are the ones that have no semantic meaning, only grammatical meaning ("semantic auxiliaries"). Some people use the term "modal verbs" for the second meaning, but that term can also have different definitions…welcome to the wonderful world of linguistics terminology!
This is mostly relevant because of the verb "to be": syntactically, it's an auxiliary ("is this a pigeon?" "this is not a pigeon"), but semantically, it's not ("I think, therefore I am"). For the purposes of this answer, I'm only using the syntactic definition, not the semantic one. But don't be surprised if you see other people do it the other way around.