Why is it named artifact?

Artifact is simply named after what it does: it is a way to write and track your artifacts

Why is (extended) markdown the default language?

Because it is human/readable and writeable. Adding the metadata block was also not difficult and fit within the syntax.

An artifact is "implemented" in code but not 100% done?

All artifacts are only as done as their parts + implementation/done.

If you have:

[SPC-1]
[SPC-1-a]
[SPC-1-b]

And then the code:

def hello():
    """partof: #SPC-1"""

SPC-1 will only be 1/3 "done" since it still has two incomplete parts.

This also applies to the "done" field.