Can Ansible alone be a complete CI-CD tool?
This is totally possible.  Of course you can achieve it without jenkins or similar tools being required.  We're always free to reinvent the wheel.  The question becomes is it worth the effort?  When it helps you avoid jenkins I'd be inclined to put the effort in.  (I'd also suggest looking at Concourse before doing jenkins again, but that's not what this question is about...)

For your case you need two things:


a playbook that automates your build using ansible.
a git hook to invoke your ansible playbook, probably post-commit.


If you are using gitlab or github you should look at their specific documentation for creating hooks, but otherwise the generic help I linked to should do it.

To answer your specific questions:


Yes, use the git hook.
Sure.  You probably want ansible to do a fresh git checkout first.  Eventually you will want to add any prerequisites to be verified too.
You don't have to assume anything, just add these steps to the end of your playbook.  If the build fails, it will stop before wasting effort on testing anything.  You could split build, deploy, and validate into their own roles within one larger playbook.  This will help make each of the sets of tasks easier to manage and you could call them manually if needed for debugging or emergencies.
You could do this in a myriad of ways.  I'd create a text file with a date/time stamp and the results inside.  You could write it to a database or K/V store.
I'm not sure what you mean.