apiVersion Policy
processkit uses a Kubernetes-style apiVersion field on every entity:
apiVersion: processkit.projectious.work/v1
The group
The group processkit.projectious.work is a reverse-DNS name anchored on
the owning organization (projectious.work) with processkit as a
subcomponent. This prevents name collisions if other organizations fork
or publish compatible primitives under their own domains.
The form <reverse-dns-group>/<version> is the Kubernetes-idiomatic
shape — exactly one slash. Tools that split on / expect exactly two
parts.
Evolution rules
| apiVersion | Status | Meaning |
|---|---|---|
processkit.projectious.work/v1 | current v0.x entity format | Initial public entity version |
processkit.projectious.work/v1beta1 | not used | Reserved |
processkit.projectious.work/v2 | planned | Breaking contract with explicit migration required |
Non-breaking changes (stay at v1)
- Adding new optional fields to schemas
- Adding new primitive kinds
- Adding new states to a state machine
- Adding new skills
- Adding new packages
Breaking changes (require v2)
- Removing or renaming existing fields
- Changing the type or meaning of existing fields
- Removing states from a state machine (stranding existing entities)
- Removing primitive kinds
- Changing the semantics of
metadata.id,metadata.created, or other cross-cutting fields
Migration between versions
The SmoothTiger/SmoothRiver v2 direction is a no-shim contract: v2 schemas and index semantics become authoritative, and processkit does not add hidden dual-read or permissive validation paths for v1 data. Existing v1 contexts remain a migration source, not a long-term compatibility target.
For a v1 context moving to v2:
- The installer or migration tool generates a diff between the old upstream reference templates and the new ones.
- A
Migrationentity records the affected files, source and targetapiVersion, source and target processkit versions, and the proposed plan. - The agent runs the migration through
migration-management, using dry-run diagnostics before applying changes. - The user approves the project-specific plan before the migration
reaches
applied. - After migration, v2 validation rejects unknown kinds, stale primitive assumptions, and ad hoc event/type vocabulary that v1 tolerated.
No automatic in-place patching — migrations always go through an explicit review and approval step. See the v0.25.0 changelog for the public breaking-change summary.