Node Create

Authors a new node that conforms to Markdown Node Contract and the form-specific contract the node claims. The skill's job is to force the structural requirements to be satisfied at write time — filename pattern, identity predicate block above the H1, required body sections, annotated Relations edges — rather than relying on later validation to catch drift.

An agent invokes this skill when the user wants a new node in nodes/<Taxonomy>/. The skill does not author prose outside the form system, does not propose new predicates to the local vocabulary, and does not edit existing nodes. Each of those operations has (or will have) its own skill; treating Node Create as a catch-all would dilute the form-specific drafting discipline this skill exists to enforce.

Steps

Step 1: Determine the form

Ask the user which form the new node takes. The graph's active forms are:

If the user is unsure, present the top three or four forms their described content could be, named with the distinction each form carries, and let them choose. Do not guess silently; the form choice commits to a filename pattern, predicate vocabulary, and body shape that is costly to change later.

Step 2: Read the form's contract

Read nodes/Contracts/<Form> Form Contract.md (or Markdown Node Contract.md for Contract / non-form-specific nodes). Each Form Contract carries the filename pattern, identity predicate requirements, body section requirements, and form-specific predicates as explicit Requirements in its ## Requirements section.

Also read Markdown Node Contract.md if not already loaded — every form inherits its file form, node atomicity, layered structure, YAML restriction, Relations section, named-edge syntax, and predicate atomicity rules.

Step 3: Draft the filename

Apply the form's filename pattern:

Every filename MUST follow Markdown Node Contract's ASCII-dash rule — no em-dashes, no en-dashes, -- for visual dashes in filenames.

Step 4: Draft the identity predicate block

Write the identity block as bullets above the H1. Every node carries conforms_to::[[<Form> Form Contract]]. Most carry in_domain::, authored_by::, has_lifecycle::, has_curation::.

Form-specific additions, reserved by Reserve Predicate Vocabularies to Specific Forms:

Do not carry a form-specific predicate on a node whose form does not own it — has_commitment:: on a Conviction is a category error, not a stylistic choice.

Step 5: Draft the H1 and opening

The H1 is the concept name — not a sentence, not the filename with a definition appended (unless the form explicitly requires it, which none currently do). The opening prose states the node's claim at card scale per Adopt Layered Node Structure and Progressive Summary Before Substance. An agent reading only the identity block, the H1, and the opening paragraph should be able to orient to the node's position in the graph.

Step 6: Draft the required body sections

Each form's Contract specifies required body sections:

Do not drop a required section because it "feels redundant" — the form sections are the structural home for the reasoning the node is committing to carry. Preserve contributor voice; do not generalize into a house style.

Step 7: Draft the Relations section

Add ## Relations at the end if the node carries relational edges. Each edge is a top-level bullet - predicate::[[Target]] followed by an indented sub-bullet annotation explaining why the edge matters. The annotation is required by Annotate Edges With Why-They-Matter; an edge without an annotation is tag spaghetti, not graph.

Choose the most specific predicate the graph's vocabulary supports. relates_to:: is prohibited by No Generic relates_to Predicate — pick grounded_in::, informs_downstream::, informed_by::, built_on::, composes_with::, contrasts_with::, contends_with::, extends_contract::, or invoke [[Predicate Propose]] to add a new predicate to the vocabulary rather than fall back on a generic.

If a target node does not yet exist, the edge is a ghost link — permitted per Markdown Node Contract and a planning signal that the graph wants to grow there. Use (the literal U+2197 NORTH EAST ARROW character, never the escape notation ) to mark external wiki targets.

Step 8: Validate before writing

Before writing the file to disk, re-read the node draft against the form's ## Requirements section. Check:

If any check fails, fix the draft before writing. Validation at read time is a weaker guarantee than refusing to write a non-conforming draft.

Step 9: Write and confirm

Write the file at nodes/<Taxonomy>/<Filename>.md (or nodes/Skills/<Folder>/<Folder>.md for Skills). Report the path to the user. Do not stage or commit — the user authors the commit after reviewing the draft.

Relations