Connect

GRAPH.md spec

What a valid GRAPH.md must contain and in what order. vinc graph-md check tests exactly these points.

What the file looks like

A Markdown file of about 75 lines: a title, a header line, then the sections below with the generated region near the end.

# GRAPH.md
<!-- vinc-graph-md: 1 · built 2026-10-01 · the store is canonical, this file is a view of it -->

## What this is [this graph decides]
The house style for writing into this knowledge graph. ...

## Node kinds [schema-fixed]
- Concept: one reusable idea. If it will not be reused, do not create it.
...

<!-- vinc:generated start · ... -->
## Domains in this graph
...
<!-- vinc:generated end -->

## Do not [this graph decides]
- Do not ratify your own proposal. A person does that.

One of the first four lines must be <!-- vinc-graph-md: 1 ... -->. The number is the format version, currently 1. The rest of the line holds the build date and a reminder that the graph is the original and the file a copy of it. A rebuild updates the date.

Sections, in order

The sections must come in this order. Vinc recognises a section by its heading name, so keep the names as they are, all in the file's language (English or Korean). The tag after the name is optional for the check, but the template writes it.

#HeadingTagNeededWhat it says
1## What this is[this graph decides]RequiredThat the file fixes conventions, and judging meaning is the reader's job.
2## Read before you write[this graph decides]RequiredSearch first, reuse ids, id prefixes such as concept:, and writing in English.
3## Node kinds[schema-fixed]RequiredConcept, Episode, Record, Decision, Bridge and Entity, and when to use each.
4## How big is one concept[varies by topic]RequiredGood and bad examples of one concept, and a two-sentence test.
5## Relations[schema-fixed]RequiredThe six edge names and their direction, and which need evidence.
6## Documents[schema-fixed]RequiredSource text goes in through vinc_doc_put, not pasted into a Record.
7## Validity[this graph decides]Optionalvalid_from and valid_until instead of deleting a past claim.
8## Roles[schema-fixed]OptionalHow an Agent role is written: id, topic and the required props.
9## Topics[this graph decides]OptionalHow the domain field is shaped, and how big one leaf should be.
10## Domains in this graphgeneratedRequiredGenerated. Domains with node counts.
11## Ratified vocabularygeneratedRequiredGenerated. Approved node and edge types.
12## Do not[this graph decides]RequiredThe three rules below.

The generated region

The two generated sections sit between exactly one start line and one end line:

<!-- vinc:generated start ... -->
<!-- vinc:generated end -->

Do not edit inside them. The next rebuild replaces that part, and the check compares it with the graph. See what the region holds.

Relation names

In the Relations section, list only these six edge names, plus any edge type a person has ratified:

relates_to, prerequisite_of, derives_from, inherits_from, connects_via, about

Any other name in a list item there fails the check, because an assistant would copy it into the graph.

The three Do-not rules

Length and characters