Holger,
I did do it by hand and it worked just fine (insomuch as I understand what I am doing). I 'was' under the impression from the documentation that it should be done by starting from scratch. I got that idea just from the way the tutorial starts. All that would be required to eliminate that possible interpretation would be to add the following after this sentence "Let's start by creating a new SHACL file with a classical data model about Persons and family relationships.": "This following discussion could also be applied to an existing class (see turtle source for imports and prefix examples)".
On another question, at the bottom of the tutorial there is a section called "Further Topics" that includes, among other things, "Complex constraints can be expressed in SPARQL". Although I find datatype and property constraint templates immensely useful, my very first SHACL example uses a SPARQL constraint. I have tested the SPARQL constraint and it works but I cannot really tell if it works when I migrate it to SHACL syntax/semantics. I remember reading somewhere that SHACL-based SPARQL queries had to have an ORDER BY clause but the SHACL SPARQL constraints examples from the W3C document do not have ORDER BY clauses. For something as important as SPARQL I would hope that a future version of the tutorial would include a working SPARQL example.
It would also be nice to have a discussion of the sh:message property and how to maximize its value.
Jack