Development
Active planning documents for processkit v1.0.
This section is the open planning area for processkit v1.0.
Design documents that affect the product, architecture, implementation
scope, acceptance gates, or external positioning should be added here.
Governance-relevant documents should also be recorded as processkit
Artifacts or Decisions through the processkit gateway.
Core Documents
Supporting Analysis
1 - Product Specification
Product definition for processkit v1.0.
Purpose
processkit v1.0 provides a durable process substrate for agentic
software projects. It gives humans and AI agents a shared project memory
with typed work, decisions, discussions, artifacts, roles, skills,
gates, bindings, and event history.
The product is not an agent runtime. It is the process and memory layer
that agent runtimes, coding agents, and human maintainers can use to
coordinate work safely.
Primary Users
- Project owners who want inspectable, durable AI-assisted project
memory.
- Maintainers who need decisions, work, artifacts, and migrations to be
traceable.
- AI coding agents that need reliable task context and write-safe MCP
tools.
- Agent runtime integrators that need a provider-neutral process layer.
Problems To Solve
- Agent sessions lose project context across turns and tools.
- Important decisions and rationale are buried in chat.
- Work state, review state, and acceptance criteria are not consistently
queryable.
- Multi-agent teams need roles, skills, handoffs, gates, and logs.
- Markdown knowledge is readable but often lacks lifecycle semantics.
- Service-owned metadata systems are less portable than git-backed
files.
Product Goals
- Keep project memory file-backed, git-native, and human-inspectable.
- Make process writes happen through validated MCP tools.
- Support typed entities, state machines, and relation queries.
- Implement the RFC’s 89-concept T/P/D/C ontology target.
- Preserve auditability through structured event logs.
- Support provider-neutral roles, team members, model routing, and
skills.
- Export and ingest OKF bundles without weakening canonical semantics.
- Integrate with external agent runtimes instead of replacing them.
Non-Goals
- Build a general agent runtime.
- Build a vector database.
- Build a general data catalog.
- Make OKF the canonical internal model.
- Replace GitHub, issue trackers, CI, or code review systems.
- Optimize for synthetic coding-agent benchmarks as the product goal.
Core Workflows
- Capture work as typed WorkItems with acceptance criteria.
- Record decisions with context, alternatives, rationale, and
consequences.
- Attach artifacts and supporting analysis to work and decisions.
- Route tasks to roles, team members, skills, and model classes.
- Apply gates for approval, policy, evaluation, and release checks.
- Query by interface rather than forcing agents to guess concrete
entity kinds.
- Preserve process evidence in structured LogEntries.
- Export selected knowledge as OKF for open exchange.
Success Criteria
- A maintainer can understand project state from files and docs without
replaying chat history.
- An agent can create, transition, and query process entities through MCP
tools without hand-editing canonical context files.
- A real project cycle can run through the v1.0 alpha model.
- Automated fixture tests cover schema generation, MCP contracts,
indexing, migrations, and pk-doctor before manual dogfood begins.
- OKF export produces a conformant bundle for public consumption.
- Existing v0.x evidence can migrate or be explicitly preserved.
2 - Architecture Specification
Architectural direction for processkit v1.0.
System Role
processkit v1.0 is a provider-neutral process and memory substrate. It
stores canonical project entities in git-backed files and exposes safe
read/write behavior through MCP servers.
Agent runtimes are consumers. processkit provides context, process
state, governance, and memory; it does not own the agent loop.
Canonical Model
The v1.0 ontology follows the RFC’s T/P/D/C framing:
T: terminology and shared fragments without their own lifecycleP: persistent primitives with schema and lifecycleD: discriminator variants of primitivesC: compositions of primitives and terminology fragments
The full RFC target is 89 concepts. The alpha should implement only a
small proven subset before expanding. The detailed inventory is captured
in Ontology Reference
.
Required Internal Semantics
The canonical model must preserve:
- stable processkit entity IDs
- schema-backed kinds and discriminators
- lifecycle state machines
- typed Bindings and queryable relations
- structured LogEntries
- validation modes per kind
- generated schemas
- MCP tools as the normal write path
- interface-aware queries such as
query_by_interface
These semantics must not be collapsed into plain markdown links,
free-form notes, or OKF’s permissive interchange model.
Schema Generation
The RFC’s build-time schema generation remains the preferred direction:
- source schemas live under a source tree
- templates and fragments compose schemas
- generated flat schemas are committed
- runtime tools consume generated schemas
- a rebuild endpoint supports full or partial regeneration
The required endpoint shape remains:
regenerate_schemas(kinds: list | None) -> {rebuilt, unchanged, errors}
The generated schema architecture, MCP helper expectations, and index
update flow are specified in
Tooling Architecture
.
Validation
Validation is phase-gated:
- migrated kinds use strict validation
- migrating kinds use tolerant validation with warnings
- validation mode must be visible through MCP
- release gates must fail on invalid strict entities
Indexing And Query
The index must support:
- full-text search
- entity lookup by ID
- relation traversal
- interface grouping
- query by interface
- backlinks or cited-by navigation
Interface-aware query is a core v1.0 feature because agents should be
able to ask for records, decisions, artifacts, logs, or approvals
without hard-coding every concrete kind.
The implementation should keep the index as a SQLite/FTS5 accelerator
over canonical files. It must store declared schema interfaces, typed
relations, event subjects, and enough metadata to support
query_by_interface without replacing the git-backed entity files as
the source of truth.
OKF Boundary
OKF is an import/export profile, not the internal canonical model.
Exports should:
- emit conformant OKF v0.1 bundles
- include OKF
type - preserve
processkit_id, kind, and interfaces in extension
frontmatter - emit normal markdown links for generic OKF consumers
- preserve typed relation metadata for processkit-aware consumers
Imports should:
- mark content as external knowledge
- preserve unknown OKF frontmatter
- avoid pretending external OKF concepts have full processkit lifecycle
semantics
Runtime Integration
processkit should provide examples and integration surfaces for:
- LangGraph
- Google ADK
- OpenAI Agents SDK
- Microsoft Agent Framework
- coding agents such as OpenHands, SWE-agent, Copilot Agent, and Aider
The stable contract should be MCP, files, schemas, and docs, not a
framework-specific runtime dependency.
Testing Architecture
Manual dogfooding through a new aibox project is useful, but it is not
the correctness strategy for v1.0. The core test suite must run against
local fixture projects without requiring aibox and must cover schema
generation, MCP contracts, state machines, index updates, migrations,
and pk-doctor adversarial fixtures. aibox should be tested as an adapter
after the processkit-native suite is green.
See Test Strategy
.
3 - Ontology Reference
T/P/D/C ontology baseline for processkit v1.0.
processkit-v1.0-rfc-draft.md is the leading document for the v1.0
ontology. When older analysis conflicts with this page, the RFC and this
page win.
T/P/D/C Classes
The RFC names four implementation classes. If a note says TCDP, read it
as the same four classes, with the RFC’s canonical order written as
T/P/D/C.
| Class | Meaning | Description |
|---|
T | Terminology / foundational fragment | A concept, slot, or meta-mechanic that has no independent entity lifecycle. T concepts are reused in schemas, state machines, constraints, and generated fragments. |
P | Primitive | An atomic persistent entity kind with its own schema, lifecycle, ID policy, validation contract, and storage path. P concepts can be composed into C concepts. |
D | Discriminator | A typed variant of a parent primitive, usually represented by kind: or an equivalent closed enum. D concepts inherit the parent schema and lifecycle. |
C | Composition | A named kind assembled from primitives plus T fragments. C concepts can have their own lifecycle, but their schema is built from composed parts. |
Counts
The v1.0 target is 89 ontology concepts.
| Class | Count | Rule |
|---|
T | 19 | Reusable vocabulary and schema mechanics; no independent persistence. |
P | 22 | Atomic persisted entity families with schemas and state machines. |
D | 24 | Parent-primitive variants with inherited lifecycle. |
C | 24 | Generated composed kinds assembled from P and T parts. |
| Total | 89 | The RFC count is the release target. |
Full Working Inventory
This inventory makes the RFC’s count concrete for implementation
planning. It preserves the RFC settlements: Location and Skill are
primitives, Service and TeamMember are compositions, Position is a
role-slot Binding discriminator, and Hierarchy is a named
parent-child Binding discriminator.
T: Foundational Concepts
| Concept | Description |
|---|
| State | A named condition within a lifecycle, such as open, accepted, done, or archived. |
| Transition | A valid movement between states, including required actors, guards, and event emission. |
| StateMachine | The complete lifecycle graph for a kind, discriminator, or composition. |
| Lifecycle | The operational meaning of a state machine, including terminal states and audit expectations. |
| Constraint | A rule that restricts valid data, links, transitions, or composition. |
| Guard | A precondition checked before a transition, command, or write-side tool action runs. |
| Identity | The stable identity contract for an entity, including ID format, aliases, and lookup rules. |
| Versioning | The version contract for schemas, entities, generated files, and release artifacts. |
| Ownership | The accountable actor, role, or team responsible for an entity or process surface. |
| Immutability | The rule that some evidence, event, hash, or historical decision must not be rewritten. |
| Schema | The structured validation contract for an entity or fragment. |
| Composition | The build-time assembly of fragments and primitives into a generated runtime schema. |
| Inheritance | The explicit reuse of a parent schema or fragment by a child composition. |
| Uniqueness | A rule that one value, relation, or role-slot can exist only once in a defined scope. |
| Interface | A shared query surface declared by schemas, such as Record or Versioned. |
| ValidationMode | The per-kind mode that decides whether validation is strict or tolerant during migration. |
| Provenance | The source and transformation trail for content, decisions, generated schemas, and migrations. |
| Visibility | The audience and disclosure boundary for an entity or generated export. |
| Cardinality | The allowed count for fields, relations, owners, children, or bindings. |
P: Atomic Primitives
| Primitive | Description |
|---|
| Actor | A human, agent, service account, organization, or other participant that can own, perform, or be assigned work. |
| Artifact | A durable evidence object such as a design, report, release note, analysis, fixture, or generated output. |
| Binding | A typed relation between entities, actors, roles, containers, or claims. |
| Capability | A durable ability or capacity that an actor, system, role, or service can provide. |
| Channel | A communication or handoff surface, including chat, queue-like inboxes, issue streams, and runtime buses. |
| Command | An intended action issued by a human, agent, hook, or process. |
| Container | A structural grouping boundary such as a portfolio, ART, team, project, scope, or repository area. |
| Event | A recorded occurrence in the system, including transitions, tool calls, releases, and external signals. |
| Gate | A decision or policy checkpoint that must pass before a process can continue. |
| Location | A spatial, site, coordinate, logical-region, or timezone anchor. |
| Note | Captured knowledge that may be fleeting, promoted, linked, or archived. |
| Outcome | A result, effect, delivery state, metric result, or observed consequence. |
| Policy | A governing rule, standard, permission, or organizational constraint. |
| Proposition | A claim about the world, work, risk, belief, forecast, or estimate. |
| Queue | An ordered or claimable work intake, handoff, or processing surface. |
| Record | A durable process record family for decisions, logs, measurements, approvals, and historical evidence. |
| Recurrence | A repeating schedule, cadence, ritual, or trigger rule. |
| Resource | A consumed or governed asset, including budget, compute, environment, credential, material, or tool capacity. |
| Role | A reusable responsibility bundle that can be assigned to actors or team members. |
| Skill | A first-class processkit capability package with its own schema, lifecycle, triggers, and tooling. |
| Specification | A formal description of a schema, process, role, gate, service, goal, schedule, channel, queue, or test. |
| WorkItem | A unit of requested or planned work with acceptance criteria, state, and evidence. |
D: Discriminator Variants
| Discriminator | Parent | Description |
|---|
| Risk | Proposition | A claim about uncertainty, impact, probability, mitigation, and ownership. |
| Belief | Proposition | A held assumption or judgment that may need evidence or revision. |
| WorldFact | Proposition | A factual claim treated as externally true until contradicted. |
| WSJFEstimate | Proposition | A weighted shortest-job-first estimate or related prioritization claim. |
| Assumption | Proposition | A premise accepted temporarily to enable planning or execution. |
| GeographicRegion | Location | A country, region, market, jurisdiction, or other broad geographic area. |
| Site | Location | A physical office, facility, datacenter, or operating site. |
| Coordinate | Location | A precise coordinate or geospatial point. |
| LogicalRegion | Location | A logical deployment, business, data, or governance region. |
| Timezone | Location | A timezone anchor for schedules, teams, or operational windows. |
| Disposition | Capability | A tendency, affordance, or BFO-style disposition exposed as capability vocabulary. |
| Portfolio | Container | A strategic investment or governance container above programs and ARTs. |
| ValueStream | Container | A flow of value across products, teams, systems, and delivery steps. |
| ART | Container | An Agile Release Train or equivalent multi-team delivery container. |
| Team | Container | A small delivery or operating group. |
| Project | Container | A bounded initiative, repository, product effort, or implementation scope. |
| Scope | Container | A bounded area of authority, work, release, or applicability. |
| Hierarchy | Binding | A named parent-child relation used as the canonical hierarchy anchor. |
| Position | Binding | A role-slot relation with nullable subject until a TeamMember or Actor fills it. |
| ProvenanceLink | Binding | A relation from a derived entity to its source, import, generator, or evidence. |
| Correlation | Binding | A relation stating that two entities refer to related or equivalent concerns. |
| Dependency | Binding | A relation stating that one entity depends on another. |
| OwnershipLink | Binding | A relation assigning accountability or stewardship. |
| RelatedTo | Binding | A low-specificity relation used only when no stronger binding type applies. |
C: Compositions
| Composition | Description |
|---|
| TeamMember | C(Actor + calendar + capabilities + persona + skill-list + journal). |
| DecisionRecord | C(Record + Proposition + alternatives + consequences + lifecycle). |
| LogEntry | C(Record + Event + immutable timestamp + actor + subject). |
| Measurement | C(Record + metric definition + observed value + provenance). |
| Archive | C(Record + retention policy + source hash + location). |
| ProcessSpecification | C(Specification + states + transitions + guards + commands). |
| GoalSpecification | C(Specification + desired outcomes + measures + owners). |
| Service | S(Capability)/C: a provided capability with interface, owner, SLOs, and resources. |
| RoleSpecification | C(Specification + responsibilities + authority + expected skills). |
| GateSpecification | C(Specification + policy + required evidence + pass/fail semantics). |
| SchemaSpecification | C(Specification + YAML schema + interfaces + validation mode). |
| ScheduleSpecification | C(Specification + recurrence + timezone + calendar constraints). |
| TestSpecification | C(Specification + fixture + expected result + acceptance signal). |
| ChannelSpecification | C(Specification + channel protocol + participants + retention rules). |
| QueueSpecification | C(Specification + queue discipline + claim rules + retry policy). |
| WorkItemTemplate | C(WorkItem + reusable acceptance criteria + default bindings). |
| Migration | C(Command + Event + source schema + target schema + validation evidence). |
| ScopePlan | C(Container + WorkItem set + owners + acceptance gate). |
| Roadmap | C(Container + GoalSpecification + sequencing + milestones). |
| ProgramIncrement | C(Container + cadence + objectives + risks + demo evidence). |
| Iteration | C(Container + cadence + committed work + review evidence). |
| Release | C(Container + Gate + Artifact bundle + provenance + versioning). |
| Discussion | C(Record + Channel + Proposition thread + outcome capture). |
| EvaluationRun | C(Command + TestSpecification + Event + Measurement + Artifact evidence). |
4 - Tooling Architecture
MCP, schema, and index architecture for processkit v1.0.
The v1.0 tooling architecture follows the RFC: schemas are generated
from Jinja + YAML sources, writes flow through MCP tools, and indexes are
extended rather than replaced.
MCP Server Shape
MCP is the stable runtime contract for agents and harnesses. Files remain
human-inspectable, but canonical mutations happen through tools.
The v1.0 server surface should include:
- a processkit gateway that exposes the common read/write surface
- per-domain management tools for work, decisions, records, gates,
discussions, roles, bindings, migrations, and skills
- an index-management surface for reads, search, relation traversal, and
interface queries
- a schema-management surface with
regenerate_schemas - a doctor/audit surface for validation, drift, and release readiness
The gateway can aggregate tools for harness convenience, but tool
ownership should remain domain-specific so validation and lifecycle rules
stay close to the schema they enforce.
MCP Helper Library
Every MCP server should use shared helpers rather than reimplementing
process rules. The helper layer should provide:
- ID allocation and collision checks
- generated schema loading
- draft-2020-12 JSON Schema validation
- state-machine loading and transition validation
- strict/tolerant validation-mode lookup
- frontmatter and body parsing/serialization
- atomic file writes under the canonical storage layout
- event-log emission for mutating actions
- index upsert/delete calls after successful writes
- typed error responses with actionable remediation
- Python type-signature to JSON Schema consistency checks
- golden fixture helpers for MCP contract tests
The RFC requires MCP tools to have valid Python type signatures and
matching draft-2020-12 JSON Schemas before release candidate.
Schema Generation
Schema sources live under schemas/src/. Runtime tools consume a flat,
committed _generated/*.yaml tree.
Composition rules:
extends: parent.yaml declares composition inheritance{% include %} includes T fragments into templates__merge: replace|concat|name-merge declares per-field merge strategy- generated schemas declare interfaces such as
Record or Versioned - generated files are committed so agents and reviewers can diff runtime
contracts directly
The required MCP endpoint is:
regenerate_schemas(kinds: list | None) -> {rebuilt, unchanged, errors}
kinds=None performs a full rebuild. A non-empty list rebuilds only the
requested generated schemas and their dependencies. aibox apply may
trigger full rebuilds by default, but schema generation must not depend
on aibox; it must be runnable in processkit tests and CI directly.
Validation Modes
Validation is phase-gated:
- migrated kinds validate strictly
- kinds still being migrated validate tolerantly and emit warnings
- validation mode is queryable through MCP per kind
- release gates fail on invalid strict entities
This lets alpha/beta users test incomplete migrations without allowing
known-invalid final entities to pass unnoticed.
Indexing Database
The RFC keeps the existing SQLite/FTS5 direction and extends it with
interface-level grouping. The index is an accelerator and query surface,
not the source of truth. Git-backed entity files remain canonical.
The minimum index stores:
- entity identity, kind, discriminator, state, title, timestamps, and path
- declared interfaces from generated schemas
- frontmatter fields needed for common filters
- typed relation edges from Bindings and inline references
- event subjects and actors for timeline queries
- full-text rows for titles, bodies, specs, and selected metadata
- validation and generation metadata for drift checks
The required read patterns are:
get_entity(id)- search by text
- query by kind, state, owner, and container
- traverse relation edges
- backlinks or cited-by navigation
query_by_interface(interface, filters...)
query_by_interface(Record, ...) is load-bearing because it lets agents
retrieve DecisionRecords, LogEntries, measurements, approvals, and other
record-like entities without guessing every concrete kind.
Index Update Flow
Writes should follow one transaction-like path:
- MCP tool receives a typed request.
- The tool loads the generated schema and current validation mode.
- The helper validates input and transition guards.
- The entity file is written atomically.
- Required LogEntries or Events are emitted.
- The changed entity, relations, and events are upserted into SQLite.
- The response returns the entity ID, path, state, validation mode, and
index update status.
If index update fails after a file write, the response must surface drift
and pk-doctor must detect it. A separate reindex tool should rebuild
SQLite from files for recovery, CI fixtures, and release checks.
5 - Test Strategy
Automated testing strategy for processkit v1.0.
The current exploratory strategy is to install processkit into a new
aibox project and try workflows manually. That remains useful as a human
dogfood check, but it is not enough for v1.0. It is not automated, it
makes aibox a hard dependency, and it cannot prove release-gate criteria
repeatably.
Test Goals
The v1.0 test strategy must prove:
- schema generation is deterministic
- generated schemas validate real and adversarial fixtures correctly
- MCP tools match their Python signatures and JSON Schemas
- writes enforce state machines, guards, validation modes, and event logs
- index reads match canonical files after creates, transitions, and
migrations
query_by_interface returns complete mixed-kind results- migration tools preserve data within the RFC gate limits
- pk-doctor catches deliberately invalid entities
- docs and examples remain buildable
- aibox integration works as an adapter, not as the only system test
Automated Layers
| Layer | Purpose |
|---|
| Schema unit tests | Render Jinja + YAML fragments, compare _generated output to golden files, and verify merge strategies. |
| Schema contract tests | Validate generated draft-2020-12 schemas against valid and invalid entity fixtures. |
| MCP contract tests | Check every tool signature against its JSON Schema and run typed request/response fixtures. |
| State-machine tests | Exercise valid and invalid transitions, guard failures, terminal states, and emitted events. |
| Index tests | Create and mutate fixture entities, then assert search, relation traversal, backlinks, and interface grouping. |
| Migration tests | Run v0.x fixture corpora through migration adapters and assert field-loss, orphan, and hash-immutability gates. |
| pk-doctor adversarial tests | Feed deliberately invalid fixtures and require every expected finding with no blocking false positives. |
| Package smoke tests | Install processkit from the local tree or release tarball into a temporary fixture project without aibox. |
| Docs tests | Build the Hugo site and verify links to generated reference pages. |
| Adapter tests | Run a small aibox install/apply workflow to prove integration, but keep it outside the core correctness suite. |
Fixture Projects
Use local fixture projects under the test tree:
empty-project: no context, used for first install and schema
generationalpha-project: small valid corpus covering the alpha ontology slicemigration-v0-project: representative v0.x corpus for migration
adaptersadversarial-project: invalid frontmatter, bad transitions, broken
links, malformed bindings, and inconsistent index stateart-project: a compact first-ART scenario that exercises planning,
execution, demo, inspect-and-adapt, decisions, risks, and evidence
These fixtures should run with plain repository commands in CI. aibox can
consume the same fixtures in an adapter suite, but the fixtures must not
require aibox to exist.
Alpha Proof
Alpha automation should pass before any alpha tag:
- full schema rebuild from
schemas/src/ - committed
_generated tree matches the renderer output - create/read/transition MCP paths work for the alpha slice
query_by_interface works for at least Record- strict and tolerant validation modes are observable
- the alpha fixture migrates from v0.x or maps explicitly
- docs build locally
Manual dogfood remains useful after this automated baseline, not instead
of it.
Final Release Proof
The final gate should include:
- all strict 81-gate criteria green
- first-ART validation completed with recorded evidence
- all MCP tools schema-checked
- pk-doctor adversarial fixture green
- package smoke tests green from release artifact
- aibox adapter test green for a pinned
v1.0.0-rc.* - no known index/schema/migration blocker
This keeps the RFC’s first-ART proof while removing the current hard
dependency on manual aibox experimentation.
6 - Alpha Scope
First buildable vertical slice for processkit v1.0.
Purpose
The alpha proves that the v1.0 model improves real agentic project work
before the project implements the full 89-concept ontology.
The alpha is a vertical slice, not a miniature final release.
Scope
Implement 10-15 high-value concepts covering:
- WorkItem
- DecisionRecord
- Artifact
- Discussion
- Note
- LogEntry
- Binding
- Gate
- Role
- TeamMember
- Skill
- Capability
- Proposition or Risk
- Scope
- Migration
The exact list may change if implementation evidence shows a better
slice, but it must cover work, decisions, artifacts, relations, gates,
roles, skills, and event history.
Required Capabilities
- Generate schemas for the alpha kinds.
- Create and transition entities through MCP tools.
- Query entities by ID, text, relation, and interface.
- Preserve structured LogEntries.
- Migrate a small v0.x corpus.
- Export a conformant OKF bundle.
- Publish the docs site locally and through GitHub Pages.
- Run automated fixture tests without requiring aibox.
- Run one real process cycle through the new model.
Out Of Scope
- Full 89-concept implementation.
- Complete migration of every historical entity.
- Runtime-specific orchestration.
- Vector database integration.
- Public package stability guarantees.
Alpha Proof
The alpha is successful when:
- a real work item moves from capture to completion
- at least one decision is recorded and linked
- artifacts and notes are attached as supporting evidence
- a gate or approval is represented
- event history is queryable
- an agent can retrieve the relevant context through MCP
- OKF export passes v0.1 conformance
- processkit-native tests pass without aibox
- a human can inspect the same state in files and docs
7 - Landscape Note
Adjacent projects and concepts processkit should learn from.
Positioning
processkit v1.0 is not trying to replace agent runtimes, memory
databases, coding agents, or data catalogs. It should be the process
substrate those systems can use.
Its strongest position is:
provider-neutral process memory and governance for agentic software
projects.
Adjacent Areas
OKF
OKF
validates markdown plus YAML frontmatter as an agent-readable exchange
format. processkit should support OKF import/export, generated indexes,
and permissive boundary consumption.
processkit should not copy OKF’s path IDs, untyped links, or prose-only
logs as canonical semantics.
Local Markdown Memory
Projects such as
Basic Memory
and LLM
wiki patterns show that agents and humans benefit from simple, local,
readable markdown knowledge.
processkit should learn from their ergonomics: backlinks, readable
files, simple search, and low-friction MCP access.
processkit should keep stronger lifecycle and relation semantics.
Agent Runtimes
LangGraph
,
Google ADK
,
OpenAI Agents SDK
, and
Microsoft Agent Framework
provide orchestration, tools, handoffs, sessions, tracing, and
human-in-the-loop behavior.
processkit should integrate with them through stable MCP tools and
runtime-neutral examples. It should not own the agent loop.
Memory Layers
Letta
and
Mem0
show the importance of long-term
memory, retrieval, summarization, and consolidation.
processkit should distinguish fleeting notes, permanent artifacts,
decisions, logs, and team-member memory. Promotion and consolidation
should be explicit process actions.
DataHub
,
OpenMetadata
,
Unity Catalog
, and
OpenLineage
show the value
of typed metadata, lineage, ownership, governance, and quality checks.
processkit should make ownership, provenance, lineage, and quality
queryable without turning into a data catalog.
Coding Agents
OpenHands
,
SWE-agent
,
GitHub Copilot Agent
, and
Aider
need durable task context,
acceptance criteria, related decisions, test evidence, and review
history.
processkit should make those inputs easy to retrieve and those outputs
easy to record.
Concepts To Adopt
- boundary compatibility with OKF
- local-first markdown ergonomics
- explicit handoffs and approvals
- guardrails as auditable Gates
- traces and summaries as structured evidence
- memory promotion workflows
- typed provenance and lineage
- acceptance criteria as queryable fields
- runtime-neutral integration examples
Concepts To Avoid
- replacing agent runtimes
- replacing data catalogs
- treating vector memory as the source of truth
- reducing typed relations to prose links
- making path names the canonical identity model
8 - Acceptance Gate
Readiness criteria for processkit v1.0 stages.
Purpose
The acceptance gate keeps the v1.0 rebuild measurable. The RFC’s
81-criterion gate is authoritative for final cutover; the staged lists
below are working summaries for alpha-first execution.
RFC Cutover Gate
| Phase | Criteria | Strict | Soft |
|---|
| P0 - Pre-conditions | 5 | 5 | 0 |
| O1 - Ontology completeness | 11 | 9 | 2 |
| T2 - Tooling parity | 12 | 9 | 3 |
| C3 - Corpus migration | 10 | 10 | 0 |
| S4 - Skills and agents | 8 | 8 | 0 |
| A5 - First-ART validation | 18 | 18 | 0 |
| G6 - Cutover decision point | 8 | 8 | 0 |
| R7 - Post-cutover stabilisation | 9 | 8 | 1 |
| Total | 81 | 75 | 6 |
A5 is the proof phase: model a real ART end to end and run one full PI
cycle through planning, execution, demo, and inspect-and-adapt.
Detailed RFC Criteria
The detailed list below expands the RFC gate into checkable criteria for
planning and implementation. Criteria marked soft may be waived with a
recorded rationale. All other criteria are strict.
P0 - Pre-conditions
| ID | Criterion |
|---|
| P0.1 | Upstream agrees to host the v1.0 feature branch or records an explicit alternative branch/repository model. |
| P0.2 | The RFC is accepted as the leading document for ontology, release, validation, indexing, and cutover planning. |
| P0.3 | A named maintainer contact or owner exists for reviewing v1.0 changes. |
| P0.4 | The v0.x maintenance boundary and backport policy are documented before v1.0 feature work begins. |
| P0.5 | The baseline corpus, migration source, and release-gate evidence locations are frozen for Phase 1. |
O1 - Ontology Completeness
| ID | Criterion |
|---|
| O1.1 | The 89-concept T/P/D/C ontology inventory is documented with 19 T, 22 P, 24 D, and 24 C entries. |
| O1.2 | Each concept has a canonical name, class, description, and migration note from the v0.x model where applicable. |
| O1.3 | The grammar-leak concepts rejected by the RFC are excluded from the entity layer. |
| O1.4 | Location is modeled as a primitive with geographic-region, site, coordinate, logical-region, and timezone variants. |
| O1.5 | Skill is modeled as a primitive with its own schema and lifecycle, distinct from Capability. |
| O1.6 | TeamMember is modeled as a composition of Actor, calendar, capabilities, persona, skill-list, and journal. |
| O1.7 | Service is modeled as S(Capability)/C, not as a primitive. |
| O1.8 | Proposition is modeled as the parent for risk, belief, world-fact, WSJF estimate, and related epistemic content. |
| O1.9 | Hierarchy and Position are represented through Binding variants, including nullable role-slot subject support. |
| O1.10 | Soft: each ontology concept has at least one concrete example from a SAFe or agentic software workflow. |
| O1.11 | Soft: human-facing glossary language is reviewed for non-specialist readability. |
| ID | Criterion |
|---|
| T2.1 | Jinja + YAML schema sources live under schemas/src/ or an equivalent documented source tree. |
| T2.2 | Generated flat schemas are written to a committed _generated/*.yaml tree consumed by runtime tooling. |
| T2.3 | Composition supports extends, {% include %}, and `__merge: replace |
| T2.4 | The MCP endpoint regenerate_schemas(kinds: list | None) -> {rebuilt, unchanged, errors} exists. |
| T2.5 | Full and partial schema regeneration are both deterministic and test-covered. |
| T2.6 | Per-kind validation mode is observable through MCP. |
| T2.7 | Strict validation fails invalid migrated entities; tolerant validation warns for kinds still being migrated. |
| T2.8 | MCP create/read/update/transition paths exist for the alpha entity set and use generated schemas. |
| T2.9 | Entity writes emit required events and update the read index or report index drift. |
| T2.10 | Search includes FTS5 plus interface grouping; the canned-query set is signed off before rc. |
| T2.11 | All MCP tools have valid Python type signatures and matching draft-2020-12 JSON Schemas. |
| T2.12 | Soft: local developer commands make schema rebuild, validation, and MCP smoke tests easy to run. |
C3 - Corpus Migration
| ID | Criterion |
|---|
| C3.1 | A migration plan maps every v0.x entity kind to a v1.0 primitive, discriminator, composition, archive, or explicit rejection. |
| C3.2 | Migration tooling runs repeatably from a clean checkout and records source/target processkit versions. |
| C3.3 | Migrated entities preserve stable IDs or record durable predecessor/successor links. |
| C3.4 | Field loss is measured and stays within the RFC’s maximum 5 percent ceiling. |
| C3.5 | Unknown fields are preserved, transformed, or reported; they are not silently dropped. |
| C3.6 | LogEntry hash and append-only invariants are checked during migration. |
| C3.7 | Orphaned entities, broken required links, and invalid required owners hard-fail the migration. |
| C3.8 | Migrated strict kinds pass generated-schema validation. |
| C3.9 | Migration reports include counts, warnings, failures, and remediation guidance. |
| C3.10 | A representative v0.x fixture corpus migrates in CI without manual aibox steps. |
S4 - Skills And Agents
| ID | Criterion |
|---|
| S4.1 | Skill metadata and routing instructions use the v1.0 ontology names and storage semantics. |
| S4.2 | Skills that write process entities call MCP tools instead of hand-editing canonical context files. |
| S4.3 | Skill examples demonstrate query-by-interface and typed relation lookup where appropriate. |
| S4.4 | Multi-persona and harness prompts are updated to prevent v0.x primitive assumptions. |
| S4.5 | Agent handoff, role, TeamMember, and model-routing documentation reflects the v1.0 TeamMember composition. |
| S4.6 | At least 20 canned agent scenarios exercise work, decisions, gates, risks, roles, skills, and artifacts. |
| S4.7 | Scenario runs keep malformed entity output below 0.1 percent. |
| S4.8 | Skills and agent docs include transition guidance for v0.x adopters. |
A5 - First-ART Validation
| ID | Criterion |
|---|
| A5.1 | A real or production-shaped ART is modeled with Portfolio, ValueStream, ART, Team, Scope, and RoleSlot structure. |
| A5.2 | PI planning creates objectives, risks, dependencies, capacity assumptions, and committed WorkItems. |
| A5.3 | Execution moves work through state machines using MCP transition tools. |
| A5.4 | Decisions, assumptions, risks, and world facts are recorded as the correct Record/Proposition shapes. |
| A5.5 | Gates represent approval, policy, evaluation, and release checks with required evidence. |
| A5.6 | TeamMember, Role, Skill, Capability, and Binding data support realistic task routing. |
| A5.7 | Channels and queues capture handoffs, intake, or asynchronous coordination. |
| A5.8 | Resources, constraints, and ownership are queryable for the ART. |
| A5.9 | Demo evidence is captured as Artifacts, Measurements, Outcomes, or related Records. |
| A5.10 | Inspect-and-adapt produces follow-up WorkItems, Decisions, and retrospective evidence. |
| A5.11 | Interface queries retrieve mixed-kind records without concrete-kind guessing. |
| A5.12 | Relation traversal answers dependency, provenance, ownership, and hierarchy questions. |
| A5.13 | Generated schemas validate all strict entities created during the cycle. |
| A5.14 | pk-doctor reports no blocking errors on the ART fixture or pilot corpus. |
| A5.15 | Human reviewers can inspect the same state through files and documentation. |
| A5.16 | Runtime-specific integrations are examples only; the ART proof does not require one agent framework. |
| A5.17 | The pilot records friction, interpretation drift, and missing tool affordances as tracked issues. |
| A5.18 | The first-ART result is reviewed and accepted before rc promotion. |
G6 - Cutover Decision Point
| ID | Criterion |
|---|
| G6.1 | Phases P0 through A5 are green except for explicitly accepted soft criteria. |
| G6.2 | The final ontology and migration plan are accepted by the named maintainer/owner. |
| G6.3 | The cutover DecisionRecord or equivalent release decision is recorded. |
| G6.4 | Release artifacts are reproducible from a clean checkout. |
| G6.5 | Documentation for install, migration, MCP tooling, schemas, indexes, and testing is published. |
| G6.6 | Downstream adoption paths are documented for production, alpha/beta/rc, and final v1.0 pins. |
| G6.7 | v0.x maintenance, LTS, and feature-backport boundaries are documented. |
| G6.8 | No known blocker remains for merging v1.0 to main and tagging v1.0.0. |
R7 - Post-cutover Stabilisation
| ID | Criterion |
|---|
| R7.1 | A minimum 14-day post-cutover stabilisation window is observed. |
| R7.2 | Critical regressions have documented owner, status, and remediation path. |
| R7.3 | Migration support handles at least one downstream adopter from v0.x to v1.0. |
| R7.4 | Release integrity checks verify tags, tarballs, checksums, provenance, and docs publication. |
| R7.5 | Index rebuild and drift-recovery procedures are exercised after cutover. |
| R7.6 | MCP gateway and per-domain MCP tools pass smoke tests in a clean fixture project. |
| R7.7 | Sensitive-data, privacy, and publication checks run on the shipped docs and release artifacts. |
| R7.8 | Soft: v0.x LTS guidance is validated with at least one slow-adopter scenario. |
| R7.9 | New pk-doctor checks pass a golden adversarial fixture containing deliberately invalid entities. |
Alpha Gate
Alpha is ready when:
- the alpha ontology subset is documented
- schemas are generated and committed
- MCP create/read/transition paths work for alpha entities
query_by_interface works for at least one shared interface- strict and tolerant validation modes are observable
- a small v0.x corpus migrates or maps into the alpha model
- processkit-native fixture tests pass without depending on aibox
- one real process cycle runs through the alpha
- OKF export produces a conformant bundle
- docs build locally
Beta Gate
Beta is ready when:
- the ontology has expanded beyond the alpha subset with migration proof
- all migrated kinds validate strictly
- core MCP tools have stable signatures
- MCP Python signatures match draft-2020-12 JSON Schemas
- docs cover user workflows and architecture
- pk-doctor checks the important invariants
- pk-doctor passes a golden adversarial fixture
- runtime integration examples exist
- OKF import and export are both tested
- human review and approval workflows are represented
Release Candidate Gate
Release candidate is ready when:
- schema generation is deterministic
- migration tools are repeatable
- acceptance fixtures cover adversarial cases
- docs, examples, and publishing scripts are stable
- a real project has run a full planning and delivery cycle
- package smoke tests pass from release artifacts without aibox
- no known blocker remains for v1.0.0 cutover
Final Gate
v1.0.0 is ready when:
- the cutover decision is recorded
- the final ontology and migration plan are accepted
- docs are published
- release artifacts are reproducible
- downstream projects have a supported adoption path
- v0.x maintenance and v1.x development boundaries are documented
9 - Analysis Archive
Supporting analysis used to shape the processkit v1.0 plan.
These documents preserve the reasoning that led to the current v1.0
planning set.
9.1 - processkit v1.0 Base Context
Baseline context for the processkit v1.0 redesign.
Created: 2026-07-04
This historical base context was created for the processkit v1.0 redesign.
It was built from the earlier projectious-work/processkit repository,
cloned locally at:
The goal is to preserve the proven v0.x product target while creating a
clean basis for processkit v1.0 improvement briefings.
Current Guiding Briefing
The current guiding briefing is processkit-v1.0-rfc-draft.md, analyzed
in the processkit v1.0 RFC analysis
.
Conflict rule:
- preserve the stable product target captured in this base context
- use the v1.0 RFC for ontology, branch, release, schema-composition,
validation, indexing, and cutover-gate direction
- treat
concept-mapping-2026-05-16.md as historical input where it
agrees with the RFC, not as current guidance where it conflicts
Current Repository Status
At the time of this analysis, the workspace was a fresh
aibox/processkit-derived project scaffold, not yet a rebuilt processkit
source tree.
aibox.lock pins upstream processkit to v0.27.1.aibox.toml enables the processkit core/managed skill surface.- The workspace currently has no
src/, docs-site/, or implementation
source tree. - Indexed processkit entities for WorkItems, DecisionRecords,
Discussions, and Artifacts are currently empty in this project.
- GitHub auth was available for repository status checks.
Session-start process checks were run before this document was created.
The pending aibox.lock backfill migration
MIG-LOCK-20260703T161218 was applied through migration-management.
After that, active migrations were zero.
pk-doctor still reports setup drift that should be tracked separately:
- missing
scripts/check-src-context-drift.sh - missing TeamMember tier directories for
cora and thrifty-otter - missing Claude sub-agent export for
cora - stale MCP manifest / server-header / preauth metadata
- one applied migration that is now an archive candidate
These findings are not part of the base-context target itself, but they
are important when this repository starts growing source and release
machinery.
Stable Product Target
The first processkit version defines processkit as:
provider-neutral process memory, skills, and MCP tools for agentic
software projects.
The stable target should not change:
- processkit is a versioned content and runtime layer for AI-assisted
projects.
- It gives agents and humans structured project memory through
repository files, schemas, skills, state machines, and MCP tools.
- It is provider-neutral and harness-neutral. Claude, Codex, OpenCode,
Hermes, Aider, and other harnesses are integration targets, not core
dependencies.
- It is a process layer, not a replacement for a harness, runtime
manager, issue tracker, or model provider.
- It must remain usable manually, through MCP-capable harnesses, or via
an external installer such as aibox.
- It must remain forkable. Organizations can maintain private forks and
downstream projects can consume those forks without changing their
own structure.
The original PRD states the primary goal clearly: make it easy for any
team to add a structured, agent-readable process layer to any repository.
Shipped Deliverable Boundary
The old project made a hard distinction between the processkit
repository’s dogfooding context and the content shipped to consumers.
This distinction is foundational and should be preserved.
src/ in the original repository is a literal mirror of a fresh
consumer project root:
src/AGENTS.md becomes <project>/AGENTS.md.src/context/ becomes <project>/context/.src/.gitignore.example is the recommended ignore template.src/.processkit/ is catalog tooling and package metadata; it is not
installed into consumers as live project context.
The repository-root context/ in the old project is dogfood project
state. It contains processkit’s own WorkItems, Decisions, Artifacts,
logs, migrations, team state, and release history. That content must not
be blindly mirrored into src/context/.
The release boundary guard from the original project explicitly allows
dogfood-only directories under root context/ while forbidding them from
shipping under src/context/. In src/context/, shipped Artifacts are
model specs and model profiles only; dogfood Decisions, WorkItems,
Discussions, Notes, Logs, Migrations, and Templates do not ship.
Consumer Usage Model
Consumers can use processkit manually or through a manager.
Manual use:
- Download a versioned processkit release tarball.
- Copy the shipped
context/, .processkit, and AGENTS.md into the
consuming project. - Configure the harness to launch
processkit-gateway, or launch
individual per-skill MCP servers.
aibox-assisted use:
aibox.toml pins [processkit] source, version, and src_path.- aibox fetches the source release, installs selected package tiers, and
records
aibox.lock. - aibox may configure or supervise runtime files, but processkit remains
the standalone source for schemas, skills, packages, and MCP runtime.
The old README names three MCP layouts:
processkit-gateway: preferred provider-neutral entry point.- Per-skill MCP servers: canonical granular compatibility surface.
aggregate-mcp: legacy compatibility bridge.
The gateway is additive. It must not replace per-skill servers as the
canonical validation and compatibility surface.
Package Tiers
The original package model has five tiers:
minimal: foundation for solo developers and small side projects.managed: recommended default for small teams with backlog and
process cadence.software: managed plus architecture, infrastructure, security,
performance, database, and observability skills.research: managed plus data, ML, AI, and research-authoring skills.product: software plus design, framework, product, and broader
end-to-end product-development skills.
Packages compose through spec.extends; consumers can add or remove
specific skills through config overrides.
Entity and Contract Model
The stable entity model is Markdown files with YAML frontmatter:
apiVersionkindmetadataspec- body content where appropriate
The v2 direction is intentionally breaking and explicit. The historical
decisions rejected long-term v1/v2 compatibility shims. v1 contexts are
migration sources; after migration, v2 schemas and index semantics are
authoritative.
Important v2 contract points:
- Unknown kinds, stale primitive assumptions, and ad hoc event/type
vocabulary should fail validation.
Metric, Model, Process, Schedule, and StateMachine are
legacy v1 migration-source kinds, not shipped v2 entity primitives.- Process definitions are Artifacts plus process-instance WorkItems.
- Schedule semantics use
Binding(type=time-window). - Runtime state-machine YAML files are implementation contracts, not
user-authored StateMachine entities.
- Hook inbox items are Notes with
spec.inbox. - Agent cards and security policies are Artifact-backed projections.
- Eval gates produce eval-spec Artifacts, paired Gates, policy/application
Bindings, and calibration LogEntries.
MCP and Indexing Principles
The old project converged on these operational rules:
- Agents read entities through
index-management, not raw filesystem
scraping. - Agents write entities through management MCP tools so schema
validation, state-machine enforcement, index updates, and event logs
happen consistently.
index-management is the read-side foundation.id-management is the write-side ID foundation.- Entity search uses SQLite FTS5, with optional sqlite-vec semantic
search and hybrid search.
- Broad health checks and release checks should return structured JSON
so agents can route findings instead of re-parsing prose.
The original release had 30 MCP server files under src/context/skills.
Most are processkit management servers; one additional shipped server was
devops/repo-management.
Provider and Model Neutrality
Provider neutrality is a core invariant, not a convenience.
The old decisions establish:
- processkit skills, commands, MCP tools, and doctor findings must not
require or invoke aibox host commands from inside derived project
containers.
- aibox and other managers may install, supervise, or provide runtime
signals, but processkit remediation surfaces stay generic.
- Role and TeamMember model assignments bind to provider-neutral
Artifact(kind=model-profile) artifacts by default. - Concrete
Artifact(kind=model-spec) artifacts may encode provider and
model names because they describe real provider models. - Runtime access gates expand profiles into concrete candidates.
- Direct Role/TeamMember bindings to concrete ModelSpec artifacts are
explicit pins or compatibility cases.
This is the design line that lets a processkit project move between
Codex, Claude Code, Gemini CLI, Aider, Cursor, Copilot, OpenCode,
Hermes, and future harnesses without rewriting its process memory.
Team and Role Model
The old project introduced persistent TeamMembers, Roles, RoleSlots, and
Bindings to support repeatable multi-agent collaboration:
- Roles define responsibilities.
- TeamMembers represent named humans or AI personas.
- Bindings connect actors, roles, model profiles, scopes, and other
addressable surfaces.
- RoleSlots decouple identity and capacity planning from concrete people
or model invocations.
- Sub-agent dispatch should route through
route_task first and use the
recommended TeamMember/model class when available.
The workspace had processkit TeamMember remnants from installation, but
pk-doctor reported missing tier directories and one missing Claude
sub-agent export. Treat that as setup hygiene, not as the future team
model.
Release and Migration Model
The first processkit version treated releases as deliberate versioned
content, not silent syncs.
Stable release expectations:
src/PROVENANCE.toml maps shipped files to the tag where each last
changed.scripts/processkit-diff.sh compares tagged versions and classifies
added, removed, changed, and unchanged files.- Installers write explicit Migration documents for upgrades.
- Users and agents review migrations before applying them.
- Migration flow is
pending -> in-progress -> applied. - Release tarballs are built reproducibly from
src/. - Release packaging runs a release-boundary guard, release audit,
provenance freshness check, MCP preauth validation, and checksum
generation.
The old release process guarded against a known failure mode: dogfood
context had changed while src/context/ did not receive corresponding
shippable changes. The new version should preserve a guard that makes
that drift visible.
Documentation Surface
The first version had two user-facing documentation surfaces:
- root docs such as
docs/harness-claude-code.md - Docusaurus docs under
docs-site/
The most important stable docs topics are:
- installation and harness setup
- package tiers and skill catalog
- API version policy
- migration model
- v2 contracts
- ID formats
- privacy tiers
- gateway and MCP layouts
At the time of capture, the workspace did not yet have the current
Docusaurus development section. Treat that statement as historical.
Current Gap Summary
Compared with the original processkit repository, this project currently
has:
- processkit runtime context installed under root
context/ - aibox config and lock data
- devcontainer/runtime scaffolding
- this base-context document
It does not yet have:
src/ deliverable treesrc/context/ schemas, state machines, skills, model artifacts, roles,
bindings, and TeamMember defaults- package definitions under
src/.processkit/packages - release scripts and verification scripts
- docs-site user documentation
- changelog, contribution guide, or release packaging flow
- processkit v1.0-specific WorkItems, Decisions, or Artifacts describing the
rebuild roadmap
Base-Context Readiness Audit
This first phase is complete enough for the next briefing document.
| Requirement | Evidence | Status |
|---|
| Clone/analyze original repository | /tmp/processkit-original at commit 6a9a175f95c42dd76e23488feca42e3d05526b98 | Done |
| Capture target that should not change | Stable Product Target, Consumer Usage Model, Entity and Contract Model | Done |
Analyze old context/ decisions/artifacts | Evidence Index lists PRD and high-signal DecisionRecords | Done |
Analyze old src/ source deliverable | Shipped Deliverable Boundary, Package Tiers, MCP and Indexing Principles | Done |
| Analyze user-facing docs | Documentation Surface plus reference-doc evidence list | Done |
| Capture initial v1.0 workspace status | Current Repository Status and Current Gap Summary | Done |
| Verify process health before handoff | active migrations: zero; pk-doctor findings summarized above | Done |
Open items are intentionally deferred until the incoming briefing is
reviewed:
- creating processkit v1.0-specific WorkItems or DecisionRecords
- choosing which old skills or runtime code to import versus redesign
- rebuilding
src/, docs-site/, release scripts, or MCP runtime code - resolving unrelated installed-context hygiene findings from
pk-doctor
Improvement Surface for Later Briefing
The next briefing can change how the new implementation is built, but it
should do so against these preserved targets:
- keep processkit provider-neutral and host-orchestrator-neutral
- keep the shipped deliverable boundary explicit
- keep entity writes validated through MCP, not hand-edited context files
- keep migrations explicit and reviewable
- keep gateway additive rather than replacing per-skill canonical servers
- keep model routing provider-neutral through profiles
- keep docs and release checks first-class
- keep dogfood project context separate from consumer deliverables
Likely redesign areas for processkit v1.0:
- simplify the source layout without losing the consumer mirror invariant
- reduce prompt/runtime overhead of the skill and MCP surfaces
- make package selection and command projection easier to reason about
- strengthen release and migration tests from the start
- define processkit v1.0-specific WorkItems/Decisions after the incoming
briefing document is reviewed
- decide whether to import, regenerate, or redesign each old skill family
rather than copying the whole first-version catalog wholesale
Evidence Index
Primary evidence from the original repository:
README.md: product promise, install model, MCP layouts, current statusART-20260409_1854-KindCrane-processkit-product-requirements-document:
original approved PRDsrc/INDEX.md: shipped deliverable boundary and mirror invariantsrc/.processkit/packages/*.yaml: package tiers and compositiondocs/harness-claude-code.md: harness behavior and compliance payloadsdocs-site/docs/reference/apiversion-policy.md: apiVersion rulesdocs-site/docs/reference/migration.md: version migration modeldocs-site/docs/reference/v2-contracts.md: v2 entity/projection rulesdocs-site/docs/reference/id-formats.md: ID prefix and format policydocs-site/docs/reference/privacy.md: privacy tiers and private dirssrc/context/skills/processkit/processkit-gateway/SKILL.md: gateway
architecturesrc/context/skills/processkit/index-management/SKILL.md: read-side
index foundationscripts/check-src-context-drift.sh: release boundary guardscripts/build-release-tarball.sh: release packaging flowscripts/smoke-test-servers.py: MCP smoke workflow
High-signal historical decisions:
DEC-20260430_1416-SmoothTiger-adopt-breaking-v2-implementation-plan-forDEC-20260501_1739-ProudCrane-adopt-smoothtiger-informed-split-track-v2DEC-20260502_0743-CoolFjord-adopt-provider-neutral-processkit-gateway-daemonDEC-20260503_1829-LoyalComet-route-roles-and-team-members-throughDEC-20260515_1232-GentleLantern-keep-processkit-host-orchestrator-neutral
9.2 - Concept Mapping Briefing Analysis
Historical concept-mapping analysis for processkit v1.0.
Source: concept-mapping-2026-05-16.md
Analyzed: 2026-07-04
Supersession note: processkit-v1.0-rfc-draft.md is now the guiding
briefing for processkit v1.0. Where this analysis conflicts with the
processkit v1.0 RFC analysis
, the
RFC analysis wins. Keep this file as historical interpretation of the
earlier concept-mapping input, not as current implementation guidance.
The filename dates the briefing to 2026-05-16, but the document itself
continues through Round 17 on 2026-05-20. Treat it as a mid-May design
snapshot, roughly six to seven weeks old as of this analysis.
Executive Read
The document starts as a reconciliation exercise: preserve processkit’s
closed primitive set and map missing concepts onto fields, sub-kinds, or
Binding types. It does not stay there.
By the later rounds, the recommendation has shifted to a greenfield
ontology for a new processkit version:
- keep the processkit target from the v0.x line
- replace the old “small closed primitive set plus many special cases”
model with a richer orthogonal ontology
- promote several abstract parents to first-class atomic primitives
- model domain terms through discriminators and compositions
- support large agent-heavy organizations by making vocabulary explicit
enough for agents to reason over
The most important sentence operationally is in Round 16: for a
10-human, many-agent company doing roughly 500-person work, the document
recommends going full greenfield.
Relationship To Base Context
The briefing preserves these base-context invariants:
- processkit remains provider-neutral and harness-neutral
- project memory remains structured, versioned, and agent-readable
- repository-local process data remains the source of truth
- migrations remain explicit
- rich skills and MCP tooling remain part of the product
- old
context/ dogfood history is evidence, not a payload to ship
It challenges these base-context assumptions:
- the current v0.x primitive set is no longer treated as the likely target
- current schemas are evidence, not constraints
- “no new primitives” is rejected by later rounds
kind= discriminators alone are insufficient for the greenfield model- composition support becomes load-bearing
The base context says “do not change the product target.” This briefing
does not change the target. It changes the ontology and implementation
strategy for reaching that target.
Evolution Inside The Document
The early section says:
- zero new primitives required
- keep the closed primitive set
- add fields,
known_kinds, known_types, and Binding kinds - use an editorial Content / Structure / Governance framing
The middle rounds add:
- a fourth level: Specification / Type / Meta
- a cross-cutting Relation stratum
- explicit Definition / Instance / Record thinking, then later simplify
back to level-only organization
- a class column:
T: terminology onlyP: primitiveD: discriminator on a parent primitiveC: composed schema
The late rounds settle on a greenfield-corrected cut:
- parent concepts such as
Record, Specification, Container,
Policy, Event, and Capability become atomic primitives - children such as
DecisionRecord and LogEntry become compositions
under Record - some grammar-level concepts are dropped as too low-level
- the greenfield model is judged sufficient for SAFe-style scaling
This means the final recommendation should be read from Rounds 13-17,
not from the opening “zero new primitives” finding.
Final Ontology Shape
The final stable shape in the document has five levels:
- Specification / Type / Meta
- Content
- Structure
- Governance
- Relation
It classifies concepts by four implementation classes:
T: concept only, no schemaP: atomic primitive with its own YAML schemaD: discriminator variant on a parent primitiveC: composed schema assembled from primitive blocks
Round 14/15 reports:
- 35 foundational concepts
- 47 specifics
- 82 concepts total
- 21 primitives
- 19 discriminators
- 23 compositions
- 19 terminology concepts
The very last delta table also says Round 14 drops from 87 to 81
concepts after removing six grammar-leak concepts. This conflicts with
the Round 14/15 total of 82 because Round 15 adds Uniqueness. For
future work, treat the effective final count as 82 unless newer input
clarifies otherwise.
The RFC is that newer input. The current processkit v1.0 target is 89
concepts: 19 T, 22 P, 24 D, and 24 C.
Candidate Atomic Primitives
The greenfield model’s important P candidates are:
Specification / Type / Meta:
Content:
ArtifactCapabilityCommandDiscussionMessageNotePropositionQueueRecordResourceTokenWorkItem
Structure:
ActorChannelContainerRole
Governance:
Relation:
Some of these overlap with old processkit primitives. Others are new or
promoted from concepts previously represented by fields, sub-kinds, or
runtime behavior.
Major Reclassifications
The biggest conceptual shift is parent promotion:
Record becomes primitive; DecisionRecord, LogEntry,
Measurement, Outcome, and Archive become Record-derived forms.Container becomes primitive; Scope becomes a composition or
specific container form.Specification becomes primitive; schema, process, role, gate,
schedule, goal, service, channel, queue, and test specifications become
composed specifications.Policy becomes primitive instead of being represented only through
Artifact + Binding + Gate composition.Event becomes primitive and pairs with Command.Proposition becomes primitive and absorbs Belief, WorldFact,
and Risk as discriminator variants.Capability becomes primitive and absorbs Skill, Authority, and
Service as specific forms.Binding remains primitive, but Hierarchy, Position,
Correlation, and Provenance become Binding variants.
These changes are incompatible with simply importing v0.27.1 schemas.
They require a deliberate model redesign.
Load-Bearing Design Decisions
The document creates several decisions that should be confirmed before
implementation:
- Adopt full greenfield ontology rather than incremental v0.27.x
evolution.
- Treat Round 14/15 as the baseline cut, subject to newer inputs.
- Use 5 levels: Specification / Content / Structure / Governance /
Relation.
- Use T/P/D/C classification to decide storage shape.
- Promote
Record, Specification, Container, Event, Policy,
Capability, Proposition, Command, Message, Queue,
Resource, Token, and Channel. - Demote old first-class children such as
DecisionRecord and
LogEntry to composed Record forms in the greenfield model. - Keep
Binding as the relation primitive and express hierarchy,
provenance, position, and correlation as Binding variants. - Use
Proposition as the shared parent for belief, fact, and risk. - Demote Service to a Capability-specific composition, unless newer
SOA-oriented input reverses that.
- Keep spatial/location and BFO disposition out of the core model.
The RFC supersedes item 10: Location is now a primitive and
Capability{kind=disposition} is explicitly included.
None of these should be silently encoded as implementation work without
a current confirmation pass, because the briefing is dated.
Composition Strategy
The document rejects a false binary between duplicated flat schemas and
runtime $ref.
Recommended path:
- Start with Option 8: runtime-only composition.
Schemas may duplicate initially, while tests and polymorphic query
behavior enforce shared interfaces.
- Evolve toward Option 3: build-time generation.
Source uses composition; generated runtime schemas are flat YAML.
- Keep Option 7 available:
extends: annotation with a lightweight
loader.
The RFC supersedes this staged path. processkit v1.0 should use
build-time Jinja + YAML schema generation from the start, with committed
_generated/*.yaml output.
Scaling Argument
The document tests the model against:
- 10 humans plus agents doing roughly 500-person work
- 100 humans plus agents doing roughly 5000-person work
- SAFe / ART / portfolio structures
Its conclusion:
- today’s model is too weak for this
- a reduced model improves agentic workflows but under-models cadence,
channel, policy, and goal vocabulary
- the greenfield model reaches near-complete SAFe modelling capability
- further 10x scale does not require new concepts
The remaining scale problems are engineering and governance:
- composition tooling
- indexing and search
- federation
- throughput
- bulk operations
- interpretation drift
- agent training on canonical meanings
This strongly implies that processkit v1.0 should invest early in
indexing, composition tests, and canonical ontology documentation.
Questions Resolved By The RFC
The document left these unresolved or only implicitly resolved. The RFC
now settles them for processkit v1.0:
- Position is
Binding{kind=role-slot} with nullable subject. - Belief, WorldFact, Risk, and WSJF-estimate sit under Proposition.
- Service is
S(Capability)/C, not a primitive. - Hierarchy remains a named concept implemented as
Binding{kind=parent-child}. - Location is a primitive with five discriminator variants.
Capability{kind=disposition} is included.- The final concept count is 89, not 81 or 82.
- The RFC supersedes Round 14/15 where they conflict.
Implications For processkit v1.0 Build-Up
The new project should not start by copying the old src/context/
schemas wholesale. The better path is:
- Preserve the product target and release discipline from the first
version.
- Treat old schemas, skills, and MCP servers as implementation evidence.
- Define the greenfield ontology contract first.
- Decide the first-phase primitive set and class assignment.
- Create schema-generation or runtime-composition policy.
- Build minimal tooling around the new primitives:
- ID generation
- schema validation
- state transitions
- entity index
- relation queries
- migrations
- Port or rewrite skills after the new ontology is stable.
- Use migration adapters to ingest old-processkit context where needed.
The first implementation milestone should be a thin vertical slice, not
the whole ontology:
- one or two Specification forms
RecordWorkItemBindingContainer or ScopeEvent / Command- index and validation support
Then expand through compositions and discriminators.
Risks
- The document is internally inconsistent because it records an evolving
discussion, not a single final spec.
- It references companion Notes and Decisions that are not present in
this new repository.
- It was produced before later project learning, so its final
recommendation may be superseded.
- Going full greenfield creates a migration burden from processkit v0.x.
- Composition tooling can become a project inside the project.
- Agents may benefit from rich vocabulary, but humans may find the
ontology too abstract without good docs and examples.
What The RFC Resolves
The later RFC answers the briefing’s implementation questions:
- The intended baseline is the RFC’s 89-concept T/P/D/C ontology.
- v1.0 is a greenfield rebuild with migration/import bridges from v0.x.
- The composition mechanism is build-time Jinja + YAML generation.
- SAFe / many-agent scaling remains the main ontology pressure.
- The first deliverable is a phase-gated alpha built around ontology
completeness and tooling parity.
Working Interpretation
Until newer input says otherwise, use this as the working direction:
processkit v1.0 should preserve processkit’s product promise but rebuild
the core model around the RFC’s greenfield 89-concept ontology. The old
project is evidence and migration source, not a schema constraint.
Implementation should follow the RFC’s build-time schema generation,
interface-aware indexing, and 81-criterion gate.
9.3 - processkit v1.0 RFC Analysis
Analysis of the guiding RFC for the processkit v1.0 redesign.
Source: processkit-v1.0-rfc-draft.md
Analyzed: 2026-07-04
Status for this project: guiding briefing. Where this RFC conflicts with
concept-mapping-2026-05-16.md or
concept-mapping-briefing-analysis.md
,
this RFC wins.
Executive Read
The RFC turns the earlier concept-mapping work into an implementation
and release proposal. It is no longer just an ontology discussion. It
asks upstream processkit maintainers to host a full v1.0 greenfield
rebuild on a parallel v1.0 branch while main continues v0.x
maintenance.
The product target from the base context remains intact: processkit is
still provider-neutral process memory, skills, and MCP tooling for
agentic software projects. The RFC changes the model and build plan used
to reach that target.
The RFC’s operational direction is:
- full greenfield ontology rebuild
- 89 concepts in T/P/D/C classes
- Jinja + YAML schema composition
- committed build-time
_generated/ schemas - new
regenerate_schemas MCP endpoint - interface-aware polymorphic queries
- strict/tolerant per-kind validation during migration
- 9-12 month rebuild on a
v1.0 branch - alpha, beta, rc, final pre-release progression
- 81-criterion cutover gate before
v1.0.0
Authority And Evidence
The RFC cites:
DEC-DeepTide: rebuild authorizationDEC-BraveAtlas: 81-criterion cutover gateDISC-BriskWillow: 20-round ontology discussion- upstream issues
#74 and #75 as pk-doctor reliability evidence
Those DEC/DISC entities are not indexed in this new repository, so they
were not locally verifiable through processkit MCP.
I also checked the private projectious-work/internal repository as an
external evidence source:
origin/main
44704b451d4baa53d04eb0e53c1bc01a41f6627e
(2026-05-16T20:18:07+02:00)origin/policy-primitive-trigger-reeval-2026-06-29
8197000d5951ae5e5303e6f2ca868d9f7b4e9ad9
(2026-06-29T07:05:29Z)
That repository verifies DISC-BriskWillow at
context/discussions/
DISC-20260515_1955-BriskWillow-is-hierarchy-a-primitive-are-higher.md.
The discussion is active, supersedes the earlier DISC-OpenPanda
record, and carries forward the hierarchy / abstraction-level question.
It also says the proposed decision was leaning toward editorial
three-level framing without new primitives or schema migration, with
hierarchy remaining composable through existing parent / Scope / Role /
Binding shapes.
The same internal repository did not contain DEC-DeepTide or
DEC-BraveAtlas by filename, ID token, or all-history search on the
available branches. The June branch only adds
tmp/policy-primitive-trigger-reeval-2026-06-29.md, which corroborates
that DISC-BriskWillow is a live non-Policy primitive-admission
question but does not provide the missing RFC decision records.
Treat the RFC as the authority because the user explicitly selected it
as the guiding document. Treat DEC-DeepTide and DEC-BraveAtlas as
unresolved external provenance to be imported, recreated, or replaced by
new local decision records before irreversible implementation cutover.
What Supersedes The Earlier Concept Mapping
The earlier analysis treated Round 14/15 as the likely baseline and
noted open questions. The RFC closes or changes several of those points.
The RFC now says:
- final ontology count is 89 concepts, not 81/82
Location is a new primitiveSkill is a primitive, not a compositionTeamMember is a composition, not Actor{kind=team-member}Service is S(Capability)/C, not a primitivePosition is Binding{kind=role-slot} with nullable subjectLocation has five discriminator variantsCapability{kind=disposition} settles the disposition question- build-time Jinja + YAML composition is the preferred mechanism
_generated/ output is committed- processkit v1.0 should be built upstream on a
v1.0 branch, not only
in this derived repo
Any earlier note saying “confirm this later” should be read as resolved
when the RFC makes a concrete settlement.
Ontology Direction
The current v0.x 13-primitive ontology is rejected as insufficient. The
RFC says it cannot cleanly model AI-first SAFe execution at 100x5000
scale without both:
- missing first-class concepts, and
- grammar concepts leaking into the entity layer
The intended v1.0 ontology uses four concept classes:
T: foundational terminology or meta-mechanic, no own lifecycleP: atomic primitive with schema, lifecycle, and persistenceD: discriminator variant of a primitiveC: composition of primitives and terminology fragments
Final RFC counts:
T: 19P: 22D: 24C: 24- total: 89
Key Primitive Settlements
The RFC explicitly calls out these settlements:
Proposition is a new primitive. It is the parent for Belief, Risk,
WorldFact, WSJF-estimate, and related epistemic content.Location is a new primitive, with discriminator variants for
geographic region, site, coordinate, logical region, and timezone.Skill is a primitive with its own schema and lifecycle, distinct
from Capability.Capability remains a primitive; Service is composed from
Capability.TeamMember becomes a composition of Actor plus calendar,
capabilities, persona, skill list, and journal.Position is a Binding variant with nullable subject.Hierarchy remains named for mental anchoring but is implemented as
Binding{kind=parent-child}.
These are guiding decisions for processkit v1.0 unless later input
supersedes the RFC.
Implementation Mechanics
The RFC rejects runtime $ref as the main solution and chooses
build-time generation:
- schema sources live under
schemas/src/ - Jinja templates render into flat
_generated/*.yaml - runtime tools consume
_generated/ _generated/ is committed to git- composition uses
extends: parent.yaml - templates use
{% include %} for T fragments - merge behavior uses
__merge: replace|concat|name-merge
This is more specific than the earlier “Option 8 first, Option 3 later”
guidance. The RFC chooses the build-time path directly.
Required MCP endpoint:
regenerate_schemas(kinds: list | None) -> {rebuilt, unchanged, errors}
The same endpoint handles full and partial rebuilds. aibox apply
triggers full rebuilds by default, with opt-out for fast iteration.
Validation And Indexing
Validation is phase-gated:
- migrated kinds: strict validation
- kinds still migrating: tolerant validation, warn but pass
- per-kind validation mode must be observable through MCP
Indexing extends the existing FTS5 surface rather than replacing it.
Schemas declare interfaces:
interfaces: [Record, Versioned]
The required new query capability is:
query_by_interface(Record, ...)
This is load-bearing. The RFC identifies it as the fix for agent routing
failures where agents have to choose between WorkItem, DecisionRecord,
Artifact, LogEntry, and similar concrete kinds.
Branch And Release Model
The RFC proposes an upstream v1.0 feature branch:
main continues v0.x.y maintenancev1.0 receives all greenfield rebuild work- alpha, beta, rc, and final tags are cut from
v1.0 - final cutover merges
v1.0 into main and tags v1.0.0 - derived projects opt in by pinning
aibox.toml to alpha/beta/rc tags
Backport policy:
- security fixes flow both ways
- dependency bumps flow at maintainer discretion
- feature work does not backport either way
This keeps the 9-12 month divergence bounded.
Cutover Gate
The RFC adopts an 81-criterion acceptance gate:
- 75 strict criteria
- 6 soft criteria
- 8 phases
Phases:
- P0: pre-conditions
- O1: ontology completeness
- T2: tooling parity
- C3: corpus migration
- S4: skills and agents
- A5: first-ART validation
- G6: cutover decision point
- R7: post-cutover stabilization
The most important proof phase is A5: model a real ART end to end and
run one full PI cycle in the new ontology.
The RFC highlights these specific acceptance constraints:
regenerate_schemas(kinds: list | None) MCP endpoint is required- search must include FTS5 plus interface grouping
- canned query set must be signed off before rc
- all MCP tools need valid Python type signatures and matching
draft-2020-12 JSON Schemas
- pk-doctor must pass a golden adversarial fixture
Upstream Asks
The RFC asks upstream maintainers for:
- host the
v1.0 feature branch upstream - endorse merge-to-main and
v1.0.0 release model - accept the backport policy
- name an upstream owner/contact
- adopt DEC-BraveAtlas or counter-propose a release gate
It explicitly does not ask upstream for engineering capacity.
Timeline
Indicative timeline:
- months 1-2: composition tooling and first alpha
- months 3-4: parent promotion and migration scripts
- months 5-6: specification compositions plus Channel, Queue, Resource,
Container; beta begins
- months 7-9: skills, MCP tools, doctor, indexer; beta to rc
- months 10-12: cutover and first ART on v1.0
- post-cutover: at least 14 days stabilization
The gate, not the calendar, decides release progress.
Risks
The RFC’s main risks:
- upstream rejects branch model
- single derived-project decider bottlenecks sign-off
- pk-doctor bugs hide failures
- corpus migration loses data
- agents drift into non-canonical interpretations
- long-lived
main / v1.0 divergence becomes hard to merge
The RFC mitigates these through the RFC itself, DEC-BraveAtlas tracking,
adversarial doctor fixtures, migration loss ceilings, agent scenario
tests, and strict backport policy.
Implications For This Repository
For processkit v1.0, this RFC should become the primary planning
baseline:
- do not build from the old v0.27.1 schema set
- do not follow the earlier 81/82-concept Round 14/15 interpretation
- use the RFC’s 89-concept shape as current guidance
- plan schema tooling before broad schema migration
- make interface-aware indexing a first-class requirement
- design validation modes before migrating live corpora
- treat pk-doctor rewrite/hardening as part of v1.0, not afterthought
- prepare for upstream-branch workflow or a fork fallback
The first concrete work products should be:
- local copy of the RFC analysis and conflict rules
- ontology inventory derived from the 89-concept RFC
- phase-zero work plan for composition tooling
- local representation of the 81-criterion gate
- decision record for processkit v1.0 adopting this RFC as guidance
The fifth item should be recorded through processkit DecisionRecord MCP
only after explicit acceptance, or when the user asks us to start
planning work items.
Conflict Rule
If processkit-v1.0-rfc-draft.md conflicts with
concept-mapping-2026-05-16.md, the RFC wins.
If the RFC conflicts with old processkit v0.27.1 implementation, the RFC
wins for processkit v1.0 design, while v0.27.1 remains migration-source
evidence.
If later user-provided input conflicts with the RFC, analyze that input
explicitly and decide whether it supersedes this RFC.
9.4 - OKF Compatibility Analysis
Analysis of OKF as an import, export, and publication profile.
Source:
- Google Cloud announcement, “Introducing the Open Knowledge Format”,
published 2026-06-12
GoogleCloudPlatform/knowledge-catalog okf/SPEC.md, v0.1 draft,
inspected at d44368c15e38e7c92481c5992e4f9b5b421a801d
Analyzed: 2026-07-04
Recommendation
processkit v1.0 should support OKF as an import/export and publication
profile, but should not make OKF the canonical internal format.
In practical terms:
- Yes: emit conformant OKF bundles from selected processkit knowledge.
- Yes: ingest OKF bundles into processkit as external knowledge sources.
- Yes: preserve OKF-compatible affordances in v1.0 schema design where
they do not weaken processkit semantics.
- No: do not require the whole repository or canonical
context/ tree
to be an OKF bundle. - No: do not replace processkit entity IDs, typed relations, lifecycle
states, validation modes, event logs, or interface-aware queries with
OKF’s permissive markdown conventions.
This gives us interoperability without losing the benefits that make
processkit more than an LLM wiki.
What OKF Is
OKF v0.1 is a deliberately small knowledge-bundle format:
- a directory tree of UTF-8 markdown files
- YAML frontmatter at the top of every concept document
type as the only required frontmatter key- optional
title, description, resource, tags, and timestamp - file path, minus
.md, as the concept ID - normal markdown links as graph edges
- optional
index.md files for progressive disclosure - optional
log.md files for chronological history - permissive consumers that tolerate missing optional fields, unknown
types, unknown keys, broken links, and missing indexes
The announcement frames OKF as a vendor-neutral, agent- and
human-friendly standard for exchanging metadata, context, and curated
knowledge. It explicitly says OKF is a format, not a platform or service.
Fit With processkit Goals
OKF strongly aligns with several processkit goals:
- plain files over service lock-in
- git-native review, diffs, history, and distribution
- human-readable and agent-readable knowledge
- provider-neutral consumption
- markdown plus YAML frontmatter
- progressive disclosure through indexes
- graph navigation through links
This means OKF is strategically relevant. It is close enough to
processkit’s existing shape that ignoring it would create unnecessary
interoperability debt.
Limits And Mismatches
OKF is intentionally less strict than processkit needs to be.
Key mismatches:
- OKF has no fixed taxonomy; processkit v1.0 is explicitly building a
typed ontology with T/P/D/C classes.
- OKF treats
type values as unregistered strings; processkit needs
schema-backed kinds, discriminators, and interfaces. - OKF concepts are identified by bundle-relative paths; processkit uses
stable entity IDs and may move storage paths as an implementation
detail.
- OKF links are untyped and their relationship meaning lives in prose;
processkit needs typed Bindings, explicit relations, lifecycle
transitions, and queryable graph semantics.
- OKF requires permissive consumption of broken links and unknown fields;
processkit needs strict validation for migrated kinds and controlled
tolerant validation during migration.
- OKF
log.md is prose history; processkit LogEntry entities are
structured, append-only process evidence. - OKF reserves lowercase
index.md and log.md; processkit has richer
index, schema, migration, and event-log machinery that should not be
collapsed into those two files.
There is also a reference-implementation/spec mismatch: the v0.1 spec
says only type is required for conformance, while the checked-in
reference agent’s OKFDocument.validate() currently requires type,
title, description, and timestamp. For processkit, the spec should
be treated as normative and the reference implementation as an example
producer profile, not as the compatibility contract.
Compatibility Model
The right compatibility model is a projection layer:
processkit canonical entities
-> OKF exporter
-> conformant OKF bundle
OKF bundle
-> OKF importer
-> external-source Artifacts / Notes / indexed knowledge
The canonical v1.0 system should keep:
- generated schemas and validation modes
- entity IDs
- lifecycle state machines
- typed relations and Bindings
- interface-aware queries
- event logs
- MCP tools as the write path
The OKF layer should provide:
- read-only exports for external consumers
- lossy-but-useful imports of external OKF knowledge
- optional round-trip preservation of unknown OKF frontmatter
- generated
index.md files for exported bundles - generated
log.md files only as human-facing summaries, not as the
source of truth for process events
Proposed v1.0 Requirements
Add an “OKF compatibility” acceptance slice to the v1.0 plan:
- Define a processkit OKF exporter profile.
- Map each exported processkit kind to an OKF
type. - Include
title, description, timestamp, and tags wherever
available, even though only type is required by OKF. - Preserve processkit IDs in an extension key such as
processkit_id. - Preserve processkit kind/interface metadata in extension keys such as
processkit_kind and processkit_interfaces. - Encode typed relations in extension frontmatter, while also emitting
normal markdown links for generic OKF consumers.
- Generate conformant
index.md files for progressive disclosure. - Treat
log.md as an optional generated changelog summary. - Provide an OKF validator mode that checks v0.1 conformance.
- Provide an OKF importer that marks imported knowledge as external
and does not pretend it has full processkit lifecycle semantics.
Decision Guidance
Adopt OKF compatibility if it remains a boundary format.
Do not adopt OKF as the internal canonical model unless the OKF
specification evolves to cover typed relations, lifecycle semantics,
stable non-path IDs, validation profiles, and structured event history.
That would be a different standard from OKF v0.1.
The safest wording for the v1.0 roadmap is:
processkit v1.0 SHOULD be able to produce and consume OKF v0.1
bundles, while retaining processkit’s stricter canonical schema,
lifecycle, relation, and MCP semantics internally.
9.5 - processkit v1.0 Start Assessment
Scope and risk assessment for starting the v1.0 redesign.
Analyzed: 2026-07-04
Sources considered:
Judgement
The v1.0 plan is good enough to start, but not as an unconstrained
9-12 month greenfield rebuild.
Start a v1.0 branch now, but run it as a narrow alpha first:
- prove a small vertical slice before implementing the full ontology
- keep processkit’s canonical semantics stricter than OKF
- position processkit as process memory and governance, not as another
agent runtime
- integrate with external runtimes instead of rebuilding them
- add OKF import/export as a boundary compatibility feature
The plan’s direction is strong. Its main risk is scope, not concept.
Why Start
The market is converging toward exactly the problems processkit is
trying to solve:
- persistent agent context
- local and git-native knowledge
- markdown / frontmatter agent memory
- MCP tool interoperability
- durable work state
- human review and approval gates
- multi-agent role specialization
- observability, lineage, and auditability
The RFC’s core differentiators remain valid:
- schema-backed process entities
- lifecycle-aware WorkItems, Decisions, Discussions, Notes, Artifacts,
Bindings, Gates, Skills, and Logs
- MCP write paths rather than ad hoc file edits
- typed relations instead of prose-only links
- provider-neutral model and role routing
- interface-aware search and query
- structured event history
No surveyed external project fully covers this combination.
Why Constrain The Start
The RFC’s 89-concept ontology is too large to treat as proven before
implementation. It should be validated by usage.
The first alpha should answer:
- Does the new ontology reduce agent confusion in real work?
- Does
query_by_interface improve routing and retrieval? - Can existing v0.x history migrate without losing process evidence?
- Can agents create and transition entities reliably through MCP tools?
- Can humans still inspect and review the files directly?
- Can OKF export/import work without weakening internal semantics?
If those are not proven early, a larger rebuild will produce more schema
surface without enough operational proof.
Concepts To Learn From
These external concepts should influence v1.0 without replacing
processkit’s identity.
Learn:
- minimal markdown + YAML interchange
- permissive consumers
- path-readable bundles
- generated
index.md for progressive disclosure - plain markdown links for generic graph consumers
Apply:
- OKF exporter and importer
- extension frontmatter preserving processkit IDs and kinds
- OKF validator mode
- generated OKF bundles for publication and exchange
Do not copy:
- path IDs as canonical IDs
- untyped relations as the only graph model
- prose
log.md as authoritative event history
Basic Memory / LLM Wiki: Local-First Memory
Learn:
- agents work well with simple, readable markdown memory
- backlinks and lightweight entity extraction are useful
- user-owned files build trust
- MCP access to memory lowers integration friction
Apply:
- keep canonical files inspectable by humans
- improve indexes, backlinks, and local search ergonomics
- expose memory operations through MCP with clear tool metadata
- make agent write paths safe but still low-friction
Do not copy:
- free-form notes as the only data model
- weak lifecycle semantics
LangGraph / ADK / Microsoft Agent Framework: Runtime Boundaries
Learn:
- durable execution, pause/resume, and human-in-the-loop workflows are
now table stakes
- agent runtimes increasingly support state, tools, telemetry, and
multi-agent orchestration
- framework-specific orchestration changes quickly
Apply:
- make processkit easy for those runtimes to use
- define stable MCP tools for work, decisions, gates, and logs
- model approvals and interrupts as first-class process state
- provide runtime-neutral integration examples
Do not copy:
- agent loop orchestration
- provider-specific runtime assumptions
OpenAI Agents SDK: Handoffs, Guardrails, Tracing
Learn:
- handoffs need explicit target identity and task shape
- guardrails should be auditable process artifacts
- traces are valuable when debugging agent behavior
Apply:
- connect TeamMember / Role routing to handoff metadata
- model guardrails as Gates and policy Bindings
- map traces or summaries into structured LogEntries or Artifacts
Do not copy:
- SDK-specific session state as canonical project memory
Letta / Mem0: Memory Layering
Learn:
- long-term memory needs summarization, retrieval, and consolidation
- different memory layers serve different retrieval needs
- graph memory can improve multi-hop questions
Apply:
- separate fleeting notes, permanent artifacts, decisions, logs, and
team-member memory
- add explicit promotion and consolidation workflows
- support graph-aware retrieval over typed entities and Bindings
Do not copy:
- opaque memory stores as the only source of truth
- personalization-first memory as the center of the project model
Learn:
- catalogs win by combining metadata, lineage, ownership, search,
quality, and governance
- typed metadata supports automation better than prose alone
- enterprise users expect lineage and ownership to be queryable
Apply:
- make ownership, source, provenance, and lifecycle queryable
- add lineage-style relations where process artifacts derive from one
another
- expose health and quality checks through pk-doctor
- keep metadata extensible without losing validation
Do not copy:
- data-catalog scope as the core product
- centralized service dependency
OpenLineage: Faceted Extensibility
Learn:
- a small core model plus extension facets can scale across domains
- lineage events benefit from consistent naming and extensible metadata
Apply:
- consider facet-like schema extension points for v1.0 entities
- keep core fields stable while allowing typed extension payloads
- use event metadata to preserve provenance and causal relationships
Do not copy:
- run/job/dataset as processkit’s universal core model
OpenHands / SWE-agent / Copilot Agent / Aider: Coding-Agent Fit
Learn:
- coding agents need repository maps, task context, plans, tests, and
review loops
- asynchronous agents need durable project state outside chat
- issue-to-PR agents benefit from clear acceptance criteria
Apply:
- make processkit the context substrate for coding agents
- export concise task briefs with related decisions and artifacts
- model acceptance criteria and verification as queryable fields
- preserve branch, PR, test, and review evidence in structured logs
Do not copy:
- code-editing agent behavior
- benchmark chasing as the project goal
Before full implementation, amend the v1.0 plan with these additions:
- Add an OKF compatibility acceptance slice.
- Add a one-project alpha proving a small ontology subset.
- Define processkit’s runtime boundary explicitly.
- Add a “not building” list:
agent runtime, vector database, data catalog, OKF-only wiki.
- Add provenance and lineage requirements.
- Add handoff / approval / guardrail mapping to Roles, Gates, and Logs.
- Add graph/backlink ergonomics for human and agent navigation.
- Add migration proof for existing v0.x entities.
- Add examples for LangGraph, ADK, OpenAI Agents SDK, and Microsoft
Agent Framework as consumers.
Start Condition
Start once the first alpha slice is defined as a vertical proof:
- 10-15 highest-value concepts only
- generated schemas
- MCP create/read/transition path
- interface query
- OKF export
- migration of a small existing corpus
- one real process cycle driven through the new model
That is enough to learn quickly while preserving the RFC’s direction.