Skip to content

Node types

Node types are defined by the schema registry, not hardcoded. A fresh graph is born with the seed schema pack below; a team extends or overrides it by writing its own schema nodes (see Schemas are nodes). To read the live registry for your graph — seed plus any resident overrides — run spor schema, or spor schema <type> for one type’s details.

These are the types sessions read and write every day.

Type Prefix Role
decision dec- A choice that was made, with the why. Statuses: active, superseded, rejected, settled (settled means still in force but acknowledged as background context).
task task- Active or planned work. Statuses: open, active, done, abandoned. Reaching done requires a resolver — see the node model.
issue issue- A defect or finding and its resolution lineage. Statuses: open, active, resolved; resolved requires a resolver.
incident inc- Something that went wrong in operation. Live incidents join the decision queue.
artifact spec-, art- A document, spec, module, or build product worth referencing. When it represents a change it may carry a delivery-stage status: in-review / approved (non-resolving) or merged / released (resolving).
norm norm- A standing convention or constraint. Norms ride along in every project-relevant briefing without needing to match the query.
question question- A routed ask the graph could not answer. Statuses: open, answered. Routed to the steward of the closest relevant node.
capture-pending cap- Raw captured text that fit no schema, preserved for later triage. Closed only as merged (content moved into proper nodes) or rejected (no durable fact).
finding find- A gardener observation about another node, filed as a queue item — see the gardener.
Type Prefix Role
briefing brief- A compiled briefing — output of the system. Never traversed by the compiler, so briefings don’t feed back into briefings.
correction corr- A standing fix to a briefing: pins, excludes, and guidance. Also never traversed.
schema schema- A schema definition — the type that makes the ontology data. Recognized natively by the core.
Type Prefix Role
person person- An org member’s identity anchor: the canonical subject tokens bind to, and the target of routing and assignment edges.
organization org- A durable organization identity anchor; people connect to it with member-of-org (membership) and stewards (admin authority).
agent agent- A person-owned automation principal — the durable identity of a dispatched background session, owned via an owned-by edge.
repo repo- Durable git-repository identity: slug aliases plus repo fingerprints, so a rename heals at read time.
project proj- A stable grouping above repos. A repo joins its one home project with a grouped-under edge.
Type Prefix Role
profile profile- A reusable runtime-plus-capability bundle an agent dispatches under (harness, model, skills, plugins, MCP servers). Its fields are the dispatch satisfiability spec.
routine routine- Owner-scoped trigger-to-action automation: declarative when/do rules over graph events that dispatch only the owner’s agents.
workflow wf- A repeatable, reviewable automation definition — a DAG of steps that lives in the graph, versioned and proposal-gated.
workflow-run run- One execution of a workflow: its state and lineage. Live runs surface in the queue when stuck.
Type Prefix Role
lens lens- A saved view over the graph: declarative query and render blocks, optional actions — see Lenses.
workspace workspace- A composition of lenses into one layout, rendered as a single view.

Each type’s schema declares a handful of flags the rest of the system reads:

  • queueable — live nodes of this type join the decision queue (task, issue, incident, question, capture-pending, finding, workflow, workflow-run).
  • always_on — rides along in every project-relevant briefing (norm).
  • traversable: false — the compiler never walks through it (briefing, correction, and the view types).
  • capturable: false — never drafted from captured text; created only deliberately (person, repo, agent, profile, and the other identity, automation, and system types).

Run spor schema to see which flags each type carries in your graph’s live registry.