Concepts
Canonical vocabulary used across Plan0.
Canvas objects
| Term | What it is |
|---|---|
| Building block | Any element you place on the canvas — Group, Component, or Item. |
| Group | A top-level building block that defines a domain or system boundary. Children are free-positioned inside it. |
| Component | A building block representing one concern. Can stand alone or hold an ordered list of Items. |
| Component Item (or simply Item) | A sub-element inside a Component that describes a specific behaviour, spec, or detail. |
| Connection | A directed arrow between two building blocks representing a dependency, data flow, or relationship. |
Classifiers
Every building block has two orthogonal classifiers:
| Field | What it describes | Who sets it | Example values |
|---|---|---|---|
structuralType | How the block behaves on the canvas | System | group · component · component-item |
semanticType | What the block means in your project | You, via Project Settings | backend · form · endpoint |
Think of it like HTML: a <div> and a <footer> behave identically (structuralType) but mean different things (semanticType).
Project & configuration
| Term | What it is |
|---|---|
| Project | A named canvas; contains a building block layout, Project Settings, and Versions. |
| Template | A reusable configuration preset — defines Component types, Group types, Item types, Statuses, and Quick Prompts. Can be applied to or forked from a Project. |
| Version | A named canvas state within a Project. Every Project has at least one (Main). |
| Status | A color-coded label applied to a building block to indicate its implementation state. |
| Quick Prompt | A user-authored text snippet scoped to a building block type (or globally). Sent to an AI agent as context. |
| Scope | The targeting rule for a Quick Prompt or Status — which building blocks it applies to. |
| Suggestion | A structural advisory indicating that a building block is incomplete or misplaced, based on rules in the Template. |
Relationships at a glance
- A Project contains one or more Versions (minimum one: Main).
- A Project can use one Template (or none).
- A Group contains zero or more Components and nested Groups — children are free-positioned.
- A Component contains zero or more Items — Items are ordered and stacked.
- An Item belongs to exactly one Component but can be connected to any other building block, even across Groups.
- A Connection has exactly one source and one target building block.
- A Status and a Quick Prompt each have exactly one Scope.