v0.x This is the released v0.x line — the version that ships in release tarballs and is dogfooded in this repository. The v1.0 rebuild is documented separately in the v1.x preview.

Relationships

processkit expresses relationships between entities two ways:

  1. Cross-references — lightweight fields in frontmatter
  2. Bindings — first-class entities with their own files

Pick the right one based on what the relationship needs.

The rule

If a relationship has scope, time, or its own attributes → Binding. Otherwise → cross-reference.

Cross-reference examples

# In a WorkItem
spec:
  blocks: [BACK-swift-oak]
  blocked_by: [BACK-calm-fox]
  related_decisions: [DEC-023]
  parent: BACK-epic-lint

Conventional field names:

FieldMeaning
parentThis entity is a child of another
childrenThis entity has sub-items
blocksThis entity blocks others until resolved
blocked_byThis entity is blocked by others
related_workitemsTyped relationship to WorkItems
related_decisionsTyped relationship to DecisionRecords
supersedesThis entity replaces an older one
superseded_byThis entity has been replaced
implementsThis entity implements a decision

See the cross-reference-management skill for the full list and conventions.

Binding examples

---
apiVersion: processkit.projectious.work/v1
kind: Binding
metadata:
  id: BIND-bright-falcon
  created: 2026-04-06T00:00:00Z
spec:
  type: role-assignment
  subject: ACTOR-alice
  target: ROLE-tech-lead
  scope: SCOPE-project-x
  valid_from: 2026-01-01
  valid_until: 2026-12-31
---

Conventional binding types:

typesubject kindtarget kind
role-assignmentActorRole
work-assignmentWorkItemActor
workitem-gateWorkItemGate
scope-gateScopeGate
time-windowanyany
budget-applicationArtifactWorkItem/Scope

Legacy process-gate, process-scope, and schedule-scope Bindings are v1 migration inputs only. New v2 relationships should target the concrete WorkItem, Scope, Artifact, or Gate being governed.

See the binding-management skill for the full spec.

Why Binding was generalized from RoleBinding

DISC-002 §11 analyzes the decision to generalize the 18th primitive from RoleBinding to Binding. The short version: the indirection pattern applies to at least 7 relationship types across processkit, and one generalized primitive is cleaner than multiplying specific bindings. See DEC-023 in the aibox repo.